403Webshell
Server IP : 46.105.57.169  /  Your IP : 216.73.217.35
Web Server : Apache
System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : verseaumee ( 152031)
PHP Version : 8.5.7
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/verseaumee/123click/assets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/verseaumee/123click/assets/elementor-pro.zip
PK!�c���	�	modules/role-manager/module.phpnu�[���<?php
namespace ElementorPro\Modules\RoleManager;

use ElementorPro\Plugin;
use ElementorPro\Base\Module_Base;
use Elementor\Core\RoleManager\Role_Manager as RoleManagerBase;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const ROLE_MANAGER_OPTION_NAME = 'role-manager';

	public function get_role_manager_options() {
		return get_option( 'elementor_' . self::ROLE_MANAGER_OPTION_NAME, [] );
	}

	public function get_name() {
		return 'role-manager';
	}

	public function save_advanced_options( $input ) {
		return $input;
	}

	public function get_user_restrictions() {
		return $this->get_role_manager_options();
	}

	public function display_role_controls( $role_slug, $role_data ) {
		static $options = false;
		if ( ! $options ) {
			$options = [
				'excluded_options' => Plugin::elementor()->role_manager->get_role_manager_options(),
				'advanced_options' => $this->get_role_manager_options(),
			];
		}
		$id = self::ROLE_MANAGER_OPTION_NAME . '_' . $role_slug . '_design';
		$name = 'elementor_' . self::ROLE_MANAGER_OPTION_NAME . '[' . $role_slug . '][]';
		$checked = isset( $options['advanced_options'][ $role_slug ] ) ? $options['advanced_options'][ $role_slug ] : [];

		?>
		<label for="<?php echo esc_attr( $id ); ?>">
			<input type="checkbox" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>" value="design" <?php checked( in_array( 'design', $checked ), true ); ?>>
			<?php esc_html_e( 'Access to edit content only', 'elementor-pro' ); ?>
		</label>
		<?php
	}

	public function register_admin_fields( RoleManagerBase $role_manager ) {
		$role_manager->add_section( 'general', 'advanced-role-manager', [
			'fields' => [
				self::ROLE_MANAGER_OPTION_NAME => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => '',
					],
					'setting_args' => [
						'sanitize_callback' => [ $this, 'save_advanced_options' ],
					],
				],
			],
		] );
	}

	public function __construct() {
		parent::__construct();
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . RoleManagerBase::PAGE_ID, [ $this, 'register_admin_fields' ], 100 );
		}
		remove_action( 'elementor/role/restrictions/controls', [ Plugin::elementor()->role_manager, 'get_go_pro_link_html' ] );
		add_action( 'elementor/role/restrictions/controls', [ $this, 'display_role_controls' ], 10, 2 );
		add_filter( 'elementor/editor/user/restrictions', [ $this, 'get_user_restrictions' ] );
	}
}
PK!-z���modules/scroll-snap/module.phpnu�[���<?php
namespace ElementorPro\Modules\ScrollSnap;

use Elementor\Core\DocumentTypes\PageBase;
use Elementor\Controls_Manager;
use ElementorPro\Base\Module_Base;
use Elementor\Controls_Stack;
use Elementor\Core\Experiments\Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}

	public function get_name() {
		return 'scroll-snap';
	}

	public static function get_experimental_data() {
		return [
			'name' => 'e_scroll_snap',
			'title' => esc_html__( 'Scroll Snap', 'elementor-pro' ),
			'description' => esc_html__( 'Customize how visitors scroll through your site. Scroll Snap makes the viewport stop or pause on a specific position of a section when scrolling ends.', 'elementor-pro' )
				. ' <a href="https://go.elementor.com/wp-dash-scroll-snap" target="_blank">'
				. esc_html__( 'Learn More', 'elementor-pro' ) . '</a>',
			'release_status' => Manager::RELEASE_STATUS_BETA,
			'new_site' => [
				'default_active' => true,
				'minimum_installation_version' => '3.5.0-beta',
			],
		];
	}

	public function register_controls( Controls_Stack $controls_stack, $section_id ) {

		if ( ! $controls_stack instanceof PageBase || 'section_custom_css_pro' !== $section_id ) {
			return;
		}

		$scroll_snap_children = '.elementor-section:not(.elementor-inner-section), .elementor-location-header, .elementor-location-footer, .page-header, .site-header, .elementor-add-section';

		$controls_stack->start_controls_section(
			'section_scroll_snap',
			[
				'label' => esc_html__( 'Scroll Snap', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_ADVANCED,
			]
		);

		$controls_stack->add_control(
			'scroll_snap',
			[
				'label' => esc_html__( 'Scroll Snap', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'description' => esc_html__( 'Scroll Snap makes the viewport stop on a specific position of a section when scrolling ends.', 'elementor-pro' ),
				'selectors' => [
					'html' => 'height: 100vh; margin: 0; overflow: hidden;',
					'body' => 'height: 100vh; overflow: auto; scroll-snap-type: y mandatory;',
				],
				'frontend_available' => true,
			]
		);

		$controls_stack->add_responsive_control(
			'scroll_snap_position',
			[
				'label' => esc_html__( 'Snap Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Top', 'elementor-pro' ),
					'center' => esc_html__( 'Center', 'elementor-pro' ),
					'end' => esc_html__( 'Bottom', 'elementor-pro' ),
				],
				'selectors_dictionary' => [
					'' => 'start',
				],
				'condition' => [
					'scroll_snap!' => '',
				],
				'selectors' => [
					$scroll_snap_children => 'scroll-snap-align: {{VALUE}}',
				],
			]
		);

		$controls_stack->add_responsive_control(
			'scroll_snap_padding',
			[
				'label' => esc_html__( 'Scroll Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'condition' => [
					'scroll_snap!' => '',
				],
				'selectors' => [
					'body' => 'scroll-padding: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$controls_stack->add_responsive_control(
			'force_stop',
			[
				'label' => esc_html__( 'Scroll Snap Stop', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'always' => esc_html__( 'Always', 'elementor-pro' ),
				],
				'selectors_dictionary' => [
					'' => 'normal',
				],
				'condition' => [
					'scroll_snap!' => '',
				],
				'selectors' => [
					$scroll_snap_children => 'scroll-snap-stop: {{VALUE}}',
				],
			]
		);

		$controls_stack->end_controls_section();
	}

	private function add_actions() {
		add_action( 'elementor/element/after_section_end', [ $this, 'register_controls' ], 10, 2 );
	}
}
PK!=����%modules/flip-box/widgets/flip-box.phpnu�[���<?php
namespace ElementorPro\Modules\FlipBox\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Flip_Box extends Base_Widget {

	public function get_name() {
		return 'flip-box';
	}

	public function get_title() {
		return esc_html__( 'Flip Box', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-flip-box';
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_side_a_content',
			[
				'label' => esc_html__( 'Front', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'side_a_content_tabs' );

		$this->start_controls_tab( 'side_a_content_tab', [ 'label' => esc_html__( 'Content', 'elementor-pro' ) ] );

		$this->add_control(
			'graphic_element',
			[
				'label' => esc_html__( 'Graphic Element', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'none' => [
						'title' => esc_html__( 'None', 'elementor-pro' ),
						'icon' => 'eicon-ban',
					],
					'image' => [
						'title' => esc_html__( 'Image', 'elementor-pro' ),
						'icon' => 'fa fa-picture-o',
					],
					'icon' => [
						'title' => esc_html__( 'Icon', 'elementor-pro' ),
						'icon' => 'eicon-star',
					],
				],
				'default' => 'icon',
			]
		);

		$this->add_control(
			'image',
			[
				'label' => esc_html__( 'Choose Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'image', // Actually its `image_size`
				'default' => 'thumbnail',
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'selected_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'fas fa-star',
					'library' => 'fa-solid',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'stacked' => esc_html__( 'Stacked', 'elementor-pro' ),
					'framed' => esc_html__( 'Framed', 'elementor-pro' ),
				],
				'default' => 'default',
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_shape',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'circle' => esc_html__( 'Circle', 'elementor-pro' ),
					'square' => esc_html__( 'Square', 'elementor-pro' ),
				],
				'default' => 'circle',
				'condition' => [
					'icon_view!' => 'default',
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'title_text_a',
			[
				'label' => esc_html__( 'Title & Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'This is the heading', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your title', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'description_text_a',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your description', 'elementor-pro' ),
				'separator' => 'none',
				'dynamic' => [
					'active' => true,
				],
				'rows' => 10,
				'show_label' => false,
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'side_a_background_tab', [ 'label' => esc_html__( 'Background', 'elementor-pro' ) ] );

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'background_a',
				'types' => [ 'classic', 'gradient' ],
				'selector' => '{{WRAPPER}} .elementor-flip-box__front',
			]
		);

		$this->add_control(
			'background_overlay_a',
			[
				'label' => esc_html__( 'Background Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay' => 'background-color: {{VALUE}};',
				],
				'separator' => 'before',
				'condition' => [
					'background_a_image[id]!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'background_overlay_a_filters',
				'selector' => '{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay',
				'condition' => [
					'background_overlay_a!' => '',
				],
			]
		);

		$this->add_control(
			'background_overlay_a_blend_mode',
			[
				'label' => esc_html__( 'Blend Mode', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'multiply' => 'Multiply',
					'screen' => 'Screen',
					'overlay' => 'Overlay',
					'darken' => 'Darken',
					'lighten' => 'Lighten',
					'color-dodge' => 'Color Dodge',
					'color-burn' => 'Color Burn',
					'hue' => 'Hue',
					'saturation' => 'Saturation',
					'color' => 'Color',
					'exclusion' => 'Exclusion',
					'luminosity' => 'Luminosity',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay' => 'mix-blend-mode: {{VALUE}}',
				],
				'condition' => [
					'background_overlay_a!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_side_b_content',
			[
				'label' => esc_html__( 'Back', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'side_b_content_tabs' );

		$this->start_controls_tab( 'side_b_content_tab', [ 'label' => esc_html__( 'Content', 'elementor-pro' ) ] );

		$this->add_control(
			'title_text_b',
			[
				'label' => esc_html__( 'Title & Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'This is the heading', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your title', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
			]
		);

		$this->add_control(
			'description_text_b',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your description', 'elementor-pro' ),
				'separator' => 'none',
				'dynamic' => [
					'active' => true,
				],
				'rows' => 10,
				'show_label' => false,
			]
		);

		$this->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Button Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Click Here', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'link_click',
			[
				'label' => esc_html__( 'Apply Link On', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'box' => esc_html__( 'Whole Box', 'elementor-pro' ),
					'button' => esc_html__( 'Button Only', 'elementor-pro' ),
				],
				'default' => 'button',
				'condition' => [
					'link[url]!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'side_b_background_tab', [ 'label' => esc_html__( 'Background', 'elementor-pro' ) ] );

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'background_b',
				'types' => [ 'classic', 'gradient' ],
				'selector' => '{{WRAPPER}} .elementor-flip-box__back',
			]
		);

		$this->add_control(
			'background_overlay_b',
			[
				'label' => esc_html__( 'Background Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay' => 'background-color: {{VALUE}};',
				],
				'separator' => 'before',
				'condition' => [
					'background_b_image[id]!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'background_overlay_b_filters',
				'selector' => '{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay',
				'condition' => [
					'background_overlay_b!' => '',
				],
			]
		);

		$this->add_control(
			'background_overlay_b_blend_mode',
			[
				'label' => esc_html__( 'Blend Mode', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'multiply' => 'Multiply',
					'screen' => 'Screen',
					'overlay' => 'Overlay',
					'darken' => 'Darken',
					'lighten' => 'Lighten',
					'color-dodge' => 'Color Dodge',
					'color-burn' => 'Color Burn',
					'hue' => 'Hue',
					'saturation' => 'Saturation',
					'color' => 'Color',
					'exclusion' => 'Exclusion',
					'luminosity' => 'Luminosity',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay' => 'mix-blend-mode: {{VALUE}}',
				],
				'condition' => [
					'background_overlay_b!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_box_settings',
			[
				'label' => esc_html__( 'Settings', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vh' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'separator' => 'after',
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__layer, {{WRAPPER}} .elementor-flip-box__layer__overlay' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'flip_effect',
			[
				'label' => esc_html__( 'Flip Effect', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'flip',
				'options' => [
					'flip' => 'Flip',
					'slide' => 'Slide',
					'push' => 'Push',
					'zoom-in' => 'Zoom In',
					'zoom-out' => 'Zoom Out',
					'fade' => 'Fade',
				],
				'prefix_class' => 'elementor-flip-box--effect-',
			]
		);

		$this->add_control(
			'flip_direction',
			[
				'label' => esc_html__( 'Flip Direction', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'up',
				'options' => [
					'left' => esc_html__( 'Left', 'elementor-pro' ),
					'right' => esc_html__( 'Right', 'elementor-pro' ),
					'up' => esc_html__( 'Up', 'elementor-pro' ),
					'down' => esc_html__( 'Down', 'elementor-pro' ),
				],
				'condition' => [
					'flip_effect!' => [
						'fade',
						'zoom-in',
						'zoom-out',
					],
				],
				'prefix_class' => 'elementor-flip-box--direction-',
			]
		);

		$this->add_control(
			'flip_3d',
			[
				'label' => esc_html__( '3D Depth', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'return_value' => 'elementor-flip-box--3d',
				'default' => '',
				'prefix_class' => '',
				'condition' => [
					'flip_effect' => 'flip',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_a',
			[
				'label' => esc_html__( 'Front', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'padding_a',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'alignment_a',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'vertical_position_a',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__overlay' => 'justify-content: {{VALUE}}',
				],
				'separator' => 'after',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'border_a',
				'selector' => '{{WRAPPER}} .elementor-flip-box__front',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'heading_image_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'condition' => [
					'graphic_element' => 'image',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'image_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__image' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'image_width',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ) . ' (%)',
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%' ],
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'%' => [
						'min' => 5,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__image img' => 'width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'image_opacity',
			[
				'label' => esc_html__( 'Opacity', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 1,
				],
				'range' => [
					'px' => [
						'max' => 1,
						'min' => 0.10,
						'step' => 0.01,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__image' => 'opacity: {{SIZE}};',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'image_border',
				'selector' => '{{WRAPPER}} .elementor-flip-box__image img',
				'condition' => [
					'graphic_element' => 'image',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__image img' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'heading_icon_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'condition' => [
					'graphic_element' => 'icon',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'icon_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-wrapper' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon' => 'background-color: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon svg' => 'stroke: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon, {{WRAPPER}} .elementor-view-default .elementor-icon' => 'color: {{VALUE}}; border-color: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon svg, {{WRAPPER}} .elementor-view-default .elementor-icon svg' => 'fill: {{VALUE}}; border-color: {{VALUE}}',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-view-framed .elementor-icon' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon svg' => 'stroke: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon svg' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 6,
						'max' => 300,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'font-size: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-icon svg' => 'width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_padding',
			[
				'label' => esc_html__( 'Icon Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'padding: {{SIZE}}{{UNIT}};',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
					],
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
			]
		);

		$this->add_control(
			'icon_rotate',
			[
				'label' => esc_html__( 'Icon Rotate', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0,
					'unit' => 'deg',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon i' => 'transform: rotate({{SIZE}}{{UNIT}});',
					'{{WRAPPER}} .elementor-icon svg' => 'transform: rotate({{SIZE}}{{UNIT}});',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'border-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view' => 'framed',
				],
			]
		);

		$this->add_control(
			'icon_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
			]
		);

		$this->add_control(
			'heading_title_style_a',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'title_text_a!' => '',
				],
			]
		);

		$this->add_control(
			'title_spacing_a',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'description_text_a!' => '',
					'title_text_a!' => '',
				],
			]
		);

		$this->add_control(
			'title_color_a',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__title' => 'color: {{VALUE}}',

				],
				'condition' => [
					'title_text_a!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography_a',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__title',
				'condition' => [
					'title_text_a!' => '',
				],
			]
		);

		$this->add_control(
			'heading_description_style_a',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'description_text_a!' => '',
				],
			]
		);

		$this->add_control(
			'description_color_a',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__description' => 'color: {{VALUE}}',

				],
				'condition' => [
					'description_text_a!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography_a',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-flip-box__front .elementor-flip-box__layer__description',
				'condition' => [
					'description_text_a!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_b',
			[
				'label' => esc_html__( 'Back', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'padding_b',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'alignment_b',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay' => 'text-align: {{VALUE}}',
					'{{WRAPPER}} .elementor-flip-box__button' => 'margin-{{VALUE}}: 0',
				],
			]
		);

		$this->add_control(
			'vertical_position_b',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__overlay' => 'justify-content: {{VALUE}}',
				],
				'separator' => 'after',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'border_b',
				'selector' => '{{WRAPPER}} .elementor-flip-box__back',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'heading_title_style_b',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'title_text_b!' => '',
				],
			]
		);

		$this->add_control(
			'title_spacing_b',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'title_text_b!' => '',
				],
			]
		);

		$this->add_control(
			'title_color_b',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__title' => 'color: {{VALUE}}',

				],
				'condition' => [
					'title_text_b!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography_b',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__title',
				'condition' => [
					'title_text_b!' => '',
				],
			]
		);

		$this->add_control(
			'heading_description_style_b',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'description_text_b!' => '',
				],
			]
		);

		$this->add_control(
			'description_spacing_b',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__description' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'description_text_b!' => '',
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'description_color_b',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__description' => 'color: {{VALUE}}',

				],
				'condition' => [
					'description_text_b!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography_b',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-flip-box__back .elementor-flip-box__layer__description',
				'condition' => [
					'description_text_b!' => '',
				],
			]
		);

		$this->add_control(
			'heading_button',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'sm',
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'selector' => '{{WRAPPER}} .elementor-flip-box__button',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->start_controls_tabs( 'button_tabs' );

		$this->start_controls_tab( 'normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-flip-box__button',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_hover_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-flip-box__button:hover',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button:hover' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'button_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button' => 'border-width: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'before',
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-flip-box__button' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'after',
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->end_controls_section();

	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$wrapper_tag = 'div';
		$button_tag = 'a';
		$migration_allowed = Icons_Manager::is_migration_allowed();
		$this->add_render_attribute( 'button', 'class', [
			'elementor-flip-box__button',
			'elementor-button',
			'elementor-size-' . $settings['button_size'],
		] );

		$this->add_render_attribute( 'wrapper', 'class', 'elementor-flip-box__layer elementor-flip-box__back' );

		if ( ! empty( $settings['link']['url'] ) ) {
			$link_element = 'button';

			if ( 'box' === $settings['link_click'] ) {
				$wrapper_tag = 'a';
				$button_tag = 'span';
				$link_element = 'wrapper';
			}

			$this->add_link_attributes( $link_element, $settings['link'] );
		}

		if ( 'icon' === $settings['graphic_element'] ) {
			$this->add_render_attribute( 'icon-wrapper', 'class', 'elementor-icon-wrapper' );
			$this->add_render_attribute( 'icon-wrapper', 'class', 'elementor-view-' . $settings['icon_view'] );
			if ( 'default' != $settings['icon_view'] ) {
				$this->add_render_attribute( 'icon-wrapper', 'class', 'elementor-shape-' . $settings['icon_shape'] );
			}

			if ( ! isset( $settings['icon'] ) && ! $migration_allowed ) {
				// add old default
				$settings['icon'] = 'fa fa-star';
			}

			if ( ! empty( $settings['icon'] ) ) {
				$this->add_render_attribute( 'icon', 'class', $settings['icon'] );
			}
		}

		$has_icon = ! empty( $settings['icon'] ) || ! empty( $settings['selected_icon'] );
		$migrated = isset( $settings['__fa4_migrated']['selected_icon'] );
		$is_new = empty( $settings['icon'] ) && $migration_allowed;

		?>
		<div class="elementor-flip-box">
			<div class="elementor-flip-box__layer elementor-flip-box__front">
				<div class="elementor-flip-box__layer__overlay">
					<div class="elementor-flip-box__layer__inner">
						<?php if ( 'image' === $settings['graphic_element'] && ! empty( $settings['image']['url'] ) ) : ?>
							<div class="elementor-flip-box__image">
								<?php Group_Control_Image_Size::print_attachment_image_html( $settings ); ?>
							</div>
						<?php elseif ( 'icon' === $settings['graphic_element'] && $has_icon ) : ?>
							<div <?php $this->print_render_attribute_string( 'icon-wrapper' ); ?>>
								<div class="elementor-icon">
									<?php if ( $is_new || $migrated ) :
										Icons_Manager::render_icon( $settings['selected_icon'] );
									else : ?>
										<i <?php $this->print_render_attribute_string( 'icon' ); ?>></i>
									<?php endif; ?>
								</div>
							</div>
						<?php endif; ?>

						<?php if ( ! empty( $settings['title_text_a'] ) ) : ?>
							<h3 class="elementor-flip-box__layer__title">
								<?php $this->print_unescaped_setting( 'title_text_a' ); ?>
							</h3>
						<?php endif; ?>

						<?php if ( ! empty( $settings['description_text_a'] ) ) : ?>
							<div class="elementor-flip-box__layer__description">
								<?php $this->print_unescaped_setting( 'description_text_a' ); ?>
							</div>
						<?php endif; ?>
					</div>
				</div>
			</div>
			<<?php Utils::print_validated_html_tag( $wrapper_tag ); ?> <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
			<div class="elementor-flip-box__layer__overlay">
				<div class="elementor-flip-box__layer__inner">
					<?php if ( ! empty( $settings['title_text_b'] ) ) : ?>
						<h3 class="elementor-flip-box__layer__title">
							<?php $this->print_unescaped_setting( 'title_text_b' ); ?>
						</h3>
					<?php endif; ?>

					<?php if ( ! empty( $settings['description_text_b'] ) ) : ?>
						<div class="elementor-flip-box__layer__description">
							<?php $this->print_unescaped_setting( 'description_text_b' ); ?>
						</div>
					<?php endif; ?>

					<?php if ( ! empty( $settings['button_text'] ) ) : ?>
						<<?php Utils::print_validated_html_tag( $button_tag ); ?> <?php $this->print_render_attribute_string( 'button' ); ?>>
							<?php $this->print_unescaped_setting( 'button_text' ); ?>
						</<?php Utils::print_validated_html_tag( $button_tag ); ?>>
					<?php endif; ?>
			</div>
		</div>
		</<?php Utils::print_validated_html_tag( $wrapper_tag ); ?>>
		</div>
		<?php
	}

	/**
	 * Render Flip Box widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
		var btnClasses = 'elementor-flip-box__button elementor-button elementor-size-' + settings.button_size;

		if ( 'image' === settings.graphic_element && '' !== settings.image.url ) {
			var image = {
				id: settings.image.id,
				url: settings.image.url,
				size: settings.image_size,
				dimension: settings.image_custom_dimension,
				model: view.getEditModel()
			};

			var imageUrl = elementor.imagesManager.getImageUrl( image );
		}

		var wrapperTag = 'div',
		buttonTag = 'a';

		if ( 'box' === settings.link_click ) {
			wrapperTag = 'a';
			buttonTag = 'span';
		}

		if ( 'icon' === settings.graphic_element ) {
			var iconWrapperClasses = 'elementor-icon-wrapper';
			iconWrapperClasses += ' elementor-view-' + settings.icon_view;
			if ( 'default' !== settings.icon_view ) {
				iconWrapperClasses += ' elementor-shape-' + settings.icon_shape;
			}
		}
		var hasIcon = settings.icon || settings.selected_icon,
			iconHTML = elementor.helpers.renderIcon( view, settings.selected_icon, { 'aria-hidden': true }, 'i' , 'object' ),
			migrated = elementor.helpers.isIconMigrated( settings, 'selected_icon' );
		#>

		<div class="elementor-flip-box">
			<div class="elementor-flip-box__layer elementor-flip-box__front">
				<div class="elementor-flip-box__layer__overlay">
					<div class="elementor-flip-box__layer__inner">
						<# if ( 'image' === settings.graphic_element && '' !== settings.image.url ) { #>
						<div class="elementor-flip-box__image">
							<img src="{{ imageUrl }}">
						</div>
						<#  } else if ( 'icon' === settings.graphic_element && hasIcon ) { #>
						<div class="{{ iconWrapperClasses }}" >
							<div class="elementor-icon">
								<# if ( iconHTML && iconHTML.rendered && ( ! settings.icon || migrated ) ) { #>
									{{{ iconHTML.value }}}
								<# } else { #>
									<i class="{{ settings.icon }}"></i>
								<# } #>
							</div>
						</div>
						<# } #>

						<# if ( settings.title_text_a ) { #>
						<h3 class="elementor-flip-box__layer__title">{{{ settings.title_text_a }}}</h3>
						<# } #>

						<# if ( settings.description_text_a ) { #>
						<div class="elementor-flip-box__layer__description">{{{ settings.description_text_a }}}</div>
						<# } #>
					</div>
				</div>
			</div>
			<{{ wrapperTag }} class="elementor-flip-box__layer elementor-flip-box__back">
			<div class="elementor-flip-box__layer__overlay">
				<div class="elementor-flip-box__layer__inner">
					<# if ( settings.title_text_b ) { #>
					<h3 class="elementor-flip-box__layer__title">{{{ settings.title_text_b }}}</h3>
					<# } #>

					<# if ( settings.description_text_b ) { #>
					<div class="elementor-flip-box__layer__description">{{{ settings.description_text_b }}}</div>
					<# } #>

					<# if ( settings.button_text ) { #>
					<{{ buttonTag }} href="#" class="{{ btnClasses }}">{{{ settings.button_text }}}</{{ buttonTag }}>
				<# } #>
			</div>
		</div>
		</{{ wrapperTag }}>
		</div>
		<?php
	}
}
PK!�P�{::modules/flip-box/module.phpnu�[���<?php
namespace ElementorPro\Modules\FlipBox;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Flip_Box',
		];
	}

	public function get_name() {
		return 'flip-box';
	}
}
PK!έW���modules/gallery/module.phpnu�[���<?php

namespace ElementorPro\Modules\Gallery;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {
	/**
	 * Get module name.
	 *
	 * Retrieve the module name.
	 *
	 * @since  2.7.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'gallery';
	}

	public function get_widgets() {
		return [
			'gallery',
		];
	}
}
PK!w��!`�`�#modules/gallery/widgets/gallery.phpnu�[���<?php

namespace ElementorPro\Modules\Gallery\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Gallery extends Base_Widget {

	/**
	 * Get element name.
	 *
	 * Retrieve the element name.
	 *
	 * @return string The name.
	 * @since 2.7.0
	 * @access public
	 *
	 */
	public function get_name() {
		return 'gallery';
	}

	public function get_title() {
		return esc_html__( 'Gallery', 'elementor-pro' );
	}

	public function get_script_depends() {
		return [ 'elementor-gallery' ];
	}

	public function get_style_depends() {
		return [ 'elementor-gallery' ];
	}

	public function get_icon() {
		return 'eicon-gallery-justified';
	}

	public function get_inline_css_depends() {
		if ( 'multiple' === $this->get_settings_for_display( 'gallery_type' ) ) {
			return [ 'nav-menu' ];
		}

		return [];
	}

	protected function register_controls() {
		$this->start_controls_section( 'settings', [ 'label' => esc_html__( 'Settings', 'elementor-pro' ) ] );

		$this->add_control(
			'gallery_type',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'default' => 'single',
				'options' => [
					'single' => esc_html__( 'Single', 'elementor-pro' ),
					'multiple' => esc_html__( 'Multiple', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'gallery',
			[
				'type' => Controls_Manager::GALLERY,
				'condition' => [
					'gallery_type' => 'single',
				],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'gallery_title',
			[
				'type' => Controls_Manager::TEXT,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'default' => esc_html__( 'New Gallery', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'multiple_gallery',
			[
				'type' => Controls_Manager::GALLERY,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'galleries',
			[
				'type' => Controls_Manager::REPEATER,
				'label' => esc_html__( 'Galleries', 'elementor-pro' ),
				'fields' => $repeater->get_controls(),
				'title_field' => '{{{ gallery_title }}}',
				'default' => [
					[
						'gallery_title' => esc_html__( 'New Gallery', 'elementor-pro' ),
					],
				],
				'condition' => [
					'gallery_type' => 'multiple',
				],
			]
		);

		$this->add_control(
			'order_by',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					'random' => esc_html__( 'Random', 'elementor-pro' ),
				],
				'default' => '',
			]
		);

		$this->add_control(
			'lazyload',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => esc_html__( 'Lazy Load', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'gallery_layout',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'default' => 'grid',
				'options' => [
					'grid' => esc_html__( 'Grid', 'elementor-pro' ),
					'justified' => esc_html__( 'Justified', 'elementor-pro' ),
					'masonry' => esc_html__( 'Masonry', 'elementor-pro' ),
				],
				'separator' => 'before',
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 4,
				'tablet_default' => 2,
				'mobile_default' => 1,
				'min' => 1,
				'max' => 24,
				'condition' => [
					'gallery_layout!' => 'justified',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$active_breakpoints = Plugin::elementor()->breakpoints->get_active_breakpoints();
		$ideal_row_height_device_args = [];
		$gap_device_args = [];

		// Add default values for all active breakpoints.
		foreach ( $active_breakpoints as $breakpoint_name => $breakpoint_instance ) {
			if ( 'widescreen' !== $breakpoint_name ) {
				$ideal_row_height_device_args[ $breakpoint_name ] = [
					'default' => [
						'size' => 150,
					],
				];

				$gap_device_args[ $breakpoint_name ] = [
					'default' => [
						'size' => 10,
					],
				];
			}
		}

		$this->add_responsive_control(
			'ideal_row_height',
			[
				'label' => esc_html__( 'Row Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 50,
						'max' => 500,
					],
				],
				'default' => [
					'size' => 200,
				],
				'device_args' => $ideal_row_height_device_args,
				'condition' => [
					'gallery_layout' => 'justified',
				],
				'required' => true,
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'gap',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'device_args' => $gap_device_args,
				'required' => true,
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'link_to',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'file',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'file' => esc_html__( 'Media File', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom URL', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'condition' => [
					'link_to' => 'custom',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'aspect_ratio',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Aspect Ratio', 'elementor-pro' ),
				'default' => '3:2',
				'options' => [
					'1:1' => '1:1',
					'3:2' => '3:2',
					'4:3' => '4:3',
					'9:16' => '9:16',
					'16:9' => '16:9',
					'21:9' => '21:9',
				],
				'condition' => [
					'gallery_layout' => 'grid',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'thumbnail_image',
				'default' => 'medium',
			]
		);

		$this->end_controls_section(); // settings

		$this->start_controls_section(
			'section_filter_bar_content',
			[
				'label' => esc_html__( 'Filter Bar', 'elementor-pro' ),
				'condition' => [
					'gallery_type' => 'multiple',
				],
			]
		);

		$this->add_control(
			'show_all_galleries',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => esc_html__( '"All" Filter', 'elementor-pro' ),
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'show_all_galleries_label',
			[
				'type' => Controls_Manager::TEXT,
				'label' => esc_html__( '"All" Filter Label', 'elementor-pro' ),
				'default' => esc_html__( 'All', 'elementor-pro' ),
				'condition' => [
					'show_all_galleries' => 'yes',
				],
			]
		);

		$this->add_control(
			'pointer',
			[
				'label' => esc_html__( 'Pointer', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'underline',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'underline' => esc_html__( 'Underline', 'elementor-pro' ),
					'overline' => esc_html__( 'Overline', 'elementor-pro' ),
					'double-line' => esc_html__( 'Double Line', 'elementor-pro' ),
					'framed' => esc_html__( 'Framed', 'elementor-pro' ),
					'background' => esc_html__( 'Background', 'elementor-pro' ),
					'text' => esc_html__( 'Text', 'elementor-pro' ),
				],
				'style_transfer' => true,
			]
		);

		$this->add_control(
			'animation_line',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'slide' => 'Slide',
					'grow' => 'Grow',
					'drop-in' => 'Drop In',
					'drop-out' => 'Drop Out',
					'none' => 'None',
				],
				'condition' => [
					'pointer' => [ 'underline', 'overline', 'double-line' ],
				],
			]
		);

		$this->add_control(
			'animation_framed',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'draw' => 'Draw',
					'corners' => 'Corners',
					'none' => 'None',
				],
				'condition' => [
					'pointer' => 'framed',
				],
			]
		);

		$this->add_control(
			'animation_background',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'sweep-left' => 'Sweep Left',
					'sweep-right' => 'Sweep Right',
					'sweep-up' => 'Sweep Up',
					'sweep-down' => 'Sweep Down',
					'shutter-in-vertical' => 'Shutter In Vertical',
					'shutter-out-vertical' => 'Shutter Out Vertical',
					'shutter-in-horizontal' => 'Shutter In Horizontal',
					'shutter-out-horizontal' => 'Shutter Out Horizontal',
					'none' => 'None',
				],
				'condition' => [
					'pointer' => 'background',
				],
			]
		);

		$this->add_control(
			'animation_text',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'grow',
				'options' => [
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'sink' => 'Sink',
					'float' => 'Float',
					'skew' => 'Skew',
					'rotate' => 'Rotate',
					'none' => 'None',
				],
				'condition' => [
					'pointer' => 'text',
				],
			]
		);

		$this->end_controls_section(); // settings

		$this->start_controls_section( 'overlay', [ 'label' => esc_html__( 'Overlay', 'elementor-pro' ) ] );

		$this->add_control(
			'overlay_background',
			[
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'overlay_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'caption' => esc_html__( 'Caption', 'elementor-pro' ),
					'alt' => esc_html__( 'Alt', 'elementor-pro' ),
					'description' => esc_html__( 'Description', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'overlay_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'caption' => esc_html__( 'Caption', 'elementor-pro' ),
					'alt' => esc_html__( 'Alt', 'elementor-pro' ),
					'description' => esc_html__( 'Description', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->end_controls_section(); // overlay

		$this->start_controls_section(
			'image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'image_tabs' );

		$this->start_controls_tab(
			'image_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'image_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--image-border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'image_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--image-border-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--image-border-radius: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'image_css_filters',
				'selector' => '{{WRAPPER}} .e-gallery-image',
			]
		);

		$this->end_controls_tab(); // overlay_background normal

		$this->start_controls_tab(
			'image_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'image_border_color_hover',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-gallery-item:hover' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'image_border_radius_hover',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-gallery-item:hover' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'image_css_filters_hover',
				'selector' => '{{WRAPPER}} .e-gallery-item:hover .e-gallery-image',
			]
		);

		$this->end_controls_tab(); // overlay_background normal

		$this->end_controls_tabs();// overlay_background tabs

		$this->add_control(
			'image_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => 'None',
					'grow' => 'Zoom In',
					'shrink-contained' => 'Zoom Out',
					'move-contained-left' => 'Move Left',
					'move-contained-right' => 'Move Right',
					'move-contained-top' => 'Move Up',
					'move-contained-bottom' => 'Move Down',
				],
				'separator' => 'before',
				'default' => '',
				'frontend_available' => true,
				'render_type' => 'ui',
			]
		);

		$this->add_control(
			'image_animation_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 800,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--image-transition-duration: {{SIZE}}ms',
				],
			]
		);

		$this->end_controls_section(); // overlay_background

		$this->start_controls_section(
			'overlay_style',
			[
				'label' => esc_html__( 'Overlay', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'overlay_background' => 'yes',
				],
			]
		);

		$this->start_controls_tabs( 'overlay_background_tabs' );

		$this->start_controls_tab(
			'overlay_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'overlay_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-gallery-item__overlay',
				'fields_options' => [
					'background' => [
						'label' => esc_html__( 'Overlay', 'elementor-pro' ),
					],
				],
			]
		);

		$this->end_controls_tab(); // overlay_background normal

		$this->start_controls_tab(
			'overlay_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'overlay_background_hover',
				'types' => [ 'classic', 'gradient' ],
				'selector' => '{{WRAPPER}} .e-gallery-item:hover .elementor-gallery-item__overlay',
				'exclude' => [ 'image' ],
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
					'color' => [
						'default' => 'rgba(0,0,0,0.5)',
					],
				],
			]
		);

		$this->end_controls_tab(); // overlay_background normal

		$this->end_controls_tabs();// overlay_background tabs

		$this->add_control(
			'image_blend_mode',
			[
				'label' => esc_html__( 'Blend Mode', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'multiply' => 'Multiply',
					'screen' => 'Screen',
					'overlay' => 'Overlay',
					'darken' => 'Darken',
					'lighten' => 'Lighten',
					'color-dodge' => 'Color Dodge',
					'color-burn' => 'Color Burn',
					'hue' => 'Hue',
					'saturation' => 'Saturation',
					'color' => 'Color',
					'exclusion' => 'Exclusion',
					'luminosity' => 'Luminosity',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--overlay-mix-blend-mode: {{VALUE}}',
				],
				'separator' => 'before',
				'render_type' => 'ui',
			]
		);

		$this->add_control(
			'background_overlay_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => [
					[
						'label' => esc_html__( 'None', 'elementor-pro' ),
						'options' => [
							'' => esc_html__( 'None', 'elementor-pro' ),
						],
					],
					[
						'label' => esc_html__( 'Entrance', 'elementor-pro' ),
						'options' => [
							'enter-from-right' => 'Slide In Right',
							'enter-from-left' => 'Slide In Left',
							'enter-from-top' => 'Slide In Up',
							'enter-from-bottom' => 'Slide In Down',
							'enter-zoom-in' => 'Zoom In',
							'enter-zoom-out' => 'Zoom Out',
							'fade-in' => 'Fade In',
						],
					],
					[
						'label' => esc_html__( 'Exit', 'elementor-pro' ),
						'options' => [
							'exit-to-right' => 'Slide Out Right',
							'exit-to-left' => 'Slide Out Left',
							'exit-to-top' => 'Slide Out Up',
							'exit-to-bottom' => 'Slide Out Down',
							'exit-zoom-in' => 'Zoom In',
							'exit-zoom-out' => 'Zoom Out',
							'fade-out' => 'Fade Out',
						],
					],
				],
				'separator' => 'before',
				'default' => '',
				'frontend_available' => true,
				'render_type' => 'ui',
			]
		);

		$this->add_control(
			'background_overlay_animation_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 800,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--overlay-transition-duration: {{SIZE}}ms',
				],
			]
		);

		$this->end_controls_section(); // overlay_background

		$this->start_controls_section(
			'overlay_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				//TODO: add conditions for this section
			]
		);

		$this->add_control(
			'content_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}}' => '--content-text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'content_vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--content-justify-content: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'content_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'default' => [
					'size' => 20,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--content-padding: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'overlay_title!' => '',
				],
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--title-text-color: {{VALUE}}',
				],
				'condition' => [
					'overlay_title!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-gallery-item__title',
				'condition' => [
					'overlay_title!' => '',
				],
			]
		);

		$this->add_control(
			'title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--description-margin-top: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'overlay_title!' => '',
				],
			]
		);

		$this->add_control(
			'heading_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'overlay_description!' => '',
				],
			]
		);

		$this->add_control(
			'description_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--description-text-color: {{VALUE}}',
				],
				'condition' => [
					'overlay_description!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-gallery-item__description',
				'condition' => [
					'overlay_description!' => '',
				],
			]
		);

		$this->add_control(
			'content_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => [
					[
						'label' => esc_html__( 'None', 'elementor-pro' ),
						'options' => [
							'' => esc_html__( 'None', 'elementor-pro' ),
						],
					],
					[
						'label' => esc_html__( 'Entrance', 'elementor-pro' ),
						'options' => [
							'enter-from-right' => 'Slide In Right',
							'enter-from-left' => 'Slide In Left',
							'enter-from-top' => 'Slide In Up',
							'enter-from-bottom' => 'Slide In Down',
							'enter-zoom-in' => 'Zoom In',
							'enter-zoom-out' => 'Zoom Out',
							'fade-in' => 'Fade In',
						],
					],
					[
						'label' => esc_html__( 'Reaction', 'elementor-pro' ),
						'options' => [
							'grow' => 'Grow',
							'shrink' => 'Shrink',
							'move-right' => 'Move Right',
							'move-left' => 'Move Left',
							'move-up' => 'Move Up',
							'move-down' => 'Move Down',
						],
					],
					[
						'label' => esc_html__( 'Exit', 'elementor-pro' ),
						'options' => [
							'exit-to-right' => 'Slide Out Right',
							'exit-to-left' => 'Slide Out Left',
							'exit-to-top' => 'Slide Out Up',
							'exit-to-bottom' => 'Slide Out Down',
							'exit-zoom-in' => 'Zoom In',
							'exit-zoom-out' => 'Zoom Out',
							'fade-out' => 'Fade Out',
						],
					],
				],
				'default' => 'fade-in',
				'separator' => 'before',
				'render_type' => 'ui',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'content_animation_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 800,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--content-transition-duration: {{SIZE}}ms; --content-transition-delay: {{SIZE}}ms;',
				],
				'condition' => [
					'content_hover_animation!' => '',
				],
			]
		);

		$this->add_control(
			'content_sequenced_animation',
			[
				'label' => esc_html__( 'Sequenced Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'content_hover_animation!' => '',
				],
				'frontend_available' => true,
				'render_type' => 'ui',
			]
		);

		$this->end_controls_section(); // overlay_content

		$this->start_controls_section(
			'filter_bar_style',
			[
				'label' => esc_html__( 'Filter Bar', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'gallery_type' => 'multiple',
				],
			]
		);

		$this->add_control(
			'align_filter_bar_items',
			[
				'label' => esc_html__( 'Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-gallery--filter-align-',
				'selectors_dictionary' => [
					'left' => 'flex-start',
					'right' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--titles-container-justify-content: {{VALUE}}',
				],
			]
		);

		$this->start_controls_tabs( 'filter_bar_colors' );

		$this->start_controls_tab( 'filter_bar_colors_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'galleries_title_color_normal',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-title-color-normal: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'galleries_titles_typography',
				'selector' => '{{WRAPPER}} .elementor-gallery-title',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->end_controls_tab();// filter_bar_colors_normal

		$this->start_controls_tab( 'filter_bar_colors_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'galleries_title_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-title-color-hover: {{VALUE}}',
				],
				'condition' => [
					'pointer!' => 'background',
				],
			]
		);

		/*
		When the pointer style = background, users could need a different text color.
		The control handles the title color in hover state, only when the pointer style is background.
		*/
		$this->add_control(
			'galleries_title_color_hover_pointer_bg',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#fff',
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-title-color-hover: {{VALUE}}',
				],
				'condition' => [
					'pointer' => 'background',
				],
			]
		);

		$this->add_control(
			'galleries_pointer_color_hover',
			[
				'label' => esc_html__( 'Pointer Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-pointer-bg-color-hover: {{VALUE}}',
				],
				'condition' => [
					'pointer!' => [ 'none', 'text' ],
				],
			]
		);

		$this->end_controls_tab();// filter_bar_colors_hover

		$this->start_controls_tab( 'filter_bar_colors_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'galleries_title_color_active',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--gallery-title-color-active: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'galleries_pointer_color_active',
			[
				'label' => esc_html__( 'Pointer Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-pointer-bg-color-active: {{VALUE}}',
				],
				'condition' => [
					'pointer!' => [ 'none', 'text' ],
				],

			]
		);

		$this->end_controls_tab();// filter_bar_colors_active

		$this->end_controls_tabs(); // filter_bar_colors

		$this->add_control(
			'pointer_width',
			[
				'label' => esc_html__( 'Pointer Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'devices' => [ Breakpoints_Manager::BREAKPOINT_KEY_DESKTOP, Breakpoints_Manager::BREAKPOINT_KEY_TABLET ],
				'range' => [
					'px' => [
						'max' => 30,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--galleries-pointer-border-width: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
				'condition' => [
					'pointer' => [ 'underline', 'overline', 'double-line', 'framed' ],
				],
			]
		);

		$this->add_control(
			'galleries_titles_space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-gallery-title' => '--space-between: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'galleries_titles_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-gallery__titles-container' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section(); // filter_bar_style
	}

	protected function render_static() {
		$settings = $this->get_settings_for_display();

		$is_multiple = 'multiple' === $settings['gallery_type'] && ! empty( $settings['galleries'] );

		$is_single = 'single' === $settings['gallery_type'] && ! empty( $settings['gallery'] );

		$gap = $settings['gap']['size'] . $settings['gap']['unit'];
		$ratio_percentage = '75';
		$columns = 4;

		if ( $settings['columns'] ) {
			$columns = $settings['columns'];
		}

		if ( $settings['aspect_ratio'] ) {
			$ratio_array = explode( ':', $settings['aspect_ratio'] );

			$ratio_percentage = ( $ratio_array[1] / $ratio_array[0] ) * 100;
		}

		$this->add_render_attribute(
			'gallery_container',
			[
				'style' => "--columns: {$columns}; --aspect-ratio: {$ratio_percentage}%; --hgap: {$gap}; --vgap: {$gap};",
				'class' => 'e-gallery-grid',
			]
		);

		$galleries = [];

		if ( $is_multiple ) {
			foreach ( array_values( $settings['galleries'] ) as $multi_gallery ) {
				if ( ! $multi_gallery['multiple_gallery'] ) {
					continue;
				}

				$galleries[] = $multi_gallery['multiple_gallery'];
			}
		} elseif ( $is_single ) {
			$galleries[0] = $settings['gallery'];
		}

		foreach ( $galleries as $gallery ) {
			foreach ( $gallery as $item ) {
				$image_src = wp_get_attachment_image_src( $item['id'] );

				$this->add_render_attribute( 'gallery_item_image_' . $item['id'], [
					'style' => "background-image: url('{$image_src[0]}');",
				] );
			}
		}

		$this->render();
	}

	/**
	 *
	 */
	protected function render() {
		$settings = $this->get_settings_for_display();

		$is_multiple = 'multiple' === $settings['gallery_type'] && ! empty( $settings['galleries'] );

		$is_single = 'single' === $settings['gallery_type'] && ! empty( $settings['gallery'] );

		$has_description = ! empty( $settings['overlay_description'] );

		$has_title = ! empty( $settings['overlay_title'] );

		$has_animation = ! empty( $settings['image_hover_animation'] ) || ! empty( $settings['content_hover_animation'] ) || ! empty( $settings['background_overlay_hover_animation'] );

		$gallery_item_tag = ! empty( $settings['link_to'] ) ? 'a' : 'div';

		$galleries = [];

		if ( $is_multiple ) {
			$this->add_render_attribute( 'titles-container', 'class', 'elementor-gallery__titles-container' );

			if ( $settings['pointer'] ) {
				$this->add_render_attribute( 'titles-container', 'class', 'e--pointer-' . $settings['pointer'] );

				foreach ( $settings as $key => $value ) {
					if ( 0 === strpos( $key, 'animation' ) && $value ) {
						$this->add_render_attribute( 'titles-container', 'class', 'e--animation-' . $value );
						break;
					}
				}
			} ?>
			<div <?php $this->print_render_attribute_string( 'titles-container' ); ?>>
				<?php if ( $settings['show_all_galleries'] ) { ?>
					<a data-gallery-index="all" class="elementor-item elementor-gallery-title">
						<?php $this->print_unescaped_setting( 'show_all_galleries_label' ); ?>
					</a>
				<?php } ?>

				<?php foreach ( $settings['galleries'] as $index => $gallery ) :
					if ( ! $gallery['multiple_gallery'] ) {
						continue;
					}

					$galleries[ $index ] = $gallery['multiple_gallery'];
					?>
					<a data-gallery-index="<?php echo esc_attr( $index ); ?>" class="elementor-item elementor-gallery-title">
						<?php $this->print_unescaped_setting( 'gallery_title', 'galleries', $index ); ?>
					</a>
					<?php
				endforeach; ?>
			</div>
			<?php
		} elseif ( $is_single ) {
			$galleries[0] = $settings['gallery'];
		} elseif ( Plugin::elementor()->editor->is_edit_mode() ) { ?>
			<i class="elementor-widget-empty-icon eicon-gallery-justified"></i>
		<?php }

		$this->add_render_attribute( 'gallery_container', 'class', 'elementor-gallery__container' );

		if ( $has_title || $has_description ) {
			$this->add_render_attribute( 'gallery_item_content', 'class', 'elementor-gallery-item__content' );

			if ( $has_title ) {
				$this->add_render_attribute( 'gallery_item_title', 'class', 'elementor-gallery-item__title' );
			}

			if ( $has_description ) {
				$this->add_render_attribute( 'gallery_item_description', 'class', 'elementor-gallery-item__description' );
			}
		}

		$this->add_render_attribute( 'gallery_item_background_overlay', [ 'class' => 'elementor-gallery-item__overlay' ] );

		$gallery_items = [];
		$thumbnail_size = $settings['thumbnail_image_size'];
		foreach ( $galleries as $gallery_index => $gallery ) {
			foreach ( $gallery as $index => $item ) {
				if ( in_array( $item['id'], array_keys( $gallery_items ), true ) ) {
					$gallery_items[ $item['id'] ][] = $gallery_index;
				} else {
					$gallery_items[ $item['id'] ] = [ $gallery_index ];
				}
			}
		}

		if ( 'random' === $settings['order_by'] ) {
			$shuffled_items = [];
			$keys = array_keys( $gallery_items );
			shuffle( $keys );
			foreach ( $keys as $key ) {
				$shuffled_items[ $key ] = $gallery_items[ $key ];
			}
			$gallery_items = $shuffled_items;
		}

		if ( ! empty( $galleries ) ) { ?>
		<div <?php $this->print_render_attribute_string( 'gallery_container' ); ?>>
			<?php
			foreach ( $gallery_items as $id => $tags ) :
				$unique_index = $id; //$gallery_index . '_' . $index;
				$image_src = wp_get_attachment_image_src( $id, $thumbnail_size );
				if ( ! $image_src ) {
					continue;
				}
				$attachment = get_post( $id );
				$image_data = [
					'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
					'media' => wp_get_attachment_image_src( $id, 'full' )['0'],
					'src' => $image_src['0'],
					'width' => $image_src['1'],
					'height' => $image_src['2'],
					'caption' => $attachment->post_excerpt,
					'description' => $attachment->post_content,
					'title' => $attachment->post_title,
				];

				$this->add_render_attribute( 'gallery_item_' . $unique_index, [
					'class' => [
						'e-gallery-item',
						'elementor-gallery-item',
					],
				] );

				if ( $has_animation ) {
					$this->add_render_attribute( 'gallery_item_' . $unique_index, [ 'class' => 'elementor-animated-content' ] );
				}

				if ( $is_multiple ) {
					$this->add_render_attribute( 'gallery_item_' . $unique_index, [ 'data-e-gallery-tags' => implode( ',', $tags ) ] );
				}

				if ( 'a' === $gallery_item_tag ) {
					if ( 'file' === $settings['link_to'] ) {
						$href = $image_data['media'];

						$this->add_render_attribute( 'gallery_item_' . $unique_index, [
							'href' => $href,
						] );

						$this->add_lightbox_data_attributes( 'gallery_item_' . $unique_index, $id, 'yes', 'all-' . $this->get_id() );
					} elseif ( 'custom' === $settings['link_to'] ) {
						$this->add_link_attributes( 'gallery_item_' . $unique_index, $settings['url'] );
					}
				}

				$this->add_render_attribute( 'gallery_item_image_' . $unique_index,
					[
						'class' => [
							'e-gallery-image',
							'elementor-gallery-item__image',
						],
						'data-thumbnail' => $image_data['src'],
						'data-width' => $image_data['width'],
						'data-height' => $image_data['height'],
						'alt' => $image_data['alt'],
					]
				);?>
				<<?php Utils::print_validated_html_tag( $gallery_item_tag ); ?> <?php $this->print_render_attribute_string( 'gallery_item_' . $unique_index ); ?>>
					<div <?php $this->print_render_attribute_string( 'gallery_item_image_' . $unique_index ); ?> ></div>
					<?php if ( ! empty( $settings['overlay_background'] ) ) : ?>
						<div <?php $this->print_render_attribute_string( 'gallery_item_background_overlay' ); ?>></div>
					<?php endif; ?>
					<?php if ( $has_title || $has_description ) : ?>
					<div <?php $this->print_render_attribute_string( 'gallery_item_content' ); ?>>
						<?php if ( $has_title ) :
							$title = $image_data[ $settings['overlay_title'] ];
							if ( ! empty( $title ) ) : ?>
								<div <?php $this->print_render_attribute_string( 'gallery_item_title' ); ?>>
									<?php // PHPCS - the main text of a widget should not be escaped. ?>
									<?php echo $title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
								</div>
							<?php endif;
						endif;
						if ( $has_description ) :
							$description = $image_data[ $settings['overlay_description'] ];
							if ( ! empty( $description ) ) :?>
								<div <?php $this->print_render_attribute_string( 'gallery_item_description' ); ?>>
									<?php // PHPCS - the main text of a widget should not be escaped. ?>
									<?php echo $description; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
								</div>
							<?php endif;
						endif; ?>
					</div>
					<?php endif; ?>
				</<?php Utils::print_validated_html_tag( $gallery_item_tag ); ?>>
			<?php endforeach;
			//endforeach; ?>
		</div>
	<?php }
	}
}
PK!��9�7?7?7modules/animated-headline/widgets/animated-headline.phpnu�[���<?php
namespace ElementorPro\Modules\AnimatedHeadline\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Modules\DynamicTags\Module as TagsModule;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Animated_Headline extends Base_Widget {

	public function get_name() {
		return 'animated-headline';
	}

	public function get_title() {
		return esc_html__( 'Animated Headline', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-animated-headline';
	}

	public function get_keywords() {
		return [ 'headline', 'heading', 'animation', 'title', 'text' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'text_elements',
			[
				'label' => esc_html__( 'Headline', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'headline_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'highlight',
				'options' => [
					'highlight' => esc_html__( 'Highlighted', 'elementor-pro' ),
					'rotate' => esc_html__( 'Rotating', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-headline--style-',
				'render_type' => 'template',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'animation_type',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'typing' => 'Typing',
					'clip' => 'Clip',
					'flip' => 'Flip',
					'swirl' => 'Swirl',
					'blinds' => 'Blinds',
					'drop-in' => 'Drop-in',
					'wave' => 'Wave',
					'slide' => 'Slide',
					'slide-down' => 'Slide Down',
				],
				'default' => 'typing',
				'condition' => [
					'headline_style' => 'rotate',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'marker',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'circle',
				'options' => [
					'circle' => _x( 'Circle', 'Shapes', 'elementor-pro' ),
					'curly' => _x( 'Curly', 'Shapes', 'elementor-pro' ),
					'underline' => _x( 'Underline', 'Shapes', 'elementor-pro' ),
					'double' => _x( 'Double', 'Shapes', 'elementor-pro' ),
					'double_underline' => _x( 'Double Underline', 'Shapes', 'elementor-pro' ),
					'underline_zigzag' => _x( 'Underline Zigzag', 'Shapes', 'elementor-pro' ),
					'diagonal' => _x( 'Diagonal', 'Shapes', 'elementor-pro' ),
					'strikethrough' => _x( 'Strikethrough', 'Shapes', 'elementor-pro' ),
					'x' => 'X',
				],
				'render_type' => 'template',
				'condition' => [
					'headline_style' => 'highlight',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'before_text',
			[
				'label' => esc_html__( 'Before Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::TEXT_CATEGORY,
					],
				],
				'default' => esc_html__( 'This page is', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your headline', 'elementor-pro' ),
				'label_block' => true,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'highlighted_text',
			[
				'label' => esc_html__( 'Highlighted Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::TEXT_CATEGORY,
					],
				],
				'default' => esc_html__( 'Amazing', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'headline_style' => 'highlight',
				],
				'separator' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'rotating_text',
			[
				'label' => esc_html__( 'Rotating Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'placeholder' => esc_html__( 'Enter each word in a separate line', 'elementor-pro' ),
				'separator' => 'none',
				'default' => "Better\nBigger\nFaster",
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::TEXT_CATEGORY,
					],
				],
				'condition' => [
					'headline_style' => 'rotate',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'after_text',
			[
				'label' => esc_html__( 'After Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::TEXT_CATEGORY,
					],
				],
				'placeholder' => esc_html__( 'Enter your headline', 'elementor-pro' ),
				'label_block' => true,
				'separator' => 'none',
			]
		);

		$this->add_control(
			'loop',
			[
				'label' => esc_html__( 'Infinite Loop', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'render_type' => 'template',
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}}' => '--iteration-count: infinite',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'highlight_animation_duration',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::NUMBER,
				'default' => 1200,
				'render_type' => 'template',
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}}' => '--animation-duration: {{VALUE}}ms',
				],
				'condition' => [
					'headline_style' => 'highlight',
				],
			]
		);

		$this->add_control(
			'highlight_iteration_delay',
			[
				'label' => esc_html__( 'Delay', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::NUMBER,
				'default' => 8000,
				'render_type' => 'template',
				'frontend_available' => true,
				'condition' => [
					'headline_style' => 'highlight',
					'loop' => 'yes',
				],
			]
		);

		$this->add_control(
			'rotate_iteration_delay',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::NUMBER,
				'default' => 2500,
				'render_type' => 'template',
				'frontend_available' => true,
				'condition' => [
					'headline_style' => 'rotate',
				],
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .elementor-headline' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'tag',
			[
				'label' => esc_html__( 'HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
					'p' => 'p',
				],
				'default' => 'h3',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_marker',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'headline_style' => 'highlight',
				],
			]
		);

		$this->add_control(
			'marker_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-headline-dynamic-wrapper path' => 'stroke: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'stroke_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-headline-dynamic-wrapper path' => 'stroke-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'above_content',
			[
				'label' => esc_html__( 'Bring to Front', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}} .elementor-headline-dynamic-wrapper svg' => 'z-index: 2',
					'{{WRAPPER}} .elementor-headline-dynamic-text' => 'z-index: auto',
				],
			]
		);

		$this->add_control(
			'rounded_edges',
			[
				'label' => esc_html__( 'Rounded Edges', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}} .elementor-headline-dynamic-wrapper path' => 'stroke-linecap: round; stroke-linejoin: round',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_text',
			[
				'label' => esc_html__( 'Headline', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-headline-plain-text' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-headline',
			]
		);

		$this->add_control(
			'heading_words_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Animated Text', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'words_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--dynamic-text-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'words_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-headline-dynamic-text',
				'exclude' => [ 'font_size' ],
			]
		);

		$this->add_control(
			'typing_animation_highlight_colors',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Selected Text', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'headline_style' => 'rotate',
					'animation_type' => 'typing',
				],
			]
		);

		$this->add_control(
			'highlighted_text_background_color',
			[
				'label' => esc_html__( 'Selection Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--typing-selected-bg-color: {{VALUE}}',
				],
				'condition' => [
					'headline_style' => 'rotate',
					'animation_type' => 'typing',
				],
			]
		);

		$this->add_control(
			'highlighted_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--typing-selected-color: {{VALUE}}',
				],
				'condition' => [
					'headline_style' => 'rotate',
					'animation_type' => 'typing',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		$tag = Utils::validate_html_tag( $settings['tag'] );

		$this->add_render_attribute( 'headline', 'class', 'elementor-headline' );

		if ( 'rotate' === $settings['headline_style'] ) {
			$this->add_render_attribute( 'headline', 'class', 'elementor-headline-animation-type-' . $settings['animation_type'] );

			$is_letter_animation = in_array( $settings['animation_type'], [ 'typing', 'swirl', 'blinds', 'wave' ] );

			if ( $is_letter_animation ) {
				$this->add_render_attribute( 'headline', 'class', 'elementor-headline-letters' );
			}
		}

		if ( ! empty( $settings['link']['url'] ) ) {
			$this->add_link_attributes( 'url', $settings['link'] );
			?>
			<a <?php $this->print_render_attribute_string( 'url' ); ?>>

			<?php
		}

		?>
		<<?php Utils::print_validated_html_tag( $tag ); ?> <?php $this->print_render_attribute_string( 'headline' ); ?>>
		<?php if ( ! empty( $settings['before_text'] ) ) : ?>
			<span class="elementor-headline-plain-text elementor-headline-text-wrapper"><?php $this->print_unescaped_setting( 'before_text' ); ?></span>
		<?php endif; ?>
		<span class="elementor-headline-dynamic-wrapper elementor-headline-text-wrapper">
		<?php if ( 'rotate' === $settings['headline_style'] && $settings['rotating_text'] ) :
			$rotating_text = explode( "\n", $settings['rotating_text'] );
			foreach ( $rotating_text as $key => $text ) : ?>
			<span class="elementor-headline-dynamic-text<?php echo 1 > $key ? ' elementor-headline-text-active' : ''; ?>">
				<?php Utils::print_unescaped_internal_string( str_replace( ' ', '&nbsp;', $text ) ); ?>
			</span>
		<?php endforeach; ?>
		<?php elseif ( 'highlight' === $settings['headline_style'] && ! empty( $settings['highlighted_text'] ) ) : ?>
			<span class="elementor-headline-dynamic-text elementor-headline-text-active"><?php $this->print_unescaped_setting( 'highlighted_text' ); ?></span>
		<?php endif ?>
		</span>
		<?php if ( ! empty( $settings['after_text'] ) ) : ?>
			<span class="elementor-headline-plain-text elementor-headline-text-wrapper"><?php $this->print_unescaped_setting( 'after_text' ); ?></span>
			<?php endif; ?>
		</<?php Utils::print_validated_html_tag( $tag ); ?>>
		<?php

		if ( ! empty( $settings['link']['url'] ) ) {
			echo '</a>';
		}
	}

	/**
	 * Render Animated Headline widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
		var headlineClasses = 'elementor-headline',
			tag = elementorPro.validateHTMLTag( settings.tag );

		if ( 'rotate' === settings.headline_style ) {
			headlineClasses += ' elementor-headline-animation-type-' + settings.animation_type;

			var isLetterAnimation = -1 !== [ 'typing', 'swirl', 'blinds', 'wave' ].indexOf( settings.animation_type );

			if ( isLetterAnimation ) {
				headlineClasses += ' elementor-headline-letters';
			}
		}

		if ( settings.link.url ) { #>
			<a href="#">
		<# } #>
				<{{{ tag }}} class="{{{ headlineClasses }}}">
					<# if ( settings.before_text ) { #>
						<span class="elementor-headline-plain-text elementor-headline-text-wrapper">{{{ settings.before_text }}}</span>
					<# } #>

					<# if ( settings.rotating_text ) { #>
						<span class="elementor-headline-dynamic-wrapper elementor-headline-text-wrapper">
						<# if ( 'rotate' === settings.headline_style && settings.rotating_text ) {
							var rotatingText = ( settings.rotating_text || '' ).split( '\n' );
							for ( var i = 0; i < rotatingText.length; i++ ) {
								var statusClass = 0 === i ? 'elementor-headline-text-active' : ''; #>
								<span class="elementor-headline-dynamic-text {{ statusClass }}">
									{{{ rotatingText[ i ].replace( ' ', '&nbsp;' ) }}}
								</span>
							<# }
						}

						else if ( 'highlight' === settings.headline_style && settings.highlighted_text ) { #>
							<span class="elementor-headline-dynamic-text elementor-headline-text-active">{{{ settings.highlighted_text }}}</span>
						<# } #>
						</span>
					<# } #>

					<# if ( settings.after_text ) { #>
						<span class="elementor-headline-plain-text elementor-headline-text-wrapper">{{{ settings.after_text }}}</span>
					<# } #>
				</{{{ tag }}}>
		<# if ( settings.link.url ) { #>
			</a>
		<# } #>
		<?php
	}
}
PK!ObatUU$modules/animated-headline/module.phpnu�[���<?php
namespace ElementorPro\Modules\AnimatedHeadline;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Animated_Headline',
		];
	}

	public function get_name() {
		return 'animated-headline';
	}
}
PK!�pֽmodules/popup/module.phpnu�[���<?php
namespace ElementorPro\Modules\Popup;

use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use Elementor\Core\Documents_Manager;
use Elementor\Core\DynamicTags\Manager as DynamicTagsManager;
use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {
	const DOCUMENT_TYPE = 'popup';

	public function __construct() {
		parent::__construct();

		add_action( 'elementor/documents/register', [ $this, 'register_documents' ] );
		add_action( 'elementor/theme/register_locations', [ $this, 'register_location' ] );
		add_action( 'elementor/dynamic_tags/register_tags', [ $this, 'register_tag' ] );
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );

		add_action( 'admin_menu', [ $this, 'admin_menu' ] );
		add_action( 'wp_footer', [ $this, 'print_popups' ] );
		add_action( 'elementor_pro/init', [ $this, 'add_form_action' ] );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_items' ] );
	}

	public function get_name() {
		return 'popup';
	}

	public function add_form_action() {
		$this->add_component( 'form-action', new Form_Action() );
	}

	public static function add_popup_to_location( $popup_id ) {
		/** @var \ElementorPro\Modules\ThemeBuilder\Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		$theme_builder->get_locations_manager()->add_doc_to_location( Document::get_property( 'location' ), $popup_id );
	}

	public function register_documents( Documents_Manager $documents_manager ) {
		$documents_manager->register_document_type( self::DOCUMENT_TYPE, Document::get_class_full_name() );
	}

	public function register_location( Locations_Manager $location_manager ) {
		$location_manager->register_location(
			'popup',
			[
				'label' => esc_html__( 'Popup', 'elementor-pro' ),
				'multiple' => true,
				'public' => false,
				'edit_in_content' => false,
			]
		);
	}

	public function print_popups() {
		elementor_theme_do_location( 'popup' );
	}

	public function register_tag( DynamicTagsManager $dynamic_tags ) {
		$dynamic_tags->register_tag( __NAMESPACE__ . '\Tag' );
	}

	public function register_ajax_actions( Ajax $ajax ) {
		$ajax->register_ajax_action( 'pro_popup_save_display_settings', [ $this, 'save_display_settings' ] );
	}

	public function localize_settings( array $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'popups' => esc_html__( 'Popups', 'elementor-pro' ),
				'triggers' => esc_html__( 'Triggers', 'elementor-pro' ),
				'timing' => esc_html__( 'Advanced Rules', 'elementor-pro' ),
				'popup_publish_screen_triggers_description' => esc_html__( 'What action the user needs to do for the popup to open.', 'elementor-pro' ),
				'popup_publish_screen_timing_description' => esc_html__( 'Requirements that have to be met for the popup to open.', 'elementor-pro' ),
				'popup_settings_introduction_title' => esc_html__( 'Please Note', 'elementor-pro' ),
				'popup_settings_introduction_message' => esc_html__( 'Popup settings are accessed via the settings icon in the bottom menu', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public function save_display_settings( $data ) {
		/** @var Document $popup_document */
		$popup_document = Plugin::elementor()->documents->get( $data['editor_post_id'] );

		$popup_document->save_display_settings_data( $data['settings'] );
	}

	/**
	 * Add New item to admin menu.
	 *
	 * Fired by `admin_menu` action.
	 *
	 * @since 2.4.0
	 * @access public
	 */
	public function admin_menu() {
		add_submenu_page( Source_Local::ADMIN_MENU_SLUG, '', esc_html__( 'Popups', 'elementor-pro' ), 'publish_posts', $this->get_admin_url( true ) );
	}

	public function add_finder_items( array $categories ) {
		$categories['general']['items']['popups'] = [
			'title' => esc_html__( 'Popups', 'elementor-pro' ),
			'icon' => 'library-save',
			'url' => $this->get_admin_url(),
			'keywords' => [ 'template', 'popup', 'library' ],
		];

		$categories['create']['items']['popups'] = [
			'title' => esc_html__( 'Add New Popup', 'elementor-pro' ),
			'icon' => 'plus-circle-o',
			'url' => $this->get_admin_url() . '#add_new',
			'keywords' => [ 'template', 'theme', 'popup', 'new', 'create' ],
		];

		return $categories;

	}

	private function get_admin_url( $relative = false ) {
		$base_url = Source_Local::ADMIN_MENU_SLUG;
		if ( ! $relative ) {
			$base_url = admin_url( $base_url );
		}

		return add_query_arg(
			[
				'tabs_group' => 'popup',
				'elementor_library_type' => 'popup',
			],
			$base_url
		);
	}
}
PK!�9�&��modules/popup/tag.phpnu�[���<?php
namespace ElementorPro\Modules\Popup;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag as DynamicTagsTag;
use ElementorPro\Modules\DynamicTags\Module as DynamicTagsModule;
use ElementorPro\Modules\QueryControl\Module as QueryControlModule;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Tag extends DynamicTagsTag {

	public function get_name() {
		return 'popup';
	}

	public function get_title() {
		return esc_html__( 'Popup', 'elementor-pro' );
	}

	public function get_group() {
		return DynamicTagsModule::ACTION_GROUP;
	}

	public function get_categories() {
		return [ DynamicTagsModule::URL_CATEGORY ];
	}

	public function register_controls() {
		$this->add_control(
			'action',
			[
				'label' => esc_html__( 'Action', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'open',
				'options' => [
					'open' => esc_html__( 'Open Popup', 'elementor-pro' ),
					'close' => esc_html__( 'Close Popup', 'elementor-pro' ),
					'toggle' => esc_html__( 'Toggle Popup', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'popup',
			[
				'label' => esc_html__( 'Popup', 'elementor-pro' ),
				'type' => QueryControlModule::QUERY_CONTROL_ID,
				'autocomplete' => [
					'object' => QueryControlModule::QUERY_OBJECT_LIBRARY_TEMPLATE,
					'query' => [
						'posts_per_page' => 20,
						'post_status' => [ 'publish', 'private' ],
						'meta_query' => [
							[
								'key' => Document::TYPE_META_KEY,
								'value' => 'popup',
							],
						],
					],
				],
				'label_block' => true,
				'condition' => [
					'action' => [ 'open', 'toggle' ],
				],
			]
		);

		$this->add_control(
			'do_not_show_again',
			[
				'label' => esc_html__( 'Don\'t Show Again', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'action' => 'close',
				],
			]
		);
	}

	public function render() {
		$settings = $this->get_active_settings();

		if ( 'close' === $settings['action'] ) {
			$this->print_close_popup_link( $settings );

			return;
		}

		$this->print_open_popup_link( $settings );
	}

	// Keep Empty to avoid default advanced section
	protected function register_advanced_section() {}

	private function print_open_popup_link( array $settings ) {
		if ( ! $settings['popup'] ) {
			return;
		}

		$link_action_url = Plugin::elementor()->frontend->create_action_hash( 'popup:open', [
			'id' => $settings['popup'],
			'toggle' => 'toggle' === $settings['action'],
		] );

		Module::add_popup_to_location( $settings['popup'] );

		// PHPCS - `create_action_hash` is safe.
		echo $link_action_url; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	private function print_close_popup_link( array $settings ) {
		// PHPCS - `create_action_hash` is safe.
		echo Plugin::elementor()->frontend->create_action_hash( 'popup:close', [ 'do_not_show_again' => $settings['do_not_show_again'] ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK!~jL�L�Lmodules/popup/document.phpnu�[���<?php
namespace ElementorPro\Modules\Popup;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Background;
use ElementorPro\Modules\Popup\DisplaySettings\Base;
use ElementorPro\Modules\Popup\DisplaySettings\Timing;
use ElementorPro\Modules\Popup\DisplaySettings\Triggers;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Section_Document;
use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilderModule;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Document extends Theme_Section_Document {

	const DISPLAY_SETTINGS_META_KEY = '_elementor_popup_display_settings';

	/**
	 * @var Base[]
	 */
	private $display_settings;

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['admin_tab_group'] = 'popup';
		$properties['location'] = 'popup';
		$properties['support_kit'] = true;
		$properties['support_site_editor'] = false;

		return $properties;
	}

	public static function get_title() {
		return esc_html__( 'Popup', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Popups', 'elementor-pro' );
	}

	public function get_display_settings() {
		if ( ! $this->display_settings ) {
			$settings = $this->get_display_settings_data();

			if ( ! $settings ) {
				$settings = [
					'triggers' => [],
					'timing' => [],
				];
			}

			$id = $this->get_main_id();

			$this->display_settings = [
				'triggers' => new Triggers( [
					'id' => $id,
					'settings' => $settings['triggers'],
				] ),
				'timing' => new Timing( [
					'id' => $id,
					'settings' => $settings['timing'],
				] ),
			];
		}

		return $this->display_settings;
	}

	public function get_initial_config() {
		$config = parent::get_initial_config();

		$display_settings = $this->get_display_settings();

		$config['displaySettings'] = [
			'triggers' => [
				'controls' => $display_settings['triggers']->get_controls(),
				'settings' => $display_settings['triggers']->get_settings(),
			],
			'timing' => [
				'controls' => $display_settings['timing']->get_controls(),
				'settings' => $display_settings['timing']->get_settings(),
			],
		];

		$config['container'] = '.elementor-popup-modal .dialog-widget-content';

		return $config;
	}

	public function get_name() {
		return 'popup';
	}

	public function get_css_wrapper_selector() {
		return '#elementor-popup-modal-' . $this->get_main_id();
	}

	public function get_display_settings_data() {
		return $this->get_main_meta( self::DISPLAY_SETTINGS_META_KEY );
	}

	public function save_display_settings_data( $display_settings_data ) {
		$this->update_main_meta( self::DISPLAY_SETTINGS_META_KEY, $display_settings_data );
	}

	public function get_frontend_settings() {
		$settings = parent::get_frontend_settings();

		$display_settings = $this->get_display_settings();

		// Disable triggers if the popup is not printed by the theme builder conditions.
		// avoid auto show the popup if it's enqueued by a dynamic tag and etc.)
		$popups_by_condition = ThemeBuilderModule::instance()->get_conditions_manager()->get_documents_for_location( 'popup' );

		if ( $popups_by_condition && isset( $popups_by_condition[ $this->get_main_id() ] ) ) {
			$settings['triggers'] = $display_settings['triggers']->get_frontend_settings();
		}

		$settings['timing'] = $display_settings['timing']->get_frontend_settings();

		return $settings;
	}

	public function get_export_data() {
		$data = parent::get_export_data();

		$display_settings = $this->get_display_settings();

		$data['display_settings'] = [
			'triggers' => $display_settings['triggers']->get_frontend_settings(),
			'timing' => $display_settings['timing']->get_frontend_settings(),
		];

		return $data;
	}

	public function import( array $data ) {
		parent::import( $data );

		$this->save_display_settings_data( $data['display_settings'] );
	}

	protected function register_controls() {
		$this->start_controls_section(
			'popup_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_SETTINGS,
			]
		);

		$this->add_responsive_control(
			'width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vw' ],
				'default' => [
					'size' => 640,
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-message' => 'width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'height_type',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'auto',
				'options' => [
					'auto' => esc_html__( 'Fit To Content', 'elementor-pro' ),
					'fit_to_screen' => esc_html__( 'Fit To Screen', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'selectors_dictionary' => [
					'fit_to_screen' => '100vh',
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-message' => 'height: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'height',
			[
				'label' => esc_html__( 'Custom Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vh' ],
				'condition' => [
					'height_type' => 'custom',
				],
				'default' => [
					'size' => 380,
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-message' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'content_position',
			[
				'label' => esc_html__( 'Content Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'top',
				'options' => [
					'top' => esc_html__( 'Top', 'elementor-pro' ),
					'center' => esc_html__( 'Center', 'elementor-pro' ),
					'bottom' => esc_html__( 'Bottom', 'elementor-pro' ),
				],
				'condition' => [
					'height_type!' => 'auto',
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-message' => 'align-items: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'position_heading',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'horizontal_position',
			[
				'label' => esc_html__( 'Horizontal', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'toggle' => false,
				'default' => 'center',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'justify-content: {{VALUE}}',
				],
				'selectors_dictionary' => [
					'left' => 'flex-start',
					'right' => 'flex-end',
				],
			]
		);

		$this->add_responsive_control(
			'vertical_position',
			[
				'label' => esc_html__( 'Vertical', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'toggle' => false,
				'default' => 'center',
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'align-items: {{VALUE}}',
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'bottom' => 'flex-end',
				],
			]
		);

		$this->add_control(
			'overlay',
			[
				'label' => esc_html__( 'Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => 'pointer-events: all',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'close_button',
			[
				'label' => esc_html__( 'Close Button', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'yes',
				'selectors' => [
					// Using flex to make sure that each icon type (i or SVG) will be vertically aligned.
					'{{WRAPPER}} .dialog-close-button' => 'display: flex',
				],
			]
		);

		$this->add_responsive_control(
			'entrance_animation',
			[
				'label' => esc_html__( 'Entrance Animation', 'elementor-pro' ),
				'type' => Controls_Manager::ANIMATION,
				'frontend_available' => true,
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'exit_animation',
			[
				'label' => esc_html__( 'Exit Animation', 'elementor-pro' ),
				'type' => Controls_Manager::EXIT_ANIMATION,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'entrance_animation_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'elementor-pro' ) . ' (sec)',
				'type' => Controls_Manager::SLIDER,
				'frontend_available' => true,
				'default' => [
					'size' => 1.2,
				],
				'range' => [
					'px' => [
						'min' => 0.1,
						'max' => 5,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-widget-content' => 'animation-duration: {{SIZE}}s',
				],
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'entrance_animation',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'exit_animation',
							'operator' => '!==',
							'value' => '',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		parent::register_controls();

		$this->start_controls_section(
			'section_page_style',
			[
				'label' => esc_html__( 'Popup', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name'  => 'background',
				'selector' => '{{WRAPPER}} .dialog-widget-content',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name'  => 'border',
				'selector' => '{{WRAPPER}} .dialog-widget-content',
			]
		);

		$this->add_responsive_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .dialog-widget-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}} .dialog-widget-content',
				'fields_options' => [
					'box_shadow_type' => [
						'default' => 'yes',
					],
					'box_shadow' => [
						'default' => [
							'horizontal' => 2,
							'vertical' => 8,
							'blur' => 23,
							'spread' => 3,
							'color' => 'rgba(0,0,0,0.2)',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_overlay',
			[
				'label' => esc_html__( 'Overlay', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'overlay' => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'overlay_background',
				'types' => [ 'classic', 'gradient' ],
				'selector' => '{{WRAPPER}}',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
					'color' => [
						'default' => 'rgba(0,0,0,.8)',
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_close_button',
			[
				'label' => esc_html__( 'Close Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'close_button!' => '',
				],
			]
		);

		$this->add_control(
			'close_button_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Inside', 'elementor-pro' ),
					'outside' => esc_html__( 'Outside', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'close_button_vertical',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'range' => [
					'%' => [
						'max' => 100,
						'min' => 0,
						'step' => 0.1,
					],
					'px' => [
						'max' => 500,
						'min' => -500,
					],
				],
				'default' => [
					'unit' => '%',
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button' => 'top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'close_button_horizontal',
			[
				'label' => esc_html__( 'Horizontal Position', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'range' => [
					'%' => [
						'max' => 100,
						'min' => 0,
						'step' => 0.1,
					],
					'px' => [
						'max' => 500,
						'min' => -500,
					],
				],
				'default' => [
					'unit' => '%',
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .dialog-close-button' => 'right: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .dialog-close-button' => 'left: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'after',
			]
		);

		$this->start_controls_tabs( 'close_button_style_tabs' );

		$this->start_controls_tab(
			'tab_x_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'close_button_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button i' => 'color: {{VALUE}}',
					'{{WRAPPER}} .dialog-close-button svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'close_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_x_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'close_button_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button:hover i' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'close_button_hover_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .dialog-close-button' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_advanced',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_ADVANCED,
			]
		);

		$this->add_control(
			'close_button_delay',
			[
				'label' => esc_html__( 'Show Close Button After', 'elementor-pro' ) . ' (sec)',
				'type' => Controls_Manager::NUMBER,
				'min' => 0.1,
				'max' => 60,
				'step' => 0.1,
				'condition' => [
					'close_button' => 'yes',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'close_automatically',
			[
				'label' => esc_html__( 'Automatically Close After', 'elementor-pro' ) . ' (sec)',
				'type' => Controls_Manager::NUMBER,
				'min' => 0.1,
				'max' => 60,
				'step' => 0.1,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'prevent_close_on_background_click',
			[
				'label' => esc_html__( 'Prevent Closing on Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'prevent_close_on_esc_key',
			[
				'label' => esc_html__( 'Prevent Closing on ESC key', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'prevent_scroll',
			[
				'label' => esc_html__( 'Disable Page Scrolling', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'avoid_multiple_popups',
			[
				'label' => esc_html__( 'Avoid Multiple Popups', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'description' => esc_html__( 'If the user has seen another popup on the page hide this popup', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'open_selector',
			[
				'label' => esc_html__( 'Open By Selector', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( '#id, .class', 'elementor-pro' ),
				'description' => esc_html__( 'In order to open a popup on selector click, please set your Popup Conditions', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}} .dialog-widget-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .dialog-message' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'classes',
			[
				'label' => esc_html__( 'CSS Classes', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'title' => esc_html__( 'Add your custom class WITHOUT the dot. e.g: my-class', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->end_controls_section();

		Plugin::elementor()->controls_manager->add_custom_css_controls( $this );
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();
		$config['type'] = 'popup';
		$config['default_route'] = 'templates/popups';
		$config['autoImportSettings'] = true;

		return $config;
	}
}
PK!�����
�
modules/popup/form-action.phpnu�[���<?php
namespace ElementorPro\Modules\Popup;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Action_Base;
use ElementorPro\Modules\QueryControl\Module as QueryControlModule;
use ElementorPro\Modules\Forms\Module as FormsModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Form_Action extends Action_Base {

	public function get_name() {
		return 'popup';
	}

	public function get_label() {
		return esc_html__( 'Popup', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_popup',
			[
				'label' => esc_html__( 'Popup', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'popup_action',
			[
				'label' => esc_html__( 'Action', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Choose', 'elementor-pro' ),
					'open' => esc_html__( 'Open Popup', 'elementor-pro' ),
					'close' => esc_html__( 'Close Popup', 'elementor-pro' ),
				],
			]
		);

		$widget->add_control(
			'popup_action_popup_id',
			[
				'label' => esc_html__( 'Popup', 'elementor-pro' ),
				'type' => QueryControlModule::QUERY_CONTROL_ID,
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryControlModule::QUERY_OBJECT_LIBRARY_TEMPLATE,
					'query' => [
						'posts_per_page' => 20,
						'meta_query' => [
							[
								'key' => Document::TYPE_META_KEY,
								'value' => 'popup',
							],
						],
					],
				],
				'condition' => [
					'popup_action' => 'open',
				],
			]
		);

		$widget->add_control(
			'popup_action_do_not_show_again',
			[
				'label' => esc_html__( 'Don\'t Show Again', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'popup_action' => 'close',
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['popup_action'],
			$element['settings']['popup_action_popup_id'],
			$element['settings']['popup_action_do_not_show_again']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$popup_action = $record->get_form_settings( 'popup_action' );

		if ( empty( $popup_action ) ) {
			return;
		}

		$action_settings = [
			'action' => $popup_action,
		];

		if ( 'open' === $popup_action ) {
			$popup_id = $record->get_form_settings( 'popup_action_popup_id' );

			if ( empty( $popup_id ) ) {
				return;
			}

			$action_settings['id'] = $popup_id;
		} else {
			$action_settings['do_not_show_again'] = $record->get_form_settings( 'popup_action_do_not_show_again' );
		}

		$ajax_handler->add_response_data( 'popup', $action_settings );
	}

	public function maybe_print_popup( $settings, $widget ) {
		if ( ! is_array( $settings['submit_actions'] ) || ! in_array( 'popup', $settings['submit_actions'] ) ) {
			return;
		}

		$has_valid_settings = ( ! empty( $settings['popup_action'] ) && 'open' === $settings['popup_action'] && ! empty( $settings['popup_action_popup_id'] ) );
		if ( ! $has_valid_settings ) {
			return;
		}

		Module::add_popup_to_location( $settings['popup_action_popup_id'] );
	}

	public function __construct() {
		/** @var FormsModule $forms_module */
		$forms_module = FormsModule::instance();

		// Register popup form action
		$forms_module->actions_registrar->register( $this );

		add_action( 'elementor-pro/forms/pre_render', [ $this, 'maybe_print_popup' ], 10, 2 );
	}
}
PK!���

2modules/popup/assets/images/triggers/page_load.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g transform="translate(12.631579, 6.315789)">
            <path d="M11.5165481,10.1825079 L14.6635031,13.043376 C14.715123,13.0903032 14.7189272,13.1701914 14.672,13.2218113 C14.6480603,13.2481449 14.6141227,13.2631579 14.5785339,13.2631579 L8.28462403,13.2631579 C8.21486174,13.2631579 8.15830824,13.2066044 8.15830824,13.1368421 C8.15830824,13.1012533 8.17332122,13.0673156 8.19965483,13.043376 L11.3466098,10.1825079 C11.3947893,10.1387083 11.4683686,10.1387083 11.5165481,10.1825079 Z" fill="#71D7F7" transform="translate(11.431579, 11.684211) scale(1, -1) translate(-11.431579, -11.684211) "></path>
            <path d="M10.8021641,22.6684287 L11.9744991,22.7395718 C12.0381545,22.7434348 12.0889464,22.7941398 12.0929183,22.8577884 L12.1662104,24.0322737 C12.1705554,24.1019005 12.1176339,24.1618665 12.0480071,24.1662115 C12.0430315,24.166522 12.0380419,24.1665377 12.0330645,24.1662584 L10.8515719,24.0999751 C10.787295,24.096369 10.7360137,24.0449997 10.7325179,23.9807167 L10.6683833,22.8013717 C10.6645951,22.7317123 10.7179943,22.6721713 10.7876536,22.6683831 C10.7924873,22.6681203 10.7973322,22.6681355 10.8021641,22.6684287 Z" fill="#71D7F7" transform="translate(11.417327, 23.417327) rotate(-45.000000) translate(-11.417327, -23.417327) "></path>
            <path d="M9.91795361,25.0684287 L11.0902886,25.1395718 C11.1539439,25.1434348 11.2047359,25.1941398 11.2087078,25.2577884 L11.2819999,26.4322737 C11.2863448,26.5019005 11.2334234,26.5618665 11.1637966,26.5662115 C11.158821,26.566522 11.1538314,26.5665377 11.1488539,26.5662584 L9.96736139,26.4999751 C9.90308452,26.496369 9.85180314,26.4449997 9.84830733,26.3807167 L9.7841728,25.2013717 C9.78038462,25.1317123 9.83378376,25.0721713 9.90344311,25.0683831 C9.90827682,25.0681203 9.91312165,25.0681355 9.91795361,25.0684287 Z" fill="#71D7F7" transform="translate(10.533116, 25.817327) rotate(-45.000000) translate(-10.533116, -25.817327) "></path>
            <path d="M12.4442694,24.1842182 L13.6166044,24.2553613 C13.6802597,24.2592242 13.7310517,24.3099293 13.7350236,24.3735779 L13.8083157,25.5480632 C13.8126606,25.61769 13.7597392,25.677656 13.6901124,25.682001 C13.6851368,25.6823115 13.6801472,25.6823271 13.6751697,25.6820479 L12.4936772,25.6157645 C12.4294003,25.6121585 12.3781189,25.5607891 12.3746231,25.4965062 L12.3104886,24.3171611 C12.3067004,24.2475018 12.3600995,24.1879608 12.4297589,24.1841726 C12.4345926,24.1839098 12.4394374,24.183925 12.4442694,24.1842182 Z" fill="#71D7F7" transform="translate(13.059432, 24.933116) rotate(-45.000000) translate(-13.059432, -24.933116) "></path>
            <rect stroke="#A4AFB7" stroke-width="1.64210526" x="0.821052632" y="0.821052632" width="21.0947368" height="2.77894737" rx="1.38947368"></rect>
            <rect stroke="#A4AFB7" stroke-width="1.64210526" x="0.821052632" y="31.1368421" width="21.0947368" height="2.77894737" rx="1.38947368"></rect>
            <path d="M11.3684211,17.2475329 C12.6070668,16.1489688 14.1638359,14.7028853 16.0387284,12.9092825 C17.7228201,11.298208 21.1087068,8.44856945 21.1087068,6.35826994 C21.1087068,5.47191262 20.6428865,4.55283881 19.7112459,3.60104852 L11.3684211,3.60490337 L2.81303968,3.61392373 C1.90391139,4.62138713 1.44934725,5.51915645 1.44934725,6.3072317 C1.44934725,8.79014416 3.91089805,10.7299086 6.03592722,12.4897975 C7.80360659,13.9537395 9.58110454,15.5396513 11.3684211,17.2475329 Z" stroke="#A4AFB7" stroke-width="1.64210526"></path>
            <path d="M11.3684211,31.1422697 C12.6070668,30.0437056 14.1638359,28.5976221 16.0387284,26.8040193 C17.7228201,25.1929449 21.1087068,22.3433063 21.1087068,20.2530068 C21.1087068,19.3666495 20.6428865,18.4475757 19.7112459,17.4957854 L11.3684211,17.4996402 L2.81303968,17.5086606 C1.90391139,18.516124 1.44934725,19.4138933 1.44934725,20.2019685 C1.44934725,22.684881 3.91089805,24.6246454 6.03592722,26.3845343 C7.80360659,27.8484763 9.58110454,29.4343881 11.3684211,31.1422697 Z" stroke="#A4AFB7" stroke-width="1.64210526" transform="translate(11.279027, 24.319028) scale(1, -1) translate(-11.279027, -24.319028) "></path>
        </g>
    </g>
</svg>PK!�3�tLL3modules/popup/assets/images/triggers/inactivity.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <rect fill="#F1F3F5" x="10.1052632" y="7.57894737" width="6.66517357" height="2.49944009"></rect>
        <path d="M25.3186678,42.3006785 C24.8010525,41.3110006 24.7121853,40.4483361 25.0520662,39.712685 C25.6807782,38.3518769 26.5975305,36.8659868 27.1774381,35.0601576 C27.8719631,32.8974101 28.3464828,30.3724405 28.6009971,27.4852488 C28.9074977,30.1189962 29.0145127,32.1891523 28.9220424,33.6957171 C28.741071,36.6441768 28.7205863,38.9432812 28.2358655,40.098787 C27.9154382,40.8626405 27.7952182,41.5755825 27.8752056,42.2376131 L25.3186678,42.3006785 Z" fill="#F1F3F5"></path>
        <path d="M24.8251433,18.1361878 C24.8605358,17.2525967 24.8728664,16.3013138 24.8621351,15.2823391 C24.8485006,13.9877009 25.0038305,13.2610302 25.2854488,12.3004997 C25.6335695,11.1131457 26.4007105,10.3412569 26.7212843,9.34299163 C27.4158093,7.18024415 28.0972837,3.76399013 28.7657075,-0.905770441 C29.2830044,4.55016489 29.4954177,8.03141495 29.4029473,9.53797974 C29.328075,10.7578289 28.2053933,11.6228079 27.822112,13.5156409 C27.6658918,14.2871335 27.6717905,15.800602 27.8398082,18.0560463 L24.8251433,18.1361878 Z" fill="#F1F3F5" transform="translate(27.124563, 8.615209) scale(1, -1) rotate(-270.000000) translate(-27.124563, -8.615209) "></path>
        <path d="M8.05125367,11.3684211 L18.1916632,11.3815275 L18.3145559,19.1666324 L14.7274385,19.8003701 C15.6628796,15.7037943 14.9509532,13.6796438 12.5916591,13.7279185 C10.232365,13.7761933 9.59572096,15.9341768 10.6817269,20.201869 L8.12618215,20.775185 L8.05125367,11.3684211 Z" fill="#71D7F7"></path>
        <path d="M7.85362112,20.0526316 L7.85362112,12.4210526 C7.85362112,11.5785263 8.54253645,10.8947368 9.39137856,10.8947368 L17.0801657,10.8947368 C17.9290078,10.8947368 18.6179232,11.5785263 18.6179232,12.4210526 L18.6179232,18.4622105" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M20.1556806,15.4736842 L20.1556806,17" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M6.31586369,7.84210526 L21.5442756,7.84210526 C23.0651177,6.85610526 24.9119644,6.31578947 26.8664541,6.31578947 L36.3021337,6.31578947 C37.5769346,6.31578947 38.6087699,7.33994737 38.6087699,8.60526316 C38.6087699,9.87057895 37.5769346,10.8947368 36.3021337,10.8947368 L37.8398911,10.8947368 C39.1146921,10.8947368 40.1465273,11.9188947 40.1465273,13.1842105 C40.1465273,14.4495263 39.1146921,15.4736842 37.8398911,15.4736842 L37.0710124,15.4736842 L39.3776486,15.4736842 C40.6524495,15.4736842 41.6842847,16.4978421 41.6842847,17.7631579 C41.6842847,19.0284737 40.6524495,20.0526316 39.3776486,20.0526316 L35.533255,20.0526316 L37.8398911,20.0526316 C39.1146921,20.0526316 40.1465273,21.0767895 40.1465273,22.3421053 C40.1465273,23.6074211 39.1146921,24.6315789 37.8398911,24.6315789 L31.9349026,24.6315789 L35.533255,24.6315789 L33.8986188,26.2540526 C33.5003397,26.6493684 33.0051818,27.0523158 32.4577401,27.4277895" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M9.39137856,10.8947368 L9.39137856,7.84210526" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M17.0801657,10.8947368 L17.0801657,7.84210526" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M27.8444678,41.4210526 L27.8444678,40.0427895 C28.8378591,38.5332632 29.3822252,36.7001579 29.3822252,34.7602105 L29.3822252,26.9210526 C29.3822252,25.6557368 28.35039,24.6315789 27.0755891,24.6315789 C25.8007882,24.6315789 24.7689529,25.6557368 24.7689529,26.9210526 L24.7689529,25.3947368 C24.7689529,24.1294211 23.7371177,23.1052632 22.4623168,23.1052632 C21.1875159,23.1052632 20.1556806,24.1294211 20.1556806,25.3947368 L20.1556806,26.1578947 L20.1556806,23.8684211 C20.1556806,22.6031053 19.1238454,21.5789474 17.8490445,21.5789474 C16.5742435,21.5789474 15.5424083,22.6031053 15.5424083,23.8684211 L15.5424083,26.1578947 L15.5424083,16.2368421 C15.5424083,14.9715263 14.5105731,13.9473684 13.2357722,13.9473684 C11.9609712,13.9473684 10.929136,14.9715263 10.929136,16.2368421 L10.929136,32.2631579 L10.929136,26.1578947 L9.29449984,27.7788421 C7.84747009,29.2166316 6.32816574,31.8815789 6.31586369,33.7894737 C6.30356163,35.7278947 7.82286597,38.4340526 9.29449984,39.8947368 C9.76812913,40.3358421 10.1479552,40.8563158 10.421676,41.4256316" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M27.8444678,41.4210526 L27.8444678,40.0427895 C28.8378591,38.5332632 29.3822252,36.7001579 29.3822252,34.7602105 L29.3822252,26.9210526 C29.3822252,25.6557368 28.35039,24.6315789 27.0755891,24.6315789 C25.8007882,24.6315789 24.7689529,25.6557368 24.7689529,26.9210526 L24.7689529,25.3947368 C24.7689529,24.1294211 23.7371177,23.1052632 22.4623168,23.1052632 C21.1875159,23.1052632 20.1556806,24.1294211 20.1556806,25.3947368 L20.1556806,23.8684211 C20.1556806,22.6031053 19.1238454,21.5789474 17.8490445,21.5789474 C16.5742435,21.5789474 15.5424083,22.6031053 15.5424083,23.8684211 L15.5424083,16.2368421 C15.5424083,14.9715263 14.5105731,13.9473684 13.2357722,13.9473684 C11.9609712,13.9473684 10.929136,14.9715263 10.929136,16.2368421 L10.929136,26.1578947 L9.29449984,27.7788421 C7.84747009,29.2166316 6.32816574,31.8815789 6.31586369,33.7894737 C6.30356163,35.7278947 7.82286597,38.4340526 9.29449984,39.8947368 C9.76812913,40.3358421 10.1479552,40.8563158 10.421676,41.4256316" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
    </g>
</svg>PK!g)�;;4modules/popup/assets/images/triggers/exit_intent.svgnu�[���<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#F1F3F5;}
	.st1{fill:none;stroke:#A4AFB7;stroke-width:1.6421;stroke-linecap:round;stroke-linejoin:round;}
	.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#A4AFB7;}
	.st3{fill:none;stroke:#71D7F7;stroke-width:1.6421;stroke-linecap:round;stroke-linejoin:round;}
</style>
<g id="On-Page-Exit-Intent-Copy">
	<g id="Group-2" transform="translate(5.000000, 7.000000)">
		<polygon id="Rectangle-Copy-7" class="st0" points="36.5,6.9 36.5,33 10.2,33 		"/>
		<path id="Stroke-14" class="st1" d="M37.2,30.7c0,1.8-1.4,3.2-3.2,3.2H4c-1.7,0-3.2-1.4-3.2-3.2V3.3c0-1.8,1.4-3.2,3.2-3.2h30
			c1.7,0,3.2,1.4,3.2,3.2V30.7L37.2,30.7z"/>
		<path id="Stroke-16" class="st1" d="M0.8,6.6h36.3"/>
		<path id="Fill-18" class="st2" d="M4.8,3.3c0,0.4-0.4,0.8-0.8,0.8S3.2,3.8,3.2,3.3S3.6,2.5,4,2.5S4.8,2.9,4.8,3.3"/>
		<path id="Fill-20" class="st2" d="M7.9,3.3c0,0.4-0.4,0.8-0.8,0.8S6.4,3.8,6.4,3.3s0.4-0.8,0.8-0.8S7.9,2.9,7.9,3.3"/>
		<path id="Fill-22" class="st2" d="M11.1,3.3c0,0.4-0.4,0.8-0.8,0.8c-0.4,0-0.8-0.4-0.8-0.8s0.4-0.8,0.8-0.8
			C10.8,2.5,11.1,2.9,11.1,3.3"/>
		<g id="Group" transform="translate(3.000000, 9.000000)">
			<path id="Stroke-9-Copy-2" class="st3" d="M1.1,3.1l2.7-2.7"/>
			<path id="Stroke-9-Copy" class="st3" d="M1.1,0.5l2.7,2.7"/>
		</g>
		<g id="Group-79" transform="translate(11.000000, 16.000000)">
			<path id="Stroke-822" class="st1" d="M12.7,12.8L0.1,0.2"/>
			<polyline id="Stroke-823" class="st1" points="6.4,0.2 0.1,0.2 0.1,6.5 			"/>
		</g>
	</g>
</g>
</svg>
PK!#\�	�	5modules/popup/assets/images/triggers/scrolling_to.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <polygon fill="#F1F3F5" points="41.5194508 13.8947368 41.5194508 40 15.1578947 40"></polygon>
        <g transform="translate(5.052632, 6.315789)">
            <path d="M37.1052632,31.3492823 C37.1052632,33.1257416 35.6921053,34.5645933 33.9473684,34.5645933 L3.94736842,34.5645933 C2.20263158,34.5645933 0.789473684,33.1257416 0.789473684,31.3492823 L0.789473684,4.01913876 C0.789473684,2.24267943 2.20263158,0.803827751 3.94736842,0.803827751 L33.9473684,0.803827751 C35.6921053,0.803827751 37.1052632,2.24267943 37.1052632,4.01913876 L37.1052632,31.3492823 L37.1052632,31.3492823 Z" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M0.789473684,7.23444976 L37.1052632,7.23444976" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M4.73684211,4.01913876 C4.73684211,4.46285167 4.38315789,4.82296651 3.94736842,4.82296651 C3.51157895,4.82296651 3.15789474,4.46285167 3.15789474,4.01913876 C3.15789474,3.57542584 3.51157895,3.215311 3.94736842,3.215311 C4.38315789,3.215311 4.73684211,3.57542584 4.73684211,4.01913876" fill="#A4AFB7"></path>
            <path d="M7.89473684,4.01913876 C7.89473684,4.46285167 7.54105263,4.82296651 7.10526316,4.82296651 C6.66947368,4.82296651 6.31578947,4.46285167 6.31578947,4.01913876 C6.31578947,3.57542584 6.66947368,3.215311 7.10526316,3.215311 C7.54105263,3.215311 7.89473684,3.57542584 7.89473684,4.01913876" fill="#A4AFB7"></path>
            <path d="M11.0526316,4.01913876 C11.0526316,4.46285167 10.6989474,4.82296651 10.2631579,4.82296651 C9.82736842,4.82296651 9.47368421,4.46285167 9.47368421,4.01913876 C9.47368421,3.57542584 9.82736842,3.215311 10.2631579,3.215311 C10.6989474,3.215311 11.0526316,3.57542584 11.0526316,4.01913876" fill="#A4AFB7"></path>
            <polyline stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" points="11.8421053 15.2727273 16.5789474 20.0956938 11.8421053 24.9186603"></polyline>
            <path d="M19.7368421,23.3110048 L27.6315789,23.3110048" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        </g>
    </g>
</svg>PK!}q�::2modules/popup/assets/images/triggers/scrolling.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M21.5384457,33.1173417 C21.8647967,33.5218169 22.4883799,33.943468 23.4091953,34.382295 C28.4935214,36.8052992 33.1450966,34.723273 34.3050987,33.5822368 C36.2697707,31.649687 37.5449557,27.6240394 38.1306538,21.505294 C39.2211897,29.0517423 38.5032517,33.8998321 35.9768397,36.0495633 C34.7666236,37.0793398 30.220758,38.4559025 26.5808843,37.6373854 C25.0336203,37.2894442 23.3528075,35.782763 21.5384457,33.1173417 Z" fill="#F1F3F5"></path>
        <g transform="translate(8.842105, 3.789474)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.64210526">
            <g transform="translate(5.052632, 1.263158)">
                <path d="M16.570279,20.7631579 L19.8203107,18.6010263 C21.3948603,17.5561974 23.5144463,17.9185658 24.6489294,19.4264211 C25.2323202,20.2014868 25.1778166,21.2805395 24.5217543,21.9952105 L16.3522644,30.8833026 C15.2036507,32.1314605 13.5846907,32.8421053 11.8870033,32.8421053 L8.49566579,32.8421053 C4.03646067,32.8421053 0.421052632,29.2365395 0.421052632,24.7894737 L0.421052632,16.7368421 C0.421052632,15.6255789 1.32540931,14.7236842 2.43970592,14.7236842 C3.55400254,14.7236842 4.45835921,15.6255789 4.45835921,16.7368421 L4.45835921,17.7434211 L4.45835921,14.7236842 C4.45835921,13.6124211 5.36271589,12.7105263 6.4770125,12.7105263 C7.59130912,12.7105263 8.49566579,13.6124211 8.49566579,14.7236842 L8.49566579,17.7434211 L8.49566579,12.7105263 C8.49566579,11.5992632 9.40002247,10.6973684 10.5143191,10.6973684 C11.6286157,10.6973684 12.5329724,11.5992632 12.5329724,12.7105263 L12.5329724,17.7434211 L12.5329724,6.67105263 C12.5329724,5.55978947 13.437329,4.65789474 14.5516257,4.65789474 C15.6659223,4.65789474 16.570279,5.55978947 16.570279,6.67105263 L16.570279,20.7631579" stroke="#A4AFB7" transform="translate(12.736842, 18.750000) scale(-1, 1) translate(-12.736842, -18.750000) "></path>
                <path d="M15.8344421,7.83606041 C15.9557053,7.38395973 16.0421053,6.91648146 16.0421053,6.42593684 C16.0421053,3.45345172 13.6668632,1.04378581 10.7368421,1.04378581 C7.80682105,1.04378581 5.43157895,3.45345172 5.43157895,6.42593684 C5.43157895,7.37473318 5.69381053,8.25279268 6.11974737,9.02782243" stroke="#71D7F7"></path>
            </g>
            <g transform="translate(0.000000, 27.789474)" stroke="#A4AFB7">
                <path d="M3.78947368,0.768878719 L3.78947368,13.0709382"></path>
                <polyline points="6.82105263 9.99542334 3.78947368 13.0709382 0.757894737 9.99542334"></polyline>
            </g>
            <g transform="translate(3.789474, 6.947368) scale(1, -1) translate(-3.789474, -6.947368) " stroke="#A4AFB7">
                <path d="M3.78947368,0.768878719 L3.78947368,13.0709382"></path>
                <polyline points="6.82105263 9.99542334 3.78947368 13.0709382 0.757894737 9.99542334"></polyline>
            </g>
        </g>
    </g>
</svg>PK!���C��.modules/popup/assets/images/triggers/click.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g transform="translate(12.631579, 16.421053)">
            <path d="M7.64370888,24.2752364 C7.97005988,24.6797116 8.59364306,25.1013627 9.51445843,25.5401897 C14.5987846,27.9631939 19.2503598,25.8811678 20.4103618,24.7401316 C22.3750338,22.8075817 23.6502188,18.7819341 24.2359169,12.6631887 C25.3264528,20.209637 24.6085148,25.0577268 22.0821029,27.2074581 C20.8718867,28.2372345 16.3260212,29.6137973 12.6861474,28.7952801 C11.1388835,28.4473389 9.45807064,26.9406577 7.64370888,24.2752364 Z" fill="#F1F3F5"></path>
            <path d="M16.570279,16.9736842 L19.8203107,14.8115526 C21.3948603,13.7667237 23.5144463,14.1290921 24.6489294,15.6369474 C25.2323202,16.4120132 25.1778166,17.4910658 24.5217543,18.2057368 L16.3522644,27.0938289 C15.2036507,28.3419868 13.5846907,29.0526316 11.8870033,29.0526316 L8.49566579,29.0526316 C4.03646067,29.0526316 0.421052632,25.4470658 0.421052632,21 L0.421052632,12.9473684 C0.421052632,11.8361053 1.32540931,10.9342105 2.43970592,10.9342105 C3.55400254,10.9342105 4.45835921,11.8361053 4.45835921,12.9473684 L4.45835921,13.9539474 L4.45835921,10.9342105 C4.45835921,9.82294737 5.36271589,8.92105263 6.4770125,8.92105263 C7.59130912,8.92105263 8.49566579,9.82294737 8.49566579,10.9342105 L8.49566579,13.9539474 L8.49566579,8.92105263 C8.49566579,7.80978947 9.40002247,6.90789474 10.5143191,6.90789474 C11.6286157,6.90789474 12.5329724,7.80978947 12.5329724,8.92105263 L12.5329724,13.9539474 L12.5329724,2.88157895 C12.5329724,1.77031579 13.437329,0.868421053 14.5516257,0.868421053 C15.6659223,0.868421053 16.570279,1.77031579 16.570279,2.88157895 L16.570279,16.9736842" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(12.736842, 14.960526) scale(-1, 1) translate(-12.736842, -14.960526) "></path>
        </g>
        <path d="M18.0631579,18.8842105 C18.0631579,15.9190526 20.5135439,13.5157895 23.5368421,13.5157895 C26.5601404,13.5157895 29.0105263,15.9190526 29.0105263,18.8842105" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(23.536842, 16.200000) scale(-1, 1) translate(-23.536842, -16.200000) "></path>
        <path d="M21.1578947,2.52631579 L21.1578947,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(22.526316, 4.539474) scale(-1, 1) translate(-22.526316, -4.539474) "></path>
        <path d="M7.57894737,18.6315789 L11.6842105,18.6315789" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(9.631579, 19.973684) scale(-1, 1) translate(-9.631579, -19.973684) "></path>
        <path d="M40.4210526,18.6315789 L36.3157895,18.6315789" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(38.368421, 19.973684) scale(-1, 1) translate(-38.368421, -19.973684) "></path>
        <path d="M11.6842105,10.5789474 L14.4210526,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(13.052632, 8.565789) scale(-1, 1) translate(-13.052632, -8.565789) "></path>
        <path d="M36.3157895,10.5789474 L33.5789474,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(34.947368, 8.565789) scale(-1, 1) translate(-34.947368, -8.565789) "></path>
    </g>
</svg>PK!��??,modules/popup/assets/images/triggers-tab.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g  stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M20.2752878,40.6962891 C20.6016388,41.1007643 21.225222,41.5224154 22.1460374,41.9612424 C27.2303635,44.3842466 31.8819387,42.3022204 33.0419408,41.1611842 C35.0066128,39.2286343 36.2817978,35.2029867 36.8674959,29.0842414 C37.9580318,36.6306896 37.2400938,41.4787794 34.7136818,43.6285107 C33.5034657,44.6582871 28.9576001,46.0348499 25.3177264,45.2163328 C23.7704624,44.8683916 22.0896496,43.3617103 20.2752878,40.6962891 Z" fill="#F1F3F5" fill-rule="nonzero"></path>
        <path d="M29.2018579,33.3947368 L32.4518897,31.2326053 C34.0264393,30.1877763 36.1460252,30.5501447 37.2805084,32.058 C37.8638992,32.8330658 37.8093955,33.9121184 37.1533332,34.6267895 L28.9838433,43.5148816 C27.8352296,44.7630395 26.2162697,45.4736842 24.5185823,45.4736842 L21.1272447,45.4736842 C16.6680396,45.4736842 13.0526316,41.8681184 13.0526316,37.4210526 L13.0526316,29.3684211 C13.0526316,28.2571579 13.9569883,27.3552632 15.0712849,27.3552632 C16.1855815,27.3552632 17.0899382,28.2571579 17.0899382,29.3684211 L17.0899382,30.375 L17.0899382,27.3552632 C17.0899382,26.244 17.9942948,25.3421053 19.1085914,25.3421053 C20.2228881,25.3421053 21.1272447,26.244 21.1272447,27.3552632 L21.1272447,30.375 L21.1272447,25.3421053 C21.1272447,24.2308421 22.0316014,23.3289474 23.145898,23.3289474 C24.2601946,23.3289474 25.1645513,24.2308421 25.1645513,25.3421053 L25.1645513,30.375 L25.1645513,19.3026316 C25.1645513,18.1913684 26.068908,17.2894737 27.1832046,17.2894737 C28.2975012,17.2894737 29.2018579,18.1913684 29.2018579,19.3026316 L29.2018579,33.3947368" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(25.368421, 31.381579) scale(-1, 1) translate(-25.368421, -31.381579) "></path>
        <path d="M18.0631579,18.8842105 C18.0631579,15.9190526 20.5135439,13.5157895 23.5368421,13.5157895 C26.5601404,13.5157895 29.0105263,15.9190526 29.0105263,18.8842105" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(23.536842, 16.200000) scale(-1, 1) translate(-23.536842, -16.200000) "></path>
        <path d="M21.1578947,2.52631579 L21.1578947,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(22.526316, 4.539474) scale(-1, 1) translate(-22.526316, -4.539474) "></path>
        <path d="M7.57894737,18.6315789 L11.6842105,18.6315789" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(9.631579, 19.973684) scale(-1, 1) translate(-9.631579, -19.973684) "></path>
        <path d="M40.4210526,18.6315789 L36.3157895,18.6315789" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(38.368421, 19.973684) scale(-1, 1) translate(-38.368421, -19.973684) "></path>
        <path d="M11.6842105,10.5789474 L14.4210526,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(13.052632, 8.565789) scale(-1, 1) translate(-13.052632, -8.565789) "></path>
        <path d="M36.3157895,10.5789474 L33.5789474,6.55263158" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(34.947368, 8.565789) scale(-1, 1) translate(-34.947368, -8.565789) "></path>
    </g>
</svg>PK!��]�bb.modules/popup/assets/images/timing/sources.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M10.1052632,10.1052632 C10.1052632,10.4538947 9.82231579,10.7368421 9.47368421,10.7368421 C9.12505263,10.7368421 8.84210526,10.4538947 8.84210526,10.1052632 C8.84210526,9.75663158 9.12505263,9.47368421 9.47368421,9.47368421 C9.82231579,9.47368421 10.1052632,9.75663158 10.1052632,10.1052632" fill="#A4AFB7"></path>
        <path d="M12.6315789,10.1052632 C12.6315789,10.4538947 12.3486316,10.7368421 12,10.7368421 C11.6513684,10.7368421 11.3684211,10.4538947 11.3684211,10.1052632 C11.3684211,9.75663158 11.6513684,9.47368421 12,9.47368421 C12.3486316,9.47368421 12.6315789,9.75663158 12.6315789,10.1052632" fill="#A4AFB7"></path>
        <path d="M15.1578947,10.1052632 C15.1578947,10.4538947 14.8749474,10.7368421 14.5263158,10.7368421 C14.1776842,10.7368421 13.8947368,10.4538947 13.8947368,10.1052632 C13.8947368,9.75663158 14.1776842,9.47368421 14.5263158,9.47368421 C14.8749474,9.47368421 15.1578947,9.75663158 15.1578947,10.1052632" fill="#A4AFB7"></path>
        <polygon fill="#F1F3F5" points="37.3894737 12.6315789 37.3894737 26.1408306 26.1058285 26.323088 26.2751336 39.2321111 6.69473684 39.2321111"></polygon>
        <path d="M29.7416268,37.5915212 L37.5915212,29.7416268" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(33.666574, 33.666574) scale(-1, 1) translate(-33.666574, -33.666574) "></path>
        <polyline stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(31.980861, 31.980861) scale(-1, 1) translate(-31.980861, -31.980861) " points="29.7416268 29.7416268 34.2200957 29.7416268 34.2200957 34.2200957"></polyline>
        <rect stroke="#A4AFB7" stroke-width="1.64210526" x="26.0842105" y="26.0842105" width="14.7789474" height="14.7789474" rx="1.54385965"></rect>
        <path d="M25.5683887,39.1578947 L9.32330827,39.1578947 C7.66165414,39.1578947 6.31578947,37.8120301 6.31578947,36.1503759 L6.31578947,10.5864662 C6.31578947,8.92481203 7.66165414,7.57894737 9.32330827,7.57894737 L34.887218,7.57894737 C36.5488722,7.57894737 37.8947368,8.92481203 37.8947368,10.5864662 L37.8947368,25.4839387" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M6.31578947,12.6315789 L37.8947368,12.6315789" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M34.2947368,26.0842105 L26.5263158,26.0842105 C26.2821478,26.0842105 26.0842105,26.2821478 26.0842105,26.5263158 L26.0842105,36.1894737 L10.9894737,36.1894737 C10.3964943,36.1894737 9.91578947,35.7087689 9.91578947,35.1157895 L9.91578947,16.6736842 C9.91578947,16.0807048 10.3964943,15.6 10.9894737,15.6 L33.2210526,15.6 C33.814032,15.6 34.2947368,16.0807048 34.2947368,16.6736842 L34.2947368,26.0842105 Z" stroke="#A4AFB7" stroke-width="1.64210526"></path>
    </g>
</svg>PK!�m��PP0modules/popup/assets/images/timing/logged_in.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g id="Hide-for-logged-in-users-Copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="Group-2" transform="translate(5.684211, 8.842105)">
            <path d="M17.4166207,30.2731577 L17.4166207,17.0123577 C17.4586316,17.0115729 17.500738,17.0111788 17.5429365,17.0111788 C21.2054564,17.0111788 24.1745154,19.9802378 24.1745154,23.6427577 C24.1745154,27.3052776 21.2054564,30.2743367 17.5429365,30.2743367 C17.500738,30.2743367 17.4586316,30.2739425 17.4166207,30.2731577 Z" id="Combined-Shape" fill="#F1F3F5" fill-rule="nonzero" transform="translate(20.795568, 23.642758) rotate(-319.000000) translate(-20.795568, -23.642758) "></path>
            <path d="M22.2315789,4.79317895 C22.2315789,7.30484211 20.1958737,9.34054737 17.6842105,9.34054737 C15.1725474,9.34054737 13.1368421,7.30484211 13.1368421,4.79317895 C13.1368421,2.28151579 15.1725474,0.245810526 17.6842105,0.245810526 C20.1958737,0.245810526 22.2315789,2.28151579 22.2315789,4.79317895 Z" id="Stroke-6293" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M32.3522087,9.34054737 C32.3522087,11.0154947 30.9955771,12.3721263 29.3206297,12.3721263 C27.6456824,12.3721263 26.2890508,11.0154947 26.2890508,9.34054737 C26.2890508,7.6656 27.6456824,6.30896842 29.3206297,6.30896842 C30.9955771,6.30896842 32.3522087,7.6656 32.3522087,9.34054737 Z" id="Stroke-6294" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M4.10448879,9.34054737 C4.10448879,11.0154947 5.46112037,12.3721263 7.13606773,12.3721263 C8.80949931,12.3721263 10.1676467,11.0154947 10.1676467,9.34054737 C10.1676467,7.6656 8.80949931,6.30896842 7.13606773,6.30896842 C5.46112037,6.30896842 4.10448879,7.6656 4.10448879,9.34054737 Z" id="Stroke-6295" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M8.7696,21.4668632 C8.7696,16.4435368 13.0475314,12.3721263 18.3256641,12.3721263 C23.6037968,12.3721263 27.8817281,16.4435368 27.8817281,21.4668632" id="Stroke-6296" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M26.17613,16.2784674 C27.1381071,15.7236884 28.2673153,15.4038568 29.4745648,15.4038568 C32.992789,15.4038568 35.8452741,18.1186358 35.8452741,21.4670147" id="Stroke-6297" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M10.4751982,16.2784674 C9.51322105,15.7236884 8.38401281,15.4038568 7.17676339,15.4038568 C3.65853913,15.4038568 0.806054005,18.1186358 0.806054005,21.4670147" id="Stroke-6298" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <circle id="Oval" stroke="#A4AFB7" stroke-width="1.64210526" fill-rule="nonzero" cx="18.3789474" cy="21.7894737" r="6.63157895"></circle>
            <g id="Group" transform="translate(15.157895, 18.694737)" fill-rule="nonzero" stroke="#71D7F7" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.64210526">
                <path d="M0.569968357,5.98433388 L5.40776964,0.378947368" id="Path-23"></path>
                <path d="M0.569968357,5.98433388 L5.40776964,0.378947368" id="Path-23-Copy" transform="translate(2.988869, 3.181641) scale(-1, 1) translate(-2.988869, -3.181641) "></path>
            </g>
        </g>
    </g>
</svg>PK!I���,modules/popup/assets/images/timing/times.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g transform="translate(3.789474, 6.315789)">
            <path d="M33.4317434,7.57894737 L33.4317434,20.5701069 C31.4454047,20.3902772 30.000195,20.4573516 29.0961143,20.7713302 C28.3366647,21.0350797 27.468801,21.6433163 26.4925232,22.5960398 L26.4925256,22.5960423 C26.1200958,22.9594865 25.8265126,23.3957422 25.6300727,23.8776208 C24.8116366,25.8852924 24.3871113,27.4130304 24.3564967,28.4608347 C24.3224188,29.6271726 24.7443452,31.2964777 25.6222759,33.46875 L8.84210526,33.46875 L1.06224301,33.3438528 L33.4317434,7.57894737 Z" fill="#F1F3F5"></path>
            <path d="M26.3853824,34.2425629 L3.91578947,34.2425629 C2.18501053,34.2425629 0.783157895,32.8171167 0.783157895,31.0572082 L0.783157895,3.98169336 C0.783157895,2.2217849 2.18501053,0.796338673 3.91578947,0.796338673 L30.5431579,0.796338673 C32.2739368,0.796338673 33.6757895,2.2217849 33.6757895,3.98169336 L33.6757895,20.2136102" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M0.783157895,7.16704805 L33.6757895,7.16704805" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M4.69894737,3.98169336 C4.69894737,4.42127231 4.34809263,4.77803204 3.91578947,4.77803204 C3.48348632,4.77803204 3.13263158,4.42127231 3.13263158,3.98169336 C3.13263158,3.54211442 3.48348632,3.18535469 3.91578947,3.18535469 C4.34809263,3.18535469 4.69894737,3.54211442 4.69894737,3.98169336" fill="#A4AFB7"></path>
            <path d="M7.83157895,3.98169336 C7.83157895,4.42127231 7.48072421,4.77803204 7.04842105,4.77803204 C6.61611789,4.77803204 6.26526316,4.42127231 6.26526316,3.98169336 C6.26526316,3.54211442 6.61611789,3.18535469 7.04842105,3.18535469 C7.48072421,3.18535469 7.83157895,3.54211442 7.83157895,3.98169336" fill="#A4AFB7"></path>
            <path d="M10.9642105,3.98169336 C10.9642105,4.42127231 10.6133558,4.77803204 10.1810526,4.77803204 C9.74874947,4.77803204 9.39789474,4.42127231 9.39789474,3.98169336 C9.39789474,3.54211442 9.74874947,3.18535469 10.1810526,3.18535469 C10.6133558,3.18535469 10.9642105,3.54211442 10.9642105,3.98169336" fill="#A4AFB7"></path>
            <path d="M34.1365169,26.8708134 C34.1365169,28.1503607 33.1068012,29.187435 31.8363329,29.187435 C30.5658646,29.187435 29.5361489,28.1503607 29.5361489,26.8708134 C29.5361489,25.5912661 30.5658646,24.5541918 31.8363329,24.5541918 C33.1068012,24.5541918 34.1365169,25.5912661 34.1365169,26.8708134 Z" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M27.2359646,34.2998327 C27.2359646,31.7407381 29.295396,29.6665896 31.8363327,29.6665896 C34.3772693,29.6665896 36.4367007,31.7407381 36.4367007,34.2998327" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <ellipse stroke="#A4AFB7" stroke-width="1.64210526" cx="31.8315789" cy="28.173913" rx="7.83157895" ry="7.96338673"></ellipse>
            <path d="M30.3157904,20.3595706 C26.7159377,21.07743 24,24.3031628 24,28.173913 C24,28.9159512 24.0998118,29.6342848 24.2865285,30.3157895 L4.7313528,30.3157895 C4.59182823,30.3157895 4.47872122,30.2026825 4.47872122,30.0631579 L4.47872122,11.6210459 C4.47872122,11.4815214 4.59182823,11.3684144 4.7313528,11.3684144 L30.0631588,11.3684144 C30.2026834,11.3684144 30.3157904,11.4815214 30.3157904,11.6210459 L30.3157904,20.3595706 Z" stroke="#A4AFB7" stroke-width="1.64210526"></path>
        </g>
    </g>
</svg>PK!�u�g��.modules/popup/assets/images/timing/devices.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M39.7894737,7.57894737 L39.7894737,17.1749075 L33.9867507,17.8006645 C32.7935306,17.9293396 31.8555283,18.8797332 31.7425229,20.0745391 L30.7739001,30.3157895 L13.8947368,30.3157895 L39.7894737,7.57894737 Z" fill="#F1F3F5"></path>
        <path d="M43.4054367,22.5173455 L43.4054367,33.8857666 C43.4054367,35.2810123 42.2743666,36.4120824 40.8791209,36.4120824 L31.4054367,36.4120824 L43.4054367,22.5173455 Z" fill="#F1F3F5"></path>
        <path d="M5.53846154,25.2845767 L5.53846154,32.1649428 C5.53846154,33.9232586 6.9314332,35.3502975 8.64777328,35.3502975 L36.6315789,35.3502975 C38.347919,35.3502975 39.7408907,33.9232586 39.7408907,32.1649428 L39.7408907,20.5791172 L39.7408907,9.86745995 C39.7408907,8.10914416 38.347919,6.68210526 36.6315789,6.68210526 L15.2496629,6.68210526" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(22.639676, 21.016201) scale(-1, -1) translate(-22.639676, -21.016201) "></path>
        <path d="M33.5222672,41.7210069 L28.8696862,41.7210069 L21.456794,41.7210069 L11.757085,41.7210069 C11.757085,39.9626911 13.1500567,38.5356522 14.8663968,38.5356522 L23.9963942,38.5356522 L30.4129555,38.5356522" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M5.53846154,30.5722654 L30.3935223,30.5722654" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M21.0850202,38.5356522 L21.0850202,35.3502975" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M24.194332,38.5356522 L24.194332,35.3502975" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M40.8874494,41.6997712 L33.891498,41.6997712 C32.2354563,41.6997712 30.8932331,40.2737941 30.8932331,38.5144165 L30.8932331,20.4640732 C30.8932331,18.7046957 32.2354563,17.2787185 33.891498,17.2787185 L40.8874494,17.2787185 C42.543491,17.2787185 43.8857143,18.7046957 43.8857143,20.4640732 L43.8857143,38.5144165 C43.8857143,40.2737941 42.543491,41.6997712 40.8874494,41.6997712 L40.8874494,41.6997712 Z" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M30.8932331,21.5258581 L43.8857143,21.5258581" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M30.8932331,36.3908467 L43.8857143,36.3908467" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M37.8891845,39.0453089 C37.8891845,39.3383616 37.6653141,39.5762014 37.3894737,39.5762014 C37.1136333,39.5762014 36.8897629,39.3383616 36.8897629,39.0453089 C36.8897629,38.7522563 37.1136333,38.5144165 37.3894737,38.5144165 C37.6653141,38.5144165 37.8891845,38.7522563 37.8891845,39.0453089 L37.8891845,39.0453089 Z" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M23.7362637,32.7782151 C23.7362637,33.0712677 23.5123933,33.3091076 23.2365529,33.3091076 C22.9607126,33.3091076 22.7368421,33.0712677 22.7368421,32.7782151 C22.7368421,32.4851625 22.9607126,32.2473227 23.2365529,32.2473227 C23.5123933,32.2473227 23.7362637,32.4851625 23.7362637,32.7782151 L23.7362637,32.7782151 Z" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M35.8903412,19.4022883 L38.8886061,19.4022883" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
        <path d="M15.2433572,12.1894737 L10.9263158,21.3830128 L10.9263158,24.9824561 C10.9263158,25.3816514 11.2499275,25.7052632 11.6491228,25.7052632 L33.8245614,25.7052632 C34.2237567,25.7052632 34.5473684,25.3816514 34.5473684,24.9824561 L34.5473684,12.9122807 C34.5473684,12.5130854 34.2237567,12.1894737 33.8245614,12.1894737 L15.2433572,12.1894737 Z" stroke="#A4AFB7" stroke-width="1.64210526" transform="translate(22.736842, 18.947368) scale(-1, -1) translate(-22.736842, -18.947368) "></path>
        <rect stroke="#A4AFB7" stroke-width="1.64210526" x="34.2947368" y="24.8210526" width="5.93684211" height="8.46315789" rx="1.54385965"></rect>
    </g>
</svg>PK!I���-modules/popup/assets/images/timing/visits.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g transform="translate(3.789474, 6.315789)">
            <path d="M33.4317434,7.57894737 L33.4317434,20.5701069 C31.4454047,20.3902772 30.000195,20.4573516 29.0961143,20.7713302 C28.3366647,21.0350797 27.468801,21.6433163 26.4925232,22.5960398 L26.4925256,22.5960423 C26.1200958,22.9594865 25.8265126,23.3957422 25.6300727,23.8776208 C24.8116366,25.8852924 24.3871113,27.4130304 24.3564967,28.4608347 C24.3224188,29.6271726 24.7443452,31.2964777 25.6222759,33.46875 L8.84210526,33.46875 L1.06224301,33.3438528 L33.4317434,7.57894737 Z" fill="#F1F3F5"></path>
            <path d="M26.3853824,34.2425629 L3.91578947,34.2425629 C2.18501053,34.2425629 0.783157895,32.8171167 0.783157895,31.0572082 L0.783157895,3.98169336 C0.783157895,2.2217849 2.18501053,0.796338673 3.91578947,0.796338673 L30.5431579,0.796338673 C32.2739368,0.796338673 33.6757895,2.2217849 33.6757895,3.98169336 L33.6757895,20.2136102" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M0.783157895,7.16704805 L33.6757895,7.16704805" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M4.69894737,3.98169336 C4.69894737,4.42127231 4.34809263,4.77803204 3.91578947,4.77803204 C3.48348632,4.77803204 3.13263158,4.42127231 3.13263158,3.98169336 C3.13263158,3.54211442 3.48348632,3.18535469 3.91578947,3.18535469 C4.34809263,3.18535469 4.69894737,3.54211442 4.69894737,3.98169336" fill="#A4AFB7"></path>
            <path d="M7.83157895,3.98169336 C7.83157895,4.42127231 7.48072421,4.77803204 7.04842105,4.77803204 C6.61611789,4.77803204 6.26526316,4.42127231 6.26526316,3.98169336 C6.26526316,3.54211442 6.61611789,3.18535469 7.04842105,3.18535469 C7.48072421,3.18535469 7.83157895,3.54211442 7.83157895,3.98169336" fill="#A4AFB7"></path>
            <path d="M10.9642105,3.98169336 C10.9642105,4.42127231 10.6133558,4.77803204 10.1810526,4.77803204 C9.74874947,4.77803204 9.39789474,4.42127231 9.39789474,3.98169336 C9.39789474,3.54211442 9.74874947,3.18535469 10.1810526,3.18535469 C10.6133558,3.18535469 10.9642105,3.54211442 10.9642105,3.98169336" fill="#A4AFB7"></path>
            <path d="M34.1365169,26.8708134 C34.1365169,28.1503607 33.1068012,29.187435 31.8363329,29.187435 C30.5658646,29.187435 29.5361489,28.1503607 29.5361489,26.8708134 C29.5361489,25.5912661 30.5658646,24.5541918 31.8363329,24.5541918 C33.1068012,24.5541918 34.1365169,25.5912661 34.1365169,26.8708134 Z" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M27.2359646,34.2998327 C27.2359646,31.7407381 29.295396,29.6665896 31.8363327,29.6665896 C34.3772693,29.6665896 36.4367007,31.7407381 36.4367007,34.2998327" stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <ellipse stroke="#A4AFB7" stroke-width="1.64210526" cx="31.8315789" cy="28.173913" rx="7.83157895" ry="7.96338673"></ellipse>
            <path d="M30.3157904,20.3595706 C26.7159377,21.07743 24,24.3031628 24,28.173913 C24,28.9159512 24.0998118,29.6342848 24.2865285,30.3157895 L4.7313528,30.3157895 C4.59182823,30.3157895 4.47872122,30.2026825 4.47872122,30.0631579 L4.47872122,11.6210459 C4.47872122,11.4815214 4.59182823,11.3684144 4.7313528,11.3684144 L30.0631588,11.3684144 C30.2026834,11.3684144 30.3157904,11.4815214 30.3157904,11.6210459 L30.3157904,20.3595706 Z" stroke="#A4AFB7" stroke-width="1.64210526"></path>
        </g>
    </g>
</svg>PK!�0���/modules/popup/assets/images/timing/browsers.svgnu�[���<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="34" height="34" fill="url(#pattern0)"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="scale(0.00694444)"/>
</pattern>
<image id="image0" width="144" height="144" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAkKADAAQAAAABAAAAkAAAAAA/PwqIAAAUOklEQVR4Ae1dCZQcxXmu6pk9hC4sBDIStoUwWoGCiR09G4wPFiTtSkZ7IGst7SrIQQQbB2LQgSMHc0dg4YBxYnxg+zlBuxJLZO3sKqvdFWKxHk8WiRJeAkIXVgAdGHTuzn10V75aaUbdPT07PbPdMz0z1e/Nm6rqv6r++vrrqr+q/u4mRBwCAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYFAjhGgVtbX3b1rnC96+tKo4hplZbnFVFaZiw1cPLb8g+rq6lAxtGtEBOruPlhxOvLHbwCIOsLIbEbY+GIAJRdtoJQeZoR2S5Rsaq6v2ZaLOu2oIysCMcZoW0ff7YSyhxD+hB2KlVKZlNA/ULfr/uYFc14rtHZnTCCP57WxPsX3W/Q2txZaYx2ur0Ik8sDS+nlPOFxPjXoZEai9v39M5Ez494Swz2lKERHLEEBv9LOWxtrvWFagzQWZJhCGKqmto9eDnueWlDpR+j7OHQHBgillSvwEAB9PGJ0GHCekgkKSyMrm+nlPpzrvpHTTBGrr6LlDYex5I+VhELYRl/Rwy4K5B43OizQtAkM3Y2ffl5jCnjHuzWmUuqWZhYCnW9s041hvb+/o40HlMf1ZSskJJkm3tdTVbNWfE/HUCOCGU3B2Rztjn4909K4Ejk+CVKqbmZURWVkHmcbUpTjjjGRGjZMh2ohp+sf1spRIty8V5NHDYjreRKm8tLF2HajzrEGm+g2evskG6Y5KMkUghcnJMy4q/aK5oabLUa0pUGUmlF3xd+iV9qjV5z0Sfg3qNCeGVd1mavXWb+45hrH6UrWEu7ysavHXZh9Qp7V29N7HiHIHZeSURKXvLWmo2ak+z8OtXX1XkpiCO45dQSjpnDy+cg1WZWNJch0930faXzJC/kQZXdXSWPNfepliird6eu9iivKcrk1+DG8djEhd5ZeM7Wz64hcdNzlJ2wNhnHbhYk/SNoye1JNnfWfvPMaUpzHUXY2L/iUY3F1dXbsv0OZDSTHlJcxA5kFmOmNk1bGByD16mbbOnibcff+A3wzC2I2Q7zqrh16yeOIuiSXdbGjdaGDUQpiyMfrR4DvrPT3fdhoOaQnk7uu7CA3Ry32kv3SSQq5Vp/FpalA5rlml5o3HHTVTI8cUTT5+junKQsqlrt7eS9T5ii1c4SrzDdcm3EyTicJ+Fu3o6Wvr6p84nGwuz+mJkVR3LFaeJAMS8FmE5pDcZAvGw0g8ETJvkrrad+Jx/s+NRvRQneo06qKb1XEelgjtRFlyIp2SXQtraz9IxIswEGWS30yz0HPfxOTwf27q6dGYFGby2iGTRI5sK1l8S81bkuS6AXbNP+HiPzJqTFn1EGF0BU6+sKKFL5TxFVeQrLalrtajEyGwnV6HDfUVyPwzlcgPyke7a/UypRxHbzQ1FCSGJkKucTG1DmRWqSX1c3dDlv9SHufcGNKusp4zwI3sgpRlF90JSt/Bzfgq2rUcpEHw/AET4S+8yolHkbLqfGruQ5b1QLlXvfhrBGPCLQ21fy0xdhOm+e/qW4yV7Htat7w8TZ+ey7ggUC7RzrKuJY3zXqXUXY8hP6wuAvZQOYvJ31an5TosCJRrxLOsr7l+9v+CQHxtTHNQpiQv8mok7I1oxlWjqtr/vf/jkUioqGdARu12RBqV9i5tqLk6rkv7nj3lkYPvH8dMdlw8jf+DWN2ESb8bdQHpurWmJmmJRS1rdVj0QFYjamF52MvQrH01zZwZAXne01eBxcb52AH4VTCovI/Fxmfau3dcrJexK56WQJVuSTjI24V+mnKxG5aMPYyhVNlApAosNt4bjfjfbvX0VKeSszI9LYFCMcVx+y9WAuDksmBfBJL1Yx8mp2lTQKSJINK21o6e27RnrI+lZPNwVWFKGUNXOjicjDiXIQJYNcVaz8e0uVxJ9gzE3sUakFbMIAYJF8R+hZ7ocEt9bb+BiCVJWREINe+H3+6fWaKBKIT4fKG5/nDwH7ft2KUjkJKeKcAPRvRv4SbbCGKN18LJyphCN+J5vSvnz7/Olhs+7RCmVUjErERgIBD4wqAv0C8zuRfDVdY3JJ4t21w5ilyFkaEjWT92yanI6TXJ6dakCAJZg2NGpQyGwzMGvYF2IrNdGLZuzChzCmG+2YwHFBeCiK/oReBPdXd/f3+lPt2KuCCQFSiaLCMQCEwZ9AZ/TqLyWxhuFpnMZloMPZBSWVG5DEPaaXUm1DXmg4HIHHWaVeFsbSCr6i+Jcrhx7PUHVscUci/Wa0aZsIHP4sLI9PUdWzWLuCCDZhFRD+DC+dVH2jb3/hz1aIYthbKbIGu5C7IgkP4KWBgHcUZ5/cG/gZ3DtyBgIJuyiRMagCxlyJL0MENC4FyAUddodRrWj15BPg2B4Nl5mVrGqrAgkFVIqsoBcVzeQGgZyPMowlNUp+wJKrFp6oLLiPtYhETVSVgjSE9ETQaTEUEgk0CZFRv0+xu8vuAT6D1mmM0zUjmJSIfVZURdSpToHlOAN5Et19qWQtWNKZWw1xu8EUPHk/DR+UKmQ9VIMUK9Z0ZaRrb5BYGyRe5cPp8vcq1ComsVpszP0MRJWzNmVXuqLpv4WbXggaMnn1cUZZk6LZ9hQaAs0Q8Gg5dHZfaIQmJLsfeE5Rd7jlmzZmmMGexvZWaJ26NWolRBoAQU5gJeL1wsaPD7IM9dMJDLzeUqXilBIJPXFmQZ6wuE7lOU4GpMiceYzFb0YoJAaS4x72V8vuCdXl/gQYwdOXPUSqOW5jQe0nsGQ9sjiURZyVnPKAiUQF0bAHEkvz+0eNAffByzqsu1Z/MZo5P1szw8yYt1oDSmkVgHyt1Fg3tFLbYefgjj+DO5q9VcTSB2livK9EJzNWQmJXogFV5wr7gOD18/CfeKr6qSHRWUKB3Aiysy1glrRba8l1rsxuNSeMPhq+BesQnuFX/ACrJjyTPEGkoOZMweZMCFPpJNvnR5SroHgnvFZTGZPcii8u0gDl5j4/wDQ1hS9+NibDmRXNsS2rvZVDnKdiTiCCCTbnNDfTb7cEkSCNcA7hXB78G94rsAthLT8uwRdEJOFz2xpL4msR+Gl3jBeez8y03sVLGkCATicPeKe+BewV0dbDEq7bxYTiy7JAgE4rjhXvFNkOcRhDENFodVCBQ9gbyBwK1wr1gLG6fKKtBEOecRKFoCwb2iGm6cTyoy+/z55oqQ1QgUHYH8/shnY2zIvaI23eKs1WCWYnlFQ6BQKDQtHFMek1lsCYhjm3tFKZJkuDYXPIF8PjZJpsEHIjHlW5iOlxX4hHy4a+XIcwVLIMymxmI6vlomwRV4kcBoJxJHwZPJ4Qjc22NR3VITO4UFzEM4/xEl7DTCA/5ggC/0/a2GJYxUtm7u+3N1Gh7XmaCO87Ci0MvVcooifzJXXXDBEQjEKccO+V1wr3gA2E3UXRk9tnmJH/3wOHn38FFyZsALbhtSm5MgiQh6ZTFzvAILgm9o0g2Kg9yP1QuHQ59y0WSyL1IwBAJxpEF/qAXkeRSkmWqAo30omSz5xOkz5O0Dh8iAd9h3hpssrTDECoJAA/7Q1+Be8QSM42ucCivvdd54c69zJ342vY7H0QQaDASux5bOD5kif9mJPU6czH5/gPzPnv3OJQ8UhRvIS3F9rfx3JIHgXnE1i8hrmczqrWysXWUdePcwvg+X9PUHvpYgs7MvCz8GOyVZIEuF8PKECXjvOPdM5E9svIdfkq8Pf5AQb+WYgt8g3vb/E7y541+yrG7YbI4iENwrPhFT2MNwr1gGwAvCvYKj++Hxk0kg45muFyvLK1bxlx0knSyiBEcQCAbyBGx0roF7xd2YtMAVwckDlvbqR6MxTNO1rjb4ZsgZd92cloX84zIOP1YdjF6vyLG78fXJsEsiT62bXrE3E5Xz6pEI4lww6AuuwXrOIYRX4WfLS5AyASRTWTyRmpQF3007avShmSTBPCes2hduUmLyDty0zWjHX8Vk5bU1B1lGT57khUAgitvr99+JmdU7AHstcNS92y/PyJZA9UPkYawVpkJiFEK/PyGsRG7KpPmJzJlkylYWxKF4xurrcK94HMpOz7YckW9kCBiRJ1GiRLlRbvpI2wO5K2TNs9lDJWPPyXQN5wRBnJuxCPgfCmHtYL0gT6YAWiQ/HHlg+P/66SvLd2VSVVoCNd588ylMRyPaQulk3pto04xjcK/43IDP3ysz5WWsIM8ylhKpuUBgxb7wImytaIatRL2UvDCuquLORNxkIC2BwEo+JdJMRdGDjNno6bt+uDrgXnHFgC+wAe4VuzGpmjucrDhnPwKcPLiB29Q2T6JWkGd8VeU3H8ZLOhNpJgNpCcTLAYm268uD1b4WvVBSfu5eMeAN/BTuFVjXZ4vN9lT68kXcOgTsIg/XMIkARmqDtZv06eiWvrrB03d/PB1EGTfg9T8G94o/Yh3nO4hnbCfFyxL/1iFgJ3m4lqYI1Fxfuw3L51q3AmTGFPzxNk/vulNnBlfDvQLEIQ8gUfPGUF6JOPKDgN3k4a0yRSAMYQrGsZV6GNALufC6tdW/f/2/17139E8TA6Ew+MNNJnHkG4HhyIPOYH22No++XaZmUvFM6/k7aBh7MB43+udGN35Gp4oyjTdVlhVNg9H+PfhYbtbfvhgpUOnIM66qclk2BrORXhktJC5tqH2o1bN1ClbvlxsVxtO40Sx6oVTo2J+eS/Lw1pgawtTNbqmfd4dE6H24y7Q7iGohEc4LArkmD29kxgTimZoba3/scrs+AxJtwk8YPRyULI7794WqVuwPrVi5P9zAe+4sikhkWfl26Lvo+zcYrfNwm8fKYStRKQIjUpoX1N7Ze3lUURagqOUAQftGL0qxDWLPi43Ujchn+OyHBrUfQDFjA63eF70hRuTtGPMrhvSn1DO+qqIJtolu1T9961bujTytUOVelJV0Pe0kD9csqcL06hpLtHX1zlD44qHqQOERSXJft6R+TtISgEqsoINGn0U3Q6D79oVewgX/urrxIOOWcTMqFmZConySh+ue1RCmbnQ83LygZh/4qCEQxrZyWZFb23fuTP76cDxjif5jppG0SY3h55bBfeFND5t8//Rw5JEk6UW7hi31JbOMQEOFSuQZdeFnw+yqyEeD3a1bXp6WfK6EU9yup9BTJfsymyTRcOSBB/3esdPLm62aqg93lSwlUHldzW8w5r6ZVCH/rGM0+lbr5p4fbOzejoflxAG3iTdcLlKfDYmGJQ8lh45Mr7gmF+ThV9EyGyhOibbOnpl4ZHcnduBTflkPlcqw9xQisSDG/YF43kL8BwEkrMZPUetuxgaKy68+GJory8SDCUiSO6+RTZSWPFWV018axhcb9Uibt2//2K2zZyc/CRBXKoN/ywnE697Y1TdXjskdsIFK0vbJhEAcL7MkGil58A35atzYG0CiSRgpdpe5yhuaFtx8lOuQ7WHpEBZXYvGCuX2Yfd0Adr4XTxP/qRF46srKvnTD2Yr9kZ+kmqpjHDl0JE3Pw2sHcV7g5DkbJrOicnRtaq3MnbGFQLxqPnUvG+O+FnfjWkKp35w6pSuVjkR4Ovceo3Ues+Rp795xMXofzVALSmm+RZYN+rYRiCvTNGfOADYV/15yVUx1SdJyNHYzkjP2esumYYWYZzgSGbbHZM8zlJfJBg9q4pnVER4ZbaZmW1fzguoTyPsb/sOO/lbcSbWaspj0i/FlF63QpBVIJMj8kyJy4JBV6nISwSaql2VqaFgn6smEPIlM1gdyQiCN2pT8Dl2plkBU+dYAO+lZWlezVSNbABGsRAetfqd3WhI5hDz88oy4C8v0Gk8ou/BFGNfH9fmoovzrBs/WOn16qcbjwxnsR1mDgYPIw/XKOYHmz79ukEjSQxpQEIEj40RZIZ7Wjq3tbZ6XtZuyeuESiQ+RyO2ai6t0GMtNPuC2xcxsK5fw5H4IQ+vK6ub+MurpuQWkma9vLNIWYZto0frNPSfhKXIU8bBexknxaDRsK4Y/+nTZK2jvJ53UZrUutjZeXZE6zF880N7f/43oQIg/2J9iKskuwrmL1PmcGMa6ipFaE40SizEt50NYHMSm6mpf2fjKr2Bq/2/xtGL5B6fGFktb0rUjbwTiinESLW2Ytwh7PrfBWPy/dMoW0PmMncIKqG0aVfNKoLgmLY21L8y4bGIVlrWakLYee7wfYAXbcGyI53HyP/aZPnSyflbqlhcbyKgBs2bN4g5W/EWQQy+D7O/vdx/3KZMUF39jmXMPeBVMlCPhXToNS+aBA8cQSHcBSHV1Nb8II9op1pdpRxwLiX7tQo0dtTi3TEcMYc6FJ71mMXynQC8F11Rb3GT09WQSd7nCtugkCJTJVTCQdX/60tNIVtSnMCmYvr5j2zXqtHyH8dT5wiQdGON7lCM6bGHliDQqwMxY9IQbL9M+ykyJFw95P89ctB8vbD4mxyQNyXLSTLdSjqnIVEUmeGEsX6DV9owg+rOYwNw7El0cawONpFG5zosJ4/NY+3lWUy/WgjCUrYDz7oqzFnUeLCVUHB9fDdY7FUZdv9bonEVEDGFZgKbPMnl85XNYx3pdn+7kuCTRHy1tmJP8AESGSgsCZQiYkTifMZZXYl+PEv103kg8/2mUPLekroZ/+nzEh7CBRgzh+QJgY0htnX1L8AW4RzF0TDt/xiEhSl91S641i+vmWEZ0QSAbru3u3bvL9h87MR8G7JfxVtRPwVi9MB9Te9TLza+TMIT24Ws925c01Oy0obmiSIGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYGAQEAgIBAQCAgEBAICAYFAPhH4fz6oDd9HdKX/AAAAAElFTkSuQmCC"/>
</defs>
</svg>
PK!��Ј�1modules/popup/assets/images/timing/page_views.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <!-- Generator: Sketch 52.5 (67469) - http://www.bohemiancoding.com/sketch -->
    <title>After X page views Copy</title>
    <desc>Created with Sketch.</desc>
    <g id="After-X-page-views-Copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="Group" transform="translate(5.052632, 7.578947)">
            <path d="M30.7894737,3.78947368 C32.5342105,3.78947368 33.9473684,5.14610526 33.9473684,6.82105263 L33.9473684,16.4639186" id="Stroke-1029" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M24.1677632,26.5263158 L7.10526316,26.5263158 C5.36052632,26.5263158 3.94736842,25.1696842 3.94736842,23.4947368" id="Stroke-1029-Copy" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M25.5400905,29.5578947 L10.2631579,29.5578947 C8.51842105,29.5578947 7.10526316,28.2012632 7.10526316,26.5263158" id="Stroke-1031" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M33.9473684,6.82105263 C35.6921053,6.82105263 37.1052632,8.17768421 37.1052632,9.85263158 L37.1052632,18.1301398" id="Stroke-1031-Copy" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M33.9473684,9.85263158 L30.7894737,9.85263158" id="Stroke-1033" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M37.1052632,12.8842105 L33.9473684,12.8842105" id="Stroke-1035" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M31.0028783,7.09786184 L31.0961181,16.7097039 L26.9511032,18.2432286 C26.2899982,18.4878166 25.7102175,18.9119527 25.2769314,19.4679619 L22.5416324,22.9780016 L1.3541324,22.9780016 L31.0028783,7.09786184 Z" id="Rectangle" fill="#F1F3F5" fill-rule="nonzero"></path>
            <path d="M23.9015589,23.4947368 L3.94736842,23.4947368 C2.20263158,23.4947368 0.789473684,22.1381053 0.789473684,20.4631579 L0.789473684,3.78947368 C0.789473684,2.11452632 2.20263158,0.757894737 3.94736842,0.757894737 L27.6315789,0.757894737 C29.3763158,0.757894737 30.7894737,2.11452632 30.7894737,3.78947368 L30.7894737,16.2588405" id="Stroke-1019" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <ellipse id="Oval-Copy-4" stroke="#A4AFB7" stroke-width="1.64210526" fill-rule="nonzero" cx="31.8315789" cy="24.3734554" rx="7.83157895" ry="7.96338673"></ellipse>
            <path d="M0.789473684,6.82105263 L30.7894737,6.82105263" id="Stroke-1021" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M4.73684211,3.78947368 C4.73684211,4.20783158 4.38315789,4.54736842 3.94736842,4.54736842 C3.51157895,4.54736842 3.15789474,4.20783158 3.15789474,3.78947368 C3.15789474,3.37111579 3.51157895,3.03157895 3.94736842,3.03157895 C4.38315789,3.03157895 4.73684211,3.37111579 4.73684211,3.78947368" id="Fill-1023" fill="#A4AFB7"></path>
            <path d="M7.89473684,3.78947368 C7.89473684,4.20783158 7.54105263,4.54736842 7.10526316,4.54736842 C6.66947368,4.54736842 6.31578947,4.20783158 6.31578947,3.78947368 C6.31578947,3.37111579 6.66947368,3.03157895 7.10526316,3.03157895 C7.54105263,3.03157895 7.89473684,3.37111579 7.89473684,3.78947368" id="Fill-1025" fill="#A4AFB7"></path>
            <path d="M11.0526316,3.78947368 C11.0526316,4.20783158 10.6989474,4.54736842 10.2631579,4.54736842 C9.82736842,4.54736842 9.47368421,4.20783158 9.47368421,3.78947368 C9.47368421,3.37111579 9.82736842,3.03157895 10.2631579,3.03157895 C10.6989474,3.03157895 11.0526316,3.37111579 11.0526316,3.78947368" id="Fill-1027" fill="#A4AFB7"></path>
            <path d="M34.0984786,27.2097039 C34.0984786,27.4798533 34.0475951,27.7333459 33.9458265,27.9701891 C33.8440579,28.2070324 33.7043594,28.4142672 33.526727,28.5918997 C33.3490945,28.7695321 33.1418597,28.9092306 32.9050164,29.0109992 C32.6681732,29.1127678 32.4146806,29.1636513 32.1445312,29.1636513 L31.8059211,29.1636513 C31.5357717,29.1636513 31.281354,29.1127678 31.0426604,29.0109992 C30.8039667,28.9092306 30.5958068,28.7695321 30.4181743,28.5918997 C30.2405419,28.4142672 30.1008434,28.2070324 29.9990748,27.9701891 C29.8973062,27.7333459 29.8464227,27.4798533 29.8464227,27.2097039 L29.8464227,27.0043174 L30.5625,26.8932977 L30.5625,27.2097039 C30.5625,27.3873364 30.5958056,27.5529392 30.6624178,27.7065173 C30.7290299,27.8600953 30.8206203,27.995168 30.9371916,28.1117393 C31.0537629,28.2283106 31.1888356,28.319901 31.3424137,28.3865132 C31.4959917,28.4531253 31.6615945,28.4864309 31.839227,28.4864309 L32.1112253,28.4864309 C32.2888578,28.4864309 32.4544606,28.4531253 32.6080387,28.3865132 C32.7616167,28.319901 32.8957642,28.2283106 33.0104852,28.1117393 C33.1252062,27.995168 33.2158714,27.8600953 33.2824836,27.7065173 C33.3490957,27.5529392 33.3824013,27.3873364 33.3824013,27.2097039 L33.3824013,26.5491365 C33.3824013,26.371504 33.3490957,26.2059013 33.2824836,26.0523232 C33.2158714,25.8987451 33.1252062,25.7645976 33.0104852,25.6498766 C32.8957642,25.5351557 32.7616167,25.4444905 32.6080387,25.3778783 C32.4544606,25.3112661 32.2888578,25.2779605 32.1112253,25.2779605 L31.5783306,25.2779605 L31.5783306,24.5951891 L32.1112253,24.5951891 C32.2888578,24.5951891 32.4544606,24.5618836 32.6080387,24.4952714 C32.7616167,24.4286592 32.8957642,24.337994 33.0104852,24.223273 C33.1252062,24.1085521 33.2158714,23.9744046 33.2824836,23.8208265 C33.3490957,23.6672484 33.3824013,23.5016456 33.3824013,23.3240132 L33.3824013,22.9354441 C33.3824013,22.7578116 33.3490957,22.5922088 33.2824836,22.4386308 C33.2158714,22.2850527 33.1252062,22.1509052 33.0104852,22.0361842 C32.8957642,21.9214632 32.7616167,21.830798 32.6080387,21.7641859 C32.4544606,21.6975737 32.2888578,21.6642681 32.1112253,21.6642681 L31.839227,21.6642681 C31.6615945,21.6642681 31.4959917,21.6975737 31.3424137,21.7641859 C31.1888356,21.830798 31.0537629,21.9214632 30.9371916,22.0361842 C30.8206203,22.1509052 30.7290299,22.2850527 30.6624178,22.4386308 C30.5958056,22.5922088 30.5625,22.7578116 30.5625,22.9354441 L30.5625,23.2574013 L29.8464227,23.1408306 L29.8464227,22.9354441 C29.8464227,22.6652947 29.8973062,22.4118022 29.9990748,22.1749589 C30.1008434,21.9381156 30.2405419,21.7308808 30.4181743,21.5532484 C30.5958068,21.3756159 30.8039667,21.2359174 31.0426604,21.1341488 C31.281354,21.0323802 31.5357717,20.9814967 31.8059211,20.9814967 L32.1445312,20.9814967 C32.4146806,20.9814967 32.6681732,21.0323802 32.9050164,21.1341488 C33.1418597,21.2359174 33.3490945,21.3756159 33.526727,21.5532484 C33.7043594,21.7308808 33.8440579,21.9381156 33.9458265,22.1749589 C34.0475951,22.4118022 34.0984786,22.6652947 34.0984786,22.9354441 L34.0984786,23.2074424 C34.0984786,23.3961769 34.0734994,23.5765822 34.0235403,23.7486637 C33.9735812,23.9207451 33.9032694,24.080797 33.8126028,24.228824 C33.7219362,24.3768511 33.6136931,24.5109986 33.4878701,24.6312706 C33.3620471,24.7515425 33.2214235,24.8542348 33.0659951,24.9393503 C33.2214235,25.0207652 33.3620471,25.1216071 33.4878701,25.2418791 C33.6136931,25.3621511 33.7219362,25.4962986 33.8126028,25.6443257 C33.9032694,25.7923527 33.9735812,25.9524046 34.0235403,26.124486 C34.0734994,26.2965675 34.0984786,26.4769727 34.0984786,26.6657072 L34.0984786,27.2097039 Z" id="3" stroke="#71D7F7" stroke-width="0.884210526" fill="#71D7F7" stroke-linecap="round" stroke-linejoin="round"></path>
        </g>
    </g>
</svg>PK!,�����*modules/popup/assets/images/timing/url.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M40.5473684,12.5697941 L40.5473684,28.9908467 C40.5473684,31.0837152 38.8507633,32.7803204 36.7578947,32.7803204 L17.1789474,32.7803204 L40.5473684,12.5697941 Z" fill="#F1F3F5"></path>
        <g transform="translate(3.789474, 5.052632)">
            <path d="M4.73684211,3.94736842 C4.73684211,4.38315789 4.38315789,4.73684211 3.94736842,4.73684211 C3.51157895,4.73684211 3.15789474,4.38315789 3.15789474,3.94736842 C3.15789474,3.51157895 3.51157895,3.15789474 3.94736842,3.15789474 C4.38315789,3.15789474 4.73684211,3.51157895 4.73684211,3.94736842" fill="#A4AFB7"></path>
            <path d="M7.89473684,3.94736842 C7.89473684,4.38315789 7.54105263,4.73684211 7.10526316,4.73684211 C6.66947368,4.73684211 6.31578947,4.38315789 6.31578947,3.94736842 C6.31578947,3.51157895 6.66947368,3.15789474 7.10526316,3.15789474 C7.54105263,3.15789474 7.89473684,3.51157895 7.89473684,3.94736842" fill="#A4AFB7"></path>
            <path d="M11.0526316,3.94736842 C11.0526316,4.38315789 10.6989474,4.73684211 10.2631579,4.73684211 C9.82736842,4.73684211 9.47368421,4.38315789 9.47368421,3.94736842 C9.47368421,3.51157895 9.82736842,3.15789474 10.2631579,3.15789474 C10.6989474,3.15789474 11.0526316,3.51157895 11.0526316,3.94736842" fill="#A4AFB7"></path>
            <path d="M16.5789474,27.6315789 L33.9473684,27.6315789 C35.6921053,27.6315789 37.1052632,26.2184211 37.1052632,24.4736842 L37.1052632,3.94736842 C37.1052632,2.20263158 35.6921053,0.789473684 33.9473684,0.789473684 L3.94736842,0.789473684 C2.20263158,0.789473684 0.789473684,2.20263158 0.789473684,3.94736842 L0.789473684,24.4736842 C0.789473684,26.2184211 2.20263158,27.6315789 3.94736842,27.6315789 L7.10526316,27.6315789 L16.5789474,27.6315789 L16.5789474,27.6315789 Z" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <path d="M0.789473684,7.10526316 L37.1052632,7.10526316" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
            <polygon stroke="#71D7F7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(33.315789, 35.526316) scale(-1, 1) translate(-33.315789, -35.526316) " points="27 37.1052632 39.6315789 37.1052632 39.6315789 33.9473684 27 33.9473684"></polygon>
            <path d="M19.1052632,30.7894737 L31.7368421,18.1578947" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(25.421053, 24.473684) scale(-1, 1) translate(-25.421053, -24.473684) "></path>
            <polyline stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round" transform="translate(22.263158, 21.315789) scale(-1, 1) translate(-22.263158, -21.315789) " points="19.1052632 18.1578947 25.4210526 18.1578947 25.4210526 24.4736842"></polyline>
            <rect stroke="#A4AFB7" stroke-width="1.64210526" x="0.821052632" y="7.13684211" width="14.7789474" height="8.46315789" rx="1.54385965"></rect>
        </g>
    </g>
</svg>PK!�]�S/modules/popup/assets/images/timing/sessions.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g transform="translate(6.315789, 6.315789)">
            <polygon fill="#F1F3F5" points="34.6949013 7.57894737 34.6949013 21.2039428 34.6199225 34.7319079 9.14569952 34.7319079 1.06224301 34.600917"></polygon>
            <g transform="translate(0.000000, 1.894737)">
                <path d="M0.783157895,4.64073227 L33.6757895,4.64073227" stroke="#A4AFB7" stroke-width="1.64210526" stroke-linecap="round" stroke-linejoin="round"></path>
                <path d="M4.69894737,1.45537757 C4.69894737,1.89495652 4.34809263,2.25171625 3.91578947,2.25171625 C3.48348632,2.25171625 3.13263158,1.89495652 3.13263158,1.45537757 C3.13263158,1.01579863 3.48348632,0.659038902 3.91578947,0.659038902 C4.34809263,0.659038902 4.69894737,1.01579863 4.69894737,1.45537757" fill="#A4AFB7"></path>
                <path d="M7.83157895,1.45537757 C7.83157895,1.89495652 7.48072421,2.25171625 7.04842105,2.25171625 C6.61611789,2.25171625 6.26526316,1.89495652 6.26526316,1.45537757 C6.26526316,1.01579863 6.61611789,0.659038902 7.04842105,0.659038902 C7.48072421,0.659038902 7.83157895,1.01579863 7.83157895,1.45537757" fill="#A4AFB7"></path>
                <path d="M10.9642105,1.45537757 C10.9642105,1.89495652 10.6133558,2.25171625 10.1810526,2.25171625 C9.74874947,2.25171625 9.39789474,1.89495652 9.39789474,1.45537757 C9.39789474,1.01579863 9.74874947,0.659038902 10.1810526,0.659038902 C10.6133558,0.659038902 10.9642105,1.01579863 10.9642105,1.45537757" fill="#A4AFB7"></path>
            </g>
            <path d="M4.7313528,11.3684144 L30.0631588,11.3684144 C30.2026834,11.3684144 30.3157904,11.4815214 30.3157904,11.6210459 L30.3157904,30.0631579 C30.3157904,30.2026825 30.2026834,30.3157895 30.0631588,30.3157895 L4.7313528,30.3157895 C4.59182823,30.3157895 4.47872122,30.2026825 4.47872122,30.0631579 L4.47872122,11.6210459 C4.47872122,11.4815214 4.59182823,11.3684144 4.7313528,11.3684144 Z" stroke="#A4AFB7" stroke-width="1.64210526"></path>
            <g transform="translate(10.736842, 15.157895)" stroke="#71D7F7" stroke-linecap="round" stroke-width="1.64210526">
                <path d="M13.8947368,7.51225891 C13.8947368,7.51225891 10.6720954,11.5928763 7.15648653,11.5928763 C3.64087768,11.5928763 0.418236226,7.51225891 0.418236226,7.51225891 C0.418236226,7.51225891 3.64087768,3.43164149 7.15648653,3.43164149 C11.2580302,3.43164149 13.8947368,7.51225891 13.8947368,7.51225891 Z" stroke-linejoin="round"></path>
                <path d="M9.7644291,6.40705234 C9.7644291,8.05032926 8.52479407,9.3824632 6.9956208,9.3824632 C5.46644752,9.3824632 4.22681249,8.05032926 4.22681249,6.40705234 C4.22681249,4.76377543 5.46644752,3.43164149 6.9956208,3.43164149 C8.52479407,3.43164149 9.7644291,4.76377543 9.7644291,6.40705234 Z" stroke-linejoin="round"></path>
                <path d="M6.01776171,6.39250865 C6.01776171,5.94917985 6.36191258,5.39213647 6.70606345,5.39213647" stroke-linejoin="round"></path>
                <path d="M4.93900502,1.17642338 L5.61541758,3.26256795" transform="translate(5.277211, 2.219496) rotate(10.000000) translate(-5.277211, -2.219496) "></path>
                <path d="M10.7605478,2.14111291 L11.9318492,3.69631077" transform="translate(11.346198, 2.918712) scale(-1, 1) rotate(10.000000) translate(-11.346198, -2.918712) "></path>
                <path d="M8.41251985,0.623095916 L8.43887134,2.84424076" transform="translate(8.425696, 1.733668) rotate(10.000000) translate(-8.425696, -1.733668) "></path>
                <path d="M2.37802785,2.45370182 L2.24270012,4.60849176" transform="translate(2.310364, 3.531097) scale(-1, 1) rotate(-329.000000) translate(-2.310364, -3.531097) "></path>
            </g>
            <rect stroke="#A4AFB7" stroke-width="1.64210526" x="0.189473684" y="-2.18491891e-13" width="34.3578947" height="34.7115789" rx="3.78947368"></rect>
        </g>
    </g>
</svg>PK!AU����*modules/popup/assets/images/timing-tab.svgnu�[���<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
	.st0{fill:#F1F3F5;}
	.st1{fill:none;stroke:#71D7F7;stroke-width:1.64;stroke-linecap:round;stroke-linejoin:round;}
	.st2{fill:none;stroke:#A4AFB7;stroke-width:1.64;stroke-linecap:round;stroke-linejoin:round;}
</style>
<g>
	<path class="st0" d="M27.2,14l2.2,0.8c0.7-0.8,1.7-1.2,3-1.3s2.5,1.8,3.7,5.8L33,21.8c2.9-1.5,2.8-1-0.3,1.4
		c-1.8,1.4-6.8,0.6-10,5.2c-1,1.4,1.2,8.2-0.1,9.3c-0.6,0.5-2.6-0.5-3.2,0c-0.4,0.3-0.8-1.1-1.1-4.2l-1.6-0.8l2.2-3.8l3.5,0.8
		c1.1-1.7,2.1-2.9,2.8-3.6s2-1.7,3.6-2.8c-0.5-1.3-0.9-2.3-1.3-3s-1.1-1.6-2.1-2.8L27.2,14z"/>
	<polygon class="st1" points="30.8,34.7 27.8,36.4 28.5,33 26.1,30.6 29.1,30.2 30.8,27.1 32.4,30.2 
		35.4,30.6 33.1,33 33.7,36.4 	"/>
	<path class="st2" d="M22.2,32c0-4.7,3.8-8.6,8.6-8.6s8.6,3.8,8.6,8.6s-3.8,8.6-8.6,8.6S22.2,36.8,22.2,32L22.2,32z
		"/>
	<path class="st2" d="M22.5,29.8c-0.1,0-0.1,0-0.2,0c-3.6,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6s6.6,3,6.6,6.6
		c0,0.1,0,0.4,0,0.5c0.8-0.2,1.9-0.3,2.8-0.2c0.7,0,1.1,0.2,1.6,0.3c0-0.1,0-0.1,0-0.1c0-0.5-0.1-1.4-0.1-1.9l3.1-2.4
		c0.3-0.2,0.3-0.6,0.2-0.9l-2.9-5c-0.2-0.3-0.6-0.4-0.9-0.3l-3.6,1.5c-0.8-0.6-1.6-1.1-2.5-1.4l-0.6-3.8c0-0.3-0.3-0.6-0.7-0.6h-5.8
		c-0.4,0-0.7,0.3-0.7,0.6L18,13.1c-0.9,0.4-1.7,0.9-2.5,1.4L12,13.1c-0.3-0.1-0.7,0-0.9,0.3l-2.9,5c-0.2,0.3-0.1,0.7,0.2,0.9
		l3.1,2.4c-0.1,0.5-0.1,0.9-0.1,1.4s0,1,0.1,1.4L8.3,27c-0.3,0.2-0.3,0.6-0.2,0.9l2.9,5c0.2,0.3,0.6,0.4,0.9,0.3l3.6-1.5
		c0.8,0.6,1.6,1.1,2.5,1.4l0.6,3.8c0,0.3,0.3,0.6,0.7,0.6h4.6c-1-1.5-1.7-3.3-1.7-5.3C22.2,31.5,22.2,30.6,22.5,29.8z"/>
</g>
</svg>PK!�#v'modules/popup/display-settings/base.phpnu�[���<?php

namespace ElementorPro\Modules\Popup\DisplaySettings;

use Elementor\Controls_Manager;
use Elementor\Controls_Stack;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base extends Controls_Stack {

	private $current_group;

	protected function start_settings_group( $group_name, $group_title ) {
		$this->current_group = $group_name;

		$args = [
			'type' => Controls_Manager::HEADING,
			'label' => $group_title,
		];

		$this->add_control( $group_name . '_heading', $args );
	}

	protected function end_settings_group() {
		$this->add_control(
			$this->current_group,
			[
				'type' => Controls_Manager::SWITCHER,
				'classes' => 'elementor-popup__display-settings__group-toggle',
				'frontend_available' => true,
			]
		);

		$this->current_group = null;
	}

	protected function add_settings_group_control( $id, array $args ) {
		$id = $this->current_group . '_' . $id;

		$args['frontend_available'] = true;

		if ( ! empty( $args['condition'] ) ) {
			$args['condition'] = array_combine(
				array_map( function( $key ) {
					return $this->current_group . '_' . $key;
				}, array_keys( $args['condition'] ) ),
				$args['condition']
			);
		}

		$args['condition'][ $this->current_group ] = 'yes';

		return $this->add_control( $id, $args );
	}
}
PK!��ҳ��)modules/popup/display-settings/timing.phpnu�[���<?php

namespace ElementorPro\Modules\Popup\DisplaySettings;

use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Timing extends Base {

	/**
	 * Get element name.
	 *
	 * Retrieve the element name.
	 *
	 * @since  2.4.0
	 * @access public
	 *
	 * @return string The name.
	 */
	public function get_name() {
		return 'popup_timing';
	}

	protected function register_controls() {
		$this->start_controls_section( 'timing' );

		$this->start_settings_group( 'page_views', esc_html__( 'Show after X page views', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'views',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Page Views', 'elementor-pro' ),
				'default' => 3,
				'min' => 1,
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'sessions', esc_html__( 'Show after X sessions', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'sessions',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Sessions', 'elementor-pro' ),
				'default' => 2,
				'min' => 1,
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'times', esc_html__( 'Show up to X times', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'times',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Times', 'elementor-pro' ),
				'default' => 3,
				'min' => 1,
			]
		);

		$this->add_settings_group_control(
			'count',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Count', 'elementor-pro' ),
				'options' => [
					'' => esc_html__( 'On Open', 'elementor-pro' ),
					'close' => esc_html__( 'On Close', 'elementor-pro' ),
				],
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'url', esc_html__( 'When arriving from specific URL', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'action',
			[
				'type' => Controls_Manager::SELECT,
				'default' => 'show',
				'options' => [
					'show' => esc_html__( 'Show', 'elementor-pro' ),
					'hide' => esc_html__( 'Hide', 'elementor-pro' ),
					'regex' => esc_html__( 'Regex', 'elementor-pro' ),
				],
			]
		);

		$this->add_settings_group_control(
			'url',
			[
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'URL', 'elementor-pro' ),
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'sources', esc_html__( 'Show when arriving from', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'sources',
			[
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'default' => [ 'search', 'external', 'internal' ],
				'options' => [
					'search' => esc_html__( 'Search Engines', 'elementor-pro' ),
					'external' => esc_html__( 'External Links', 'elementor-pro' ),
					'internal' => esc_html__( 'Internal Links', 'elementor-pro' ),
				],
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'logged_in', esc_html__( 'Hide for logged in users', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'users',
			[
				'type' => Controls_Manager::SELECT,
				'default' => 'all',
				'options' => [
					'all' => esc_html__( 'All Users', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
			]
		);

		global $wp_roles;

		$roles = array_map( function( $role ) {
			return $role['name'];
		}, $wp_roles->roles );

		$this->add_settings_group_control(
			'roles',
			[
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'default' => [],
				'options' => $roles,
				'select2options' => [
					'placeholder' => esc_html__( 'Select Roles', 'elementor-pro' ),
				],
				'condition' => [
					'users' => 'custom',
				],
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'devices', esc_html__( 'Show on devices', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'devices',
			[
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'default' => [ 'desktop', 'tablet', 'mobile' ],
				'options' => [
					'desktop' => esc_html__( 'Desktop', 'elementor-pro' ),
					'tablet' => esc_html__( 'Tablet', 'elementor-pro' ),
					'mobile' => esc_html__( 'Mobile', 'elementor-pro' ),
				],
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'browsers', esc_html__( 'Show on browsers', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'browsers',
			[
				'type' => Controls_Manager::SELECT,
				'default' => 'all',
				'options' => [
					'all' => esc_html__( 'All Browsers', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
			]
		);

		$this->add_settings_group_control(
			'browsers_options',
			[
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'default' => [],
				'options' => [
					'ie' => esc_html__( 'Internet Explorer', 'elementor-pro' ),
					'chrome' => esc_html__( 'Chrome', 'elementor-pro' ),
					'edge' => esc_html__( 'Edge', 'elementor-pro' ),
					'firefox' => esc_html__( 'Firefox', 'elementor-pro' ),
					'safari' => esc_html__( 'Safari', 'elementor-pro' ),
				],
				'condition' => [
					'browsers' => 'custom',
				],
			]
		);

		$this->end_settings_group();

		$this->end_controls_section();
	}
}
PK!�[S�
�
+modules/popup/display-settings/triggers.phpnu�[���<?php

namespace ElementorPro\Modules\Popup\DisplaySettings;

use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Triggers extends Base {

	/**
	 * Get element name.
	 *
	 * Retrieve the element name.
	 *
	 * @since  2.4.0
	 * @access public
	 *
	 * @return string The name.
	 */
	public function get_name() {
		return 'popup_triggers';
	}

	protected function register_controls() {
		$this->start_controls_section( 'triggers' );

		$this->start_settings_group( 'page_load', esc_html__( 'On Page Load', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'delay',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (sec)',
				'default' => 0,
				'min' => 0,
				'step' => 0.1,
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'scrolling', esc_html__( 'On Scroll', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'direction',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Direction', 'elementor-pro' ),
				'default' => 'down',
				'options' => [
					'down' => esc_html__( 'Down', 'elementor-pro' ),
					'up' => esc_html__( 'Up', 'elementor-pro' ),
				],
			]
		);

		$this->add_settings_group_control(
			'offset',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (%)',
				'default' => 50,
				'min' => 1,
				'max' => 100,
				'condition' => [
					'direction' => 'down',
				],
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'scrolling_to', esc_html__( 'On Scroll To Element', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'selector',
			[
				'type' => Controls_Manager::TEXT,
				'label' => esc_html__( 'Selector', 'elementor-pro' ),
				'placeholder' => '.my-class',
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'click', esc_html__( 'On Click', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'times',
			[
				'label' => esc_html__( 'Clicks', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 1,
				'min' => 1,
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'inactivity', esc_html__( 'After Inactivity', 'elementor-pro' ) );

		$this->add_settings_group_control(
			'time',
			[
				'type' => Controls_Manager::NUMBER,
				'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (sec)',
				'default' => 30,
				'min' => 1,
				'step' => 0.1,
			]
		);

		$this->end_settings_group();

		$this->start_settings_group( 'exit_intent', esc_html__( 'On Page Exit Intent', 'elementor-pro' ) );

		$this->end_settings_group();

		$this->end_controls_section();
	}
}
PK!��Q�� modules/share-buttons/module.phpnu�[���<?php
namespace ElementorPro\Modules\ShareButtons;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	private static $networks = [
		'facebook' => [
			'title' => 'Facebook',
			'has_counter' => true,
		],
		'twitter' => [
			'title' => 'Twitter',
		],
		'linkedin' => [
			'title' => 'LinkedIn',
			'has_counter' => true,
		],
		'pinterest' => [
			'title' => 'Pinterest',
			'has_counter' => true,
		],
		'reddit' => [
			'title' => 'Reddit',
			'has_counter' => true,
		],
		'vk' => [
			'title' => 'VK',
			'has_counter' => true,
		],
		'odnoklassniki' => [
			'title' => 'OK',
			'has_counter' => true,
		],
		'tumblr' => [
			'title' => 'Tumblr',
		],
		'digg' => [
			'title' => 'Digg',
		],
		'skype' => [
			'title' => 'Skype',
		],
		'stumbleupon' => [
			'title' => 'StumbleUpon',
			'has_counter' => true,
		],
		'mix' => [
			'title' => 'Mix',
		],
		'telegram' => [
			'title' => 'Telegram',
		],
		'pocket' => [
			'title' => 'Pocket',
			'has_counter' => true,
		],
		'xing' => [
			'title' => 'XING',
			'has_counter' => true,
		],
		'whatsapp' => [
			'title' => 'WhatsApp',
		],
		'email' => [
			'title' => 'Email',
		],
		'print' => [
			'title' => 'Print',
		],
	];

	public static function get_networks( $network_name = null ) {
		if ( $network_name ) {
			return isset( self::$networks[ $network_name ] ) ? self::$networks[ $network_name ] : null;
		}

		return self::$networks;
	}

	public function get_widgets() {
		return [
			'Share_Buttons',
		];
	}

	public function get_name() {
		return 'share-buttons';
	}

	public function add_localize_data( $settings ) {
		$settings['shareButtonsNetworks'] = self::$networks;

		return $settings;
	}

	public function __construct() {
		parent::__construct();

		add_filter( 'elementor_pro/frontend/localize_settings', [ $this, 'add_localize_data' ] );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'add_localize_data' ] );

	}
}
PK!j싪�D�D/modules/share-buttons/widgets/share-buttons.phpnu�[���<?php
namespace ElementorPro\Modules\ShareButtons\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\ShareButtons\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Share_Buttons extends Base_Widget {

	private static $networks_class_dictionary = [
		'pocket' => [
			'value' => 'fa fa-get-pocket',
		],
		'email' => [
			'value' => 'fa fa-envelope',
		],
	];

	private static $networks_icon_mapping = [
		'pocket' => [
			'value' => 'fab fa-get-pocket',
			'library' => 'fa-brands',
		],
		'email' => [
			'value' => 'fas fa-envelope',
			'library' => 'fa-solid',
		],
		'print' => [
			'value' => 'fas fa-print',
			'library' => 'fa-solid',
		],
	];

	public function get_style_depends() {
		if ( Icons_Manager::is_migration_allowed() ) {
			return [
				'elementor-icons-fa-solid',
				'elementor-icons-fa-brands',
			];
		}
		return [];
	}

	private static function get_network_icon_data( $network_name ) {
		$prefix = 'fa ';
		$library = '';

		if ( Icons_Manager::is_migration_allowed() ) {
			if ( isset( self::$networks_icon_mapping[ $network_name ] ) ) {
				return self::$networks_icon_mapping[ $network_name ];
			}
			$prefix = 'fab ';
			$library = 'fa-brands';
		}
		if ( isset( self::$networks_class_dictionary[ $network_name ] ) ) {
			return self::$networks_class_dictionary[ $network_name ];
		}

		return [
			'value' => $prefix . 'fa-' . $network_name,
			'library' => $library,
		];
	}

	public function get_name() {
		return 'share-buttons';
	}

	public function get_title() {
		return esc_html__( 'Share Buttons', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-share';
	}

	public function get_keywords() {
		return [ 'sharing', 'social', 'icon', 'button', 'like' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_buttons_content',
			[
				'label' => esc_html__( 'Share Buttons', 'elementor-pro' ),
			]
		);

		$repeater = new Repeater();

		$networks = Module::get_networks();

		$networks_names = array_keys( $networks );

		$repeater->add_control(
			'button',
			[
				'label' => esc_html__( 'Network', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => array_reduce( $networks_names, function( $options, $network_name ) use ( $networks ) {
					$options[ $network_name ] = $networks[ $network_name ]['title'];

					return $options;
				}, [] ),
				'default' => 'facebook',
			]
		);

		$repeater->add_control(
			'text',
			[
				'label' => esc_html__( 'Custom Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$this->add_control(
			'share_buttons',
			[
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'button' => 'facebook',
					],
					[
						'button' => 'twitter',
					],
					[
						'button' => 'linkedin',
					],
				],
				'title_field' => '<i class="{{ elementorPro.modules.shareButtons.getNetworkClass( button ) }}" aria-hidden="true"></i> {{{ elementorPro.modules.shareButtons.getNetworkTitle( obj ) }}}',
			]
		);

		$this->add_control(
			'view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'icon-text' => 'Icon & Text',
					'icon' => 'Icon',
					'text' => 'Text',
				],
				'default' => 'icon-text',
				'separator' => 'before',
				'prefix_class' => 'elementor-share-buttons--view-',
				'render_type' => 'template',
			]
		);

		$this->add_control(
			'show_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'condition' => [
					'view' => 'icon-text',
				],
			]
		);

		$this->add_control(
			'skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'gradient' => esc_html__( 'Gradient', 'elementor-pro' ),
					'minimal' => esc_html__( 'Minimal', 'elementor-pro' ),
					'framed' => esc_html__( 'Framed', 'elementor-pro' ),
					'boxed' => esc_html__( 'Boxed Icon', 'elementor-pro' ),
					'flat' => esc_html__( 'Flat', 'elementor-pro' ),
				],
				'default' => 'gradient',
				'prefix_class' => 'elementor-share-buttons--skin-',
			]
		);

		$this->add_control(
			'shape',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'square' => esc_html__( 'Square', 'elementor-pro' ),
					'rounded' => esc_html__( 'Rounded', 'elementor-pro' ),
					'circle' => esc_html__( 'Circle', 'elementor-pro' ),
				],
				'default' => 'square',
				'prefix_class' => 'elementor-share-buttons--shape-',
			]
		);

		$this->add_responsive_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '0',
				'options' => [
					'0' => 'Auto',
					'1' => '1',
					'2' => '2',
					'3' => '3',
					'4' => '4',
					'5' => '5',
					'6' => '6',
				],
				'prefix_class' => 'elementor-grid%s-',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justify', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				/* TODO: `prefix_class` is redundant since v3.1.0
				 * It is only here for backwards compatibility reasons.
				 * It should be removed in the future.
				 */
				'prefix_class' => 'elementor-share-buttons%s--align-',
				/*---------------------------------------------------*/
				'condition' => [
					'columns' => '0',
				],
				/* `selectors` was added on v3.1.0 as a superior alternative to the previous `prefix_class` solution */
				'selectors' => [
					'{{WRAPPER}}' => '--alignment: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'share_url_type',
			[
				'label' => esc_html__( 'Target URL', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'current_page' => esc_html__( 'Current Page', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'current_page',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'share_url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'options' => false,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'condition' => [
					'share_url_type' => 'custom',
				],
				'show_label' => false,
				'frontend_available' => true,
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_buttons_style',
			[
				'label' => esc_html__( 'Share Buttons', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'column_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--grid-side-margin: {{SIZE}}{{UNIT}}; --grid-column-gap: {{SIZE}}{{UNIT}}; --grid-row-gap: {{SIZE}}{{UNIT}}',
					'(tablet) {{WRAPPER}}' => '--grid-side-margin: {{SIZE}}{{UNIT}}; --grid-column-gap: {{SIZE}}{{UNIT}}',
					'(mobile) {{WRAPPER}}' => '--grid-side-margin: {{SIZE}}{{UNIT}}; --grid-column-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}; --grid-bottom-margin: {{SIZE}}{{UNIT}}',
					'(tablet) {{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}; --grid-bottom-margin: {{SIZE}}{{UNIT}}',
					'(mobile) {{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}; --grid-bottom-margin: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'button_size',
			[
				'label' => esc_html__( 'Button Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0.5,
						'max' => 2,
						'step' => 0.05,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn' => 'font-size: calc({{SIZE}}{{UNIT}} * 10);',
				],
			]
		);

		$this->add_responsive_control(
			'icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'em' => [
						'min' => 0.5,
						'max' => 4,
						'step' => 0.1,
					],
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'em',
				],
				'tablet_default' => [
					'unit' => 'em',
				],
				'mobile_default' => [
					'unit' => 'em',
				],
				'size_units' => [ 'em', 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn__icon' => '--e-share-buttons-icon-size: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'view!' => 'text',
				],
			]
		);

		$this->add_responsive_control(
			'button_height',
			[
				'label' => esc_html__( 'Button Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'em' => [
						'min' => 1,
						'max' => 7,
						'step' => 0.1,
					],
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'unit' => 'em',
				],
				'tablet_default' => [
					'unit' => 'em',
				],
				'mobile_default' => [
					'unit' => 'em',
				],
				'size_units' => [ 'em', 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'border_size',
			[
				'label' => esc_html__( 'Border Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'default' => [
					'size' => 2,
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 20,
					],
					'em' => [
						'max' => 2,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn' => 'border-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'skin' => [ 'framed', 'boxed' ],
				],
			]
		);

		$this->add_control(
			'color_source',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'official' => esc_html__( 'Official', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'official',
				'prefix_class' => 'elementor-share-buttons--color-',
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs(
			'tabs_button_style',
			[
				'condition' => [
					'color_source' => 'custom',
				],
			]
		);

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => '--e-share-buttons-primary-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--e-share-buttons-secondary-color: {{VALUE}}',
				],
				'separator' => 'after',
				'condition' => [
					'skin!' => 'framed',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'primary_color_hover',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn:hover' => '--e-share-buttons-primary-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'secondary_color_hover',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-share-btn:hover' => '--e-share-buttons-secondary-color: {{VALUE}}',
				],
				'separator' => 'after',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'selector' => '{{WRAPPER}} .elementor-share-btn__title',
				'exclude' => [ 'line_height' ],
			]
		);

		$this->add_control(
			'text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} a.elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
				'condition' => [
					'view' => 'text',
				],
			]
		);

		$this->end_controls_section();

	}

	protected function render() {
		$settings = $this->get_active_settings();

		if ( empty( $settings['share_buttons'] ) ) {
			return;
		}

		$button_classes = 'elementor-share-btn';

		$show_text = 'text' === $settings['view'] || 'yes' === $settings['show_label'];
		?>
		<div class="elementor-grid">
			<?php
			$networks_data = Module::get_networks();

			foreach ( $settings['share_buttons'] as $button ) {
				$network_name = $button['button'];

				// A deprecated network.
				if ( ! isset( $networks_data[ $network_name ] ) ) {
					continue;
				}

				$social_network_class = ' elementor-share-btn_' . $network_name;
				?>
					<div class="elementor-grid-item">
						<div class="<?php echo esc_attr( $button_classes . $social_network_class ); ?>">
							<?php if ( 'icon' === $settings['view'] || 'icon-text' === $settings['view'] ) : ?>
								<span class="elementor-share-btn__icon">
								<?php self::render_share_icon( $network_name ); ?>
								<span
									class="elementor-screen-only"><?php echo sprintf( esc_html__( 'Share on %s', 'elementor-pro' ), esc_html( $network_name ) ); ?></span>
							</span>
							<?php endif; ?>
							<?php if ( $show_text ) : ?>
								<div class="elementor-share-btn__text">
									<?php if ( 'yes' === $settings['show_label'] || 'text' === $settings['view'] ) : ?>
										<span class="elementor-share-btn__title">
										<?php
										// PHPCS - the main text of a widget should not be escaped.
										echo $button['text'] ? $button['text'] : $networks_data[ $network_name ]['title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
										?>
									</span>
									<?php endif; ?>
								</div>
							<?php endif; ?>
						</div>
					</div>
				<?php
			}
			?>
		</div>
		<?php
	}

	/**
	 * Render Share Buttons widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var shareButtonsEditorModule = elementorPro.modules.shareButtons,
				buttonClass = 'elementor-share-btn';

			var showText = 'icon-text' === settings.view ? 'yes' === settings.show_label : 'text' === settings.view;
		#>
		<div class="elementor-grid">
			<#
				_.each( settings.share_buttons, function( button ) {
					// A deprecated network.
					if ( ! shareButtonsEditorModule.getNetworkData( button ) ) {
						return;
					}

					var networkName = button.button,
						socialNetworkClass = 'elementor-share-btn_' + networkName;
					#>
					<div class="elementor-grid-item">
						<div class="{{ buttonClass }} {{ socialNetworkClass }}">
							<# if ( 'icon' === settings.view || 'icon-text' === settings.view ) { #>
							<span class="elementor-share-btn__icon">
								<i class="{{ shareButtonsEditorModule.getNetworkClass( networkName ) }}" aria-hidden="true"></i>
								<span class="elementor-screen-only">Share on {{{ networkName }}}</span>
							</span>
							<# } #>
							<# if ( showText ) { #>
								<div class="elementor-share-btn__text">
									<# if ( 'yes' === settings.show_label || 'text' === settings.view ) { #>
										<span class="elementor-share-btn__title">{{{ shareButtonsEditorModule.getNetworkTitle( button ) }}}</span>
									<# } #>
								</div>
							<# } #>
						</div>
					</div>
			<#  } ); #>
		</div>
		<?php
	}

	private static function render_share_icon( $network_name ) {
		$network_icon_data = self::get_network_icon_data( $network_name );

		if ( Plugin::elementor()->experiments->is_feature_active( 'e_font_icon_svg' ) ) {
			$icon = Icons_Manager::render_font_icon( $network_icon_data );
		} else {
			$icon = sprintf( '<i class="%s" aria-hidden="true"></i>', $network_icon_data['value'] );
		}

		Utils::print_unescaped_internal_string( $icon );
	}
}
PK!��My����#modules/hotspot/widgets/hotspot.phpnu�[���<?php

namespace ElementorPro\Modules\Hotspot\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Image_Size;
use Elementor\Repeater;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Icons_Manager;
use Elementor\Utils;
use Elementor\Widget_Image;
use ElementorPro\Base\Base_Widget_Trait;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Hotspot extends Widget_Image {
	use Base_Widget_Trait;

	public function get_name() {
		return 'hotspot';
	}

	public function get_title() {
		return esc_html__( 'Hotspot', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-image-hotspot';
	}

	public function get_keywords() {
		return [ 'image', 'tooltip', 'CTA', 'dot' ];
	}

	protected function register_controls() {
		parent::register_controls();

		/**
		 * Image Section
		 */

		$this->remove_control( 'caption_source' );
		$this->remove_control( 'caption' );
		$this->remove_control( 'link_to' );
		$this->remove_control( 'link' );
		$this->remove_control( 'open_lightbox' );

		/**
		 * Section Hotspot
		 */
		$this->start_controls_section(
			'hotspot_section',
			[
				'label' => esc_html__( 'Hotspot', 'elementor-pro' ),
			]
		);

		$repeater = new Repeater();

		$repeater->start_controls_tabs( 'hotspot_repeater' );

		$repeater->start_controls_tab(
			'hotspot_content_tab',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'hotspot_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'label_block' => true,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'hotspot_link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'hotspot_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'skin' => 'inline',
				'label_block' => false,
			]
		);

		$repeater->add_control(
			'hotspot_icon_position',
			[
				'label' => esc_html__( 'Icon Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Icon Start', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'end' => [
						'title' => esc_html__( 'Icon End', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors_dictionary' => [
					'start' => 'grid-column: 1;',
					'end' => 'grid-column: 2;',
				],
				'condition' => [
					'hotspot_icon[value]!' => '',
					'hotspot_label[value]!' => '',
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .e-hotspot__icon' => '{{VALUE}}',
				],
				'default' => 'start',
			]
		);

		$repeater->add_control(
			'hotspot_icon_spacing',
			[
				'label' => esc_html__( 'Icon Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [
					'size' => '5',
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .e-hotspot__button' =>
							'grid-gap: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'hotspot_icon[value]!' => '',
					'hotspot_label[value]!' => '',
				],
			]
		);

		$repeater->add_control(
			'hotspot_custom_size',
			[
				'label' => esc_html__( 'Custom Hotspot Size', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'default' => 'no',
				'description' => esc_html__( 'Set custom Hotspot size that will only affect this specific hotspot.', 'elementor-pro' ),
			]
		);

		$repeater->add_control('hotspot_width',
			[
				'label' => esc_html__( 'Min Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}}' => '--hotspot-min-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'hotspot_custom_size' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'hotspot_height',
			[
				'label' => esc_html__( 'Min Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}}' => '--hotspot-min-height: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'hotspot_custom_size' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'hotspot_tooltip_content',
			[
				'render_type' => 'template',
				'label' => esc_html__( 'Tooltip Content', 'elementor-pro' ),
				'type' => Controls_Manager::WYSIWYG,
				'default' => esc_html__( 'Add Your Tooltip Text Here', 'elementor-pro' ),
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab(
			'hotspot_position_tab',
			[
				'label' => esc_html__( 'POSITION', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'hotspot_horizontal',
			[
				'label' => esc_html__( 'Horizontal Orientation', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => is_rtl() ? 'right' : 'left',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'toggle' => false,
			]
		);

		$repeater->add_responsive_control(
			'hotspot_offset_x',
			[
				'label' => esc_html__( 'Offset', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%' ],
				'default' => [
					'unit' => '%',
					'size' => '50',
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}}' =>
							'{{hotspot_horizontal.VALUE}}: {{SIZE}}%; --hotspot-translate-x: {{SIZE}}%;',
				],
			]
		);

		$repeater->add_control(
			'hotspot_vertical',
			[
				'label' => esc_html__( 'Vertical Orientation', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'default' => 'top',
				'toggle' => false,
			]
		);

		$repeater->add_responsive_control(
			'hotspot_offset_y',
			[
				'label' => esc_html__( 'Offset', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%' ],
				'default' => [
					'unit' => '%',
					'size' => '50',
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}}' =>
							'{{hotspot_vertical.VALUE}}: {{SIZE}}%; --hotspot-translate-y: {{SIZE}}%;',
				],
			]
		);

		$repeater->add_control(
			'hotspot_tooltip_position',
			[
				'label' => esc_html__( 'Custom Tooltip Properties', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'default' => 'no',
				'description' => sprintf( esc_html__( 'Set custom Tooltip opening that will only affect this specific hotspot.', 'elementor-pro' ), '<code>|</code>' ),
			]
		);

		$repeater->add_control(
			'hotspot_heading',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'hotspot_tooltip_position' => 'yes',
				],
			]
		);

		$repeater->add_responsive_control(
			'hotspot_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'right' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'bottom' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'left' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
					'top' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .e-hotspot--tooltip-position' => 'right: initial;bottom: initial;left: initial;top: initial;{{VALUE}}: calc(100% + 5px );',
				],
				'condition' => [
					'hotspot_tooltip_position' => 'yes',
				],
				'render_type' => 'template',
			]
		);

		$repeater->add_responsive_control(
			'hotspot_tooltip_width',
			[
				'label' => esc_html__( 'Min Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 2000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .e-hotspot__tooltip' => 'min-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'hotspot_tooltip_position' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'hotspot_tooltip_text_wrap',
			[
				'label' => esc_html__( 'Text Wrap', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}}' => '--white-space: normal',
				],
				'condition' => [
					'hotspot_tooltip_position' => 'yes',
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$this->add_control(
			'hotspot',
			[
				'label' => esc_html__( 'Hotspot', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'title_field' => '{{{ hotspot_label }}}',
				'default' => [
					[
						// Default #1 circle
					],
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'hotspot_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'e-hotspot--soft-beat' => esc_html__( 'Soft Beat', 'elementor-pro' ),
					'e-hotspot--expand' => esc_html__( 'Expand', 'elementor-pro' ),
					'e-hotspot--overlay' => esc_html__( 'Overlay', 'elementor-pro' ),
					'' => esc_html__( 'None', 'elementor-pro' ),
				],
				'default' => 'e-hotspot--expand',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'hotspot_sequenced_animation',
			[
				'label' => esc_html__( 'Sequenced Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'default' => 'no',
				'frontend_available' => true,
				'render_type' => 'none',
			]
		);

		$this->add_control(
			'hotspot_sequenced_animation_duration',
			[
				'label' => esc_html__( 'Sequence Duration (ms)', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 20000,
					],
				],
				'condition' => [
					'hotspot_sequenced_animation' => 'yes',
				],
				'frontend_available' => true,
				'render_type' => 'ui',
			]
		);

		$this->end_controls_section();

		/**
		 * Tooltip Section
		 */
		$this->start_controls_section(
			'tooltip_section',
			[
				'label' => esc_html__( 'Tooltip', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'tooltip_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'top',
				'toggle' => false,
				'options' => [
					'right' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'bottom' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'left' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
					'top' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .e-hotspot--tooltip-position' => 'right: initial;bottom: initial;left: initial;top: initial;{{VALUE}}: calc(100% + 5px );',
				],
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'tooltip_trigger',
			[
				'label' => esc_html__( 'Trigger', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'mouseenter' => esc_html__( 'Hover', 'elementor-pro' ),
					'click' => esc_html__( 'Click', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
				],
				'default' => 'click',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'tooltip_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'e-hotspot--fade-in-out' => esc_html__( 'Fade In/Out', 'elementor-pro' ),
					'e-hotspot--fade-grow' => esc_html__( 'Fade Grow', 'elementor-pro' ),
					'e-hotspot--fade-direction' => esc_html__( 'Fade By Direction', 'elementor-pro' ),
					'e-hotspot--slide-direction' => esc_html__( 'Slide By Direction', 'elementor-pro' ),
				],
				'default' => 'e-hotspot--fade-in-out',
				'placeholder' => esc_html__( 'Enter your image caption', 'elementor-pro' ),
				'condition' => [
					'tooltip_trigger!' => 'none',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'tooltip_animation_duration',
			[
				'label' => esc_html__( 'Duration (ms)', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 10000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-transition-duration: {{SIZE}}ms;',
				],
				'condition' => [
					'tooltip_trigger!' => 'none',
				],
			]
		);

		$this->end_controls_section();

		/*************
		 * Style Tab
		 ************/
		/**
		 * Section Style Image
		 */

		$this->remove_control( 'section_style_caption' );

		$this->remove_control( 'caption_align' );

		$this->remove_control( 'text_color' );

		$this->remove_control( 'caption_background_color' );

		$this->remove_control( 'caption_typography' );

		$this->remove_control( 'caption_text_shadow' );

		$this->remove_control( 'caption_space' );

		$this->update_control( 'align', [
			'options' => [
				'flex-start' => [
					'title' => esc_html__( 'Start', 'elementor-pro' ),
					'icon' => 'eicon-text-align-left',
				],
				'center' => [
					'title' => esc_html__( 'Center', 'elementor-pro' ),
					'icon' => 'eicon-text-align-center',
				],
				'flex-end' => [
					'title' => esc_html__( 'End', 'elementor-pro' ),
					'icon' => 'eicon-text-align-right',
				],
			],
			'selectors' => [
				'{{WRAPPER}}' => '--background-align: {{VALUE}};',
			],
		] );

		$this->update_control(
			'width',
			[
				'selectors' => [
					'{{WRAPPER}}' => '--container-width: {{SIZE}}{{UNIT}}; --image-width: 100%;',
				],
			]
		);

		$this->update_control(
			'space',
			[
				'selectors' => [
					'{{WRAPPER}}' => '--container-max-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->update_control(
			'height',
			[
				'selectors' => [
					'{{WRAPPER}}' => '--container-height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->remove_control( 'hover_animation' );

		$this->update_control(
			'opacity',
			[
				'selectors' => [
					'{{WRAPPER}}' => '--opacity: {{SIZE}};',
				],
			]
		);

		$this->update_control(
			'opacity_hover',
			[
				'selectors' => [
					'{{WRAPPER}} .elementor-widget-container>img:hover' => '--opacity: {{SIZE}};',
				],
			]
		);

		/**
		 * Section Style Hotspot
		 */
		$this->start_controls_section(
			'section_style_hotspot',
			[
				'label' => esc_html__( 'Hotspot', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'style_hotspot_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
			]
		);

		$this->add_responsive_control(
			'style_hotspot_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'%' => [
						'min' => 0,
						'max' => 100,
					],
					'px' => [
						'min' => 0,
						'max' => 300,
						'step' => 1,
					],
				],
				'size_units' => [ 'px', '%' ],
				'default' => [
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'style_typography',
				'selector' => '{{WRAPPER}} .e-hotspot__label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_responsive_control(
			'style_hotspot_width',
			[
				'label' => esc_html__( 'Min Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-min-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'style_hotspot_height',
			[
				'label' => esc_html__( 'Min Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-min-height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'style_hotspot_box_color',
			[
				'label' => esc_html__( 'Box Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-box-color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
			]
		);

		$this->add_responsive_control(
			'style_hotspot_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 100,
					],
					'px' => [
						'min' => 0,
						'max' => 100,
						'step' => 1,
					],
				],
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-padding: {{SIZE}}{{UNIT}};',
				],
				'default' => [
					'unit' => 'px',
				],
			]
		);

		$this->add_control(
			'style_hotspot_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--hotspot-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'default' => [
					'unit' => 'px',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'style_hotspot_box_shadow',
				'selector' => '
					{{WRAPPER}} .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button,
					{{WRAPPER}} .e-hotspot.e-hotspot--circle .e-hotspot__button .e-hotspot__outer-circle
				',
			]
		);

		$this->end_controls_section();

		/**
		 * Section Style Tooltip
		 */
		$this->start_controls_section(
			'section_style_tooltip',
			[
				'label' => esc_html__( 'Tooltip', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'style_tooltip_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'style_tooltip_typography',
				'selector' => '{{WRAPPER}} .e-hotspot__tooltip',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->add_responsive_control(
			'style_tooltip_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'style_tooltip_heading',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'style_tooltip_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 2000,
						'step' => 1,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-min-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'style_tooltip_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'default' => [
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'style_tooltip_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-color: {{VALUE}}',
				],
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
			]
		);

		$this->add_control(
			'style_tooltip_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tooltip-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'style_tooltip_box_shadow',
				'selector' => '{{WRAPPER}} .e-hotspot__tooltip',
			]
		);

		$this->end_controls_section();
	}


	protected function render() {
		$settings = $this->get_settings_for_display();

		$is_tooltip_direction_animation = 'e-hotspot--slide-direction' === $settings['tooltip_animation'] || 'e-hotspot--fade-direction' === $settings['tooltip_animation'];
		$show_tooltip = 'none' === $settings['tooltip_trigger'];
		$sequenced_animation_class = 'yes' === $settings['hotspot_sequenced_animation'] ? 'e-hotspot--sequenced' : '';

		// Main Image
		Group_Control_Image_Size::print_attachment_image_html( $settings, 'image', 'image' );

		// Hotspot
		foreach ( $settings['hotspot'] as $key => $hotspot ) :
			$is_circle = ! $hotspot['hotspot_label'] && ! $hotspot['hotspot_icon']['value'];
			$is_only_icon = ! $hotspot['hotspot_label'] && $hotspot['hotspot_icon']['value'];
			$hotspot_position_x = '%' === $hotspot['hotspot_offset_x']['unit'] ? 'e-hotspot--position-' . $hotspot['hotspot_horizontal'] : '';
			$hotspot_position_y = '%' === $hotspot['hotspot_offset_y']['unit'] ? 'e-hotspot--position-' . $hotspot['hotspot_vertical'] : '';
			$is_hotspot_link = ! empty( $hotspot['hotspot_link']['url'] );
			$hotspot_element_tag = $is_hotspot_link ? 'a' : 'div';

			// hotspot attributes
			$hotspot_repeater_setting_key = $this->get_repeater_setting_key( 'hotspot', 'hotspots', $key );
			$this->add_render_attribute(
				$hotspot_repeater_setting_key, [
					'class' => [
						'e-hotspot',
						'elementor-repeater-item-' . $hotspot['_id'],
						$sequenced_animation_class,
						$hotspot_position_x,
						$hotspot_position_y,
						$is_hotspot_link ? 'e-hotspot--link' : '',
						( 'click' === $settings['tooltip_trigger'] && $is_hotspot_link ) ? 'e-hotspot--no-tooltip' : '',
					],
				]
			);
			if ( $is_circle ) {
				$this->add_render_attribute( $hotspot_repeater_setting_key, 'class', 'e-hotspot--circle' );
			}
			if ( $is_only_icon ) {
				$this->add_render_attribute( $hotspot_repeater_setting_key, 'class', 'e-hotspot--icon' );
			}

			if ( $is_hotspot_link ) {
				$this->add_link_attributes( $hotspot_repeater_setting_key, $hotspot['hotspot_link'] );
			}

			// hotspot trigger attributes
			$trigger_repeater_setting_key = $this->get_repeater_setting_key( 'trigger', 'hotspots', $key );
			$this->add_render_attribute(
				$trigger_repeater_setting_key, [
					'class' => [
						'e-hotspot__button',
						$settings['hotspot_animation'],
					],
				]
			);

			//direction mask attributes
			$direction_mask_repeater_setting_key = $this->get_repeater_setting_key( 'e-hotspot__direction-mask', 'hotspots', $key );
			$this->add_render_attribute(
				$direction_mask_repeater_setting_key, [
					'class' => [
						'e-hotspot__direction-mask',
						( $is_tooltip_direction_animation ) ? 'e-hotspot--tooltip-position' : '',
					],
				]
			);

			//tooltip attributes
			$tooltip_custom_position = ( $is_tooltip_direction_animation && $hotspot['hotspot_tooltip_position'] && $hotspot['hotspot_position'] ) ? 'e-hotspot--override-tooltip-animation-from-' . $hotspot['hotspot_position'] : '';
			$tooltip_repeater_setting_key = $this->get_repeater_setting_key( 'tooltip', 'hotspots', $key );
			$this->add_render_attribute(
				$tooltip_repeater_setting_key, [
					'class' => [
						'e-hotspot__tooltip',
						( $show_tooltip ) ? 'e-hotspot--show-tooltip' : '',
						( ! $is_tooltip_direction_animation ) ? 'e-hotspot--tooltip-position' : '',
						( ! $show_tooltip ) ? $settings['tooltip_animation'] : '',
						$tooltip_custom_position,
					],
				]
			); ?>

			<?php // Hotspot ?>
			<<?php Utils::print_validated_html_tag( $hotspot_element_tag ); ?> <?php $this->print_render_attribute_string( $hotspot_repeater_setting_key ); ?>>

				<?php // Hotspot Trigger ?>
				<div <?php $this->print_render_attribute_string( $trigger_repeater_setting_key ); ?>>
					<?php if ( $is_circle ) : ?>
						<div class="e-hotspot__outer-circle"></div>
						<div class="e-hotspot__inner-circle"></div>
					<?php else : ?>
						<?php if ( $hotspot['hotspot_icon']['value'] ) : ?>
							<div class="e-hotspot__icon"><?php Icons_Manager::render_icon( $hotspot['hotspot_icon'] ); ?></div>
						<?php endif; ?>
						<?php if ( $hotspot['hotspot_label'] ) : ?>
							<div class="e-hotspot__label"><?php
								// PHPCS - the main text of a widget should not be escaped.
								echo $hotspot['hotspot_label']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							?></div>
						<?php endif; ?>
					<?php endif; ?>
				</div>

				<?php // Hotspot Tooltip ?>
				<?php if ( $hotspot['hotspot_tooltip_content'] && ! ( 'click' === $settings['tooltip_trigger'] && $is_hotspot_link ) ) : ?>
					<?php if ( $is_tooltip_direction_animation ) : ?>
						<div <?php $this->print_render_attribute_string( $direction_mask_repeater_setting_key ); ?>>
					<?php endif; ?>
					<div <?php $this->print_render_attribute_string( $tooltip_repeater_setting_key ); ?> >
						<?php
						// PHPCS - the main text of a widget should not be escaped.
						echo $hotspot['hotspot_tooltip_content']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						?>
					</div>
					<?php if ( $is_tooltip_direction_animation ) : ?>
						</div>
					<?php endif; ?>
				<?php endif; ?>

			</<?php Utils::print_validated_html_tag( $hotspot_element_tag ); ?>>

	<?php endforeach; ?>

		<?php
	}

	/**
	 * Render Hotspot widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since  2.9.0
	 * @access protected
	 */
	protected function content_template() {         ?>
		<#
		const image = {
			id: settings.image.id,
			url: settings.image.url,
			size: settings.image_size,
			dimension: settings.image_custom_dimension,
			model: view.getEditModel()
		};

		const imageUrl = elementor.imagesManager.getImageUrl( image );

		#>
		<img src="{{ imageUrl }}" title="" alt="">
		<#
		const isTooltipDirectionAnimation = (settings.tooltip_animation==='e-hotspot--slide-direction' || settings.tooltip_animation==='e-hotspot--fade-direction' ) ? true : false;
		const showTooltip = ( settings.tooltip_trigger === 'none' );

		_.each( settings.hotspot, ( hotspot, index ) => {
			const iconHTML = elementor.helpers.renderIcon( view, hotspot.hotspot_icon, {}, 'i' , 'object' );

			const isCircle = !hotspot.hotspot_label && !hotspot.hotspot_icon.value;
			const isOnlyIcon = !hotspot.hotspot_label && hotspot.hotspot_icon.value;
			const hotspotPositionX = '%' === hotspot.hotspot_offset_x.unit ? 'e-hotspot--position-' + hotspot.hotspot_horizontal : '';
			const hotspotPositionY = '%' === hotspot.hotspot_offset_y.unit ? 'e-hotspot--position-' + hotspot.hotspot_vertical : '';
			const hotspotLink = hotspot.hotspot_link.url;
			const hotspotElementTag = hotspotLink ? 'a': 'div';

			// hotspot attributes
			const hotspotRepeaterSettingKey = view.getRepeaterSettingKey( 'hotspot', 'hotspots', index );
			view.addRenderAttribute( hotspotRepeaterSettingKey, {
				'class' : [
					'e-hotspot',
					'elementor-repeater-item-' + hotspot._id,
					hotspotPositionX,
					hotspotPositionY,
					hotspotLink ? 'e-hotspot--link' : '',,
				]
			});

			if ( isCircle ) {
				view.addRenderAttribute( hotspotRepeaterSettingKey, 'class', 'e-hotspot--circle' );
			}

			if ( isOnlyIcon ) {
				view.addRenderAttribute( hotspotRepeaterSettingKey, 'class', 'e-hotspot--icon' );
			}

			// hotspot trigger attributes
			const triggerRepeaterSettingKey = view.getRepeaterSettingKey( 'trigger', 'hotspots', index );
			view.addRenderAttribute(triggerRepeaterSettingKey, {
				'class' : [
					'e-hotspot__button',
					settings.hotspot_animation,
					//'hotspot-trigger-' + hotspot.hotspot_icon_position
				]
			});

			//direction mask attributes
			const directionMaskRepeaterSettingKey = view.getRepeaterSettingKey( 'e-hotspot__direction-mask', 'hotspots', index );
			view.addRenderAttribute(directionMaskRepeaterSettingKey, {
				'class' : [
					'e-hotspot__direction-mask',
					( isTooltipDirectionAnimation ) ? 'e-hotspot--tooltip-position' : ''
				]
			});

			//tooltip attributes
			const tooltipCustomPosition = ( isTooltipDirectionAnimation && hotspot.hotspot_tooltip_position && hotspot.hotspot_position ) ? 'e-hotspot--override-tooltip-animation-from-' + hotspot.hotspot_position : '';
			const tooltipRepeaterSettingKey = view.getRepeaterSettingKey('tooltip', 'hotspots', index);
			view.addRenderAttribute( tooltipRepeaterSettingKey, {
				'class': [
					'e-hotspot__tooltip',
					( showTooltip ) ? 'e-hotspot--show-tooltip' : '',
					( !isTooltipDirectionAnimation ) ? 'e-hotspot--tooltip-position' : '',
					( !showTooltip ) ? settings.tooltip_animation : '',
					tooltipCustomPosition
				],
			});

			#>
			<{{{ hotspotElementTag }}} {{{ view.getRenderAttributeString( hotspotRepeaterSettingKey ) }}}>

					<?php // Hotspot Trigger ?>
					<div {{{ view.getRenderAttributeString( triggerRepeaterSettingKey ) }}}>
						<# if ( isCircle ) { #>
						<div class="e-hotspot__outer-circle"></div>
						<div class="e-hotspot__inner-circle"></div>
						<# } else { #>
						<# if (hotspot.hotspot_icon.value){ #>
						<div class="e-hotspot__icon">{{{ iconHTML.value }}}</div>
						<# } #>
						<# if ( hotspot.hotspot_label ){ #>
						<div class="e-hotspot__label">{{{ hotspot.hotspot_label }}}</div>
						<# } #>
						<# } #>
					</div>

					<?php // Hotspot Tooltip ?>
					<# if( hotspot.hotspot_tooltip_content && ! ( 'click' === settings.tooltip_trigger && hotspotLink ) ){ #>
					<# if( isTooltipDirectionAnimation ){ #>
					<div {{{ view.getRenderAttributeString( directionMaskRepeaterSettingKey ) }}}>
						<# } #>
						<div {{{ view.getRenderAttributeString( tooltipRepeaterSettingKey ) }}}>
							{{{ hotspot.hotspot_tooltip_content }}}
						</div>
						<# if( isTooltipDirectionAnimation ){ #>
					</div>
					<# } #>
					<# } #>

			</{{{ hotspotElementTag }}}>
		<# }); #>
		<?php
	}
}
PK!xA�88modules/hotspot/module.phpnu�[���<?php
namespace ElementorPro\Modules\Hotspot;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Hotspot',
		];
	}

	public function get_name() {
		return 'hotspot';
	}
}
PK!���vv+modules/dynamic-tags/acf/tags/acf-image.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_Image extends Data_Tag {

	public function get_name() {
		return 'acf-image';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Image Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		$image_data = [
			'id' => null,
			'url' => '',
		];

		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field && is_array( $field ) ) {
			$field['return_format'] = isset( $field['save_format'] ) ? $field['save_format'] : $field['return_format'];
			switch ( $field['return_format'] ) {
				case 'object':
				case 'array':
					$value = $field['value'];
					break;
				case 'url':
					$value = [
						'id' => 0,
						'url' => $field['value'],
					];
					break;
				case 'id':
					$src = wp_get_attachment_image_src( $field['value'], $field['preview_size'] );
					$value = [
						'id' => $field['value'],
						'url' => $src[0],
					];
					break;
			}
		}

		if ( ! isset( $value ) ) {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		}

		if ( empty( $value ) && $this->get_settings( 'fallback' ) ) {
			$value = $this->get_settings( 'fallback' );
		}

		if ( ! empty( $value ) && is_array( $value ) ) {
			$image_data['id'] = $value['id'];
			$image_data['url'] = $value['url'];
		}

		return $image_data;
	}

	protected function register_controls() {
		Module::add_key_control( $this );

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
			]
		);
	}

	public function get_supported_fields() {
		return [
			'image',
		];
	}
}
PK!�� 33*modules/dynamic-tags/acf/tags/acf-file.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_File extends ACF_Image {

	public function get_name() {
		return 'acf-file';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'File Field', 'elementor-pro' );
	}

	public function get_categories() {
		return [
			Module::MEDIA_CATEGORY,
		];
	}

	public function get_supported_fields() {
		return [
			'file',
		];
	}
}
PK!9Yl���,modules/dynamic-tags/acf/tags/acf-number.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_Number extends Tag {

	public function get_name() {
		return 'acf-number';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Number', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_categories() {
		return [
			Module::NUMBER_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	public function render() {
		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field && ! empty( $field['type'] ) ) {
			$value = $field['value'];
		} else {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		} // End if().

		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		Module::add_key_control( $this );
	}

	public function get_supported_fields() {
		return [
			'number',
		];
	}
}
PK!*��((*modules/dynamic-tags/acf/tags/acf-text.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_Text extends Tag {

	public function get_name() {
		return 'acf-text';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	public function render() {
		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field && ! empty( $field['type'] ) ) {
			$value = $field['value'];

			switch ( $field['type'] ) {
				case 'radio':
					if ( isset( $field['choices'][ $value ] ) ) {
						$value = $field['choices'][ $value ];
					}
					break;
				case 'select':
					// Use as array for `multiple=true` or `return_format=array`.
					$values = (array) $value;

					foreach ( $values as $key => $item ) {
						if ( isset( $field['choices'][ $item ] ) ) {
							$values[ $key ] = $field['choices'][ $item ];
						}
					}

					$value = implode( ', ', $values );

					break;
				case 'checkbox':
					$value = (array) $value;
					$values = [];
					foreach ( $value as $item ) {
						if ( isset( $field['choices'][ $item ] ) ) {
							$values[] = $field['choices'][ $item ];
						} else {
							$values[] = $item;
						}
					}

					$value = implode( ', ', $values );

					break;
				case 'oembed':
					// Get from db without formatting.
					$value = $this->get_queried_object_meta( $meta_key );
					break;
				case 'google_map':
					$meta = $this->get_queried_object_meta( $meta_key );
					$value = isset( $meta['address'] ) ? $meta['address'] : '';
					break;
			} // End switch().
		} else {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		} // End if().

		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		Module::add_key_control( $this );
	}

	public function get_supported_fields() {
		return [
			'text',
			'textarea',
			'number',
			'email',
			'password',
			'wysiwyg',
			'select',
			'checkbox',
			'radio',
			'true_false',

			// Pro
			'oembed',
			'google_map',
			'date_picker',
			'time_picker',
			'date_time_picker',
			'color_picker',
		];
	}

	private function get_queried_object_meta( $meta_key ) {
		$value = '';
		if ( is_singular() ) {
			$value = get_post_meta( get_the_ID(), $meta_key, true );
		} elseif ( is_tax() || is_category() || is_tag() ) {
			$value = get_term_meta( get_queried_object_id(), $meta_key, true );
		}

		return $value;
	}
}
PK!�U����+modules/dynamic-tags/acf/tags/acf-color.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_COLOR extends Data_Tag {

	public function get_name() {
		return 'acf-color';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Color Picker Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_categories() {
		return [ Module::COLOR_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field ) {
			$value = $field['value'];
		} else {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		}

		if ( empty( $value ) && $this->get_settings( 'fallback' ) ) {
			$value = $this->get_settings( 'fallback' );
		}

		return $value;
	}

	protected function register_controls() {
		Module::add_key_control( $this );
	}

	public function get_supported_fields() {
		return [
			'color_picker',
		];
	}
}
PK!�(�{-modules/dynamic-tags/acf/tags/acf-gallery.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_Gallery extends Data_Tag {

	public function get_name() {
		return 'acf-gallery';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Gallery Field', 'elementor-pro' );
	}

	public function get_categories() {
		return [ Module::GALLERY_CATEGORY ];
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		$images = [];

		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field ) {
			$value = $field['value'];
		} else {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		}

		if ( is_array( $value ) && ! empty( $value ) ) {
			foreach ( $value as $image ) {
				$images[] = [
					'id' => $image['ID'],
				];
			}
		}

		return $images;
	}

	protected function register_controls() {
		Module::add_key_control( $this );
	}

	public function get_supported_fields() {
		return [
			'gallery',
		];
	}
}
PK!��t�	�	)modules/dynamic-tags/acf/tags/acf-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ACF_URL extends Data_Tag {

	public function get_name() {
		return 'acf-url';
	}

	public function get_title() {
		return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'URL Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACF_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		list( $field, $meta_key ) = Module::get_tag_value_field( $this );

		if ( $field ) {
			$value = $field['value'];

			if ( is_array( $value ) && isset( $value[0] ) ) {
				$value = $value[0];
			}

			if ( $value ) {
				if ( ! isset( $field['return_format'] ) ) {
					$field['return_format'] = isset( $field['save_format'] ) ? $field['save_format'] : '';
				}

				switch ( $field['type'] ) {
					case 'email':
						if ( $value ) {
							$value = 'mailto:' . $value;
						}
						break;
					case 'image':
					case 'file':
						switch ( $field['return_format'] ) {
							case 'array':
							case 'object':
								$value = $value['url'];
								break;
							case 'id':
								if ( 'image' === $field['type'] ) {
									$src = wp_get_attachment_image_src( $value, 'full' );
									$value = $src[0];
								} else {
									$value = wp_get_attachment_url( $value );
								}
								break;
						}
						break;
					case 'post_object':
					case 'relationship':
						$value = get_permalink( $value );
						break;
					case 'taxonomy':
						$value = get_term_link( $value, $field['taxonomy'] );
						break;
				} // End switch().
			}
		} else {
			// Field settings has been deleted or not available.
			$value = get_field( $meta_key );
		} // End if().

		if ( empty( $value ) && $this->get_settings( 'fallback' ) ) {
			$value = $this->get_settings( 'fallback' );
		}

		return wp_kses_post( $value );
	}

	protected function register_controls() {
		Module::add_key_control( $this );

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
			]
		);
	}

	public function get_supported_fields() {
		return [
			'text',
			'email',
			'image',
			'file',
			'page_link',
			'post_object',
			'relationship',
			'taxonomy',
			'url',
		];
	}
}
PK!�͊�
�
#modules/dynamic-tags/acf/module.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\ACF;

use Elementor\Controls_Manager;
use Elementor\Core\DynamicTags\Base_Tag;
use Elementor\Modules\DynamicTags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends DynamicTags\Module {

	const ACF_GROUP = 'acf';

	/**
	 * @param array $types
	 *
	 * @return array
	 */
	public static function get_control_options( $types ) {
		// ACF >= 5.0.0
		if ( function_exists( 'acf_get_field_groups' ) ) {
			$acf_groups = acf_get_field_groups();
		} else {
			$acf_groups = apply_filters( 'acf/get_field_groups', [] );
		}

		$groups = [];

		$options_page_groups_ids = [];

		if ( function_exists( 'acf_options_page' ) ) {
			$pages = acf_options_page()->get_pages();
			foreach ( $pages as $slug => $page ) {
				$options_page_groups = acf_get_field_groups( [
					'options_page' => $slug,
				] );

				foreach ( $options_page_groups as $options_page_group ) {
					$options_page_groups_ids[] = $options_page_group['ID'];
				}
			}
		}

		foreach ( $acf_groups as $acf_group ) {
			// ACF >= 5.0.0
			if ( function_exists( 'acf_get_fields' ) ) {
				if ( isset( $acf_group['ID'] ) && ! empty( $acf_group['ID'] ) ) {
					$fields = acf_get_fields( $acf_group['ID'] );
				} else {
					$fields = acf_get_fields( $acf_group );
				}
			} else {
				$fields = apply_filters( 'acf/field_group/get_fields', [], $acf_group['id'] );
			}

			$options = [];

			if ( ! is_array( $fields ) ) {
				continue;
			}

			$has_option_page_location = in_array( $acf_group['ID'], $options_page_groups_ids, true );
			$is_only_options_page = $has_option_page_location && 1 === count( $acf_group['location'] );

			foreach ( $fields as $field ) {
				if ( ! in_array( $field['type'], $types, true ) ) {
					continue;
				}

				// Use group ID for unique keys
				if ( $has_option_page_location ) {
					$key = 'options:' . $field['name'];
					$options[ $key ] = esc_html__( 'Options', 'elementor-pro' ) . ':' . $field['label'];
					if ( $is_only_options_page ) {
						continue;
					}
				}

				$key = $field['key'] . ':' . $field['name'];
				$options[ $key ] = $field['label'];
			}

			if ( empty( $options ) ) {
				continue;
			}

			if ( 1 === count( $options ) ) {
				$options = [ -1 => ' -- ' ] + $options;
			}

			$groups[] = [
				'label' => $acf_group['title'],
				'options' => $options,
			];
		} // End foreach().

		return $groups;
	}

	public static function add_key_control( Base_Tag $tag ) {
		$tag->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => self::get_control_options( $tag->get_supported_fields() ),
			]
		);
	}

	public function get_tag_classes_names() {
		return [
			'ACF_Text',
			'ACF_Image',
			'ACF_URL',
			'ACF_Gallery',
			'ACF_File',
			'ACF_Number',
			'ACF_Color',
		];
	}

	// For use by ACF tags
	public static function get_tag_value_field( Base_Tag $tag ) {
		$key = $tag->get_settings( 'key' );

		if ( ! empty( $key ) ) {
			list( $field_key, $meta_key ) = explode( ':', $key );

			if ( 'options' === $field_key ) {
				$field = get_field_object( $meta_key, $field_key );
			} else {
				$field = get_field_object( $field_key, get_queried_object() );
			}

			return [ $field, $meta_key ];
		}

		return [];
	}

	public function get_groups() {
		return [
			self::ACF_GROUP => [
				'title' => esc_html__( 'ACF', 'elementor-pro' ),
			],
		];
	}
}
PK!��#gg(modules/dynamic-tags/tags/post-title.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Title extends Tag {
	public function get_name() {
		return 'post-title';
	}

	public function get_title() {
		return esc_html__( 'Post Title', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		echo wp_kses_post( get_the_title() );
	}
}
PK!a�؉�/modules/dynamic-tags/tags/post-custom-field.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Custom_Field extends Tag {

	public function get_name() {
		return 'post-custom-field';
	}

	public function get_title() {
		return esc_html__( 'Post Custom Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::URL_CATEGORY,
			Module::POST_META_CATEGORY,
			Module::COLOR_CATEGORY,
		];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function is_settings_required() {
		return true;
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_keys_array(),
			]
		);

		$this->add_control(
			'custom_key',
			[
				'label' => esc_html__( 'Custom Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => 'key',
				'condition' => [
					'key' => '',
				],
			]
		);

	}

	public function render() {
		$key = $this->get_settings( 'key' );

		if ( empty( $key ) ) {
			$key = $this->get_settings( 'custom_key' );
		}

		if ( empty( $key ) ) {
			return;
		}

		$value = get_post_meta( get_the_ID(), $key, true );

		echo wp_kses_post( $value );
	}

	private function get_custom_keys_array() {
		$custom_keys = get_post_custom_keys();
		$options = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $custom_keys ) ) {
			foreach ( $custom_keys as $custom_key ) {
				if ( '_' !== substr( $custom_key, 0, 1 ) ) {
					$options[ $custom_key ] = $custom_key;
				}
			}
		}

		return $options;
	}
}
PK!�m�4qq&modules/dynamic-tags/tags/site-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_URL extends Data_Tag {

	public function get_name() {
		return 'site-url';
	}

	public function get_title() {
		return esc_html__( 'Site URL', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		return home_url();
	}
}

PK!��ڋ��*modules/dynamic-tags/tags/comments-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Comments_URL extends Data_Tag {

	public function get_name() {
		return 'comments-url';
	}

	public function get_title() {
		return esc_html__( 'Comments URL', 'elementor-pro' );
	}

	public function get_group() {
		return Module::COMMENTS_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		return get_comments_link();
	}
}
PK!�	=�((/modules/dynamic-tags/tags/current-date-time.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Current_Date_Time extends Tag {
	public function get_name() {
		return 'current-date-time';
	}

	public function get_title() {
		return esc_html__( 'Current Date Time', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	protected function register_controls() {
		$this->add_control(
			'date_format',
			[
				'label' => esc_html__( 'Date Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'' => esc_html__( 'None', 'elementor-pro' ),
					'F j, Y' => gmdate( 'F j, Y' ),
					'Y-m-d' => gmdate( 'Y-m-d' ),
					'm/d/Y' => gmdate( 'm/d/Y' ),
					'd/m/Y' => gmdate( 'd/m/Y' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
			]
		);

		$this->add_control(
			'time_format',
			[
				'label' => esc_html__( 'Time Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'' => esc_html__( 'None', 'elementor-pro' ),
					'g:i a' => gmdate( 'g:i a' ),
					'g:i A' => gmdate( 'g:i A' ),
					'H:i' => gmdate( 'H:i' ),
				],
				'default' => 'default',
				'condition' => [
					'date_format!' => 'custom',
				],
			]
		);

		$this->add_control(
			'custom_format',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'default' => get_option( 'date_format' ) . ' ' . get_option( 'time_format' ),
				'description' => sprintf( '<a href="https://go.elementor.com/wordpress-date-time/" target="_blank">%s</a>', esc_html__( 'Documentation on date and time formatting', 'elementor-pro' ) ),
				'condition' => [
					'date_format' => 'custom',
				],
			]
		);
	}

	public function render() {
		$settings = $this->get_settings();

		if ( 'custom' === $settings['date_format'] ) {
			$format = $settings['custom_format'];
		} else {
			$date_format = $settings['date_format'];
			$time_format = $settings['time_format'];
			$format = '';

			if ( 'default' === $date_format ) {
				$date_format = get_option( 'date_format' );
			}

			if ( 'default' === $time_format ) {
				$time_format = get_option( 'time_format' );
			}

			if ( $date_format ) {
				$format = $date_format;
				$has_date = true;
			} else {
				$has_date = false;
			}

			if ( $time_format ) {
				if ( $has_date ) {
					$format .= ' ';
				}
				$format .= $time_format;
			}
		}

		$value = date_i18n( $format );

		echo wp_kses_post( $value );
	}
}
PK!w�_��,�,)modules/dynamic-tags/tags/contact-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Contact_URL extends Tag {

	public function get_name() {
		return 'contact-url';
	}

	public function get_title() {
		return esc_html__( 'Contact URL', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACTION_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	protected function register_controls() {
		$this->add_control(
			'link_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => '— ' . esc_html__( 'Select', 'elementor-pro' ) . ' —',
					'email' => esc_html__( 'Email', 'elementor-pro' ),
					'tel' => esc_html__( 'Tel', 'elementor-pro' ),
					'sms' => esc_html__( 'SMS', 'elementor-pro' ),
					'whatsapp' => esc_html__( 'WhatsApp', 'elementor-pro' ),
					'skype' => esc_html__( 'Skype', 'elementor-pro' ),
					'messenger' => esc_html__( 'Messenger', 'elementor-pro' ),
					'viber' => esc_html__( 'Viber', 'elementor-pro' ),
					'waze' => esc_html__( 'Waze', 'elementor-pro' ),
					'google_calendar' => esc_html__( 'Google Calendar', 'elementor-pro' ),
					'outlook_calendar' => esc_html__( 'Outlook Calendar', 'elementor-pro' ),
					'yahoo_calendar' => esc_html__( 'Yahoo Calendar', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'mail_to',
			[
				'label' => esc_html__( 'Email', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'link_type' => 'email',
				],
			]
		);

		$this->add_control(
			'mail_subject',
			[
				'label' => esc_html__( 'Subject', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => 'true',
				'condition' => [
					'link_type' => 'email',
				],
			]
		);

		$this->add_control(
			'mail_body',
			[
				'label' => esc_html__( 'Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'condition' => [
					'link_type' => 'email',
				],
			]
		);

		$this->add_control(
			'tel_number',
			[
				'label' => esc_html__( 'Number', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'link_type' => [
						'tel',
						'sms',
						'whatsapp',
						'viber',
					],
				],
			]
		);

		$this->add_control(
			'username',
			[
				'label' => esc_html__( 'Username', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'link_type' => [ 'skype', 'messenger' ],
				],
			]
		);

		$this->add_control(
			'viber_action',
			[
				'label' => esc_html__( 'Action', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'contact' => esc_html__( 'Contact', 'elementor-pro' ),
					'add' => esc_html__( 'Add', 'elementor-pro' ),
				],
				'default' => 'contact',
				'condition' => [
					'link_type' => 'viber',
				],
			]
		);

		$this->add_control(
			'skype_action',
			[
				'label' => esc_html__( 'Action', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'call' => esc_html__( 'Call', 'elementor-pro' ),
					'chat' => esc_html__( 'Chat', 'elementor-pro' ),
					'userinfo' => esc_html__( 'Show Profile', 'elementor-pro' ),
					'add' => esc_html__( 'Add to Contacts', 'elementor-pro' ),
					'voicemail' => esc_html__( 'Send Voice Mail', 'elementor-pro' ),
				],
				'default' => 'call',
				'condition' => [
					'link_type' => 'skype',
				],
			]
		);

		$this->add_control(
			'waze_address',
			[
				'label' => esc_html__( 'Location', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => 'true',
				'condition' => [
					'link_type' => 'waze',
				],
			]
		);

		$this->add_control(
			'event_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => 'true',
				'condition' => [
					'link_type' => [
						'google_calendar',
						'outlook_calendar',
						'yahoo_calendar',
					],
				],
			]
		);

		$this->add_control(
			'event_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'condition' => [
					'link_type' => [
						'google_calendar',
						'outlook_calendar',
						'yahoo_calendar',
					],
				],
			]
		);

		$this->add_control(
			'event_location',
			[
				'label' => esc_html__( 'Location', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => 'true',
				'condition' => [
					'link_type' => [
						'google_calendar',
						'outlook_calendar',
						'yahoo_calendar',
					],
				],
			]
		);

		$this->add_control(
			'event_start_date',
			[
				'label' => esc_html__( 'Start', 'elementor-pro' ),
				'type' => Controls_Manager::DATE_TIME,
				'condition' => [
					'link_type' => [
						'google_calendar',
						'outlook_calendar',
						'yahoo_calendar',
					],
				],
			]
		);

		$this->add_control(
			'event_end_date',
			[
				'label' => esc_html__( 'End', 'elementor-pro' ),
				'type' => Controls_Manager::DATE_TIME,
				'condition' => [
					'link_type' => [
						'google_calendar',
						'outlook_calendar',
						'yahoo_calendar',
					],
				],
			]
		);
	}

	protected function register_advanced_section() {}

	private function build_mail_to_link( $settings ) {
		if ( empty( $settings['mail_to'] ) ) {
			return '';
		}

		$link = 'mailto:' . $settings['mail_to'] . '?';

		$build_parts = [];

		if ( ! empty( $settings['mail_subject'] ) ) {
			$build_parts['subject'] = $this->escape_space_in_url( $settings['mail_subject'] );
		}

		if ( ! empty( $settings['mail_body'] ) ) {
			$build_parts['body'] = $this->escape_space_in_url( $settings['mail_body'] );
		}

		return add_query_arg( $build_parts, $link );
	}

	private function build_sms_link( $settings ) {
		if ( empty( $settings['tel_number'] ) ) {
			return '';
		}

		$value = 'sms:' . $settings['tel_number'];
		return $value;
	}

	private function build_whatsapp_link( $settings ) {
		if ( empty( $settings['tel_number'] ) ) {
			return '';
		}

		return 'https://api.whatsapp.com/send?phone=' . $settings['tel_number'];
	}

	private function build_skype_link( $settings ) {
		if ( empty( $settings['username'] ) ) {
			return '';
		}

		$action = 'call';
		if ( ! empty( $settings['skype_action'] ) ) {
			$action = $settings['skype_action'];
		}
		$link = 'skype:' . $settings['username'] . '?' . $action;
		return $link;
	}

	private function build_waze_link( $settings ) {
		$link = 'https://waze.com/ul?';

		$build_parts = [
			'q' => $settings['waze_address'],
			'z' => 10,
			'navigate' => 'yes',
		];

		return add_query_arg( $build_parts, $link );
	}

	private function date_to_iso( $date, $all_day = false ) {
		$time = strtotime( $date );

		if ( $all_day ) {
			return gmdate( 'Ymd\/Ymd', $time );
		}

		return gmdate( 'Ymd\THis', $time );
	}

	private function date_to_ics( $date ) {
		$time = strtotime( $date );
		return gmdate( 'Y-m-d\Th:i:s', $time );
	}

	private function escape_space_in_url( $url ) {
		return str_replace( ' ', '%20', $url );
	}

	private function build_google_calendar_link( $settings ) {
		$dates = '';
		if ( ! empty( $settings['event_start_date'] ) ) {
			if ( empty( $settings['event_end_date'] ) ) {
				$dates = $this->date_to_iso( $settings['event_start_date'], true );
			} else {
				$dates = $this->date_to_iso( $settings['event_start_date'] ) . '/' . $this->date_to_iso( $settings['event_end_date'] );
			}
		}
		$link = 'https://www.google.com/calendar/render?action=TEMPLATE&';
		$build_parts = [
			'text' => empty( $settings['event_title'] ) ? '' : $this->escape_space_in_url( $settings['event_title'] ),
			'details' => empty( $settings['event_description'] ) ? '' : $this->escape_space_in_url( $settings['event_description'] ),
			'dates' => $dates,
			'location' => empty( $settings['event_location'] ) ? '' : $this->escape_space_in_url( $settings['event_location'] ),
		];

		return add_query_arg( $build_parts, $link );
	}

	private function build_outlook_calendar_link( $settings ) {
		$link = 'https://outlook.office.com/owa/?path=/calendar/action/compose&';
		$build_parts = [
			'subject' => empty( $settings['event_title'] ) ? '' : urlencode( $settings['event_title'] ),
			'body' => empty( $settings['event_description'] ) ? '' : urlencode( $settings['event_description'] ),
			'location' => empty( $settings['event_location'] ) ? '' : urlencode( $settings['event_location'] ),
		];

		if ( ! empty( $settings['event_start_date'] ) ) {
			$build_parts['startdt'] = urlencode( $this->date_to_ics( $settings['event_start_date'] ) );
		}

		if ( ! empty( $settings['event_end_date'] ) ) {
			$build_parts['enddt'] = urlencode( $this->date_to_ics( $settings['event_end_date'] ) );
		}

		return add_query_arg( $build_parts, $link );
	}

	private function build_messenger_link( $settings ) {
		if ( empty( $settings['username'] ) ) {
			return '';
		}
		return 'https://m.me/' . $settings['username'];
	}

	private function build_yahoo_calendar_link( $settings ) {
		$link = 'https://calendar.yahoo.com/?v=60&view=d&type=20';
		$build_parts = [
			'title' => empty( $settings['event_title'] ) ? '' : urlencode( $settings['event_title'] ),
			'desc' => empty( $settings['event_description'] ) ? '' : urlencode( $settings['event_description'] ),
			'in_loc' => empty( $settings['event_location'] ) ? '' : urlencode( $settings['event_location'] ),
		];

		if ( ! empty( $settings['event_start_date'] ) ) {
			$build_parts['st'] = urlencode( gmdate( 'Ymd\This', strtotime( $settings['event_start_date'] ) ) );
		}

		if ( ! empty( $settings['event_end_date'] ) ) {
			$build_parts['et'] = urlencode( gmdate( 'Ymd\This', strtotime( $settings['event_end_date'] ) ) );
		}

		return add_query_arg( $build_parts, $link );
	}

	public function build_viber_link( $settings ) {
		if ( empty( $settings['tel_number'] ) ) {
			return '';
		}
		$action = 'contact';
		if ( ! empty( $settings['viber_action'] ) ) {
			$action = $settings['viber_action'];
		}
		return add_query_arg( [
			'number' => urlencode( $settings['tel_number'] ),
		], 'viber://' . $action );
	}

	public function render() {
		$settings = $this->get_settings();

		if ( empty( $settings['link_type'] ) ) {
			return '';
		}

		$value = '';
		switch ( $settings['link_type'] ) {
			case 'email':
				$value = $this->build_mail_to_link( $settings );
				break;
			case 'tel':
				$value = ( empty( $settings['tel_number'] ) ? '' : 'tel:' . $settings['tel_number'] );
				break;
			case 'sms':
				$value = $this->build_sms_link( $settings );
				break;
			case 'messenger':
				$value = $this->build_messenger_link( $settings );
				break;
			case 'whatsapp':
				$value = $this->build_whatsapp_link( $settings );
				break;
			case 'skype':
				$value = $this->build_skype_link( $settings );
				break;
			case 'waze':
				$value = $this->build_waze_link( $settings );
				break;
			case 'google_calendar':
				$value = $this->build_google_calendar_link( $settings );
				break;
			case 'outlook_calendar':
				$value = $this->build_outlook_calendar_link( $settings );
				break;
			case 'yahoo_calendar':
				$value = $this->build_yahoo_calendar_link( $settings );
				break;
			case 'viber':
				$value = $this->build_viber_link( $settings );
				break;
		}
		echo esc_html( $value );
	}
}

PK!kOTYY(modules/dynamic-tags/tags/author-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_URL extends Data_Tag {

	public function get_name() {
		return 'author-url';
	}

	public function get_group() {
		return Module::AUTHOR_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_title() {
		return esc_html__( 'Author URL', 'elementor-pro' );
	}

	public function get_panel_template_setting_key() {
		return 'url';
	}

	public function get_value( array $options = [] ) {
		$value = '';

		if ( 'archive' === $this->get_settings( 'url' ) ) {
			global $authordata;

			if ( $authordata ) {
				$value = get_author_posts_url( $authordata->ID, $authordata->user_nicename );
			}
		} else {
			$value = get_the_author_meta( 'url' );
		}

		return $value;
	}

	protected function register_controls() {
		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'archive',
				'options' => [
					'archive' => esc_html__( 'Author Archive', 'elementor-pro' ),
					'website' => esc_html__( 'Author Website', 'elementor-pro' ),
				],
			]
		);
	}
}
PK!����>>1modules/dynamic-tags/tags/featured-image-data.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Featured_Image_Data extends Tag {

	public function get_name() {
		return 'featured-image-data';
	}

	public function get_group() {
		return Module::MEDIA_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::URL_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	public function get_title() {
		return esc_html__( 'Featured Image Data', 'elementor-pro' );
	}

	private function get_attacment() {
		$id = get_post_thumbnail_id();

		if ( ! $id ) {
			return false;
		}

		return get_post( $id );
	}

	public function render() {
		$settings = $this->get_settings();
		$attachment = $this->get_attacment();

		if ( ! $attachment ) {
			return;
		}

		$value = '';

		switch ( $settings['attachment_data'] ) {
			case 'alt':
				$value = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true );
				break;
			case 'caption':
				$value = $attachment->post_excerpt;
				break;
			case 'description':
				$value = $attachment->post_content;
				break;
			case 'href':
				$value = get_permalink( $attachment->ID );
				break;
			case 'src':
				$value = $attachment->guid;
				break;
			case 'title':
				$value = $attachment->post_title;
				break;
		}

		echo wp_kses_post( $value );
	}

	protected function register_controls() {

		$this->add_control(
			'attachment_data',
			[
				'label' => esc_html__( 'Data', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'title',
				'options' => [
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'alt' => esc_html__( 'Alt', 'elementor-pro' ),
					'caption' => esc_html__( 'Caption', 'elementor-pro' ),
					'description' => esc_html__( 'Description', 'elementor-pro' ),
					'src' => esc_html__( 'File URL', 'elementor-pro' ),
					'href' => esc_html__( 'Attachment URL', 'elementor-pro' ),
				],
			]
		);
	}
}
PK!��l��(modules/dynamic-tags/tags/page-title.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\DynamicTags\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Page_Title extends Tag {
	public function get_name() {
		return 'page-title';
	}

	public function get_title() {
		return esc_html__( 'Page Title', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		if ( is_home() && 'yes' !== $this->get_settings( 'show_home_title' ) ) {
			return;
		}

		if ( Plugin::elementor()->common ) {
			$current_action_data = Plugin::elementor()->common->get_component( 'ajax' )->get_current_action_data();

			if ( $current_action_data && 'render_tags' === $current_action_data['action'] ) {
				// Override the global $post for the render.
				query_posts(
					[
						'p' => get_the_ID(),
						'post_type' => 'any',
					]
				);
			}
		}

		$include_context = 'yes' === $this->get_settings( 'include_context' );

		$title = Utils::get_page_title( $include_context );

		echo wp_kses_post( $title );
	}

	protected function register_controls() {
		$this->add_control(
			'include_context',
			[
				'label' => esc_html__( 'Include Context', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
			]
		);

		$this->add_control(
			'show_home_title',
			[
				'label' => esc_html__( 'Show Home Title', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
			]
		);
	}
}
PK!��?66*modules/dynamic-tags/tags/post-excerpt.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Excerpt extends Tag {
	public function get_name() {
		return 'post-excerpt';
	}

	public function get_title() {
		return esc_html__( 'Post Excerpt', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		// Allow only a real `post_excerpt` and not the trimmed `post_content` from the `get_the_excerpt` filter
		$post = get_post();

		if ( ! $post || empty( $post->post_excerpt ) ) {
			return;
		}

		echo wp_kses_post( $post->post_excerpt );
	}
}
PK!���S
S
'modules/dynamic-tags/tags/post-date.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Date extends Tag {
	public function get_name() {
		return 'post-date';
	}

	public function get_title() {
		return esc_html__( 'Post Date', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	protected function register_controls() {
		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'post_date_gmt' => esc_html__( 'Post Published', 'elementor-pro' ),
					'post_modified_gmt' => esc_html__( 'Post Modified', 'elementor-pro' ),
				],
				'default' => 'post_date_gmt',
			]
		);

		$this->add_control(
			'format',
			[
				'label' => esc_html__( 'Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'F j, Y' => gmdate( 'F j, Y' ),
					'Y-m-d' => gmdate( 'Y-m-d' ),
					'm/d/Y' => gmdate( 'm/d/Y' ),
					'd/m/Y' => gmdate( 'd/m/Y' ),
					'human' => esc_html__( 'Human Readable', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
			]
		);

		$this->add_control(
			'custom_format',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'default' => '',
				'description' => sprintf( '<a href="https://go.elementor.com/wordpress-date-time/" target="_blank">%s</a>', esc_html__( 'Documentation on date and time formatting', 'elementor-pro' ) ),
				'condition' => [
					'format' => 'custom',
				],
			]
		);
	}

	public function render() {
		$date_type = $this->get_settings( 'type' );
		$format = $this->get_settings( 'format' );

		if ( 'human' === $format ) {
			/* translators: %s: Human readable date/time. */
			$value = sprintf( esc_html__( '%s ago', 'elementor-pro' ), human_time_diff( strtotime( get_post()->{$date_type} ) ) );
		} else {
			switch ( $format ) {
				case 'default':
					$date_format = '';
					break;
				case 'custom':
					$date_format = $this->get_settings( 'custom_format' );
					break;
				default:
					$date_format = $format;
					break;
			}

			if ( 'post_date_gmt' === $date_type ) {
				$value = get_the_date( $date_format );
			} else {
				$value = get_the_modified_date( $date_format );
			}
		}
		echo wp_kses_post( $value );
	}
}
PK!���uu1modules/dynamic-tags/tags/post-featured-image.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Featured_Image extends Data_Tag {

	public function get_name() {
		return 'post-featured-image';
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_title() {
		return esc_html__( 'Featured Image', 'elementor-pro' );
	}

	public function get_value( array $options = [] ) {
		$thumbnail_id = get_post_thumbnail_id();

		if ( $thumbnail_id ) {
			$image_data = [
				'id' => $thumbnail_id,
				'url' => wp_get_attachment_image_src( $thumbnail_id, 'full' )[0],
			];
		} else {
			$image_data = $this->get_settings( 'fallback' );
		}

		return $image_data;
	}

	protected function register_controls() {
		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
			]
		);
	}
}
PK!�\�yy&modules/dynamic-tags/tags/lightbox.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;
use Elementor\Controls_Manager;
use Elementor\Embed;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}


class Lightbox extends Tag {

	public function get_name() {
		return 'lightbox';
	}

	public function get_title() {
		return esc_html__( 'Lightbox', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ACTION_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	// Keep Empty to avoid default advanced section
	protected function register_advanced_section() {}

	public function register_controls() {
		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'video' => [
						'title' => esc_html__( 'Video', 'elementor-pro' ),
						'icon' => 'eicon-video-camera',
					],
					'image' => [
						'title' => esc_html__( 'Image', 'elementor-pro' ),
						'icon' => 'eicon-image-bold',
					],
				],
			]
		);

		$this->add_control(
			'image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'condition' => [
					'type' => 'image',
				],
			]
		);

		$this->add_control(
			'video_url',
			[
				'label' => esc_html__( 'Video URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => true,
				'condition' => [
					'type' => 'video',
				],
			]
		);
	}

	private function get_image_settings( $settings ) {
		$image_settings = [
			'url' => $settings['image']['url'],
			'type' => 'image',
		];

		$image_id = $settings['image']['id'];

		if ( $image_id ) {
			$lightbox_image_attributes = Plugin::elementor()->images_manager->get_lightbox_image_attributes( $image_id );
			$image_settings = array_merge( $image_settings, $lightbox_image_attributes );
		}

		return $image_settings;
	}

	private function get_video_settings( $settings ) {
		$video_properties = Embed::get_video_properties( $settings['video_url'] );
		$video_url = null;
		if ( ! $video_properties ) {
			$video_type = 'hosted';
			$video_url = $settings['video_url'];
		} else {
			$video_type = $video_properties['provider'];
			$video_url = Embed::get_embed_url( $settings['video_url'] );
		}

		if ( null === $video_url ) {
			return '';
		}

		return [
			'type' => 'video',
			'videoType' => $video_type,
			'url' => $video_url,
		];
	}

	public function render() {
		$settings = $this->get_settings();

		$value = [];

		if ( ! $settings['type'] ) {
			return;
		}

		if ( 'image' === $settings['type'] && $settings['image'] ) {
			$value = $this->get_image_settings( $settings );
		} elseif ( 'video' === $settings['type'] && $settings['video_url'] ) {
			$value = $this->get_video_settings( $settings );
		}

		if ( ! $value ) {
			return;
		}

		// PHPCS - the method Plugin::elementor()->frontend->create_action_hash is safe.
		echo Plugin::elementor()->frontend->create_action_hash( 'lightbox', $value ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK!o��nn)modules/dynamic-tags/tags/author-name.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_Name extends Tag {

	public function get_name() {
		return 'author-name';
	}

	public function get_title() {
		return esc_html__( 'Author Name', 'elementor-pro' );
	}

	public function get_group() {
		return Module::AUTHOR_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		echo wp_kses_post( get_the_author() );
	}
}
PK!��+modules/dynamic-tags/tags/archive-title.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Title extends Tag {
	public function get_name() {
		return 'archive-title';
	}

	public function get_title() {
		return esc_html__( 'Archive Title', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ARCHIVE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		$include_context = 'yes' === $this->get_settings( 'include_context' );

		$title = Utils::get_page_title( $include_context );

		echo wp_kses_post( $title );
	}

	protected function register_controls() {
		$this->add_control(
			'include_context',
			[
				'label' => esc_html__( 'Include Context', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);
	}
}
PK!��P��'modules/dynamic-tags/tags/post-time.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Time extends Tag {
	public function get_name() {
		return 'post-time';
	}

	public function get_title() {
		return esc_html__( 'Post Time', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	protected function register_controls() {
		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'post_date_gmt' => esc_html__( 'Post Published', 'elementor-pro' ),
					'post_modified_gmt' => esc_html__( 'Post Modified', 'elementor-pro' ),
				],
				'default' => 'post_date_gmt',
			]
		);

		$this->add_control(
			'format',
			[
				'label' => esc_html__( 'Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'g:i a' => gmdate( 'g:i a' ),
					'g:i A' => gmdate( 'g:i A' ),
					'H:i' => gmdate( 'H:i' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
			]
		);

		$this->add_control(
			'custom_format',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'default' => '',
				'description' => sprintf( '<a href="https://go.elementor.com/wordpress-date-time/" target="_blank">%s</a>', esc_html__( 'Documentation on date and time formatting', 'elementor-pro' ) ),
				'condition' => [
					'format' => 'custom',
				],
			]
		);
	}

	public function render() {
		$time_type = $this->get_settings( 'type' );
		$format = $this->get_settings( 'format' );

		switch ( $format ) {
			case 'default':
				$date_format = '';
				break;
			case 'custom':
				$date_format = $this->get_settings( 'custom_format' );
				break;
			default:
				$date_format = $format;
				break;
		}

		if ( 'post_date_gmt' === $time_type ) {
			$value = get_the_time( $date_format );
		} else {
			$value = get_the_modified_time( $date_format );
		}

		echo wp_kses_post( $value );
	}
}
PK!)n�,mm%modules/dynamic-tags/tags/post-id.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_ID extends Tag {
	public function get_name() {
		return 'post-id';
	}

	public function get_title() {
		return esc_html__( 'Post ID', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::NUMBER_CATEGORY,
		];
	}

	public function render() {
		echo get_the_ID();
	}
}
PK!j�"F
F
(modules/dynamic-tags/tags/post-terms.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;
use ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Terms extends Tag {
	public function get_name() {
		return 'post-terms';
	}

	public function get_title() {
		return esc_html__( 'Post Terms', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	protected function register_controls() {
		$taxonomy_filter_args = [
			'show_in_nav_menus' => true,
			'object_type' => [ get_post_type() ],
		];

		/**
		 * Dynamic tags taxonomy args.
		 *
		 * Filters the taxonomy arguments used to retrieve the registered taxonomies
		 * displayed in the taxonomy dynamic tag.
		 *
		 * @since 2.0.0
		 *
		 * @param array $taxonomy_filter_args An array of `key => value` arguments to
		 *                                    match against the taxonomy objects inside
		 *                                    the `get_taxonomies()` function.
		 */
		$taxonomy_filter_args = apply_filters( 'elementor_pro/dynamic_tags/post_terms/taxonomy_args', $taxonomy_filter_args );

		$taxonomies = Utils::get_taxonomies( $taxonomy_filter_args, 'objects' );

		$options = [];

		foreach ( $taxonomies as $taxonomy => $object ) {
			$options[ $taxonomy ] = $object->label;
		}

		$this->add_control(
			'taxonomy',
			[
				'label' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $options,
				'default' => 'post_tag',
			]
		);

		$this->add_control(
			'separator',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => ', ',
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);
	}

	public function render() {
		$settings = $this->get_settings();

		if ( 'yes' === $settings['link'] ) {
			$value = get_the_term_list( get_the_ID(), $settings['taxonomy'], '', $settings['separator'] );
		} else {
			$terms = get_the_terms( get_the_ID(), $settings['taxonomy'] );

			if ( is_wp_error( $terms ) || empty( $terms ) ) {
				return '';
			}

			$term_names = [];

			foreach ( $terms as $term ) {
				$term_names[] = '<span>' . $term->name . '</span>';
			}

			$value = implode( $settings['separator'], $term_names );
		}

		echo wp_kses_post( $value );
	}
}
PK!�# ��2modules/dynamic-tags/tags/user-profile-picture.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class User_Profile_Picture extends Author_Profile_Picture {
	public function get_name() {
		return 'user-profile-picture';
	}
	public function get_title() {
		return esc_html__( 'User Profile Picture', 'elementor-pro' );
	}
	public function get_value( array $options = [] ) {
		return [
			'id' => '',
			'url' => get_avatar_url( get_current_user_id() ),
		];
	}
}
PK!i�iR��'modules/dynamic-tags/tags/site-logo.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use Elementor\Utils;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_Logo extends Data_Tag {
	public function get_name() {
		return 'site-logo';
	}

	public function get_title() {
		return esc_html__( 'Site Logo', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		$custom_logo_id = get_theme_mod( 'custom_logo' );

		if ( $custom_logo_id ) {
			$url = wp_get_attachment_image_src( $custom_logo_id, 'full' )[0];
		} else {
			$url = Utils::get_placeholder_image_src();
		}

		return [
			'id' => $custom_logo_id,
			'url' => $url,
		];
	}
}
PK!L�1{{*modules/dynamic-tags/tags/site-tagline.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_Tagline extends Tag {
	public function get_name() {
		return 'site-tagline';
	}

	public function get_title() {
		return esc_html__( 'Site Tagline', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		echo wp_kses_post( get_bloginfo( 'description' ) );
	}
}
PK!�y}}-modules/dynamic-tags/tags/comments-number.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Comments_Number extends Tag {

	public function get_name() {
		return 'comments-number';
	}

	public function get_title() {
		return esc_html__( 'Comments Number', 'elementor-pro' );
	}

	public function get_group() {
		return Module::COMMENTS_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::NUMBER_CATEGORY,
		];
	}

	protected function register_controls() {
		$this->add_control(
			'format_no_comments',
			[
				'label' => esc_html__( 'No Comments Format', 'elementor-pro' ),
				'default' => esc_html__( 'No Responses', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'format_one_comments',
			[
				'label' => esc_html__( 'One Comment Format', 'elementor-pro' ),
				'default' => esc_html__( 'One Response', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'format_many_comments',
			[
				'label' => esc_html__( 'Many Comment Format', 'elementor-pro' ),
				'default' => esc_html__( '{number} Responses', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'link_to',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'comments_link' => esc_html__( 'Comments Link', 'elementor-pro' ),
				],
			]
		);
	}

	public function render() {
		$settings = $this->get_settings();

		$comments_number = get_comments_number();

		if ( ! $comments_number ) {
			$count = $settings['format_no_comments'];
		} elseif ( 1 === $comments_number ) {
			$count = $settings['format_one_comments'];
		} else {
			$count = strtr( $settings['format_many_comments'], [
				'{number}' => number_format_i18n( $comments_number ),
			] );
		}

		if ( 'comments_link' === $this->get_settings( 'link_to' ) ) {
			$count = sprintf( '<a href="%s">%s</a>', get_comments_link(), $count );
		}

		echo wp_kses_post( $count );
	}
}
PK!:$n��1modules/dynamic-tags/tags/archive-description.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Description extends Tag {

	public function get_name() {
		return 'archive-description';
	}

	public function get_title() {
		return esc_html__( 'Archive Description', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ARCHIVE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		echo wp_kses_post( get_the_archive_description() );
	}
}
PK!))4modules/dynamic-tags/tags/author-profile-picture.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_Profile_Picture extends Data_Tag {

	public function get_name() {
		return 'author-profile-picture';
	}

	public function get_title() {
		return esc_html__( 'Author Profile Picture', 'elementor-pro' );
	}

	public function get_group() {
		return Module::AUTHOR_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		Utils::set_global_authordata();

		return [
			'id' => '',
			'url' => get_avatar_url( (int) get_the_author_meta( 'ID' ) ),
		];
	}
}
PK!�F�,modules/dynamic-tags/tags/base/tag-trait.phpnu�[���<?php

namespace ElementorPro\Modules\DynamicTags\Tags\Base;

use ElementorPro\License\API as License_API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

trait Tag_Trait {

	public function is_editable() {
		return License_API::is_license_active();
	}
}
PK!����&modules/dynamic-tags/tags/base/tag.phpnu�[���<?php

namespace ElementorPro\Modules\DynamicTags\Tags\Base;

use Elementor\Core\DynamicTags\Tag as Base_Tag;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Tag extends Base_Tag {

	use Tag_Trait;
}
PK!yA�u+modules/dynamic-tags/tags/base/data-tag.phpnu�[���<?php

namespace ElementorPro\Modules\DynamicTags\Tags\Base;

use Elementor\Core\DynamicTags\Data_Tag as Base_Data_Tag;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Data_Tag extends Base_Data_Tag {

	use Tag_Trait;
}
PK!3#K�ff(modules/dynamic-tags/tags/site-title.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_Title extends Tag {
	public function get_name() {
		return 'site-title';
	}

	public function get_title() {
		return esc_html__( 'Site Title', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		echo wp_kses_post( get_bloginfo() );
	}
}
PK!<D.�V	V	'modules/dynamic-tags/tags/user-info.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class User_Info extends Tag {

	public function get_name() {
		return 'user-info';
	}

	public function get_title() {
		return esc_html__( 'User Info', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		$type = $this->get_settings( 'type' );
		$user = wp_get_current_user();
		if ( empty( $type ) || 0 === $user->ID ) {
			return;
		}

		$value = '';
		switch ( $type ) {
			case 'login':
			case 'email':
			case 'url':
			case 'nicename':
				$field = 'user_' . $type;
				$value = isset( $user->$field ) ? $user->$field : '';
				break;
			case 'id':
				$value = $user->ID;
				break;
			case 'description':
			case 'first_name':
			case 'last_name':
			case 'display_name':
				$value = isset( $user->$type ) ? $user->$type : '';
				break;
			case 'meta':
				$key = $this->get_settings( 'meta_key' );
				if ( ! empty( $key ) ) {
					$value = get_user_meta( $user->ID, $key, true );
				}
				break;
		}

		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'type';
	}

	protected function register_controls() {
		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Field', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Choose', 'elementor-pro' ),
					'id' => esc_html__( 'ID', 'elementor-pro' ),
					'display_name' => esc_html__( 'Display Name', 'elementor-pro' ),
					'login' => esc_html__( 'Username', 'elementor-pro' ),
					'first_name' => esc_html__( 'First Name', 'elementor-pro' ),
					'last_name' => esc_html__( 'Last Name', 'elementor-pro' ),
					'description' => esc_html__( 'Bio', 'elementor-pro' ),
					'email' => esc_html__( 'Email', 'elementor-pro' ),
					'url' => esc_html__( 'Website', 'elementor-pro' ),
					'meta' => esc_html__( 'User Meta', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'meta_key',
			[
				'label' => esc_html__( 'Meta Key', 'elementor-pro' ),
				'condition' => [
					'type' => 'meta',
				],
			]
		);
	}
}
PK!��C�*modules/dynamic-tags/tags/post-gallery.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Gallery extends Data_Tag {

	public function get_name() {
		return 'post-gallery';
	}

	public function get_title() {
		return esc_html__( 'Post Image Attachments', 'elementor-pro' );
	}

	public function get_categories() {
		return [ Module::GALLERY_CATEGORY ];
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_value( array $options = [] ) {
		$images = get_attached_media( 'image' );

		$value = [];

		foreach ( $images as $image ) {
			$value[] = [
				'id' => $image->ID,
			];
		}

		return $value;
	}
}
PK!��{I��)modules/dynamic-tags/tags/archive-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_URL extends Data_Tag {

	public function get_name() {
		return 'archive-url';
	}

	public function get_group() {
		return Module::ARCHIVE_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_title() {
		return esc_html__( 'Archive URL', 'elementor-pro' );
	}

	public function get_panel_template() {
		return ' ({{ url }})';
	}

	public function get_value( array $options = [] ) {
		return Utils::get_the_archive_url();
	}
}

PK!��~$vv&modules/dynamic-tags/tags/post-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}


class Post_URL extends Data_Tag {

	public function get_name() {
		return 'post-url';
	}

	public function get_title() {
		return esc_html__( 'Post URL', 'elementor-pro' );
	}

	public function get_group() {
		return Module::POST_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		return get_permalink();
	}
}
PK!#�G�>
>
*modules/dynamic-tags/tags/internal-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Module;
use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Internal_URL extends Data_Tag {

	public function get_name() {
		return 'internal-url';
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_title() {
		return esc_html__( 'Internal URL', 'elementor-pro' );
	}

	public function get_panel_template() {
		return ' ({{ url }})';
	}

	public function get_value( array $options = [] ) {
		$settings = $this->get_settings();

		$type = $settings['type'];
		$url = '';

		if ( 'post' === $type && ! empty( $settings['post_id'] ) ) {
			$url = get_permalink( (int) $settings['post_id'] );
		} elseif ( 'taxonomy' === $type && ! empty( $settings['taxonomy_id'] ) ) {
			$url = get_term_link( (int) $settings['taxonomy_id'] );
		} elseif ( 'attachment' === $type && ! empty( $settings['attachment_id'] ) ) {
			$url = get_attachment_link( (int) $settings['attachment_id'] );
		} elseif ( 'author' === $type && ! empty( $settings['author_id'] ) ) {
			$url = get_author_posts_url( (int) $settings['author_id'] );
		}

		if ( ! is_wp_error( $url ) ) {
			return $url;
		}

		return '';
	}

	protected function register_controls() {
		$this->add_control( 'type', [
			'label' => esc_html__( 'Type', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'post' => esc_html__( 'Content', 'elementor-pro' ),
				'taxonomy' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				'attachment' => esc_html__( 'Media', 'elementor-pro' ),
				'author' => esc_html__( 'Author', 'elementor-pro' ),
			],
		] );

		$this->add_control( 'post_id', [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => QueryModule::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'autocomplete' => [
				'object' => QueryModule::QUERY_OBJECT_POST,
				'display' => 'detailed',
				'query' => [
					'post_type' => 'any',
				],
			],
			'condition' => [
				'type' => 'post',
			],
		] );

		$this->add_control( 'taxonomy_id', [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => QueryModule::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'autocomplete' => [
				'object' => QueryModule::QUERY_OBJECT_TAX,
				'display' => 'detailed',
			],
			'condition' => [
				'type' => 'taxonomy',
			],
		] );

		$this->add_control( 'attachment_id', [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => QueryModule::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'autocomplete' => [
				'object' => QueryModule::QUERY_OBJECT_ATTACHMENT,
				'display' => 'detailed',
			],
			'condition' => [
				'type' => 'attachment',
			],
		] );

		$this->add_control( 'author_id', [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => QueryModule::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'autocomplete' => [
				'object' => QueryModule::QUERY_OBJECT_AUTHOR,
				'display' => 'detailed',
			],
			'condition' => [
				'type' => 'author',
			],
		] );
	}
}
PK!5����)modules/dynamic-tags/tags/author-info.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_Info extends Tag {

	public function get_name() {
		return 'author-info';
	}

	public function get_title() {
		return esc_html__( 'Author Info', 'elementor-pro' );
	}

	public function get_group() {
		return Module::AUTHOR_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function render() {
		$key = $this->get_settings( 'key' );

		if ( empty( $key ) ) {
			return;
		}

		$value = get_the_author_meta( $key );

		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Field', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'description',
				'options' => [
					'description' => esc_html__( 'Bio', 'elementor-pro' ),
					'email' => esc_html__( 'Email', 'elementor-pro' ),
					'url' => esc_html__( 'Website', 'elementor-pro' ),
				],
			]
		);
	}
}
PK!⭖���*modules/dynamic-tags/tags/archive-meta.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Meta extends Tag {

	public function get_name() {
		return 'archive-meta';
	}

	public function get_title() {
		return esc_html__( 'Archive Meta', 'elementor-pro' );
	}

	public function get_group() {
		return Module::ARCHIVE_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function get_panel_template() {
		return ' ({{{ key }}})';
	}

	public function render() {
		$key = $this->get_settings( 'key' );

		if ( empty( $key ) ) {
			return;
		}

		$value = '';

		if ( is_category() || is_tax() ) {
			$value = get_term_meta( get_queried_object_id(), $key, true );
		} elseif ( is_author() ) {
			$value = get_user_meta( get_queried_object_id(), $key, true );
		}

		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Meta Key', 'elementor-pro' ),
			]
		);
	}
}
PK!$tl��)modules/dynamic-tags/tags/author-meta.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_Meta extends Tag {

	public function get_name() {
		return 'author-meta';
	}

	public function get_title() {
		return esc_html__( 'Author Meta', 'elementor-pro' );
	}

	public function get_group() {
		return Module::AUTHOR_GROUP;
	}

	public function get_categories() {
		return [ Module::TEXT_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function render() {
		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return;
		}

		$value = get_the_author_meta( $key );

		echo wp_kses_post( $value );
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Meta Key', 'elementor-pro' ),
			]
		);
	}
}
PK!!�'modules/dynamic-tags/tags/shortcode.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Shortcode extends Tag {
	public function get_name() {
		return 'shortcode';
	}

	public function get_title() {
		return esc_html__( 'Shortcode', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::NUMBER_CATEGORY,
			Module::URL_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	protected function register_controls() {
		$this->add_control(
			'shortcode',
			[
				'label' => esc_html__( 'Shortcode', 'elementor-pro' ),
				'type'  => Controls_Manager::TEXTAREA,
			]
		);
	}

	public function render() {
		$settings = $this->get_settings();

		if ( empty( $settings['shortcode'] ) ) {
			return;
		}

		$shortcode_string = $settings['shortcode'];

		$value = do_shortcode( $shortcode_string );

		/**
		 * Should Escape.
		 *
		 * Used to allow 3rd party to avoid shortcode dynamic from escaping
		 *
		 * @since 2.2.1
		 *
		 * @param bool defaults to true
		 */
		$should_escape = apply_filters( 'elementor_pro/dynamic_tags/shortcode/should_escape', true );

		if ( $should_escape ) {
			$value = wp_kses_post( $value );
		}
		// PHPCS - the variable $value is safe.
		echo $value; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK! J��  /modules/dynamic-tags/tags/request-parameter.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Request_Parameter extends Tag {
	public function get_name() {
		return 'request-arg';
	}

	public function get_title() {
		return esc_html__( 'Request Parameter', 'elementor-pro' );
	}

	public function get_group() {
		return Module::SITE_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	public function render() {
		$settings = $this->get_settings();
		$request_type = isset( $settings['request_type'] ) ? strtoupper( $settings['request_type'] ) : false;
		$param_name = isset( $settings['param_name'] ) ? $settings['param_name'] : false;
		$value = '';

		if ( ! $param_name || ! $request_type ) {
			return '';
		}

		switch ( $request_type ) {
			case 'POST':
				if ( ! isset( $_POST[ $param_name ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
					return '';
				}
				$value = $_POST[ $param_name ]; // phpcs:ignore WordPress.Security.NonceVerification.Missing
				break;
			case 'GET':
				if ( ! isset( $_GET[ $param_name ] ) ) { // phpcs:ignore
					return '';
				}
				$value = $_GET[ $param_name ]; // phpcs:ignore
				break;
			case 'QUERY_VAR':
				$value = get_query_var( $param_name );
				break;
		}
		echo htmlentities( wp_kses_post( $value ) );  // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	protected function register_controls() {
		$this->add_control(
			'request_type',
			[
				'label'   => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'get',
				'options' => [
					'get' => 'Get',
					'post' => 'Post',
					'query_var' => 'Query Var',
				],
			]
		);
		$this->add_control(
			'param_name',
			[
				'label'   => esc_html__( 'Parameter Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);
	}
}
PK!�։�33,modules/dynamic-tags/pods/tags/pods-text.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_Text extends Pods_Base {

	public function get_name() {
		return 'pods-text';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
	}

	public function render() {
		$field_data = $this->get_field();
		$field = $field_data['field'];
		$value = empty( $field_data['value'] ) ? '' : $field_data['value'];

		if ( ! empty( $field['type'] ) ) {
			switch ( $field['type'] ) {
				case 'paragraph':
					$value = $field_data['display'];
					break;
				case 'pick':
					$value = $field_data['display'];
					if ( is_array( $value ) ) {
						$value = implode( ', ', $value );
					}
					break;
			}
		}

		echo wp_kses_post( $value );
	}

	protected function get_supported_fields() {
		return [
			'text',
			'phone',
			'paragraph',
			'relationship',
			'pick',
			'numeric',
			'email',
			'oembed',
			'google_address',
			'wysiwyg',
			'time',
		];
	}
}
PK!ܓ��,modules/dynamic-tags/pods/tags/pods-base.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Pods\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Pods_Base extends Tag {

	public function get_group() {
		return Module::PODS_GROUP;
	}

	public function get_field() {
		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return false;
		}

		list( $pod_name, $pod_id, $meta_key ) = explode( ':', $key );
		/**
		 * @var \Pods
		 */
		$pod = pods( $pod_name, get_the_ID() );

		if ( false === $pod ) {
			return [];
		}

		return [
			'field' => $pod->fields[ $meta_key ],
			'value' => $pod->field( $meta_key ),
			'display' => $pod->display( $meta_key ),
			'pod' => $pod,
			'key' => $meta_key,
		];
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);
	}

	protected function get_supported_fields() {
		return [];
	}
}
PK!�~%1-modules/dynamic-tags/pods/tags/pods-image.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Pods\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_Image extends Data_Tag {

	public function get_name() {
		return 'pods-image';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'Image Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::PODS_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		$key = $this->get_settings( 'key' );

		$image_data = $this->get_settings( 'fallback' );

		if ( empty( $key ) ) {
			return $image_data;
		}

		list( $pod_name, $pod_id, $meta_key ) = explode( ':', $key );
		/**
		 * @var \Pods
		 */
		$pod = pods( $pod_name, get_the_ID() );

		if ( false === $pod ) {
			return [];
		}

		$image = $pod->field( $meta_key );

		$image_data = [
			'id' => empty( $image['ID'] ) ? $image_data['id'] : $image['ID'],
			'url' => empty( $image['guid'] ) ? $image_data['url'] : $image['guid'],
		];

		return $image_data;
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'pods_image',
		];
	}
}
PK!�+m���+modules/dynamic-tags/pods/tags/pods-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Pods\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_URL extends Data_Tag {

	public function get_name() {
		return 'Pods-url';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'URL Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::PODS_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return false;
		}

		list( $pod_name, $pod_id, $meta_key ) = explode( ':', $key );
		/**
		 * @var \Pods
		 */
		$pod = pods( $pod_name, get_the_ID() );

		if ( false === $pod ) {
			return [];
		}

		$field = $pod->fields[ $meta_key ];
		$value = $pod->field( $meta_key );
		if ( $field && ! empty( $field['type'] ) ) {

			switch ( $field['type'] ) {
				case 'phone':
					$value = 'tel:' . $value;
					break;
				case 'file':
					$value = empty( $value['guid'] ) ? '' : $value['guid'];
					break;
				case 'email':
					$value = 'mailto:' . $value;
					break;
			} // End switch().
		}

		if ( empty( $value ) && $this->get_settings( 'fallback' ) ) {
			$value = $this->get_settings( 'fallback' );
		}

		return wp_kses_post( $value );
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
			]
		);
	}

	protected function get_supported_fields() {
		return [ 'pods_url' ];
	}
}
PK!no�}}/modules/dynamic-tags/pods/tags/pods-gallery.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Pods\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_Gallery extends Data_Tag {

	public function get_name() {
		return 'pods-gallery';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'Gallery Field', 'elementor-pro' );
	}

	public function get_categories() {
		return [ Module::GALLERY_CATEGORY ];
	}

	public function get_group() {
		return Module::PODS_GROUP;
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return false;
		}

		$images = [];

		list( $pod_name, $pod_id, $meta_key ) = explode( ':', $key );
		/**
		 * @var \Pods
		 */
		$pod = pods( $pod_name, get_the_ID() );

		if ( false === $pod ) {
			return [];
		}

		$galley_images = $pod->field( $meta_key );

		if ( empty( $galley_images ) || ! is_array( $galley_images ) ) {
			return $images;
		}

		foreach ( $galley_images as $image ) {
			$images[] = [
				'id' => $image['ID'],
			];
		}

		return $images;
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'pods_gallery',
		];
	}
}
PK!�ɬ�.	.	,modules/dynamic-tags/pods/tags/pods-date.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_Date extends Pods_Base {

	public function get_name() {
		return 'pods-date';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'Date Field', 'elementor-pro' );
	}

	public function render() {
		$field_data = $this->get_field();
		$field = $field_data['field'];
		$value = empty( $field_data['value'] ) ? '' : $field_data['value'];

		if ( $field && ! empty( $field['type'] ) && in_array( $field['type'], [ 'date', 'datetime' ] ) ) {

			$format = $this->get_settings( 'format' );

			$timestamp = strtotime( $value );

			if ( 'human' === $format ) {
				$value = human_time_diff( $timestamp );
			} else {
				switch ( $format ) {
					case 'default':
						$date_format = get_option( 'date_format' );
						break;
					case 'custom':
						$date_format = $this->get_settings( 'custom_format' );
						break;
					default:
						$date_format = $format;
						break;
				}

				$value = gmdate( $date_format, $timestamp );
			}
		}
		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		parent::register_controls();

		$this->add_control(
			'format',
			[
				'label' => esc_html__( 'Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'F j, Y' => gmdate( 'F j, Y' ),
					'Y-m-d' => gmdate( 'Y-m-d' ),
					'm/d/Y' => gmdate( 'm/d/Y' ),
					'd/m/Y' => gmdate( 'd/m/Y' ),
					'human' => esc_html__( 'Human Readable', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
			]
		);

		$this->add_control(
			'custom_format',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'default' => '',
				'description' => sprintf( '<a href="https://go.elementor.com/wordpress-date-time/" target="_blank">%s</a>', esc_html__( 'Documentation on date and time formatting', 'elementor-pro' ) ),
				'condition' => [
					'format' => 'custom',
				],
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'datetime',
			'date',
		];
	}
}
PK!�8h@bb/modules/dynamic-tags/pods/tags/pods-numeric.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods\Tags;

use ElementorPro\Modules\DynamicTags\Pods\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Pods_Numeric extends Pods_Base {

	public function get_name() {
		return 'pods-numeric';
	}

	public function get_title() {
		return esc_html__( 'Pods', 'elementor-pro' ) . ' ' . esc_html__( 'Numeric', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
	}

	public function get_categories() {
		return [
			Module::NUMBER_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	public function render() {
		$field_data = $this->get_field();
		$value = ! empty( $field_data['value'] ) && is_numeric( $field_data['value'] ) ? $field_data['value'] : '';

		echo wp_kses_post( $value );
	}

	protected function get_supported_fields() {
		return [
			'numeric',
		];
	}
}
PK!}��֨
�
$modules/dynamic-tags/pods/module.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Pods;

use Elementor\Modules\DynamicTags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends DynamicTags\Module {

	const PODS_GROUP = 'Pods';

	/**
	 * @param array $types
	 *
	 * @return array
	 */
	public static function get_control_options( $types ) {
		$all_pods = pods_api()->load_pods( [
			'table_info' => true,
			'fields' => true,
		] );

		$groups = [];

		foreach ( $all_pods as $group ) {
			$options = [];

			foreach ( $group['fields'] as $field ) {
				if ( ! self::valid_field_type( $types, $field ) ) {
					continue;
				}

				// Use pods ID for unique keys
				$key = $group['name'] . ':' . $field['pod_id'] . ':' . $field['name'];
				$options[ $key ] = $field['label'];
			}

			if ( empty( $options ) ) {
				continue;
			}

			if ( 1 === count( $options ) ) {
				$options = [ -1 => ' -- ' ] + $options;
			}

			$groups[] = [
				'label' => $group['name'],
				'options' => $options,
			];
		}

		return $groups;
	}

	public static function valid_field_type( $types, $field ) {
		// Only file field with single image value
		if ( in_array( 'pods_image', $types, true ) && self::pods_image_mapping( $field ) ) {
			return true;
		}
		if ( in_array( 'pods_url', $types, true ) && in_array( $field['type'], [ 'email', 'file', 'website', 'phone' ] ) ) {
			// Only file with single value allowed
			if ( 'file' === $field['type'] && ! self::pods_file_mapping( $field ) ) {
				return false;
			}

			return true;
		}
		// Only file with multiple images allowed
		if ( in_array( 'pods_gallery', $types, true ) && self::pods_image_mapping( $field, false ) ) {
			return true;
		}
		// Any other type
		if ( in_array( $field['type'], $types, true ) ) {
			return true;
		}

		return false;
	}

	public static function pods_file_mapping( $field, $single = true ) {
		if ( 'file' !== $field['type'] ) {
			return false;
		}

		$limit = $single ? 'single' : 'multi';
		if ( $limit !== $field['options']['file_format_type'] ) {
			return false;
		}

		return true;
	}

	public static function pods_image_mapping( $field, $single = true ) {
		if ( ! isset( $field['options'] ) || ! isset( $field['options']['file_type'] ) ) {
			return false;
		}
		if ( 'images' !== $field['options']['file_type'] ) {
			return false;
		}
		if ( ! self::pods_file_mapping( $field, $single ) ) {
			return false;
		}

		return true;
	}

	public function get_tag_classes_names() {
		return [
			'Pods_Text',
			'Pods_Date',
			'Pods_Image',
			'Pods_Gallery',
			'Pods_URL',
			'Pods_Numeric',
		];
	}

	public function get_groups() {
		return [
			self::PODS_GROUP => [
				'title' => esc_html__( 'Pods', 'elementor-pro' ),
			],
		];
	}
}
PK!@�@ة	�	modules/dynamic-tags/module.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags;

use Elementor\Modules\DynamicTags\Module as TagsModule;
use ElementorPro\Modules\DynamicTags\ACF;
use ElementorPro\Modules\DynamicTags\Toolset;
use ElementorPro\Modules\DynamicTags\Pods;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends TagsModule {

	const AUTHOR_GROUP = 'author';

	const POST_GROUP = 'post';

	const COMMENTS_GROUP = 'comments';

	const SITE_GROUP = 'site';

	const ARCHIVE_GROUP = 'archive';

	const MEDIA_GROUP = 'media';

	const ACTION_GROUP = 'action';

	public function __construct() {
		parent::__construct();

		// ACF 5 and up
		if ( class_exists( '\acf' ) && function_exists( 'acf_get_field_groups' ) ) {
			$this->add_component( 'acf', new ACF\Module() );
		}

		if ( function_exists( 'wpcf_admin_fields_get_groups' ) ) {
			$this->add_component( 'toolset', new Toolset\Module() );
		}

		if ( function_exists( 'pods' ) ) {
			$this->add_component( 'pods', new Pods\Module() );
		}
	}

	public function get_name() {
		return 'tags';
	}

	public function get_tag_classes_names() {
		return [
			'Archive_Description',
			'Archive_Meta',
			'Archive_Title',
			'Archive_URL',
			'Author_Info',
			'Author_Meta',
			'Author_Name',
			'Author_Profile_Picture',
			'Author_URL',
			'Comments_Number',
			'Comments_URL',
			'Page_Title',
			'Post_Custom_Field',
			'Post_Date',
			'Post_Excerpt',
			'Post_Featured_Image',
			'Post_Gallery',
			'Post_ID',
			'Post_Terms',
			'Post_Time',
			'Post_Title',
			'Post_URL',
			'Site_Logo',
			'Site_Tagline',
			'Site_Title',
			'Site_URL',
			'Internal_URL',
			'Current_Date_Time',
			'Request_Parameter',
			'Lightbox',
			'Featured_Image_Data',
			'Shortcode',
			'Contact_URL',
			'User_Info',
			'User_Profile_Picture',
		];
	}

	public function get_groups() {
		return [
			self::POST_GROUP => [
				'title' => esc_html__( 'Post', 'elementor-pro' ),
			],
			self::ARCHIVE_GROUP => [
				'title' => esc_html__( 'Archive', 'elementor-pro' ),
			],
			self::SITE_GROUP => [
				'title' => esc_html__( 'Site', 'elementor-pro' ),
			],
			self::MEDIA_GROUP => [
				'title' => esc_html__( 'Media', 'elementor-pro' ),
			],
			self::ACTION_GROUP => [
				'title' => esc_html__( 'Actions', 'elementor-pro' ),
			],
			self::AUTHOR_GROUP => [
				'title' => esc_html__( 'Author', 'elementor-pro' ),
			],
			self::COMMENTS_GROUP => [
				'title' => esc_html__( 'Comments', 'elementor-pro' ),
			],
		];
	}
}
PK!YC���'modules/dynamic-tags/toolset/module.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset;

use Elementor\Modules\DynamicTags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends DynamicTags\Module {

	const TOOLSET_GROUP = 'Toolset';

	/**
	 * @param array $types
	 *
	 * @return array
	 */
	public static function get_control_options( $types ) {
		$toolset_groups = wpcf_admin_fields_get_groups();

		$groups = [];

		foreach ( $toolset_groups as $group ) {

			$options = [];

			$fields = wpcf_admin_fields_get_fields_by_group( $group['id'] );

			if ( ! is_array( $fields ) ) {
				continue;
			}

			foreach ( $fields as $field_key => $field ) {
				if ( ! is_array( $field ) || empty( $field['type'] ) ) {
					continue;
				}

				if ( ! self::valid_field_type( $types, $field ) ) {
					continue;
				}

				// Use group ID for unique keys
				$key = $group['slug'] . ':' . $field_key;
				$options[ $key ] = $field['name'];
			}

			if ( empty( $options ) ) {
				continue;
			}

			if ( 1 === count( $options ) ) {
				$options = [ -1 => ' -- ' ] + $options;
			}

			$groups[] = [
				'label' => $group['name'],
				'options' => $options,
			];
		}

		return $groups;
	}

	public static function toolset_image_mapping( $field, $single = true ) {
		if ( 'image' !== $field['type'] ) {
			return false;
		}

		$limit = $single ? '0' : '1';
		if ( empty( $field['data'] ) || $limit !== $field['data']['repetitive'] ) {
			return false;
		}

		return true;
	}

	public static function valid_field_type( $types, $field ) {
		// Only file field with single image value
		if ( in_array( 'toolset_image', $types, true ) && self::toolset_image_mapping( $field ) ) {
			return true;
		}

		// Only file with multiple images allowed
		if ( in_array( 'toolset_gallery', $types, true ) && self::toolset_image_mapping( $field, false ) ) {
			return true;
		}

		// Any other type
		if ( in_array( $field['type'], $types, true ) ) {
			return true;
		}

		return false;
	}

	public function get_tag_classes_names() {
		return [
			'Toolset_Text',
			'Toolset_Date',
			'Toolset_Image',
			'Toolset_URL',
			'Toolset_Gallery',
		];
	}

	public function get_groups() {
		return [
			self::TOOLSET_GROUP => [
				'title' => esc_html__( 'Toolset', 'elementor-pro' ),
			],
		];
	}
}
PK!�{J���2modules/dynamic-tags/toolset/tags/toolset-text.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Toolset_Text extends Toolset_Base {

	public function get_name() {
		return 'toolset-text';
	}

	public function get_title() {
		return esc_html__( 'Toolset', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
	}

	public function render() {
		// Toolset Embedded version loads its bootstrap later
		if ( ! function_exists( 'types_render_field' ) ) {
			return;
		}

		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return;
		}

		list( $field_group, $field_key ) = explode( ':', $key );

		$field = wpcf_admin_fields_get_field( $field_key );

		if ( $field && ! empty( $field['type'] ) ) {
			$value = '';
			switch ( $field['type'] ) {
				case 'google_address':
					$value = types_render_field( $field_key, [ 'format' => 'FIELD_ADDRESS' ] );
					break;
				case 'email':
				case 'embed':
					$value = types_render_field( $field_key, [ 'output' => 'raw' ] );
					break;
				default:
					$value = types_render_field( $field_key );
					break;
			} // End switch().
		} else {
			// Field settings has been deleted or not available.
			$value = types_render_field( $field_key );
		} // End if().

		echo wp_kses_post( $value );
	}

	protected function get_supported_fields() {
		return [
			'textfield',
			'phone',
			'textarea',
			'checkbox',
			'select',
			'numeric',
			'email',
			'embed',
			'google_address',
			'wysiwyg',
			'radio',
		];
	}
}
PK!|Xm9772modules/dynamic-tags/toolset/tags/toolset-base.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\Toolset\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Toolset_Base extends Tag {

	public function get_group() {
		return Module::TOOLSET_GROUP;
	}

	public function get_categories() {
		return [
			Module::TEXT_CATEGORY,
			Module::POST_META_CATEGORY,
		];
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);
	}

	protected function get_supported_fields() {
		return [];
	}
}
PK!�]�k��3modules/dynamic-tags/toolset/tags/toolset-image.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Toolset\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Toolset_Image extends Data_Tag {

	public function get_name() {
		return 'toolset-image';
	}

	public function get_title() {
		return esc_html__( 'Toolset', 'elementor-pro' ) . ' ' . esc_html__( 'Image Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::TOOLSET_GROUP;
	}

	public function get_categories() {
		return [ Module::IMAGE_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		// Toolset Embedded version loads its bootstrap later
		if ( ! function_exists( 'types_render_field' ) ) {
			return [];
		}

		$key = $this->get_settings( 'key' );
		$image_data = $this->get_settings( 'fallback' );
		if ( empty( $key ) ) {
			return $image_data;
		}

		list( $field_group, $field_key ) = explode( ':', $key );

		$field = wpcf_admin_fields_get_field( $field_key );

		if ( $field && ! empty( $field['type'] ) ) {

			$url = types_render_field( $field_key, [ 'url' => true ] );

			if ( empty( $url ) ) {
				return $image_data;
			}

			$image_data = [
				'id' => attachment_url_to_postid( $url ),
				'url' => $url,
			];
		}

		return $image_data;
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'toolset_image',
		];
	}
}
PK!OW�ss1modules/dynamic-tags/toolset/tags/toolset-url.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Toolset\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Toolset_URL extends Data_Tag {

	public function get_name() {
		return 'toolset-url';
	}

	public function get_title() {
		return esc_html__( 'Toolset', 'elementor-pro' ) . ' ' . esc_html__( 'URL Field', 'elementor-pro' );
	}

	public function get_group() {
		return Module::TOOLSET_GROUP;
	}

	public function get_categories() {
		return [ Module::URL_CATEGORY ];
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		// Toolset Embedded version loads its bootstrap later
		if ( ! function_exists( 'types_render_field' ) ) {
			return;
		}

		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return;
		}

		list( $field_group, $field_key ) = explode( ':', $key );

		$field = wpcf_admin_fields_get_field( $field_key );

		if ( $field && ! empty( $field['type'] ) ) {
			$value = '';
			switch ( $field['type'] ) {
				case 'email':
					$value = 'mailto:' . types_render_field( $field_key, [ 'output' => 'raw' ] );
					break;
				case 'image':
					$value = types_render_field( $field_key, [ 'url' => true ] );
					break;
				default:
					$value = types_render_field( $field_key, [ 'output' => 'raw' ] );
			} // End switch().
		}

		if ( empty( $value ) && $this->get_settings( 'fallback' ) ) {
			$value = $this->get_settings( 'fallback' );
		}

		return wp_kses_post( $value );
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);

		$this->add_control(
			'fallback',
			[
				'label' => esc_html__( 'Fallback', 'elementor-pro' ),
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'email',
			'image',
			'file',
			'audio',
			'url',
		];
	}
}
PK!j=�	�	5modules/dynamic-tags/toolset/tags/toolset-gallery.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\DynamicTags\Toolset\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Toolset_Gallery extends Data_Tag {

	public function get_name() {
		return 'toolset-gallery';
	}

	public function get_title() {
		return esc_html__( 'Toolset', 'elementor-pro' ) . ' ' . esc_html__( 'Gallery Field', 'elementor-pro' );
	}

	public function get_categories() {
		return [ Module::GALLERY_CATEGORY ];
	}

	public function get_group() {
		return Module::TOOLSET_GROUP;
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	public function get_value( array $options = [] ) {
		// Toolset Embedded version loads its bootstrap later
		if ( ! function_exists( 'types_render_field' ) ) {
			return [];
		}

		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return [];
		}

		$images = [];

		list( $field_group, $field_key ) = explode( ':', $key );

		$field = wpcf_admin_fields_get_field( $field_key );

		if ( $field && ! empty( $field['type'] ) ) {

			$galley_images = types_render_field( $field_key, [
				'separator' => '|',
				'url' => true,
			] );
			$galley_images = explode( '|', $galley_images );
			foreach ( $galley_images as $image_url ) {
				$images[] = [
					'id' => $this->get_cached_attachment_url_to_post_id( $image_url ),
					'url' => $image_url,
				];
			}
		}

		return $images;
	}

	protected function register_controls() {
		$this->add_control(
			'key',
			[
				'label' => esc_html__( 'Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => Module::get_control_options( $this->get_supported_fields() ),
			]
		);
	}

	protected function get_supported_fields() {
		return [
			'toolset_gallery',
		];
	}

	/**
	 * @param $attachment_url
	 *
	 * @return false|int|mixed
	 */
	private function get_cached_attachment_url_to_post_id( $attachment_url ) {
		$id = wp_cache_get( $attachment_url, __CLASS__ );

		if ( false === $id ) {
			$id = attachment_url_to_postid( $attachment_url );

			wp_cache_set( $attachment_url, $id, __CLASS__ );
		}

		return $id;
	}

	/**
	 * Toolset_Gallery constructor.
	 *
	 * @param array $data
	 */
	public function __construct( array $data = [] ) {
		parent::__construct( $data );

		wp_cache_add_non_persistent_groups( __CLASS__ );
	}
}
PK!>z��
�
2modules/dynamic-tags/toolset/tags/toolset-date.phpnu�[���<?php
namespace ElementorPro\Modules\DynamicTags\Toolset\Tags;

use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Toolset_Date extends Toolset_Base {

	public function get_name() {
		return 'toolset-date';
	}

	public function get_title() {
		return esc_html__( 'Toolset', 'elementor-pro' ) . ' ' . esc_html__( 'Date Field', 'elementor-pro' );
	}

	public function render() {
		// Toolset Embedded version loads its bootstrap later
		if ( ! function_exists( 'types_render_field' ) ) {
			return;
		}

		$key = $this->get_settings( 'key' );
		if ( empty( $key ) ) {
			return;
		}

		list( $field_group, $field_key ) = explode( ':', $key );

		$field = wpcf_admin_fields_get_field( $field_key );
		$value = '';

		if ( $field && ! empty( $field['type'] ) && 'date' === $field['type'] ) {

			$format = $this->get_settings( 'format' );

			$timestamp = types_render_field( $field_key, [
				'output' => 'raw',
				'style' => 'text',
			] );

			if ( empty( $timestamp ) ) {
				return $value;
			}

			if ( 'human' === $format ) {
				/* translators: %s: Human readable date/time. */
				$value = human_time_diff( $timestamp );
			} else {
				switch ( $format ) {
					case 'default':
						$date_format = get_option( 'date_format' );
						break;
					case 'custom':
						$date_format = $this->get_settings( 'custom_format' );
						break;
					default:
						$date_format = $format;
						break;
				}

				$value = date_i18n( $date_format, $timestamp );
			}
		}
		echo wp_kses_post( $value );
	}

	public function get_panel_template_setting_key() {
		return 'key';
	}

	protected function register_controls() {
		parent::register_controls();

		$this->add_control(
			'format',
			[
				'label' => esc_html__( 'Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'F j, Y' => gmdate( 'F j, Y' ),
					'Y-m-d' => gmdate( 'Y-m-d' ),
					'm/d/Y' => gmdate( 'm/d/Y' ),
					'd/m/Y' => gmdate( 'd/m/Y' ),
					'human' => esc_html__( 'Human Readable', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
			]
		);

		$this->add_control(
			'custom_format',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'default' => '',
				'description' => sprintf( '<a href="https://go.elementor.com/wordpress-date-time/" target="_blank">%s</a>', esc_html__( 'Documentation on date and time formatting', 'elementor-pro' ) ),
				'condition' => [
					'format' => 'custom',
				],
			]
		);
	}

	protected function get_supported_fields() {
		return [ 'date' ];
	}
}
PK!sf5��1modules/video-playlist/widgets/video-playlist.phpnu�[���<?php
namespace ElementorPro\Modules\VideoPlaylist\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use Elementor\Modules\DynamicTags\Module as TagsModule;
use Elementor\Icons_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Video_Playlist extends Base_Widget {

	public function get_name() {
		return 'video-playlist';
	}

	public function get_title() {
		return esc_html__( 'Video Playlist', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-video-playlist';
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_playlist',
			[
				'label' => esc_html__( 'Playlist', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tabs_direction',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'default' => 'vertical',
				'options' => [
					'horizontal' => esc_html__( 'Horizontal', 'elementor-pro' ),
					'vertical' => esc_html__( 'Vertical', 'elementor-pro' ),
				],
				'prefix_class' => 'e-tabs-view-',
			]
		);

		$this->add_control(
			'playlist_title',
			[
				'label' => esc_html__( 'Playlist Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Playlist', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Playlist', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'youtube',
				'options' => [
					'youtube' => esc_html__( 'YouTube', 'elementor-pro' ),
					'vimeo' => esc_html__( 'Vimeo', 'elementor-pro' ),
					'hosted' => esc_html__( 'Self Hosted', 'elementor-pro' ),
					'section' => esc_html__( 'Section', 'elementor-pro' ),
				],
			]
		);

		$repeater->add_control(
			'youtube_url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Paste URL', 'elementor-pro' ) . ' (YouTube)',
				'label_block' => true,
				'condition' => [
					'type' => 'youtube',
				],
			]
		);

		$repeater->add_control(
			'vimeo_url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::POST_META_CATEGORY,
						TagsModule::URL_CATEGORY,
					],
				],
				'placeholder' => esc_html__( 'Enter your URL', 'elementor-pro' ) . ' (Vimeo)',
				'default' => 'https://vimeo.com/235215203',
				'label_block' => true,
				'condition' => [
					'type' => 'vimeo',
				],
			]
		);

		$repeater->add_control(
			'vimeo_fetch_data',
			[
				'type' => Controls_Manager::BUTTON,
				'label_block' => true,
				'text' => esc_html__( 'Get Video Data', 'elementor-pro' ),
				'separator' => 'none',
				'event' => 'elementorPlaylistWidget:fetchVideoData',
				'condition' => [
					'type' => [ 'youtube', 'vimeo' ],
				],
			]
		);

		$repeater->add_control(
			'is_external_url',
			[
				'label' => esc_html__( 'External URL', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'type' => 'hosted',
				],
			]
		);

		$repeater->add_control(
			'hosted_url',
			[
				'label' => esc_html__( 'Choose File', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::MEDIA_CATEGORY,
					],
				],
				'media_type' => 'video',
				'condition' => [
					'type' => 'hosted',
					'is_external_url' => '',
				],
			]
		);

		$repeater->add_control(
			'external_url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'autocomplete' => false,
				'options' => false,
				'label_block' => true,
				'show_label' => false,
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::POST_META_CATEGORY,
						TagsModule::URL_CATEGORY,
					],
				],
				'media_type' => 'video',
				'placeholder' => esc_html__( 'Enter your URL', 'elementor-pro' ),
				'condition' => [
					'type' => 'hosted',
					'is_external_url' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'Title', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Add Your Text Here', 'elementor-pro' ),
				'label_block' => true,
			]
		);

		$repeater->add_control(
			'duration',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => '1:05',
				'default' => '',
				'condition' => [
					'type!' => 'section',
				],
			]
		);

		$repeater->add_control(
			'thumbnail',
			[
				'label' => esc_html__( 'Thumbnail', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'dynamic' => [
					'active' => true,
				],
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
				'condition' => [
					'type!' => 'section',
				],
			]
		);

		$repeater->add_control(
			'inner_tab_is_content_visible',
			[
				'label' => esc_html__( 'Contents Tabs ', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'show',
				'default' => '',
				'condition' => [
					'type' => [ 'youtube', 'hosted', 'vimeo' ],
				],
			]
		);

		$repeater->start_controls_tabs( 'video_tabs' );

		$repeater->start_controls_tab(
			'inner_tab_1',
			[
				'label' => esc_html__( 'Tab #1', 'elementor-pro' ),
				'condition' => [
					'type' => [ 'youtube', 'hosted', 'vimeo' ],
					'inner_tab_is_content_visible' => 'show',
				],
			]
		);

		$repeater->add_control(
			'inner_tab_content_1',
			[
				'label' => '',
				'type' => Controls_Manager::WYSIWYG,
				'default' => '<p>' . esc_html__( 'Add some content for each one of your videos, like a description, transcript or external links.To add, remove or edit tab names, go to Tabs.', 'elementor-pro' ) . '</p>',
				'condition' => [
					'type' => [ 'youtube', 'hosted', 'vimeo' ],
					'inner_tab_is_content_visible' => 'show',
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab(
			'inner_tab_2',
			[
				'label' => esc_html__( 'Tab #2', 'elementor-pro' ),
				'condition' => [
					'type' => [ 'youtube', 'hosted', 'vimeo' ],
					'inner_tab_is_content_visible' => 'show',
				],
			]
		);

		$repeater->add_control(
			'inner_tab_content_2',
			[
				'label' => '',
				'type' => Controls_Manager::WYSIWYG,
				'condition' => [
					'type' => [ 'youtube', 'hosted', 'vimeo' ],
					'inner_tab_is_content_visible' => 'show',
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$this->add_control(
			'tabs',
			[
				'label' => esc_html__( 'Playlist Items', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'title' => esc_html__( 'Sample Video', 'elementor-pro' ),
						'youtube_url' => 'https://www.youtube.com/watch?v=XHOmBV4js_E',
						'duration' => '0:16',
						'thumbnail' => [ 'url' => 'http://img.youtube.com/vi/XHOmBV4js_E/maxresdefault.jpg' ],

					],
					[
						'title' => esc_html__( 'Sample Video', 'elementor-pro' ),
						'youtube_url' => 'https://www.youtube.com/watch?v=XHOmBV4js_E',
						'duration' => '0:16',
						'thumbnail' => [ 'url' => 'http://img.youtube.com/vi/XHOmBV4js_E/maxresdefault.jpg' ],

					],
					[
						'title' => esc_html__( 'Sample Video', 'elementor-pro' ),
						'youtube_url' => 'https://www.youtube.com/watch?v=XHOmBV4js_E',
						'duration' => '0:16',
						'thumbnail' => [ 'url' => 'http://img.youtube.com/vi/XHOmBV4js_E/maxresdefault.jpg' ],

					],
				],
				'frontend_available' => true,
				'title_field' => '{{{ title }}}',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_inner_tab',
			[
				'label' => esc_html__( 'Tabs', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'inner_tab_title_1',
			[
				'label' => esc_html__( 'Tab 1 Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Tab #1', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Name', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'inner_tab_title_2',
			[
				'label' => esc_html__( 'Tab 2 Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Tab #2', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Name', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'inner_tab_is_content_collapsible',
			[
				'label' => esc_html__( 'Collapsible', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'collapsible',
				'default' => '',
				'separator' => 'before',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'inner_tab_label_show_more',
			[
				'label' => esc_html__( 'Read More Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Show More', 'elementor-pro' ),
				'default' => esc_html__( 'Show More', 'elementor-pro' ),
				'condition' => [
					'inner_tab_is_content_collapsible' => 'collapsible',
				],
			]
		);

		$this->add_control(
			'inner_tab_label_show_less',
			[
				'label' => esc_html__( 'Read Less Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Show Less', 'elementor-pro' ),
				'default' => esc_html__( 'Show Less', 'elementor-pro' ),
				'condition' => [
					'inner_tab_is_content_collapsible' => 'collapsible',
				],
			]
		);

		$this->add_responsive_control(
			'inner_tab_collapsible_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => '54',
				],
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 54,
						'max' => 500,
					],
				],
				'render_type' => 'template',
				'selectors' => [
					'{{WRAPPER}} .collapsible .e-inner-tab-text' => 'height: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'inner_tab_is_content_collapsible' => 'collapsible',
				],
				'frontend_available' => true,
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_image_overlay',
			[
				'label' => esc_html__( 'Image Overlay', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_image_overlay',
			[
				'label' => esc_html__( 'Image Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'image_overlay',
			[
				'label' => esc_html__( 'Choose Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'show_image_overlay' => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'image_overlay',
				'default' => 'full',
				'separator' => 'none',
				'condition' => [
					'show_image_overlay' => 'yes',
				],
			]
		);

		$this->add_control(
			'show_play_icon',
			[
				'label' => esc_html__( 'Play Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'far fa-play-circle',
					'library' => 'fa-regular',
				],
				'label_block' => false,
				'skin' => 'inline',
				'condition' => [
					'show_image_overlay' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_additional_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tabs_alignment',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'right',
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'prefix_class' => 'elementor-layout-',
			]
		);

		$this->add_control(
			'heading_autoplay',
			[
				'label' => esc_html__( 'Autoplay', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'autoplay_on_load',
			[
				'label' => esc_html__( 'On Load', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);
		$this->add_control(
			'autoplay_next',
			[
				'label' => esc_html__( 'Next Up', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'show_watched_indication',
			[
				'label' => esc_html__( 'Indicate Watched', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'show_video_count',
			[
				'label' => esc_html__( 'Video Count', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_duration',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_thumbnail',
			[
				'label' => esc_html__( 'Thumbnails', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'play_icon',
			[
				'label' => esc_html__( 'Play Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'fas fa-play-circle',
					'library' => 'fa-solid',
				],
				'label_block' => false,
				'skin' => 'inline',
			]
		);

		$this->add_control(
			'watched_icon',
			[
				'label' => esc_html__( 'Watched Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'fas fa-check-circle',
					'library' => 'fa-solid',
				],
				'label_block' => false,
				'skin' => 'inline',
			]
		);

		$this->add_control(
			'lazy_load',
			[
				'label' => esc_html__( 'Lazy Load', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before',
				'return_value' => true,
				'frontend_available' => true,
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'layout_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'vh', 'vw' ],
				'range' => [
					'px' => [
						'min' => 200,
						'max' => 1200,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
					'vw' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .e-tabs .e-tabs-main-area' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_top_bar',
			[
				'label' => esc_html__( 'Top Bar', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_playlist_name',
			[
				'label' => esc_html__( 'Playlist Name', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'playlist_name_background',
			[
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-header' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'playlist_name_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-tabs-header .e-tabs-title' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'playlist_name_typography',
				'selector' => '{{WRAPPER}} .e-tabs-header .e-tabs-title',
			]
		);

		$this->add_control(
			'heading_videos_amount',
			[
				'label' => esc_html__( 'Video Count', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'videos_amount_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-tabs-header .e-tabs-videos-count' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-header .e-tabs-header-right-side i' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-header .e-tabs-header-right-side svg' => 'fill: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'videos_amount_typography',
				'selector' => '{{WRAPPER}} .e-tabs-header .e-tabs-videos-count',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_videos',
			[
				'label' => esc_html__( 'Videos', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'playlist_tabs' );

		$this->start_controls_tab(
			'playlist_tabs_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_tab_normal',
			[
				'label' => esc_html__( 'Item', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'normal_background',
			[
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tab-title' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-items-wrapper' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-items-wrapper .shadow-bottom' => 'background: linear-gradient(180deg, transparent 0%, {{VALUE}} 100%)',
					'{{WRAPPER}} .e-tabs-items-wrapper .shadow-top' => 'background: linear-gradient(0deg, transparent 0%, {{VALUE}} 100%);',
				],
			]
		);

		$this->add_control(
			'normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tab-title .e-tab-title-text' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tab-title .e-tab-title-text a' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'normal_typography',
				'selector' => '{{WRAPPER}} .e-tab-title .e-tab-title-text',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'heading_duration_normal',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'normal_duration_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tab-title .e-tab-duration' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'normal_duration_typography',
				'selector' => '{{WRAPPER}} .e-tab-title .e-tab-duration',
			]
		);

		$this->add_control(
			'heading_icon_normal',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'normal_icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tab-title i' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tab-title svg' => 'fill: {{VALUE}};',
					'{{WRAPPER}} .e-tab-title svg path' => 'fill: {{VALUE}};',
				],
			]
		);

		// Default shadow values for the icon.
		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'normal_icon_top_text_shadow',
				'fields_options' => [
					'text_shadow_type' => [
						'label' => _x( 'Shadow', 'Text Shadow Control', 'elementor-pro' ),
					],
					'text_shadow' => [
						'selectors' => [
							'{{WRAPPER}} .e-tab-title i' => 'text-shadow: {{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{COLOR}};',
							'{{WRAPPER}} .e-tab-title svg' => 'filter: drop-shadow({{HORIZONTAL}}px {{VERTICAL}}px {{BLUR}}px {{COLOR}});',
						],
					],
				],
			]
		);

		$this->add_responsive_control(
			'normal_icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'min' => 10,
					'max' => 30,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--playlist-item-icon-size: {{SIZE}}px',
					'{{WRAPPER}}' => '--playlist-item-icon-size: {{SIZE}}px',
				],
			]
		);

		$this->add_control(
			'heading_separator_normal',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'normal_separator_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => _x( 'Solid', 'Border Control', 'elementor-pro' ),
					'double' => _x( 'Double', 'Border Control', 'elementor-pro' ),
					'dotted' => _x( 'Dotted', 'Border Control', 'elementor-pro' ),
					'dashed' => _x( 'Dashed', 'Border Control', 'elementor-pro' ),
					'groove' => _x( 'Groove', 'Border Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} .e-tab-title' => 'border-style: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'normal_separator_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'min' => 0,
					'max' => 10,
				],
				'selectors' => [
					'{{WRAPPER}} .e-tab-title' => 'border-width: 0 0 {{SIZE}}px 0;',
				],
				'condition' => [
					'normal_separator_style!' => '',
				],
			]
		);

		$this->add_control(
			'normal_separator_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tab-title' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'normal_separator_style!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'playlist_tabs_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_tab_active',
			[
				'label' => esc_html__( 'Item', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'active_background',
			[
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tabs-items .e-tab-title:where( .e-active, :hover )' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'active_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#556068',
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) .e-tab-title-text' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) .e-tab-title-text a' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'active_typography',
				'selector' => '{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) .e-tab-title-text',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'heading_duration_active',
			[
				'label' => esc_html__( 'Duration', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'active_duration_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) .e-tab-duration' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'active_duration_typography',
				'selector' => '{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) .e-tab-duration',
			]
		);

		$this->add_control(
			'heading_icon_active',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'active_icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) i' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) svg' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title:where( .e-active, :hover ) svg path' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'active_icon_top_text_shadow',
				'fields_options' => [
					'text_shadow_type' => [
						'label' => _x( 'Shadow', 'Text Shadow Control', 'elementor-pro' ),
					],
				],
				'selector' => '{{WRAPPER}} .e-tab-title:where( .e-active, :hover ) i, {{WRAPPER}} .e-tab-title:where( .e-active, :hover ) svg',
			]
		);

		$this->add_responsive_control(
			'active_icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'min' => 10,
					'max' => 30,
				],
				'selectors' => [
					'{{WRAPPER}} .e-tab-title:where( .e-active, :hover ) span i' => 'font-size: {{SIZE}}px',
					'{{WRAPPER}} .e-tab-title:where( .e-active, :hover ) span svg' => 'width: {{SIZE}}px; height: {{SIZE}}px;',
				],
			]
		);

		$this->add_control(
			'heading_separator_active',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'active_separator_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => _x( 'Solid', 'Border Control', 'elementor-pro' ),
					'double' => _x( 'Double', 'Border Control', 'elementor-pro' ),
					'dotted' => _x( 'Dotted', 'Border Control', 'elementor-pro' ),
					'dashed' => _x( 'Dashed', 'Border Control', 'elementor-pro' ),
					'groove' => _x( 'Groove', 'Border Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title.e-active' => 'border-style: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'active_separator_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'min' => 0,
					'max' => 10,
				],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tab-title.e-active' => 'border-width: 0 0 {{SIZE}}px 0;',
				],
				'condition' => [
					'active_separator_style!' => '',
				],
			]
		);

		$this->add_control(
			'active_separator_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-tabs-items .e-tab-title.e-active' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'active_separator_style!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_sections',
			[
				'label' => esc_html__( 'Sections', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_section',
			[
				'label' => esc_html__( 'Section', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'section_background',
			[
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-section-title' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'section_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-section-title' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'section_typography',
				'selector' => '{{WRAPPER}} .e-tabs-items-wrapper .e-section-title',
			]
		);

		$this->add_control(
			'section_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'solid',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => _x( 'Solid', 'Border Control', 'elementor-pro' ),
					'double' => _x( 'Double', 'Border Control', 'elementor-pro' ),
					'dotted' => _x( 'Dotted', 'Border Control', 'elementor-pro' ),
					'dashed' => _x( 'Dashed', 'Border Control', 'elementor-pro' ),
					'groove' => _x( 'Groove', 'Border Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-section-title' => 'border-style: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'section_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-section-title' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'section_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-items-wrapper .e-section-title' => 'border-color: {{VALUE}};',
				],
			]
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'section_inner_tab_style',
			[
				'label' => esc_html__( 'Tabs', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'inner_tab_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'min' => 0,
					'max' => 10,
				],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper' => '--inner-tabs-border-height: {{SIZE}}px;',
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active' => 'border-width: 0 0 {{SIZE}}px 0;',
				],
			]
		);

		$this->add_control(
			'inner_tab_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper' => '--inner-tabs-border-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'inner_tab_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-active' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-title' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'heading_inner_tab_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'inner_tab_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'inner_tab_active_title_color',
			[
				'label' => esc_html__( 'Active Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a' => 'color: {{VALUE}};',
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'inner_tab_title_typography',
				'selector' => '{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'heading_inner_tab_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'inner_tab_content_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'inner_tab_content_typography',
				'selector' => '{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_responsive_control(
			'inner_tab_content_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_inner_tab_show_more',
			[
				'label' => esc_html__( 'Show More', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'inner_tab_show_more_color' );

		$this->start_controls_tab(
			'inner_tab_normal_show_more',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'inner_tab_normal_show_more_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content button' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'inner_tab_hover_show_more',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'inner_tab_hover_show_more_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content button:hover' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'inner_tab_show_more_typography',
				'selector' => '{{WRAPPER}} .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content button',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
			]
		);

		$this->end_controls_section();
	}

	private function create_playlist_item_tabs_array( $playlist_item, $playlist_item_index, $tab_1_title, $tab_2_title ) {
		$playlist_item_tabs_array = [];
		$is_already_activated_tab = false;

		$playlist_item_tabs_content = [
			$playlist_item['inner_tab_content_1'],
			$playlist_item['inner_tab_content_2'],
		];

		$playlist_item_tabs_title = [
			$tab_1_title,
			$tab_2_title,
		];

		foreach ( $playlist_item_tabs_content as $index => $playlist_item_tab_content ) {
			$playlist_item_tab_content_object = new \stdClass();
			$playlist_item_tab_content_object->tab_title = $playlist_item_tabs_title[ $index ];
			$playlist_item_tab_content_object->tab_content = $playlist_item_tab_content;

			$tab_index = $index + 1;
			$playlist_item_tab_content_object->tab_content_setting_key = $this->get_repeater_setting_key( 'inner_tab_content_' . $tab_index, 'tabs', $playlist_item_index );

			if ( $playlist_item_tab_content ) {
				$playlist_item_tab_content_object->tab_attribute = ! $is_already_activated_tab ? '' : 'hidden';
				$playlist_item_tab_content_object->tab_class = ! $is_already_activated_tab ? 'e-inner-tab-active' : '';
				$is_already_activated_tab = true;
			}

			$playlist_item_tabs_array [] = $playlist_item_tab_content_object;
		}

		return $playlist_item_tabs_array;
	}

	private function create_playlist_item_video_attributes( $index, $id_int, $playlist_item, $video_url = '' ) {
		$html_attributes_object = new \stdClass();
		$tab_count = $index + 1;

		// The first tab will be activated and not hidden like the second tab.
		$hidden = 1 === $tab_count ? false : 'hidden';

		$html_attributes_object->attributes = [
			'id' => 'e-tab-content-' . $id_int . $tab_count,
			'class' => [ 'e-tab-content', 'elementor-clearfix' ],
			'data-tab' => $tab_count,
			'role' => 'tabpanel',
			'aria-labelledby' => 'e-tab-title-' . $id_int . $tab_count,
			'tabindex' => '0',
			'data-video-url' => $video_url,
			'data-video-type' => $playlist_item['type'],
			'data-video-title' => $playlist_item['title'],
			'data-video-duration' => $playlist_item['duration'],
		];

		if ( $hidden ) {
			$html_attributes_object->attributes['hidden'] = $hidden;
		}

		return $html_attributes_object;
	}

	private function create_playlist_item_title_attributes( $index, $id_int ) {
		$html_attributes_object = new \stdClass();
		$tab_count = $index + 1;

		$html_attributes_object->attributes = [
			'id' => 'e-tab-title-' . $id_int . $tab_count,
			'class' => [ 'e-tab-title', 'e-tab-desktop-title' ],
			'aria-selected' => 1 === $tab_count ? 'true' : 'false',
			'data-tab' => $tab_count,
			'role' => 'tab',
			'tabindex' => 1 === $tab_count ? '0' : '-1',
			'aria-controls' => 'e-tab-content-' . $id_int . $tab_count,
		];

		return $html_attributes_object;
	}

	private function create_playlist_items_array( $playlist_items ) {
		$playlist_items_array = array();
		$id_int = substr( $this->get_id_int(), 0, 3 );

		foreach ( $playlist_items as $index => $playlist_item ) {
			$playlist_item_object = new \stdClass();
			$playlist_item_object->video_url = '';
			$playlist_item_object->show_overlay_image = false;
			$playlist_item_object->is_inner_tabs_visible = $playlist_item['inner_tab_is_content_visible'];

			switch ( $playlist_item['type'] ) {
				case 'youtube':
				case 'vimeo':
				case 'hosted':
					$playlist_item_object->type = $playlist_item['type'];
					$playlist_item_object->video_title = $playlist_item['title'];

					if ( $playlist_item['youtube_url'] && 'youtube' === $playlist_item['type'] ) {
						$playlist_item_object->video_url = $playlist_item['youtube_url'];
					} elseif ( $playlist_item['vimeo_url'] && 'vimeo' === $playlist_item['type'] ) {
						$playlist_item_object->video_url = $playlist_item['vimeo_url'];
					} elseif ( $playlist_item['external_url'] && 'hosted' === $playlist_item['type'] && 'yes' === $playlist_item['is_external_url'] ) {
						$playlist_item_object->video_url = $playlist_item['external_url']['url'];
					} elseif ( $playlist_item['hosted_url'] && 'hosted' === $playlist_item['type'] && 'yes' !== $playlist_item['is_external_url'] ) {
						$playlist_item_object->video_url = $playlist_item['hosted_url']['url'];
					}

					$playlist_item_object->tab_collapsible = $this->get_settings_for_display( 'inner_tab_is_content_collapsible' );
					$playlist_item_object->read_more_label = $this->get_settings_for_display( 'inner_tab_label_show_more' );
					$playlist_item_object->read_less_label = $this->get_settings_for_display( 'inner_tab_label_show_less' );

					$playlist_item_object->video_duration = '';
					if ( $this->get_settings_for_display( 'show_duration' ) ) {
						$playlist_item_object->video_duration = $playlist_item['duration'];
					}

					$playlist_item_object->video_thumbnail = '';
					if ( $this->get_settings_for_display( 'show_thumbnail' ) ) {
						$playlist_item_object->video_thumbnail = $playlist_item['thumbnail']['url'];
					}

					$playlist_item_object->html_attributes_title = $this->create_playlist_item_title_attributes( $index, $id_int );

					$playlist_item_object->tabs = [];
					if ( $playlist_item['inner_tab_content_1'] || $playlist_item['inner_tab_content_2'] ) {
						$tab_1_title = $this->get_settings_for_display( 'inner_tab_title_1' );
						$tab_2_title = $this->get_settings_for_display( 'inner_tab_title_2' );
						if ( $playlist_item_object->is_inner_tabs_visible ) {
							$playlist_item_object->tabs = $this->create_playlist_item_tabs_array( $playlist_item, $index, $tab_1_title, $tab_2_title );
						}
					}

					if ( 0 === $index && 'yes' !== $this->get_settings_for_display( 'autoplay_on_load' ) && $this->get_settings_for_display( 'show_image_overlay' ) ) {
						$playlist_item_object->show_overlay_image = true;
					}

					break;
				case 'section':
					$playlist_item_object->type = $playlist_item['type'];
					$playlist_item_object->section_title = $playlist_item['title'];
					$playlist_item_object->video_title = '';
					break;
			}

			$playlist_item_object->html_attributes_video = $this->create_playlist_item_video_attributes( $index, $id_int, $playlist_item, $playlist_item_object->video_url );

			$playlist_items_array [] = $playlist_item_object;
		}

		return $playlist_items_array;
	}

	private function count_video_items( $playlist_items ) {
		$filtered_playlist_items = $playlist_items;
		foreach ( $filtered_playlist_items as $key => $tab ) {
			if ( 'section' === $tab['type'] ) {
				unset( $filtered_playlist_items[ $key ] );
			}
		}
		return count( $filtered_playlist_items );
	}

	private function prepare_video_playlist_data_object() {
		$settings = $this->get_settings_for_display();
		$playlist_items = $settings['tabs'];

		$playlist_object = new \stdClass();
		$playlist_object->playlist_name = $settings['playlist_title'];
		$playlist_object->is_show_video_count = $settings['show_video_count'];

		if ( $playlist_object->is_show_video_count ) {
			$playlist_object->video_count = $this->count_video_items( $playlist_items );
		}

		$playlist_object->show_thumbnails = $settings['show_thumbnail'];
		$playlist_object->play_icon = $settings['play_icon'];
		$playlist_object->watched_icon = $settings['watched_icon'];
		$playlist_object->playlist_items = $this->create_playlist_items_array( $playlist_items );
		$playlist_object->is_image_overlay = $settings['show_image_overlay'];
		$playlist_object->image_overlay_icon = $settings['show_play_icon'];

		$image_overlay = $settings['image_overlay'];
		if ( ! empty( $image_overlay['url'] ) ) {
			$playlist_object->image_overlay_image = Group_Control_Image_Size::get_attachment_image_src( $image_overlay['id'], 'image_overlay', $settings );
			if ( ! $playlist_object->image_overlay_image[1] ) {
				$playlist_object->image_overlay_image = $image_overlay['url'];
			}
		}

		return $playlist_object;
	}

	protected function render() {
		$playlist_object = $this->prepare_video_playlist_data_object();
		?>

		<div class="e-tabs">
			<div class="e-tabs-main-area">
				<div class="e-tabs-wrapper">
					<div class="e-tabs-header">
						<?php // PHPCS - the main text of a widget should not be escaped. ?>
						<h2 class="e-tabs-title"><?php echo $playlist_object->playlist_name; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></h2>
						<div class="e-tabs-header-right-side">
							<?php if ( $playlist_object->is_show_video_count ) : ?>
								<span class="e-tabs-videos-count"><?php echo esc_attr( $playlist_object->video_count ); ?> <?php echo esc_html__( 'Videos', 'elementor-pro' ); ?></span>
							<?php endif; ?>
							<?php
								Icons_Manager::render_icon(
									[
										'library' => 'eicons',
										'value' => 'eicon-caret-down',
									],
									[
										'aria-hidden' => 'true',
										'class' => [
											'e-tabs-toggle-videos-display-button',
											'rotate-down',
										],
									]
								);
							?>
						</div>
					</div>
					<div class="e-tabs-items-wrapper">
						<div class="e-tabs-items" role="tablist">
							<?php
							foreach ( $playlist_object->playlist_items as $item ) : ?>
								<?php if ( 'section' === $item->type ) : ?>
									<h3 class="e-section-title">
										<?php // PHPCS - the main text of a widget should not be escaped. ?>
										<?php echo $item->section_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
									</h3>
								<?php else : ?>
									<div <?php Utils::print_html_attributes( $item->html_attributes_title->attributes ); ?>>
										<?php if ( $playlist_object->show_thumbnails ) : ?>
											<div class="e-tab-thumbnail">
												<?php if ( $item->video_thumbnail ) : ?>
													<img src="<?php echo esc_url( $item->video_thumbnail ); ?>" />
												<?php endif; ?>
												<span class="icon-play"><?php Icons_Manager::render_icon( $playlist_object->play_icon, [ 'aria-hidden' => 'true' ] ); ?></span>
												<span class="icon-watched"><?php Icons_Manager::render_icon( $playlist_object->watched_icon, [ 'aria-hidden' => 'true' ] ); ?></span>
											</div>
										<?php else : ?>
											<span class="icon-play"><?php Icons_Manager::render_icon( $playlist_object->play_icon, [ 'aria-hidden' => 'true' ] ); ?></span>
											<span class="icon-watched"><?php Icons_Manager::render_icon( $playlist_object->watched_icon, [ 'aria-hidden' => 'true' ] ); ?></span>
										<?php endif; ?>
										<h4 class="e-tab-title-text" title="<?php echo esc_attr( $item->video_title ); ?>">
											<a href="">
												<?php // PHPCS - the main text of a widget should not be escaped. ?>
												<?php echo $item->video_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
											</a>
										</h4>
										<?php if ( $item->video_duration ) : ?>
											<span class="e-tab-duration"><?php echo esc_html( $item->video_duration ); ?></span>
										<?php endif; ?>
									</div>
								<?php endif; ?>
							<?php endforeach; ?>
						</div>
						<div class="shadow shadow-top" aria-hidden="true"></div>
						<div class="shadow shadow-bottom" aria-hidden="true"></div>
					</div>
				</div>

				<div class="e-tabs-content-wrapper" role="tablist" aria-orientation="vertical">
					<?php foreach ( $playlist_object->playlist_items as $item ) : ?>
						<div <?php Utils::print_html_attributes( $item->html_attributes_video->attributes ); ?>>
							<div></div>
							<?php if ( $item->show_overlay_image ) : ?>
								<div class="elementor-custom-embed-image-overlay elementor-clickable" style="background-image: url('<?php echo esc_url( $playlist_object->image_overlay_image ); ?>');">
									<?php if ( ! empty( $playlist_object->image_overlay_icon['value'] ) ) : ?>
										<div class="elementor-custom-embed-play" role="button">
											<?php Icons_Manager::render_icon( $playlist_object->image_overlay_icon, [ 'aria-hidden' => 'true' ] ); ?>
											<span class="elementor-screen-only"><?php echo esc_html__( 'Play Video', 'elementor-pro' ); ?></span>
										</div>
									<?php endif; ?>
								</div>
							<?php endif; ?>
						</div>
					<?php endforeach; ?>
				</div>
			</div>

			<div class="e-tabs-inner-tabs" >
				<?php foreach ( $playlist_object->playlist_items as $item ) : ?>
					<?php if ( $item->is_inner_tabs_visible ) : ?>
						<div <?php Utils::print_html_attributes( $item->html_attributes_video->attributes ); ?>>
							<?php if ( count( $item->tabs ) > 0 ) : ?>
								<div class="e-inner-tabs-wrapper">
									<?php foreach ( $item->tabs as $tab ) :
										if ( $tab->tab_content ) { ?>
											<div class="e-inner-tab-title <?php Utils::print_unescaped_internal_string( $tab->tab_class ); ?>">
												<a class="e-inner-tab-title-text" href=""><?php Utils::print_unescaped_internal_string( $tab->tab_title ); ?></a>
											</div>
										<?php } ?>
									<?php endforeach; ?>
								</div>
								<div class="e-inner-tabs-content-wrapper">
									<?php foreach ( $item->tabs as $tab ) :
										if ( $tab->tab_content ) { ?>
											<div class="e-inner-tab-title e-tab-mobile-title <?php Utils::print_unescaped_internal_string( $tab->tab_class ); ?>">
												<?php // PHPCS - the main text of a widget should not be escaped. ?>
												<?php echo $tab->tab_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
											</div>
											<div <?php Utils::print_unescaped_internal_string( $tab->tab_attribute ); ?> class="e-inner-tab-content <?php Utils::print_unescaped_internal_string( $tab->tab_class ); ?> <?php echo esc_attr( $item->tab_collapsible ); ?>">
												<div class="e-inner-tab-text">
													<?php $this->add_inline_editing_attributes( $tab->tab_content_setting_key, 'advanced' ); ?>
													<div <?php $this->print_render_attribute_string( $tab->tab_content_setting_key ); ?>>
														<?php // PHPCS - the main text of a widget should not be escaped. ?>
														<?php echo $this->parse_text_editor( $tab->tab_content ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
													</div>
												</div>
												<div class="e-inner-tab-buttons">
													<?php // PHPCS - the main text of a widget should not be escaped. ?>
													<button class="show-button"><?php echo $item->read_more_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></button>
													<button><?php echo $item->read_less_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></button>
												</div>
											</div>
										<?php } ?>
									<?php endforeach; ?>
								</div>
							<?php endif; ?>
						</div>
					<?php endif; ?>
				<?php endforeach; ?>
			</div>
		</div>
		<?php
	}

	protected function content_template() {
		?>
		<#

		function createPlaylistItemTabsArray( playlistItem, playlistItemIndex, tab1Title, tab2Title ) {
			var playlistItemTabsArray = [];
			var isAlreadyActivatedTab = false;

			var playlistItemTabsContent = [
				playlistItem.inner_tab_content_1,
				playlistItem.inner_tab_content_2,
			];

			var playlistItemTabsTitle = [
				tab1Title,
				tab2Title,
			];

			playlistItemTabsContent.forEach( function( playlistItemTabContent, index ) {
				var playlistItemTabContentObject = {};
				playlistItemTabContentObject.tab_title = playlistItemTabsTitle[ index ];
				playlistItemTabContentObject.tab_content = playlistItemTabContent;

				var tabIndex = index + 1;
				playlistItemTabContentObject.tabContentSettingKey = view.getRepeaterSettingKey( 'inner_tab_content_' + tabIndex, 'tabs', playlistItemIndex );

				if ( playlistItemTabContent ) {
					playlistItemTabContentObject.tabAttribute = ! isAlreadyActivatedTab ? '' : 'hidden';
					playlistItemTabContentObject.tabClass = ! isAlreadyActivatedTab ? 'e-inner-tab-active' : '';
					isAlreadyActivatedTab = true;
				}

				playlistItemTabsArray.push(playlistItemTabContentObject);
			} );

			return playlistItemTabsArray;
		}

		function createPlaylistItemVideoAttributes( index, id, playlistItem, videoUrl ) {
			var videoUrl = videoUrl ? videoUrl : '';
			var htmlAttributesObject = {};
			var tabCount = index + 1;

			// The first tab will be activated and not hidden like the second tab.
			var hidden = 1 === tabCount ? false : 'hidden';

			htmlAttributesObject.attributes = {
				'id' : 'e-tab-content-' + id + tabCount,
				'class' : [ 'e-tab-content', 'elementor-clearfix' ],
				'data-tab' : tabCount,
				'role' : 'tabpanel',
				'aria-labelledby' : 'e-tab-title-' + id + tabCount,
				'tabindex' : '0',
				'data-video-url' : videoUrl,
				'data-video-type' : playlistItem.type,
				'data-video-title' : playlistItem.title,
				'data-video-duration' : playlistItem.duration,
			};

			if ( hidden ) {
				htmlAttributesObject.attributes.hidden = hidden;
			}

			return htmlAttributesObject;
		}

		function createPlaylistItemTitleAttributes( index, id ) {
			var htmlAttributesObject = {};
			var tabCount = index + 1;

			htmlAttributesObject.attributes = {
				'id' : 'e-tab-title-' + id + tabCount,
				'class' : [ 'e-tab-title', 'e-tab-desktop-title' ],
				'aria-selected' : 1 === tabCount ? 'true' : 'false',
				'data-tab' : tabCount,
				'role' : 'tab',
				'tabindex' : 1 === tabCount ? '0' : '-1',
				'aria-controls' : 'e-tab-content-' + id + tabCount,
			};

			return htmlAttributesObject;
		}

		function createPlaylistItemsArray( playlistItems ) {
			var playlistItemsArray = [];
			id = view.getIDInt().toString().substr( 0, 3 )

			playlistItems.forEach( function( playlistItem, index ) {
				var playlistItemObject = {};
				playlistItemObject.videoUrl = '';
				playlistItemObject.showOverlayImage = false;
				playlistItemObject.isInnerTabsVisible = playlistItem.inner_tab_is_content_visible;

				switch ( playlistItem.type ) {
					case 'youtube':
					case 'vimeo':
					case 'hosted':
						playlistItemObject.type = playlistItem.type;
						playlistItemObject.videoTitle = playlistItem.title;

						if ( playlistItem.youtube_url && 'youtube' === playlistItem.type ) {
							playlistItemObject.videoUrl = playlistItem.youtube_url;
						} else if ( playlistItem.vimeo_url && 'vimeo' === playlistItem.type ) {
							playlistItemObject.videoUrl = playlistItem.vimeo_url;
						} else if ( playlistItem.external_url && 'hosted' === playlistItem.type && 'yes' === playlistItem.is_external_url ) {
							playlistItemObject.videoUrl = playlistItem.external_url.url;
						} else if ( playlistItem.hosted_url && 'hosted' === playlistItem.type && 'yes' !== playlistItem.is_external_url ) {
							playlistItemObject.videoUrl = playlistItem.hosted_url.url;
						}

						playlistItemObject.tabCollapsible = settings.inner_tab_is_content_collapsible;
						playlistItemObject.readMoreLabel = settings.inner_tab_label_show_more;
						playlistItemObject.readLessLabel = settings.inner_tab_label_show_less;

						playlistItemObject.videoDuration = '';
						if ( settings.show_duration ) {
							playlistItemObject.videoDuration = playlistItem.duration;
						}

						playlistItemObject.videoThumbnail = '';
						if ( settings.show_thumbnail ) {
							playlistItemObject.videoThumbnail = playlistItem.thumbnail.url;
						}

						playlistItemObject.htmlAttributesTitle = createPlaylistItemTitleAttributes( index, id );

						playlistItemObject.tabs = [];
						if ( playlistItem.inner_tab_content_1 || playlistItem.inner_tab_content_2 ) {
							var tab1Title = settings.inner_tab_title_1;
							var tab2Title = settings.inner_tab_title_2;
							if ( playlistItemObject.isInnerTabsVisible ) {
								playlistItemObject.tabs = createPlaylistItemTabsArray( playlistItem, index, tab1Title, tab2Title );
							}
						}

						if ( (0 === index) && (settings.autoplay_on_load !== 'yes') && settings.show_image_overlay ) {
							playlistItemObject.showOverlayImage = true;
						}

					break;
					case 'section':
						playlistItemObject.type = playlistItem.type;
						playlistItemObject.sectionTitle = playlistItem.title;
					break;
				}

				playlistItemObject.htmlAttributesVideo = createPlaylistItemVideoAttributes( index, id, playlistItem, playlistItemObject.videoUrl );

				playlistItemsArray.push(playlistItemObject);
			} );

			return playlistItemsArray;
		}

		function countVideoItems( playlistItems ) {
			var filteredPlaylistItems = playlistItems.filter(function(playlistItem) {
				return 'section' !== playlistItem.type
			});

			return filteredPlaylistItems.length;
		}

		function prepare_video_playlist_data_object() {
			var playlistItems = settings.tabs

			playlistObject = {};
			playlistObject.playlistName = settings.playlist_title;
			playlistObject.isShowVideoCount = settings.show_video_count;

			if( playlistObject.isShowVideoCount ) {
				playlistObject.videoCount = countVideoItems( playlistItems );
			}

			playlistObject.showThumbnails = settings.show_thumbnail;
			playlistObject.playIcon = settings.play_icon;
			playlistObject.watchedIcon = settings.watched_icon;
			playlistObject.playlistItems = createPlaylistItemsArray( playlistItems );
			playlistObject.isImageOverlay = !settings.autoplay_on_load && settings.show_image_overlay ? true : false;
			playlistObject.imageOverlayIcon = settings.show_play_icon;

			playlistObject.imageOverlayImage = '';
			imageOverlay = settings.image_overlay;
			if ( imageOverlay.url && settings.image_overlay.id && playlistObject.isImageOverlay ) {
				var image_overlay_object = {
				id: settings.image_overlay.id,
				url: settings.image_overlay.url,
				size: settings.image_overlay_size,
				dimension: settings.image_overlay_custom_dimension,
				model: view.getEditModel()
				};

				playlistObject.imageOverlayImage = elementor.imagesManager.getImageUrl( image_overlay_object );
			} else {
				playlistObject.imageOverlayImage = imageOverlay.url;
			}

			return playlistObject;
		}

		var playlistObject = prepare_video_playlist_data_object();

		var watchedIconHTML = elementor.helpers.renderIcon( view, playlistObject.watchedIcon, { 'aria-hidden': true }, 'i' , 'object' );
		var playIconHTML = elementor.helpers.renderIcon( view, playlistObject.playIcon, { 'aria-hidden': true }, 'i' , 'object' );
		var overlayImagePlayIconHTML = elementor.helpers.renderIcon( view, playlistObject.imageOverlayIcon, { 'aria-hidden': true }, 'i' , 'object' );
		#>
		<div class="e-tabs" role="tablist" aria-orientation="vertical">
			<div class="e-tabs-main-area">
				<div class="e-tabs-wrapper">
					<div class="e-tabs-header">
						<h2 class="e-tabs-title">{{{ playlistObject.playlistName }}}</h2>
						<div class="e-tabs-header-right-side">
							<# if ( playlistObject.isShowVideoCount ) { #>
								<span class="e-tabs-videos-count">{{{ playlistObject.videoCount }}} Videos</span>
							<# } #>
							<i class="e-tabs-toggle-videos-display-button eicon-caret-down rotate-down" aria-hidden="true"></i>
						</div>
					</div>
					<div class="e-tabs-items-wrapper">
						<div class="e-tabs-items" role="tablist">
							<# _.each( playlistObject.playlistItems, function( item, index ) { #>
								<# if ( 'section' === item.type ) { #>
									<h3 class="e-section-title">
										{{{ item.sectionTitle }}}
									</h3>
								<# } else { #>
									<#
										var tabTitleKey = item.htmlAttributesTitle.attributes.id;
										view.addRenderAttribute(tabTitleKey, item.htmlAttributesTitle.attributes);
									#>
									<div {{{ view.getRenderAttributeString( tabTitleKey ) }}}>
										<# if ( playlistObject.showThumbnails ) { #>
											<div class="e-tab-thumbnail">
												<# if ( item.videoThumbnail ) { #>
													<img src="{{{ item.videoThumbnail }}}" />
												<# } #>
												<span class="icon-play">{{{ playIconHTML.value }}}</span>
												<span class="icon-watched">{{{ watchedIconHTML.value }}}</span>
											</div>
										<# } else { #>
										<span class="icon-play">{{{ playIconHTML.value }}}</span>
										<span class="icon-watched">{{{ watchedIconHTML.value }}}</span>
										<# } #>
										<h4 class="e-tab-title-text" title="{{{ item.videoTitle }}}">
											<a href="">{{{ item.videoTitle }}}</a>
										</h4>
										<# if ( item.videoDuration ) { #>
										<span class="e-tab-duration">{{{ item.videoDuration }}}</span>
										<# } #>
									</div>
								<# } #>
							<# } ); #>
						</div>
						<div class="shadow shadow-top" aria-hidden="true"></div>
						<div class="shadow shadow-bottom" aria-hidden="true"></div>
					</div>
				</div>

				<div class="e-tabs-content-wrapper">
					<# _.each( playlistObject.playlistItems, function( item, index ) { #>
					<div class="e-tab-title e-tab-mobile-title" role="tab">{{{ item.title }}}</div>
					<#
						var tabContentKey = view.getRepeaterSettingKey( 'tab_content', 'tabs', index );
						view.addRenderAttribute(tabContentKey, item.htmlAttributesVideo.attributes);
					#>
					<div {{{ view.getRenderAttributeString( tabContentKey ) }}}>
						<div></div>
						<# if ( item.showOverlayImage ) { #>
						<div class="elementor-custom-embed-image-overlay elementor-clickable" style="background-image: url( {{ playlistObject.imageOverlayImage }} );">
							<# if ( playlistObject.imageOverlayIcon.value ) { #>
							<div class="elementor-custom-embed-play" role="button">
								{{{ overlayImagePlayIconHTML.value }}}
							</div>
							<# } #>
						</div>
						<# } #>
					</div>
					<# } ); #>
				</div>
			</div>

			<div class="e-tabs-inner-tabs">
				<# _.each( playlistObject.playlistItems, function( item, index ) { #>
					<# if ( item.isInnerTabsVisible ) { #>
					<#
						var tabContentKey = view.getRepeaterSettingKey( 'tab_content', 'inner-tabs', index );
						view.addRenderAttribute(tabContentKey, item.htmlAttributesVideo.attributes);
					#>
						<div {{{ view.getRenderAttributeString( tabContentKey ) }}}>
							<# if ( item.tabs.length > 0 ) { #>
								<div class="e-inner-tabs-wrapper">
									<# _.each( item.tabs, function( tab ) { #>
										<# if ( tab.tab_content ) { #>
											<div class="e-inner-tab-title {{{ tab.tabClass }}}">
												<a class="e-inner-tab-title-text" href=""> {{{ tab.tab_title }}} </a>
											</div>
										<# } #>
									<# }); #>
								</div>
								<div class="e-inner-tabs-content-wrapper">
									<# _.each( item.tabs, function( tab ) { #>
										<div class="e-inner-tab-title e-tab-mobile-title {{{ tab.tabClass }}}">
											{{{ tab.tab_title }}}
										</div>
										<div {{{ tab.tabAttribute }}} class="e-inner-tab-content {{{ tab.tabClass }}} {{{ item.tabCollapsible }}}">
											<div class="e-inner-tab-text">
												<# view.addInlineEditingAttributes( tab.tabContentSettingKey, 'advanced' ); #>
												<div {{{ view.getRenderAttributeString( tab.tabContentSettingKey ) }}}>
													{{{ tab.tab_content }}}
												</div>
											</div>
											<div class="e-inner-tab-buttons">
												<button class="show-button">{{{ item.readMoreLabel }}}</button>
												<button>{{{ item.readLessLabel }}}</button>
											</div>
										</div>
									<# } ); #>
								</div>
							<# } #>
						</div>
					<# } #>
				<# } ); #>
			</div>
		</div>
		<?php
	}
}
PK!g���!modules/video-playlist/module.phpnu�[���<?php
namespace ElementorPro\Modules\VideoPlaylist;

use ElementorPro\Base\Module_Base;
use Elementor\Core\Experiments\Manager;
use ElementorPro\Plugin;


if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {
	public function get_name() {
		return 'video-playlist';
	}

	public function get_widgets() {
		return [
			'Video_Playlist',
		];
	}
}
PK!b�#.modules/screenshots/render-mode-screenshot.phpnu�[���<?php
namespace ElementorPro\Modules\Screenshots;

use Elementor\Core\Frontend\RenderModes\Render_Mode_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Render_Mode_Screenshot extends Render_Mode_Base {
	const ENQUEUE_SCRIPTS_PRIORITY = 1000;

	public static function get_name() {
		return 'screenshot';
	}

	public function prepare_render() {
		parent::prepare_render();

		show_admin_bar( false );

		remove_filter(
			'the_content',
			[ \ElementorPro\Modules\ThemeBuilder\Module::instance()->get_locations_manager(), 'builder_wrapper' ],
			9999999
		);

		add_filter( 'template_include', [ $this, 'filter_template' ] );
	}

	public function filter_template() {
		return ELEMENTOR_PATH . 'modules/page-templates/templates/canvas.php';
	}

	public function is_static() {
		return true;
	}

	public function enqueue_scripts() {
		$suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG || defined( 'ELEMENTOR_TESTS' ) && ELEMENTOR_PRO_TESTS ) ? '' : '.min';

		wp_enqueue_script(
			'dom-to-image',
			ELEMENTOR_PRO_ASSETS_URL . "/lib/dom-to-image/js/dom-to-image{$suffix}.js",
			[],
			'2.6.0',
			true
		);

		wp_enqueue_script(
			'html2canvas',
			ELEMENTOR_PRO_ASSETS_URL . "/lib/html2canvas/js/html2canvas{$suffix}.js",
			[],
			'1.0.0-rc.5',
			true
		);

		wp_enqueue_script(
			'elementor-screenshot',
			ELEMENTOR_PRO_ASSETS_URL . "/js/screenshot{$suffix}.js",
			[ 'dom-to-image', 'html2canvas' ],
			ELEMENTOR_PRO_VERSION,
			true
		);

		$config = [
			'selector' => '.elementor-' . $this->post_id,
			'nonce' => wp_create_nonce( Module::SCREENSHOT_PROXY_NONCE_ACTION ),
			'home_url' => home_url(),
			'post_id' => $this->post_id,
		];

		wp_add_inline_script( 'elementor-screenshot', 'var ElementorScreenshotConfig = ' . wp_json_encode( $config ) . ';' );
	}
}
PK!�[W���modules/screenshots/module.phpnu�[���<?php
namespace ElementorPro\Modules\Screenshots;

use ElementorPro\Base\Module_Base;
use Elementor\Core\Frontend\Render_Mode_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {
	const SCREENSHOT_PROXY_NONCE_ACTION = 'screenshot_proxy';

	/**
	 * Module name.
	 *
	 * @return string
	 */
	public function get_name() {
		return 'screenshots';
	}

	/**
	 * Creates proxy for css and images,
	 * dom to image libraries cannot load content from another origin.
	 *
	 * @param $url
	 *
	 * @return string
	 */
	public function get_proxy_data( $url ) {
		$response = wp_remote_get( utf8_decode( $url ) );

		if ( is_wp_error( $response ) ) {
			return '';
		}

		$content_type = wp_remote_retrieve_headers( $response )->offsetGet( 'content-type' );

		header( 'content-type: ' . $content_type );

		return wp_remote_retrieve_body( $response );
	}

	/**
	 * Save screenshot and attached it to the post.
	 *
	 * @param $data
	 *
	 * @return bool|string
	 * @throws \Exception
	 */
	public function ajax_save( $data ) {
		if ( empty( $data['screenshot'] ) || empty( $data['post_id'] ) ) {
			return false;
		}

		$screenshot = new Screenshot( $data['post_id'], $data['screenshot'] );

		$screenshot
			->create_dir()
			->upload()
			->remove_old_attachment()
			->create_new_attachment()
			->unmark_as_failed();

		return $screenshot->get_screenshot_url();
	}

	/**
	 * Remove the screenshot image and the attachment data.
	 *
	 * @param $data
	 *
	 * @return bool
	 */
	public function ajax_delete( $data ) {
		if ( empty( $data['post_id'] ) ) {
			return false;
		}

		$screenshot = new Screenshot( $data['post_id'] );

		$screenshot
			->remove_old_attachment()
			->remove_old_post_meta()
			->unmark_as_failed();

		return true;
	}

	/**
	 * Mark screenshot as failed.
	 *
	 * @param $data
	 *
	 * @return bool
	 */
	public function ajax_screenshot_failed( $data ) {
		if ( empty( $data['post_id'] ) ) {
			return false;
		}

		$screenshot = new Screenshot( $data['post_id'] );

		$screenshot->mark_as_failed();

		return true;
	}

	/**
	 * Extends the json of the templates.
	 * sets a screenshot as a thumbnail if exists, and if not will add a url to generate screenshot for
	 * the specific template.
	 *
	 * @param array $template
	 *
	 * @return array
	 */
	public function extend_templates_json_structure( $template ) {

		if ( ! empty( $template['thumbnail'] ) ) {
			return $template;
		}

		$attachment_data = get_post_meta( $template['id'], Screenshot::POST_META_KEY, true );

		if ( isset( $attachment_data['url'] ) ) {
			$template['thumbnail'] = $attachment_data['url'];

			return $template;
		}

		$failed_to_create_screenshot = get_post_meta( $template['id'], Screenshot::FAILED_POST_META_KEY, true );

		// If it failed to create screenshot before, it should not set screenshot_url, and should not try
		// to create another screenshot until the next edit of the template.
		if ( ! $failed_to_create_screenshot ) {
			$template['screenshot_url'] = Render_Mode_Screenshot::get_url( $template['id'] );
		}

		return $template;
	}

	/**
	 * @param \WP_Query $query
	 */
	public function filter_screenshots_from_attachments_query( \WP_Query $query ) {
		global $pagenow, $typenow;

		if ( 'upload.php' !== $pagenow || 'attachment' !== $typenow ) {
			return;
		}

		$query->query_vars['meta_query'] = [
			[
				'key' => Screenshot::IS_SCREENSHOT_POST_META_KEY,
				'compare' => 'NOT EXISTS',
			],
		];
	}

	public function filter_screenshots_from_ajax_attachments_query( $query ) {
		$query['meta_query'][] = [
			'key' => Screenshot::IS_SCREENSHOT_POST_META_KEY,
			'compare' => 'NOT EXISTS',
		];

		return $query;
	}

	/**
	 * Register screenshots action.
	 *
	 * @param \Elementor\Core\Common\Modules\Ajax\Module $ajax_manager
	 */
	public function register_ajax_actions( $ajax_manager ) {
		$ajax_manager->register_ajax_action( 'screenshot_save', [ $this, 'ajax_save' ] );
		$ajax_manager->register_ajax_action( 'screenshot_delete', [ $this, 'ajax_delete' ] );
		$ajax_manager->register_ajax_action( 'screenshot_failed', [ $this, 'ajax_screenshot_failed' ] );
	}

	/**
	 * @param Render_Mode_Manager $manager
	 *
	 * @throws \Exception
	 */
	public function register_render_mode( Render_Mode_Manager $manager ) {
		$manager->register_render_mode( Render_Mode_Screenshot::class );
	}

	/**
	 * Check and validate proxy mode.
	 *
	 * @param array $query_params
	 *
	 * @return bool
	 * @throws \Requests_Exception_HTTP_400
	 * @throws \Requests_Exception_HTTP_403
	 */
	protected function is_screenshot_proxy_mode( array $query_params ) {
		$is_proxy = isset( $query_params['screenshot_proxy'] );

		if ( $is_proxy ) {
			if ( ! wp_verify_nonce( $query_params['nonce'], self::SCREENSHOT_PROXY_NONCE_ACTION ) ) {
				throw new \Requests_Exception_HTTP_403();
			}

			if ( ! $query_params['href'] ) {
				throw new \Requests_Exception_HTTP_400();
			}
		}

		return $is_proxy;
	}

	/**
	 * Module constructor.
	 *
	 * @throws \Requests_Exception_HTTP_400
	 * @throws \Requests_Exception_HTTP_403
	 */
	public function __construct() {
		parent::__construct();

		if ( $this->is_screenshot_proxy_mode( $_GET ) ) { // phpcs:ignore -- Checking nonce inside the method.
			echo $this->get_proxy_data( $_GET['href'] ); // phpcs:ignore -- Nonce was checked on the above method
			die;
		}

		add_action( 'elementor/frontend/render_mode/register', [ $this, 'register_render_mode' ] );
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );
		add_action( 'parse_query', [ $this, 'filter_screenshots_from_attachments_query' ] );
		add_filter( 'ajax_query_attachments_args', [ $this, 'filter_screenshots_from_ajax_attachments_query' ] );
		add_filter( 'elementor-pro/site-editor/data/template', [ $this, 'extend_templates_json_structure' ] );
	}
}
PK!�#_QQ"modules/screenshots/screenshot.phpnu�[���<?php
namespace ElementorPro\Modules\Screenshots;

use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Screenshot {

	const POST_META_KEY = '_elementor_screenshot';
	const IS_SCREENSHOT_POST_META_KEY = '_elementor_is_screenshot';
	const FAILED_POST_META_KEY = '_elementor_screenshot_failed';

	const SCREENSHOT_DIR = 'elementor/screenshots';

	/**
	 * @var int
	 */
	protected $post_id;

	/**
	 * @var string
	 */
	protected $base64_image;

	/**
	 * @var string
	 */
	protected $file_name;

	/**
	 * @var array
	 */
	protected $upload_bits;

	/**
	 * Screenshot constructor.
	 *
	 * @param int $post_id
	 * @param string $base64_image
	 */
	public function __construct( $post_id, $base64_image = null ) {
		$this->post_id = $post_id;
		$this->base64_image = $base64_image;
	}

	/**
	 * Creates the directory if needed + add index.html file for security reasons.
	 *
	 * @return $this
	 */
	public function create_dir() {
		$dir = wp_upload_dir()['basedir'] . '/' . self::SCREENSHOT_DIR;
		$html_file = $dir . '/index.html';

		if ( file_exists( $html_file ) ) {
			return $this;
		};

		if ( ! file_exists( $dir ) ) {
			wp_mkdir_p( $dir );
		}

		touch( $html_file );

		return $this;
	}

	/**
	 * Uploads the base64 image it self.
	 *
	 * TODO: Use Upload Manager when ready.
	 *
	 * @return $this
	 * @throws \Exception
	 */
	public function upload() {
		if ( ! $this->base64_image ) {
			throw new \Exception( 'Cannot upload an image with out base64_image' );
		}

		$file_content = substr( $this->base64_image, strlen( 'data:image/png;base64,' ) );

		add_filter( 'wp_unique_filename', [ $this, 'get_file_name' ] );
		add_filter( 'upload_dir', [ $this, 'extend_upload_dirs_array' ] );

		$this->upload_bits = wp_upload_bits(
			$this->get_file_name(),
			null,
			base64_decode( $file_content )
		);

		remove_filter( 'wp_unique_filename', [ $this, 'get_file_name' ] );
		remove_filter( 'upload_dir', [ $this, 'extend_upload_dirs_array' ] );

		return $this;
	}

	/**
	 * Removes the old attachment if there is an old screenshot image.
	 *
	 * @return $this
	 */
	public function remove_old_attachment() {
		$post_meta = get_post_meta( $this->post_id, self::POST_META_KEY, true );

		if ( ! $post_meta ) {
			return $this;
		}

		wp_delete_attachment( $post_meta['id'] );

		return $this;
	}

	/**
	 * Removes the old post meta of the current post.
	 *
	 * @return $this
	 */
	public function remove_old_post_meta() {
		delete_post_meta( $this->post_id, self::POST_META_KEY );

		return $this;
	}

	/**
	 * Creates an attachment to the new screenshot and attach it to the original post
	 * via post_meta.
	 *
	 * @return $this
	 * @throws \Exception
	 */
	public function create_new_attachment() {
		$upload_bits = $this->get_upload_bits();

		$info = wp_check_filetype( $upload_bits['file'] );
		$post_mime_type = null;

		if ( $info ) {
			$post_mime_type = $info['type'];
		}

		$attachment_id = wp_insert_attachment(
			[
				'post_title' => $this->get_file_name(),
				'guid' => $upload_bits['url'],
				'post_mime_type' => $post_mime_type,
				'meta_input' => [
					self::IS_SCREENSHOT_POST_META_KEY => true,
				],
			],
			$upload_bits['file'],
			$this->post_id
		);

		update_post_meta( $this->post_id, self::POST_META_KEY, [
			'id' => $attachment_id,
			'url' => $upload_bits['url'],
		] );

		return $this;
	}

	/**
	 * Mark the post that the screenshot capture was failed.
	 *
	 * @return $this
	 */
	public function mark_as_failed() {
		update_post_meta(
			$this->post_id,
			self::FAILED_POST_META_KEY,
			( new \DateTime() )->format( 'Y-m-d H:i:s' )
		);

		return $this;
	}

	/**
	 * Remove the failed_screenshot post meta.
	 *
	 * @return $this
	 */
	public function unmark_as_failed() {
		delete_post_meta( $this->post_id, self::FAILED_POST_META_KEY );

		return $this;
	}

	/**
	 * Get the file name,
	 * if not exists will generate it.
	 *
	 * @return string
	 */
	public function get_file_name() {
		if ( ! $this->file_name ) {
			$now = ( new \DateTime() )->format( 'Y-m-d-H-i-s' );
			$random_str = Utils::generate_random_string();

			$this->file_name = "Elementor-post-screenshot_{$this->post_id}_{$now}_{$random_str}.png";
		}

		return $this->file_name;
	}

	/**
	 * Extend and change the upload_dirs original method
	 * to update the current screenshot to custom directory.
	 *
	 * @param $upload_dirs
	 *
	 * @return array
	 */
	public function extend_upload_dirs_array( $upload_dirs ) {
		return array_merge( $upload_dirs, [
			'subdir' => $subdir = self::SCREENSHOT_DIR,
			'path' => "{$upload_dirs['basedir']}/{$subdir}",
			'url' => "{$upload_dirs['baseurl']}/{$subdir}",
		] );
	}

	/**
	 * Get wp_upload_bits result.
	 *
	 * This method will be throw an exception if was called before actually upload a screenshot.
	 *
	 * @return array
	 * @throws \Exception
	 */
	protected function get_upload_bits() {
		if ( ! $this->upload_bits ) {
			throw new \Exception( 'File was not uploaded yet' );
		}

		return $this->upload_bits;
	}

	/**
	 * Get the url of the screenshot.
	 *
	 * @return string
	 * @throws \Exception
	 */
	public function get_screenshot_url() {
		return $this->get_upload_bits()['url'];
	}
}
PK!�7�11.modules/woocommerce/documents/product-post.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Documents;

use Elementor\Core\DocumentTypes\Post;
use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Post extends Post {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['cpt'] = [
			'product',
		];

		return $properties;
	}

	/**
	 * @since  2.0.0
	 * @access public
	 */
	public function get_name() {
		return 'product-post';
	}

	/**
	 * @since  2.0.0
	 * @access public
	 * @static
	 */
	public static function get_title() {
		return esc_html__( 'Product Post', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Product Posts', 'elementor-pro' );
	}

	protected static function get_editor_panel_categories() {
		$categories = parent::get_editor_panel_categories();

		unset( $categories['theme-elements-single'] );

		$categories = Utils::array_inject(
			$categories,
			'theme-elements',
			[
				'woocommerce-elements-single' => [
					'title' => esc_html__( 'Product', 'elementor-pro' ),
					'active' => false,
				],
			]
		);

		return $categories;
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'single product';

		return $config;
	}
}
PK!6F%1modules/woocommerce/documents/product-archive.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Documents;

use ElementorPro\Modules\ThemeBuilder\Documents\Archive;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Archive extends Archive {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'archive';
		$properties['condition_type'] = 'product_archive';

		return $properties;
	}

	public static function get_type() {
		return 'product-archive';
	}

	public static function get_title() {
		return esc_html__( 'Products Archive', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Products Archives', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-products';
	}

	/**
	 * Fix for thumbnail name that is different from editor type.
	 *
	 * @return string
	 */
	protected static function get_site_editor_thumbnail_url() {
		return ELEMENTOR_ASSETS_URL . 'images/app/site-editor/products.svg';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Products Archive Template?', 'elementor-pro' ),
			'content' => esc_html__( 'A products archive template allows you to easily design the layout and style of your WooCommerce shop page or other product archive pages - those pages that show a list of products, which may be filtered by terms such as categories, tags, etc.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple products archive templates, and assign each to different categories of products. This gives you the freedom to customize the appearance for each type of product being shown.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-products-archive',
			'video_url' => 'https://www.youtube.com/embed/cQLeirgkguA',
		];
	}

	public function enqueue_scripts() {
		// In preview mode it's not a real Woocommerce page - enqueue manually.
		if ( Plugin::elementor()->preview->is_preview_mode( $this->get_main_id() ) ) {
			wp_enqueue_script( 'woocommerce' );
		}
	}

	public function get_container_attributes() {
		$attributes = parent::get_container_attributes();

		$attributes['class'] .= ' product';

		return $attributes;
	}

	public function filter_body_classes( $body_classes ) {
		$body_classes = parent::filter_body_classes( $body_classes );

		if ( get_the_ID() === $this->get_main_id() || Plugin::elementor()->preview->is_preview_mode( $this->get_main_id() ) ) {
			$body_classes[] = 'woocommerce';
		}

		return $body_classes;
	}

	public static function get_preview_as_default() {
		return 'post_type_archive/product';
	}

	public static function get_preview_as_options() {
		$post_type_archives = [];
		$taxonomies = [];
		$post_type = 'product';

		$post_type_object = get_post_type_object( $post_type );

		$post_type_archives[ 'post_type_archive/' . $post_type ] = $post_type_object->label . ' ' . esc_html__( 'Archive', 'elementor-pro' );

		$post_type_taxonomies = get_object_taxonomies( $post_type, 'objects' );

		$post_type_taxonomies = wp_filter_object_list( $post_type_taxonomies, [
			'public' => true,
			'show_in_nav_menus' => true,
		] );

		foreach ( $post_type_taxonomies as $slug => $object ) {
			$taxonomies[ 'taxonomy/' . $slug ] = $object->label . ' ' . esc_html__( 'Archive', 'elementor-pro' );
		}

		$options = [
			'search' => esc_html__( 'Search Results', 'elementor-pro' ),
		];

		$options += $taxonomies + $post_type_archives;

		return [
			'archive' => [
				'label' => esc_html__( 'Archive', 'elementor-pro' ),
				'options' => $options,
			],
		];
	}

	public function __construct( array $data = [] ) {
		parent::__construct( $data );

		add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 11 );
	}

	protected static function get_editor_panel_categories() {
		$categories = [
			'woocommerce-elements-archive' => [
				'title' => esc_html__( 'Product Archive', 'elementor-pro' ),
			],
			// Move to top as active.
			'woocommerce-elements' => [
				'title' => esc_html__( 'WooCommerce', 'elementor-pro' ),
				'active' => true,
			],
		];

		$categories += parent::get_editor_panel_categories();

		unset( $categories['theme-elements-archive'] );

		return $categories;
	}

	public static function get_editor_panel_config() {
		$config = parent::get_editor_panel_config();
		$config['widgets_settings']['theme-archive-title']['categories'][] = 'woocommerce-elements-archive';

		return $config;
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'preview_type',
			[
				'default' => 'post_type_archive/product',
			]
		);
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'product archive';

		return $config;
	}
}
PK!+Rl\||)modules/woocommerce/documents/product.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Documents;

use Elementor\Controls_Manager;
use ElementorPro\Modules\ThemeBuilder\Documents\Single_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product extends Single_Base {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'single';
		$properties['condition_type'] = 'product';

		return $properties;
	}

	public static function get_type() {
		return 'product';
	}

	public static function get_title() {
		return esc_html__( 'Single Product', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Single Products', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-single-product';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Single Product Template?', 'elementor-pro' ),
			'content' => esc_html__( 'A single product template allows you to easily design the layout and style of WooCommerce single product pages, and apply that template to various conditions that you assign.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple single product templates, and assign each to different types of products, enabling a custom design for each group of similar products.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-product',
			'video_url' => 'https://www.youtube.com/embed/PjhoB1RWkBM',
		];
	}

	public static function get_editor_panel_config() {
		$config = parent::get_editor_panel_config();
		$config['widgets_settings']['woocommerce-product-content'] = [
			'show_in_panel' => true,
		];

		return $config;
	}

	public function enqueue_scripts() {
		// In preview mode it's not a real Product page - enqueue manually.
		if ( Plugin::elementor()->preview->is_preview_mode( $this->get_main_id() ) ) {
			global $product;

			if ( is_singular( 'product' ) ) {
				$product = wc_get_product();
			}

			if ( current_theme_supports( 'wc-product-gallery-zoom' ) ) {
				wp_enqueue_script( 'zoom' );
			}
			if ( current_theme_supports( 'wc-product-gallery-slider' ) ) {
				wp_enqueue_script( 'flexslider' );
			}
			if ( current_theme_supports( 'wc-product-gallery-lightbox' ) ) {
				wp_enqueue_script( 'photoswipe-ui-default' );
				wp_enqueue_style( 'photoswipe-default-skin' );
				add_action( 'wp_footer', 'woocommerce_photoswipe' );
			}
			wp_enqueue_script( 'wc-single-product' );

			wp_enqueue_style( 'photoswipe' );
			wp_enqueue_style( 'photoswipe-default-skin' );
			wp_enqueue_style( 'photoswipe-default-skin' );
			wp_enqueue_style( 'woocommerce_prettyPhoto_css' );
		}
	}

	public function get_depended_widget() {
		return Plugin::elementor()->widgets_manager->get_widget_types( 'woocommerce-product-data-tabs' );
	}

	public function get_container_attributes() {
		$attributes = parent::get_container_attributes();

		$attributes['class'] .= ' product';

		return $attributes;
	}

	public function filter_body_classes( $body_classes ) {
		$body_classes = parent::filter_body_classes( $body_classes );

		if ( get_the_ID() === $this->get_main_id() || Plugin::elementor()->preview->is_preview_mode( $this->get_main_id() ) ) {
			$body_classes[] = 'woocommerce';
		}

		return $body_classes;
	}

	public function before_get_content() {
		parent::before_get_content();

		global $product;
		if ( ! is_object( $product ) ) {
			$product = wc_get_product( get_the_ID() );
		}

		do_action( 'woocommerce_before_single_product' );
	}

	public function after_get_content() {
		parent::after_get_content();

		do_action( 'woocommerce_after_single_product' );
	}

	public function print_content() {
		if ( post_password_required() ) {
			// PHPCS - It's a safe WP template function
			echo get_the_password_form(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			return;
		}

		parent::print_content();
	}

	public function __construct( array $data = [] ) {
		parent::__construct( $data );

		add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_scripts' ], 11 );
	}

	protected static function get_editor_panel_categories() {
		$categories = [
			'woocommerce-elements-single' => [
				'title' => esc_html__( 'Product', 'elementor-pro' ),

			],
			// Move to top as active.
			'woocommerce-elements' => [
				'title' => esc_html__( 'WooCommerce', 'elementor-pro' ),
				'active' => true,
			],
		];

		$categories += parent::get_editor_panel_categories();

		unset( $categories['theme-elements-single'] );

		return $categories;
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'preview_type',
			[
				'type' => Controls_Manager::HIDDEN,
				'default' => 'single/product',
			]
		);

		$latest_posts = get_posts( [
			'posts_per_page' => 1,
			'post_type' => 'product',
		] );

		if ( ! empty( $latest_posts ) ) {
			$this->update_control(
				'preview_id',
				[
					'default' => $latest_posts[0]->ID,
				]
			);
		}
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'single product';

		return $config;
	}
}
PK!�⫚0'0'*modules/woocommerce/widgets/categories.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Categories extends Base_Widget {

	protected $_has_template_content = false;

	public function get_name() {
		return 'wc-categories';
	}

	public function get_title() {
		return esc_html__( 'Product Categories', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-categories';
	}

	public function get_keywords() {
		return [ 'woocommerce-elements', 'shop', 'store', 'categories', 'product' ];
	}

	public function get_categories() {
		return [
			'woocommerce-elements',
		];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_columns_responsive_control();

		$this->add_control(
			'number',
			[
				'label' => esc_html__( 'Categories Count', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '4',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_filter',
			[
				'label' => esc_html__( 'Query', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'source',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Show All', 'elementor-pro' ),
					'by_id' => esc_html__( 'Manual Selection', 'elementor-pro' ),
					'by_parent' => esc_html__( 'By Parent', 'elementor-pro' ),
					'current_subcategories' => esc_html__( 'Current Subcategories', 'elementor-pro' ),
				],
				'label_block' => true,
			]
		);

		$categories = get_terms( 'product_cat' );

		$options = [];
		foreach ( $categories as $category ) {
			$options[ $category->term_id ] = $category->name;
		}

		$this->add_control(
			'categories',
			[
				'label' => esc_html__( 'Categories', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'options' => $options,
				'default' => [],
				'label_block' => true,
				'multiple' => true,
				'condition' => [
					'source' => 'by_id',
				],
			]
		);

		$parent_options = [ '0' => esc_html__( 'Only Top Level', 'elementor-pro' ) ] + $options;
		$this->add_control(
			'parent',
			[
				'label' => esc_html__( 'Parent', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '0',
				'options' => $parent_options,
				'condition' => [
					'source' => 'by_parent',
				],
			]
		);

		$this->add_control(
			'hide_empty',
			[
				'label' => esc_html__( 'Hide Empty', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'label_on' => 'Hide',
				'label_off' => 'Show',
			]
		);

		$this->add_control(
			'orderby',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'name',
				'options' => [
					'name' => esc_html__( 'Name', 'elementor-pro' ),
					'slug' => esc_html__( 'Slug', 'elementor-pro' ),
					'description' => esc_html__( 'Description', 'elementor-pro' ),
					'count' => esc_html__( 'Count', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'order',
			[
				'label' => esc_html__( 'Order', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'desc',
				'options' => [
					'asc' => esc_html__( 'ASC', 'elementor-pro' ),
					'desc' => esc_html__( 'DESC', 'elementor-pro' ),
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_products_style',
			[
				'label' => esc_html__( 'Products', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'products_class',
			[
				'type' => Controls_Manager::HIDDEN,
				'default' => 'wc-products',
				'prefix_class' => 'elementor-products-grid elementor-',
			]
		);

		$this->add_control(
			'column_gap',
			[
				'label'     => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type'      => Controls_Manager::SLIDER,
				'default'   => [
					'size' => 20,
				],
				'range'     => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products  ul.products' => 'grid-column-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label'     => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type'      => Controls_Manager::SLIDER,
				'default'   => [
					'size' => 40,
				],
				'range'     => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products  ul.products' => 'grid-row-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label'     => esc_html__( 'Alignment', 'elementor-pro' ),
				'type'      => Controls_Manager::CHOOSE,
				'options'   => [
					'left'   => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon'  => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon'  => 'eicon-text-align-center',
					],
					'right'  => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon'  => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-product-loop-item--align-',
				'selectors' => [
					'{{WRAPPER}} .product' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_image_style',
			[
				'label'     => esc_html__( 'Image', 'elementor-pro' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name'     => 'image_border',
				'selector' => '{{WRAPPER}} a > img',
			]
		);

		$this->add_responsive_control(
			'image_border_radius',
			[
				'label'      => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type'       => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors'  => [
					'{{WRAPPER}} a > img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'image_spacing',
			[
				'label'      => esc_html__( 'Spacing', 'elementor-pro' ),
				'type'       => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors'  => [
					'{{WRAPPER}} a > img' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_title_style',
			[
				'label'     => esc_html__( 'Title', 'elementor-pro' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'title_color',
			[
				'label'     => esc_html__( 'Color', 'elementor-pro' ),
				'type'      => Controls_Manager::COLOR,
				'global'    => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}} .woocommerce .woocommerce-loop-category__title' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'     => 'title_typography',
				'global'    => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .woocommerce .woocommerce-loop-category__title',
			]
		);

		$this->add_control(
			'heading_count_style',
			[
				'label'     => esc_html__( 'Count', 'elementor-pro' ),
				'type'      => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'count_color',
			[
				'label'     => esc_html__( 'Color', 'elementor-pro' ),
				'type'      => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-loop-category__title .count' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name'     => 'count_typography',
				'global'    => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .woocommerce-loop-category__title .count',
			]
		);

		$this->end_controls_section();
	}

	private function get_shortcode() {
		$settings = $this->get_settings();

		$attributes = [
			'number' => $settings['number'],
			'columns' => $settings['columns'],
			'hide_empty' => ( 'yes' === $settings['hide_empty'] ) ? 1 : 0,
			'orderby' => $settings['orderby'],
			'order' => $settings['order'],
		];

		if ( 'by_id' === $settings['source'] ) {
			$attributes['ids'] = implode( ',', $settings['categories'] );
		} elseif ( 'by_parent' === $settings['source'] ) {
			$attributes['parent'] = $settings['parent'];
		} elseif ( 'current_subcategories' === $settings['source'] ) {
			$attributes['parent'] = get_queried_object_id();
		}

		$this->add_render_attribute( 'shortcode', $attributes );

		$shortcode = sprintf( '[product_categories %s]', $this->get_render_attribute_string( 'shortcode' ) );

		return $shortcode;
	}

	public function render() {
		$product_categories_html = do_shortcode( $this->get_shortcode() );

		if ( $product_categories_html ) {
			$product_categories_html = str_replace( '<ul class="products', '<ul class="products elementor-grid', $product_categories_html );

			echo wp_kses_post( $product_categories_html );
		}
	}

	public function render_plain_content() {
		echo wp_kses_post( $this->get_shortcode() );
	}
}
PK!|�-modules/woocommerce/widgets/product-stock.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Stock extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-stock';
	}

	public function get_title() {
		return esc_html__( 'Product Stock', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-stock';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'stock', 'quantity', 'product' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_stock_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .stock' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .stock',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		global $product;
		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		// PHPCS - the method wc_get_stock_html is safe.
		echo wc_get_stock_html( $product ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	public function render_plain_content() {}
}
PK!C��k��-modules/woocommerce/widgets/product-price.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Price extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-price';
	}

	public function get_title() {
		return esc_html__( 'Product Price', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-price';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'price', 'product', 'sale' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_price_style',
			[
				'label' => esc_html__( 'Price', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_responsive_control(
			'text_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .price' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '.woocommerce {{WRAPPER}} .price',
			]
		);

		$this->add_control(
			'sale_heading',
			[
				'label' => esc_html__( 'Sale Price', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sale_price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .price ins' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sale_price_typography',
				'selector' => '.woocommerce {{WRAPPER}} .price ins',
			]
		);

		$this->add_control(
			'price_block',
			[
				'label' => esc_html__( 'Stacked', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'yes',
				'prefix_class' => 'elementor-product-price-block-',
			]
		);

		$this->add_responsive_control(
			'sale_price_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}}:not(.elementor-product-price-block-yes) del' => 'margin-right: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}}:not(.elementor-product-price-block-yes) del' => 'margin-left: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-product-price-block-yes del' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		global $product;
		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		wc_get_template( '/single-product/price.php' );
	}

	public function render_plain_content() {}
}
PK!kj1oo(modules/woocommerce/widgets/elements.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Modules\QueryControl\Module as QueryModule;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Elements extends Base_Widget {

	public function get_name() {
		return 'wc-elements';
	}

	public function get_title() {
		return esc_html__( 'WooCommerce Pages', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-pages';
	}

	public function on_export( $element ) {
		unset( $element['settings']['product_id'] );

		return $element;
	}

	public function get_keywords() {
		return [
			'woocommerce',
			'shop',
			'store',
			'cart',
			'checkout',
			'account',
			'order tracking',
			'shortcode',
			'product',
		];
	}

	public function get_categories() {
		return [
			'woocommerce-elements',
		];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_product',
			[
				'label' => esc_html__( 'Element', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'element',
			[
				'label' => esc_html__( 'Page', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => '— ' . esc_html__( 'Select', 'elementor-pro' ) . ' —',
					'woocommerce_cart' => esc_html__( 'Cart Page', 'elementor-pro' ),
					'product_page' => esc_html__( 'Single Product Page', 'elementor-pro' ),
					'woocommerce_checkout' => esc_html__( 'Checkout Page', 'elementor-pro' ),
					'woocommerce_order_tracking' => esc_html__( 'Order Tracking Form', 'elementor-pro' ),
					'woocommerce_my_account' => esc_html__( 'My Account', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'product_id',
			[
				'label' => esc_html__( 'Product', 'elementor-pro' ),
				'type' => QueryModule::QUERY_CONTROL_ID,
				'options' => [],
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_POST,
					'query' => [
						'post_type' => [ 'product' ],
					],
				],
				'condition' => [
					'element' => [ 'product_page' ],
				],
			]
		);

		$this->end_controls_section();
	}

	private function get_shortcode() {
		$settings = $this->get_settings();

		switch ( $settings['element'] ) {
			case '':
				return '';
				break;

			case 'product_page':
				if ( ! empty( $settings['product_id'] ) ) {
					$product_data = get_post( $settings['product_id'] );
					$product = ! empty( $product_data ) && in_array( $product_data->post_type, [ 'product', 'product_variation' ] ) ? wc_setup_product_data( $product_data ) : false;
				}

				if ( empty( $product ) && current_user_can( 'manage_options' ) ) {
					return esc_html__( 'Please set a valid product', 'elementor-pro' );
				}

				$this->add_render_attribute( 'shortcode', 'id', $settings['product_id'] );
				break;

			case 'woocommerce_cart':
			case 'woocommerce_checkout':
			case 'woocommerce_order_tracking':
				break;
		}

		$shortcode = sprintf(
			'[%s %s]',
			esc_html( $settings['element'] ),
			$this->get_render_attribute_string( 'shortcode' )
		);

		return $shortcode;
	}

	protected function render() {
		$shortcode = $this->get_shortcode();

		if ( empty( $shortcode ) ) {
			return;
		}

		Module::instance()->add_products_post_class_filter();

		$html = do_shortcode( $shortcode );

		if ( 'woocommerce_checkout' === $this->get_settings( 'element' ) && '<div class="woocommerce"></div>' === $html ) {
			$html = '<div class="woocommerce">' . esc_html__( 'Your cart is currently empty.', 'elementor-pro' ) . '</div>';
		}

		// PHPCS - Woocommerce output
		echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

		Module::instance()->remove_products_post_class_filter();
	}

	public function render_plain_content() {
		// PHPCS - Already escaped in get_shortcode
		echo $this->get_shortcode(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK!hP�s��(modules/woocommerce/widgets/products.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Query;
use ElementorPro\Modules\Woocommerce\Classes\Products_Renderer;
use ElementorPro\Modules\Woocommerce\Classes\Current_Query_Renderer;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Products extends Products_Base {

	public function get_name() {
		return 'woocommerce-products';
	}

	public function get_title() {
		return esc_html__( 'Products', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-products';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'product', 'archive' ];
	}

	public function get_categories() {
		return [
			'woocommerce-elements',
		];
	}

	protected function register_query_controls() {
		$this->start_controls_section(
			'section_query',
			[
				'label' => esc_html__( 'Query', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_group_control(
			Group_Control_Query::get_type(),
			[
				'name' => Products_Renderer::QUERY_CONTROL_NAME,
				'post_type' => 'product',
				'presets' => [ 'include', 'exclude', 'order' ],
				'fields_options' => [
					'post_type' => [
						'default' => 'product',
						'options' => [
							'current_query' => esc_html__( 'Current Query', 'elementor-pro' ),
							'product' => esc_html__( 'Latest Products', 'elementor-pro' ),
							'sale' => esc_html__( 'Sale', 'elementor-pro' ),
							'featured' => esc_html__( 'Featured', 'elementor-pro' ),
							'by_id' => _x( 'Manual Selection', 'Posts Query Control', 'elementor-pro' ),
						],
					],
					'orderby' => [
						'default' => 'date',
						'options' => [
							'date' => esc_html__( 'Date', 'elementor-pro' ),
							'title' => esc_html__( 'Title', 'elementor-pro' ),
							'price' => esc_html__( 'Price', 'elementor-pro' ),
							'popularity' => esc_html__( 'Popularity', 'elementor-pro' ),
							'rating' => esc_html__( 'Rating', 'elementor-pro' ),
							'rand' => esc_html__( 'Random', 'elementor-pro' ),
							'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
						],
					],
					'exclude' => [
						'options' => [
							'current_post' => esc_html__( 'Current Post', 'elementor-pro' ),
							'manual_selection' => esc_html__( 'Manual Selection', 'elementor-pro' ),
							'terms' => esc_html__( 'Term', 'elementor-pro' ),
						],
					],
					'include' => [
						'options' => [
							'terms' => esc_html__( 'Term', 'elementor-pro' ),
						],
					],
				],
				'exclude' => [
					'posts_per_page',
					'exclude_authors',
					'authors',
					'offset',
					'related_fallback',
					'related_ids',
					'query_id',
					'avoid_duplicates',
					'ignore_sticky_posts',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
			]
		);

		$this->add_columns_responsive_control();

		$this->add_control(
			'rows',
			[
				'label' => esc_html__( 'Rows', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => Products_Renderer::DEFAULT_COLUMNS_AND_ROWS,
				'render_type' => 'template',
				'range' => [
					'px' => [
						'max' => 20,
					],
				],
			]
		);

		$this->add_control(
			'paginate',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
			]
		);

		$this->add_control(
			'allow_order',
			[
				'label' => esc_html__( 'Allow Order', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'paginate' => 'yes',
				],
			]
		);

		$this->add_control(
			'wc_notice_frontpage',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'Ordering is not available if this widget is placed in your front page. Visible on frontend only.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
				'condition' => [
					'paginate' => 'yes',
					'allow_order' => 'yes',
				],
			]
		);

		$this->add_control(
			'show_result_count',
			[
				'label' => esc_html__( 'Show Result Count', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'paginate' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->register_query_controls();

		parent::register_controls();
	}

	protected function get_shortcode_object( $settings ) {
		if ( 'current_query' === $settings[ Products_Renderer::QUERY_CONTROL_NAME . '_post_type' ] ) {
			$type = 'current_query';
			return new Current_Query_Renderer( $settings, $type );
		}
		$type = 'products';
		return new Products_Renderer( $settings, $type );
	}

	protected function render() {

		if ( WC()->session ) {
			wc_print_notices();
		}

		// For Products_Renderer.
		if ( ! isset( $GLOBALS['post'] ) ) {
			$GLOBALS['post'] = null; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
		}

		$settings = $this->get_settings();

		$shortcode = $this->get_shortcode_object( $settings );

		$content = $shortcode->get_content();

		if ( $content ) {
			$content = str_replace( '<ul class="products', '<ul class="products elementor-grid', $content );

			// PHPCS - Woocommerce output
			echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		} elseif ( $this->get_settings( 'nothing_found_message' ) ) {
			echo '<div class="elementor-nothing-found elementor-products-nothing-found">' . esc_html( $this->get_settings( 'nothing_found_message' ) ) . '</div>';
		}
	}

	public function render_plain_content() {}
}
PK!wbF�0�0,modules/woocommerce/widgets/product-meta.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Meta extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-meta';
	}

	public function get_title() {
		return esc_html__( 'Product Meta', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-meta';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'meta', 'data', 'product' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_meta_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'inline',
				'options' => [
					'table' => esc_html__( 'Table', 'elementor-pro' ),
					'stacked' => esc_html__( 'Stacked', 'elementor-pro' ),
					'inline' => esc_html__( 'Inline', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-woo-meta--view-',
			]
		);

		$this->add_responsive_control(
			'space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-woo-meta--view-inline) .product_meta .detail-container:not(:last-child)' => 'padding-bottom: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}}:not(.elementor-woo-meta--view-inline) .product_meta .detail-container:not(:first-child)' => 'margin-top: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}}.elementor-woo-meta--view-inline .product_meta .detail-container' => 'margin-right: calc({{SIZE}}{{UNIT}}/2); margin-left: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}}.elementor-woo-meta--view-inline .product_meta' => 'margin-right: calc(-{{SIZE}}{{UNIT}}/2); margin-left: calc(-{{SIZE}}{{UNIT}}/2)',
					'body:not(.rtl) {{WRAPPER}}.elementor-woo-meta--view-inline .detail-container:after' => 'right: calc( (-{{SIZE}}{{UNIT}}/2) + (-{{divider_weight.SIZE}}px/2) )',
					'body:not.rtl {{WRAPPER}}.elementor-woo-meta--view-inline .detail-container:after' => 'left: calc( (-{{SIZE}}{{UNIT}}/2) - ({{divider_weight.SIZE}}px/2) )',
				],
			]
		);

		$this->add_control(
			'divider',
			[
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'selectors' => [
					'{{WRAPPER}} .product_meta .detail-container:not(:last-child):after' => 'content: ""',
				],
				'return_value' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'divider_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
				],
				'default' => 'solid',
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-woo-meta--view-inline) .product_meta .detail-container:not(:last-child):after' => 'border-top-style: {{VALUE}}',
					'{{WRAPPER}}.elementor-woo-meta--view-inline .product_meta .detail-container:not(:last-child):after' => 'border-left-style: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 1,
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 20,
					],
				],
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-woo-meta--view-inline) .product_meta .detail-container:not(:last-child):after' => 'border-top-width: {{SIZE}}{{UNIT}}; margin-bottom: calc(-{{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}}.elementor-woo-meta--view-inline .product_meta .detail-container:not(:last-child):after' => 'border-left-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'divider_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'default' => [
					'unit' => '%',
				],
				'condition' => [
					'divider' => 'yes',
					'view!' => 'inline',
				],
				'selectors' => [
					'{{WRAPPER}} .product_meta .detail-container:not(:last-child):after' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'divider_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 100,
					],
					'%' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'condition' => [
					'divider' => 'yes',
					'view' => 'inline',
				],
				'selectors' => [
					'{{WRAPPER}} .product_meta .detail-container:not(:last-child):after' => 'height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ddd',
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .product_meta .detail-container:not(:last-child):after' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_text_style',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'selector' => '{{WRAPPER}}',
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_link_style',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'link_typography',
				'selector' => '{{WRAPPER}} a',
			]
		);

		$this->add_control(
			'link_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} a' => 'color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_product_meta_captions',
			[
				'label' => esc_html__( 'Captions', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_category_caption',
			[
				'label' => esc_html__( 'Category', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'category_caption_single',
			[
				'label' => esc_html__( 'Singular', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Category', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'category_caption_plural',
			[
				'label' => esc_html__( 'Plural', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Categories', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_tag_caption',
			[
				'label' => esc_html__( 'Tag', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'tag_caption_single',
			[
				'label' => esc_html__( 'Singular', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Tag', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tag_caption_plural',
			[
				'label' => esc_html__( 'Plural', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'Tags', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_sku_caption',
			[
				'label' => esc_html__( 'SKU', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sku_caption',
			[
				'label' => esc_html__( 'SKU', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'SKU', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'sku_missing_caption',
			[
				'label' => esc_html__( 'Missing', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'N/A', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();
	}

	private function get_plural_or_single( $single, $plural, $count ) {
		return 1 === $count ? $single : $plural;
	}

	protected function render() {
		global $product;

		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		$sku = esc_html( $product->get_sku() );

		$settings = $this->get_settings_for_display();
		$sku_caption = ! empty( $settings['sku_caption'] ) ? esc_html( $settings['sku_caption'] ) : esc_html__( 'SKU', 'elementor-pro' );
		$sku_missing = ! empty( $settings['sku_missing_caption'] ) ? esc_html( $settings['sku_missing_caption'] ) : esc_html__( 'N/A', 'elementor-pro' );
		$category_caption_single = ! empty( $settings['category_caption_single'] ) ? $settings['category_caption_single'] : esc_html__( 'Category', 'elementor-pro' );
		$category_caption_plural = ! empty( $settings['category_caption_plural'] ) ? $settings['category_caption_plural'] : esc_html__( 'Categories', 'elementor-pro' );
		$tag_caption_single = ! empty( $settings['tag_caption_single'] ) ? $settings['tag_caption_single'] : esc_html__( 'Tag', 'elementor-pro' );
		$tag_caption_plural = ! empty( $settings['tag_caption_plural'] ) ? $settings['tag_caption_plural'] : esc_html__( 'Tags', 'elementor-pro' );
		?>
		<div class="product_meta">

			<?php do_action( 'woocommerce_product_meta_start' ); ?>

			<?php if ( wc_product_sku_enabled() && ( $sku || $product->is_type( 'variable' ) ) ) : ?>
				<span class="sku_wrapper detail-container">
					<span class="detail-label">
						<?php // PHPCS - the $sku_caption variable is safe. ?>
						<?php echo $sku_caption; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					</span>
					<span class="sku">
						<?php // PHPCS - the $sku && $sku_missing variables are safe. ?>
						<?php echo $sku ? $sku : $sku_missing; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					</span>
				</span>
			<?php endif; ?>

			<?php if ( count( $product->get_category_ids() ) ) : ?>
				<span class="posted_in detail-container"><span class="detail-label"><?php echo esc_html( $this->get_plural_or_single( $category_caption_single, $category_caption_plural, count( $product->get_category_ids() ) ) ); ?></span> <span class="detail-content"><?php echo get_the_term_list( $product->get_id(), 'product_cat', '', ', ' ); ?></span></span>
			<?php endif; ?>

			<?php if ( count( $product->get_tag_ids() ) ) : ?>
				<span class="tagged_as detail-container"><span class="detail-label"><?php echo esc_html( $this->get_plural_or_single( $tag_caption_single, $tag_caption_plural, count( $product->get_tag_ids() ) ) ); ?></span> <span class="detail-content"><?php echo get_the_term_list( $product->get_id(), 'product_tag', '', ', ' ); ?></span></span>
			<?php endif; ?>

			<?php do_action( 'woocommerce_product_meta_end' ); ?>

		</div>
		<?php
	}

	public function render_plain_content() {}
}
PK!λ�7�
�
;modules/woocommerce/widgets/archive-products-deprecated.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Archive_Products_Deprecated
 * @deprecated 2.4.1 use Archive_Products
 */
class Archive_Products_Deprecated extends Products {

	public function get_name() {
		return 'woocommerce-archive-products';
	}

	public function get_title() {
		return esc_html__( 'Archive Products (deprecated)', 'elementor-pro' );
	}

	public function get_categories() {
		return [
			'woocommerce-elements-archive',
		];
	}

	/* Deprecated Widget */
	public function show_in_panel() {
		return false;
	}

	protected function register_controls() {
		$this->deprecated_notice( Plugin::get_title(), '2.5.0', '', esc_html__( 'Archive Products', 'elementor-pro' ) );

		parent::register_controls();

		$this->start_injection( [
			'at' => 'before',
			'of' => 'columns',
		] );

		$this->add_control(
			'wc_notice_do_not_use_customizer',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'Note that these layout settings will override settings made in Appearance > Customize', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->end_injection();

		$this->update_control(
			'rows',
			[
				'default' => 4,
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'paginate',
			[
				'default' => 'yes',
			]
		);

		$this->update_control(
			'section_query',
			[
				'type' => 'hidden',
			]
		);

		$this->update_control(
			'query_post_type',
			[
				'default' => 'current_query',
			]
		);

		$this->start_controls_section(
			'section_advanced',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'nothing_found_message',
			[
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'It seems we can\'t find what you\'re looking for.', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_nothing_found_style',
			[
				'tab' => Controls_Manager::TAB_STYLE,
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'condition' => [
					'nothing_found_message!' => '',
				],
			]
		);

		$this->add_control(
			'nothing_found_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-products-nothing-found' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'nothing_found_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-products-nothing-found',
			]
		);

		$this->end_controls_section();
	}

	public function render_no_results() {
		echo '<div class="elementor-nothing-found elementor-products-nothing-found">' . esc_html( $this->get_settings( 'nothing_found_message' ) ) . '</div>';
	}

	protected function render() {
		add_action( 'woocommerce_shortcode_products_loop_no_results', [ $this, 'render_no_results' ] );

		parent::render();
	}
}
PK!������/modules/woocommerce/widgets/single-elements.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Single_Elements extends Base_Widget {

	public function get_name() {
		return 'wc-single-elements';
	}

	public function get_title() {
		return esc_html__( 'Woo - Single Elements', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-woocommerce';
	}

	/* Deprecated Widget */
	public function show_in_panel() {
		return false;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_product',
			[
				'label' => esc_html__( 'Element', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'element',
			[
				'label' => esc_html__( 'Element', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => '— ' . esc_html__( 'Select', 'elementor-pro' ) . ' —',
					'woocommerce_output_product_data_tabs' => esc_html__( 'Data Tabs', 'elementor-pro' ),
					'woocommerce_template_single_title' => esc_html__( 'Title', 'elementor-pro' ),
					'woocommerce_template_single_rating' => esc_html__( 'Rating', 'elementor-pro' ),
					'woocommerce_template_single_price' => esc_html__( 'Price', 'elementor-pro' ),
					'woocommerce_template_single_excerpt' => esc_html__( 'Excerpt', 'elementor-pro' ),
					'woocommerce_template_single_meta' => esc_html__( 'Meta', 'elementor-pro' ),
					'woocommerce_template_single_sharing' => esc_html__( 'Sharing', 'elementor-pro' ),
					'woocommerce_show_product_sale_flash' => esc_html__( 'Sale Flash', 'elementor-pro' ),
					'woocommerce_product_additional_information_tab' => esc_html__( 'Additional Information Tab', 'elementor-pro' ),
					'woocommerce_upsell_display' => esc_html__( 'Upsell', 'elementor-pro' ),
					'wc_get_stock_html' => esc_html__( 'Stock Status', 'elementor-pro' ),
				],
			]
		);

		$this->end_controls_section();
	}

	public function remove_description_tab( $tabs ) {
		unset( $tabs['description'] );

		return $tabs;
	}

	private function get_element() {
		global $product;
		$product = wc_get_product();
		$settings = $this->get_settings();
		$html = '';

		switch ( $settings['element'] ) {
			case '':
				break;

			case 'wc_get_stock_html':
				$html = wc_get_stock_html( $product );
				break;

			case 'woocommerce_output_product_data_tabs':
				add_filter( 'woocommerce_product_tabs', [ $this, 'remove_description_tab' ], 11 /* after default tabs*/ );
				ob_start();
				woocommerce_output_product_data_tabs();
				// Wrap with the internal woocommerce `product` class
				$html = '<div class="product">' . ob_get_clean() . '</div>';
				remove_filter( 'woocommerce_product_tabs', [ $this, 'remove_description_tab' ], 11 );
				break;

			case 'woocommerce_template_single_rating':
				$is_edit_mode = Plugin::elementor()->editor->is_edit_mode();

				if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
					if ( $is_edit_mode ) {
						$html = esc_html__( 'Admin Notice:', 'elementor-pro' ) . ' ' . esc_html__( 'Please enable the Review Rating', 'elementor-pro' );
					}
					break;
				}

				ob_start();
				woocommerce_template_single_rating();
				$html = ob_get_clean();
				if ( '' === $html && $is_edit_mode ) {
					$html = esc_html__( 'Admin Notice:', 'elementor-pro' ) . ' ' . esc_html__( 'No Rating Reviews', 'elementor-pro' );
				}
				break;

			default:
				if ( is_callable( $settings['element'] ) ) {
					$html = call_user_func( $settings['element'] );
				}
		}

		return $html;
	}

	protected function render() {
		// PHPCS - the method get_content is safe.
		echo $this->get_element(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	public function render_plain_content() {}
}
PK!C?M���.modules/woocommerce/widgets/product-rating.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Rating extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-rating';
	}

	public function get_title() {
		return esc_html__( 'Product Rating', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-rating';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'rating', 'review', 'comments', 'stars', 'product' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_rating_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'star_color',
			[
				'label' => esc_html__( 'Star Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .star-rating' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'empty_star_color',
			[
				'label' => esc_html__( 'Empty Star Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .star-rating::before' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'link_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-review-link' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-review-link',
			]
		);

		$this->add_control(
			'star_size',
			[
				'label' => esc_html__( 'Star Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => 'em',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 4,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .star-rating' => 'font-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'default' => [
					'unit' => 'em',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 4,
						'step' => 0.1,
					],
					'px' => [
						'min' => 0,
						'max' => 50,
						'step' => 1,
					],
				],
				'selectors' => [
					'.woocommerce:not(.rtl) {{WRAPPER}} .star-rating' => 'margin-right: {{SIZE}}{{UNIT}}',
					'.woocommerce.rtl {{WRAPPER}} .star-rating' => 'margin-left: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'prefix_class' => 'elementor-product-rating--align-',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		if ( ! post_type_supports( 'product', 'comments' ) ) {
			return;
		}

		global $product;
		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		wc_get_template( 'single-product/rating.php' );
	}

	public function render_plain_content() {}
}
PK!~q"
��$modules/woocommerce/widgets/cart.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use ElementorPro\Plugin;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Background;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Cart extends Base_Widget {

	public function get_name() {
		return 'woocommerce-cart';
	}

	public function get_title() {
		return esc_html__( 'Cart', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-woo-cart';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'cart' ];
	}

	public function get_categories() {
		return [ 'theme-elements', 'woocommerce-elements' ];
	}

	public function get_script_depends() {
		return [
			'wc-cart',
			'selectWoo',
		];
	}

	public function get_style_depends() {
		return [ 'select2' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'General', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'cart_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'two-column' => esc_html__( 'Two columns', 'elementor-pro' ),
					'one-column' => esc_html__( 'One column', 'elementor-pro' ),
				],
				'default' => 'two-column',
				'prefix_class' => 'e-cart-layout-',
			]
		);

		$this->add_control(
			'sticky_right_column',
			[
				'label' => esc_html__( 'Sticky Right Column', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'description' => esc_html__( 'This option will allow the right column (e.g, Cart Totals) to be sticky while scrolling.', 'elementor-pro' ),
				'frontend_available' => true,
				'render_type' => 'none',
				'condition' => [
					'cart_layout!' => 'one-column',
				],
			]
		);

		$this->add_control(
			'sticky_right_column_offset',
			[
				'label' => esc_html__( 'Offset', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'frontend_available' => true,
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'sticky_right_column',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'cart_layout',
							'operator' => '!==',
							'value' => 'one-column',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_order_summary',
			[
				'label' => esc_html__( 'Order Summary', 'elementor-pro' ),
				'condition' => [
					'update_cart_automatically' => '',
				],
			]
		);

		$this->add_control(
			'update_cart_button_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Update Cart Button', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'update_cart_button_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Update Cart', 'elementor-pro' ),
				'default' => esc_html__( 'Update Cart', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'coupons' ) ) {

			$this->start_controls_section(
				'section_coupon',
				[
					'label' => esc_html__( 'Coupon', 'elementor-pro' ),
				]
			);

			$this->add_control(
				'apply_coupon_heading',
				[
					'type' => Controls_Manager::HEADING,
					'label' => esc_html__( 'Apply Coupon Button', 'elementor-pro' ),
				]
			);

			$this->add_control(
				'apply_coupon_button_text',
				[
					'label' => esc_html__( 'Text', 'elementor-pro' ),
					'type' => Controls_Manager::TEXT,
					'dynamic' => [
						'active' => true,
					],
					'placeholder' => esc_html__( 'Apply coupon', 'elementor-pro' ),
					'default' => esc_html__( 'Apply coupon', 'elementor-pro' ),
				]
			);

			$this->end_controls_section();
		}

		$this->start_controls_section(
			'section_totals',
			[
				'label' => esc_html__( 'Totals', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'totals_section_title',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Cart Totals', 'elementor-pro' ),
				'default' => esc_html__( 'Cart Totals', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'totals_section_title_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--totals-title-alignment: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'update_shipping_button_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Update Shipping Button', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'update_shipping_button_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Update', 'elementor-pro' ),
				'default' => esc_html__( 'Update', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'checkout_button_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkout Button', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'checkout_button_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Proceed to Checkout', 'elementor-pro' ),
				'default' => esc_html__( 'Proceed to Checkout', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'checkout_button_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justify', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .wc-proceed-to-checkout' => '{{VALUE}};',
				],
				'selectors_dictionary' => [
					'start' => '--place-order-title-alignment: flex-start; --checkout-button-width: fit-content;',
					'center' => '--place-order-title-alignment: center; --checkout-button-width: fit-content;',
					'end' => '--place-order-title-alignment: flex-end; --checkout-button-width: fit-content;',
					'justify' => '--place-order-title-alignment: stretch; --checkout-button-width: 100%;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_additional_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'update_cart_automatically',
			[
				'label' => esc_html__( 'Update Cart Automatically', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}};',
				],
				'selectors_dictionary' => [
					'yes' => '--update-cart-automatically-display: none;',
				],
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->add_control(
			'update_cart_automatically_description',
			[
				'raw' => esc_html__( 'Changes to the cart will update automatically.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_style',
			[
				'label' => esc_html__( 'Sections', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'sections_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-cart-section',
			]
		);

		$this->add_control(
			'sections_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'sections_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-cart-section' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'sections_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'sections_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-margin: {{BOTTOM}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_typography',
			[
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'sections_typography',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'sections_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_titles_typography',
				'selector' => '{{WRAPPER}} .cart_totals h2',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'sections_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .cart_totals h2',
			]
		);

		$this->add_responsive_control(
			'sections_title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-title-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sections_descriptions_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Descriptions', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'sections_descriptions_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} ' => '--sections-descriptions-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_descriptions_typography',
				'selector' => '{{WRAPPER}} .e-cart-content, {{WRAPPER}} .woocommerce-shipping-destination, {{WRAPPER}} .shipping-calculator-button',
			]
		);

		$this->add_responsive_control(
			'sections_descriptions_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-descriptions-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sections_links_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Links', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'links_colors' );

		$this->start_controls_tab( 'links_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'links_normal_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'links_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'links_hover_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'sections_radio_buttons_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Radio Buttons', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_radio_buttons_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-radio-buttons-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_radio_buttons_typography',
				'selector' => '{{WRAPPER}} #shipping_method li label',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_forms',
			[
				'label' => esc_html__( 'Forms', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'forms_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-rows-gap: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'forms_field_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Field', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_field_typography',
				'selector' => '{{WRAPPER}} .coupon .input-text, {{WRAPPER}} .cart-collaterals .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-selection--single',
			]
		);

		$this->start_controls_tabs( 'forms_fields_styles' );

		$this->start_controls_tab( 'forms_fields_normal_styles', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_fields_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-normal-color: {{VALUE}};',
					'.e-woo-select2-wrapper .select2-results__option' => 'color: {{VALUE}};',
					// style select2 arrow
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow b' => 'border-color: {{VALUE}} transparent transparent transparent;',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_normal_background',
				'selector' => '{{WRAPPER}} .coupon .input-text, {{WRAPPER}} .e-cart-totals .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-selection--single',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .coupon .input-text, {{WRAPPER}} .e-cart-totals .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-selection--single',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_fields_focus_styles', [ 'label' => esc_html__( 'Focus', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_fields_focus_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-color: {{VALUE}}',
					'.e-woo-select2-wrapper .select2-results__option:focus' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_focus_background',
				'selector' => '{{WRAPPER}} .coupon .input-text:focus, {{WRAPPER}} .e-cart-totals .input-text:focus, {{WRAPPER}} select:focus, {{WRAPPER}} .select2-selection--single:focus',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .coupon .input-text:focus, {{WRAPPER}} .e-cart-totals .input-text:focus, {{WRAPPER}} select:focus, {{WRAPPER}} .select2-selection--single:focus',
			]
		);

		$this->add_control(
			'forms_fields_focus_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_fields_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'forms_fields_focus_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'forms_fields_border',
				'selector' => '{{WRAPPER}} .coupon .input-text, {{WRAPPER}} .cart-collaterals .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-selection--single',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_fields_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_fields_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} ' => '--forms-fields-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					// style select2
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__rendered' => 'line-height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); padding-left: {{LEFT}}{{UNIT}}; padding-right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow' => 'height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single' => 'height: auto;',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'forms_button_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_button_typography',
				'selector' => '{{WRAPPER}} .shop_table .button',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'forms_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button',
			]
		);

		$this->start_controls_tabs( 'forms_buttons_styles' );

		$this->start_controls_tab( 'forms_buttons_normal_styles', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_buttons_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_normal_background',
				'selector' => '{{WRAPPER}} .shop_table .button',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_buttons_hover_styles', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_buttons_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_hover_background',
				'selector' => '{{WRAPPER}} .shop_table .button:hover, {{WRAPPER}} .shop_table .button:disabled[disabled]:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button:hover',
			]
		);

		$this->add_control(
			'forms_buttons_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'forms_buttons_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_buttons_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .shop_table .button' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'forms_buttons_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-color: {{VALUE}};',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'forms_buttons_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_buttons_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; --forms-buttons-width: auto;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'tabs_order_summary',
			[
				'label' => esc_html__( 'Order Summary', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'order_summary_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-rows-gap-top: calc( {{SIZE}}{{UNIT}}/2 ); --order-summary-rows-gap-bottom: calc( {{SIZE}}{{UNIT}}/2 );',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'order_summary_titles_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-cart-form' => '--order-summary-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_title_typography',
				'selector' => '{{WRAPPER}} .e-shop-table .cart th, {{WRAPPER}} .e-shop-table .cart td:before',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'order_summary_title_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-shop-table .cart th, {{WRAPPER}} .e-shop-table .cart td:before',
			]
		);

		$this->add_responsive_control(
			'order_summary_title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-title-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'order_summary_items_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Items', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_items_typography',
				'selector' => '{{WRAPPER}} .cart td span, {{WRAPPER}} .cart td, {{WRAPPER}} .input-text.qty',
			]
		);

		$this->add_control(
			'order_summary_variations_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Variations', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_variations_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-variations-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_variations_typography',
				'selector' => '{{WRAPPER}} .product-name .variation',
			]
		);

		$this->add_control(
			'order_summary_product_link_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Product Link', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'order_summary' );

		$this->start_controls_tab( 'order_summary_normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'product_link_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--product-link-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'order_summary_hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'product_link_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--product-link-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'order_summary_divider_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Dividers', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'order_summary_items_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-items-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_items_divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-items-divider-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'order_summary_quantity_border_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Quantity Borders', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'order_summary_quantity_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-quantity-border-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_quantity_border_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-quantity-border-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'order_summary_remove_icon_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Remove icon', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'order_summary_remove_icon' );

		$this->start_controls_tab( 'order_summary_remove_icon_normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'order_summary_remove_icon_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-remove-icon-normal-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'order_summary_remove_icon_hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'order_summary_remove_icon_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-remove-icon-hover-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_totals',
			[
				'label' => esc_html__( 'Totals', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'totals_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--totals-rows-gap-top: calc( {{SIZE}}{{UNIT}}/2 ); --totals-rows-gap-bottom: calc( {{SIZE}}{{UNIT}}/2 );',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'totals_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles & Totals', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'totals_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--totals-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'totals_typography',
				'selector' => '{{WRAPPER}} .cart_totals .shop_table td:before, {{WRAPPER}} .cart_totals .shop_table td .woocommerce-Price-amount',
			]
		);

		$this->add_control(
			'totals_divider_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Divider Total', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'totals_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--totals-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'totals_divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--totals-divider-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_checkout_button',
			[
				'label' => esc_html__( 'Checkout Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'checkout_button_typography',
				'selector' => '{{WRAPPER}} .checkout-button',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'checkout_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .checkout-button',
			]
		);

		$this->start_controls_tabs( 'checkout_button_styles' );

		$this->start_controls_tab( 'checkout_button_normal_styles', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'checkout_button_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'checkout_button_normal_background',
				'selector' => '{{WRAPPER}} .checkout-button',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'checkout_button_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .checkout-button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'checkout_button_hover_styles', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'checkout_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'checkout_button_hover_background',
				'selector' => '{{WRAPPER}} .checkout-button:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'checkout_button_hover_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .checkout-button:hover',
			]
		);

		$this->add_control(
			'checkout_button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-hover-border-color: {{VALUE}}',
				],
				'condition' => [
					'checkout_button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'checkout_button_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'checkout_button_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'checkout_button_border',
				'selector' => '{{WRAPPER}} .checkout-button',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'checkout_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'checkout_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; --checkout-button-width: fit-content;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_customize',
			[
				'label' => esc_html__( 'Customize', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$customize_options = [];

		$customize_options += [
			'customize_order_summary' => esc_html__( 'Order Summary', 'elementor-pro' ),
		];

		if ( $this->is_wc_feature_active( 'coupons' ) ) {
			$customize_options += [
				'customize_coupon' => esc_html__( 'Coupon', 'elementor-pro' ),
			];
		}

		$customize_options += [
			'customize_totals' => esc_html__( 'Totals', 'elementor-pro' ),
		];

		$this->add_control(
			'section_cart_show_customize_elements',
			[
				'label' => esc_html__( 'Select sections of the cart to customize:', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => $customize_options,
				'render_type' => 'ui',
				'label_block' => true,
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_customize_order_summary',
			[
				'label' => esc_html__( 'Customize: Order Summary', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_cart_show_customize_elements' => 'customize_order_summary',
				],
			]
		);

		$this->add_control(
			'order_summary_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_section_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'order_summary_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-shop-table',
				'separator' => 'after',
			]
		);

		$this->add_control(
			'order_summary_section_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'order_summary_section_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'order_summary_section_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'order_summary_section_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'order_summary_section_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_section_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_section_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_section_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-shop-table' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_customize_totals',
			[
				'label' => esc_html__( 'Customize: Totals', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_cart_show_customize_elements' => 'customize_totals',
				],
			]
		);

		$this->add_control(
			'customize_totals_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'sections_totals_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'totals_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-cart-totals',
			]
		);

		$this->add_control(
			'totals_section_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'totals_section_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'totals_section_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'totals_section_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'totals_section_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'totals_section_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'checkout_sections_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'totals_section_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'totals_section_titles_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'totals_section_titles_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart_totals' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'totals_section_titles_typography',
				'selector' => '{{WRAPPER}} .cart_totals h2',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'totals_section_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .cart_totals h2',
				'separator' => 'after',
			]
		);

		$this->add_control(
			'totals_section_content_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'totals_section_content_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--sections-descriptions-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'totals_section_content_typography',
				'selector' => '{{WRAPPER}} .e-cart-totals .e-cart-content, {{WRAPPER}} .e-cart-totals .woocommerce-shipping-destination, {{WRAPPER}} .e-cart-totals .shipping-calculator-button',
			]
		);

		$this->add_control(
			'totals_section_link_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Link', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'totals_section_links_colors' );

		$this->start_controls_tab( 'totals_section_links_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'totals_section_links_normal_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--links-normal-color: {{VALUE}} !important;',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'totals_section_links_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'totals_section_links_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-cart-totals' => '--links-hover-color: {{VALUE}} !important;',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_tabs_customize_coupon',
			[
				'label' => esc_html__( 'Customize: Coupon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_cart_show_customize_elements' => 'customize_coupon',
				],
			]
		);

		$this->add_control(
			'coupon_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_coupon_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'customize_coupon_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .coupon',
			]
		);

		$this->add_control(
			'customize_coupon_section_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'customize_coupon_section_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .coupon' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'customize_coupon_section_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'customize_coupon_section_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'customize_coupon_section_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'customize_coupon_section_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'customize_coupon_section_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'customize_coupon_section_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .coupon' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .e-cart__container' => 'grid-row-gap: {{BOTTOM}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->end_controls_section();
	}

	/**
	 * Init Gettext Modifications
	 *
	 * Sets the `$gettext_modifications` property used with the `filter_gettext()` in the extended Base_Widget.
	 *
	 * @since 3.5.0
	 */
	protected function init_gettext_modifications() {
		$instance = $this->get_settings_for_display();

		$this->gettext_modifications = [
			'Update cart' => isset( $instance['update_cart_button_text'] ) ? $instance['update_cart_button_text'] : '',
			'Cart totals' => isset( $instance['totals_section_title'] ) ? $instance['totals_section_title'] : '',
			'Proceed to checkout' => isset( $instance['checkout_button_text'] ) ? $instance['checkout_button_text'] : '',
			'Update' => isset( $instance['update_shipping_button_text'] ) ? $instance['update_shipping_button_text'] : '',
			'Apply coupon' => isset( $instance['apply_coupon_button_text'] ) ? $instance['apply_coupon_button_text'] : '',
		];
	}

	/**
	 * Render Woocommerce Cart Coupon Form
	 *
	 * A custom function to render a coupon form on the Cart widget. The default WC coupon form
	 * was removed in this file's render() method.
	 *
	 * We are doing this in order to match the placement of the coupon form to the provided design.
	 *
	 * @since 3.5.0
	 */
	private function render_woocommerce_cart_coupon_form() {
		$settings = $this->get_settings_for_display();
		$button_classes = [ 'button', 'e-apply-coupon' ];
		if ( $settings['forms_buttons_hover_animation'] ) {
			$button_classes[] = 'elementor-animation-' . $settings['forms_buttons_hover_animation'];
		}
		$this->add_render_attribute(
			'button_coupon', [
				'class' => $button_classes,
				'name' => 'apply_coupon',
				'type' => 'submit',
			]
		);
		?>
		<div class="coupon e-cart-section shop_table">
			<div class="form-row coupon-col">
				<div class="coupon-col-start">
					<input type="text" name="coupon_code" class="input-text" id="coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'elementor-pro' ); ?>" />
				</div>
				<div class="coupon-col-end">
					<button <?php $this->print_render_attribute_string( 'button_coupon' ); ?> value="<?php esc_attr_e( 'Apply coupon', 'elementor-pro' ); ?>"><?php esc_attr_e( 'Apply coupon', 'elementor-pro' ); ?></button>
				</div>
				<?php do_action( 'woocommerce_cart_coupon' ); ?>
			</div>
		</div>
		<?php
	}

	public function hide_coupon_field_on_cart( $enabled ) {
		return is_cart() ? false : $enabled;
	}

	/**
	 * Woocommerce Before Cart
	 *
	 * Output containing elements. Callback function for the woocommerce_before_cart hook
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_before_cart() {
		?>
		<div class="e-cart__container">
						<!--open container-->
						<div class="e-cart__column e-cart__column-start">
							<!--open column-1-->
		<?php
	}

	/**
	 * Woocommerce Before Cart Table
	 *
	 * Output containing elements. Callback function for the woocommerce_before_cart_table hook
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_before_cart_table() {
		?>
		<div class="e-shop-table e-cart-section">
						<!--open shop table div -->
		<?php
	}

	/**
	 * Woocommerce After Cart Table
	 *
	 * Output containing elements. Callback function for the woocommerce_after_cart_table hook
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_after_cart_table() {
		?>
						</div>
					<!--close shop table div -->
					<div class="e-clear"></div>
		<?php
		if ( $this->is_wc_feature_active( 'coupons' ) ) {
			$this->render_woocommerce_cart_coupon_form();
		}
	}

	/**
	 * Woocommerce Before Cart Collaterals
	 *
	 * Output containing elements. * Callback function for the woocommerce_before_cart_collaterals hook
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_before_cart_collaterals() {
		?>
						<!--close column-1-->
						</div>
						<div class="e-cart__column e-cart__column-end">
							<!--open column-2-->
								<div class="e-cart__column-inner e-sticky-right-column">
									<!--open column-inner-->
									<div class="e-cart-totals e-cart-section">
										<!--open cart-totals-->
		<?php
	}

	/**
	 * Woocommerce After Cart
	 *
	 * Output containing elements. Callback function for the woocommerce_after_cart hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_after_cart() {
		?>
									<!--close cart-totals-->
									</div>
									<!--close column-inner-->
								</div>
							<!--close column-2-->
						</div>
						<!--close container-->
					</div>
		<?php
	}

	/**
	 * WooCommerce Get Remove URL.
	 *
	 * When in the Editor or (wp preview) and the uer clicks to remove an item from the cart, WooCommerce uses
	 * the`_wp_http_referer` url during the ajax call to genrate the new cart html. So when we're in the Editor
	 * or (wp preview) we modify the `_wp_http_referer` to use the `get_wp_preview_url()` which will have
	 * the new cart content.
	 *
	 * @since 3.5.0
	 *
	 * @param $url
	 * @return string
	 */
	public function woocommerce_get_remove_url( $url ) {
		$url_components = wp_parse_url( $url );

		if ( ! isset( $url_components['query'] ) ) {
			return $url;
		}

		$params = [];
		parse_str( html_entity_decode( $url_components['query'] ), $params );

		$params['_wp_http_referer'] = rawurlencode( Plugin::elementor()->documents->get_current()->get_wp_preview_url() );

		return add_query_arg( $params, get_site_url() );
	}

	/**
	 * The following disabling of cart coupon needs to be done this way so that
	 * we only disable the display of coupon interface in our cart widget and
	 * `wc_coupons_enabled()` can still be reliably used elsewhere.
	 */
	public function disable_cart_coupon() {
		add_filter( 'woocommerce_coupons_enabled', [ $this, 'cart_coupon_return_false' ], 90 );
	}
	public function enable_cart_coupon() {
		remove_filter( 'woocommerce_coupons_enabled', [ $this, 'cart_coupon_return_false' ], 90 );
	}
	public function cart_coupon_return_false() {
		return false;
	}

	protected function render() {
		$is_editor = Plugin::elementor()->editor->is_edit_mode();
		$is_preview = (
			isset( $_GET['preview'] )
			&& isset( $_GET['preview_id'] )
			&& isset( $_GET['preview_nonce'] )
			&& wp_verify_nonce( $_GET['preview_nonce'], 'post_preview_' . $_GET['preview_id'] )
		);

		/**
		 * Add actions & filters before displaying our Widget.
		 */
		add_filter( 'gettext', [ $this, 'filter_gettext' ], 20, 3 );

		add_action( 'woocommerce_before_cart', [ $this, 'woocommerce_before_cart' ] );
		add_action( 'woocommerce_after_cart_table', [ $this, 'woocommerce_after_cart_table' ] );
		add_action( 'woocommerce_before_cart_table', [ $this, 'woocommerce_before_cart_table' ] );
		add_action( 'woocommerce_before_cart_collaterals', [ $this, 'woocommerce_before_cart_collaterals' ] );
		add_action( 'woocommerce_after_cart', [ $this, 'woocommerce_after_cart' ] );
		// The following disabling of cart coupon needs to be done this way so that
		// we only disable the display of coupon interface in our cart widget and
		// `wc_coupons_enabled()` can still be reliably used elsewhere.
		add_action( 'woocommerce_cart_contents', [ $this, 'disable_cart_coupon' ] );
		add_action( 'woocommerce_after_cart_contents', [ $this, 'enable_cart_coupon' ] );

		if ( $is_editor || $is_preview ) {
			add_filter( 'woocommerce_get_remove_url', [ $this, 'woocommerce_get_remove_url' ] );
		}

		// Remove cross-sells in cart.
		remove_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );

		/**
		 * Display our Widget.
		 */
		echo do_shortcode( '[woocommerce_cart]' );

		/**
		 * Remove actions & filters after displaying our Widget.
		 */
		remove_filter( 'gettext', [ $this, 'filter_gettext' ], 20 );

		remove_action( 'woocommerce_before_cart', [ $this, 'woocommerce_before_cart' ] );
		remove_action( 'woocommerce_after_cart_table', [ $this, 'woocommerce_after_cart_table' ] );
		remove_action( 'woocommerce_before_cart_table', [ $this, 'woocommerce_before_cart_table' ] );
		remove_action( 'woocommerce_before_cart_collaterals', [ $this, 'woocommerce_before_cart_collaterals' ] );
		remove_action( 'woocommerce_after_cart', [ $this, 'woocommerce_after_cart' ] );
		remove_filter( 'woocommerce_coupons_enabled', [ $this, 'hide_coupon_field_on_cart' ] );
		remove_filter( 'woocommerce_get_remove_url', [ $this, 'woocommerce_get_remove_url' ] );
		remove_action( 'woocommerce_cart_contents', [ $this, 'disable_cart_coupon' ] );
		remove_action( 'woocommerce_after_cart_contents', [ $this, 'enable_cart_coupon' ] );
		add_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' );
	}
}
PK!
��\4\43modules/woocommerce/widgets/product-add-to-cart.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Add_To_Cart extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-add-to-cart';
	}

	public function get_title() {
		return esc_html__( 'Add To Cart', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-add-to-cart';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'cart', 'product', 'button', 'add to cart' ];
	}

	protected function render() {
		global $product;

		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		?>

		<div class="elementor-add-to-cart elementor-product-<?php echo esc_attr( wc_get_product()->get_type() ); ?>">
			<?php woocommerce_template_single_add_to_cart(); ?>
		</div>

		<?php
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_atc_button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'prefix_class' => 'elementor-add-to-cart%s--align-',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'selector' => '{{WRAPPER}} .cart button',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'button_border',
				'selector' => '{{WRAPPER}} .cart button',
				'exclude' => [ 'color' ],
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->start_controls_tabs( 'button_style_tabs' );

		$this->start_controls_tab( 'button_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'button_style_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button:hover' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_bg_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_border_color_hover',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .cart button:hover' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_transition',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0.2,
				],
				'range' => [
					'px' => [
						'max' => 2,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .cart button' => 'transition: all {{SIZE}}s',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_atc_quantity_style',
			[
				'label' => esc_html__( 'Quantity', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .quantity + .button' => 'margin-left: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .quantity + .button' => 'margin-right: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'quantity_typography',
				'selector' => '{{WRAPPER}} .quantity .qty',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'quantity_border',
				'selector' => '{{WRAPPER}} .quantity .qty',
				'exclude' => [ 'color' ],
			]
		);

		$this->add_control(
			'quantity_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'quantity_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->start_controls_tabs( 'quantity_style_tabs' );

		$this->start_controls_tab( 'quantity_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'quantity_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'quantity_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'quantity_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'quantity_style_focus',
			[
				'label' => esc_html__( 'Focus', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'quantity_text_color_focus',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty:focus' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'quantity_bg_color_focus',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty:focus' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'quantity_border_color_focus',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .quantity .qty:focus' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'quantity_transition',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0.2,
				],
				'range' => [
					'px' => [
						'max' => 2,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .quantity .qty' => 'transition: all {{SIZE}}s',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_atc_variations_style',
			[
				'label' => esc_html__( 'Variations', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'variations_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%' ],
				'default' => [
					'unit' => '%',
				],
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart .variations' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'variations_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart .variations' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'variations_space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations tr:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_variations_label_style',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'variations_label_color_focus',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations label' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'variations_label_typography',
				'selector' => '.woocommerce {{WRAPPER}} form.cart table.variations label',
			]
		);

		$this->add_control(
			'heading_variations_select_style',
			[
				'label' => esc_html__( 'Select field', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'variations_select_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations td.value select' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'variations_select_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations td.value:before' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'variations_select_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations td.value:before' => 'border: 1px solid {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'variations_select_typography',
				'selector' => '.woocommerce {{WRAPPER}} form.cart table.variations td.value select, .woocommerce div.product.elementor{{WRAPPER}} form.cart table.variations td.value:before',
			]
		);

		$this->add_control(
			'variations_select_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'.woocommerce {{WRAPPER}} form.cart table.variations td.value:before' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	public function render_plain_content() {}
}
PK!p�W�``.modules/woocommerce/widgets/product-images.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Images extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-images';
	}

	public function get_title() {
		return esc_html__( 'Product Images', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-images';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'image', 'product', 'gallery', 'lightbox' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_gallery_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'sale_flash',
			[
				'label' => esc_html__( 'Sale Flash', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'render_type' => 'template',
				'return_value' => 'yes',
				'default' => 'yes',
				'prefix_class' => '',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'image_border',
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper,
				.woocommerce {{WRAPPER}} .flex-viewport, .woocommerce {{WRAPPER}} .flex-control-thumbs img',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper,
					.woocommerce {{WRAPPER}} .flex-viewport' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .flex-viewport:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_thumbs_style',
			[
				'label' => esc_html__( 'Thumbnails', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'thumbs_border',
				'selector' => '.woocommerce {{WRAPPER}} .flex-control-thumbs img',
			]
		);

		$this->add_responsive_control(
			'thumbs_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .flex-control-thumbs img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'spacing_thumbs',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'.woocommerce {{WRAPPER}} .flex-control-thumbs li' => 'padding-right: calc({{SIZE}}{{UNIT}} / 2); padding-left: calc({{SIZE}}{{UNIT}} / 2); padding-bottom: {{SIZE}}{{UNIT}}',
					'.woocommerce {{WRAPPER}} .flex-control-thumbs' => 'margin-right: calc(-{{SIZE}}{{UNIT}} / 2); margin-left: calc(-{{SIZE}}{{UNIT}} / 2)',
				],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$settings = $this->get_settings_for_display();
		global $product;

		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		if ( 'yes' === $settings['sale_flash'] ) {
			wc_get_template( 'loop/sale-flash.php' );
		}
		wc_get_template( 'single-product/product-image.php' );

		// On render widget from Editor - trigger the init manually.
		if ( wp_doing_ajax() ) {
			?>
			<script>
				jQuery( '.woocommerce-product-gallery' ).each( function() {
					jQuery( this ).wc_product_gallery();
				} );
			</script>
			<?php
		}
	}
}
PK!�*��  3modules/woocommerce/widgets/products-deprecated.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Plugin;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Posts;
use ElementorPro\Modules\QueryControl\Module;
use ElementorPro\Modules\Woocommerce\Skins;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Products_Deprecated extends Products_Base {

	/**
	 * @var \WP_Query
	 */
	private $query = null;

	protected $_has_template_content = false;

	public function get_name() {
		return 'wc-products';
	}

	public function get_categories() {
		return [
			'woocommerce-elements',
		];
	}

	public function get_title() {
		return esc_html__( 'Woo - Products-', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-products';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'loop', 'query', 'product' ];
	}

	/* Deprecated Widget */
	public function show_in_panel() {
		return false;
	}

	public function on_export( $element ) {
		$element = Group_Control_Posts::on_export_remove_setting_from_element( $element, 'posts' );

		return $element;
	}

	public function get_query() {
		return $this->query;
	}

	protected function register_skins() {
		$this->add_skin( new Skins\Skin_Classic( $this ) );
	}

	protected function register_controls() {
		$this->deprecated_notice( Plugin::get_title(), '2.0.10', '', esc_html__( 'Products', 'elementor-pro' ) );

		$this->start_controls_section(
			'section_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'posts_per_page',
			[
				'label' => esc_html__( 'Products Count', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '4',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_filter',
			[
				'label' => esc_html__( 'Query', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_group_control(
			Group_Control_Posts::get_type(),
			[
				'name' => 'posts',
				'post_type' => 'product',
			]
		);

		$this->add_control(
			'advanced',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'filter_by',
			[
				'label' => esc_html__( 'Filter By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'featured' => esc_html__( 'Featured', 'elementor-pro' ),
					'sale' => esc_html__( 'Sale', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'orderby',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'date',
				'options' => [
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'price' => esc_html__( 'Price', 'elementor-pro' ),
					'popularity' => esc_html__( 'Popularity', 'elementor-pro' ),
					'rating' => esc_html__( 'Rating', 'elementor-pro' ),
					'rand' => esc_html__( 'Random', 'elementor-pro' ),
					'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'order',
			[
				'label' => esc_html__( 'Order', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'desc',
				'options' => [
					'asc' => esc_html__( 'ASC', 'elementor-pro' ),
					'desc' => esc_html__( 'DESC', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'exclude',
			[
				'label' => esc_html__( 'Exclude', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => [
					'current_post' => esc_html__( 'Current Post', 'elementor-pro' ),
					'manual_selection' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				],
				'label_block' => true,
			]
		);

		$this->add_control(
			'exclude_ids',
			[
				'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
				'type' => Module::QUERY_CONTROL_ID,
				'autocomplete' => [
					'object' => Module::QUERY_OBJECT_POST,
				],
				'options' => [],
				'label_block' => true,
				'multiple' => true,
				'condition' => [
					'exclude' => 'manual_selection',
				],
			]
		);

		$this->add_control(
			'avoid_duplicates',
			[
				'label' => esc_html__( 'Avoid Duplicates', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'description' => esc_html__( 'Set to Yes to avoid duplicate posts from showing up on the page. This only affects the frontend.', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		parent::register_controls();
	}

	public function query_posts() {
		$settings = $this->get_settings();
		/** @var Module $query_module */
		$query_module = Module::instance();
		$query_args = $query_module->get_query_args( 'posts', $settings );

		// Default ordering args
		$ordering_args = WC()->query->get_catalog_ordering_args( $settings['orderby'], $settings['order'] );

		$query_args['orderby'] = $ordering_args['orderby'];
		$query_args['order'] = $ordering_args['order'];

		if ( ! empty( $ordering_args['meta_key'] ) ) {
			$query_args['meta_key'] = $ordering_args['meta_key'];
		}

		if ( 'sale' === $settings['filter_by'] ) {
			// From WooCommerce `sale_products` shortcode
			$query_args['post__in'] = array_merge( [ 0 ], wc_get_product_ids_on_sale() );
		}

		if ( version_compare( WC()->version, '3.0.0', '>=' ) ) {
			$query_args = $this->get_wc_visibility_parse_query( $query_args );
		} else {
			$query_args = $this->get_wc_legacy_visibility_parse_query( $query_args );
		}

		$this->query = new \WP_Query( $query_args );
	}

	private function get_wc_visibility_parse_query( $query_args ) {
		$settings = $this->get_settings();
		$product_visibility_term_ids = wc_get_product_visibility_term_ids();

		if ( 'featured' === $settings['filter_by'] ) {
			$query_args['tax_query'][] = [
				'taxonomy' => 'product_visibility',
				'field' => 'term_taxonomy_id',
				'terms' => $product_visibility_term_ids['featured'],
			];
		}

		return $query_args;
	}

	private function get_wc_legacy_visibility_parse_query( $query_args ) {
		$settings = $this->get_settings();

		$query_args['meta_query'] = [
			[
				'key' => '_visibility',
				'value' => [ 'catalog', 'visible' ],
				'compare' => 'IN',
			],
		];

		if ( 'featured' === $settings['filter_by'] ) {
			// From WooCommerce `featured_products` shortcode
			$query_args['meta_query'][] = [
				'key' => '_featured',
				'value' => 'yes',
			];
		}

		return $query_args;
	}

	public function render_plain_content() {}
}
PK!5?�`0modules/woocommerce/widgets/archive-products.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Modules\Woocommerce\Classes\Products_Renderer;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Products extends Products {

	public function get_name() {
		return 'wc-archive-products';
	}

	public function get_title() {
		return esc_html__( 'Archive Products', 'elementor-pro' );
	}

	public function get_categories() {
		return [
			'woocommerce-elements-archive',
		];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->remove_responsive_control( 'columns' );
		$this->remove_responsive_control( 'rows' );
		$this->remove_control( 'orderby' );
		$this->remove_control( 'order' );

		$this->update_control(
			'products_class',
			[
				'prefix_class' => 'elementor-products-grid elementor-',
			]
		);

		// Should be kept as hidden since required for "allow_order"
		$this->update_control(
			'paginate',
			[
				'type' => 'hidden',
				'default' => 'yes',
			]
		);

		$this->update_control(
			'allow_order',
			[
				'default' => 'yes',
			]
		);

		$this->start_injection( [
			'at' => 'before',
			'of' => 'allow_order',
		] );

		if ( ! get_theme_support( 'woocommerce' ) ) {
			$this->add_control(
				'wc_notice_wc_not_supported',
				[
					'type' => Controls_Manager::RAW_HTML,
					'raw' => esc_html__( 'Looks like you are using WooCommerce, while your theme does not support it. Please consider switching themes.', 'elementor-pro' ),
					'content_classes' => 'elementor-panel-alert elementor-panel-alert-warning',
				]
			);
		}

		$this->add_control(
			'wc_notice_use_customizer',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'To change the Products Archive’s layout, go to Appearance > Customize.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'wc_notice_wrong_data',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The editor preview might look different from the live site. Please make sure to check the frontend.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->end_injection();

		$this->update_control(
			'show_result_count',
			[
				'default' => 'yes',
			]
		);

		$this->update_control(
			'section_query',
			[
				'type' => 'hidden',
			]
		);

		$this->update_control(
			Products_Renderer::QUERY_CONTROL_NAME . '_post_type',
			[
				'default' => 'current_query',
			]
		);

		$this->start_controls_section(
			'section_advanced',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'nothing_found_message',
			[
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'It seems we can\'t find what you\'re looking for.', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_nothing_found_style',
			[
				'tab' => Controls_Manager::TAB_STYLE,
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'condition' => [
					'nothing_found_message!' => '',
				],
			]
		);

		$this->add_control(
			'nothing_found_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-products-nothing-found' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'nothing_found_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-products-nothing-found',
			]
		);

		$this->end_controls_section();
	}
}
PK!)`#4����*modules/woocommerce/widgets/my-account.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use ElementorPro\Plugin;
use Elementor\Controls_Manager;
use Elementor\Repeater;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Background;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class My_Account extends Base_Widget {

	public function get_name() {
		return 'woocommerce-my-account';
	}

	public function get_title() {
		return esc_html__( 'My Account', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-my-account';
	}

	public function get_categories() {
		return [ 'theme-elements', 'woocommerce-elements' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_menu_icon_content',
			[
				'label' => esc_html__( 'Tabs', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tabs_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'vertical' => esc_html__( 'Vertical', 'elementor-pro' ),
					'horizontal' => esc_html__( 'Horizontal', 'elementor-pro' ),
				],
				'default' => 'vertical',
				'render_type' => 'template',
				'prefix_class' => 'e-my-account-tabs-',
			]
		);

		$this->add_responsive_control(
			'tabs_content_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tab-content-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'tabs_position',
			[
				'label' => esc_html__( 'Tabs Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
					'stretch' => [
						'title' => esc_html__( 'Stretch', 'elementor-pro' ),
						'icon' => 'eicon-h-align-stretch',
					],
				],
				'condition' => [
					'tabs_layout' => 'horizontal',
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => '--tabs-container-justify-content: flex-start; --tab-width: auto',
					'center' => '--tabs-container-justify-content: center; --tab-width: auto',
					'end' => '--tabs-container-justify-content: flex-end; --tab-width: auto',
					'stretch' => '--tabs-container-justify-content: space-between; --tab-width: 100%',
				],
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'tab_name',
			[
				'label' => esc_html__( 'Tab Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'order_display_description',
			[
				'raw' => esc_html__( 'Note: By default, only your last order is displayed while editing the orders section. You can see other orders on your live site or in the WooCommerce orders section', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'field_key' => 'orders',
				],
			]
		);

		$this->add_control(
			'tabs',
			[
				'label' => '',
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'item_actions' => [
					'add' => false,
					'duplicate' => false,
					'remove' => false,
					'sort' => false,
				],
				'default' => [
					[
						'field_key' => 'dashboard',
						'field_label' => esc_html__( 'Dashboard', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Dashboard', 'elementor-pro' ),
					],
					[
						'field_key' => 'orders',
						'field_label' => esc_html__( 'Orders', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Orders', 'elementor-pro' ),
					],
					[
						'field_key' => 'downloads',
						'field_label' => esc_html__( 'Downloads', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Downloads', 'elementor-pro' ),
					],
					[
						'field_key' => 'edit-address',
						'field_label' => esc_html__( 'Addresses', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Addresses', 'elementor-pro' ),
					],
					[
						'field_key' => 'edit-account',
						'field_label' => esc_html__( 'Account Details', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Account Details', 'elementor-pro' ),
					],
					[
						'field_key' => 'customer-logout',
						'field_label' => esc_html__( 'Logout', 'elementor-pro' ),
						'tab_name' => esc_html__( 'Logout', 'elementor-pro' ),
					],
				],
				'title_field' => '{{{ tab_name }}}',
			]
		);

		$this->add_responsive_control(
			'tabs_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-alignment: {{VALUE}};',
				],
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'tabs_position',
							'operator' => '!==',
							'value' => 'start',
						],
						[
							'name' => 'tabs_position',
							'operator' => '!==',
							'value' => 'center',
						],
						[
							'name' => 'tabs_position',
							'operator' => '!==',
							'value' => 'end',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'tabs_style',
			[
				'label' => esc_html__( 'Tabs', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'tabs_typography',
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a',
			]
		);

		$this->start_controls_tabs( 'tabs_section' );

		$this->start_controls_tab( 'tabs_normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'tabs_normal_background',
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'tabs_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a',
			]
		);

		$this->add_control(
			'tabs_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'tabs_hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'tabs_hover_background',
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'tabs_hover_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a:hover',
			]
		);

		$this->add_control(
			'tabs_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-hover-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'tabs_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-hover-border-color: {{VALUE}}',
				],
				'condition' => [
					'tabs_border_type!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'tabs_active', [ 'label' => esc_html__( 'Active', 'elementor-pro' ) ] );

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'tabs_active_background',
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li.is-active a',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'tabs_active_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-navigation ul li.is-active a',
			]
		);

		$this->add_control(
			'tabs_active_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-active-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'tabs_active_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-active-border-color: {{VALUE}}',
				],
				'condition' => [
					'tabs_border_type!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'tabs_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'tabs_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-MyAccount-navigation ul li a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'tabs_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'tabs_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-border-color: {{VALUE}};',
				],
				'condition' => [
					'tabs_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'tabs_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'tabs_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'tabs_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'tabs_divider_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Dividers', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'tabs_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'tabs_divider_weight',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tabs-divider-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'sections_title',
			[
				'label' => esc_html__( 'Sections', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'my_account_sections_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'my_account_sections_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} address, {{WRAPPER}} .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__view-order .order_details, {{WRAPPER}} .woocommerce-form-login, {{WRAPPER}} .woocommerce-form-register, {{WRAPPER}} .woocommerce-ResetPassword',
			]
		);

		$this->add_control(
			'sections_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-type: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} address, {{WRAPPER}} .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, {{WRAPPER}} .e-my-account-tab__view-order .order_details, {{WRAPPER}} .woocommerce-form-login, {{WRAPPER}} .woocommerce-form-register, {{WRAPPER}} .woocommerce-ResetPassword, {{WRAPPER}} .e-my-account-tab__edit-address .woocommerce-address-fields' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'sections_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'sections_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; --edit-link-margin-top: {{TOP}}{{UNIT}}; --edit-link-margin-start: {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .e-my-account-tab__edit-address .woocommerce-Address address' => 'padding-top: calc( {{TOP}}{{UNIT}} + 40px );',
					'{{WRAPPER}} .woocommerce-pagination' => 'padding-bottom: {{BOTTOM}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'typography_title',
			[
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'typography_titles',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section Titles', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'typography_section_titles_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--typography-section-titles-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'section_titles_typography',
				'selector' => '{{WRAPPER}} h2, {{WRAPPER}} h3',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'section_titles_typography_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} h2, {{WRAPPER}} h3',
			]
		);

		$this->add_responsive_control(
			'section_title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%', 'vw' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--section-title-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'typography_secondary_titles',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'General Text', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'general_text_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--general-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'general_text_typography',
				'selector' => '{{WRAPPER}} .woocommerce-MyAccount-content > div > p, {{WRAPPER}} address, {{WRAPPER}} .woocommerce-EditAccountForm fieldset legend, {{WRAPPER}} .woocommerce-ResetPassword p:nth-child(1), {{WRAPPER}} .woocommerce-OrderUpdate',
			]
		);

		$this->add_control(
			'typography_login_messages_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Login Messages', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'login_messages_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--login-messages-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'login_messages_typography',
				'selector' => '{{WRAPPER}} .woocommerce-privacy-policy-text, {{WRAPPER}} em, {{WRAPPER}} .register p',
			]
		);

		$this->add_control(
			'checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkboxes', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'checkboxes_typography',
				'selector' => '{{WRAPPER}} .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->add_control(
			'links_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Links', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'links_colors' );

		$this->start_controls_tab( 'links_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'links_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'links_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'links_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'forms_section',
			[
				'label' => esc_html__( 'Forms', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'forms_columns_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-columns-gap-padding-right: calc( {{SIZE}}{{UNIT}}/2 ); --forms-columns-gap-padding-left: calc( {{SIZE}}{{UNIT}}/2 ); --forms-columns-gap-margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); --forms-columns-gap-margin-right: calc( -{{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_responsive_control(
			'forms_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-rows-gap: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'forms_label_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Labels', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'forms_label_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-labels-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_label_typography',
				'selector' => '{{WRAPPER}} .woocommerce-form-row label',
			]
		);

		$this->add_responsive_control(
			'forms_label_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-label-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'forms_field_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Fields', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_field_typography',
				'selector' => '{{WRAPPER}} .input-text, {{WRAPPER}} select, {{WRAPPER}} ::placeholder, {{WRAPPER}} .select2-container--default .select2-selection--single, .select2-results__option',

			]
		);

		$this->start_controls_tabs( 'forms_fields_styles' );

		$this->start_controls_tab( 'forms_fields_normal_styles', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_fields_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-normal-color: {{VALUE}};',
					'.e-woo-select2-wrapper .select2-results__option' => 'color: {{VALUE}};',
					// style select2 arrow
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow b' => 'border-color: {{VALUE}} transparent transparent transparent;',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_normal_background',
				'selector' => '{{WRAPPER}} .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-container--default .select2-selection--single, .select2-results__option',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-container--default .select2-selection--single',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_fields_focus_styles', [ 'label' => esc_html__( 'Focus', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_fields_focus_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-color: {{VALUE}}',
					'.e-woo-select2-wrapper .select2-results__option:focus' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_focus_background',
				'selector' => '{{WRAPPER}} .input-text:focus, {{WRAPPER}} select:focus, {{WRAPPER}} .select2-container--default .select2-selection--single:focus',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .input-text:focus, {{WRAPPER}} select:focus, {{WRAPPER}} .select2-container--default .select2-selection--single:focus',
			]
		);

		$this->add_control(
			'forms_fields_focus_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_fields_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'forms_fields_focus_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'forms_fields_border',
				'selector' => '{{WRAPPER}} .input-text, {{WRAPPER}} select, {{WRAPPER}} .select2-container--default .select2-selection--single, .select2-results__option',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_fields_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_fields_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					// style select2
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__rendered' => 'line-height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); padding-left: {{LEFT}}{{UNIT}}; padding-right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow' => 'height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single' => 'height: auto;',
				],
			]
		);

		$this->add_control(
			'forms_button_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_button_typography',
				'selector' => '{{WRAPPER}} button.button',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'forms_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} button.button',
			]
		);

		$this->start_controls_tabs( 'forms_buttons_styles' );

		$this->start_controls_tab( 'forms_buttons_normal_styles', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_buttons_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_background',
				'selector' => '{{WRAPPER}} button.button',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} button.button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_buttons_hover_styles', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'forms_buttons_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_hover_background',
				'selector' => '{{WRAPPER}} button.button:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} button.button:hover',
			]
		);

		$this->add_control(
			'forms_buttons_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} button.button:hover' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_buttons_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'forms_buttons_border',
				'selector' => '{{WRAPPER}} button.button',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_buttons_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_buttons_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'tables_section',
			[
				'label' => esc_html__( 'Order Details', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'tables_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-rows-gap-top: calc( {{SIZE}}{{UNIT}}/2 ); --order-summary-rows-gap-bottom: calc( {{SIZE}}{{UNIT}}/2 );',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'tables_titles',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles &amp; Totals', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tables_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'tables_titles_typography',
				'selector' => '{{WRAPPER}} .order_details thead th, {{WRAPPER}} .order_details tfoot td, {{WRAPPER}} .order_details tfoot th, {{WRAPPER}} .nobr',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'tables_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .order_details thead th, {{WRAPPER}} .order_details tfoot td, {{WRAPPER}} .order_details tfoot th, {{WRAPPER}} .nobr',
			]
		);

		$this->add_control(
			'tables_items_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Items', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tables_items_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-items-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'tables_items_typography',
				'selector' => '{{WRAPPER}} .e-my-account-tab__orders tbody td, {{WRAPPER}} .e-my-account-tab__downloads tbody td, {{WRAPPER}} .product-quantity, {{WRAPPER}} .woocommerce-table--order-downloads tbody td, {{WRAPPER}} .woocommerce-table--order-details td a, {{WRAPPER}} td.product-total',
			]
		);

		$this->add_control(
			'variations_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Variations', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'variations_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--variations-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'variations_typography',
				'selector' => '{{WRAPPER}} .wc-item-meta',
			]
		);

		$this->add_control(
			'sections_links_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Product Link', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'tables_links_colors' );

		$this->start_controls_tab( 'tables_links_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'tables_links_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'tables_links_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'tables_links_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'tables_divider_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Dividers', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'tables_divider_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--tables-divider-border-type: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'tables_divider_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--tables-divider-border-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'tables_divider_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'tables_divider_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-divider-border-color: {{VALUE}};',
				],
				'condition' => [
					'tables_divider_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'tables_button_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'tables_button_typography',
				'selector' => '{{WRAPPER}} .shop_table .button, {{WRAPPER}} .order-again .button, {{WRAPPER}} .woocommerce-pagination .button',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'tables_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button, {{WRAPPER}} .order-again .button, {{WRAPPER}} .woocommerce-pagination .button',
			]
		);

		$this->start_controls_tabs( 'tables_button_styles' );

		$this->start_controls_tab( 'tables_button_styles_normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'tables_button_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-button-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'tables_button_normal_background',
				'selector' => '{{WRAPPER}} .shop_table .button, {{WRAPPER}} .order-again .button, {{WRAPPER}} .woocommerce-pagination .button',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'tables_button_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button, {{WRAPPER}} .order-again .button, {{WRAPPER}} .woocommerce-pagination .button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'tables_button_styles_hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'tables_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-button-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'tables_button_hover_background',
				'selector' => '{{WRAPPER}} .shop_table .button:hover, {{WRAPPER}} .order-again .button:hover, {{WRAPPER}} .woocommerce-pagination .button:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'tables_button_hover_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .shop_table .button:hover, {{WRAPPER}} .order-again .button:hover, {{WRAPPER}} .woocommerce-pagination .button:hover',
			]
		);

		$this->add_control(
			'tables_button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .shop_table .button:hover, {{WRAPPER}} .order-again .button:hover, {{WRAPPER}} .woocommerce-pagination .button:hover' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'tables_button_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'tables_button_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--tables-button-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'tables_button_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'tables_button_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--tables-buttons-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'tables_button_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .shop_table .button, {{WRAPPER}} .order-again .button, {{WRAPPER}} .woocommerce-pagination .button' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'tables_button_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'tables_button_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} ' => '--tables-buttons-border-color: {{VALUE}};',
				],
				'condition' => [
					'tables_button_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'tables_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tables-button-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'tables_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tables-button-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();
	}

	public function modify_menu_items( $items, $endpoints ) {
		$settings = $this->get_settings_for_display();

		if ( ! empty( $settings['tabs'] ) ) {
			foreach ( $settings['tabs'] as $tab ) {
				if ( isset( $tab['tab_name'] ) && isset( $items[ $tab['field_key'] ] ) ) {
					$items[ $tab['field_key'] ] = $tab['tab_name'];
				}
			}
		}

		return $items;
	}

	/**
	 * WooCommerce Get My Account Page Permalink
	 *
	 * Modify the permalinks of the My Account menu items. By default the permalinks will go to the
	 * set WooCommerce My Account Page, even if the widget is on a different page. This function will override
	 * the permalinks to use the widget page URL as the base URL instead.
	 *
	 * This is a callback function for the woocommerce_get_myaccount_page_permalink filter.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	public function woocommerce_get_myaccount_page_permalink( $bool ) {
		return get_permalink();
	}

	/**
	 * WooCommerce Logout Default Redirect URL
	 *
	 * Modify the permalink of the My Account Logout menu item. We add this so that we can add custom
	 * parameters to the URL, which we can later access to log the user out and redirect back to the widget
	 * page. Without this WooCommerce would have always just redirect back to the set My Account Page
	 * after log out.
	 *
	 * This is a callback function for the woocommerce_logout_default_redirect_url filter.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	public function woocommerce_logout_default_redirect_url( $redirect ) {
		return $redirect . '?elementor_wc_logout=true&elementor_my_account_redirect=' . esc_url( get_permalink() );
	}

	protected function render() {

		// Add actions & filters before displaying our Widget.
		add_action( 'woocommerce_account_navigation', [ $this, 'woocommerce_account_navigation' ], 1 );
		add_filter( 'woocommerce_account_menu_items', [ $this, 'modify_menu_items' ], 10, 2 );
		add_action( 'woocommerce_account_content', [ $this, 'before_account_content' ], 2 );
		add_action( 'woocommerce_account_content', [ $this, 'after_account_content' ], 95 );
		add_filter( 'woocommerce_get_myaccount_page_permalink', [ $this, 'woocommerce_get_myaccount_page_permalink' ], 10, 1 );
		add_filter( 'woocommerce_logout_default_redirect_url', [ $this, 'woocommerce_logout_default_redirect_url' ], 10, 1 );

		// Display our Widget.
		if ( ! Plugin::elementor()->editor->is_edit_mode() ) {
			$this->render_html_front_end();
		} else {
			$this->render_html_editor();
		}

		// Remove actions & filters after displaying our Widget.
		remove_action( 'woocommerce_account_navigation', [ $this, 'woocommerce_account_navigation' ], 2 );
		remove_action( 'woocommerce_account_menu_items', [ $this, 'modify_menu_items' ], 10 );
		remove_action( 'woocommerce_account_content', [ $this, 'before_account_content' ], 5 );
		remove_action( 'woocommerce_account_content', [ $this, 'after_account_content' ], 95 );
		remove_filter( 'woocommerce_get_myaccount_page_permalink', [ $this, 'woocommerce_get_myaccount_page_permalink' ], 10, 1 );
		remove_filter( 'woocommerce_logout_default_redirect_url', [ $this, 'woocommerce_logout_default_redirect_url' ], 10, 1 );
	}

	/**
	 * Get Account Pages
	 *
	 * Get all the pages that would render on the My Account page.
	 * We will use this array to be able to render all these pages' content when the editor loads.
	 * We will then switch between the pages via JS as all the content is already on the page.
	 *
	 * @since 3.5.0
	 *
	 * @return array
	 */
	private function get_account_pages() {
		$pages = [
			'dashboard' => '',
			'orders' => '',
			'downloads' => '',
			'edit-address' => '',
		];

		// Check if payment gateways support add new payment methods.
		$support_payment_methods = false;
		foreach ( WC()->payment_gateways->get_available_payment_gateways() as $gateway ) {
			if ( $gateway->supports( 'add_payment_method' ) || $gateway->supports( 'tokenization' ) ) {
				$support_payment_methods = true;
				break;
			}
		}

		if ( $support_payment_methods ) {
			$pages['payment-methods'] = '';
		}

		// Edit account.
		$pages['edit-account'] = '';

		// Get the latest order (if there is one) for view-order (order preview) page.
		$recent_order = wc_get_orders( [
			'limit' => 1,
			'orderby'  => 'date',
			'order'    => 'DESC',
		] );

		if ( ! empty( $recent_order ) ) {
			$pages['view-order'] = $recent_order[0]->get_id();
		}

		return $pages;
	}

	/**
	 * Get Current Endpoint
	 *
	 * Used to determine which page Account Page the user is on currently.
	 * This is used so we can add a unique wrapper class around the page's content.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	private function get_current_endpoint() {
		global $wp_query;
		$current = '';

		$pages = $this->get_account_pages();

		foreach ( $pages as $page => $val ) {
			if ( isset( $wp_query->query[ $page ] ) ) {
				$current = $page;
				break;
			}
		}

		if ( '' === $current && isset( $wp_query->query_vars['page'] ) ) {
			$current = 'dashboard'; // Dashboard is not an endpoint so it needs a custom check.
		}

		return $current;
	}

	/**
	 * Render HTML Front End
	 *
	 * This function will output the content on the front-end.
	 *
	 * @since 3.5.0
	 */
	private function render_html_front_end() {
		$current_endpoint = $this->get_current_endpoint();
		?>
		<div class="e-my-account-tab e-my-account-tab__<?php echo sanitize_html_class( $current_endpoint ); ?>">
			<span class="elementor-hidden">[[woocommerce_my_account]]</span>
			<?php echo do_shortcode( '[woocommerce_my_account]' ); ?>
		</div>
		<?php
	}

	/**
	 * Render HTML Editor
	 *
	 * This function will output the content in the Editor.
	 * One navigation will be rendered and the content for all pages will be rendered.
	 * Only the dashboard page's content will show on page load as the other pages' content
	 * will be hidden with CSS and toggled via JS when the user clicks on the menu items.
	 *
	 * @since 3.5.0
	 */
	private function render_html_editor() {
		$settings = $this->get_settings_for_display();
		// Add .e-my-account-tab__dashboard as the default class when the editor loads.
		// This class will be replaced with JS when tabs are switched.
		?>
		<div class="e-my-account-tab e-my-account-tab__dashboard">
			<span class="elementor-hidden">[[woocommerce_my_account]]</span>
			<div class="woocommerce">
			<?php
			if ( 'horizontal' === $settings['tabs_layout'] ) {
				?>
				<div class="e-wc-account-tabs-nav">
					<?php wc_get_template( 'myaccount/navigation.php' ); ?>
				</div>
				<?php
			} else {
				wc_get_template( 'myaccount/navigation.php' );
			}

			// In the editor, output all the tabs in order to allow for switching between them via JS.
			$pages = $this->get_account_pages();

			global $wp_query;
			foreach ( $pages as $page => $page_value ) {
				foreach ( $pages as $unset_tab => $unset_tab_value ) {
					unset( $wp_query->query_vars[ $unset_tab ] );
				}
				$wp_query->query_vars[ $page ] = $page_value;

				$wrapper_class = $this->get_account_content_wrapper( [
					'context' => 'editor',
					'page' => $page,
				] );
				?>
				<div class="woocommerce-MyAccount-content" <?php echo $page ? 'e-my-account-page="' . esc_attr( $page ) . '"' : ''; ?>>
					<div class="<?php echo sanitize_html_class( $wrapper_class ); ?>">
						<?php
						if ( 'dashboard' === $page ) {
							wc_get_template(
								'myaccount/dashboard.php',
								[
									'current_user' => get_user_by( 'id', get_current_user_id() ),
								]
							);
						} else {
							do_action( 'woocommerce_account_' . $page . '_endpoint', $page_value );
						}
						?>
					</div>
				</div>
			<?php } ?>
			</div>
		</div>
		<?php
	}

	/**
	 * Woocommerce Account Navigation
	 *
	 * Output a horizontal menu if the setting was selected. The default vertical menu will be hidden with CSS
	 * and this menu will show. We wrap this menu with a class '.e-wc-account-tabs-nav' so that we
	 * can manipulate the display for this menu with CSS (make it horizontal).
	 *
	 * Callback function for the woocommerce_account_navigation hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_account_navigation() {
		$settings = $this->get_settings_for_display();

		if ( 'horizontal' === $settings['tabs_layout'] ) {
			?>
			<div class="e-wc-account-tabs-nav">
				<?php wc_get_template( 'myaccount/navigation.php' ); ?>
			</div>
			<?php
		}
	}

	/**
	 * Get Account Content Wrapper
	 *
	 * This function will determine the wrapper class around the main content.
	 * There are different wrappers depending on if orders/downloads exist or not.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	private function get_account_content_wrapper( $args ) {
		$user_id = get_current_user_id();
		$num_orders = wc_get_customer_order_count( $user_id );
		$num_downloads = count( wc_get_customer_available_downloads( $user_id ) );
		$class = 'woocommerce-MyAccount-content-wrapper';

		/* we need to render a different css class if there are no orders/downloads to display
		 * as the no orders/downloads screen should not have the default padding and border
		 * around it but show the 'no orders/downloads' notification only
		 */
		if ( 'frontend' === $args['context'] ) { // Front-end display
			global $wp_query;
			if ( ( 0 === $num_orders && isset( $wp_query->query_vars['orders'] ) ) || ( 0 === $num_downloads && isset( $wp_query->query_vars['downloads'] ) ) ) {
				$class .= '-no-data';
			}
		} else { // Editor display
			if ( ( 0 === $num_orders && 'orders' === $args['page'] ) || ( 0 === $num_downloads && 'downloads' === $args['page'] ) ) {
				$class .= '-no-data';
			}
		}

		return $class;
	}

	/**
	 * Before Account Content
	 *
	 * Output containing elements. Callback function for the woocommerce_account_content hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function before_account_content() {
		$wrapper_class = $this->get_account_content_wrapper( [ 'context' => 'frontend' ] );

		echo '<div class="' . sanitize_html_class( $wrapper_class ) . '">';
	}

	/**
	 * After Account Content
	 *
	 * Output containing elements. Callback function for the woocommerce_account_content hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function after_account_content() {
		echo '</div>';
	}
}
PK!pD`��/modules/woocommerce/widgets/product-related.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Related extends Products_Base {

	public function get_name() {
		return 'woocommerce-product-related';
	}

	public function get_title() {
		return esc_html__( 'Product Related', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-related';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'related', 'similar', 'product' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_related_products_content',
			[
				'label' => esc_html__( 'Related Products', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'posts_per_page',
			[
				'label' => esc_html__( 'Products Per Page', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 4,
				'range' => [
					'px' => [
						'max' => 20,
					],
				],
			]
		);

		$this->add_columns_responsive_control();

		$this->add_control(
			'orderby',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'date',
				'options' => [
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'price' => esc_html__( 'Price', 'elementor-pro' ),
					'popularity' => esc_html__( 'Popularity', 'elementor-pro' ),
					'rating' => esc_html__( 'Rating', 'elementor-pro' ),
					'rand' => esc_html__( 'Random', 'elementor-pro' ),
					'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'order',
			[
				'label' => esc_html__( 'Order', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'desc',
				'options' => [
					'asc' => esc_html__( 'ASC', 'elementor-pro' ),
					'desc' => esc_html__( 'DESC', 'elementor-pro' ),
				],
			]
		);

		$this->end_controls_section();

		parent::register_controls();

		$this->start_injection( [
			'at' => 'before',
			'of' => 'section_design_box',
		] );

		$this->start_controls_section(
			'section_heading_style',
			[
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'show_heading',
			[
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'yes',
				'return_value' => 'yes',
				'prefix_class' => 'show-heading-',
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'.woocommerce {{WRAPPER}}.elementor-wc-products .products > h2' => 'color: {{VALUE}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '.woocommerce {{WRAPPER}}.elementor-wc-products .products > h2',
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'heading_text_align',
			[
				'label' => esc_html__( 'Text Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'.woocommerce {{WRAPPER}}.elementor-wc-products .products > h2' => 'text-align: {{VALUE}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'heading_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'.woocommerce {{WRAPPER}}.elementor-wc-products .products > h2' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->end_injection();
	}

	protected function render() {
		global $product;

		$product = wc_get_product();

		if ( ! $product ) {
			return;
		}

		$settings = $this->get_settings_for_display();

		$args = [
			'posts_per_page' => 4,
			'columns' => 4,
			'orderby' => $settings['orderby'],
			'order' => $settings['order'],
		];

		if ( ! empty( $settings['posts_per_page'] ) ) {
			$args['posts_per_page'] = $settings['posts_per_page'];
		}

		if ( ! empty( $settings['columns'] ) ) {
			$args['columns'] = $settings['columns'];
		}

		// Get visible related products then sort them at random.
		$args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );

		// Handle orderby.
		$args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );

		ob_start();

		wc_get_template( 'single-product/related.php', $args );

		$related_products_html = ob_get_clean();

		if ( $related_products_html ) {
			$related_products_html = str_replace( '<ul class="products', '<ul class="products elementor-grid', $related_products_html );

			echo wp_kses_post( $related_products_html );
		}

	}

	public function render_plain_content() {}
}
PK!�.�q�
�
3modules/woocommerce/widgets/archive-description.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Description extends Base_Widget {

	public function get_name() {
		return 'woocommerce-archive-description';
	}

	public function get_title() {
		return esc_html__( 'Archive Description', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-description';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'text', 'description', 'category', 'product', 'archive' ];
	}

	public function get_categories() {
		return [
			'woocommerce-elements-archive',
		];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_description_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_responsive_control(
			'text_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .term-description' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .term-description',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		do_action( 'woocommerce_archive_description' );
	}

	public function render_plain_content() {}
}
PK!	��%��.modules/woocommerce/widgets/category-image.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Widget_Image;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Category_Image extends Widget_Image {

	use Base_Widget_Trait;

	public function get_name() {
		return 'woocommerce-category-image';
	}

	public function get_title() {
		return esc_html__( 'Category Image', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-featured-image';
	}

	public function get_categories() {
		return [ 'woocommerce-elements', 'woocommerce-elements-single' ];
	}

	public function get_keywords() {
		return [ 'woocommerce', 'category', 'image', 'thumbnail' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'image',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'woocommerce-category-image-tag' ),
				],
			],
			[
				'recursive' => true,
			]
		);
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-widget-' . parent::get_name();
	}
}
PK!�vt�*modules/woocommerce/widgets/breadcrumb.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Breadcrumb extends Base_Widget {

	public function get_name() {
		return 'woocommerce-breadcrumb';
	}

	public function get_title() {
		return esc_html__( 'WooCommerce Breadcrumbs', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-breadcrumbs';
	}

	public function get_keywords() {
		return [ 'woocommerce-elements', 'shop', 'store', 'breadcrumbs', 'internal links', 'product' ];
	}

	public function get_categories() {
		return [ 'woocommerce-elements', 'woocommerce-elements-single' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_rating_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-breadcrumb' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'link_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-breadcrumb > a' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'selector' => '{{WRAPPER}} .woocommerce-breadcrumb',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-breadcrumb' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		woocommerce_breadcrumb();
	}

	public function render_plain_content() {}
}
PK!�O�K����(modules/woocommerce/widgets/checkout.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use ElementorPro\Plugin;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Border;
use Elementor\Repeater;
use Elementor\Group_Control_Background;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Checkout extends Base_Widget {

	private $reformatted_form_fields;

	public function get_name() {
		return 'woocommerce-checkout-page';
	}

	public function get_title() {
		return esc_html__( 'Checkout', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-checkout';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'checkout' ];
	}

	public function get_categories() {
		return [ 'theme-elements', 'woocommerce-elements' ];
	}

	public function get_help_url() {
		return 'https://go.elementor.com/widget-woocommerce-checkout';
	}

	public function get_script_depends() {
		return [
			'wc-checkout',
			'wc-password-strength-meter',
			'selectWoo',
		];
	}

	public function get_style_depends() {
		return [ 'select2' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'General', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'checkout_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'two-column' => esc_html__( 'Two columns', 'elementor-pro' ),
					'one-column' => esc_html__( 'One column', 'elementor-pro' ),
				],
				'default' => 'two-column',
				'prefix_class' => 'e-checkout-layout-',
			]
		);

		$this->add_control(
			'sticky_right_column',
			[
				'label' => esc_html__( 'Sticky Right Column', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'return_value' => 'yes',
				'description' => esc_html__( 'The Order Summary and Payment sections will remain in place while scrolling.', 'elementor-pro' ),
				'frontend_available' => true,
				'render_type' => 'none',
				'condition' => [
					'checkout_layout' => 'two-column',
				],
			]
		);

		$this->add_control(
			'sticky_right_column_offset',
			[
				'label' => esc_html__( 'Offset', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'frontend_available' => true,
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'sticky_right_column',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'checkout_layout',
							'operator' => '=',
							'value' => 'two-column',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'checkout_login_reminder' ) ) {
			$this->add_checkout_login_reminder_controls();
		}

		$this->start_controls_section(
			'billing_details_section',
			[
				'label' => $this->is_wc_feature_active( 'ship_to_billing_address_only' ) ? esc_html__( 'Billing and Shipping Details', 'elementor-pro' ) : esc_html__( 'Billing Details', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'billing_details_section_title',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => $this->is_wc_feature_active( 'ship_to_billing_address_only' ) ? esc_html__( 'Billing and Shipping Details', 'elementor-pro' ) : esc_html__( 'Billing Details', 'elementor-pro' ),
				'default' => $this->is_wc_feature_active( 'ship_to_billing_address_only' ) ? esc_html__( 'Billing and Shipping Details', 'elementor-pro' ) : esc_html__( 'Billing Details', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_responsive_control(
			'billing_details_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--billing-details-title-alignment: {{VALUE}};',
				],
			]
		);

		$repeater = new Repeater();

		$repeater->start_controls_tabs( 'tabs', [
			'condition' => [
				'repeater_state' => '',
			],
		] );

		$repeater->start_controls_tab( 'content_tab', [
			'label' => esc_html__( 'Content', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->add_control(
			'placeholder',
			[
				'label' => esc_html__( 'Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab( 'advanced_tab', [
			'label' => esc_html__( 'Advanced', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'default',
			[
				'label' => esc_html__( 'Default Value', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$repeater->add_control(
			'repeater_state',
			[
				'label' => esc_html__( 'Repeater State - hidden', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
			]
		);

		$repeater->add_control(
			'locale_notice',
			[
				'raw' => __( 'Note: This content cannot be changed due to local regulations.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'repeater_state' => 'locale',
				],
			]
		);

		$repeater->add_control(
			'from_billing_notice',
			[
				'raw' => __( 'Note: This label and placeholder are taken from the Billing section. You can change it there.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'repeater_state' => 'from_billing',
				],
			]
		);

		$this->add_control(
			'billing_details_form_fields',
			[
				'label' => esc_html__( 'Form Items', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'item_actions' => [
					'add' => false,
					'duplicate' => false,
					'remove' => false,
					'sort' => false,
				],
				'default' => $this->get_billing_field_defaults(),
				'title_field' => '{{{ label }}}',
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'shipping' ) && ! $this->is_wc_feature_active( 'ship_to_billing_address_only' ) ) {
			$this->add_shipping_controls();
		}

		$this->start_controls_section(
			'additional_information_section',
			[
				'label' => esc_html__( 'Additional Information', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'additional_information_active',
			[
				'label' => esc_html__( 'Additional Information', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => '--additional-information-display: block;',
				],
			]
		);

		if ( $this->is_wc_feature_active( 'additional_options' ) ) {
			$this->add_control(
				'additional_information_section_title',
				[
					'label' => esc_html__( 'Section Title', 'elementor-pro' ),
					'type' => Controls_Manager::TEXT,
					'placeholder' => esc_html__( 'Additional Information', 'elementor-pro' ),
					'default' => esc_html__( 'Additional Information', 'elementor-pro' ),
					'dynamic' => [
						'active' => true,
					],
					'condition' => [
						'additional_information_active!' => '',
					],
				]
			);

			$this->add_responsive_control(
				'additional_information_alignment',
				[
					'label' => esc_html__( 'Alignment', 'elementor-pro' ),
					'type' => Controls_Manager::CHOOSE,
					'options' => [
						'start' => [
							'title' => esc_html__( 'Start', 'elementor-pro' ),
							'icon' => 'eicon-text-align-left',
						],
						'center' => [
							'title' => esc_html__( 'Center', 'elementor-pro' ),
							'icon' => 'eicon-text-align-center',
						],
						'end' => [
							'title' => esc_html__( 'End', 'elementor-pro' ),
							'icon' => 'eicon-text-align-right',
						],
					],
					'selectors' => [
						'{{WRAPPER}}' => '--additional-fields-title-alignment: {{VALUE}};',
					],
					'condition' => [
						'additional_information_active!' => '',
					],
				]
			);
		}

		$repeater = new Repeater();

		$repeater->start_controls_tabs( 'additional_information_form_fields_tabs' );

		$repeater->start_controls_tab( 'additional_information_form_fields_content_tab', [
			'label' => esc_html__( 'Content', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->add_control(
			'placeholder',
			[
				'label' => esc_html__( 'Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab( 'additional_information_form_fields_advanced_tab', [
			'label' => esc_html__( 'Advanced', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'default',
			[
				'label' => esc_html__( 'Default Value', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$this->add_control(
			'additional_information_form_fields',
			[
				'label' => esc_html__( 'Items', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'item_actions' => [
					'add' => false,
					'duplicate' => false,
					'remove' => false,
					'sort' => false,
				],
				'default' => [
					[
						'field_key' => 'order_comments',
						'field_label' => esc_html__( 'Order Notes', 'elementor-pro' ),
						'label' => esc_html__( 'Order Notes', 'elementor-pro' ),
						'placeholder' => esc_html__( 'Notes about your order, e.g. special notes for delivery.', 'elementor-pro' ),
					],
				],
				'title_field' => '{{{ label }}}',
				'condition' => [
					'additional_information_active!' => '',
				],
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'signup_and_login_from_checkout' ) ) {
			$this->add_signup_and_login_from_checkout_controls();
		}

		$this->start_controls_section(
			'order_summary_section',
			[
				'label' => esc_html__( 'Your Order', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_section_title',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Your Order', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--order-review-title-alignment: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'coupons' ) ) {
			$this->add_coupon_controls();
		}

		$this->start_controls_section(
			'payment_section',
			[
				'label' => esc_html__( 'Payment', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'terms_conditions_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Terms &amp; Conditions', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'terms_conditions_message_text',
			[
				'label' => esc_html__( 'Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => true,
				'default' => esc_html__( 'I have read and agree to the website', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'terms_conditions_link_text',
			[
				'label' => esc_html__( 'Link Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => true,
				'default' => esc_html__( 'terms and conditions', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'purchase_buttom_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Purchase Button', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'purchase_button_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justify', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => '--place-order-title-alignment: flex-start; --purchase-button-width: fit-content;',
					'center' => '--place-order-title-alignment: center; --purchase-button-width: fit-content;',
					'end' => '--place-order-title-alignment: flex-end; --purchase-button-width: fit-content;',
					'justify' => '--place-order-title-alignment: stretch; --purchase-button-width: 100%;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_style',
			[
				'label' => esc_html__( 'Sections', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'sections_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => $this->get_main_woocommerce_sections_selectors(),
			]
		);

		$this->add_control(
			'sections_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'sections_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					$this->get_main_woocommerce_sections_selectors() => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'sections_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'sections_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'sections_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					// move the 'Ship to a different address?' checkbox
					'{{WRAPPER}} .woocommerce-shipping-fields' => '--shipping-heading-padding-start: {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sections_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_typography',
			[
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'sections_typography',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'sections_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_titles_typography',
				'selector' => $this->get_main_woocommerce_sections_title_selectors(),
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'sections_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => $this->get_main_woocommerce_sections_title_selectors(),
			]
		);

		$this->add_responsive_control(
			'sections_title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-title-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sections_secondary_typography',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Secondary Titles', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_secondary_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-secondary-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_secondary_titles_typography',
				'selector' => '{{WRAPPER}} .e-checkout-secondary-title',
			]
		);

		$this->add_responsive_control(
			'sections_secondary_title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-secondary-title-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sections_descriptions_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Descriptions', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_descriptions_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-descriptions-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_descriptions_typography',
				'selector' => '{{WRAPPER}} .e-description',
			]
		);

		$this->add_responsive_control(
			'sections_descriptions_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--sections-descriptions-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sections_messages_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Messages', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_messages_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-messages-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_messages_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout #payment .payment_box, {{WRAPPER}} .woocommerce-privacy-policy-text p, {{WRAPPER}} .e-checkout-message',
			]
		);

		$this->add_control(
			'sections_checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkboxes', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_checkboxes_typography',
				'selector' => '{{WRAPPER}} .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->add_control(
			'sections_radio_buttons_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Radio Buttons', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sections_radio_buttons_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--sections-radio-buttons-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sections_radio_buttons_typography',
				'selector' => '{{WRAPPER}} .wc_payment_method label, {{WRAPPER}} #shipping_method li label',
			]
		);

		// Links
		$this->add_control(
			'sections_links_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Links', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'links_colors' );

		$this->start_controls_tab( 'links_normal_colors', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'links_normal_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'links_hover_colors', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'links_hover_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_forms',
			[
				'label' => esc_html__( 'Forms', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'forms_columns_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-columns-gap-padding: calc( {{SIZE}}{{UNIT}}/2 ); --forms-columns-gap-margin: calc( -{{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_responsive_control(
			'forms_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-rows-gap: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'forms_label_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Labels', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'forms_label_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-labels-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_label_typography',
				'selector' => '{{WRAPPER}} .woocommerce-billing-fields .form-row label, {{WRAPPER}} .woocommerce-shipping-fields .form-row label, {{WRAPPER}} .woocommerce-additional-fields .form-row label, {{WRAPPER}} .e-woocommerce-login-anchor .form-row label, {{WRAPPER}} .e-coupon-anchor-description',
			]
		);

		$this->add_responsive_control(
			'forms_label_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-label-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'forms_field_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Fields', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_field_typography',
				'selector' => '{{WRAPPER}} #customer_details .input-text, {{WRAPPER}} #customer_details .form-row textarea, {{WRAPPER}} #customer_details .form-row select, {{WRAPPER}} .e-woocommerce-login-anchor .input-text, {{WRAPPER}} #coupon_code, {{WRAPPER}} ::placeholder, {{WRAPPER}} .select2-container--default .select2-selection--single, .select2-results__option',
			]
		);

		$this->start_controls_tabs( 'forms_fields_styles' );

		$this->start_controls_tab( 'forms_fields_normal_styles', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'forms_fields_normal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-normal-color: {{VALUE}};',
					'.e-woo-select2-wrapper .select2-results__option' => 'color: {{VALUE}};',
					// style select2 arrow
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow b' => 'border-color: {{VALUE}} transparent transparent transparent;',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_normal_background',
				'selector' => '{{WRAPPER}} #customer_details .input-text, {{WRAPPER}}  #customer_details .form-row textarea, {{WRAPPER}} .woocommerce form #customer_details select, {{WRAPPER}} .e-woocommerce-login-anchor .input-text, {{WRAPPER}} #coupon_code, {{WRAPPER}} .select2-container--default .select2-selection--single, {{WRAPPER}} #payment .payment_box',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} #customer_details .input-text, {{WRAPPER}}  #customer_details .form-row textarea, {{WRAPPER}} .woocommerce form #customer_details select, {{WRAPPER}} .e-woocommerce-login-anchor .input-text, {{WRAPPER}} #coupon_code, {{WRAPPER}} .select2-container--default .select2-selection--single',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_fields_focus_styles', [
			'label' => esc_html__( 'Focus', 'elementor-pro' ),
		] );

		$this->add_control(
			'forms_fields_focus_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-color: {{VALUE}}',
					'.e-woo-select2-wrapper .select2-results__option:focus' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_fields_focus_background',
				'selector' => '{{WRAPPER}} #customer_details .input-text:focus, {{WRAPPER}} #customer_details textarea:focus, {{WRAPPER}} #customer_details select:focus, {{WRAPPER}} .e-woocommerce-login-anchor .input-text:focus, {{WRAPPER}} #coupon_code:focus, {{WRAPPER}} .select2-container--default .select2-selection--single:focus',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_fields_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} #customer_details .input-text:focus, {{WRAPPER}} #customer_details textarea:focus, {{WRAPPER}} #customer_details select:focus, {{WRAPPER}} .e-woocommerce-login-anchor .input-text:focus, {{WRAPPER}} #coupon_code:focus, {{WRAPPER}} .select2-container--default .select2-selection--single:focus',
			]
		);

		$this->add_control(
			'forms_fields_focus_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_fields_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'forms_fields_focus_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-focus-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'forms_fields_border',
				'selector' => '{{WRAPPER}} #customer_details .input-text, {{WRAPPER}} #customer_details textarea, {{WRAPPER}} #customer_details select, {{WRAPPER}} .e-woocommerce-login-anchor .input-text, {{WRAPPER}} #coupon_code, {{WRAPPER}} .select2-container--default .select2-selection--single',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_fields_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_fields_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-fields-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					// style select2
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__rendered' => 'line-height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); padding-left: {{LEFT}}{{UNIT}}; padding-right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single .select2-selection__arrow' => 'height: calc( ({{TOP}}{{UNIT}}*2) + 16px ); right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .select2-container--default .select2-selection--single' => 'height: auto;',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'forms_button_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Button', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'forms_button_typography',
				'selector' => '{{WRAPPER}} .woocommerce-button',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'forms_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-button',
			]
		);

		$this->start_controls_tabs( 'forms_buttons_styles' );

		$this->start_controls_tab( 'forms_buttons_normal_styles', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'forms_buttons_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_normal_background',
				'selector' => '{{WRAPPER}} .woocommerce-button',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'forms_buttons_hover_styles', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'forms_buttons_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'forms_buttons_hover_background',
				'selector' => '{{WRAPPER}} .woocommerce-button:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'forms_buttons_focus_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-button:hover',
			]
		);

		$this->add_control(
			'forms_buttons_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-apply-coupon:hover, {{WRAPPER}} .woocommerce-form-login__submit:hover' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'forms_buttons_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'forms_buttons_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'forms_buttons_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-apply-coupon, {{WRAPPER}} .woocommerce-form-login__submit' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'forms_buttons_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} ' => '--forms-buttons-border-color: {{VALUE}};',
				],
				'condition' => [
					'forms_buttons_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'forms_buttons_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--forms-buttons-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'forms_buttons_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; width: auto;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_order_summary',
			[
				'label' => esc_html__( 'Order Summary', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'order_summary_rows_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'default' => [ 'px' => 0 ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-rows-gap-top: calc( {{SIZE}}{{UNIT}}/2 ); --order-summary-rows-gap-bottom: calc( {{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_control(
			'order_summary_items_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Items', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_items_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-items-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_items_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout-review-order-table .cart_item td',
			]
		);

		$this->add_control(
			'order_summary_variations_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Variations', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_variations_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-variations-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_variations_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .product-name .variation',
			]
		);

		$this->add_control(
			'order_summary_items_divider_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Dividers', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_items_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-items-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_items_divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-items-divider-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'order_summary_totals_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Titles & Totals', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_totals_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-totals-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_totals_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout-review-order-table thead, {{WRAPPER}} .woocommerce-checkout-review-order-table tfoot',
			]
		);

		$this->add_control(
			'order_summary_dividers_total_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Divider Total', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_totals_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-totals-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_totals_divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--order-summary-totals-divider-weight: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_purchase_button',
			[
				'label' => esc_html__( 'Purchase Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'purchase_button_typography',
				'selector' => '{{WRAPPER}} .woocommerce #payment #place_order',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'purchase_button_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce #payment #place_order',
			]
		);

		$this->start_controls_tabs( 'purchase_button_styles' );

		$this->start_controls_tab( 'purchase_button_normal_styles', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'purchase_button_normal_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-normal-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'purchase_button_normal_background',
				'selector' => '{{WRAPPER}} #payment #place_order',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'purchase_button_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} #place_order',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'purchase_button_hover_styles', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'purchase_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-hover-text-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'purchase_button_hover_background',
				'selector' => '{{WRAPPER}} #payment #place_order:hover',
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'purchase_button_hover_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} #place_order:hover',
			]
		);

		$this->add_control(
			'purchase_button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-hover-border-color: {{VALUE}}',
				],
				'condition' => [
					'purchase_button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'purchase_button_hover_transition_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-hover-transition-duration: {{SIZE}}ms',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
			]
		);

		$this->add_control(
			'purchase_button_hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'purchase_button_border',
				'selector' => '{{WRAPPER}} #place_order',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'purchase_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'purchase_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--purchase-button-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; --purchase-button-width: fit-content;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_customize',
			[
				'label' => esc_html__( 'Customize', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$customize_options = [];

		if ( $this->is_wc_feature_active( 'checkout_login_reminder' ) ) {
			$customize_options += [
				'customize_returning_customer' => esc_html__( 'Returning Customer', 'elementor-pro' ),
			];
		}

		$customize_options += [
			'customize_billing_details' => esc_html__( 'Billing Details', 'elementor-pro' ),
			'customize_additional_info' => esc_html__( 'Additional Information', 'elementor-pro' ),
		];

		if ( $this->is_wc_feature_active( 'shipping' ) ) {
			$customize_options += [
				'customize_shipping_address' => esc_html__( 'Shipping Address', 'elementor-pro' ),
			];
		}

		$customize_options += [
			'customize_order_summary' => esc_html__( 'Order Summary', 'elementor-pro' ),
		];

		if ( $this->is_wc_feature_active( 'coupons' ) ) {
			$customize_options += [
				'customize_coupon' => esc_html__( 'Coupon', 'elementor-pro' ),
			];
		}

		$customize_options += [
			'customize_payment' => esc_html__( 'Payment', 'elementor-pro' ),
		];

		$this->add_control(
			'section_checkout_show_customize_elements',
			[
				'label' => esc_html__( 'Select sections of the checkout to customize:', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => $customize_options,
				'render_type' => 'ui',
				'label_block' => true,
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_customize_returning_customer',
			[
				'label' => esc_html__( 'Customize: Returning Customer', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_returning_customer',
				],
			]
		);

		$this->add_control(
			'returning_customers_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_returning_customer_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'returning_customers_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-woocommerce-login-section',
			]
		);

		$this->add_control(
			'returning_customers_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'returning_customers_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'returning_customers_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'returning_customers_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'returning_customers_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'returning_customers_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'returning_customers_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'returning_customers_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'returning_customers_secondary_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Secondary Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'returning_customers_secondary_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-form-login-toggle' => '--sections-secondary-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'returning_customers_content_typography',
				'selector' => '{{WRAPPER}} .woocommerce-form-login-toggle',
			]
		);

		$this->add_control(
			'returning_customers_description_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'returning_customers_description_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-nudge' => '--sections-descriptions-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'returning_customers_description_typography',
				'selector' => '{{WRAPPER}} .e-woocommerce-login-nudge.e-description',
			]
		);

		$this->add_control(
			'returning_customers_checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkbox', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'returning_customers_checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--sections-checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'returning_customers_checkboxes_typography',
				'selector' => '{{WRAPPER}} .e-woocommerce-login-section .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->add_control(
			'returning_customers_link_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Link', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'returning_customers_links' );

		$this->start_controls_tab( 'returning_customers_normal_links', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'returning_customers_normal_links_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'returning_customers_hover_links', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'returning_customers_hover_links_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-login-section' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_customize_billing_details',
			[
				'label' => esc_html__( 'Customize: Billing Details', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_billing_details',
				],
			]
		);

		$this->add_control(
			'customize_billing_details_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_billing_details_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'billing_details_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-checkout__column-start .col2-set .col-1',
			]
		);

		$this->add_control(
			'billing_details_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'billing_details_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-checkout__column-start #customer_details .col-1' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'billing_details_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'billing_details_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-border-color: {{VALUE}}',
				],
				'condition' => [
					'billing_details_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'billing_details_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'billing_details_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'billing_details_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'billing_details_titles_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'billing_details_titles_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'billing_details_titles_typography',
				'selector' => '{{WRAPPER}} .woocommerce-billing-fields h3',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'billing_details_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-billing-fields h3',
			]
		);

		$this->add_control(
			'billing_details_checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkbox', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'billing_details_checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .col2-set .col-1' => '--sections-checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'billing_details_checkboxes_typography',
				'selector' => '{{WRAPPER}} .col2-set .col-1 .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_customize_additional_info',
			[
				'label' => esc_html__( 'Customize: Additional Information', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_additional_info',
				],
			]
		);

		$this->add_control(
			'customize_additional_information_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_additional_information_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'additional_information_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-additional-fields',
			]
		);

		$this->add_control(
			'additional_information_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'additional_information_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'additional_information_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'additional_information_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'additional_information_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'additional_information_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'additional_information_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'additional_information_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}}.e-checkout-layout-one-column .e-checkout__container' => 'grid-row-gap: {{BOTTOM}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'additional_information_titles_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'additional_information_titles_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-additional-fields' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'additional_information_titles_typography',
				'selector' => '{{WRAPPER}} .woocommerce-additional-fields h3',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'additional_information_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-additional-fields h3',
			]
		);

		$this->end_controls_section();

		if ( $this->is_wc_feature_active( 'shipping' ) ) {
			$this->add_shipping_style_controls();
		}

		if ( $this->is_wc_feature_active( 'coupons' ) ) {
			$this->add_coupons_style_controls();
		}

		$this->start_controls_section(
			'section_checkout_tabs_customize_order_summary',
			[
				'label' => esc_html__( 'Customize: Order Summary', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_order_summary',
				],
			]
		);

		$this->add_control(
			'customize_order_summary_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_order_summary_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'order_summary_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-checkout__order_review',
			]
		);

		$this->add_control(
			'order_summary_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'order_summary_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'order_summary_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'order_summary_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-border-color: {{VALUE}}',
				],
				'condition' => [
					'order_summary_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'order_summary_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'order_summary_titles_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_titles_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_titles_typography',
				'selector' => '{{WRAPPER}} h3#order_review_heading',
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'order_summary_titles_text_shadow',
				'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} h3#order_review_heading',
			]
		);

		$this->add_control(
			'order_summary_descriptions_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Message', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_descriptions_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-descriptions-color: {{VALUE}}; --sections-messages-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_descriptions_typography',
				'selector' => '{{WRAPPER}} .woocommerce-no-shipping-available-html.e-description, {{WRAPPER}} .woocommerce-no-shipping-available-html.e-checkout-message',
			]
		);

		$this->add_control(
			'order_summary_radios_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Radio Button', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_summary_radios_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-checkout__order_review' => '--sections-radio-buttons-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'order_summary_radio_typography',
				'selector' => '{{WRAPPER}} .woocommerce .e-checkout__order_review ul#shipping_method li label',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_checkout_tabs_customize_payment',
			[
				'label' => esc_html__( 'Customize: Payment', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_payment',
				],
			]
		);

		$this->add_control(
			'customize_payment_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_payment_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'payment_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-checkout #payment',
			]
		);

		$this->add_control(
			'payment_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'payment_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'payment_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'payment_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'payment_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'payment_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'payment_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'payment_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout #payment' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'payment_info_box_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Info Box', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'payment_info_box_title_background',
				'selector' => '{{WRAPPER}} #payment .payment_box',
			]
		);

		$this->add_control(
			'payment_description_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'payment_description_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout-payment' => '--sections-descriptions-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'payment_description_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout-payment .e-description',
			]
		);

		$this->add_control(
			'payment_messages_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Message', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'payment_messages_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout-payment' => '--sections-messages-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'payment_messages_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout #payment .payment_box, {{WRAPPER}} .woocommerce-privacy-policy-text p',
			]
		);

		$this->add_control(
			'payment_checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkbox', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'payment_checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-terms-and-conditions-wrapper' => '--sections-checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'payment_checkboxes_typography',
				'selector' => '{{WRAPPER}} .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->add_control(
			'payment_radio_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Radio Button', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'payment_radio_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout-payment' => '--sections-radio-buttons-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'payment_radio_typography',
				'selector' => '{{WRAPPER}} .woocommerce-checkout-payment .wc_payment_method label',
			]
		);

		$this->add_control(
			'payment_links_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Links', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'payment_colors' );

		$this->start_controls_tab( 'payment_normal_colors', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'payment_normal_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout-payment' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'payment_hover_colors', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'payment_hover_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-checkout-payment' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}

	private function add_checkout_login_reminder_controls() {
		$this->start_controls_section(
			'returning_customer_heading',
			[
				'label' => esc_html__( 'Returning Customer', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'returning_customer_section_title',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Returning customer?', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'returning_customer_link_text',
			[
				'label' => esc_html__( 'Link Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Click here to login', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_responsive_control(
			'returning_customer_title_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--login-title-alignment: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function add_shipping_controls() {
		$this->start_controls_section(
			'shipping_details_section',
			[
				'label' => esc_html__( 'Shipping Details', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'shipping_details_section_title',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Ship to a different address?', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'repeater_state',
			[
				'label' => esc_html__( 'Repeater State - hidden', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
			]
		);

		$repeater->add_control(
			'label_placeholder_notification',
			[
				'raw' => __( 'Note: This label and placeholder are taken from the Billing section. You can change it there.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'repeater_state' => 'from_billing',
				],
			]
		);

		$repeater->start_controls_tabs( 'tabs', [
			'condition' => [
				'repeater_state' => '',
			],
		] );

		$repeater->start_controls_tab( 'content_tab', [
			'label' => esc_html__( 'Content', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->add_control(
			'placeholder',
			[
				'label' => esc_html__( 'Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab( 'advanced_tab', [
			'label' => esc_html__( 'Advanced', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'default',
			[
				'label' => esc_html__( 'Default Value', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$repeater->add_control(
			'locale_notice',
			[
				'raw' => __( 'Note: This content cannot be changed due to local regulations.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'repeater_state' => 'locale',
				],
			]
		);

		$repeater->add_control(
			'from_billing_notice',
			[
				'raw' => __( 'Note: This label and placeholder are taken from the Billing section. You can change it there.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'repeater_state' => 'from_billing',
				],
			]
		);

		$this->add_control(
			'shipping_details_form_fields',
			[
				'label' => esc_html__( 'Form Items', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'item_actions' => [
					'add' => false,
					'duplicate' => false,
					'remove' => false,
					'sort' => false,
				],
				'default' => $this->get_shipping_field_defaults(),
				'title_field' => '{{{ label }}}',
			]
		);

		$this->end_controls_section();
	}

	private function add_signup_and_login_from_checkout_controls() {
		$this->start_controls_section(
			'create_account_section',
			[
				'label' => esc_html__( 'Create an Account', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'create_account_text',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Create an account?', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->end_controls_section();
	}

	private function add_coupon_controls() {
		$this->start_controls_section(
			'coupon_section',
			[
				'label' => esc_html__( 'Coupon', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'coupon_section_title_text',
			[
				'label' => esc_html__( 'Section Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Have a coupon?', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'coupon_section_title_link_text',
			[
				'label' => esc_html__( 'Link Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Click here to enter your coupon code', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_responsive_control(
			'coupon_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--coupon-title-alignment: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function add_shipping_style_controls() {
		$this->start_controls_section(
			'section_checkout_tabs_customize_shipping_address',
			[
				'label' => esc_html__( 'Customize: Shipping Address', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_shipping_address',
				],
			]
		);

		$this->add_control(
			'shipping_address_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_shipping_address_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'shipping_address_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .woocommerce-shipping-fields .shipping_address',
			]
		);

		$this->add_control(
			'shipping_address_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'shipping_address_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'shipping_address_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'shipping_address_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-border-color: {{VALUE}}',
				],
				'condition' => [
					'shipping_address_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'shipping_address_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'shipping_address_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'shipping_address_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields .shipping_address' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'shipping_address_checkboxes_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkboxes', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'shipping_address_checkboxes_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .woocommerce-shipping-fields' => '--sections-checkboxes-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'shipping_address_checkboxes_typography',
				'selector' => '{{WRAPPER}} .woocommerce-shipping-fields .woocommerce-form__label-for-checkbox span',
			]
		);

		$this->end_controls_section();
	}

	private function add_coupons_style_controls() {
		$this->start_controls_section(
			'section_checkout_tabs_customize_coupon',
			[
				'label' => esc_html__( 'Customize: Coupon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'section_checkout_show_customize_elements' => 'customize_coupon',
				],
			]
		);

		$this->add_control(
			'customize_coupon_section_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Section', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'customize_coupon_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'coupon_section_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .e-coupon-box',
			]
		);

		$this->add_control(
			'coupon_border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $this->get_custom_border_type_options(),
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-border-type: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'coupon_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'coupon_border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'coupon_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-border-color: {{VALUE}};',
				],
				'condition' => [
					'coupon_border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'coupon_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'coupon_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'coupon_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--sections-margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'coupon_secondary_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Secondary Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'coupon_secondary_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-woocommerce-coupon-nudge' => '--sections-secondary-title-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'coupon_content_typography',
				'selector' => '{{WRAPPER}} .e-woocommerce-coupon-nudge.e-checkout-secondary-title',
			]
		);

		$this->add_control(
			'coupon_link_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Link', 'elementor-pro' ),
			]
		);

		$this->start_controls_tabs( 'coupon_links' );

		$this->start_controls_tab( 'coupon_normal_links', [
			'label' => esc_html__( 'Normal', 'elementor-pro' ),
		] );

		$this->add_control(
			'coupon_normal_links_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--links-normal-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'coupon_hover_links', [
			'label' => esc_html__( 'Hover', 'elementor-pro' ),
		] );

		$this->add_control(
			'coupon_hover_links_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .e-coupon-box' => '--links-hover-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}

	/**
	 * Get Billing Field Defaults
	 *
	 * Get defaults used for the billing details repeater control.
	 *
	 * @since 3.5.0
	 *
	 * @return array
	 */
	private function get_billing_field_defaults() {
		$fields = [
			'billing_first_name' => [
				'label' => esc_html__( 'First Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'billing_last_name' => [
				'label' => esc_html__( 'Last Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'billing_company' => [
				'label' => esc_html__( 'Company Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'billing_country' => [
				'label' => esc_html__( 'Country / Region', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'billing_address_1' => [
				'label' => esc_html__( 'Street Address', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'billing_postcode' => [
				'label' => esc_html__( 'Post Code', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'billing_city' => [
				'label' => esc_html__( 'Town / City', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'billing_state' => [
				'label' => esc_html__( 'State', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'billing_phone' => [
				'label' => esc_html__( 'Phone', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'billing_email' => [
				'label' => esc_html__( 'Email Address', 'elementor-pro' ),
				'repeater_state' => '',
			],
		];

		return $this->reformat_address_field_defaults( $fields );
	}

	/**
	 * Get Shipping Field Defaults
	 *
	 * Get defaults used for the shipping details repeater control.
	 *
	 * @since 3.5.0
	 *
	 * @return array
	 */
	private function get_shipping_field_defaults() {
		$fields = [
			'shipping_first_name' => [
				'label' => esc_html__( 'First Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'shipping_last_name' => [
				'label' => esc_html__( 'Last Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'shipping_company' => [
				'label' => esc_html__( 'Company Name', 'elementor-pro' ),
				'repeater_state' => '',
			],
			'shipping_country' => [
				'label' => esc_html__( 'Country / Region', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'shipping_address_1' => [
				'label' => esc_html__( 'Street Address', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'shipping_postcode' => [
				'label' => esc_html__( 'Post Code', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'shipping_city' => [
				'label' => esc_html__( 'Town / City', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
			'shipping_state' => [
				'label' => esc_html__( 'State', 'elementor-pro' ),
				'repeater_state' => 'locale',
			],
		];

		return $this->reformat_address_field_defaults( $fields );
	}

	/**
	 * Reformat Address Field Defaults
	 *
	 * Used with the `get_..._field_defaults()` methods.
	 * Takes the address array and converts it into the format expected by the repeater controls.
	 *
	 * @since 3.5.0
	 *
	 * @param $address
	 * @return array
	 */
	private function reformat_address_field_defaults( $address ) {
		$defaults = [];
		foreach ( $address as $key => $value ) {
			$defaults[] = [
				'field_key' => $key,
				'field_label' => $value['label'],
				'label' => $value['label'],
				'placeholder' => $value['label'],
				'repeater_state' => $value['repeater_state'],
			];
		}

		return $defaults;
	}

	/**
	 * Get Main Woocommerce Sections Selectors
	 *
	 * Get all the 'Sections' selectors. There are numerous controls that need these selectors so it was easier
	 * to consolidate them into one function. Especially when updates need to be made.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	private function get_main_woocommerce_sections_selectors() {
		$selector = '{{WRAPPER}} .e-woocommerce-login-section, {{WRAPPER}} .woocommerce-checkout #customer_details .col-1, {{WRAPPER}} .woocommerce-additional-fields, {{WRAPPER}} .e-checkout__order_review, {{WRAPPER}} .e-coupon-box, {{WRAPPER}} .woocommerce-checkout #payment';
		if ( $this->is_wc_feature_active( 'shipping' ) ) {
			$selector .= ', {{WRAPPER}} .woocommerce-shipping-fields .shipping_address';
		}
		return $selector;
	}

	/**
	 * Get Main Woocommerce Sections Title Selectors
	 *
	 * Get all the 'Title' selectors. There are numerous controls that need these selectors so it was easier to
	 * consolidate them into one function. Especially when updates need to be made.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	private function get_main_woocommerce_sections_title_selectors() {
		return '{{WRAPPER}} h3#order_review_heading, {{WRAPPER}} .woocommerce-billing-fields h3, {{WRAPPER}} .woocommerce-additional-fields h3';
	}

	/**
	 * Init Gettext Modifications
	 *
	 * Sets the `$gettext_modifications` property used with the `filter_gettext()` in the extended Base_Widget.
	 *
	 * @since 3.5.0
	 */
	protected function init_gettext_modifications() {
		$instance = $this->get_settings_for_display();

		$this->gettext_modifications = [
			'Billing details' => isset( $instance['billing_details_section_title'] ) ? $instance['billing_details_section_title'] : '',
			'Billing &amp; Shipping' => isset( $instance['billing_details_section_title'] ) ? $instance['billing_details_section_title'] : '',
			'Ship to a different address?' => isset( $instance['shipping_details_section_title'] ) ? $instance['shipping_details_section_title'] : '',
			'Additional information' => isset( $instance['additional_information_section_title'] ) ? $instance['additional_information_section_title'] : '',
			'Your order' => isset( $instance['order_summary_section_title'] ) ? $instance['order_summary_section_title'] : '',
			'Have a coupon?' => isset( $instance['coupon_section_title_text'] ) ? $instance['coupon_section_title_text'] : '',
			'Click here to enter your coupon code' => isset( $instance['coupon_section_title_link_text'] ) ? $instance['coupon_section_title_link_text'] : '',
			'Returning customer?' => isset( $instance['returning_customer_section_title'] ) ? $instance['returning_customer_section_title'] : '',
			'Click here to login' => isset( $instance['returning_customer_link_text'] ) ? $instance['returning_customer_link_text'] : '',
			'Create an account?' => isset( $instance['create_account_text'] ) ? $instance['create_account_text'] : '',
		];
	}

	/**
	 * WooCommerce Terms and Conditions Checkbox Text.
	 *
	 * WooCommerce filter is used to apply widget settings to Checkout Terms & Conditions text and link text.
	 *
	 * @since 3.5.0
	 *
	 * @param string $text
	 * @return string
	 */
	public function woocommerce_terms_and_conditions_checkbox_text( $text ) {
		$instance = $this->get_settings_for_display();

		if ( ! isset( $instance['terms_conditions_message_text'] ) || ! isset( $instance['terms_conditions_link_text'] ) ) {
			return $text;
		}

		$message = $instance['terms_conditions_message_text'];
		$link = $instance['terms_conditions_link_text'];

		$terms_page_id = wc_terms_and_conditions_page_id();
		if ( $terms_page_id ) {
			$message .= ' <a href="' . esc_url( get_permalink( $terms_page_id ) ) . '" class="woocommerce-terms-and-conditions-link" target="_blank">' . $link . '</a>';
		}

		return $message;
	}

	/**
	 * Modify Form Field.
	 *
	 * WooCommerce filter is used to apply widget settings to the Checkout forms address fields
	 * from the Billing and Shipping Details widget sections, e.g. label, placeholder, default.
	 *
	 * @since 3.5.0
	 *
	 * @param array $args
	 * @param string $key
	 * @param string $value
	 * @return array
	 */
	public function modify_form_field( $args, $key, $value ) {
		$reformatted_form_fields = $this->get_reformatted_form_fields();

		// Check if we need to modify the args of this form field.
		if ( isset( $reformatted_form_fields[ $key ] ) ) {
			$apply_fields = [
				'label',
				'placeholder',
				'default',
			];

			foreach ( $apply_fields as $field ) {
				if ( ! empty( $reformatted_form_fields[ $key ][ $field ] ) ) {
					$args[ $field ] = $reformatted_form_fields[ $key ][ $field ];
				}
			}
		}

		return $args;
	}

	/**
	 * Get Reformatted Form Fields.
	 *
	 * Combines the 3 relevant repeater settings arrays into a one level deep associative array
	 * with the keys that match those that WooCommerce uses for its form fields.
	 *
	 * The result is cached so the conversion only ever happens once.
	 *
	 * @since 3.5.0
	 *
	 * @return array
	 */
	private function get_reformatted_form_fields() {
		if ( ! isset( $this->reformatted_form_fields ) ) {
			$instance = $this->get_settings_for_display();

			// Reformat form repeater field into one usable array.
			$repeater_fields = [
				'billing_details_form_fields',
				'shipping_details_form_fields',
				'additional_information_form_fields',
			];

			$this->reformatted_form_fields = [];

			// Apply other modifications to inputs.
			foreach ( $repeater_fields as $repeater_field ) {
				if ( isset( $instance[ $repeater_field ] ) ) {
					foreach ( $instance[ $repeater_field ] as $item ) {
						if ( ! isset( $item['field_key'] ) ) {
							continue;
						}
						$this->reformatted_form_fields[ $item['field_key'] ] = $item;
					}
				}
			}
		}

		return $this->reformatted_form_fields;
	}

	/**
	 * Render Woocommerce Checkout Login Form
	 *
	 * A custom function to render a login form on the Checkout widget. The default WC Login form
	 * was removed in this file's render() method with:
	 * remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_login_form' );
	 *
	 * And then we are adding this form into the widget at the
	 * 'woocommerce_checkout_before_customer_details' hook.
	 *
	 * We are doing this in order to match the placement of the Login form to the provided design.
	 * WC places these forms ABOVE the checkout form section where as we needed to place them inside the
	 * checkout form section. So we removed the default login form and added our own form.
	 *
	 * @since 3.5.0
	 */
	private function render_woocommerce_checkout_login_form() {
		$settings = $this->get_settings_for_display();
		$button_classes = [ 'woocommerce-button', 'button', 'woocommerce-form-login__submit', 'e-woocommerce-form-login-submit' ];
		if ( $settings['forms_buttons_hover_animation'] ) {
			$button_classes[] = 'elementor-animation-' . $settings['forms_buttons_hover_animation'];
		}
		$this->add_render_attribute(
			'button_login', [
				'class' => $button_classes,
				'name' => 'login',
				'type' => 'submit',
			]
		);
		?>
		<div class="e-woocommerce-login-section">
			<div class="elementor-woocommerce-login-messages"></div>
			<div class="woocommerce-form-login-toggle e-checkout-secondary-title">
				<?php echo esc_html__( 'Returning customer?', 'elementor-pro' ) . ' <a href="#" class="e-show-login">' . esc_html__( 'Click here to login', 'elementor-pro' ) . '</a>'; ?>
			</div>
			<div class="e-woocommerce-login-anchor" style="display:none;">
				<p class="e-woocommerce-login-nudge e-description"><?php echo esc_html__( 'If you have shopped with us before, please enter your details below. If you are a new customer, please proceed to the Billing section.', 'elementor-pro' ); ?></p>

				<div class="e-login-wrap">
					<div class="e-login-wrap-start">
						<p class="form-row form-row-first">
							<label for="username"><?php esc_html_e( 'Email', 'elementor-pro' ); ?> <span class="required">*</span></label>
							<input type="text" class="input-text" name="username" id="username" autocomplete="username" />
						</p>
						<p class="form-row form-row-last">
							<label for="password"><?php esc_html_e( 'Password', 'elementor-pro' ); ?> <span class="required">*</span></label>
							<input class="input-text" type="password" name="password" id="password" autocomplete="current-password" />
						</p>
						<div class="clear"></div>
					</div>

					<div class="e-login-wrap-end">
						<p class="form-row">
							<label for="login" class="e-login-label">&nbsp;</label>
							<?php wp_nonce_field( 'woocommerce-login', 'woocommerce-login-nonce' ); ?>
							<input type="hidden" name="redirect" value="<?php echo esc_url( get_permalink() ); ?>" />
							<button <?php $this->print_render_attribute_string( 'button_login' ); ?> value="<?php esc_attr_e( 'Login', 'elementor-pro' ); ?>"><?php esc_html_e( 'Login', 'elementor-pro' ); ?></button>
						</p>
						<div class="clear"></div>
					</div>
				</div>

				<div class="e-login-actions-wrap">
					<div class="e-login-actions-wrap-start">
						<label class="woocommerce-form__label woocommerce-form__label-for-checkbox woocommerce-form-login__rememberme">
							<input class="woocommerce-form__input woocommerce-form__input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <span class="elementor-woocomemrce-login-rememberme"><?php esc_html_e( 'Remember me', 'elementor-pro' ); ?></span>
						</label>
					</div>

					<div class="e-login-actions-wrap-end">
						<p class="lost_password">
							<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php esc_html_e( 'Lost your password?', 'elementor-pro' ); ?></a>
						</p>
					</div>
				</div>

			</div>
		</div>
		<?php
	}

	/**
	 * Render Woocommerce Checkout Coupon Form
	 *
	 * A custom function to render a coupon form on the Checkout widget. The default WC coupon form
	 * was removed in this file's render() method with:
	 * remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_login_form' );
	 *
	 * And then we are adding this form into the widget at the
	 * 'woocommerce_checkout_order_review' hook.
	 *
	 * We are doing this in order to match the placement of the coupon form to the provided design.
	 * WC places these forms ABOVE the checkout form section where as we needed to place them inside the
	 * checkout form section. So we removed the default coupon form and added our own form.
	 *
	 * @since 3.5.0
	 */
	private function render_woocommerce_checkout_coupon_form() {
		$settings = $this->get_settings_for_display();
		$button_classes = [ 'woocommerce-button', 'button', 'e-apply-coupon' ];
		if ( $settings['forms_buttons_hover_animation'] ) {
			$button_classes[] = 'elementor-animation-' . $settings['forms_buttons_hover_animation'];
		}
		$this->add_render_attribute(
			'button_coupon', [
				'class' => $button_classes,
				'name' => 'apply_coupon',
				'type' => 'submit',
			]
		);
		?>
		<div class="e-coupon-box">
			<p class="e-woocommerce-coupon-nudge e-checkout-secondary-title"><?php esc_html_e( 'Have a coupon?', 'elementor-pro' ); ?> <a href="#" class="e-show-coupon-form"><?php esc_html_e( 'Click here to enter your coupon code', 'elementor-pro' ); ?></a></p>
			<div class="e-coupon-anchor" style="display:none">
				<label class="e-coupon-anchor-description"><?php esc_html_e( 'If you have a coupon code, please apply it below.', 'elementor-pro' ); ?></label>
				<div class="form-row">
					<div class="coupon-container-grid">
						<div class="col coupon-col-1 ">
							<input type="text" name="coupon_code" class="input-text" placeholder="<?php esc_attr_e( 'Coupon code', 'elementor-pro' ); ?>" id="coupon_code" value="" />
						</div>
						<div class="col coupon-col-2">
							<button <?php $this->print_render_attribute_string( 'button_coupon' ); ?>><?php esc_html_e( 'Apply', 'elementor-pro' ); ?></button>
						</div>
					</div>
				</div>
				<div class="clear"></div>
			</div>
		</div>
		<?php
	}

	/**
	 * Should Render Login
	 *
	 * Decide if the login form should be rendered.
	 * The login form should be rendered if:
	 * 1) The WooCommerce setting is enabled
	 * 2) AND: a logged out user is viewing the page, OR the Editor is open
	 *
	 * @since 3.5.0
	 *
	 * @return boolean
	 */
	private function should_render_login() {
		return 'no' !== get_option( 'woocommerce_enable_checkout_login_reminder' ) && ( ! is_user_logged_in() || Plugin::elementor()->editor->is_edit_mode() );
	}

	/**
	 * Should Render Coupon
	 *
	 * Decide if the coupon form should be rendered.
	 * The coupon form should be rendered if:
	 * 1) The WooCommerce setting is enabled
	 * 2) AND: a payment is needed, OR the Editor is open
	 *
	 * @since 3.5.0
	 *
	 * @return boolean
	 */
	private function should_render_coupon() {
		return ( WC()->cart->needs_payment() || Plugin::elementor()->editor->is_edit_mode() ) && wc_coupons_enabled();
	}

	/**
	 * WooCommerce Checkout Before Customer Details
	 *
	 * Callback function for the woocommerce_checkout_before_customer_details hook that outputs elements
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_before_customer_details() {
		?>
		<div class="e-checkout__container">
			<!--open container-->
			<div class="e-checkout__column e-checkout__column-start">
				<!--open column-1-->
		<?php
		if ( $this->should_render_login() ) {
			$this->render_woocommerce_checkout_login_form();
		}
	}

	/**
	 * Woocommerce Checkout After Customer Details
	 *
	 * Output containing elements. Callback function for the woocommerce_checkout_after_customer_details hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_after_customer_details() {
		?>
					<!--close column-1-->
				</div>
		<?php
	}

	/**
	 * Woocommerce Checkout Before Order Review Heading 1
	 *
	 * Output containing elements. Callback function for the woocommerce_checkout_before_order_review_heading hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_before_order_review_heading_1() {
		?>
				<div class="e-checkout__column e-checkout__column-end">
					<!--open column-2-->
						<div class="e-checkout__column-inner e-sticky-right-column">
							<!--open column-inner-->
		<?php
	}

	/**
	 * Woocommerce Checkout Before Order Review Heading 2
	 *
	 * Output containing elements. Callback function for the woocommerce_checkout_before_order_review_heading hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_before_order_review_heading_2() {
		?>
							<div class="e-checkout__order_review">
								<!--open order_review-->
		<?php
	}

	/**
	 * Woocommerce Checkout Order Review
	 *
	 * Output containing elements. Callback function for the woocommerce_checkout_order_review hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_order_review() {
		?>
									<!--close wc_order_review-->
								</div>
								<!--close order_review-->
							</div>
		<?php
		if ( $this->should_render_coupon() ) {
			$this->render_woocommerce_checkout_coupon_form();
		}
		?>
							<div class="e-checkout__order_review-2">
								<!--reopen wc_order_review-2-->
		<?php
	}

	/**
	 * Woocommerce Checkout After Order Review
	 *
	 * Output containing elements. Callback function for the woocommerce_checkout_after_order_review hook.
	 *
	 * This eliminates the need for template overrides.
	 *
	 * @since 3.5.0
	 */
	public function woocommerce_checkout_after_order_review() {
		?>
										<!--close wc_order_review-2-->
						<!--close column-inner-->
					</div>
					<!--close column-2-->
				</div>
				<!--close container-->
			</div>
		<?php
	}

	/**
	 * Add Render Hooks
	 *
	 * Add actions & filters before displaying our widget.
	 *
	 * @since 3.5.0
	 */
	public function add_render_hooks() {
		add_filter( 'woocommerce_form_field_args', [ $this, 'modify_form_field' ], 70, 3 );
		add_filter( 'woocommerce_get_terms_and_conditions_checkbox_text', [ $this, 'woocommerce_terms_and_conditions_checkbox_text' ], 10, 1 );

		add_filter( 'gettext', [ $this, 'filter_gettext' ], 20, 3 );

		add_action( 'woocommerce_checkout_before_customer_details', [ $this, 'woocommerce_checkout_before_customer_details' ], 5 );
		add_action( 'woocommerce_checkout_after_customer_details', [ $this, 'woocommerce_checkout_after_customer_details' ], 95 );
		add_action( 'woocommerce_checkout_before_order_review_heading', [ $this, 'woocommerce_checkout_before_order_review_heading_1' ], 5 );
		add_action( 'woocommerce_checkout_before_order_review_heading', [ $this, 'woocommerce_checkout_before_order_review_heading_2' ], 95 );
		add_action( 'woocommerce_checkout_order_review', [ $this, 'woocommerce_checkout_order_review' ], 15 );
		add_action( 'woocommerce_checkout_after_order_review', [ $this, 'woocommerce_checkout_after_order_review' ], 95 );

		// remove the default login & coupon form because we'll be adding our own forms
		remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form' );
		remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_login_form' );
	}

	/**
	 * Remove Render Hooks
	 *
	 * Remove actions & filters after displaying our widget.
	 *
	 * @since 3.5.0
	 */
	public function remove_render_hooks() {
		remove_filter( 'woocommerce_form_field_args', [ $this, 'modify_form_field' ], 70 );
		remove_filter( 'woocommerce_get_terms_and_conditions_checkbox_text', [ $this, 'woocommerce_terms_and_conditions_checkbox_text' ], 10 );

		remove_filter( 'gettext', [ $this, 'filter_gettext' ], 20 );

		remove_action( 'woocommerce_checkout_before_customer_details', [ $this, 'woocommerce_checkout_before_customer_details' ], 5 );
		remove_action( 'woocommerce_checkout_after_customer_details', [ $this, 'woocommerce_checkout_after_customer_details' ], 95 );
		remove_action( 'woocommerce_checkout_before_order_review_heading', [ $this, 'woocommerce_checkout_before_order_review_heading_1' ], 5 );
		remove_action( 'woocommerce_checkout_before_order_review_heading', [ $this, 'woocommerce_checkout_before_order_review_heading_2' ], 95 );
		remove_action( 'woocommerce_checkout_order_review', [ $this, 'woocommerce_checkout_order_review' ], 15 );
		remove_action( 'woocommerce_checkout_after_order_review', [ $this, 'woocommerce_checkout_after_order_review' ], 95 );
	}

	protected function render() {
		$is_editor = Plugin::elementor()->editor->is_edit_mode();

		// Simulate a logged out user so that all WooCommerce sections will render in the Editor
		if ( $is_editor ) {
			$store_current_user = wp_get_current_user()->ID;
			wp_set_current_user( 0 );
		}

		// Add actions & filters before displaying our Widget.
		$this->add_render_hooks();

		// Display our Widget.
		echo do_shortcode( '[woocommerce_checkout]' );

		// Remove actions & filters after displaying our Widget.
		$this->remove_render_hooks();

		// Return to existing logged-in user after widget is rendered.
		if ( $is_editor ) {
			wp_set_current_user( $store_current_user );
		}
	}
}
PK!�`''9modules/woocommerce/widgets/product-short-description.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Short_Description extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-short-description';
	}

	public function get_title() {
		return esc_html__( 'Short Description', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-description';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'text', 'description', 'product' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_description_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_responsive_control(
			'text_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-product-details__short-description' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'text_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-product-details__short-description',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		global $product;
		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		wc_get_template( 'single-product/short-description.php' );
	}

	public function render_plain_content() {}
}
PK!6�7�����)modules/woocommerce/widgets/menu-cart.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Background;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Menu_Cart extends Base_Widget {

	public function get_name() {
		return 'woocommerce-menu-cart';
	}

	public function get_title() {
		return esc_html__( 'Menu Cart', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-cart';
	}

	public function get_categories() {
		return [ 'theme-elements', 'woocommerce-elements' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_menu_icon_content',
			[
				'label' => esc_html__( 'Menu Icon', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'cart-light' => esc_html__( 'Cart', 'elementor-pro' ) . ' ' . esc_html__( 'Light', 'elementor-pro' ),
					'cart-medium' => esc_html__( 'Cart', 'elementor-pro' ) . ' ' . esc_html__( 'Medium', 'elementor-pro' ),
					'cart-solid' => esc_html__( 'Cart', 'elementor-pro' ) . ' ' . esc_html__( 'Solid', 'elementor-pro' ),
					'basket-light' => esc_html__( 'Basket', 'elementor-pro' ) . ' ' . esc_html__( 'Light', 'elementor-pro' ),
					'basket-medium' => esc_html__( 'Basket', 'elementor-pro' ) . ' ' . esc_html__( 'Medium', 'elementor-pro' ),
					'basket-solid' => esc_html__( 'Basket', 'elementor-pro' ) . ' ' . esc_html__( 'Solid', 'elementor-pro' ),
					'bag-light' => esc_html__( 'Bag', 'elementor-pro' ) . ' ' . esc_html__( 'Light', 'elementor-pro' ),
					'bag-medium' => esc_html__( 'Bag', 'elementor-pro' ) . ' ' . esc_html__( 'Medium', 'elementor-pro' ),
					'bag-solid' => esc_html__( 'Bag', 'elementor-pro' ) . ' ' . esc_html__( 'Solid', 'elementor-pro' ),
				],
				'default' => 'cart-medium',
				'prefix_class' => 'toggle-icon--',
			]
		);

		$this->add_control(
			'items_indicator',
			[
				'label' => esc_html__( 'Items Indicator', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'bubble' => esc_html__( 'Bubble', 'elementor-pro' ),
					'plain' => esc_html__( 'Plain', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-menu-cart--items-indicator-',
				'default' => 'bubble',
			]
		);

		$this->add_control(
			'hide_empty_indicator',
			[
				'label' => esc_html__( 'Hide Empty', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'return_value' => 'hide',
				'prefix_class' => 'elementor-menu-cart--empty-indicator-',
				'condition' => [
					'items_indicator!' => 'none',
				],
			]
		);

		$this->add_control(
			'show_subtotal',
			[
				'label' => esc_html__( 'Subtotal', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'prefix_class' => 'elementor-menu-cart--show-subtotal-',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--main-alignment: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart',
			[
				'label' => esc_html__( 'Cart', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'cart_type',
			[
				'label' => esc_html__( 'Cart Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'side-cart' => esc_html__( 'Side Cart', 'elementor-pro' ),
					'mini-cart' => esc_html__( 'Mini Cart', 'elementor-pro' ),
				],
				'default' => 'side-cart',
				'prefix_class' => 'elementor-menu-cart--cart-type-',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'open_cart',
			[
				'label' => esc_html__( 'Open Cart', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'click' => esc_html__( 'On Click', 'elementor-pro' ),
					'mouseover' => esc_html__( 'On Hover', 'elementor-pro' ),
				],
				'default' => 'click',
				'frontend_available' => true,
				'render_type' => 'template',
			]
		);

		$this->add_responsive_control(
			'side_cart_alignment',
			[
				'label' => esc_html__( 'Cart Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'cart_type' => 'side-cart',
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => '--side-cart-alignment-transform: translateX(-100%); --side-cart-alignment-right: auto; --side-cart-alignment-left: 0;',
					'end' => '--side-cart-alignment-transform: translateX(100%); --side-cart-alignment-left: auto; --side-cart-alignment-right: 0;',
				],
			]
		);

		$this->add_responsive_control(
			'mini_cart_alignment',
			[
				'label' => esc_html__( 'Cart Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'cart_type' => 'mini-cart',
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => 'left: 0; right: auto; transform: none;',
					'center' => 'left: 50%; right: auto; transform: translateX(-50%);',
					'end' => 'right: 0; left: auto; transform: none;',
				],
			]
		);

		$this->add_responsive_control(
			'mini_cart_spacing',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'range' => [
					'px' => [
						'min' => -300,
						'max' => 300,
					],
					'%' => [
						'min' => -100,
						'max' => 100,
					],
				],
				'condition' => [
					'cart_type' => 'mini-cart',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--mini-cart-spacing: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_close_cart_button',
			[
				'label' => esc_html__( 'Close Cart', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'close_cart_button_show',
			[
				'label' => esc_html__( 'Close Icon', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__close-button' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'' => 'display: none;',
				],
			]
		);

		$this->add_control(
			'close_cart_button_alignment',
			[
				'label' => esc_html__( 'Icon Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'close_cart_button_show!' => '',
				],
				'selectors_dictionary' => [
					'start' => 'margin-right: auto',
					'end' => 'margin-left: auto',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__close-button' => '{{VALUE}};',
				],
			]
		);

		$this->add_control(
			'heading_remove_item_button',
			[
				'label' => esc_html__( 'Remove Item', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'show_remove_icon',
			[
				'label' => esc_html__( 'Remove Item Icon', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'prefix_class' => 'elementor-menu-cart--show-remove-button-',
			]
		);

		$this->add_control(
			'remove_item_button_position',
			[
				'label' => esc_html__( 'Icon Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'default' => '',
				'prefix_class' => 'remove-item-position--',
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->add_control(
			'heading_price_quantity',
			[
				'label' => esc_html__( 'Price and Quantity', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'price_quantity_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'top' => '--price-quantity-position--grid-template-rows: auto 75%; --price-quantity-position--align-self: start;',
					'bottom' => '',
				],
			]
		);

		$this->add_control(
			'show_divider',
			[
				'label' => esc_html__( 'Cart Dividers', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => '--divider-style: {{VALUE}}; --subtotal-divider-style: {{VALUE}};',
				],
				'selectors_dictionary' => [
					'' => 'none',
					'yes' => 'solid',
				],
			]
		);

		$this->add_control(
			'heading_buttons',
			[
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'view_cart_button_show',
			[
				'label' => esc_html__( 'View Cart', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'' => '--view-cart-button-display: none; --cart-footer-layout: 1fr;',
				],
			]
		);

		$this->add_control(
			'view_cart_button_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justify', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'condition' => [
					'view_cart_button_show!' => '',
					'checkout_button_show' => '',
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: left; --cart-footer-buttons-alignment-button-width: auto;',
					'center' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: center; --cart-footer-buttons-alignment-button-width: auto;',
					'end' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: right; --cart-footer-buttons-alignment-button-width: auto;',
					'justify' => '--cart-footer-layout: 1fr;',
				],
			]
		);

		$this->add_control(
			'checkout_button_show',
			[
				'label' => esc_html__( 'Checkout', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'' => '--checkout-button-display: none; --cart-footer-layout: 1fr;',
				],
			]
		);

		$this->add_control(
			'checkout_button_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justify', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'condition' => [
					'checkout_button_show!' => '',
					'view_cart_button_show' => '',
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'start' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: left; --cart-footer-buttons-alignment-button-width: auto;',
					'center' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: center; --cart-footer-buttons-alignment-button-width: auto;',
					'end' => '--cart-footer-buttons-alignment-display: block; --cart-footer-buttons-alignment-text-align: right; --cart-footer-buttons-alignment-button-width: auto;',
					'justify' => '--cart-footer-layout: 1fr;',
				],
			]
		);

		$this->add_control(
			'checkout_button_display',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'condition' => [
					'checkout_button_show' => '',
					'view_cart_button_show' => '',
				],
				'default' => '--cart-footer-buttons-alignment-display: none;',
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
			]
		);

		$this->add_control(
			'buttons_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'default' => '',
				'condition' => [
					'cart_type' => 'side-cart',
				],
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'view_cart_button_show',
							'operator' => '!=',
							'value' => '',
						],
						[
							'name' => 'checkout_button_show',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'bottom' => '--cart-buttons-position-margin: auto;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_additional_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_additional_options',
			[
				'label' => esc_html__( 'Cart', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'automatically_open_cart',
			[
				'label' => esc_html__( 'Automatically Open Cart', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'description' => esc_html__( 'Open the cart every time an item is added.', 'elementor-pro' ),
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'no',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'automatically_update_cart',
			[
				'label' => esc_html__( 'Automatically Update Cart', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'return_value' => 'yes',
				'default' => 'yes',
				'description' => esc_html__( 'Updates to the cart (e.g., a removed item) via Ajax. The cart will update without refreshing the whole page.', 'elementor-pro' ),
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'yes' => '--elementor-remove-from-cart-button: none; --remove-from-cart-button: block;',
					''    => '--elementor-remove-from-cart-button: block; --remove-from-cart-button: none;',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_toggle_style',
			[
				'label' => esc_html__( 'Menu Icon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'toggle_button_colors' );

		$this->start_controls_tab( 'toggle_button_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'toggle_button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-text-color: {{VALUE}};',
				],
				'condition' => [
					'show_subtotal!' => '',
				],
			]
		);

		$this->add_control(
			'toggle_button_icon_color',
			[
				'label' => esc_html__( 'Icon Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-icon-color: {{VALUE}};',
				],
				'condition' => [
					'icon!' => 'custom',
				],
			]
		);

		$this->add_control(
			'toggle_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'toggle_button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-border-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'toggle_button_normal_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-menu-cart__toggle .elementor-button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'toggle_button_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'toggle_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-hover-text-color: {{VALUE}};',
				],
				'condition' => [
					'show_subtotal!' => '',
				],
			]
		);

		$this->add_control(
			'toggle_button_hover_icon_color',
			[
				'label' => esc_html__( 'Icon Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-icon-hover-color: {{VALUE}};',
				],
				'condition' => [
					'icon!' => 'custom',
				],
			]
		);

		$this->add_control(
			'toggle_button_hover_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-hover-background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'toggle_button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-hover-border-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'toggle_button_hover_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-menu-cart__toggle .elementor-button:hover',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'toggle_button_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-border-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'toggle_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-border-radius: {{SIZE}}{{UNIT}}',
				],

			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'toggle_button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__toggle .elementor-button',
				'separator' => 'before',
				'condition' => [
					'show_subtotal!' => '',
				],
			]
		);

		$this->add_control(
			'heading_icon_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'toggle_icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'size_units' => [ '%', 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-icon-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'toggle_icon_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'size_units' => [ 'em', 'px' ],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-menu-cart__toggle .elementor-button-text' => 'margin-right: {{SIZE}}{{UNIT}};',
					'body.rtl {{WRAPPER}} .elementor-menu-cart__toggle .elementor-button-text' => 'margin-left: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'show_subtotal!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'toggle_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-icon-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'items_indicator_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Items Indicator', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'items_indicator!' => 'none',
				],
			]
		);
		$this->add_control(
			'items_indicator_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--items-indicator-text-color: {{VALUE}};',
				],
				'condition' => [
					'items_indicator!' => 'none',
				],
			]
		);

		$this->add_control(
			'items_indicator_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--items-indicator-background-color: {{VALUE}};',
				],
				'condition' => [
					'items_indicator' => 'bubble',
				],
			]
		);

		$this->add_responsive_control(
			'items_indicator_distance',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 4,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before' => 'right: -{{SIZE}}{{UNIT}}; top: -{{SIZE}}{{UNIT}};',
					'body.rtl {{WRAPPER}} .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before' => 'right: {{SIZE}}{{UNIT}}; top: -{{SIZE}}{{UNIT}}; left: auto;',
				],
				'condition' => [
					'items_indicator' => 'bubble',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_cart_style',
			[
				'label' => esc_html__( 'Cart', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--cart-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'border_type',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
					'groove' => esc_html__( 'Groove', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}}' => '--cart-border-style: {{VALUE}};',
				],
				'default' => 'none',
			]
		);

		$this->add_responsive_control(
			'border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__main' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'border_type!' => 'none',
				],
			]
		);

		$this->add_control(
			'border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--cart-border-color: {{VALUE}};',
				],
				'condition' => [
					'border_type!' => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--cart-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'cart_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-menu-cart__main',
			]
		);

		$this->add_responsive_control(
			'cart_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--cart-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_close',
			[
				'label' => esc_html__( 'Close Cart', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'close_cart_button_show!' => '',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'close_cart_icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--cart-close-icon-size: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'close_cart_button_show!' => '',
				],
			]
		);

		$this->start_controls_tabs( 'cart_icon_style' );

		$this->start_controls_tab(
			'icon_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'close_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'close_cart_icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--cart-close-button-color: {{VALUE}};',
				],
				'condition' => [
					'close_cart_button_show!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'icon_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'close_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'close_cart_icon_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--cart-close-button-hover-color: {{VALUE}};',
				],
				'condition' => [
					'close_cart_button_show!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'heading_remove_item_button_style',
			[
				'label' => esc_html__( 'Remove Item', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'remove_item_button_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--remove-item-button-size: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->start_controls_tabs(
			'cart_remove_item_button_style',
			[
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->start_controls_tab(
			'remove_item_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->add_control(
			'remove_item_button_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--remove-item-button-color: {{VALUE}}',
				],
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'remove_item_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->add_control(
			'remove_item_button_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--remove-item-button-hover-color: {{VALUE}};',
				],
				'condition' => [
					'show_remove_icon!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'heading_subtotal_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Subtotal', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'subtotal_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--menu-cart-subtotal-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'subtotal_typography',
				'selector' => '{{WRAPPER}} .elementor-menu-cart__subtotal',
			]
		);

		$this->add_responsive_control(
			'subtotal_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--menu-cart-subtotal-text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'subtotal_divider_style',
			[
				'label' => esc_html__( 'Divider Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
					'groove' => esc_html__( 'Groove', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} .widget_shopping_cart_content' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'' => '--subtotal-divider-left-width: 0; --subtotal-divider-right-width: 0;',
					'solid' => '--subtotal-divider-style: solid;',
					'double' => '--subtotal-divider-style: double;',
					'dotted' => '--subtotal-divider-style: dotted;',
					'dashed' => '--subtotal-divider-style: dashed;',
					'groove' => '--subtotal-divider-style: groove;',
				],
			]
		);

		$this->add_responsive_control(
			'subtotal_divider_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .widget_shopping_cart_content' => '--subtotal-divider-top-width: {{TOP}}{{UNIT}}; --subtotal-divider-right-width: {{RIGHT}}{{UNIT}}; --subtotal-divider-bottom-width: {{BOTTOM}}{{UNIT}}; --subtotal-divider-left-width: {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'subtotal_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .widget_shopping_cart_content' => '--subtotal-divider-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_product_tabs_style',
			[
				'label' => esc_html__( 'Products', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_product_title_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Product Title', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'product_title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__product-name a',
			]
		);

		$this->start_controls_tabs( 'product_title_colors' );

		$this->start_controls_tab( 'product_title_normal_colors', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'product_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__product-name a' => 'color: {{VALUE}};',

				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'product_title_hover_colors', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'product_title_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__product-name a:hover' => 'color: {{VALUE}};',

				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'heading_product_price_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Product Price', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'product_price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--product-price-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'product_price_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__product-price',
			]
		);

		$this->add_control(
			'heading_quantity_title_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Quantity', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'product_quantity_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__product-price .product-quantity' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'product_quantity_typography',
				'selector' => '{{WRAPPER}} .elementor-menu-cart__product-price .product-quantity',
			]
		);

		$this->add_control(
			'heading_product_divider_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'divider_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
					'groove' => esc_html__( 'Groove', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}}' => '--divider-style: {{VALUE}}; --subtotal-divider-style: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--divider-color: {{VALUE}}; --subtotal-divider-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'divider_width',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 10,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--divider-width: {{SIZE}}{{UNIT}}; --subtotal-divider-top-width: {{SIZE}}{{UNIT}}; --subtotal-divider-right-width: {{SIZE}}{{UNIT}}; --subtotal-divider-bottom-width: {{SIZE}}{{UNIT}}; --subtotal-divider-left-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'divider_gap',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'size_units' => [ '%', 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--product-divider-gap: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_buttons',
			[
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'view_cart_button_show',
							'operator' => '!=',
							'value' => '',
						],
						[
							'name' => 'checkout_button_show',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$this->add_responsive_control(
			'buttons_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'inline' => esc_html__( 'Inline', 'elementor-pro' ),
					'stacked' => esc_html__( 'Stacked', 'elementor-pro' ),
				],
				'default' => 'inline',
				'devices' => [ 'desktop', 'tablet', 'mobile' ],
				'condition' => [
					'view_cart_button_show!' => '',
					'checkout_button_show!' => '',
				],
				'selectors' => [
					'{{WRAPPER}}' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'inline' => '--cart-footer-layout: 1fr 1fr;',
					'stacked' => '--cart-footer-layout: 1fr;',
				],
			]
		);

		$this->add_responsive_control(
			'space_between_buttons',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--space-between-buttons: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'view_cart_button_show!' => '',
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'product_buttons_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__footer-buttons .elementor-button',
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--cart-footer-buttons-border-radius: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'heading_view_cart_button_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'View Cart', 'elementor-pro' ),
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'view_cart_buttons_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__footer-buttons a.elementor-button--view-cart',
				'separator' => 'before',
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->start_controls_tabs(
			'view_cart_button_text_colors',
			[
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->start_controls_tab(
			'heading_view_cart_button_normal_style',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'view_cart_button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--view-cart-button-text-color: {{VALUE}};',
				],
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'view_cart_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--view-cart-button-background-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'heading_view_cart_button_hover_style',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'view_cart_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--view-cart-button-hover-text-color: {{VALUE}};',
				],
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'view_cart_button_hover_background',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--view-cart-button-hover-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'view_cart_button_border_hover_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'view_cart_border_border!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'view_cart_border',
				'selector' => '{{WRAPPER}} .elementor-button--view-cart',
				'separator' => 'before',
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'view_cart_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__footer-buttons a.elementor-button--view-cart' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'view_cart_button_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-button--view-cart',
				'condition' => [
					'view_cart_button_show!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'view_cart_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--view-cart-button-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'view_cart_button_show!' => '',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'heading_checkout_button_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Checkout', 'elementor-pro' ),
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'cart_checkout_button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-menu-cart__footer-buttons a.elementor-button--checkout',
				'separator' => 'before',
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->start_controls_tabs(
			'cart_checkout_button_text_colors',
			[
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->start_controls_tab(
			'heading_cart_checkout_button_normal_style',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'checkout_button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-text-color: {{VALUE}};',
				],
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'checkout_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-background-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'heading_cart_checkout_button_hover_style',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'checkout_button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-hover-text-color: {{VALUE}};',
				],
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_control(
			'checkout_button_hover_background',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-hover-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'checkout_button_border_hover_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'checkout_border_border!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'checkout_border',
				'selector' => '{{WRAPPER}} .elementor-button--checkout',
				'separator' => 'before',
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'view_checkout_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-cart__footer-buttons a.elementor-button--checkout' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'view_checkout_button_box_shadow',
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-button--checkout',
				'condition' => [
					'checkout_button_show!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'view_checkout_button_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--checkout-button-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'checkout_button_show!' => '',
				],
				'separator' => 'after',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_messages',
			[
				'label' => esc_html__( 'Messages', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'cart_empty_message_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .woocommerce-mini-cart__empty-message',
			]
		);

		$this->add_control(
			'empty_message_color',
			[
				'label' => esc_html__( 'Empty Cart Message Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--empty-message-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'empty_message_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--empty-message-alignment: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	/**
	 * Check if user did not explicitly disabled the use of our mini-cart template and set the option accordingly.
	 * The option value is later used by Module::woocommerce_locate_template().
	 */
	private function maybe_use_mini_cart_template() {
		$option_value = get_option( 'elementor_' . Module::OPTION_NAME_USE_MINI_CART, '' );
		if ( empty( $option_value ) || 'initial' === $option_value ) {
			update_option( 'elementor_' . Module::OPTION_NAME_USE_MINI_CART, 'yes' );
		}
	}

	protected function render() {
		$this->maybe_use_mini_cart_template();
		Module::render_menu_cart();
	}

	public function render_plain_content() {}
}
PK!�x�00-modules/woocommerce/widgets/product-title.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Widget_Heading;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Title extends Widget_Heading {

	use Base_Widget_Trait;

	public function get_name() {
		return 'woocommerce-product-title';
	}

	public function get_title() {
		return esc_html__( 'Product Title', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-title';
	}

	public function get_categories() {
		return [ 'woocommerce-elements-single' ];
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'title', 'heading', 'product' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'title',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'woocommerce-product-title-tag' ),
				],
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'header_size',
			[
				'default' => 'h1',
			]
		);
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-page-title elementor-widget-' . parent::get_name();
	}

	protected function render() {
		$this->add_render_attribute( 'title', 'class', [ 'product_title', 'entry-title' ] );
		parent::render();
	}

	/**
	 * Render Woocommerce Product Title output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<# view.addRenderAttribute( 'title', 'class', [ 'product_title', 'entry-title' ] ); #>
		<?php
		parent::content_template();
	}

	public function render_plain_content() {}
}
PK!|�p��1modules/woocommerce/widgets/product-data-tabs.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Data_Tabs extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-data-tabs';
	}

	public function get_title() {
		return esc_html__( 'Product Data Tabs', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-tabs';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'data', 'product', 'tabs' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_product_tabs_style',
			[
				'label' => esc_html__( 'Tabs', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->start_controls_tabs( 'tabs_style' );

		$this->start_controls_tab( 'normal_tabs_style',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tab_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li a' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'tab_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'alpha' => false,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'tabs_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color: {{VALUE}}',
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'active_tabs_style',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'active_tab_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active a' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'active_tab_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'alpha' => false,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel, .woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'background-color: {{VALUE}}',
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-bottom-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'active_tabs_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-color: {{VALUE}}',
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li.active' => 'border-color: {{VALUE}} {{VALUE}} {{active_tab_bg_color.VALUE}} {{VALUE}}',
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li:not(.active)' => 'border-bottom-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'separator_tabs_style',
			[
				'type' => Controls_Manager::DIVIDER,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'tab_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li a',
			]
		);

		$this->add_control(
			'tab_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs li' => 'border-radius: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0 0',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_product_panel_style',
			[
				'label' => esc_html__( 'Panel', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-Tabs-panel' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel',
			]
		);

		$this->add_control(
			'heading_panel_heading_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-Tabs-panel h2' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_heading_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel h2',
			]
		);

		$this->add_control(
			'separator_panel_style',
			[
				'type' => Controls_Manager::DIVIDER,
			]
		);

		$this->add_control(
			'panel_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; margin-top: -{{TOP}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'panel_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
					'.woocommerce {{WRAPPER}} .woocommerce-tabs ul.wc-tabs' => 'margin-left: {{TOP}}{{UNIT}}; margin-right: {{RIGHT}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'panel_box_shadow',
				'selector' => '.woocommerce {{WRAPPER}} .woocommerce-tabs .woocommerce-Tabs-panel',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		global $product;

		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		setup_postdata( $product->get_id() );

		wc_get_template( 'single-product/tabs/tabs.php' );

		// On render widget from Editor - trigger the init manually.
		if ( wp_doing_ajax() ) {
			?>
			<script>
				jQuery( '.wc-tabs-wrapper, .woocommerce-tabs, #rating' ).trigger( 'init' );
			</script>
			<?php
		}
	}

	public function render_plain_content() {}
}
PK!��f�uu+modules/woocommerce/widgets/base-widget.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Controls_Stack;
use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager;
use ElementorPro\Modules\Woocommerce\Classes\Products_Renderer;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Base_Widget extends \ElementorPro\Base\Base_Widget {

	protected $gettext_modifications;

	public function get_categories() {
		return [ 'woocommerce-elements-single' ];
	}

	protected function get_devices_default_args() {
		$devices_required = [];

		// Make sure device settings can inherit from larger screen sizes' breakpoint settings.
		foreach ( Breakpoints_Manager::get_default_config() as $breakpoint_name => $breakpoint_config ) {
			$devices_required[ $breakpoint_name ] = [
				'required' => false,
			];
		}

		return $devices_required;
	}

	protected function add_columns_responsive_control() {
		$this->add_responsive_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'prefix_class' => 'elementor-grid%s-',
				'min' => 1,
				'max' => 12,
				'default' => Products_Renderer::DEFAULT_COLUMNS_AND_ROWS,
				'tablet_default' => '3',
				'mobile_default' => '2',
				'required' => true,
				'device_args' => $this->get_devices_default_args(),
				'min_affected_device' => [
					Controls_Stack::RESPONSIVE_DESKTOP => Controls_Stack::RESPONSIVE_TABLET,
					Controls_Stack::RESPONSIVE_TABLET => Controls_Stack::RESPONSIVE_TABLET,
				],
			]
		);
	}

	/**
	 * Is WooCommerce Feature Active.
	 *
	 * Checks whether a specific WooCommerce feature is active. These checks can sometimes look at multiple WooCommerce
	 * settings at once so this simplifies and centralizes the checking.
	 *
	 * @since 3.5.0
	 *
	 * @param string $feature
	 * @return bool
	 */
	protected function is_wc_feature_active( $feature ) {
		switch ( $feature ) {
			case 'checkout_login_reminder':
				return 'yes' === get_option( 'woocommerce_enable_checkout_login_reminder' );
			case 'shipping':
				if ( class_exists( 'WC_Shipping_Zones' ) ) {
					$all_zones = \WC_Shipping_Zones::get_zones();
					if ( count( $all_zones ) > 0 ) {
						return true;
					}
				}
				break;
			case 'coupons':
				return function_exists( 'wc_coupons_enabled' ) && wc_coupons_enabled();
			case 'signup_and_login_from_checkout':
				return 'yes' === get_option( 'woocommerce_enable_signup_and_login_from_checkout' );
			case 'additional_options':
				return ! wc_ship_to_billing_address_only();
			case 'ship_to_billing_address_only':
				return wc_ship_to_billing_address_only();
		}

		return false;
	}

	/**
	 * Get Custom Border Type Options
	 *
	 * Return a set of border options to be used in different WooCommerce widgets.
	 *
	 * This will be used in cases where the Group Border Control could not be used.
	 *
	 * @since 3.5.0
	 *
	 * @return array
	 */
	public static function get_custom_border_type_options() {
		return [
			'none' => esc_html__( 'None', 'elementor-pro' ),
			'solid' => esc_html__( 'Solid', 'elementor-pro' ),
			'double' => esc_html__( 'Double', 'elementor-pro' ),
			'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
			'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
			'groove' => esc_html__( 'Groove', 'elementor-pro' ),
		];
	}

	/**
	 * Init Gettext Modifications
	 *
	 * Should be overridden by a method in the Widget class.
	 *
	 * @since 3.5.0
	 */
	protected function init_gettext_modifications() {
		$this->gettext_modifications = [];
	}

	/**
	 * Filter Gettext.
	 *
	 * Filter runs when text is output to the page using the translation functions (`_e()`, `__()`, etc.)
	 * used to apply text changes from the widget settings.
	 *
	 * This allows us to make text changes without having to ovveride WooCommerce templates, which would
	 * lead to dev tax to keep all the templates up to date with each future WC release.
	 *
	 * @since 3.5.0
	 *
	 * @param string $translation
	 * @param string $text
	 * @param string $domain
	 * @return string
	 */
	public function filter_gettext( $translation, $text, $domain ) {
		if ( 'woocommerce' !== $domain && 'elementor-pro' !== $domain ) {
			return $translation;
		}

		if ( ! isset( $this->gettext_modifications ) ) {
			$this->init_gettext_modifications();
		}

		return array_key_exists( $text, $this->gettext_modifications ) ? $this->gettext_modifications[ $text ] : $translation;
	}
}
PK!�|�tee+modules/woocommerce/widgets/add-to-cart.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Widget_Button;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Modules\QueryControl\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Add_To_Cart extends Widget_Button {

	use Base_Widget_Trait;

	public function get_name() {
		return 'wc-add-to-cart';
	}

	public function get_title() {
		return esc_html__( 'Custom Add To Cart', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-woocommerce';
	}

	public function get_categories() {
		return [ 'woocommerce-elements' ];
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'cart', 'product', 'button', 'add to cart' ];
	}

	public function on_export( $element ) {
		unset( $element['settings']['product_id'] );

		return $element;
	}

	public function unescape_html( $safe_text, $text ) {
		return $text;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_product',
			[
				'label' => esc_html__( 'Product', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'product_id',
			[
				'label' => esc_html__( 'Product', 'elementor-pro' ),
				'type' => Module::QUERY_CONTROL_ID,
				'options' => [],
				'label_block' => true,
				'autocomplete' => [
					'object' => Module::QUERY_OBJECT_POST,
					'query' => [
						'post_type' => [ 'product' ],
					],
				],
			]
		);

		$this->add_control(
			'show_quantity',
			[
				'label' => esc_html__( 'Show Quantity', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'description' => esc_html__( 'Please note that switching on this option will disable some of the design controls.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'quantity',
			[
				'label' => esc_html__( 'Quantity', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 1,
				'condition' => [
					'show_quantity' => '',
				],
			]
		);

		$this->end_controls_section();

		parent::register_controls();

		$this->update_control(
			'link',
			[
				'type' => Controls_Manager::HIDDEN,
				'default' => [
					'url' => '',
				],
			]
		);

		$this->update_control(
			'text',
			[
				'default' => esc_html__( 'Add to Cart', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Add to Cart', 'elementor-pro' ),
			]
		);

		$this->update_control(
			'selected_icon',
			[
				'default' => [
					'value' => 'fas fa-shopping-cart',
					'library' => 'fa-solid',
				],
			]
		);

		$this->update_control(
			'size',
			[
				'condition' => [
					'show_quantity' => '',
				],
			]
		);
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		if ( ! empty( $settings['product_id'] ) ) {
			$product_id = $settings['product_id'];
		} elseif ( wp_doing_ajax() ) {
			// PHPCS - No nonce is required.
			$product_id = $_POST['post_id']; // phpcs:ignore WordPress.Security.NonceVerification.Missing
		} else {
			$product_id = get_queried_object_id();
		}

		global $product;
		$product = wc_get_product( $product_id );

		if ( 'yes' === $settings['show_quantity'] ) {
			$this->render_form_button( $product );
		} else {
			$this->render_ajax_button( $product );
		}
	}

	/**
	 * @param \WC_Product $product
	 */
	private function render_ajax_button( $product ) {
		$settings = $this->get_settings_for_display();

		if ( $product ) {
			if ( version_compare( WC()->version, '3.0.0', '>=' ) ) {
				$product_type = $product->get_type();
			} else {
				$product_type = $product->product_type;
			}

			$class = implode( ' ', array_filter( [
				'product_type_' . $product_type,
				$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
				$product->supports( 'ajax_add_to_cart' ) ? 'ajax_add_to_cart' : '',
			] ) );

			$this->add_render_attribute( 'button',
				[
					'rel' => 'nofollow',
					'href' => $product->add_to_cart_url(),
					'data-quantity' => ( isset( $settings['quantity'] ) ? $settings['quantity'] : 1 ),
					'data-product_id' => $product->get_id(),
					'class' => $class,
				]
			);

		} elseif ( current_user_can( 'manage_options' ) ) {
			$settings['text'] = esc_html__( 'Please set a valid product', 'elementor-pro' );
			$this->set_settings( $settings );
		}

		parent::render();
	}

	private function render_form_button( $product ) {
		if ( ! $product && current_user_can( 'manage_options' ) ) {
			echo esc_html__( 'Please set a valid product', 'elementor-pro' );

			return;
		}

		$text_callback = function() {
			ob_start();
			$this->render_text();

			return ob_get_clean();
		};

		add_filter( 'woocommerce_get_stock_html', '__return_empty_string' );
		add_filter( 'woocommerce_product_single_add_to_cart_text', $text_callback );
		add_filter( 'esc_html', [ $this, 'unescape_html' ], 10, 2 );

		ob_start();
		woocommerce_template_single_add_to_cart();
		$form = ob_get_clean();
		$form = str_replace( 'single_add_to_cart_button', 'single_add_to_cart_button elementor-button', $form );

		// PHPCS - The HTML from 'woocommerce_template_single_add_to_cart' is safe.
		echo $form; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

		remove_filter( 'woocommerce_product_single_add_to_cart_text', $text_callback );
		remove_filter( 'woocommerce_get_stock_html', '__return_empty_string' );
		remove_filter( 'esc_html', [ $this, 'unescape_html' ] );
	}

	/**
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	// Force remote render
	protected function content_template() {}
}
PK!�i��g�g-modules/woocommerce/widgets/products-base.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Products_Base extends Base_Widget {


	protected function register_controls() {

		$this->start_controls_section(
			'section_products_style',
			[
				'label' => esc_html__( 'Products', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'wc_style_warning',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'The style of this widget is often affected by your theme and plugins. If you experience any such issue, try to switch to a basic theme and deactivate related plugins.', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->add_control(
			'products_class',
			[
				'type' => Controls_Manager::HIDDEN,
				'default' => 'wc-products',
				'prefix_class' => 'elementor-products-grid elementor-',
			]
		);

		$this->add_responsive_control(
			'column_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 20,
				],
				'tablet_default' => [
					'size' => 20,
				],
				'mobile_default' => [
					'size' => 20,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products  ul.products' => 'grid-column-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 40,
				],
				'tablet_default' => [
					'size' => 40,
				],
				'mobile_default' => [
					'size' => 40,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products  ul.products' => 'grid-row-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-product-loop-item--align-',
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'image_border',
				'selector' => '{{WRAPPER}}.elementor-wc-products .attachment-woocommerce_thumbnail',
			]
		);

		$this->add_responsive_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .attachment-woocommerce_thumbnail' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'image_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .attachment-woocommerce_thumbnail' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-product__title' => 'color: {{VALUE}}',
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-category__title' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-product__title, ' .
								'{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-category__title',

			]
		);

		$this->add_responsive_control(
			'title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-product__title' => 'margin-bottom: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .woocommerce-loop-category__title' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_rating_style',
			[
				'label' => esc_html__( 'Rating', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'star_color',
			[
				'label' => esc_html__( 'Star Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .star-rating' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'empty_star_color',
			[
				'label' => esc_html__( 'Empty Star Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .star-rating::before' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'star_size',
			[
				'label' => esc_html__( 'Star Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => 'em',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 4,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .star-rating' => 'font-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'rating_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .star-rating' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_price_style',
			[
				'label' => esc_html__( 'Price', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .price' => 'color: {{VALUE}}',
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .price ins' => 'color: {{VALUE}}',
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .price ins .amount' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'price_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .price',
			]
		);

		$this->add_control(
			'heading_old_price_style',
			[
				'label' => esc_html__( 'Regular Price', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'old_price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .price del' => 'color: {{VALUE}}',
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .price del .amount' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'old_price_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .price del .amount  ',
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .price del ',
			]
		);

		$this->add_control(
			'heading_button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button:hover' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(), [
				'name' => 'button_border',
				'exclude' => [ 'color' ],
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product .button',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'button_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product .button' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_view_cart_style',
			[
				'label' => esc_html__( 'View Cart', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'view_cart_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .added_to_cart' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'view_cart_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products .added_to_cart',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_design_box',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'box_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'border-style: solid; border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'box_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'box_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->start_controls_tabs( 'box_style_tabs' );

		$this->start_controls_tab( 'classic_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product',
			]
		);

		$this->add_control(
			'box_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'box_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'classic_style_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow_hover',
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product:hover',
			]
		);

		$this->add_control(
			'box_bg_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'box_border_color_hover',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product:hover' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_pagination_style',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'paginate' => 'yes',
				],
			]
		);

		$this->add_control(
			'pagination_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'show_pagination_border',
			[
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'yes',
				'return_value' => 'yes',
				'prefix_class' => 'elementor-show-pagination-border-',
			]
		);

		$this->add_control(
			'pagination_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} nav.woocommerce-pagination ul li' => 'border-right-color: {{VALUE}}; border-left-color: {{VALUE}}',
				],
				'condition' => [
					'show_pagination_border' => 'yes',
				],
			]
		);

		$this->add_control(
			'pagination_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 2,
						'step' => 0.1,
					],
				],
				'size_units' => [ 'em' ],
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li a, {{WRAPPER}} nav.woocommerce-pagination ul li span' => 'padding: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'pagination_typography',
				'selector' => '{{WRAPPER}} nav.woocommerce-pagination',
			]
		);

		$this->start_controls_tabs( 'pagination_style_tabs' );

		$this->start_controls_tab( 'pagination_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_link_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li a' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'pagination_link_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li a' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'pagination_style_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_link_color_hover',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li a:hover' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'pagination_link_bg_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li a:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'pagination_style_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_link_color_active',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li span.current' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'pagination_link_bg_color_active',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} nav.woocommerce-pagination ul li span.current' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'sale_flash_style',
			[
				'label' => esc_html__( 'Sale Flash', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'show_onsale_flash',
			[
				'label' => esc_html__( 'Sale Flash', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'separator' => 'before',
				'default' => 'yes',
				'return_value' => 'yes',
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'display: block',
				],
			]
		);

		$this->add_control(
			'onsale_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'color: {{VALUE}}',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_text_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'onsale_typography',
				'selector' => '{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale',
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'min-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'min-height: {{SIZE}}{{UNIT}}; line-height: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_horizontal_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'left' => 'right: auto; left: 0',
					'right' => 'left: auto; right: 0',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->add_control(
			'onsale_distance',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'range' => [
					'px' => [
						'min' => -20,
						'max' => 20,
					],
					'em' => [
						'min' => -2,
						'max' => 2,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products ul.products li.product span.onsale' => 'margin: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'show_onsale_flash' => 'yes',
				],
			]
		);

		$this->end_controls_section();
	}
}
PK!�`�88.modules/woocommerce/widgets/product-upsell.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Upsell extends Products_Base {

	public function get_name() {
		return 'woocommerce-product-upsell';
	}

	public function get_title() {
		return esc_html__( 'Upsells', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-product-upsell';
	}

	public function get_keywords() {
		return [ 'woocommerce', 'shop', 'store', 'upsell', 'product' ];
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_upsell_content',
			[
				'label' => esc_html__( 'Upsells', 'elementor-pro' ),
			]
		);

		$this->add_columns_responsive_control();

		$this->add_control(
			'orderby',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'date',
				'options' => [
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'price' => esc_html__( 'Price', 'elementor-pro' ),
					'popularity' => esc_html__( 'Popularity', 'elementor-pro' ),
					'rating' => esc_html__( 'Rating', 'elementor-pro' ),
					'rand' => esc_html__( 'Random', 'elementor-pro' ),
					'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'order',
			[
				'label' => esc_html__( 'Order', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'desc',
				'options' => [
					'asc' => esc_html__( 'ASC', 'elementor-pro' ),
					'desc' => esc_html__( 'DESC', 'elementor-pro' ),
				],
			]
		);

		$this->end_controls_section();

		parent::register_controls();

		$this->start_injection( [
			'at' => 'before',
			'of' => 'section_design_box',
		] );

		$this->start_controls_section(
			'section_heading_style',
			[
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'show_heading',
			[
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'yes',
				'return_value' => 'yes',
				'prefix_class' => 'show-heading-',
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .products > h2' => 'color: {{VALUE}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}}.elementor-wc-products .products > h2',
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'heading_text_align',
			[
				'label' => esc_html__( 'Text Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .products > h2' => 'text-align: {{VALUE}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'heading_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}.elementor-wc-products .products > h2' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->end_injection();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$limit = '-1';
		$columns = 4;
		$orderby = 'rand';
		$order = 'desc';

		if ( ! empty( $settings['columns'] ) ) {
			$columns = $settings['columns'];
		}

		if ( ! empty( $settings['orderby'] ) ) {
			$orderby = $settings['orderby'];
		}

		if ( ! empty( $settings['order'] ) ) {
			$order = $settings['order'];
		}

		ob_start();

		woocommerce_upsell_display( $limit, $columns, $orderby, $order );

		$upsells_html = ob_get_clean();

		if ( $upsells_html ) {
			$upsells_html = str_replace( '<ul class="products', '<ul class="products elementor-grid', $upsells_html );

			echo wp_kses_post( $upsells_html );
		}
	}

	public function render_plain_content() {}
}
PK!�>�I�	�	>modules/woocommerce/widgets/product-additional-information.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Typography;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Additional_Information extends Base_Widget {

	public function get_name() {
		return 'woocommerce-product-additional-information';
	}

	public function get_title() {
		return esc_html__( 'Additional Information', 'elementor-pro' );
	}

	public function get_icon() {
		return ' eicon-product-info';
	}

	protected function register_controls() {

		$this->start_controls_section( 'section_additional_info_style', [
			'label' => esc_html__( 'General', 'elementor-pro' ),
			'tab' => Controls_Manager::TAB_STYLE,
		] );

		$this->add_control(
			'show_heading',
			[
				'label' => esc_html__( 'Heading', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'render_type' => 'ui',
				'return_value' => 'yes',
				'default' => 'yes',
				'prefix_class' => 'elementor-show-heading-',
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} h2' => 'color: {{VALUE}}',
				],
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} h2',
				'condition' => [
					'show_heading!' => '',
				],
			]
		);

		$this->add_control(
			'content_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'.woocommerce {{WRAPPER}} .shop_attributes' => 'color: {{VALUE}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '.woocommerce {{WRAPPER}} .shop_attributes',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		global $product;
		$product = wc_get_product();

		if ( empty( $product ) ) {
			return;
		}

		wc_get_template( 'single-product/tabs/additional-information.php' );
	}

	public function render_plain_content() {}
}
PK!��)�;;/modules/woocommerce/widgets/product-content.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Widgets;

use ElementorPro\Modules\ThemeBuilder\Widgets\Post_Content;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Content extends Post_Content {

	public function get_name() {
		return 'woocommerce-product-content';
	}

	public function get_title() {
		return esc_html__( 'Product Content', 'elementor-pro' );
	}

	public function get_categories() {
		return [ 'woocommerce-elements-single' ];
	}

	public function get_keywords() {
		return [ 'content', 'post', 'product' ];
	}
}
PK!:���
R
Rmodules/woocommerce/module.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce;

use ElementorPro\Plugin;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\ThemeBuilder\Classes\Conditions_Manager;
use ElementorPro\Modules\Woocommerce\Conditions\Woocommerce;
use ElementorPro\Modules\Woocommerce\Documents\Product;
use ElementorPro\Modules\Woocommerce\Documents\Product_Post;
use ElementorPro\Modules\Woocommerce\Documents\Product_Archive;
use Elementor\Utils;
use Elementor\Core\Documents_Manager;
use Elementor\Settings;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {

	const WOOCOMMERCE_GROUP = 'woocommerce';
	const TEMPLATE_MINI_CART = 'cart/mini-cart.php';
	const OPTION_NAME_USE_MINI_CART = 'use_mini_cart_template';

	protected $docs_types = [];
	protected $use_mini_cart_template;

	public static function is_active() {
		return class_exists( 'woocommerce' );
	}

	public static function is_product_search() {
		return is_search() && 'product' === get_query_var( 'post_type' );
	}

	public function get_name() {
		return 'woocommerce';
	}

	public function get_widgets() {
		return [
			'Archive_Products',
			'Archive_Products_Deprecated',
			'Archive_Description',
			'Products',
			'Products_Deprecated',

			'Breadcrumb',
			'Add_To_Cart',
			'Elements',
			'Single_Elements',
			'Categories',
			'Menu_Cart',

			'Product_Title',
			'Product_Images',
			'Product_Price',
			'Product_Add_To_Cart',
			'Product_Rating',
			'Product_Stock',
			'Product_Meta',
			'Product_Short_Description',
			'Product_Content',
			'Product_Data_Tabs',
			'Product_Additional_Information',
			'Product_Related',
			'Product_Upsell',

			'Checkout',
			'Cart',
			'My_Account',
		];
	}

	public function add_product_post_class( $classes ) {
		$classes[] = 'product';

		return $classes;
	}

	public function add_products_post_class_filter() {
		add_filter( 'post_class', [ $this, 'add_product_post_class' ] );
	}

	public function remove_products_post_class_filter() {
		remove_filter( 'post_class', [ $this, 'add_product_post_class' ] );
	}

	public function register_tags() {
		$tags = [
			'Product_Gallery',
			'Product_Image',
			'Product_Price',
			'Product_Rating',
			'Product_Sale',
			'Product_Short_Description',
			'Product_SKU',
			'Product_Stock',
			'Product_Terms',
			'Product_Title',
			'Category_Image',
		];

		/** @var \Elementor\Core\DynamicTags\Manager $module */
		$module = Plugin::elementor()->dynamic_tags;

		$module->register_group( self::WOOCOMMERCE_GROUP, [
			'title' => esc_html__( 'WooCommerce', 'elementor-pro' ),
		] );

		foreach ( $tags as $tag ) {
			$module->register_tag( 'ElementorPro\\Modules\\Woocommerce\\tags\\' . $tag );
		}
	}

	public function register_wc_hooks() {
		wc()->frontend_includes();
	}

	/**
	 * @param Conditions_Manager $conditions_manager
	 */
	public function register_conditions( $conditions_manager ) {
		$woocommerce_condition = new Woocommerce();

		$conditions_manager->get_condition( 'general' )->register_sub_condition( $woocommerce_condition );
	}

	/**
	 * @param Documents_Manager $documents_manager
	 */
	public function register_documents( $documents_manager ) {
		$this->docs_types = [
			'product-post' => Product_Post::get_class_full_name(),
			'product' => Product::get_class_full_name(),
			'product-archive' => Product_Archive::get_class_full_name(),
		];

		foreach ( $this->docs_types as $type => $class_name ) {
			$documents_manager->register_document_type( $type, $class_name );
		}
	}

	public static function render_menu_cart_toggle_button() {
		if ( null === WC()->cart ) {
			return;
		}
		$product_count = WC()->cart->get_cart_contents_count();
		$sub_total = WC()->cart->get_cart_subtotal();
		$counter_attr = 'data-counter="' . $product_count . '"';
		?>
		<div class="elementor-menu-cart__toggle elementor-button-wrapper">
			<a id="elementor-menu-cart__toggle_button" href="#" class="elementor-menu-cart__toggle_button elementor-button elementor-size-sm" aria-expanded="false">
				<span class="elementor-button-text"><?php echo $sub_total; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
				<span class="elementor-button-icon" <?php echo $counter_attr; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
					<i class="eicon"></i>
					<span class="elementor-screen-only"><?php esc_html_e( 'Cart', 'elementor-pro' ); ?></span>
				</span>
			</a>
		</div>
		<?php
	}

	/**
	 * Render menu cart.
	 * The `widget_shopping_cart_content` div will be populated by woocommerce js.
	 */
	public static function render_menu_cart() {
		if ( null === WC()->cart ) {
			return;
		}

		$widget_cart_is_hidden = apply_filters( 'woocommerce_widget_cart_is_hidden', false );
		?>
		<div class="elementor-menu-cart__wrapper">
			<?php if ( ! $widget_cart_is_hidden ) : ?>
				<div class="elementor-menu-cart__toggle_wrapper">
					<div class="elementor-menu-cart__container elementor-lightbox" aria-hidden="true">
						<div class="elementor-menu-cart__main" aria-hidden="true">
							<div class="elementor-menu-cart__close-button"></div>
							<div class="widget_shopping_cart_content">
								<?php woocommerce_mini_cart(); ?>
							</div>
						</div>
					</div>
					<?php self::render_menu_cart_toggle_button(); ?>
				</div>
			<?php endif; ?>
		</div> <!-- close elementor-menu-cart__wrapper -->
		<?php
	}

	/**
	 * Refresh the Menu Cart button and items counter.
	 * The mini-cart itself will be rendered by WC functions.
	 *
	 * @param $fragments
	 *
	 * @return array
	 */
	public function menu_cart_fragments( $fragments ) {
		$has_cart = is_a( WC()->cart, 'WC_Cart' );
		if ( ! $has_cart || ! $this->use_mini_cart_template ) {
			return $fragments;
		}

		ob_start();
		self::render_menu_cart_toggle_button();
		$menu_cart_toggle_button_html = ob_get_clean();

		if ( ! empty( $menu_cart_toggle_button_html ) ) {
			$fragments['body div.elementor-widget.elementor-widget-woocommerce-menu-cart div.elementor-menu-cart__toggle'] = $menu_cart_toggle_button_html;
		}

		return $fragments;
	}

	public function maybe_init_cart() {
		$has_cart = is_a( WC()->cart, 'WC_Cart' );

		if ( ! $has_cart ) {
			$session_class = apply_filters( 'woocommerce_session_handler', 'WC_Session_Handler' );
			WC()->session = new $session_class();
			WC()->session->init();
			WC()->cart = new \WC_Cart();
			WC()->customer = new \WC_Customer( get_current_user_id(), true );
		}
	}

	public function localized_settings_frontend( $settings ) {
		$has_cart = is_a( WC()->cart, 'WC_Cart' );

		if ( $has_cart ) {
			$settings['menu_cart'] = [
				'cart_page_url' => wc_get_cart_url(),
				'checkout_page_url' => wc_get_checkout_url(),
			];
		}
		return $settings;
	}

	public function theme_template_include( $need_override_location, $location ) {
		if ( is_product() && 'single' === $location ) {
			$need_override_location = true;
		}

		return $need_override_location;
	}

	/**
	 * Add plugin path to wc template search path.
	 * Based on: https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/
	 * @param $template
	 * @param $template_name
	 * @param $template_path
	 *
	 * @return string
	 */
	public function woocommerce_locate_template( $template, $template_name, $template_path ) {

		if ( self::TEMPLATE_MINI_CART !== $template_name ) {
			return $template;
		}

		if ( ! $this->use_mini_cart_template ) {
			return $template;
		}

		$plugin_path = plugin_dir_path( __DIR__ ) . 'woocommerce/wc-templates/';

		if ( file_exists( $plugin_path . $template_name ) ) {
			$template = $plugin_path . $template_name;
		}

		return $template;
	}

	/**
	 * WooCommerce/WordPress widget(s), some of the widgets have css classes that used by final selectors.
	 * before this filter, all those widgets were warped by `.elementor-widget-container` without chain original widget
	 * classes, now they will be warped by div with the original css classes.
	 *
	 * @param array $default_widget_args
	 * @param \Elementor\Widget_WordPress $widget
	 *
	 * @return array $default_widget_args
	 */
	public function woocommerce_wordpress_widget_css_class( $default_widget_args, $widget ) {
		$widget_instance = $widget->get_widget_instance();

		if ( ! empty( $widget_instance->widget_cssclass ) ) {
			$default_widget_args['before_widget'] .= '<div class="' . $widget_instance->widget_cssclass . '">';
			$default_widget_args['after_widget'] .= '</div>';
		}

		return $default_widget_args;
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'woocommerce', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'WooCommerce', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_USE_MINI_CART => [
					'label' => esc_html__( 'Mini Cart Template', 'elementor-pro' ),
					'field_args' => [
						'type' => 'select',
						'std' => 'initial',
						'options' => [
							'initial' => '', // Relevant until either menu-cart widget is used or option is explicitly set to 'no'.
							'no' => esc_html__( 'Disable', 'elementor-pro' ),
							'yes' => esc_html__( 'Enable', 'elementor-pro' ),
						],
						'desc' => esc_html__( 'Set to `Disable` in order to use your Theme\'s or WooCommerce\'s mini-cart template instead of Elementor\'s.', 'elementor-pro' ),
					],
				],
			],
		] );
	}

	/**
	 * Load Widget Before WooCommerce Ajax.
	 *
	 * When outputting the complex WooCommerce shortcodes (which we use in our widgets) e.g. Checkout, Cart, etc. WC
	 * immediately does more ajax calls and retrieves updated html fragments based on the data in the forms that may
	 * be autofilled by the current user's browser e.g. the Payment section holding the "Place order" button.
	 *
	 * This function can be hooked before any of these ajax calls and will look for the `elementorPostId` and
	 * `elementorWidgetId` querysring we've appended to the forms `_wp_http_referer` url field and load the related
	 * Elementor Widget before it starts to compile the html to be returned and added to the page.
	 *
	 * This is necessary for example in the Checkout Payment section where we modify the Terms & Conditions text
	 * using settings from the widget.
	 *
	 * @since 3.5.0
	 */
	public function load_widget_before_wc_ajax() {
		check_ajax_referer( 'update-order-review', 'security' );

		$post_id = false;
		$element_id = false;

		if ( isset( $_POST['post_data'] ) ) {
			parse_str( $_POST['post_data'], $post_data );

			if ( isset( $post_data['_wp_http_referer'] ) ) {
				$wp_http_referer = wp_unslash( $post_data['_wp_http_referer'] );

				$wp_http_referer_query_string = wp_parse_url( $wp_http_referer, PHP_URL_QUERY );
				parse_str( $wp_http_referer_query_string, $wp_http_referer_query_string );

				if ( isset( $wp_http_referer_query_string['elementorPostId'] ) ) {
					$post_id = $wp_http_referer_query_string['elementorPostId'];
				}

				if ( isset( $wp_http_referer_query_string['elementorWidgetId'] ) ) {
					$element_id = $wp_http_referer_query_string['elementorWidgetId'];
				}
			}
		}

		if ( ! $post_id || ! $element_id ) {
			return;
		}

		$document = Plugin::elementor()->documents->get( $post_id );

		if ( $document ) {
			$widget = Utils::find_element_recursive( $document->get_elements_data(), $element_id );

			if ( $widget ) {
				$widget = Plugin::elementor()->elements_manager->create_element_instance( $widget );
				$widget->get_raw_data( false );
				if ( method_exists( $widget, 'add_render_hooks' ) ) {
					$widget->add_render_hooks();
				}
			}
		}
	}

	/**
	 * Elementor Woocommerce Checkout Login User
	 *
	 * Handle the Ajax call for the custom login form on the Checkout Widget
	 *
	 * @since 3.5.0
	 */
	public function elementor_woocommerce_checkout_login_user() {
		if ( is_user_logged_in() ) {
			wp_logout();
		}

		$error = false;
		$error_message = '';

		if ( ! wp_verify_nonce( $_POST['nonce'], 'woocommerce-login' ) ) {
			$error = true;
			/* translators: %s: Error. */
			$error_message = sprintf( esc_html__( '%s Sorry, the nonce security check didn’t pass. Please reload the page and try again. You may want to try clearing your browser cache as a last attempt.', 'elementor-pro' ), '<strong>Error:</strong>' );
		} else {
			$info = [
				'user_login' => trim( $_POST['username'] ),
				'user_password' => trim( $_POST['password'] ),
				'remember' => $_POST['remember'],
			];

			$user_signon = wp_signon( $info, false );

			if ( is_wp_error( $user_signon ) ) {
				$error = true;
				$error_message = $user_signon->get_error_message();
			}
		}

		if ( $error ) {
			wc_add_notice(
				$error_message,
				'error'
			);
			$response = [
				'logged_in' => false,
				'message' => wc_print_notices( true ),
			];
		} else {
			$response = [ 'logged_in' => true ];
		}

		echo wp_json_encode( $response );
		wp_die();
	}

	/**
	 * Print Woocommerce Shipping Message
	 *
	 * Format the shipping messages that will be displayed on the Cart and Checkout Widgets.
	 * This will add extra classes to those messages so that we can target certain messages
	 * with certain style controls.
	 *
	 * @since 3.5.0
	 *
	 * @param string $html the original HTML from WC
	 * @param string $classes the classes we will surround $html with
	 * @return string the final formatted HTML that will be rendered
	 */
	private function print_woocommerce_shipping_message( $html, $classes ) {
		return '<span class="' . wp_sprintf( '%s', $classes ) . '">' . $html . '</span>';
	}

	/**
	 * Register Ajax Actions.
	 *
	 * Registers ajax action used by the Editor js.
	 *
	 * @since 3.5.0
	 *
	 * @param Ajax $ajax
	 */
	public function register_ajax_actions( Ajax $ajax ) {
		// `woocommerce_update_page_option` is called in the editor save-show-modal.js.
		$ajax->register_ajax_action( 'pro_woocommerce_update_page_option', [ $this, 'update_page_option' ] );
	}

	/**
	 * Update Page Option.
	 *
	 * Ajax action can be used to update any WooCommerce option.
	 *
	 * @since 3.5.0
	 *
	 * @param array $data
	 */
	public function update_page_option( $data ) {
		update_option( $data['option_name'], $data['editor_post_id'] );
	}

	public function init_site_settings( \Elementor\Core\Kits\Documents\Kit $kit ) {
		$kit->register_tab( 'settings-woocommerce', \ElementorPro\Modules\Woocommerce\Settings\Settings_Woocommerce::class );
	}

	/**
	 * Add Update Kit Settings Hooks
	 *
	 * Add hooks that update the corresponding kit setting when the WooCommerce option is updated.
	 */
	public function add_update_kit_settings_hooks() {
		add_action( 'update_option_woocommerce_cart_page_id', function( $old_value, $value ) {
			Plugin::elementor()->kits_manager->update_kit_settings_based_on_option( 'woocommerce_cart_page_id', $value );
		}, 10, 2 );

		add_action( 'update_option_woocommerce_checkout_page_id', function( $old_value, $value ) {
			Plugin::elementor()->kits_manager->update_kit_settings_based_on_option( 'woocommerce_checkout_page_id', $value );
		}, 10, 2 );

		add_action( 'update_option_woocommerce_myaccount_page_id', function( $old_value, $value ) {
			Plugin::elementor()->kits_manager->update_kit_settings_based_on_option( 'woocommerce_myaccount_page_id', $value );
		}, 10, 2 );

		add_action( 'update_option_woocommerce_terms_page_id', function( $old_value, $value ) {
			Plugin::elementor()->kits_manager->update_kit_settings_based_on_option( 'woocommerce_terms_page_id', $value );
		}, 10, 2 );
	}

	/**
	 * Elementor WC My Account Logout
	 *
	 * Programatically log out if $_REQUEST['elementor_wc_logout'] is set.
	 * The $_REQUEST variables we have generated a custom logout URL for in the My Account menu.
	 *
	 * @since 3.5.0
	 */
	public function elementor_wc_my_account_logout() {
		if ( ! empty( $_REQUEST['elementor_wc_logout'] ) && ! empty( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'customer-logout' ) ) {
			wp_logout(); // Log the user out Programatically.
			wp_safe_redirect( esc_url( $_REQUEST['elementor_my_account_redirect'] ) ); // Redirect back to the widget page.
			exit;
		}
	}

	/**
	 * Add Localize Data
	 *
	 * Makes `woocommercePages` available with the page name and the associated post ID for use with the various
	 * widgets site settings modal.
	 *
	 * @param $settings
	 * @return array
	 */
	public function add_localize_data( $settings ) {
		$settings['woocommercePages'] = [
			'checkout' => wc_get_page_id( 'checkout' ),
			'cart' => wc_get_page_id( 'cart' ),
			'myaccount' => wc_get_page_id( 'myaccount' ),
		];

		return $settings;
	}

	public function __construct() {
		parent::__construct();

		add_action( 'elementor/kit/register_tabs', [ $this, 'init_site_settings' ], 1, 40 );
		$this->add_update_kit_settings_hooks();

		$this->use_mini_cart_template = 'yes' === get_option( 'elementor_' . self::OPTION_NAME_USE_MINI_CART, 'no' );

		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}

		add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'maybe_init_cart' ] );
		add_action( 'elementor/dynamic_tags/register_tags', [ $this, 'register_tags' ] );
		add_action( 'elementor/documents/register', [ $this, 'register_documents' ] );
		add_action( 'elementor/theme/register_conditions', [ $this, 'register_conditions' ] );

		add_action( 'wp_ajax_elementor_woocommerce_checkout_login_user', [ $this, 'elementor_woocommerce_checkout_login_user' ] );
		add_action( 'wp_ajax_nopriv_elementor_woocommerce_checkout_login_user', [ $this, 'elementor_woocommerce_checkout_login_user' ] );

		add_filter( 'elementor/theme/need_override_location', [ $this, 'theme_template_include' ], 10, 2 );

		add_filter( 'elementor_pro/frontend/localize_settings', [ $this, 'localized_settings_frontend' ] );

		// Load our widget Before WooCommerce Ajax. See the variable's PHPDoc for details.
		add_action( 'woocommerce_checkout_update_order_review', [ $this, 'load_widget_before_wc_ajax' ] );

		// On Editor - Register WooCommerce frontend hooks before the Editor init.
		// Priority = 5, in order to allow plugins remove/add their wc hooks on init.
		if ( ! empty( $_REQUEST['action'] ) && 'elementor' === $_REQUEST['action'] && is_admin() ) {
			add_action( 'init', [ $this, 'register_wc_hooks' ], 5 );
		}

		// Allow viewing of Checkout page in the Editor with an empty cart.
		if (
			( ! empty( $_REQUEST['action'] ) && 'elementor' === $_REQUEST['action'] && is_admin() ) // Elementor Editor
			|| ! empty( $_REQUEST['elementor-preview'] ) // Elementor Editor Preview
			|| ( ! empty( $_REQUEST['action'] ) && 'elementor_ajax' === $_REQUEST['action'] ) // Elementor Editor Preview - Ajax Render Widget
		) {
			add_filter( 'woocommerce_checkout_redirect_empty_cart', '__return_false', 5 );
		}

		if ( $this->use_mini_cart_template ) {
			add_filter( 'woocommerce_add_to_cart_fragments', [ $this, 'menu_cart_fragments' ] );
			add_filter( 'woocommerce_locate_template', [ $this, 'woocommerce_locate_template' ], 10, 3 );
		}

		add_filter( 'elementor/widgets/wordpress/widget_args', [ $this, 'woocommerce_wordpress_widget_css_class' ], 10, 2 );

		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );

		// Make the Logout redirect go to our my account widget page instead of the set My Account Page.
		add_action( 'init', [ $this, 'elementor_wc_my_account_logout' ], 5 );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'add_localize_data' ] );

		// Filters for messages on the Shipping calculator
		add_filter( 'woocommerce_shipping_may_be_available_html', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-shipping-may-be-available-html e-checkout-message e-cart-content' );
		}, 10, 1 );

		add_filter( 'woocommerce_shipping_not_enabled_on_cart_html', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-shipping-not_enabled-on-cart-html e-checkout-message e-cart-content' );
		}, 10, 1 );

		add_filter( 'woocommerce_shipping_estimate_html', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-shipping-estimate-html e-checkout-message e-cart-content' );
		}, 10, 1 );

		add_filter( 'woocommerce_cart_no_shipping_available_html', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-cart-no-shipping-available-html e-checkout-message e-cart-content' );
		}, 10, 1 );

		add_filter( 'woocommerce_no_available_payment_methods_message', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-no-available-payment-methods-message e-description' );
		}, 10, 1 );

		add_filter( 'woocommerce_no_shipping_available_html', function ( $html ) {
			return $this->print_woocommerce_shipping_message( $html, 'woocommerce-no-shipping-available-html e-checkout-message' );
		}, 10, 1 );
	}
}
PK!��3�BB,modules/woocommerce/conditions/shop-page.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Conditions;

use ElementorPro\Modules\ThemeBuilder as ThemeBuilder;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Shop_Page extends ThemeBuilder\Conditions\Condition_Base {

	public static function get_type() {
		return 'singular';
	}

	public function get_name() {
		return 'shop_page';
	}

	public static function get_priority() {
		return 40;
	}

	public function get_label() {
		return esc_html__( 'Shop Page', 'elementor-pro' );
	}

	public function check( $args ) {
		return is_shop();
	}
}
PK!�����.modules/woocommerce/conditions/woocommerce.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Conditions;

use ElementorPro\Modules\ThemeBuilder as ThemeBuilder;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Woocommerce extends ThemeBuilder\Conditions\Condition_Base {

	public static function get_type() {
		return 'woocommerce';
	}

	public function get_name() {
		return 'woocommerce';
	}

	public function get_label() {
		return esc_html__( 'WooCommerce', 'elementor-pro' );
	}

	public function get_all_label() {
		return esc_html__( 'Entire Shop', 'elementor-pro' );
	}

	public function register_sub_conditions() {
		$product_archive = new Product_Archive();

		$product_single = new ThemeBuilder\Conditions\Post( [
			'post_type' => 'product',
		] );

		$this->register_sub_condition( $product_archive );
		$this->register_sub_condition( $product_single );
	}

	public function check( $args ) {
		return is_woocommerce() || Module::is_product_search();
	}
}
PK!O�%��1modules/woocommerce/conditions/product-search.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Conditions;

use ElementorPro\Modules\ThemeBuilder as ThemeBuilder;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Search extends ThemeBuilder\Conditions\Condition_Base {

	public static function get_type() {
		return 'archive';
	}

	public function get_name() {
		return 'product_search';
	}

	public static function get_priority() {
		return 40;
	}

	public function get_label() {
		return esc_html__( 'Search Results', 'elementor-pro' );
	}

	public function check( $args ) {
		return Module::is_product_search();
	}
}
PK!��s��2modules/woocommerce/conditions/product-archive.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Conditions;

use ElementorPro\Modules\ThemeBuilder as ThemeBuilder;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Archive extends ThemeBuilder\Conditions\Condition_Base {

	private $post_type = 'product';
	private $post_taxonomies;

	public function __construct( array $data = [] ) {
		$taxonomies = get_object_taxonomies( $this->post_type, 'objects' );
		$this->post_taxonomies = wp_filter_object_list( $taxonomies, [
			'public' => true,
			'show_in_nav_menus' => true,
		] );

		parent::__construct( $data );
	}

	public static function get_type() {
		return 'archive';
	}

	public function get_name() {
		return 'product_archive';
	}

	public static function get_priority() {
		return 40;
	}

	public function get_label() {
		return esc_html__( 'Product Archive', 'elementor-pro' );
	}

	public function get_all_label() {
		return esc_html__( 'All Product Archives', 'elementor-pro' );
	}

	public function register_sub_conditions() {
		$this->register_sub_condition( new Shop_page() );
		$this->register_sub_condition( new Product_Search() );

		foreach ( $this->post_taxonomies as $slug => $object ) {
			$condition = new ThemeBuilder\Conditions\Taxonomy( [
				'object' => $object,
			] );
			$this->register_sub_condition( $condition );
		}
	}

	public function check( $args ) {
		return is_shop() || is_product_taxonomy() || Module::is_product_search();
	}
}
PK!�a����3modules/woocommerce/wc-templates/cart/mini-cart.phpnu�[���<?php

defined( 'ABSPATH' ) || exit;

if ( ! function_exists( 'elementor_pro_render_mini_cart_item' ) ) {
	function elementor_pro_render_mini_cart_item( $cart_item_key, $cart_item ) {
		$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
		$is_product_visible = ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) );

		if ( ! $is_product_visible ) {
			return;
		}

		$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
		$product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
		$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
		?>
		<div class="elementor-menu-cart__product woocommerce-cart-form__cart-item <?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">

			<div class="elementor-menu-cart__product-image product-thumbnail">
				<?php
				$thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );

				if ( ! $product_permalink ) :
					echo wp_kses_post( $thumbnail );
				else :
					printf( '<a href="%s">%s</a>', esc_url( $product_permalink ), wp_kses_post( $thumbnail ) );
				endif;
				?>
			</div>

			<div class="elementor-menu-cart__product-name product-name" data-title="<?php esc_attr_e( 'Product', 'elementor-pro' ); ?>">
				<?php
				if ( ! $product_permalink ) :
					echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ) . '&nbsp;' );
				else :
					echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
				endif;

				do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );

				// Meta data.
				echo wc_get_formatted_cart_item_data( $cart_item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
			</div>

			<div class="elementor-menu-cart__product-price product-price" data-title="<?php esc_attr_e( 'Price', 'elementor-pro' ); ?>">
				<?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '<span class="product-quantity">%s &times;</span> %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
			</div>

			<div class="elementor-menu-cart__product-remove product-remove">
				<?php foreach ( [ 'elementor_remove_from_cart_button', 'remove_from_cart_button' ] as $class ) {
					echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						'<a href="%s" class="%s" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s"></a>',
						esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
						$class,
						__( 'Remove this item', 'elementor-pro' ),
						esc_attr( $product_id ),
						esc_attr( $cart_item_key ),
						esc_attr( $_product->get_sku() )
					), $cart_item_key );
				} ?>
			</div>
		</div>
		<?php
	}
}

$cart_items = WC()->cart->get_cart();

if ( empty( $cart_items ) ) { ?>
	<div class="woocommerce-mini-cart__empty-message"><?php esc_attr_e( 'No products in the cart.', 'elementor-pro' ); ?></div>
<?php } else { ?>
	<div class="elementor-menu-cart__products woocommerce-mini-cart cart woocommerce-cart-form__contents">
		<?php
		do_action( 'woocommerce_before_mini_cart_contents' );

		foreach ( $cart_items as $cart_item_key => $cart_item ) {
			elementor_pro_render_mini_cart_item( $cart_item_key, $cart_item );
		}

		do_action( 'woocommerce_mini_cart_contents' );
		?>
	</div>

	<div class="elementor-menu-cart__subtotal">
		<strong><?php echo esc_html__( 'Subtotal', 'woocommerce' ); // phpcs:ignore WordPress.WP.I18n ?>:</strong>
		<?php echo WC()->cart->get_cart_subtotal(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
	</div>
	<div class="elementor-menu-cart__footer-buttons">
		<a href="<?php echo esc_url( wc_get_cart_url() ); ?>" class="elementor-button elementor-button--view-cart elementor-size-md">
			<span class="elementor-button-text"><?php echo esc_html__( 'View cart', 'woocommerce' ); // phpcs:ignore WordPress.WP.I18n ?></span>
		</a>
		<a href="<?php echo esc_url( wc_get_checkout_url() ); ?>" class="elementor-button elementor-button--checkout elementor-size-md">
			<span class="elementor-button-text"><?php echo esc_html__( 'Checkout', 'woocommerce' ); // phpcs:ignore WordPress.WP.I18n ?></span>
		</a>
	</div>
	<?php
} // empty( $cart_items )

?>
PK!����6modules/woocommerce/tags/product-short-description.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Short_Description extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-short-description-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Short Description', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return;
		}

		echo wp_kses_post( $product->get_short_description() );
	}
}
PK!��L*modules/woocommerce/tags/product-price.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Price extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-price-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Price', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_control( 'format', [
			'label' => esc_html__( 'Format', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'both' => esc_html__( 'Both', 'elementor-pro' ),
				'original' => esc_html__( 'Original', 'elementor-pro' ),
				'sale' => esc_html__( 'Sale', 'elementor-pro' ),
			],
			'default' => 'both',
		] );

		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return '';
		}

		$format = $this->get_settings( 'format' );
		$value = '';
		switch ( $format ) {
			case 'both':
				$value = $product->get_price_html();
				break;
			case 'original':
				$value = wc_price( $product->get_regular_price() ) . $product->get_price_suffix();
				break;
			case 'sale' && $product->is_on_sale():
				$value = wc_price( $product->get_sale_price() ) . $product->get_price_suffix();
				break;
		}

		// PHPCS - Just passing WC price as is
		echo $value; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK!��u�*modules/woocommerce/tags/product-stock.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Stock extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-stock-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Stock', 'elementor-pro' );
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return;
		}

		if ( 'yes' === $this->get_settings( 'show_text' ) ) {
			$value = wc_get_stock_html( $product );
		} else {
			$value = (int) $product->get_stock_quantity();
		}

		// PHPCS - `wc_get_stock_html` is safe, and `get_stock_quantity` protected with (int).
		echo $value; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	protected function register_controls() {
		$this->add_control(
			'show_text',
			[
				'label' => esc_html__( 'Show Text', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
			]
		);

		$this->add_product_id_control();
	}
}
PK!^g�;%modules/woocommerce/tags/base-tag.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\Woocommerce\Module;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base_Tag extends Tag {
	use Tag_Product_Id;

	public function get_group() {
		return Module::WOOCOMMERCE_GROUP;
	}

	public function get_categories() {
		return [ \Elementor\Modules\DynamicTags\Module::TEXT_CATEGORY ];
	}
}
PK!L����)modules/woocommerce/tags/product-sale.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Sale extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-sale-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Sale', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_control( 'text', [
			'label' => esc_html__( 'Text', 'elementor-pro' ),
			'type' => Controls_Manager::TEXT,
			'default' => esc_html__( 'Sale!', 'elementor-pro' ),
		] );

		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return;
		}

		$value = '';

		if ( $product->is_on_sale() ) {
			$value = $this->get_settings( 'text' );
		}

		echo wp_kses_post( $value );
	}
}
PK!�!���+modules/woocommerce/tags/category-image.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Category_Image extends Base_Data_Tag {
	public function get_name() {
		return 'woocommerce-category-image-tag';
	}

	public function get_title() {
		return esc_html__( 'Category Image', 'elementor-pro' );
	}

	public function get_group() {
		return Module::WOOCOMMERCE_GROUP;
	}

	public function get_categories() {
		return [ \Elementor\Modules\DynamicTags\Module::IMAGE_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		$category_id = 0;

		if ( is_product_category() ) {
			$category_id = get_queried_object_id();
		} elseif ( is_product() ) {
			$product = wc_get_product();
			if ( $product ) {
				$category_ids = $product->get_category_ids();
				if ( ! empty( $category_ids ) ) {
					$category_id = $category_ids[0];
				}
			}
		}

		if ( $category_id ) {
			$image_id = get_term_meta( $category_id, 'thumbnail_id', true );
		}

		if ( empty( $image_id ) ) {
			return [];
		}

		$src = wp_get_attachment_image_src( $image_id, 'full' );

		return [
			'id' => $image_id,
			'url' => $src[0],
		];
	}
}
PK!�ykMM*modules/woocommerce/tags/product-image.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Module;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Image extends Base_Data_Tag {
	use Tag_Product_Id;

	public function get_name() {
		return 'woocommerce-product-image-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Image', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_product_id_control();
	}

	public function get_group() {
		return Module::WOOCOMMERCE_GROUP;
	}

	public function get_categories() {
		return [ \Elementor\Modules\DynamicTags\Module::IMAGE_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );

		if ( ! $product ) {
			return [];
		}

		$image_id = $product->get_image_id();

		if ( ! $image_id ) {
			return [];
		}

		$src = wp_get_attachment_image_src( $image_id, 'full' );

		return [
			'id' => $image_id,
			'url' => $src[0],
		];
	}
}
PK!ih@��*modules/woocommerce/tags/product-terms.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Terms extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-terms-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Terms', 'elementor-pro' );
	}

	protected function register_advanced_section() {
		parent::register_advanced_section();

		$this->update_control(
			'before',
			[
				'default' => esc_html__( 'Categories', 'elementor-pro' ) . ': ',
			]
		);
	}

	protected function register_controls() {
		$taxonomy_filter_args = [
			'show_in_nav_menus' => true,
			'object_type' => [ 'product' ],
		];

		$taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );

		$options = [];

		foreach ( $taxonomies as $taxonomy => $object ) {
			$options[ $taxonomy ] = $object->label;
		}

		$this->add_control(
			'taxonomy',
			[
				'label' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $options,
				'default' => 'product_cat',
			]
		);

		$this->add_control(
			'separator',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => ', ',
			]
		);

		$this->add_product_id_control();
	}

	public function render() {
		$settings = $this->get_settings();

		$product = wc_get_product( $settings['product_id'] );
		if ( ! $product ) {
			return;
		}

		$value = get_the_term_list( $product->get_id(), $settings['taxonomy'], '', $settings['separator'] );

		echo wp_kses_post( $value );
	}
}
PK!�H�o��+modules/woocommerce/tags/product-rating.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Rating extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-rating-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Rating', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_control( 'field', [
			'label' => esc_html__( 'Format', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'average_rating' => esc_html__( 'Average Rating', 'elementor-pro' ),
				'rating_count' => esc_html__( 'Rating Count', 'elementor-pro' ),
				'review_count' => esc_html__( 'Review Count', 'elementor-pro' ),
			],
			'default' => 'average_rating',
		] );

		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return '';
		}

		$field = $this->get_settings( 'field' );
		$value = '';
		switch ( $field ) {
			case 'average_rating':
				$value = $product->get_average_rating();
				break;
			case 'rating_count':
				$value = $product->get_rating_count();
				break;
			case 'review_count':
				$value = $product->get_review_count();
				break;
		}

		// PHPCS - Safe WC data
		echo $value; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}
}
PK!$f��~~,modules/woocommerce/tags/product-gallery.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Gallery extends Base_Data_Tag {
	public function get_name() {
		return 'woocommerce-product-gallery-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Gallery', 'elementor-pro' );
	}

	public function get_group() {
		return Module::WOOCOMMERCE_GROUP;
	}

	public function get_categories() {
		return [ \Elementor\Modules\DynamicTags\Module::GALLERY_CATEGORY ];
	}

	public function get_value( array $options = [] ) {
		$product = wc_get_product();
		if ( ! $product ) {
			return [];
		}
		$value = [];

		$attachment_ids = $product->get_gallery_image_ids();

		foreach ( $attachment_ids as $attachment_id ) {
			$value[] = [
				'id' => $attachment_id,
			];
		}

		return $value;
	}
}
PK!z?��*modules/woocommerce/tags/product-title.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_Title extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-title-tag';
	}

	public function get_title() {
		return esc_html__( 'Product Title', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return;
		}

		echo wp_kses_post( $product->get_title() );
	}
}
PK!+��CC2modules/woocommerce/tags/traits/tag-product-id.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags\Traits;

use ElementorPro\Modules\QueryControl\Module as QueryControlModule;

trait Tag_Product_Id {
	public function add_product_id_control() {
		$this->add_control(
			'product_id',
			[
				'label' => esc_html__( 'Product', 'elementor-pro' ),
				'type' => QueryControlModule::QUERY_CONTROL_ID,
				'options' => [],
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryControlModule::QUERY_OBJECT_POST,
					'query' => [
						'post_type' => [ 'product' ],
					],
				],
				// Since we're using the `wc_get_product` method to retrieve products, when no product selected manually
				// by the dynamic tag - the default should be `false` so the method will use the product id given in the
				// http request instead.
				'default' => false,
			]
		);
	}
}
PK!k&:__*modules/woocommerce/tags/base-data-tag.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag;
use ElementorPro\Modules\Woocommerce\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base_Data_Tag extends Data_Tag {

	public function get_group() {
		return Module::WOOCOMMERCE_GROUP;
	}
}
PK!�6���(modules/woocommerce/tags/product-sku.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Tags;

use ElementorPro\Modules\Woocommerce\Tags\Traits\Tag_Product_Id;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Product_SKU extends Base_Tag {
	public function get_name() {
		return 'woocommerce-product-sku-tag';
	}

	public function get_title() {
		return esc_html__( 'Product SKU', 'elementor-pro' );
	}

	protected function register_controls() {
		$this->add_product_id_control();
	}

	public function render() {
		$product = wc_get_product( $this->get_settings( 'product_id' ) );
		if ( ! $product ) {
			return;
		}

		$value = '';

		if ( $product->get_sku() ) {
			$value = $product->get_sku();
		}

		echo esc_html( $value );
	}
}
PK!�I�OO5modules/woocommerce/settings/settings-woocommerce.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Settings;

use Elementor\Core\Base\Document;
use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Tab_Base;
use ElementorPro\Plugin;
use ElementorPro\Modules\QueryControl\Module as QueryModule;


if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Settings_Woocommerce extends Tab_Base {

	public function get_id() {
		return 'settings-woocommerce';
	}

	public function get_title() {
		return esc_html__( 'WooCommerce', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-woo-settings';
	}

	public function get_group() {
		return 'settings';
	}

	public function get_help_url() {
		return 'https://go.elementor.com/global-woocommerce';
	}

	protected function register_tab_controls() {

		$this->start_controls_section(
			'section_woocommerce_pages',
			[
				'label' => esc_html__( 'WooCommerce Pages', 'elementor-pro' ),
				'tab' => $this->get_id(),
			]
		);

		$this->add_control(
			'woocommerce_pages_intro',
			[
				'raw' => esc_html__( 'Select the pages you want to use as your default WooCommerce shop pages', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
			]
		);

		$autocomplete = [
			'object' => QueryModule::QUERY_OBJECT_POST,
			'query' => [
				'post_type' => [ 'page' ],
			],
		];

		$this->add_control(
			'woocommerce_cart_page_id',
			[
				'label' => esc_html__( 'Cart', 'elementor-pro' ),
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'placeholder' => esc_html__( 'Select a page', 'elementor-pro' ),
				],
				'autocomplete' => $autocomplete,
				'default' => get_option( 'woocommerce_cart_page_id' ),
			]
		);

		$this->add_control(
			'woocommerce_checkout_page_id',
			[
				'label' => esc_html__( 'Checkout', 'elementor-pro' ),
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'placeholder' => esc_html__( 'Select a page', 'elementor-pro' ),
				],
				'autocomplete' => $autocomplete,
				'default' => get_option( 'woocommerce_checkout_page_id' ),
			]
		);

		$this->add_control(
			'woocommerce_myaccount_page_id',
			[
				'label' => esc_html__( 'My Account', 'elementor-pro' ),
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'placeholder' => esc_html__( 'Select a page', 'elementor-pro' ),
				],
				'autocomplete' => $autocomplete,
				'default' => get_option( 'woocommerce_myaccount_page_id' ),
			]
		);

		$this->add_control(
			'woocommerce_terms_page_id',
			[
				'label' => esc_html__( 'Terms & Conditions', 'elementor-pro' ),
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'placeholder' => esc_html__( 'Select a page', 'elementor-pro' ),
				],
				'autocomplete' => $autocomplete,
				'default' => get_option( 'woocommerce_terms_page_id' ),
			]
		);

		$this->add_control(
			'woocommerce_pages_notice',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'Note: Changes you make here will also be reflected in the WooCommerce settings on your WP dashboard', 'elementor-pro' ),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$this->end_controls_section();
	}

	public function on_save( $data ) {
		if (
			! isset( $data['settings']['post_status'] ) ||
			Document::STATUS_PUBLISH !== $data['settings']['post_status'] ||
			// Should check for the current action to avoid infinite loop
			// when updating options like: "blogname" and "blogdescription".
			strpos( current_action(), 'update_option_' ) === 0
		) {
			return;
		}

		$ec_wc_key_mapping = [
			'woocommerce_cart_page_id' => 'woocommerce_cart_page_id',
			'woocommerce_checkout_page_id' => 'woocommerce_checkout_page_id',
			'woocommerce_myaccount_page_id' => 'woocommerce_myaccount_page_id',
			'woocommerce_terms_page_id' => 'woocommerce_terms_page_id',
		];
		foreach ( $ec_wc_key_mapping as $ec_key => $wc_key ) {
			if ( array_key_exists( $ec_key, $data['settings'] ) ) {
				$value = $data['settings'][ $ec_key ] ? $data['settings'][ $ec_key ] : '';
				update_option( $wc_key, $value );
			}
		}
	}
}
PK!�Hت��6modules/woocommerce/classes/base-products-renderer.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base_Products_Renderer extends \WC_Shortcode_Products {

	/**
	 * Override original `get_content` that returns an HTML wrapper even if no results found.
	 *
	 * @return string Products HTML
	 */
	public function get_content() {
		$result = $this->get_query_results();

		if ( empty( $result->total ) ) {
			return '';
		}

		return parent::get_content();
	}
}
PK!��e���1modules/woocommerce/classes/products-renderer.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Products_Renderer extends Base_Products_Renderer {

	private $settings = [];
	private $is_added_product_filter = false;
	const QUERY_CONTROL_NAME = 'query'; //Constraint: the class that uses the renderer, must use the same name
	const DEFAULT_COLUMNS_AND_ROWS = 4;

	public function __construct( $settings = [], $type = 'products' ) {
		$this->settings = $settings;
		$this->type = $type;
		$this->attributes = $this->parse_attributes( [
			'columns' => $settings['columns'],
			'rows' => $settings['rows'],
			'paginate' => $settings['paginate'],
			'cache' => false,
		] );
		$this->query_args = $this->parse_query_args();
	}

	/**
	 * Override the original `get_query_results`
	 * with modifications that:
	 * 1. Remove `pre_get_posts` action if `is_added_product_filter`.
	 *
	 * @return bool|mixed|object
	 */

	protected function get_query_results() {
		$results = parent::get_query_results();
		// Start edit.
		if ( $this->is_added_product_filter ) {
			remove_action( 'pre_get_posts', [ wc()->query, 'product_query' ] );
		}
		// End edit.

		return $results;
	}

	protected function parse_query_args() {
		$prefix = self::QUERY_CONTROL_NAME . '_';
		$settings = &$this->settings;

		$query_args = [
			'post_type' => 'product',
			'post_status' => 'publish',
			'ignore_sticky_posts' => true,
			'no_found_rows' => false === wc_string_to_bool( $this->attributes['paginate'] ),
			'orderby' => $settings[ $prefix . 'orderby' ],
			'order' => strtoupper( $settings[ $prefix . 'order' ] ),
		];

		$query_args['meta_query'] = WC()->query->get_meta_query();
		$query_args['tax_query'] = [];

		$front_page = is_front_page();
		if ( 'yes' === $settings['paginate'] && 'yes' === $settings['allow_order'] && ! $front_page ) {
			$ordering_args = WC()->query->get_catalog_ordering_args();
		} else {
			$ordering_args = WC()->query->get_catalog_ordering_args( $query_args['orderby'], $query_args['order'] );
		}

		$query_args['orderby'] = $ordering_args['orderby'];
		$query_args['order'] = $ordering_args['order'];
		if ( $ordering_args['meta_key'] ) {
			$query_args['meta_key'] = $ordering_args['meta_key'];
		}

		// Visibility.
		$this->set_visibility_query_args( $query_args );

		//Featured.
		$this->set_featured_query_args( $query_args );

		//Sale.
		$this->set_sale_products_query_args( $query_args );

		// IDs.
		$this->set_ids_query_args( $query_args );

		// Set specific types query args.
		if ( method_exists( $this, "set_{$this->type}_query_args" ) ) {
			$this->{"set_{$this->type}_query_args"}( $query_args );
		}

		// Categories & Tags
		$this->set_terms_query_args( $query_args );

		//Exclude.
		$this->set_exclude_query_args( $query_args );

		if ( 'yes' === $settings['paginate'] ) {
			$page = absint( empty( $_GET['product-page'] ) ? 1 : $_GET['product-page'] );

			if ( 1 < $page ) {
				$query_args['paged'] = $page;
			}

			if ( 'yes' !== $settings['allow_order'] || $front_page ) {
				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
			}

			if ( 'yes' !== $settings['show_result_count'] ) {
				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
			}
		}
		// fallback to the widget's default settings in case settings was left empty:
		$rows = ! empty( $settings['rows'] ) ? $settings['rows'] : self::DEFAULT_COLUMNS_AND_ROWS;
		$columns = ! empty( $settings['columns'] ) ? $settings['columns'] : self::DEFAULT_COLUMNS_AND_ROWS;
		$query_args['posts_per_page'] = intval( $columns * $rows );

		$query_args = apply_filters( 'woocommerce_shortcode_products_query', $query_args, $this->attributes, $this->type );

		// Always query only IDs.
		$query_args['fields'] = 'ids';

		return $query_args;
	}

	protected function set_ids_query_args( &$query_args ) {
		$prefix = self::QUERY_CONTROL_NAME . '_';

		switch ( $this->settings[ $prefix . 'post_type' ] ) {
			case 'by_id':
				$post__in = $this->settings[ $prefix . 'posts_ids' ];
				break;
			case 'sale':
				$post__in = wc_get_product_ids_on_sale();
				break;
		}

		if ( ! empty( $post__in ) ) {
			$query_args['post__in'] = $post__in;
			remove_action( 'pre_get_posts', [ wc()->query, 'product_query' ] );
		}
	}

	private function set_terms_query_args( &$query_args ) {
		$prefix = self::QUERY_CONTROL_NAME . '_';

		$query_type = $this->settings[ $prefix . 'post_type' ];

		if ( 'by_id' === $query_type || 'current_query' === $query_type ) {
			return;
		}

		if ( empty( $this->settings[ $prefix . 'include' ] ) || empty( $this->settings[ $prefix . 'include_term_ids' ] ) || ! in_array( 'terms', $this->settings[ $prefix . 'include' ], true ) ) {
			return;
		}

		$terms = [];
		foreach ( $this->settings[ $prefix . 'include_term_ids' ] as $id ) {
			$term_data = get_term_by( 'term_taxonomy_id', $id );
			$taxonomy = $term_data->taxonomy;
			$terms[ $taxonomy ][] = $id;
		}
		$tax_query = [];
		foreach ( $terms as $taxonomy => $ids ) {
			$query = [
				'taxonomy' => $taxonomy,
				'field' => 'term_taxonomy_id',
				'terms' => $ids,
			];

			$tax_query[] = $query;
		}

		if ( ! empty( $tax_query ) ) {
			$query_args['tax_query'] = array_merge( $query_args['tax_query'], $tax_query );
		}
	}

	protected function set_featured_query_args( &$query_args ) {
		$prefix = self::QUERY_CONTROL_NAME . '_';
		if ( 'featured' === $this->settings[ $prefix . 'post_type' ] ) {
			$product_visibility_term_ids = wc_get_product_visibility_term_ids();

			$query_args['tax_query'][] = [
				'taxonomy' => 'product_visibility',
				'field' => 'term_taxonomy_id',
				'terms' => [ $product_visibility_term_ids['featured'] ],
			];
		}
	}

	protected function set_sale_products_query_args( &$query_args ) {
		$prefix = self::QUERY_CONTROL_NAME . '_';
		if ( 'sale' === $this->settings[ $prefix . 'post_type' ] ) {
			parent::set_sale_products_query_args( $query_args );
		}
	}

	protected function set_exclude_query_args( &$query_args ) {
		$prefix = self::QUERY_CONTROL_NAME . '_';

		if ( empty( $this->settings[ $prefix . 'exclude' ] ) ) {
			return;
		}
		$post__not_in = [];
		if ( in_array( 'current_post', $this->settings[ $prefix . 'exclude' ] ) ) {
			if ( is_singular() ) {
				$post__not_in[] = get_queried_object_id();
			}
		}

		if ( in_array( 'manual_selection', $this->settings[ $prefix . 'exclude' ] ) && ! empty( $this->settings[ $prefix . 'exclude_ids' ] ) ) {
			$post__not_in = array_merge( $post__not_in, $this->settings[ $prefix . 'exclude_ids' ] );
		}

		$query_args['post__not_in'] = empty( $query_args['post__not_in'] ) ? $post__not_in : array_merge( $query_args['post__not_in'], $post__not_in );

		/**
		 * WC populates `post__in` with the ids of the products that are on sale.
		 * Since WP_Query ignores `post__not_in` once `post__in` exists, the ids are filtered manually, using `array_diff`.
		 */
		if ( 'sale' === $this->settings[ $prefix . 'post_type' ] ) {
			$query_args['post__in'] = array_diff( $query_args['post__in'], $query_args['post__not_in'] );
		}

		if ( in_array( 'terms', $this->settings[ $prefix . 'exclude' ] ) && ! empty( $this->settings[ $prefix . 'exclude_term_ids' ] ) ) {
			$terms = [];
			foreach ( $this->settings[ $prefix . 'exclude_term_ids' ] as $to_exclude ) {
				$term_data = get_term_by( 'term_taxonomy_id', $to_exclude );
				$terms[ $term_data->taxonomy ][] = $to_exclude;
			}
			$tax_query = [];
			foreach ( $terms as $taxonomy => $ids ) {
				$tax_query[] = [
					'taxonomy' => $taxonomy,
					'field' => 'term_id',
					'terms' => $ids,
					'operator' => 'NOT IN',
				];
			}
			if ( empty( $query_args['tax_query'] ) ) {
				$query_args['tax_query'] = $tax_query;
			} else {
				$query_args['tax_query']['relation'] = 'AND';
				$query_args['tax_query'][] = $tax_query;
			}
		}
	}
}
PK!P�X��6modules/woocommerce/classes/current-query-renderer.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Current_Query_Renderer extends Base_Products_Renderer {

	private $settings = [];

	public function __construct( $settings = [], $type = 'products' ) {
		$this->settings = $settings;
		$this->type = $type;
		$this->attributes = $this->parse_attributes( [
			'paginate' => $settings['paginate'],
			'cache' => false,
		] );
		$this->query_args = $this->parse_query_args();
	}

	/**
	 * Override the original `get_query_results`
	 * with modifications that:
	 * 1. Remove `pre_get_posts` action if `is_added_product_filter`.
	 *
	 * @return bool|mixed|object
	 */
	protected function get_query_results() {
		$query = $GLOBALS['wp_query'];

		$paginated = ! $query->get( 'no_found_rows' );

		// Check is_object to indicate it's called the first time.
		if ( ! empty( $query->posts ) && is_object( $query->posts[0] ) ) {
			$query->posts = array_map( function ( $post ) {
				return $post->ID;
			}, $query->posts );
		}

		$results = (object) array(
			'ids'          => wp_parse_id_list( $query->posts ),
			'total'        => $paginated ? (int) $query->found_posts : count( $query->posts ),
			'total_pages'  => $paginated ? (int) $query->max_num_pages : 1,
			'per_page'     => (int) $query->get( 'posts_per_page' ),
			'current_page' => $paginated ? (int) max( 1, $query->get( 'paged', 1 ) ) : 1,
		);

		return $results;
	}

	protected function parse_query_args() {
		$settings = &$this->settings;

		if ( ! is_page( wc_get_page_id( 'shop' ) ) ) {
			$query_args = $GLOBALS['wp_query']->query_vars;
		}

		add_action( "woocommerce_shortcode_before_{$this->type}_loop", function () {
			wc_set_loop_prop( 'is_shortcode', false );
		} );

		if ( 'yes' === $settings['paginate'] ) {
			$page = get_query_var( 'paged', 1 );

			if ( 1 < $page ) {
				$query_args['paged'] = $page;
			}

			if ( 'yes' !== $settings['allow_order'] ) {
				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
			}

			if ( 'yes' !== $settings['show_result_count'] ) {
				remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
			}
		}

		// Always query only IDs.
		$query_args['fields'] = 'ids';

		return $query_args;
	}

}
PK!��,ww*modules/woocommerce/skins/skin-classic.phpnu�[���<?php
namespace ElementorPro\Modules\Woocommerce\Skins;

use Elementor\Controls_Manager;
use Elementor\Skin_Base;
use Elementor\Widget_Base;
use ElementorPro\Modules\Woocommerce\Module;
use ElementorPro\Modules\Woocommerce\Widgets\Products;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Skin_Classic
 * @property Products $parent
 */
class Skin_Classic extends Skin_Base {

	public function get_id() {
		return 'classic';
	}

	public function get_title() {
		return esc_html__( 'Classic', 'elementor-pro' );
	}

	protected function _register_controls_actions() {
		add_action( 'elementor/element/wc-products/section_layout/after_section_start', [ $this, 'register_controls' ] );
	}

	public function register_controls( Widget_Base $widget ) {
		$this->parent = $widget;

		$this->add_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'1' => '1',
					'2' => '2',
					'3' => '3',
					'4' => '4',
					'5' => '5',
					'6' => '6',
				],
				'default' => '4',
			]
		);
	}

	public function render() {
		$this->parent->query_posts();

		/** @var \WP_Query $query */
		$query = $this->parent->get_query();

		if ( ! $query->have_posts() ) {
			return;
		}

		global $woocommerce_loop;

		$woocommerce_loop['columns'] = (int) $this->get_instance_value( 'columns' );

		Module::instance()->add_products_post_class_filter();

		echo '<div class="woocommerce columns-' . esc_attr( $woocommerce_loop['columns'] ) . '">';

		woocommerce_product_loop_start();

		while ( $query->have_posts() ) {
			$query->the_post();

			wc_get_template_part( 'content', 'product' );
		}

		woocommerce_product_loop_end();

		woocommerce_reset_loop();

		wp_reset_postdata();

		echo '</div>';

		Module::instance()->remove_products_post_class_filter();
	}

	public function render_amp() {

	}
}
PK!��V�)modules/global-widget/data/controller.phpnu�[���<?php
namespace ElementorPro\Modules\GlobalWidget\Data;

use Elementor\Data\Base\Controller as Controller_Base;
use ElementorPro\Plugin;

class Controller extends Controller_Base {

	public function get_name() {
		return 'global-widget/templates';
	}

	public function register_endpoints() {} // No endpoints.

	// TODO: After merging with 'REST API V2' add `get_collection_params`.
	public function get_items( $request ) {
		$result = [];
		$ids = $request->get_param( 'ids' );

		if ( ! empty( $ids ) ) {
			// TODO: This logic should be handled at REST API.
			$ids = explode( ',', $ids );

			foreach ( $ids as $template_id ) {
				$template_data = Plugin::elementor()->templates_manager->get_template_data( [
					'source' => 'local',
					'template_id' => $template_id,
				] );

				if ( ! empty( $template_data ) ) {
					$result[ $template_id ] = $template_data['content'][0];
				}
			}
		}

		return $result;
	}

	public function get_permission_callback( $request ) {
		return current_user_can( 'edit_posts' );
	}
}
PK!
1O�	�	.modules/global-widget/views/panel-template.phpnu�[���<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}
?>

<script type="text/template" id="tmpl-elementor-panel-global-widget">
	<div id="elementor-global-widget-locked-header" class="elementor-nerd-box elementor-panel-nerd-box">
		<img class="elementor-nerd-box-icon" src="<?php echo ELEMENTOR_ASSETS_URL . 'images/information.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" />
		<div class="elementor-nerd-box-title elementor-panel-nerd-box-title"><?php echo esc_html__( 'Your Widget is Now Locked', 'elementor-pro' ); ?></div>
		<div class="elementor-nerd-box-message elementor-panel-nerd-box-message"><?php echo esc_html__( 'Edit this global widget to simultaneously update every place you used it, or unlink it so it gets back to being regular widget.', 'elementor-pro' ); ?></div>
	</div>
	<div id="elementor-global-widget-locked-tools">
		<div id="elementor-global-widget-locked-edit" class="elementor-global-widget-locked-tool">
			<div class="elementor-global-widget-locked-tool-description"><?php echo esc_html__( 'Edit global widget', 'elementor-pro' ); ?></div>
			<button class="elementor-button elementor-button-success"><?php echo esc_html__( 'Edit', 'elementor-pro' ); ?></button>
		</div>
		<div id="elementor-global-widget-locked-unlink" class="elementor-global-widget-locked-tool">
			<div class="elementor-global-widget-locked-tool-description"><?php echo esc_html__( 'Unlink from global', 'elementor-pro' ); ?></div>
			<button class="elementor-button elementor-button-danger"><?php echo esc_html__( 'Unlink', 'elementor-pro' ); ?></button>
		</div>
	</div>
	<div id="elementor-global-widget-loading" class="elementor-hidden">
		<i class="eicon-loading eicon-animation-spin" aria-hidden="true"></i>
		<span class="elementor-screen-only"><?php echo esc_html__( 'Loading', 'elementor-pro' ); ?></span>
	</div>
</script>

<script type="text/template" id="tmpl-elementor-panel-global-widget-no-templates">
	<img src="<?php echo ELEMENTOR_ASSETS_URL . 'images/information.svg'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" alt="Elementor Information Nerd Icon" />
	<div class="elementor-nerd-box-title elementor-panel-nerd-box-title"><?php echo esc_html__( 'Save Your First Global Widget', 'elementor-pro' ); ?></div>
	<div class="elementor-nerd-box-message elementor-panel-nerd-box-message"><?php echo esc_html__( 'Save a widget as global, then add it to multiple areas. All areas will be editable from one single place.', 'elementor-pro' ); ?></div>
</script>
PK!��"" modules/global-widget/module.phpnu�[���<?php
namespace ElementorPro\Modules\GlobalWidget;

use Elementor\Core\Documents_Manager;
use Elementor\Element_Base;
use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\GlobalWidget\Documents\Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const TEMPLATE_TYPE = 'widget';

	const WIDGET_TYPE_META_KEY = '_elementor_template_widget_type';

	const INCLUDED_POSTS_LIST_META_KEY = '_elementor_global_widget_included_posts';

	public function __construct() {
		parent::__construct();

		$this->add_hooks();

		Plugin::elementor()->data_manager->register_controller_instance( new Data\Controller() );
	}

	public function get_widgets() {
		return [
			'Global_Widget',
		];
	}

	public function get_name() {
		return 'global-widget';
	}

	public function add_templates_localize_data( $settings ) {
		$elementor = Plugin::elementor();

		$templates_manager = $elementor->templates_manager;

		$widgets_types = $elementor->widgets_manager->get_widget_types();

		$widget_templates = array_filter( $templates_manager->get_source( 'local' )->get_items( [ 'type' => self::TEMPLATE_TYPE ] ), function( $template ) use ( $widgets_types ) {
			if ( empty( $template['widgetType'] ) || empty( $widgets_types[ $template['widgetType'] ] ) ) {
				return false;
			}

			// Open the stack in order to include the widget controls in initial editor config
			$widgets_types[ $template['widgetType'] ]->get_stack( false );

			return true;
		} );

		$widget_templates_content = [];

		foreach ( $widget_templates as $widget_template ) {
			$widget_templates_content[ $widget_template['template_id'] ] = [
				'elType' => 'widget',
				'title' => $widget_template['title'],
				'widgetType' => $widget_template['widgetType'],
			];
		}

		$settings = array_replace_recursive( $settings, [
			'widget_templates' => $widget_templates_content,
			'i18n' => [
				'unlink' => esc_html__( 'Unlink', 'elementor-pro' ),
				'cancel' => esc_html__( 'Cancel', 'elementor-pro' ),
				'unlink_widget' => esc_html__( 'Unlink Widget', 'elementor-pro' ),
				'global' => esc_html__( 'Global', 'elementor-pro' ),
				'dialog_confirm_unlink' => esc_html__( 'This will make the widget stop being global. It\'ll be reverted into being just a regular widget.', 'elementor-pro' ),
				'global_widget_save_title' => esc_html__( 'Save your widget as a global widget', 'elementor-pro' ),
				'global_widget_save_description' => esc_html__( 'You\'ll be able to add this global widget to multiple areas on your site, and edit it from one single place.', 'elementor-pro' ),
				'linked_to_global' => esc_html__( 'Linked to Global', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public function set_template_widget_type_meta( $post_id, $template_data ) {
		if ( self::TEMPLATE_TYPE === $template_data['type'] ) {
			update_post_meta( $post_id, self::WIDGET_TYPE_META_KEY, $template_data['content'][0]['widgetType'] );
		}
	}

	public function on_template_update( $template_id, $template_data ) {
		if ( self::TEMPLATE_TYPE !== $template_data['type'] ) {
			return;
		}

		$this->delete_included_posts_css( $template_id );
	}

	public function filter_template_data( $data ) {
		if ( self::TEMPLATE_TYPE === $data['type'] ) {
			$data['widgetType'] = get_post_meta( $data['template_id'], self::WIDGET_TYPE_META_KEY, true );
		}

		return $data;
	}

	public function get_element_child_type( Element_Base $default_child_type, array $element_data ) {
		if ( isset( $element_data['templateID'] ) ) {
			$template_post = get_post( $element_data['templateID'] );

			if ( ! $template_post || 'trash' === $template_post->post_status ) {
				return false;
			}
		}

		return $default_child_type;
	}

	public function is_post_type_support_elementor( $is_supported, $post_id, $post_type ) {
		if ( ! $is_supported || Source_Local::CPT !== $post_type ) {
			return $is_supported;
		}

		$is_widget_template = $this->is_widget_template( $post_id );

		// FIX ME: Change `get_current_screen()` condition to better way.
		if ( $is_widget_template && function_exists( 'get_current_screen' ) ) {
			$screen = get_current_screen();

			if ( ! empty( $screen->id ) && in_array( $screen->id, [ 'elementor_library', 'edit-elementor_library' ] ) ) {
				$is_supported = false;
			}
		}

		return $is_supported;
	}

	public function is_template_supports_export( $default_value, $template_id ) {
		return $default_value && ! $this->is_widget_template( $template_id );
	}

	/**
	 * Remove user edit capabilities.
	 *
	 * Filters the user capabilities to disable editing in admin.
	 *
	 * @param array $allcaps An array of all the user's capabilities.
	 * @param array $caps    Actual capabilities for meta capability.
	 * @param array $args    Optional parameters passed to has_cap(), typically object ID.
	 *
	 * @return array
	 * @deprecated 3.1.0
	 */
	public function remove_user_edit_cap( $allcaps, $caps, $args ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function( __METHOD__, '3.1.0', 'Plugin::elementor()->documents->remove_user_edit_cap()' );

		return Plugin::elementor()->documents->remove_user_edit_cap( $allcaps, $caps, $args );
	}

	public function is_widget_template( $template_id ) {
		$template_type = Source_Local::get_template_type( $template_id );

		return self::TEMPLATE_TYPE === $template_type;
	}

	public function set_global_widget_included_posts_list( $post_id, $editor_data ) {
		$global_widget_ids = [];

		Plugin::elementor()->db->iterate_data( $editor_data, function( $element_data ) use ( &$global_widget_ids ) {
			if ( isset( $element_data['templateID'] ) ) {
				$global_widget_ids[] = $element_data['templateID'];
			}
		} );

		foreach ( $global_widget_ids as $widget_id ) {
			$included_posts = get_post_meta( $widget_id, self::INCLUDED_POSTS_LIST_META_KEY, true );

			if ( ! is_array( $included_posts ) ) {
				$included_posts = [];
			}

			$included_posts[ $post_id ] = true;

			update_post_meta( $widget_id, self::INCLUDED_POSTS_LIST_META_KEY, $included_posts );
		}
	}

	private function delete_included_posts_css( $template_id ) {
		$including_post_ids = (array) get_post_meta( $template_id, self::INCLUDED_POSTS_LIST_META_KEY, true );

		if ( empty( $including_post_ids ) ) {
			return;
		}

		foreach ( array_keys( $including_post_ids ) as $post_id ) {
			delete_post_meta( $post_id, '_elementor_css' );
		}
	}

	/**
	 * @param Documents_Manager $documents_manager
	 */
	public function register_documents( $documents_manager ) {
		$documents_manager->register_document_type( self::TEMPLATE_TYPE, Documents\Widget::get_class_full_name() );
	}

	public function on_elementor_editor_init() {
		Plugin::elementor()->common->add_template( __DIR__ . '/views/panel-template.php' );
	}

	/**
	 * Get document data.
	 *
	 * Used to manipulate data of global widgets.
	 *
	 * @param $data
	 * @param $document
	 *
	 * @return array
	 */
	private function get_document_data( $data, $document ) {
		// If not a global widget template document or does not have elements.
		if ( ! ( $document instanceof Widget ) && ! empty( $data['elements'] ) ) {
			$data['elements'] = Plugin::elementor()->db->iterate_data( $data['elements'], function( $element ) {
				if ( ! empty( $element['templateID'] ) ) {
					$element['originalWidgetType'] = $element['widgetType'];
					$element['widgetType'] = 'global';
				}

				return $element;
			} );
		}

		return $data;
	}

	private function add_hooks() {
		add_action( 'elementor/documents/register', [ $this, 'register_documents' ] );
		add_action( 'elementor/template-library/after_save_template', [ $this, 'set_template_widget_type_meta' ], 10, 2 );
		add_action( 'elementor/template-library/after_update_template', [ $this, 'on_template_update' ], 10, 2 );
		add_action( 'elementor/editor/init', [ $this, 'on_elementor_editor_init' ] );
		add_action( 'elementor/editor/after_save', [ $this, 'set_global_widget_included_posts_list' ], 10, 2 );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'add_templates_localize_data' ] );
		add_filter( 'elementor/template-library/get_template', [ $this, 'filter_template_data' ] );
		add_filter( 'elementor/element/get_child_type', [ $this, 'get_element_child_type' ], 10, 2 );
		add_filter( 'elementor/utils/is_post_support', [ $this, 'is_post_type_support_elementor' ], 10, 3 );

		add_filter( 'elementor/template_library/is_template_supports_export', [ $this, 'is_template_supports_export' ], 10, 2 );
		add_filter( 'elementor/document/save/data', function ( $data, $document ) {
			return $this->get_document_data( $data, $document );
		}, 10, 2 );
	}
}
PK!n��ں�*modules/global-widget/documents/widget.phpnu�[���<?php
namespace ElementorPro\Modules\GlobalWidget\Documents;

use Elementor\Core\Base\Document;
use Elementor\Modules\Library\Documents\Library_Document;
use Elementor\User;
use ElementorPro\Modules\GlobalWidget\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Widget extends Library_Document {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['admin_tab_group'] = 'library';
		$properties['show_in_library'] = false;
		$properties['is_editable'] = false;

		// Since, created in the editor environment.
		$properties['show_in_finder'] = false;

		return $properties;
	}

	public function get_name() {
		return 'widget';
	}

	public static function get_title() {
		return esc_html__( 'Global Widget', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Global Widgets', 'elementor-pro' );
	}

	public function is_editable_by_current_user() {
		return User::is_current_user_can_edit( $this->get_main_id() );
	}

	public function import( array $data ) {
		parent::import( $data );

		$this->update_main_meta( Module::WIDGET_TYPE_META_KEY, $data['content'][0]['widgetType'] );
	}

	public function save( $data ) {
		// Since the method of 'modules/usage::before_document_save' will remove from global if new_status is the same as old.
		$data['settings'] = [ 'post_status' => Document::STATUS_PUBLISH ];

		return parent::save( $data );
	}
}
PK!���4��/modules/global-widget/widgets/global-widget.phpnu�[���<?php
namespace ElementorPro\Modules\GlobalWidget\Widgets;

use Elementor\Core\Base\Document;
use Elementor\Widget_Base;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Global_Widget extends Base_Widget {
	/**
	 * @var Widget_Base
	 */
	private $original_element_instance;

	/**
	 * @var array
	 */
	private $template_data;

	/**
	 * @var array
	 */
	private $data;

	/**
	 * @var Widget_Base
	 */
	private $original_widget_type;

	public function __construct( $data = [], $args = null ) {
		if ( $data && ! empty( $data['templateID'] ) ) {
			$template_data = Plugin::elementor()->templates_manager->get_template_data( [
				'source' => 'local',
				'template_id' => $data['templateID'],
			] );

			if ( is_wp_error( $template_data ) ) {
				throw new \Exception( $template_data->get_error_message() );
			}

			if ( empty( $template_data['content'] ) ) {
				throw new \Exception( 'Template content not found.' );
			}

			$this->set_template_data( $template_data );

			$template_widget_type = $this->get_template_widget_type();
			$original_widget_type = Plugin::elementor()->widgets_manager->get_widget_types(
				$template_widget_type
			);

			if ( ! $original_widget_type ) {
				throw new \Exception( 'Original Widget Type not found.' );
			}

			// If it saved as draft it already have the recent settings.
			if ( empty( $data['draft'] ) ) {
				if ( empty( $data['originalWidgetType'] ) ) {
					// If: `$data['originalWidgetType']` exists it means that the data was manipulated in saving process, from the backend.
					// so `widgetType` is 'global' and have to be changed.
					$data['widgetType'] = $template_widget_type;
				}

				if ( ! $this->is_draft_or_autosave_process() ) {
					// If its not 'draft saving process' then settings should be according the template.
					// Since draft saving process, already have the recent settings to save.
					$data['settings'] = $this->get_template_settings();
				}
			}

			$this->original_widget_type = $original_widget_type;
			$this->data = $data;
		}

		parent::__construct( $data, $args );
	}

	public function show_in_panel() {
		return false;
	}

	public function get_raw_data( $with_html_content = false ) {
		$raw_data = parent::get_raw_data( $with_html_content );

		// Save 'templateID' in all situations.
		$raw_data['templateID'] = $this->get_data( 'templateID' );

		if ( $this->is_draft_or_autosave_process() ) {
			$raw_data['draft'] = true;

			// Keep the current snapshot, just mark it as a draft.
			return $raw_data;
		}

		if ( $this->is_saved_as_draft() ) {
			// If: Item saved as draft
			// Then: the the `$raw_data` hold recently saved draft template, with original widget type.
			$raw_data['widgetType'] = $this->get_template_widget_type();

			return $raw_data;
		}

		return $raw_data;
	}

	public function render_content() {
		$this->get_original_element_instance()->render_content();
	}

	public function get_unique_selector() {
		return '.elementor-global-' . $this->get_data( 'templateID' );
	}

	public function get_name() {
		return 'global';
	}

	public function get_title() {
		return esc_html__( 'Global', 'elementor-pro' );
	}

	public function get_script_depends() {
		if ( $this->is_type_instance() ) {
			return [];
		}

		return $this->get_original_element_instance()->get_script_depends();
	}

	public function get_style_depends() {
		if ( $this->is_type_instance() ) {
			return [];
		}

		return $this->get_original_element_instance()->get_style_depends();
	}

	public function get_controls( $control_id = null ) {
		if ( $this->is_type_instance() ) {
			return [];
		}

		return $this->get_original_element_instance()->get_controls();
	}

	public function get_original_element_instance() {
		if ( ! $this->original_element_instance ) {
			$this->init_original_element_instance();
		}

		return $this->original_element_instance;
	}

	public function on_export() {
		return $this->get_template_content();
	}

	public function render_plain_content() {
		$this->get_original_element_instance()->render_plain_content();
	}

	protected function add_render_attributes() {
		// Never called from editor, this method is used only for frontend/preview.
		parent::add_render_attributes();

		$skin_type = $this->get_settings( '_skin' );

		$original_widget_type = $this->get_original_element_instance()->get_data( 'widgetType' );

		$this->set_render_attribute( '_wrapper', 'data-widget_type', $original_widget_type . '.' . ( $skin_type ? $skin_type : 'default' ) );

		$this->add_render_attribute( '_wrapper', [
			'class' => [
				'elementor-global-' . $this->get_data( 'templateID' ),
				'elementor-widget-' . $original_widget_type,
			],
		] );
	}

	private function init_original_element_instance() {
		$widget_class = $this->original_widget_type->get_class_name();

		$template_content = $this->get_template_or_draft_content();
		$template_content['id'] = $this->get_id();

		$this->original_element_instance = new $widget_class(
			$template_content,
			$this->original_widget_type->get_default_args()
		);
	}

	private function is_draft_or_autosave_process() {
		/**
		 * `Plugin::elementor()->common` is not available for guest/logged out users.
		 */
		if ( ! Plugin::elementor()->common ) {
			return false;
		}

		$ajax = Plugin::elementor()->common->get_component( 'ajax' );
		$ajax_data = $ajax->get_current_action_data();

		// Is draft or autosave?
		return $ajax_data && 'save_builder' === $ajax_data['action'] && in_array( $ajax_data['data']['status'], [
			Document::STATUS_DRAFT,
			Document::STATUS_AUTOSAVE,
		], true );
	}

	private function is_saved_as_draft() {
		return $this->get_data( 'draft' );
	}

	private function set_template_data( $template_data ) {
		$this->template_data = $template_data;
	}

	private function get_template_widget_type() {
		return $this->template_data['content'][0]['widgetType'];
	}

	private function get_template_settings() {
		return $this->template_data['content'][0]['settings'];
	}

	private function get_template_content() {
		return $this->template_data['content'][0];
	}

	private function get_template_or_draft_content() {
		if ( $this->is_saved_as_draft() ) {
			$draft_data = $this->data;
			$draft_data['widgetType'] = $this->get_template_widget_type();

			return $draft_data;
		}

		return $this->get_template_content();
	}
}
PK!���U��modules/posts/module.phpnu�[���<?php
namespace ElementorPro\Modules\Posts;

use Elementor\Utils;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\Posts\Data\Controller;
use ElementorPro\Modules\Posts\Widgets\Posts_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_name() {
		return 'posts';
	}

	public function get_widgets() {
		return [
			'Posts',
			'Portfolio',
		];
	}

	/**
	 * Fix WP 5.5 pagination issue.
	 *
	 * Return true to mark that it's handled and avoid WP to set it as 404.
	 *
	 * @see https://github.com/elementor/elementor/issues/12126
	 * @see https://core.trac.wordpress.org/ticket/50976
	 *
	 * Based on the logic at \WP::handle_404.
	 *
	 * @param $handled - Default false.
	 * @param $wp_query
	 *
	 * @return bool
	 */
	public function allow_posts_widget_pagination( $handled, $wp_query ) {
		// Check it's not already handled and it's a single paged query.
		if ( $handled || empty( $wp_query->query_vars['page'] ) || ! is_singular() || empty( $wp_query->post ) ) {
			return $handled;
		}

		$document = Plugin::elementor()->documents->get( $wp_query->post->ID );

		return $this->is_valid_pagination( $document->get_elements_data(), $wp_query->query_vars['page'] );
	}

	/**
	 * Checks a set of elements if there is a posts/archive widget that may be paginated to a specific page number.
	 *
	 * @param array $elements
	 * @param       $current_page
	 *
	 * @return bool
	 */
	public function is_valid_pagination( array $elements, $current_page ) {
		$is_valid = false;

		// Get all widgets that may add pagination.
		$widgets = Plugin::elementor()->widgets_manager->get_widget_types();
		$posts_widgets = [];
		foreach ( $widgets as $widget ) {
			if ( $widget instanceof Posts_Base ) {
				$posts_widgets[] = $widget->get_name();
			}
		}

		Plugin::elementor()->db->iterate_data( $elements, function( $element ) use ( &$is_valid, $posts_widgets, $current_page ) {
			if ( isset( $element['widgetType'] ) && in_array( $element['widgetType'], $posts_widgets, true ) ) {
				// Has pagination.
				if ( ! empty( $element['settings']['pagination_type'] ) ) {
					$using_ajax_pagination = in_array( $element['settings']['pagination_type'], [
						Posts_Base::LOAD_MORE_ON_CLICK,
						Posts_Base::LOAD_MORE_INFINITE_SCROLL,
					], true);

					// No max pages limits or in load more mode.
					if ( empty( $element['settings']['pagination_page_limit'] ) || $using_ajax_pagination ) {
						$is_valid = true;
					} elseif ( (int) $current_page <= (int) $element['settings']['pagination_page_limit'] ) {
						// Has page limit but current page is less than or equal to max page limit.
						$is_valid = true;
					}
				}
			}
		} );

		return $is_valid;
	}

	public function __construct() {
		parent::__construct();

		Plugin::elementor()->data_manager->register_controller( Controller::class );

		add_filter( 'pre_handle_404', [ $this, 'allow_posts_widget_pagination' ], 10, 2 );
	}

}

PK!�#VFF$modules/posts/skins/skin-classic.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Skins;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Box_Shadow;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Skin_Classic extends Skin_Base {

	protected function _register_controls_actions() {
		parent::_register_controls_actions();

		add_action( 'elementor/element/posts/classic_section_design_layout/after_section_end', [ $this, 'register_additional_design_controls' ] );
	}

	public function get_id() {
		return 'classic';
	}

	public function get_title() {
		return esc_html__( 'Classic', 'elementor-pro' );
	}

	public function register_additional_design_controls() {
		$this->start_controls_section(
			'section_design_box',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'box_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post' => 'border-style: solid; border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'box_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'box_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'content_padding',
			[
				'label' => esc_html__( 'Content Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__text' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
				'separator' => 'after',
			]
		);

		$this->start_controls_tabs( 'bg_effects_tabs' );

		$this->start_controls_tab( 'classic_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}} .elementor-post',
			]
		);

		$this->add_control(
			'box_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'box_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'classic_style_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow_hover',
				'selector' => '{{WRAPPER}} .elementor-post:hover',
			]
		);

		$this->add_control(
			'box_bg_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'box_border_color_hover',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post:hover' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}
}
PK!�*�.��)modules/posts/skins/skin-full-content.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Skins;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Skin_Full_Content extends Skin_Classic {
	use Skin_Content_Base;

	public function get_id() {
		return 'full_content';
	}
}
PK!�^)�;�;"modules/posts/skins/skin-cards.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Skins;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Utils;
use Elementor\Widget_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Skin_Cards extends Skin_Base {

	protected function _register_controls_actions() {
		parent::_register_controls_actions();

		add_action( 'elementor/element/posts/cards_section_design_image/before_section_end', [ $this, 'register_additional_design_image_controls' ] );
	}

	public function get_id() {
		return 'cards';
	}

	public function get_title() {
		return esc_html__( 'Cards', 'elementor-pro' );
	}

	public function start_controls_tab( $id, $args ) {
		$args['condition']['_skin'] = $this->get_id();
		$this->parent->start_controls_tab( $this->get_control_id( $id ), $args );
	}

	public function end_controls_tab() {
		$this->parent->end_controls_tab();
	}

	public function start_controls_tabs( $id ) {
		$args['condition']['_skin'] = $this->get_id();
		$this->parent->start_controls_tabs( $this->get_control_id( $id ) );
	}

	public function end_controls_tabs() {
		$this->parent->end_controls_tabs();
	}

	public function register_controls( Widget_Base $widget ) {
		$this->parent = $widget;

		$this->register_columns_controls();
		$this->register_post_count_control();
		$this->register_thumbnail_controls();
		$this->register_title_controls();
		$this->register_excerpt_controls();
		$this->register_meta_data_controls();
		$this->register_read_more_controls();
		$this->register_link_controls();
		$this->register_badge_controls();
		$this->register_avatar_controls();
	}

	public function register_design_controls() {
		$this->register_design_layout_controls();
		$this->register_design_card_controls();
		$this->register_design_image_controls();
		$this->register_design_content_controls();
	}

	protected function register_thumbnail_controls() {
		parent::register_thumbnail_controls();
		$this->remove_responsive_control( 'image_width' );
		$this->update_control(
			'thumbnail',
			[
				'label' => esc_html__( 'Show Image', 'elementor-pro' ),
				'options' => [
					'top' => esc_html__( 'Yes', 'elementor-pro' ),
					'none' => esc_html__( 'No', 'elementor-pro' ),
				],
				'render_type' => 'template',
			]
		);
	}

	protected function register_meta_data_controls() {
		parent::register_meta_data_controls();
		$this->update_control(
			'meta_separator',
			[
				'default' => '•',
			]
		);
	}

	public function register_additional_design_image_controls() {
		$this->update_control(
			'image_spacing',
			[
				'selectors' => [
					'{{WRAPPER}} .elementor-post__text' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);

		$this->remove_control( 'img_border_radius' );

		$this->add_control(
			'heading_badge_style',
			[
				'label' => esc_html__( 'Badge', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_position',
			[
				'label' => 'Badge Position',
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'default' => 'right',
				'selectors' => [
					'{{WRAPPER}} .elementor-post__badge' => '{{VALUE}}: 0',
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__badge' => 'background-color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__badge' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__badge' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__badge' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'badge_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'default' => [
					'size' => 20,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__badge' => 'margin: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'badge_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-post__card .elementor-post__badge',
				'exclude' => [ 'font_size', 'line-height' ],
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'heading_avatar_style',
			[
				'label' => esc_html__( 'Avatar', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
					$this->get_control_id( 'show_avatar' ) => 'show-avatar',
				],
			]
		);

		$this->add_control(
			'avatar_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 20,
						'max' => 90,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__avatar' => 'top: calc(-{{SIZE}}{{UNIT}} / 2);',
					'{{WRAPPER}} .elementor-post__avatar img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-post__thumbnail__link' => 'margin-bottom: calc({{SIZE}}{{UNIT}} / 2)',
				],
				'condition' => [
					$this->get_control_id( 'show_avatar' ) => 'show-avatar',
				],
			]
		);
	}

	public function register_badge_controls() {
		$this->add_control(
			'show_badge',
			[
				'label' => esc_html__( 'Badge', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'badge_taxonomy',
			[
				'label' => esc_html__( 'Badge Taxonomy', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'label_block' => true,
				'default' => 'category',
				'options' => $this->get_taxonomies(),
				'condition' => [
					$this->get_control_id( 'show_badge' ) => 'yes',
				],
			]
		);
	}

	public function register_avatar_controls() {
		$this->add_control(
			'show_avatar',
			[
				'label' => esc_html__( 'Avatar', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'show-avatar',
				'default' => 'show-avatar',
				'separator' => 'before',
				'prefix_class' => 'elementor-posts--',
				'render_type' => 'template',
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);
	}

	public function register_design_card_controls() {
		$this->start_controls_section(
			'section_design_card',
			[
				'label' => esc_html__( 'Card', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'card_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'card_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'card_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 15,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card' => 'border-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'card_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'card_padding',
			[
				'label' => esc_html__( 'Horizontal Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__text' => 'padding: 0 {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-post__meta-data' => 'padding: 10px {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-post__avatar' => 'padding-right: {{SIZE}}{{UNIT}}; padding-left: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'card_vertical_padding',
			[
				'label' => esc_html__( 'Vertical Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'box_shadow_box_shadow_type', // The name of this control is like that, for future extensibility to group_control box shadow.
			[
				'label' => esc_html__( 'Box Shadow', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'prefix_class' => 'elementor-card-shadow-',
				'default' => 'yes',
			]
		);

		$this->add_control(
			'hover_effect',
			[
				'label' => esc_html__( 'Hover Effect', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'gradient' => esc_html__( 'Gradient', 'elementor-pro' ),
					//'zoom-in' => esc_html__( 'Zoom In', 'elementor-pro' ),
					//'zoom-out' => esc_html__( 'Zoom Out', 'elementor-pro' ),
				],
				'default' => 'gradient',
				'separator' => 'before',
				'prefix_class' => 'elementor-posts__hover-',
			]
		);

		$this->add_control(
			'meta_border_color',
			[
				'label' => esc_html__( 'Meta Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}} .elementor-post__card .elementor-post__meta-data' => 'border-top-color: {{VALUE}}',
				],
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->end_controls_section();
	}

	protected function register_design_content_controls() {
		parent::register_design_content_controls();

		$this->remove_control( 'meta_spacing' );

		$this->update_control(
			'read_more_spacing',
			[
				'selectors' => [
					'{{WRAPPER}} .elementor-post__read-more' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
			],
			[
				'recursive' => true,
			]
		);
	}

	protected function get_taxonomies() {
		$taxonomies = get_taxonomies( [ 'show_in_nav_menus' => true ], 'objects' );

		$options = [ '' => '' ];

		foreach ( $taxonomies as $taxonomy ) {
			$options[ $taxonomy->name ] = $taxonomy->label;
		}

		return $options;
	}

	protected function render_post_header() {
		?>
		<article <?php post_class( [ 'elementor-post elementor-grid-item' ] ); ?>>
			<div class="elementor-post__card">
		<?php
	}

	protected function render_post_footer() {
		?>
			</div>
		</article>
		<?php
	}

	protected function render_avatar() {
		?>
		<div class="elementor-post__avatar">
			<?php echo get_avatar( get_the_author_meta( 'ID' ), 128, '', get_the_author_meta( 'display_name' ) ); ?>
		</div>
		<?php
	}

	protected function render_badge() {
		$taxonomy = $this->get_instance_value( 'badge_taxonomy' );
		if ( empty( $taxonomy ) || ! taxonomy_exists( $taxonomy ) ) {
			return;
		}

		$terms = get_the_terms( get_the_ID(), $taxonomy );
		if ( empty( $terms[0] ) ) {
			return;
		}
		?>
		<div class="elementor-post__badge"><?php echo esc_html( $terms[0]->name ); ?></div>
		<?php
	}

	protected function render_thumbnail() {
		if ( 'none' === $this->get_instance_value( 'thumbnail' ) ) {
			return;
		}

		$settings = $this->parent->get_settings();
		$setting_key = $this->get_control_id( 'thumbnail_size' );
		$settings[ $setting_key ] = [
			'id' => get_post_thumbnail_id(),
		];
		$thumbnail_html = Group_Control_Image_Size::get_attachment_image_html( $settings, $setting_key );

		if ( empty( $thumbnail_html ) ) {
			return;
		}

		$optional_attributes_html = $this->get_optional_link_attributes_html();

		?>
		<a class="elementor-post__thumbnail__link" href="<?php echo esc_url( get_permalink() ); ?>" <?php Utils::print_unescaped_internal_string( $optional_attributes_html ); ?>><div class="elementor-post__thumbnail"><?php Utils::print_unescaped_internal_string( $thumbnail_html ); ?></div></a>
		<?php
		if ( $this->get_instance_value( 'show_badge' ) ) {
			$this->render_badge();
		}

		if ( $this->get_instance_value( 'show_avatar' ) ) {
			$this->render_avatar();
		}
	}

	protected function render_post() {
		$this->render_post_header();
		$this->render_thumbnail();
		$this->render_text_header();
		$this->render_title();
		$this->render_excerpt();
		$this->render_read_more();
		$this->render_text_footer();
		$this->render_meta_data();
		$this->render_post_footer();
	}
}
PK!����uu!modules/posts/skins/skin-base.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Skins;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Skin_Base as Elementor_Skin_Base;
use Elementor\Widget_Base;
use Elementor\Utils;
use ElementorPro\Modules\Posts\Traits\Button_Widget_Trait;
use ElementorPro\Plugin;
use ElementorPro\Modules\Posts\Widgets\Posts_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Skin_Base extends Elementor_Skin_Base {
	use Button_Widget_Trait;

	/**
	 * @var string Save current permalink to avoid conflict with plugins the filters the permalink during the post render.
	 */
	protected $current_permalink;

	protected function _register_controls_actions() {
		add_action( 'elementor/element/posts/section_layout/before_section_end', [ $this, 'register_controls' ] );
		add_action( 'elementor/element/posts/section_query/after_section_end', [ $this, 'register_style_sections' ] );
	}

	public function register_style_sections( Widget_Base $widget ) {
		$this->parent = $widget;

		$this->register_design_controls();
	}

	public function register_controls( Widget_Base $widget ) {
		$this->parent = $widget;

		$this->register_columns_controls();
		$this->register_post_count_control();
		$this->register_thumbnail_controls();
		$this->register_title_controls();
		$this->register_excerpt_controls();
		$this->register_meta_data_controls();
		$this->register_read_more_controls();
		$this->register_link_controls();
	}

	public function register_design_controls() {
		$this->register_design_layout_controls();
		$this->register_design_image_controls();
		$this->register_design_content_controls();
	}

	protected function register_thumbnail_controls() {
		$this->add_control(
			'thumbnail',
			[
				'label' => esc_html__( 'Image Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'top',
				'options' => [
					'top' => esc_html__( 'Top', 'elementor-pro' ),
					'left' => esc_html__( 'Left', 'elementor-pro' ),
					'right' => esc_html__( 'Right', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-posts--thumbnail-',
			]
		);

		$this->add_control(
			'masonry',
			[
				'label' => esc_html__( 'Masonry', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'condition' => [
					$this->get_control_id( 'columns!' ) => '1',
					$this->get_control_id( 'thumbnail' ) => 'top',
				],
				'render_type' => 'ui',
				'frontend_available' => true,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'thumbnail_size',
				'default' => 'medium',
				'exclude' => [ 'custom' ],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
				'prefix_class' => 'elementor-posts--thumbnail-size-',
			]
		);

		$this->add_responsive_control(
			'item_ratio',
			[
				'label' => esc_html__( 'Image Ratio', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0.66,
				],
				'tablet_default' => [
					'size' => '',
				],
				'mobile_default' => [
					'size' => 0.5,
				],
				'range' => [
					'px' => [
						'min' => 0.1,
						'max' => 2,
						'step' => 0.01,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-posts-container .elementor-post__thumbnail' => 'padding-bottom: calc( {{SIZE}} * 100% );',
					'{{WRAPPER}}:after' => 'content: "{{SIZE}}";',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
					$this->get_control_id( 'masonry' ) => '',
				],
			]
		);

		$this->add_responsive_control(
			'image_width',
			[
				'label' => esc_html__( 'Image Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'%' => [
						'min' => 10,
						'max' => 100,
					],
					'px' => [
						'min' => 10,
						'max' => 600,
					],
				],
				'default' => [
					'size' => 100,
					'unit' => '%',
				],
				'tablet_default' => [
					'size' => '',
					'unit' => '%',
				],
				'mobile_default' => [
					'size' => 100,
					'unit' => '%',
				],
				'size_units' => [ '%', 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__thumbnail__link' => 'width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);
	}

	protected function register_columns_controls() {
		$this->add_responsive_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '3',
				'tablet_default' => '2',
				'mobile_default' => '1',
				'options' => [
					'1' => '1',
					'2' => '2',
					'3' => '3',
					'4' => '4',
					'5' => '5',
					'6' => '6',
				],
				'prefix_class' => 'elementor-grid%s-',
				'frontend_available' => true,
			]
		);
	}

	protected function register_post_count_control() {
		$this->add_control(
			'posts_per_page',
			[
				'label' => esc_html__( 'Posts Per Page', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 6,
			]
		);
	}

	protected function register_title_controls() {
		$this->add_control(
			'show_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'title_tag',
			[
				'label' => esc_html__( 'Title HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
					'p' => 'p',
				],
				'default' => 'h3',
				'condition' => [
					$this->get_control_id( 'show_title' ) => 'yes',
				],
			]
		);

	}

	protected function register_excerpt_controls() {
		$this->add_control(
			'show_excerpt',
			[
				'label' => esc_html__( 'Excerpt', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'excerpt_length',
			[
				'label' => esc_html__( 'Excerpt Length', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				/** This filter is documented in wp-includes/formatting.php */
				'default' => apply_filters( 'excerpt_length', 25 ),
				'condition' => [
					$this->get_control_id( 'show_excerpt' ) => 'yes',
				],
			]
		);
	}

	protected function register_read_more_controls() {
		$this->add_control(
			'show_read_more',
			[
				'label' => esc_html__( 'Read More', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'read_more_text',
			[
				'label' => esc_html__( 'Read More Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Read More »', 'elementor-pro' ),
				'condition' => [
					$this->get_control_id( 'show_read_more' ) => 'yes',
				],
			]
		);
	}

	protected function register_link_controls() {
		$this->add_control(
			'open_new_tab',
			[
				'label' => esc_html__( 'Open in new window', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'default' => 'no',
				'render_type' => 'none',
			]
		);
	}

	protected function get_optional_link_attributes_html() {
		$settings = $this->parent->get_settings();
		$new_tab_setting_key = $this->get_control_id( 'open_new_tab' );
		$optional_attributes_html = 'yes' === $settings[ $new_tab_setting_key ] ? 'target="_blank"' : '';

		return $optional_attributes_html;
	}

	protected function register_meta_data_controls() {
		$this->add_control(
			'meta_data',
			[
				'label' => esc_html__( 'Meta Data', 'elementor-pro' ),
				'label_block' => true,
				'type' => Controls_Manager::SELECT2,
				'default' => [ 'date', 'comments' ],
				'multiple' => true,
				'options' => [
					'author' => esc_html__( 'Author', 'elementor-pro' ),
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'time' => esc_html__( 'Time', 'elementor-pro' ),
					'comments' => esc_html__( 'Comments', 'elementor-pro' ),
					'modified' => esc_html__( 'Date Modified', 'elementor-pro' ),
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'meta_separator',
			[
				'label' => esc_html__( 'Separator Between', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '///',
				'selectors' => [
					'{{WRAPPER}} .elementor-post__meta-data span + span:before' => 'content: "{{VALUE}}"',
				],
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);
	}

	/**
	 * Style Tab
	 */
	protected function register_design_layout_controls() {
		$this->start_controls_section(
			'section_design_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'column_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 30,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--grid-column-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 35,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-posts--align-',
			]
		);

		$this->end_controls_section();
	}

	protected function register_design_image_controls() {
		$this->start_controls_section(
			'section_design_image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'img_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__thumbnail' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);

		$this->add_responsive_control(
			'image_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link' => 'margin-right: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link' => 'margin-left: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
				'default' => [
					'size' => 20,
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => 'none',
				],
			]
		);

		$this->start_controls_tabs( 'thumbnail_effects_tabs' );

		$this->start_controls_tab( 'normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'thumbnail_filters',
				'selector' => '{{WRAPPER}} .elementor-post__thumbnail img',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'thumbnail_hover_filters',
				'selector' => '{{WRAPPER}} .elementor-post:hover .elementor-post__thumbnail img',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}

	protected function register_design_content_controls() {
		$this->start_controls_section(
			'section_design_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					$this->get_control_id( 'show_title' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__title, {{WRAPPER}} .elementor-post__title a' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'show_title' ) => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-post__title, {{WRAPPER}} .elementor-post__title a',
				'condition' => [
					$this->get_control_id( 'show_title' ) => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'show_title' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'heading_meta_style',
			[
				'label' => esc_html__( 'Meta', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->add_control(
			'meta_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__meta-data' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->add_control(
			'meta_separator_color',
			[
				'label' => esc_html__( 'Separator Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__meta-data span:before' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'meta_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
				'selector' => '{{WRAPPER}} .elementor-post__meta-data',
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->add_responsive_control(
			'meta_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__meta-data' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'meta_data!' ) => [],
				],
			]
		);

		$this->add_control(
			'heading_excerpt_style',
			[
				'label' => esc_html__( 'Excerpt', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					$this->get_control_id( 'show_excerpt' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'excerpt_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-post__excerpt p' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'show_excerpt' ) => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'excerpt_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-post__excerpt p',
				'condition' => [
					$this->get_control_id( 'show_excerpt' ) => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'excerpt_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__excerpt' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'show_excerpt' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'heading_readmore_style',
			[
				'label' => esc_html__( 'Read More', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					$this->get_control_id( 'show_read_more' ) => 'yes',
				],
			]
		);

		$this->add_control(
			'read_more_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__read-more' => 'color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'show_read_more' ) => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'read_more_typography',
				'selector' => '{{WRAPPER}} .elementor-post__read-more',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'condition' => [
					$this->get_control_id( 'show_read_more' ) => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'read_more_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__text' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'show_read_more' ) => 'yes',
				],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$this->parent->query_posts();

		/** @var \WP_Query $query */
		$query = $this->parent->get_query();

		if ( ! $query->found_posts ) {
			return;
		}

		$this->render_loop_header();

		// It's the global `wp_query` it self. and the loop was started from the theme.
		if ( $query->in_the_loop ) {
			$this->current_permalink = get_permalink();
			$this->render_post();
		} else {
			while ( $query->have_posts() ) {
				$query->the_post();

				$this->current_permalink = get_permalink();
				$this->render_post();
			}
		}

		wp_reset_postdata();

		$this->render_loop_footer();

	}

	public function filter_excerpt_length() {
		return $this->get_instance_value( 'excerpt_length' );
	}

	public function filter_excerpt_more( $more ) {
		return '';
	}

	public function get_container_class() {
		return 'elementor-posts--skin-' . $this->get_id();
	}

	protected function render_thumbnail() {
		$thumbnail = $this->get_instance_value( 'thumbnail' );

		if ( 'none' === $thumbnail && ! Plugin::elementor()->editor->is_edit_mode() ) {
			return;
		}

		$settings = $this->parent->get_settings();
		$setting_key = $this->get_control_id( 'thumbnail_size' );
		$settings[ $setting_key ] = [
			'id' => get_post_thumbnail_id(),
		];
		$thumbnail_html = Group_Control_Image_Size::get_attachment_image_html( $settings, $setting_key );

		if ( empty( $thumbnail_html ) ) {
			return;
		}

		$optional_attributes_html = $this->get_optional_link_attributes_html();

		?>
		<a class="elementor-post__thumbnail__link" href="<?php echo esc_attr( $this->current_permalink ); ?>" <?php echo esc_attr( $optional_attributes_html ); ?>>
			<div class="elementor-post__thumbnail"><?php echo wp_kses_post( $thumbnail_html ); ?></div>
		</a>
		<?php
	}

	protected function render_title() {
		if ( ! $this->get_instance_value( 'show_title' ) ) {
			return;
		}

		$optional_attributes_html = $this->get_optional_link_attributes_html();

		$tag = $this->get_instance_value( 'title_tag' );
		?>
		<<?php Utils::print_validated_html_tag( $tag ); ?> class="elementor-post__title">
			<a href="<?php echo esc_attr( $this->current_permalink ); ?>" <?php echo esc_attr( $optional_attributes_html ); ?>>
				<?php the_title(); ?>
			</a>
		</<?php Utils::print_validated_html_tag( $tag ); ?>>
		<?php
	}

	protected function render_excerpt() {
		add_filter( 'excerpt_more', [ $this, 'filter_excerpt_more' ], 20 );
		add_filter( 'excerpt_length', [ $this, 'filter_excerpt_length' ], 20 );

		if ( ! $this->get_instance_value( 'show_excerpt' ) ) {
			return;
		}

		add_filter( 'excerpt_more', [ $this, 'filter_excerpt_more' ], 20 );
		add_filter( 'excerpt_length', [ $this, 'filter_excerpt_length' ], 20 );

		?>
		<div class="elementor-post__excerpt">
			<?php the_excerpt(); ?>
		</div>
		<?php

		remove_filter( 'excerpt_length', [ $this, 'filter_excerpt_length' ], 20 );
		remove_filter( 'excerpt_more', [ $this, 'filter_excerpt_more' ], 20 );
	}

	protected function render_read_more() {
		if ( ! $this->get_instance_value( 'show_read_more' ) ) {
			return;
		}

		$optional_attributes_html = $this->get_optional_link_attributes_html();

		?>
			<a class="elementor-post__read-more" href="<?php echo $this->current_permalink; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" <?php Utils::print_unescaped_internal_string( $optional_attributes_html ); ?>>
				<?php
				echo esc_html( $this->get_instance_value( 'read_more_text' ) );
				?>
			</a>
		<?php
	}

	protected function render_post_header() {
		?>
		<article <?php post_class( [ 'elementor-post elementor-grid-item' ] ); ?>>
		<?php
	}

	protected function render_post_footer() {
		?>
		</article>
		<?php
	}

	protected function render_text_header() {
		?>
		<div class="elementor-post__text">
		<?php
	}

	protected function render_text_footer() {
		?>
		</div>
		<?php
	}

	protected function render_loop_header() {
		$classes = [
			'elementor-posts-container',
			'elementor-posts',
			$this->get_container_class(),
		];

		/** @var \WP_Query $wp_query */
		$wp_query = $this->parent->get_query();

		// Use grid only if found posts.
		if ( $wp_query->found_posts ) {
			$classes[] = 'elementor-grid';
		}

		$this->parent->add_render_attribute( 'container', [
			'class' => $classes,
		] );

		?>
		<div <?php $this->parent->print_render_attribute_string( 'container' ); ?>>
		<?php
	}

	protected function render_message() {
		$settings = $this->parent->get_settings();
		?>
		<div class="e-load-more-message"><?php echo esc_html( $settings['load_more_no_posts_custom_message'] ); ?></div>
		<?php
	}

	protected function render_loop_footer() {
		$parent_settings = $this->parent->get_settings();
		$using_ajax_pagination = in_array( $parent_settings['pagination_type'], [
			Posts_Base::LOAD_MORE_ON_CLICK,
			Posts_Base::LOAD_MORE_INFINITE_SCROLL,
		], true);
		?>
		</div>


		<?php if ( $using_ajax_pagination && ! empty( $parent_settings['load_more_spinner']['value'] ) ) : ?>
			<span class="e-load-more-spinner">
				<?php Icons_Manager::render_icon( $parent_settings['load_more_spinner'], [ 'aria-hidden' => 'true' ] ); ?>
			</span>
		<?php endif; ?>

		<?php

		if ( '' === $parent_settings['pagination_type'] ) {
			return;
		}

		$page_limit = $this->parent->get_query()->max_num_pages;

		// Page limit control should not effect in load more mode.
		if ( '' !== $parent_settings['pagination_page_limit'] && ! $using_ajax_pagination ) {
			$page_limit = min( $parent_settings['pagination_page_limit'], $page_limit );
		}

		if ( 2 > $page_limit ) {
			return;
		}

		$this->parent->add_render_attribute( 'pagination', 'class', 'elementor-pagination' );

		$has_numbers = in_array( $parent_settings['pagination_type'], [ 'numbers', 'numbers_and_prev_next' ] );
		$has_prev_next = in_array( $parent_settings['pagination_type'], [ 'prev_next', 'numbers_and_prev_next' ] );

		$load_more_type = $parent_settings['pagination_type'];

		$current_page = $this->parent->get_current_page();
		$next_page = intval( $current_page ) + 1;

		$this->parent->add_render_attribute( 'load_more_anchor', [
			'data-page' => $current_page,
			'data-max-page' => $this->parent->get_query()->max_num_pages,
			'data-next-page' => $this->parent->get_wp_link_page( $next_page ),
		] );

		?>
		<div class="e-load-more-anchor" <?php $this->parent->print_render_attribute_string( 'load_more_anchor' ); ?>></div>
		<?php

		if ( $using_ajax_pagination ) {
			if ( 'load_more_on_click' === $load_more_type ) {
				// The link-url control is hidden, so default value is added to keep the same style like button widget.
				$this->parent->set_settings( 'link', [ 'url' => '#' ] );

				$this->render_button( $this->parent );
			}

			$this->render_message();
			return;
		}

		$links = [];

		if ( $has_numbers ) {
			$paginate_args = [
				'type' => 'array',
				'current' => $this->parent->get_current_page(),
				'total' => $page_limit,
				'prev_next' => false,
				'show_all' => 'yes' !== $parent_settings['pagination_numbers_shorten'],
				'before_page_number' => '<span class="elementor-screen-only">' . esc_html__( 'Page', 'elementor-pro' ) . '</span>',
			];

			if ( is_singular() && ! is_front_page() ) {
				global $wp_rewrite;
				if ( $wp_rewrite->using_permalinks() ) {
					$paginate_args['base'] = trailingslashit( get_permalink() ) . '%_%';
					$paginate_args['format'] = user_trailingslashit( '%#%', 'single_paged' );
				} else {
					$paginate_args['format'] = '?page=%#%';
				}
			}

			$links = paginate_links( $paginate_args );
		}

		if ( $has_prev_next ) {
			$prev_next = $this->parent->get_posts_nav_link( $page_limit );
			array_unshift( $links, $prev_next['prev'] );
			$links[] = $prev_next['next'];
		}

		// PHPCS - Seems that `$links` is safe.
		?>
		<nav class="elementor-pagination" role="navigation" aria-label="<?php esc_attr_e( 'Pagination', 'elementor-pro' ); ?>">
			<?php echo implode( PHP_EOL, $links ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
		</nav>
		<?php
	}

	protected function render_meta_data() {
		/** @var array $settings e.g. [ 'author', 'date', ... ] */
		$settings = $this->get_instance_value( 'meta_data' );
		if ( empty( $settings ) ) {
			return;
		}
		?>
		<div class="elementor-post__meta-data">
			<?php
			if ( in_array( 'author', $settings ) ) {
				$this->render_author();
			}

			if ( in_array( 'date', $settings ) ) {
				$this->render_date_by_type();
			}

			if ( in_array( 'time', $settings ) ) {
				$this->render_time();
			}

			if ( in_array( 'comments', $settings ) ) {
				$this->render_comments();
			}
			if ( in_array( 'modified', $settings ) ) {
				$this->render_date_by_type( 'modified' );
			}
			?>
		</div>
		<?php
	}

	protected function render_author() {
		?>
		<span class="elementor-post-author">
			<?php the_author(); ?>
		</span>
		<?php
	}

	/**
	 * @deprecated since 3.0.0 Use `Skin_Base::render_date_by_type()` instead
	 */
	protected function render_date() {
		// _deprecated_function( __METHOD__, '3.0.0', 'Skin_Base::render_date_by_type()' );
		$this->render_date_by_type();
	}

	protected function render_date_by_type( $type = 'publish' ) {
		?>
		<span class="elementor-post-date">
			<?php
			switch ( $type ) :
				case 'modified':
					$date = get_the_modified_date();
					break;
				default:
					$date = get_the_date();
			endswitch;
			/** This filter is documented in wp-includes/general-template.php */
			// PHPCS - The date is safe.
			echo apply_filters( 'the_date', $date, get_option( 'date_format' ), '', '' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			?>
		</span>
		<?php
	}

	protected function render_time() {
		?>
		<span class="elementor-post-time">
			<?php the_time(); ?>
		</span>
		<?php
	}

	protected function render_comments() {
		?>
		<span class="elementor-post-avatar">
			<?php comments_number(); ?>
		</span>
		<?php
	}

	protected function render_post() {
		$this->render_post_header();
		$this->render_thumbnail();
		$this->render_text_header();
		$this->render_title();
		$this->render_meta_data();
		$this->render_excerpt();
		$this->render_read_more();
		$this->render_text_footer();
		$this->render_post_footer();
	}

	public function render_amp() {

	}
}
PK!f��$$)modules/posts/skins/skin-content-base.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Skins;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Image_Size;
use Elementor\Utils;
use Elementor\Widget_Base;
use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilder;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

trait Skin_Content_Base {
	protected function _register_controls_actions() {
		$widget_name = $this->parent->get_name();
		add_action( 'elementor/element/' . $widget_name . '/section_layout/before_section_end', [ $this, 'register_skin_controls' ] );

		if ( 'archive-posts' === $widget_name ) {
			add_action( 'elementor/element/archive-posts/section_layout/after_section_end', [ $this, 'register_style_sections' ] );
		} else {
			add_action( 'elementor/element/posts/section_query/after_section_end', [ $this, 'register_style_sections' ] );
		}
	}

	public function get_title() {
		return esc_html__( 'Full Content', 'elementor-pro' );
	}

	public function register_skin_controls( Widget_Base $widget ) {
		$this->parent = $widget;
		$this->register_post_count_control();
		$this->register_row_gap_control();
		$this->register_thumbnail_controls();
		$this->register_title_controls();
		$this->register_meta_data_controls();
		$this->register_link_controls();
	}

	public function register_thumbnail_controls() {
		$this->add_control(
			'thumbnail',
			[
				'label' => esc_html__( 'Show Thumbnail', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'thumbnail',
				'prefix_class' => 'elementor-posts--show-',
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'thumbnail_size',
				'default' => 'medium',
				'exclude' => [ 'custom' ],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => '',
				],
				'prefix_class' => 'elementor-posts--thumbnail-size-',
			]
		);

		$this->add_responsive_control(
			'item_ratio',
			[
				'label' => esc_html__( 'Image Ratio', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0.66,
				],
				'tablet_default' => [
					'size' => '',
				],
				'mobile_default' => [
					'size' => 0.5,
				],
				'range' => [
					'px' => [
						'min' => 0.1,
						'max' => 2,
						'step' => 0.01,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-posts-container .elementor-post__thumbnail' => 'padding-bottom: calc( {{SIZE}} * 100% );',
					'{{WRAPPER}}:after' => 'content: "{{SIZE}}"; position: absolute; color: transparent;',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => '',
				],
			]
		);

		$this->add_responsive_control(
			'image_width',
			[
				'label' => esc_html__( 'Image Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'%' => [
						'min' => 10,
						'max' => 100,
					],
					'px' => [
						'min' => 10,
						'max' => 600,
					],
				],
				'default' => [
					'size' => 100,
					'unit' => '%',
				],
				'tablet_default' => [
					'size' => '',
					'unit' => '%',
				],
				'mobile_default' => [
					'size' => 100,
					'unit' => '%',
				],
				'size_units' => [ '%', 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__thumbnail__link' => 'width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					$this->get_control_id( 'thumbnail!' ) => '',
				],
			]
		);
	}

	public function register_design_controls() {
		$this->register_additional_design_controls();
		$this->register_design_image_controls();
		$this->register_design_content_controls();
		$this->update_image_spacing_control();
	}

	public function register_row_gap_control() {
		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 35,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}} .elementor-posts-container article' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);
	}

	// Update selectors for full content
	public function update_image_spacing_control() {
		$image_spacing_control = [
			'selectors' => [
				'{{WRAPPER}} .elementor-posts--skin-full_content a.elementor-post__thumbnail__link' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				'{{WRAPPER}} .elementor-posts--skin-archive_full_content a.elementor-post__thumbnail__link' => 'margin-bottom: {{SIZE}}{{UNIT}}',
			],
		];
		$this->update_control( 'image_spacing', $image_spacing_control );
	}

	protected function render_thumbnail() {
		$thumbnail = $this->get_instance_value( 'thumbnail' );

		// In edit mode we render thumbnail to avoid server side rendering on each change.
		if ( empty( $thumbnail ) && ! Plugin::elementor()->editor->is_edit_mode() ) {
			return;
		}

		$settings = $this->parent->get_settings();
		$setting_key = $this->get_control_id( 'thumbnail_size' );
		$settings[ $setting_key ] = [
			'id' => get_post_thumbnail_id(),
		];
		$thumbnail_html = Group_Control_Image_Size::get_attachment_image_html( $settings, $setting_key );

		if ( empty( $thumbnail_html ) ) {
			return;
		}

		$optional_attributes_html = $this->get_optional_link_attributes_html();

		// PHPCS - `get_permalink` is safe.
		?>
		<a class="elementor-post__thumbnail__link" href="<?php echo $this->current_permalink; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" <?php Utils::print_unescaped_internal_string( $optional_attributes_html ); ?>>
		<div class="elementor-post__thumbnail"><?php echo wp_kses_post( $thumbnail_html ); ?></div>
		</a>
		<?php
	}

	public function render_post_content( $with_wrapper = false ) {
		static $did_posts = [];
		static $level = 0;

		$post = get_post();

		if ( post_password_required( $post->ID ) ) {
			// PHPCS - `get_the_password_form`. is safe.
			echo get_the_password_form( $post->ID ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			return;
		}

		// Avoid recursion
		if ( isset( $did_posts[ $post->ID ] ) ) {
			return;
		}

		$level++;
		$did_posts[ $post->ID ] = true;
		// End avoid recursion

		$editor = Plugin::elementor()->editor;
		$is_edit_mode = $editor->is_edit_mode();

		if ( Plugin::elementor()->preview->is_preview_mode( $post->ID ) ) {
			$content = Plugin::elementor()->preview->builder_wrapper( '' ); // XSS ok
		} else {
			/**
			 * @var ThemeBuilder ThemeBuilder
			 */
			$document = ThemeBuilder::instance()->get_document( $post->ID );
			// On view theme document show it's preview content.
			if ( $document ) {
				$preview_type = $document->get_settings( 'preview_type' );
				$preview_id = $document->get_settings( 'preview_id' );

				if ( 0 === strpos( $preview_type, 'single' ) && ! empty( $preview_id ) ) {
					$post = get_post( $preview_id );

					if ( ! $post ) {
						$level--;

						return;
					}
				}
			}

			// Set edit mode as false, so don't render settings and etc. use the $is_edit_mode to indicate if we need the CSS inline
			$editor->set_edit_mode( false );

			// Print manually (and don't use `the_content()`) because it's within another `the_content` filter, and the Elementor filter has been removed to avoid recursion.
			$content = Plugin::elementor()->frontend->get_builder_content( $post->ID, true );

			Plugin::elementor()->frontend->remove_content_filter();

			if ( empty( $content ) ) {
				// Split to pages.
				setup_postdata( $post );

				/** This filter is documented in wp-includes/post-template.php */
				// PHPCS - `get_the_content` is safe.
				echo apply_filters( 'the_content', get_the_content() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

				wp_link_pages( [
					'before' => '<div class="page-links elementor-page-links"><span class="page-links-title elementor-page-links-title">' . esc_html__( 'Pages:', 'elementor-pro' ) . '</span>',
					'after' => '</div>',
					'link_before' => '<span>',
					'link_after' => '</span>',
					'pagelink' => '<span class="screen-reader-text">' . esc_html__( 'Page', 'elementor-pro' ) . ' </span>%',
					'separator' => '<span class="screen-reader-text">, </span>',
				] );

				Plugin::elementor()->frontend->add_content_filter();

				$level--;

				// Restore edit mode state
				Plugin::elementor()->editor->set_edit_mode( $is_edit_mode );

				return;
			} else {
				Plugin::elementor()->frontend->remove_content_filters();
				$content = apply_filters( 'the_content', $content );
				Plugin::elementor()->frontend->restore_content_filters();
			}
		} // End if().

		// Restore edit mode state
		Plugin::elementor()->editor->set_edit_mode( $is_edit_mode );

		if ( $with_wrapper ) {
			echo '<div class="elementor-post__content">' . balanceTags( $content, true ) . '</div>';  // XSS ok.
		} else {
			echo $content; // XSS ok.
		}

		$level--;

		if ( 0 === $level ) {
			$did_posts = [];
		}
	}

	protected function render_post() {
		$this->render_post_header();
		$this->render_thumbnail();
		$this->render_text_header();
		$this->render_title();
		$this->render_meta_data();
		$this->render_post_content( true );
		$this->render_text_footer();
		$this->render_post_footer();
	}
}
PK!�ޔ!��!modules/posts/data/controller.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Data;

use Elementor\Utils;
use ElementorPro\Data\Base\Controller as Controller_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Controller extends Controller_Base {

	public function get_name() {
		return 'posts-widget';
	}

	public function register_endpoints() {
		// There is only get items end point
	}

	public function get_items( $request ) {
		$document = Plugin::elementor()->documents->get( $request->get_param( 'post_id' ) );

		if ( ! $document ) {
			return new \WP_Error(
				'document_not_exist',
				__( 'Document doesn\'t exist', 'elementor-pro' ),
				[ 'status' => 404 ]
			);
		}

		$element_data = $document->get_elements_data();
		$posts_widget = Utils::find_element_recursive( $element_data, $request->get_param( 'element_id' ) );

		if ( empty( $posts_widget ) ) {
			return new \WP_Error(
				'Element_not_exist',
				__( 'Posts widget doesn\'t exist', 'elementor-pro' ),
				[ 'status' => 404 ]
			);
		}

		set_query_var( 'paged', $request->get_param( 'page' ) );

		/** @var \ElementorPro\Modules\Posts\Widgets\Posts $element_instance */
		$element_instance = Plugin::elementor()->elements_manager->create_element_instance( $posts_widget );

		ob_start();
		$element_instance->render_content();
		$html = ob_get_clean();

		return [
			'content' => $html,
		];
	}

	public function get_permission_callback( $request ) {
		return true;
	}
}
PK!H�3/8/8,modules/posts/traits/button-widget-trait.phpnu�[���<?php
// @TODO: Use the button trait from core when it will be added.

namespace ElementorPro\Modules\Posts\Traits;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Utils;
use Elementor\Widget_Base;

trait Button_Widget_Trait {
	/**
	 * Get button sizes.
	 *
	 * Retrieve an array of button sizes for the button widget.
	 *
	 * @since 3.4.0
	 * @access public
	 * @static
	 *
	 * @return array An array containing button sizes.
	 */
	public static function get_button_sizes() {
		return [
			'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
			'sm' => esc_html__( 'Small', 'elementor-pro' ),
			'md' => esc_html__( 'Medium', 'elementor-pro' ),
			'lg' => esc_html__( 'Large', 'elementor-pro' ),
			'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
		];
	}

	protected function register_button_content_controls( $args = [] ) {
		$default_args = [
			'section_condition' => [],
			'button_text' => esc_html__( 'Click here', 'elementor-pro' ),
			'control_label_name' => esc_html__( 'Text', 'elementor-pro' ),
			'prefix_class' => 'elementor%s-align-',
			'alignment_default' => '',
			'exclude_inline_options' => [],
		];

		$args = wp_parse_args( $args, $default_args );

		$this->add_control(
			'button_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					'info' => esc_html__( 'Info', 'elementor-pro' ),
					'success' => esc_html__( 'Success', 'elementor-pro' ),
					'warning' => esc_html__( 'Warning', 'elementor-pro' ),
					'danger' => esc_html__( 'Danger', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-button-',
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'text',
			[
				'label' => $args['control_label_name'],
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => $args['button_text'],
				'placeholder' => $args['button_text'],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'default' => [
					'url' => '#',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start'    => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'prefix_class' => $args['prefix_class'],
				'default' => $args['alignment_default'],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'sm',
				'options' => self::get_button_sizes(),
				'style_transfer' => true,
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'selected_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'skin' => 'inline',
				'label_block' => false,
				'condition' => $args['section_condition'],
				'exclude_inline_options' => $args['exclude_inline_options'],
			]
		);

		$this->add_control(
			'icon_align',
			[
				'label' => esc_html__( 'Icon Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'left',
				'options' => [
					'left' => esc_html__( 'Before', 'elementor-pro' ),
					'right' => esc_html__( 'After', 'elementor-pro' ),
				],
				'condition' => array_merge( $args['section_condition'], [ 'selected_icon[value]!' => '' ] ),
			]
		);

		$this->add_control(
			'icon_indent',
			[
				'label' => esc_html__( 'Icon Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-button .elementor-align-icon-right' => 'margin-left: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-button .elementor-align-icon-left' => 'margin-right: {{SIZE}}{{UNIT}};',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'default' => 'traditional',
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'button_css_id',
			[
				'label' => esc_html__( 'Button ID', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => '',
				'title' => esc_html__( 'Add your custom id WITHOUT the Pound key. e.g: my-id', 'elementor-pro' ),
				'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => $args['section_condition'],
			]
		);
	}

	protected function register_button_style_controls( $args = [] ) {
		$default_args = [
			'section_condition' => [],
		];

		$args = wp_parse_args( $args, $default_args );

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-button',
				'condition' => $args['section_condition'],
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'text_shadow',
				'selector' => '{{WRAPPER}} .elementor-button',
				'condition' => $args['section_condition'],
			]
		);

		$this->start_controls_tabs( 'tabs_button_style', [
			'condition' => $args['section_condition'],
		] );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'fill: {{VALUE}}; color: {{VALUE}};',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'background',
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-button',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
					'color' => [
						'global' => [
							'default' => Global_Colors::COLOR_ACCENT,
						],
					],
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-button:hover, {{WRAPPER}} .elementor-button:focus' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button:hover svg, {{WRAPPER}} .elementor-button:focus svg' => 'fill: {{VALUE}};',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background_hover',
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-button:hover, {{WRAPPER}} .elementor-button:focus',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'condition' => [
					'border_border!' => '',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-button:hover, {{WRAPPER}} .elementor-button:focus' => 'border-color: {{VALUE}};',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'hover_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
				'condition' => $args['section_condition'],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'border',
				'selector' => '{{WRAPPER}} .elementor-button',
				'separator' => 'before',
				'condition' => $args['section_condition'],
			]
		);

		$this->add_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => $args['section_condition'],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'button_box_shadow',
				'selector' => '{{WRAPPER}} .elementor-button',
				'condition' => $args['section_condition'],
			]
		);

		$this->add_responsive_control(
			'text_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
				'condition' => $args['section_condition'],
			]
		);
	}

	/**
	 * Render button widget output on the frontend.
	 *
	 * Written in PHP and used to generate the final HTML.
	 *
	 * @param \Elementor\Widget_Base|null $instance
	 *
	 * @since  3.4.0
	 * @access protected
	 */
	protected function render_button( Widget_Base $instance = null ) {
		if ( empty( $instance ) ) {
			$instance = $this;
		}

		$settings = $instance->get_settings();
		$instance->add_render_attribute( 'wrapper', 'class', 'elementor-button-wrapper' );

		if ( ! empty( $settings['link']['url'] ) ) {
			$instance->add_link_attributes( 'button', $settings['link'] );
			$instance->add_render_attribute( 'button', 'class', 'elementor-button-link' );
		}

		$instance->add_render_attribute( 'button', 'class', 'elementor-button' );
		$instance->add_render_attribute( 'button', 'role', 'button' );

		if ( ! empty( $settings['button_css_id'] ) ) {
			$instance->add_render_attribute( 'button', 'id', $settings['button_css_id'] );
		}

		if ( ! empty( $settings['size'] ) ) {
			$instance->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['size'] );
		}

		if ( $settings['hover_animation'] ) {
			$instance->add_render_attribute( 'button', 'class', 'elementor-animation-' . $settings['hover_animation'] );
		}
		?>
		<div <?php $instance->print_render_attribute_string( 'wrapper' ); ?>>
			<a <?php $instance->print_render_attribute_string( 'button' ); ?>>
				<?php $this->render_text( $instance ); ?>
			</a>
		</div>
		<?php
	}

	/**
	 * Render button text.
	 *
	 * Render button widget text.
	 *
	 * @param \Elementor\Widget_Base $instance
	 *
	 * @since  3.4.0
	 * @access protected
	 */
	protected function render_text( Widget_Base $instance ) {
		$settings = $instance->get_settings();

		$migrated = isset( $settings['__fa4_migrated']['selected_icon'] );
		$is_new = empty( $settings['icon'] ) && Icons_Manager::is_migration_allowed();

		if ( ! $is_new && empty( $settings['icon_align'] ) ) {
			// @todo: remove when deprecated
			// added as bc in 2.6
			//old default
			$settings['icon_align'] = $instance->get_settings( 'icon_align' );
		}

		$instance->add_render_attribute( [
			'content-wrapper' => [
				'class' => 'elementor-button-content-wrapper',
			],
			'icon-align' => [
				'class' => [
					'elementor-button-icon',
					'elementor-align-icon-' . $settings['icon_align'],
				],
			],
			'text' => [
				'class' => 'elementor-button-text',
			],
		] );

		// TODO: replace the protected with public
		//$instance->add_inline_editing_attributes( 'text', 'none' );
		?>
		<span <?php $instance->print_render_attribute_string( 'content-wrapper' ); ?>>
			<?php if ( ! empty( $settings['icon'] ) || ! empty( $settings['selected_icon']['value'] ) ) : ?>
				<span <?php $instance->print_render_attribute_string( 'icon-align' ); ?>>
				<?php if ( $is_new || $migrated ) :
					Icons_Manager::render_icon( $settings['selected_icon'], [ 'aria-hidden' => 'true' ] );
				else : ?>
					<i class="<?php echo esc_attr( $settings['icon'] ); ?>" aria-hidden="true"></i>
				<?php endif; ?>
			</span>
			<?php endif; ?>
			<span <?php $instance->print_render_attribute_string( 'text' ); ?>><?php
				// Todo: Make $instance->print_unescaped_setting public.
				Utils::print_unescaped_internal_string( $settings['text'] );
			?></span>
		</span>
		<?php
	}

	public function on_import( $element ) {
		return Icons_Manager::on_import_migration( $element, 'icon', 'selected_icon' );
	}
}
PK!PG�§=�=#modules/posts/widgets/portfolio.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Widgets;

use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\QueryControl\Module as Module_Query;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Related;
use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Portfolio
 */
class Portfolio extends Base_Widget {

	/**
	 * @var \WP_Query
	 */
	private $_query = null;

	protected $_has_template_content = false;

	public function get_name() {
		return 'portfolio';
	}

	public function get_title() {
		return esc_html__( 'Portfolio', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-gallery-grid';
	}

	public function get_keywords() {
		return [ 'posts', 'cpt', 'item', 'loop', 'query', 'portfolio', 'custom post type' ];
	}

	public function get_script_depends() {
		return [ 'imagesloaded' ];
	}

	public function on_import( $element ) {
		if ( isset( $element['settings']['posts_post_type'] ) && ! get_post_type_object( $element['settings']['posts_post_type'] ) ) {
			$element['settings']['posts_post_type'] = 'post';
		}

		return $element;
	}

	public function get_query() {
		return $this->_query;
	}

	protected function register_controls() {
		$this->register_query_section_controls();
	}

	private function register_query_section_controls() {
		$this->start_controls_section(
			'section_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_responsive_control(
			'columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '3',
				'tablet_default' => '2',
				'mobile_default' => '1',
				'options' => [
					'1' => '1',
					'2' => '2',
					'3' => '3',
					'4' => '4',
					'5' => '5',
					'6' => '6',
				],
				'prefix_class' => 'elementor-grid%s-',
				'frontend_available' => true,
				'selectors' => [
					'.elementor-msie {{WRAPPER}} .elementor-portfolio-item' => 'width: calc( 100% / {{SIZE}} )',
				],
			]
		);

		$this->add_control(
			'posts_per_page',
			[
				'label' => esc_html__( 'Posts Per Page', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 6,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'thumbnail_size',
				'exclude' => [ 'custom' ],
				'default' => 'medium',
				'prefix_class' => 'elementor-portfolio--thumbnail-size-',
			]
		);

		$this->add_control(
			'masonry',
			[
				'label' => esc_html__( 'Masonry', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'condition' => [
					'columns!' => '1',
				],
				'render_type' => 'ui',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'item_ratio',
			[
				'label' => esc_html__( 'Item Ratio', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0.66,
				],
				'range' => [
					'px' => [
						'min' => 0.1,
						'max' => 2,
						'step' => 0.01,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post__thumbnail__link' => 'padding-bottom: calc( {{SIZE}} * 100% )',
					'{{WRAPPER}}:after' => 'content: "{{SIZE}}"; position: absolute; color: transparent;',
				],
				'condition' => [
					'masonry' => '',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'show_title',
			[
				'label' => esc_html__( 'Show Title', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'title_tag',
			[
				'label' => esc_html__( 'Title HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
					'p' => 'p',
				],
				'default' => 'h3',
				'condition' => [
					'show_title' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_query',
			[
				'label' => esc_html__( 'Query', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_group_control(
			Group_Control_Related::get_type(),
			[
				'name' => 'posts',
				'presets' => [ 'full' ],
				'exclude' => [
					'posts_per_page', //use the one from Layout section
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'filter_bar',
			[
				'label' => esc_html__( 'Filter Bar', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'show_filter_bar',
			[
				'label' => esc_html__( 'Show', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'taxonomy',
			[
				'label' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'label_block' => true,
				'default' => [],
				'options' => $this->get_taxonomies(),
				'condition' => [
					'show_filter_bar' => 'yes',
					'posts_post_type!' => 'by_id',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_design_layout',
			[
				'label' => esc_html__( 'Items', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		/*
		 * The `item_gap` control is replaced by `column_gap` and `row_gap` controls since v 2.1.6
		 * It is left (hidden) in the widget, to provide compatibility with older installs
		 */

		$this->add_control(
			'item_gap',
			[
				'label' => esc_html__( 'Item Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}; --grid-column-gap: {{SIZE}}{{UNIT}};',
				],
				'frontend_available' => true,
				'classes' => 'elementor-hidden',
			]
		);

		$this->add_control(
			'column_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => ' --grid-column-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}}' => '--grid-row-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-portfolio-item__img, {{WRAPPER}} .elementor-portfolio-item__overlay' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_design_overlay',
			[
				'label' => esc_html__( 'Item Overlay', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'color_background',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} a .elementor-portfolio-item__overlay' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'color_title',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'separator' => 'before',
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} a .elementor-portfolio-item__title' => 'color: {{VALUE}};',
				],
				'condition' => [
					'show_title' => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography_title',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-portfolio-item__title',
				'condition' => [
					'show_title' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_design_filter',
			[
				'label' => esc_html__( 'Filter Bar', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_filter_bar' => 'yes',
				],
			]
		);

		$this->add_control(
			'color_filter',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-portfolio__filter' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'color_filter_active',
			[
				'label' => esc_html__( 'Active Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-portfolio__filter.elementor-active' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography_filter',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-portfolio__filter',
			]
		);

		$this->add_control(
			'filter_item_spacing',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-portfolio__filter:not(:last-child)' => 'margin-right: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}} .elementor-portfolio__filter:not(:first-child)' => 'margin-left: calc({{SIZE}}{{UNIT}}/2)',
				],
			]
		);

		$this->add_control(
			'filter_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-portfolio__filters' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function get_taxonomies() {
		$taxonomies = get_taxonomies( [ 'show_in_nav_menus' => true ], 'objects' );

		$options = [ '' => '' ];

		foreach ( $taxonomies as $taxonomy ) {
			$options[ $taxonomy->name ] = $taxonomy->label;
		}

		return $options;
	}

	protected function get_posts_tags() {
		$taxonomy = $this->get_settings( 'taxonomy' );

		foreach ( $this->_query->posts as $post ) {
			if ( ! $taxonomy ) {
				$post->tags = [];

				continue;
			}

			$tags = wp_get_post_terms( $post->ID, $taxonomy );

			$tags_slugs = [];

			foreach ( $tags as $tag ) {
				$tags_slugs[ $tag->term_id ] = $tag;
			}

			$post->tags = $tags_slugs;
		}
	}

	public function query_posts() {

		$query_args = [
			'posts_per_page' => $this->get_settings( 'posts_per_page' ),
		];

		/** @var Module_Query $elementor_query */
		$elementor_query = Module_Query::instance();
		$this->_query = $elementor_query->get_query( $this, 'posts', $query_args, [] );
	}

	public function render() {
		$this->query_posts();

		$wp_query = $this->get_query();

		if ( ! $wp_query->found_posts ) {
			return;
		}

		$this->get_posts_tags();

		$this->render_loop_header();

		while ( $wp_query->have_posts() ) {
			$wp_query->the_post();

			$this->render_post();
		}

		$this->render_loop_footer();

		wp_reset_postdata();
	}

	protected function render_thumbnail() {
		$settings = $this->get_settings();

		$settings['thumbnail_size'] = [
			'id' => get_post_thumbnail_id(),
		];
		?>
		<div class="elementor-portfolio-item__img elementor-post__thumbnail">
			<?php Group_Control_Image_Size::print_attachment_image_html( $settings, 'thumbnail_size' ); ?>
		</div>
		<?php
	}

	protected function render_filter_menu() {
		$taxonomy = $this->get_settings( 'taxonomy' );

		if ( ! $taxonomy ) {
			return;
		}

		$terms = [];

		foreach ( $this->_query->posts as $post ) {
			$terms += $post->tags;
		}

		if ( empty( $terms ) ) {
			return;
		}

		usort( $terms, function( $a, $b ) {
			return strcmp( $a->name, $b->name );
		} );

		?>
		<ul class="elementor-portfolio__filters">
			<li class="elementor-portfolio__filter elementor-active" data-filter="__all"><?php echo esc_html__( 'All', 'elementor-pro' ); ?></li>
			<?php foreach ( $terms as $term ) { ?>
				<li class="elementor-portfolio__filter" data-filter="<?php echo esc_attr( $term->term_id ); ?>"><?php echo esc_html( $term->name ); ?></li>
			<?php } ?>
		</ul>
		<?php
	}

	protected function render_title() {
		if ( ! $this->get_settings( 'show_title' ) ) {
			return;
		}

		$tag = $this->get_settings( 'title_tag' );
		?>
		<<?php Utils::print_validated_html_tag( $tag ); ?> class="elementor-portfolio-item__title">
		<?php the_title(); ?>
		</<?php Utils::print_validated_html_tag( $tag ); ?>>
		<?php
	}

	protected function render_categories_names() {
		global $post;

		if ( ! $post->tags ) {
			return;
		}

		$separator = '<span class="elementor-portfolio-item__tags__separator"></span>';

		$tags_array = [];

		foreach ( $post->tags as $tag ) {
			$tags_array[] = '<span class="elementor-portfolio-item__tags__tag">' . esc_html( $tag->name ) . '</span>';
		}

		?>
		<div class="elementor-portfolio-item__tags">
			<?php // PHPCS - `$separator`, `$separator` is safe. ?>
			<?php echo implode( $separator, $tags_array ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
		</div>
		<?php
	}

	protected function render_post_header() {
		global $post;

		$tags_classes = array_map( function( $tag ) {
			return 'elementor-filter-' . $tag->term_id;
		}, $post->tags );

		$classes = [
			'elementor-portfolio-item',
			'elementor-post',
			implode( ' ', $tags_classes ),
		];

		// PHPCS - `get_permalink` is safe.
		?>
		<article <?php post_class( $classes ); ?>>
			<a class="elementor-post__thumbnail__link" href="<?php echo get_permalink(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
		<?php
	}

	protected function render_post_footer() {
		?>
		</a>
		</article>
		<?php
	}

	protected function render_overlay_header() {
		?>
		<div class="elementor-portfolio-item__overlay">
		<?php
	}

	protected function render_overlay_footer() {
		?>
		</div>
		<?php
	}

	protected function render_loop_header() {
		if ( $this->get_settings( 'show_filter_bar' ) ) {
			$this->render_filter_menu();
		}
		?>
		<div class="elementor-portfolio elementor-grid elementor-posts-container">
		<?php
	}

	protected function render_loop_footer() {
		?>
		</div>
		<?php
	}

	protected function render_post() {
		$this->render_post_header();
		$this->render_thumbnail();
		$this->render_overlay_header();
		$this->render_title();
		// $this->render_categories_names();
		$this->render_overlay_footer();
		$this->render_post_footer();
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'posts';
	}
}
PK!�g�UAUA$modules/posts/widgets/posts-base.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Widgets;

use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;
use Elementor\Controls_Manager;
use ElementorPro\Modules\Posts\Traits\Button_Widget_Trait;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Posts
 */
abstract class Posts_Base extends Base_Widget {
	use Button_Widget_Trait;

	const LOAD_MORE_ON_CLICK = 'load_more_on_click';
	const LOAD_MORE_INFINITE_SCROLL = 'load_more_infinite_scroll';

	/**
	 * @var \WP_Query
	 */
	protected $query = null;

	protected $_has_template_content = false;

	public function get_icon() {
		return 'eicon-post-list';
	}

	public function get_script_depends() {
		return [ 'imagesloaded' ];
	}

	public function get_query() {
		return $this->query;
	}

	public function render() {}

	public function register_load_more_button_style_controls() {
		$this->add_control(
			'heading_load_more_style_button',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'pagination_type' => 'load_more_on_click',
				],
			]
		);

		$this->register_button_style_controls( [
			'section_condition' => [
				'pagination_type' => 'load_more_on_click',
			],
		] );
	}

	public function register_load_more_message_style_controls() {
		$this->add_control(
			'heading_load_more_on_click_no_posts_message',
			[
				'label' => esc_html__( 'No More Posts Message', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'pagination_type' => 'load_more_on_click',
				],
			]
		);

		$this->add_control(
			'heading_load_more_on_click_infinity_scroll_no_posts_message',
			[
				'label' => esc_html__( 'No More Posts Message', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'pagination_type' => 'load_more_infinite_scroll',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'load_more_no_posts_message',
				'selector' => '{{WRAPPER}} .e-load-more-message',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->add_control(
			'load_more_no_posts_message_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => '--load-more-message-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'load_more_spinner_color',
			[
				'label' => esc_html__( 'Spinner Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => '--load-more-spinner-color: {{VALUE}};',
				],
				'separator' => 'before',
				'condition' => [
					'load_more_spinner[value]!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'load_more_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--load-more—spacing: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);
	}

	public function register_pagination_section_controls() {
		$this->start_controls_section(
			'section_pagination',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_type',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => $this->get_pagination_type_options(),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'pagination_page_limit',
			[
				'label' => esc_html__( 'Page Limit', 'elementor-pro' ),
				'default' => '5',
				'condition' => [
					'pagination_type!' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
						'',
					],
				],
			]
		);

		$this->add_control(
			'pagination_numbers_shorten',
			[
				'label' => esc_html__( 'Shorten', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'pagination_type' => [
						'numbers',
						'numbers_and_prev_next',
					],
				],
			]
		);

		$this->add_control(
			'pagination_prev_label',
			[
				'label' => esc_html__( 'Previous Label', 'elementor-pro' ),
				'default' => esc_html__( '&laquo; Previous', 'elementor-pro' ),
				'condition' => [
					'pagination_type' => [
						'prev_next',
						'numbers_and_prev_next',
					],
				],
			]
		);

		$this->add_control(
			'pagination_next_label',
			[
				'label' => esc_html__( 'Next Label', 'elementor-pro' ),
				'default' => esc_html__( 'Next &raquo;', 'elementor-pro' ),
				'condition' => [
					'pagination_type' => [
						'prev_next',
						'numbers_and_prev_next',
					],
				],
			]
		);

		$this->add_control(
			'pagination_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .elementor-pagination' => 'text-align: {{VALUE}};',
				],
				'condition' => [
					'pagination_type!' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
						'',
					],
				],
			]
		);

		$this->add_control(
			'load_more_spinner',
			[
				'label' => esc_html__( 'Spinner', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'fas fa-spinner',
					'library' => 'fa-solid',
				],
				'exclude_inline_options' => [ 'svg' ],
				'recommended' => [
					'fa-solid' => [
						'spinner',
						'cog',
						'sync',
						'sync-alt',
						'asterisk',
						'circle-notch',
					],
				],
				'skin' => 'inline',
				'label_block' => false,
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'heading_load_more_button',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'pagination_type' => 'load_more_on_click',
				],
			]
		);

		$this->register_button_content_controls( [
			'button_text' => esc_html__( 'Load More', 'elementor-pro' ),
			'control_label_name' => esc_html__( 'Button Text', 'elementor-pro' ),
			'prefix_class' => 'load-more-align-',
			'alignment_default' => 'center',
			'section_condition' => [
				'pagination_type' => 'load_more_on_click',
			],
			'exclude_inline_options' => [ 'svg' ],
		] );

		$this->remove_control( 'button_type' );
		$this->remove_control( 'link' );
		$this->remove_control( 'size' );

		$this->add_control(
			'heading_load_more_no_posts_message',
			[
				'label' => esc_html__( 'No More Posts Message', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
				],
			]
		);

		$this->add_responsive_control(
			'load_more_no_posts_message_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left'    => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--load-more-message-alignment: {{VALUE}};',
				],
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
				],
			]
		);

		$this->add_control(
			'load_more_no_posts_message_switcher',
			[
				'label' => esc_html__( 'Custom Messages', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
				],
			]
		);

		$this->add_control(
			'load_more_no_posts_custom_message',
			[
				'label' => esc_html__( 'No more posts message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'No more posts to show', 'elementor-pro' ),
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
					'load_more_no_posts_message_switcher' => 'yes',
				],
				'label_block' => true,
			]
		);

		$this->end_controls_section();

		// Pagination style controls for prev/next and numbers pagination.
		$this->start_controls_section(
			'section_pagination_style',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'pagination_type!' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
						'',
					],
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'pagination_typography',
				'selector' => '{{WRAPPER}} .elementor-pagination',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->add_control(
			'pagination_color_heading',
			[
				'label' => esc_html__( 'Colors', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'pagination_colors' );

		$this->start_controls_tab(
			'pagination_color_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-pagination .page-numbers:not(.dots)' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'pagination_color_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-pagination a.page-numbers:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'pagination_color_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'pagination_active_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-pagination .page-numbers.current' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'pagination_spacing',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'separator' => 'before',
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-pagination .page-numbers:not(:first-child)' => 'margin-left: calc( {{SIZE}}{{UNIT}}/2 );',
					'body:not(.rtl) {{WRAPPER}} .elementor-pagination .page-numbers:not(:last-child)' => 'margin-right: calc( {{SIZE}}{{UNIT}}/2 );',
					'body.rtl {{WRAPPER}} .elementor-pagination .page-numbers:not(:first-child)' => 'margin-right: calc( {{SIZE}}{{UNIT}}/2 );',
					'body.rtl {{WRAPPER}} .elementor-pagination .page-numbers:not(:last-child)' => 'margin-left: calc( {{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_responsive_control(
			'pagination_spacing_top',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-pagination' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		// Pagination style controls for on-load pagination with type on-click/infinity-scroll.
		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'pagination_type' => [
						'load_more_on_click',
						'load_more_infinite_scroll',
					],
				],
			]
		);

		$this->register_load_more_button_style_controls();

		$this->register_load_more_message_style_controls();

		$this->end_controls_section();
	}

	abstract public function query_posts();

	public function get_current_page() {
		if ( '' === $this->get_settings( 'pagination_type' ) ) {
			return 1;
		}

		return max( 1, get_query_var( 'paged' ), get_query_var( 'page' ) );
	}

	public function get_wp_link_page( $i ) {
		if ( ! is_singular() || is_front_page() ) {
			return get_pagenum_link( $i );
		}

		// Based on wp-includes/post-template.php:957 `_wp_link_page`.
		global $wp_rewrite;
		$post = get_post();
		$query_args = [];
		$url = get_permalink();

		if ( $i > 1 ) {
			if ( '' === get_option( 'permalink_structure' ) || in_array( $post->post_status, [ 'draft', 'pending' ] ) ) {
				$url = add_query_arg( 'page', $i, $url );
			} elseif ( get_option( 'show_on_front' ) === 'page' && (int) get_option( 'page_on_front' ) === $post->ID ) {
				$url = trailingslashit( $url ) . user_trailingslashit( "$wp_rewrite->pagination_base/" . $i, 'single_paged' );
			} else {
				$url = trailingslashit( $url ) . user_trailingslashit( $i, 'single_paged' );
			}
		}

		if ( is_preview() ) {
			if ( ( 'draft' !== $post->post_status ) && isset( $_GET['preview_id'], $_GET['preview_nonce'] ) ) {
				$query_args['preview_id'] = wp_unslash( $_GET['preview_id'] );
				$query_args['preview_nonce'] = wp_unslash( $_GET['preview_nonce'] );
			}

			$url = get_preview_post_link( $post, $query_args, $url );
		}

		return $url;
	}

	public function get_posts_nav_link( $page_limit = null ) {
		if ( ! $page_limit ) {
			$page_limit = $this->query->max_num_pages;
		}

		$return = [];

		$paged = $this->get_current_page();

		$link_template = '<a class="page-numbers %s" href="%s">%s</a>';
		$disabled_template = '<span class="page-numbers %s">%s</span>';

		if ( $paged > 1 ) {
			$next_page = intval( $paged ) - 1;
			if ( $next_page < 1 ) {
				$next_page = 1;
			}

			$return['prev'] = sprintf( $link_template, 'prev', $this->get_wp_link_page( $next_page ), $this->get_settings( 'pagination_prev_label' ) );
		} else {
			$return['prev'] = sprintf( $disabled_template, 'prev', $this->get_settings( 'pagination_prev_label' ) );
		}

		$next_page = intval( $paged ) + 1;

		if ( $next_page <= $page_limit ) {
			$return['next'] = sprintf( $link_template, 'next', $this->get_wp_link_page( $next_page ), $this->get_settings( 'pagination_next_label' ) );
		} else {
			$return['next'] = sprintf( $disabled_template, 'next', $this->get_settings( 'pagination_next_label' ) );
		}

		return $return;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->end_controls_section();
	}

	protected function get_pagination_type_options() {
		return [
			'' => esc_html__( 'None', 'elementor-pro' ),
			'numbers' => esc_html__( 'Numbers', 'elementor-pro' ),
			'prev_next' => esc_html__( 'Previous/Next', 'elementor-pro' ),
			'numbers_and_prev_next' => esc_html__( 'Numbers', 'elementor-pro' ) . ' + ' . esc_html__( 'Previous/Next', 'elementor-pro' ),
			self::LOAD_MORE_ON_CLICK => esc_html__( 'Load on Click', 'elementor-pro' ),
			self::LOAD_MORE_INFINITE_SCROLL => esc_html__( 'Infinite Scroll', 'elementor-pro' ),
		];
	}

	public function render_plain_content() {}
}
PK!6=�NNmodules/posts/widgets/posts.phpnu�[���<?php
namespace ElementorPro\Modules\Posts\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Modules\QueryControl\Module as Module_Query;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Related;
use ElementorPro\Modules\Posts\Skins;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Posts
 */
class Posts extends Posts_Base {

	public function get_name() {
		return 'posts';
	}

	public function get_title() {
		return esc_html__( 'Posts', 'elementor-pro' );
	}

	public function get_keywords() {
		return [ 'posts', 'cpt', 'item', 'loop', 'query', 'cards', 'custom post type' ];
	}

	public function on_import( $element ) {
		if ( isset( $element['settings']['posts_post_type'] ) && ! get_post_type_object( $element['settings']['posts_post_type'] ) ) {
			$element['settings']['posts_post_type'] = 'post';
		}

		return $element;
	}

	protected function register_skins() {
		$this->add_skin( new Skins\Skin_Classic( $this ) );
		$this->add_skin( new Skins\Skin_Cards( $this ) );
		$this->add_skin( new Skins\Skin_Full_Content( $this ) );
	}

	protected function register_controls() {
		parent::register_controls();

		$this->register_query_section_controls();
		$this->register_pagination_section_controls();
	}

	public function query_posts() {

		$query_args = [
			'posts_per_page' => $this->get_current_skin()->get_instance_value( 'posts_per_page' ),
			'paged' => $this->get_current_page(),
		];

		/** @var Module_Query $elementor_query */
		$elementor_query = Module_Query::instance();
		$this->query = $elementor_query->get_query( $this, 'posts', $query_args, [] );
	}

	protected function register_query_section_controls() {
		$this->start_controls_section(
			'section_query',
			[
				'label' => esc_html__( 'Query', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_group_control(
			Group_Control_Related::get_type(),
			[
				'name' => $this->get_name(),
				'presets' => [ 'full' ],
				'exclude' => [
					'posts_per_page', //use the one from Layout section
				],
			]
		);

		$this->end_controls_section();
	}

}
PK!��"�::modules/nav-menu/module.phpnu�[���<?php
namespace ElementorPro\Modules\NavMenu;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Nav_Menu',
		];
	}

	public function get_name() {
		return 'nav-menu';
	}
}
PK!]��I��%modules/nav-menu/widgets/nav-menu.phpnu�[���<?php
namespace ElementorPro\Modules\NavMenu\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;
use Elementor\Icons_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Nav_Menu extends Base_Widget {

	protected $nav_menu_index = 1;

	public function get_name() {
		return 'nav-menu';
	}

	public function get_title() {
		return esc_html__( 'Nav Menu', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-nav-menu';
	}

	public function get_categories() {
		return [ 'pro-elements', 'theme-elements' ];
	}

	public function get_keywords() {
		return [ 'menu', 'nav', 'button' ];
	}

	public function get_script_depends() {
		return [ 'smartmenus' ];
	}

	public function on_export( $element ) {
		unset( $element['settings']['menu'] );

		return $element;
	}

	protected function get_nav_menu_index() {
		return $this->nav_menu_index++;
	}

	private function get_available_menus() {
		$menus = wp_get_nav_menus();

		$options = [];

		foreach ( $menus as $menu ) {
			$options[ $menu->slug ] = $menu->name;
		}

		return $options;
	}

	protected function register_controls() {

		$this->start_controls_section(
			'section_layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
			]
		);

		$menus = $this->get_available_menus();

		if ( ! empty( $menus ) ) {
			$this->add_control(
				'menu',
				[
					'label' => esc_html__( 'Menu', 'elementor-pro' ),
					'type' => Controls_Manager::SELECT,
					'options' => $menus,
					'default' => array_keys( $menus )[0],
					'save_default' => true,
					'separator' => 'after',
					'description' => sprintf(
						esc_html__( 'Go to the %1$sMenus screen%2$s to manage your menus.', 'elementor-pro' ),
						sprintf( '<a href="%s" target="_blank">', admin_url( 'nav-menus.php' ) ),
						'</a>'
					),
				]
			);
		} else {
			$this->add_control(
				'menu',
				[
					'type' => Controls_Manager::RAW_HTML,
					'raw' => '<strong>' . esc_html__( 'There are no menus in your site.', 'elementor-pro' ) . '</strong><br>' .
							sprintf(
								/* translators: 1: Link open tag, 2: Link closing tag. */
								esc_html__( 'Go to the %1$sMenus screen%2$s to create one.', 'elementor-pro' ),
								sprintf( '<a href="%s" target="_blank">', admin_url( 'nav-menus.php?action=edit&menu=0' ) ),
								'</a>'
							),
					'separator' => 'after',
					'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
				]
			);
		}

		$this->add_control(
			'layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'horizontal',
				'options' => [
					'horizontal' => esc_html__( 'Horizontal', 'elementor-pro' ),
					'vertical' => esc_html__( 'Vertical', 'elementor-pro' ),
					'dropdown' => esc_html__( 'Dropdown', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'align_items',
			[
				'label' => esc_html__( 'Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Stretch', 'elementor-pro' ),
						'icon' => 'eicon-h-align-stretch',
					],
				],
				'prefix_class' => 'elementor-nav-menu__align-',
				'condition' => [
					'layout!' => 'dropdown',
				],
			]
		);

		$this->add_control(
			'pointer',
			[
				'label' => esc_html__( 'Pointer', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'underline',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'underline' => esc_html__( 'Underline', 'elementor-pro' ),
					'overline' => esc_html__( 'Overline', 'elementor-pro' ),
					'double-line' => esc_html__( 'Double Line', 'elementor-pro' ),
					'framed' => esc_html__( 'Framed', 'elementor-pro' ),
					'background' => esc_html__( 'Background', 'elementor-pro' ),
					'text' => esc_html__( 'Text', 'elementor-pro' ),
				],
				'style_transfer' => true,
				'condition' => [
					'layout!' => 'dropdown',
				],
			]
		);

		$this->add_control(
			'animation_line',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'slide' => 'Slide',
					'grow' => 'Grow',
					'drop-in' => 'Drop In',
					'drop-out' => 'Drop Out',
					'none' => 'None',
				],
				'condition' => [
					'layout!' => 'dropdown',
					'pointer' => [ 'underline', 'overline', 'double-line' ],
				],
			]
		);

		$this->add_control(
			'animation_framed',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'draw' => 'Draw',
					'corners' => 'Corners',
					'none' => 'None',
				],
				'condition' => [
					'layout!' => 'dropdown',
					'pointer' => 'framed',
				],
			]
		);

		$this->add_control(
			'animation_background',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'sweep-left' => 'Sweep Left',
					'sweep-right' => 'Sweep Right',
					'sweep-up' => 'Sweep Up',
					'sweep-down' => 'Sweep Down',
					'shutter-in-vertical' => 'Shutter In Vertical',
					'shutter-out-vertical' => 'Shutter Out Vertical',
					'shutter-in-horizontal' => 'Shutter In Horizontal',
					'shutter-out-horizontal' => 'Shutter Out Horizontal',
					'none' => 'None',
				],
				'condition' => [
					'layout!' => 'dropdown',
					'pointer' => 'background',
				],
			]
		);

		$this->add_control(
			'animation_text',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'grow',
				'options' => [
					'grow' => 'Grow',
					'shrink' => 'Shrink',
					'sink' => 'Sink',
					'float' => 'Float',
					'skew' => 'Skew',
					'rotate' => 'Rotate',
					'none' => 'None',
				],
				'condition' => [
					'layout!' => 'dropdown',
					'pointer' => 'text',
				],
			]
		);

		$icon_prefix = Icons_Manager::is_migration_allowed() ? 'fas ' : 'fa ';

		$this->add_control(
			'submenu_icon',
			[
				'label' => esc_html__( 'Submenu Indicator', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'separator' => 'before',
				'default' => [
					'value' => $icon_prefix . 'fa-caret-down',
					'library' => 'fa-solid',
				],
				'recommended' => [
					'fa-solid' => [
						'chevron-down',
						'angle-down',
						'caret-down',
						'plus',
					],
				],
				'label_block' => false,
				'skin' => 'inline',
				'exclude_inline_options' => [ 'svg' ],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'heading_mobile_dropdown',
			[
				'label' => esc_html__( 'Mobile Dropdown', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'layout!' => 'dropdown',
				],
			]
		);

		// TODO: For Pro 3.6.0, convert this to the breakpoints utility method introduced in core 3.5.0.
		$breakpoints = Plugin::elementor()->breakpoints->get_active_breakpoints();
		$dropdown_options = [];
		$excluded_breakpoints = [
			'laptop',
			'widescreen',
		];

		foreach ( $breakpoints as $breakpoint_key => $breakpoint_instance ) {
			// Do not include laptop and widscreen in the options since this feature is for mobile devices.
			if ( in_array( $breakpoint_key, $excluded_breakpoints, true ) ) {
				continue;
			}

			$dropdown_options[ $breakpoint_key ] = sprintf(
				/* translators: 1: Breakpoint label, 2: `>` character, 3: Breakpoint value */
				esc_html__( '%1$s (%2$s %3$dpx)', 'elementor-pro' ),
				$breakpoint_instance->get_label(),
				'>',
				$breakpoint_instance->get_value()
			);
		}

		$dropdown_options['none'] = esc_html__( 'None', 'elementor-pro' );

		$this->add_control(
			'dropdown',
			[
				'label' => esc_html__( 'Breakpoint', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'tablet',
				'options' => $dropdown_options,
				'prefix_class' => 'elementor-nav-menu--dropdown-',
				'condition' => [
					'layout!' => 'dropdown',
				],
			]
		);

		$this->add_control(
			'full_width',
			[
				'label' => esc_html__( 'Full Width', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'description' => esc_html__( 'Stretch the dropdown of the menu to full width.', 'elementor-pro' ),
				'prefix_class' => 'elementor-nav-menu--',
				'return_value' => 'stretch',
				'frontend_available' => true,
				'condition' => [
					'dropdown!' => 'none',
				],
			]
		);

		$this->add_control(
			'text_align',
			[
				'label' => esc_html__( 'Align', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'aside',
				'options' => [
					'aside' => esc_html__( 'Aside', 'elementor-pro' ),
					'center' => esc_html__( 'Center', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-nav-menu__text-align-',
				'condition' => [
					'dropdown!' => 'none',
				],
			]
		);

		$this->add_control(
			'toggle',
			[
				'label' => esc_html__( 'Toggle Button', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'burger',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'burger' => esc_html__( 'Hamburger', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-nav-menu--toggle elementor-nav-menu--',
				'render_type' => 'template',
				'frontend_available' => true,
				'condition' => [
					'dropdown!' => 'none',
				],
			]
		);

		$this->add_control(
			'toggle_align',
			[
				'label' => esc_html__( 'Toggle Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'center',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors_dictionary' => [
					'left' => 'margin-right: auto',
					'center' => 'margin: 0 auto',
					'right' => 'margin-left: auto',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle' => '{{VALUE}}',
				],
				'condition' => [
					'toggle!' => '',
					'dropdown!' => 'none',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_main-menu',
			[
				'label' => esc_html__( 'Main Menu', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'layout!' => 'dropdown',
				],

			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'menu_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-nav-menu .elementor-item',
			]
		);

		$this->start_controls_tabs( 'tabs_menu_item_style' );

		$this->start_controls_tab(
			'tab_menu_item_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_menu_item',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item' => 'color: {{VALUE}}; fill: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_menu_item_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_menu_item_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item:hover,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item.elementor-item-active,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item.highlighted,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item:focus' => 'color: {{VALUE}}; fill: {{VALUE}};',
				],
				'condition' => [
					'pointer!' => 'background',
				],
			]
		);

		$this->add_control(
			'color_menu_item_hover_pointer_bg',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#fff',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item:hover,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item.elementor-item-active,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item.highlighted,
					{{WRAPPER}} .elementor-nav-menu--main .elementor-item:focus' => 'color: {{VALUE}}',
				],
				'condition' => [
					'pointer' => 'background',
				],
			]
		);

		$this->add_control(
			'pointer_color_menu_item_hover',
			[
				'label' => esc_html__( 'Pointer Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					{{WRAPPER}} .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after' => 'background-color: {{VALUE}}',
					'{{WRAPPER}} .e--pointer-framed .elementor-item:before,
					{{WRAPPER}} .e--pointer-framed .elementor-item:after' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'pointer!' => [ 'none', 'text' ],
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_menu_item_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_menu_item_active',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item.elementor-item-active' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'pointer_color_menu_item_active',
			[
				'label' => esc_html__( 'Pointer Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item.elementor-item-active:before,
					{{WRAPPER}} .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item.elementor-item-active:after' => 'background-color: {{VALUE}}',
					'{{WRAPPER}} .e--pointer-framed .elementor-item.elementor-item-active:before,
					{{WRAPPER}} .e--pointer-framed .elementor-item.elementor-item-active:after' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'pointer!' => [ 'none', 'text' ],
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$divider_condition = [
			'nav_menu_divider' => 'yes',
			'layout' => 'horizontal',
		];

		$this->add_control(
			'nav_menu_divider',
			[
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'condition' => [
					'layout' => 'horizontal',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-divider-content: "";',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'nav_menu_divider_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
				],
				'default' => 'solid',
				'condition' => $divider_condition,
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-divider-style: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'nav_menu_divider_weight',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 20,
					],
				],
				'condition' => $divider_condition,
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-divider-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'nav_menu_divider_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 100,
					],
					'%' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'condition' => $divider_condition,
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-divider-height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'nav_menu_divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => $divider_condition,
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-divider-color: {{VALUE}}',
				],
			]
		);

		/* This control is required to handle with complicated conditions */
		$this->add_control(
			'hr',
			[
				'type' => Controls_Manager::DIVIDER,
			]
		);

		$this->add_responsive_control(
			'pointer_width',
			[
				'label' => esc_html__( 'Pointer Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 30,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .e--pointer-framed .elementor-item:before' => 'border-width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .e--pointer-framed.e--animation-draw .elementor-item:before' => 'border-width: 0 0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .e--pointer-framed.e--animation-draw .elementor-item:after' => 'border-width: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0 0',
					'{{WRAPPER}} .e--pointer-framed.e--animation-corners .elementor-item:before' => 'border-width: {{SIZE}}{{UNIT}} 0 0 {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .e--pointer-framed.e--animation-corners .elementor-item:after' => 'border-width: 0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0',
					'{{WRAPPER}} .e--pointer-underline .elementor-item:after,
					 {{WRAPPER}} .e--pointer-overline .elementor-item:before,
					 {{WRAPPER}} .e--pointer-double-line .elementor-item:before,
					 {{WRAPPER}} .e--pointer-double-line .elementor-item:after' => 'height: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'pointer' => [ 'underline', 'overline', 'double-line', 'framed' ],
				],
			]
		);

		$this->add_responsive_control(
			'padding_horizontal_menu_item',
			[
				'label' => esc_html__( 'Horizontal Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'padding_vertical_menu_item',
			[
				'label' => esc_html__( 'Vertical Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main .elementor-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'menu_space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-nav-menu-horizontal-menu-item-margin: calc( {{SIZE}}{{UNIT}} / 2 );',
					'{{WRAPPER}} .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_radius_menu_item',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-item:before' => 'border-radius: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .e--animation-shutter-in-horizontal .elementor-item:before' => 'border-radius: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0 0',
					'{{WRAPPER}} .e--animation-shutter-in-horizontal .elementor-item:after' => 'border-radius: 0 0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .e--animation-shutter-in-vertical .elementor-item:before' => 'border-radius: 0 {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}} 0',
					'{{WRAPPER}} .e--animation-shutter-in-vertical .elementor-item:after' => 'border-radius: {{SIZE}}{{UNIT}} 0 0 {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'pointer' => 'background',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_dropdown',
			[
				'label' => esc_html__( 'Dropdown', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'dropdown_description',
			[
				'raw' => esc_html__( 'On desktop, this will affect the submenu. On mobile, this will affect the entire menu.', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
			]
		);

		$this->start_controls_tabs( 'tabs_dropdown_item_style' );

		$this->start_controls_tab(
			'tab_dropdown_item_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_dropdown_item',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a, {{WRAPPER}} .elementor-menu-toggle' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'background_color_dropdown_item',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown' => 'background-color: {{VALUE}}',
				],
				'separator' => 'none',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_dropdown_item_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_dropdown_item_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a:hover,
					{{WRAPPER}} .elementor-nav-menu--dropdown a.elementor-item-active,
					{{WRAPPER}} .elementor-nav-menu--dropdown a.highlighted,
					{{WRAPPER}} .elementor-menu-toggle:hover' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'background_color_dropdown_item_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a:hover,
					{{WRAPPER}} .elementor-nav-menu--dropdown a.elementor-item-active,
					{{WRAPPER}} .elementor-nav-menu--dropdown a.highlighted' => 'background-color: {{VALUE}}',
				],
				'separator' => 'none',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_dropdown_item_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'color_dropdown_item_active',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a.elementor-item-active' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'background_color_dropdown_item_active',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a.elementor-item-active' => 'background-color: {{VALUE}}',
				],
				'separator' => 'none',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'dropdown_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'exclude' => [ 'line_height' ],
				'selector' => '{{WRAPPER}} .elementor-nav-menu--dropdown .elementor-item, {{WRAPPER}} .elementor-nav-menu--dropdown  .elementor-sub-item',
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'dropdown_border',
				'selector' => '{{WRAPPER}} .elementor-nav-menu--dropdown',
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'dropdown_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-nav-menu--dropdown li:first-child a' => 'border-top-left-radius: {{TOP}}{{UNIT}}; border-top-right-radius: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-nav-menu--dropdown li:last-child a' => 'border-bottom-right-radius: {{BOTTOM}}{{UNIT}}; border-bottom-left-radius: {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'dropdown_box_shadow',
				'exclude' => [
					'box_shadow_position',
				],
				'selector' => '{{WRAPPER}} .elementor-nav-menu--main .elementor-nav-menu--dropdown, {{WRAPPER}} .elementor-nav-menu__container.elementor-nav-menu--dropdown',
			]
		);

		$this->add_responsive_control(
			'padding_horizontal_dropdown_item',
			[
				'label' => esc_html__( 'Horizontal Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',

			]
		);

		$this->add_responsive_control(
			'padding_vertical_dropdown_item',
			[
				'label' => esc_html__( 'Vertical Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown a' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_dropdown_divider',
			[
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'dropdown_divider',
				'selector' => '{{WRAPPER}} .elementor-nav-menu--dropdown li:not(:last-child)',
				'exclude' => [ 'width' ],
			]
		);

		$this->add_control(
			'dropdown_divider_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--dropdown li:not(:last-child)' => 'border-bottom-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'dropdown_divider_border!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'dropdown_top_distance',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => -100,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, {{WRAPPER}} .elementor-nav-menu__container.elementor-nav-menu--dropdown' => 'margin-top: {{SIZE}}{{UNIT}} !important',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section( 'style_toggle',
			[
				'label' => esc_html__( 'Toggle Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'toggle!' => '',
					'dropdown!' => 'none',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_toggle_style' );

		$this->start_controls_tab(
			'tab_toggle_style_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'toggle_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} div.elementor-menu-toggle' => 'color: {{VALUE}}', // Harder selector to override text color control
					'{{WRAPPER}} div.elementor-menu-toggle svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'toggle_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_toggle_style_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'toggle_color_hover',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} div.elementor-menu-toggle:hover' => 'color: {{VALUE}}', // Harder selector to override text color control
				],
			]
		);

		$this->add_control(
			'toggle_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'toggle_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 15,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'toggle_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 10,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle' => 'border-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'toggle_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-menu-toggle' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	public function get_frontend_settings() {
		$frontend_settings = parent::get_frontend_settings();

		// If the saved value is FA4, but the user has upgraded to FA5, the value needs to be converted to FA5.
		if ( 'fa ' === substr( $frontend_settings['submenu_icon']['value'], 0, 3 ) && Icons_Manager::is_migration_allowed() ) {
			$frontend_settings['submenu_icon']['value'] = str_replace( 'fa ', 'fas ', $frontend_settings['submenu_icon']['value'] );
		}

		// Determine the submenu icon markup.
		if ( Plugin::elementor()->experiments->is_feature_active( 'e_font_icon_svg' ) ) {
			$icon_classes = [];

			if ( false !== strpos( $frontend_settings['submenu_icon']['value'], 'chevron-down' ) ) {
				$icon_classes['class'] = 'fa-svg-chevron-down';
			}

			$icon_content = Icons_Manager::render_font_icon( $frontend_settings['submenu_icon'], $icon_classes );
		} else {
			$icon_content = sprintf( '<i class="%s"></i>', $frontend_settings['submenu_icon']['value'] );
		}

		// Passing the entire icon markup to the frontend settings because it can be either <i> or <svg> tag.
		$frontend_settings['submenu_icon']['value'] = $icon_content;

		return $frontend_settings;
	}

	protected function render() {
		$available_menus = $this->get_available_menus();

		if ( ! $available_menus ) {
			return;
		}

		$settings = $this->get_active_settings();

		$args = [
			'echo' => false,
			'menu' => $settings['menu'],
			'menu_class' => 'elementor-nav-menu',
			'menu_id' => 'menu-' . $this->get_nav_menu_index() . '-' . $this->get_id(),
			'fallback_cb' => '__return_empty_string',
			'container' => '',
		];

		if ( 'vertical' === $settings['layout'] ) {
			$args['menu_class'] .= ' sm-vertical';
		}

		// Add custom filter to handle Nav Menu HTML output.
		add_filter( 'nav_menu_link_attributes', [ $this, 'handle_link_classes' ], 10, 4 );
		add_filter( 'nav_menu_link_attributes', [ $this, 'handle_link_tabindex' ], 10, 4 );
		add_filter( 'nav_menu_submenu_css_class', [ $this, 'handle_sub_menu_classes' ] );
		add_filter( 'nav_menu_item_id', '__return_empty_string' );

		// General Menu.
		$menu_html = wp_nav_menu( $args );

		// Dropdown Menu.
		$args['menu_id'] = 'menu-' . $this->get_nav_menu_index() . '-' . $this->get_id();
		$args['menu_type'] = 'dropdown';
		$dropdown_menu_html = wp_nav_menu( $args );

		// Remove all our custom filters.
		remove_filter( 'nav_menu_link_attributes', [ $this, 'handle_link_classes' ] );
		remove_filter( 'nav_menu_link_attributes', [ $this, 'handle_link_tabindex' ] );
		remove_filter( 'nav_menu_submenu_css_class', [ $this, 'handle_sub_menu_classes' ] );
		remove_filter( 'nav_menu_item_id', '__return_empty_string' );

		if ( empty( $menu_html ) ) {
			return;
		}

		$this->add_render_attribute( 'menu-toggle', [
			'class' => 'elementor-menu-toggle',
			'role' => 'button',
			'tabindex' => '0',
			'aria-label' => esc_html__( 'Menu Toggle', 'elementor-pro' ),
			'aria-expanded' => 'false',
		] );

		if ( Plugin::elementor()->editor->is_edit_mode() ) {
			$this->add_render_attribute( 'menu-toggle', [
				'class' => 'elementor-clickable',
			] );
		}

		$is_migrated = isset( $settings['__fa4_migrated']['submenu_icon'] );

		$this->add_render_attribute( 'main-menu', [
			'migration_allowed' => Icons_Manager::is_migration_allowed() ? '1' : '0',
			'migrated' => $is_migrated ? '1' : '0',
			// Accessibility
			'role' => 'navigation',
		] );

		if ( 'dropdown' !== $settings['layout'] ) :
			$this->add_render_attribute( 'main-menu', 'class', [
				'elementor-nav-menu--main',
				'elementor-nav-menu__container',
				'elementor-nav-menu--layout-' . $settings['layout'],
			] );

			if ( $settings['pointer'] ) :
				$this->add_render_attribute( 'main-menu', 'class', 'e--pointer-' . $settings['pointer'] );

				foreach ( $settings as $key => $value ) :
					if ( 0 === strpos( $key, 'animation' ) && $value ) :
						$this->add_render_attribute( 'main-menu', 'class', 'e--animation-' . $value );

						break;
					endif;
				endforeach;
			endif; ?>
			<nav <?php $this->print_render_attribute_string( 'main-menu' ); ?>>
				<?php
					// PHPCS - escaped by WordPress with "wp_nav_menu"
					echo $menu_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
			</nav>
			<?php
		endif;
		?>
		<div <?php $this->print_render_attribute_string( 'menu-toggle' ); ?>>
			<?php
				Icons_Manager::render_icon(
					[
						'library' => 'eicons',
						'value' => 'eicon-menu-bar',
					],
					[
						'aria-hidden' => 'true',
						'role' => 'presentation',
						'class' => 'elementor-menu-toggle__icon--open',
					]
				);

				Icons_Manager::render_icon(
					[
						'library' => 'eicons',
						'value' => 'eicon-close',
					],
					[
						'aria-hidden' => 'true',
						'role' => 'presentation',
						'class' => 'elementor-menu-toggle__icon--close',
					]
				);
			?>
			<span class="elementor-screen-only"><?php echo esc_html__( 'Menu', 'elementor-pro' ); ?></span>
		</div>
			<nav class="elementor-nav-menu--dropdown elementor-nav-menu__container" role="navigation" aria-hidden="true">
				<?php
					// PHPCS - escaped by WordPress with "wp_nav_menu"
					echo $dropdown_menu_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
			</nav>
		<?php
	}

	public function handle_link_classes( $atts, $item, $args, $depth ) {
		$classes = $depth ? 'elementor-sub-item' : 'elementor-item';
		$is_anchor = false !== strpos( $atts['href'], '#' );

		if ( ! $is_anchor && in_array( 'current-menu-item', $item->classes ) ) {
			$classes .= ' elementor-item-active';
		}

		if ( $is_anchor ) {
			$classes .= ' elementor-item-anchor';
		}

		if ( empty( $atts['class'] ) ) {
			$atts['class'] = $classes;
		} else {
			$atts['class'] .= ' ' . $classes;
		}

		return $atts;
	}

	public function handle_link_tabindex( $atts, $item, $args ) {
		$settings = $this->get_active_settings();

		// Add `tabindex = -1` to the links if it's a dropdown, for A11y.
		$is_dropdown = 'dropdown' === $settings['layout'];
		$is_dropdown = $is_dropdown || ( isset( $args->menu_type ) && 'dropdown' === $args->menu_type );

		if ( $is_dropdown ) {
			$atts['tabindex'] = '-1';
		}

		return $atts;
	}

	public function handle_sub_menu_classes( $classes ) {
		$classes[] = 'elementor-nav-menu--dropdown';

		return $classes;
	}

	public function render_plain_content() {}
}
PK!f-c��	�	 modules/custom-code/document.phpnu�[���<?php
namespace ElementorPro\Modules\CustomCode;

use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Document extends Theme_Document {
	private static $applied_options = [];

	public static function get_properties() {
		$properties = parent::get_properties();
		$properties['cpt'] = [ Module::CPT ];

		$properties['admin_tab_group'] = '';
		$properties['show_in_library'] = false;
		$properties['support_site_editor'] = false;

		return $properties;
	}

	public static function get_title() {
		return esc_html__( 'Custom Code', 'elementor-pro' );
	}

	public function get_name() {
		return Module::DOCUMENT_TYPE;
	}

	public function print_content() {
		$content = get_post_meta( $this->post->ID, '_elementor_' . Custom_Code_Metabox::FIELD_CODE, true ) . PHP_EOL;
		$user_has_permission = current_user_can( Module::CAPABILITY );

		$this->apply_snippet_options( get_post_meta( $this->get_id(), '_elementor_' . Custom_Code_Metabox::FILED_EXTRA_OPTIONS, true ) );

		if ( $user_has_permission ) {
			$this->print_snippet_with_elementor_comment( $content );
		} else {
			// PHPCS - the main content of custom code
			echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}
	}

	private function print_snippet_with_elementor_comment( $content ) {
		echo implode( PHP_EOL, [
			'',
			'<!--',
			'Title: ' . esc_html( $this->post->post_title ),
			'Type: ' . Module::CPT, // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			'Author: ' . esc_html( get_the_author_meta( 'display_name', $this->post->post_author ) ),
			'Last edited: ' . esc_html( $this->post->post_modified ),
			'--- The comment is visible only for administrators ---',
			'-->',
			'',
		] );

		// PHPCS - the main content of custom code
		echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

		echo PHP_EOL . '<!-- End of snippet -->' . PHP_EOL;
	}

	private function apply_snippet_options( $options ) {
		if ( ! is_array( $options ) || ! count( $options ) ) {
			return;
		}

		foreach ( $options as $option ) {
			if ( ! empty( self::$applied_options[ $option ] ) ) {
				continue;
			}

			switch ( $option ) {
				case Custom_Code_Metabox::INPUT_OPTION_ENSURE_JQUERY:
					wp_enqueue_script( 'jquery' );

					// Ensure jQuery will be first in order.
					if ( 'wp_footer' === current_filter() ) {
						wp_print_footer_scripts();
					}
					break;
			}

			self::$applied_options[ $option ] = true;
		}
	}
}
PK!�x��P-P-+modules/custom-code/custom-code-metabox.phpnu�[���<?php
namespace ElementorPro\Modules\CustomCode;

use Elementor\Utils;
use ElementorPro\Modules\AssetsManager\Classes\Assets_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Custom_Code_Metabox extends Assets_Base {
	const FIELD_LOCATION = 'location';
	const FIELD_PRIORITY = 'priority';
	const FILED_EXTRA_OPTIONS = 'extra_options';
	const FIELD_CODE = 'code';

	const OPTION_LOCATION_HEAD = 'elementor_head';
	const OPTION_LOCATION_BODY_START = 'elementor_body_start';
	const OPTION_LOCATION_BODY_END = 'elementor_body_end';

	const OPTION_PRIORITY_LENGTH = 10;

	const INPUT_OPTION_ENSURE_JQUERY = 'ensure_jquery';

	const INPUT_FIELDS = [
		self::FIELD_LOCATION,
		self::FIELD_PRIORITY,
		self::FIELD_CODE,
		self::FILED_EXTRA_OPTIONS,
	];

	const INPUT_OPTIONS = [
		self::INPUT_OPTION_ENSURE_JQUERY,
	];

	public function get_name() {
		return Module::MODULE_NAME;
	}

	public function get_type() {
		return Module::CPT;
	}

	public function get_field_label( $field ) {
		$label = parent::get_field_label( $field );

		if ( ! empty( $field['info'] ) ) {
			$label = '<p class="elementor-field-label"><i data-info="' . $field['info'] . '" class="eicon-info-circle"></i>' . $label . '</p>';
		}

		return $label;
	}

	public function get_location_labels() {
		return [
			self::OPTION_LOCATION_HEAD => esc_html__( 'Head', 'elementor-pro' ),
			self::OPTION_LOCATION_BODY_START => esc_html__( 'Body Start', 'elementor-pro' ),
			self::OPTION_LOCATION_BODY_END => esc_html__( 'Body End', 'elementor-pro' ),
		];
	}

	public function get_location_options() {
		return [
			self::OPTION_LOCATION_HEAD => '<head>',
			self::OPTION_LOCATION_BODY_START => sprintf(
			/* translators: %s: Body open tag. */
				esc_html__( '%s - Start', 'elementor-pro' ), '<body>'
			),
			self::OPTION_LOCATION_BODY_END => sprintf(
			/* translators: %s: Body end tag. */
				esc_html__( '%s - End', 'elementor-pro' ), '</body>'
			),
		];
	}

	public function get_priority_options() {
		$start = 1;
		$result = range( $start, self::OPTION_PRIORITY_LENGTH );

		$result = array_combine( $result, $result );

		return $result;
	}

	/**
	 * Add script integrity.
	 *
	 * This is method is public, since its has to remove its own filter.
	 *
	 * @param string $html
	 * @param mixed $handle
	 *
	 * @return string
	 */
	public function add_script_integrity( $html, $handle ) {
		if ( 'jshint' === $handle ) {
			$html = str_replace( '></script>', ' integrity="sha512-qcoitUjhkmNyPmbIOlUV/zd8MJvrVcKrNqnveMWS3C6MYOl5+HLwliRKUm/Ae/dfIok6+E54hjgVrAeS+sBAGA==" crossorigin="anonymous"></script>', $html );

			remove_filter( 'script_loader_tag', [ $this, 'add_script_integrity' ] );
		}

		return $html;
	}

	protected function actions() {
		add_action( 'add_meta_boxes_' . Module::CPT, function () {
			$this->add_meta_boxes();
		} );

		add_action( 'save_post_' . Module::CPT, function( $post_id, $post, $update ) {
			return $this->save_post_meta( $post_id, $post );
		}, 10, 3 );

		add_action('post_submitbox_misc_actions', function ( $post ) {
			$this->add_meta_publish_options( $post );
		} );
	}

	private function get_fields() {
		return [
			[
				'id' => 'open-div-meta-box',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-meta-box',
				],
			],
			[
				'id' => 'open-div-panel',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-panel',
				],
			],
			[
				'id' => 'open-div-placement',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-panel-placement',
				],
			],
			[
				'id' => self::FIELD_LOCATION,
				'field_type' => 'select',
				'label' => esc_html__( 'Location', 'elementor-pro' ) . ':',
				'options' => $this->get_location_options(),
				'info' => esc_html__( 'Define where the Custom Code will appear', 'elementor-pro' ),
			],
			[
				'id' => 'open-div-placement',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-options-placement',
				],
			],
			[
				'id' => self::FILED_EXTRA_OPTIONS,
				'field_type' => 'checkbox',
				'options' => [
					self::INPUT_OPTION_ENSURE_JQUERY => esc_html__( 'Always load jQuery', 'elementor-pro' ),
				],
				'info' => esc_html__( 'If your snippet includes jQuery, this will ensure it will work for all visitors. It may have a minor impact on loading speed.', 'elementor-pro' ),
			],
			[
				'id' => 'close-div-placement',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => self::FIELD_PRIORITY,
				'field_type' => 'select',
				'label' => esc_html__( 'Priority', 'elementor-pro' ) . ':',
				'options' => $this->get_priority_options(),
				'info' => esc_html__( 'Define in which order the Custom Code will appear', 'elementor-pro' ),
			],
			[
				'id' => 'close-div-placement',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => 'close-div-panel',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => 'close-div-meta-box',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => 'open-div-code-mirror-holder',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-codemirror-holder',
				],
			],
			[
				'id' => 'open-div-code-mirror',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-code-codemirror',
				],
			],
			[
				'id' => self::FIELD_CODE,
				'field_type' => 'textarea',
				'label' => '',
				'extra_attributes' => [
					'class' => 'hidden',
				],
			],
			[
				'id' => 'close-div-code-mirror',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => 'close-div-code-mirror-holder',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
		];
	}

	private function get_code_editor_settings() {
		// TODO: Handle `enqueue_code_editor_scripts` to work with `lint => 'true'`.
		return [
			'type' => 'text/html',
			'codemirror' => [
				'indentUnit' => 2,
				'tabSize' => 2,
				'gutters' => [ 'CodeMirror-lint-markers' ],
			],
		];
	}

	private function enqueue_code_editor_scripts( $field_code_id ) {
		// Add integrity attribute to jshint.
		add_filter( 'script_loader_tag', [ $this, 'add_script_integrity' ], 10, 2 );

		wp_enqueue_script( 'htmlhint' );
		wp_enqueue_script( 'csslint' );

		wp_deregister_script( 'jshint' );

		wp_enqueue_script( 'jshint',
			'https://cdnjs.cloudflare.com/ajax/libs/jshint/2.12.0/jshint.min.js',
			[],
			'2.12.0'
		);

		/**
		 * Some of the plugins may load 'code-editor' for their needs and change the default behavior, so it should
		 * re-initialize the code editor with 'custom code' settings.
		 */
		if ( wp_script_is( 'code-editor' ) ) {
			wp_add_inline_script( 'custom-code-metabox', sprintf( 'wp.codeEditor.initialize( jQuery( "#%s"), %s );', $field_code_id, wp_json_encode( wp_get_code_editor_settings( $this->get_code_editor_settings() ) ) ) );
		} else {
			wp_enqueue_code_editor( $this->get_code_editor_settings() );

			wp_add_inline_script( 'code-editor', sprintf( 'wp.codeEditor.initialize( jQuery( "#%s") );', $field_code_id ) );
		}
	}

	private function render_meta_box() {
		$fields = $this->get_fields();

		if ( ! empty( $_REQUEST['action'] ) && 'edit' == $_REQUEST['action'] ) {
			$post = get_post( $_REQUEST['post'] );

			foreach ( self::INPUT_FIELDS as $input_field ) {
				$field_meta = get_post_meta( $post->ID, "_elementor_$input_field", true );

				if ( ! empty( $field_meta ) ) {
					$key = array_search( $input_field, array_column( $fields, 'id' ) );
					if ( false !== $key ) {
						$fields[ $key ]['saved'] = $field_meta;
					}
				}
			}
		}

		// The method, support fields only.
		$this->print_metabox( $fields );

		// Render before enqueue, since enqueue depends on render handlers.
		do_action( 'elementor-pro/metabox/render', $this, get_the_ID() );

		// Init codemirror.
		$this->enqueue_code_editor_scripts( self::FIELD_CODE );
	}

	private function save_post_meta( $post_id, $post ) {
		if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
			return $post_id;
		}

		// Check the user's permissions.
		if ( ! current_user_can( 'edit_post', $post_id ) ) {
			return $post_id;
		}

		if ( get_post_status( $post->ID ) === 'auto-draft' ) {
			return $post_id;
		}

		// PHPCS - Should not validate for nonce (already done in WordPress save_post).
		$post_data = $_POST; // phpcs:ignore WordPress.Security.NonceVerification.Missing

		foreach ( self::INPUT_FIELDS as $field ) {
			if ( isset( $post_data[ $field ] ) && ! Utils::is_empty( $post_data[ $field ] ) ) {
				if ( self::FIELD_CODE === $field ) {
					$post_meta = $post_data[ $field ];
				} else {
					$post_meta = sanitize_text_field( $post_data[ $field ] );
				}

				if ( ! current_user_can( 'unfiltered_html' ) ) {
					$post_meta = wp_kses_post( $post_meta );
				}
				update_post_meta( $post->ID, "_elementor_$field", $post_meta );

				/** @var \ElementorPro\Modules\ThemeBuilder\Module $theme_builder */
				$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );
				$theme_builder->get_conditions_manager()->get_cache()->regenerate();
			} elseif ( self::FILED_EXTRA_OPTIONS === $field ) {
				$input_options = [];

				foreach ( self::INPUT_OPTIONS as $input_option ) {
					$key = self::FILED_EXTRA_OPTIONS . '_' . $input_option;
					// PHP - The request is safe.
					$input_option_value = ! empty( $_POST[ $key ] ) ? $_POST[ $key ] : null; // phpcs:ignore WordPress.Security.NonceVerification.Missing

					if ( 'on' === $input_option_value ) {
						$input_options [] = $input_option;
					}
				}

				update_post_meta( $post->ID, "_elementor_$field", $input_options );
			}
		}

		// Temporary workaround for applying conditions for draft custom code post.
		if ( ! empty( $post_data['_conditions'] ) ) {
			$conditions = (array) json_decode( wp_unslash( $post_data['_conditions'] ) );

			foreach ( $conditions as $key => $item ) {
				$item_assoc_array = (array) $item;

				$conditions[ $key ] = [
					$item_assoc_array['type'],
					$item_assoc_array['name'],
					$item_assoc_array['sub'],
					$item_assoc_array['subId'],
				];
			}

			/** @var \ElementorPro\Modules\ThemeBuilder\Module $theme_builder */
			$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

			$theme_builder->get_conditions_manager()->save_conditions( $post_id, $conditions );
		}
	}

	private function add_meta_boxes() {
		add_meta_box(
			'elementor-custom-code',
			__( 'Custom code', 'elementor-pro' ),
			function() {
				$this->render_meta_box();
			},
			module::CPT,
			'normal',
			'default'
		);
	}

	private function add_meta_publish_options( $post ) {
		if ( Module::CPT === $post->post_type ) {
			?>
			<div class="misc-pub-section misc-pub-post-conditions">
				<i class="dashicons dashicons-networking" aria-hidden="true"></i>
				<?php echo esc_html__( 'Conditions:', 'elementor-pro' ); ?>
				<span class="post-conditions"></span>
			</div>
			<?php
		}
	}
}
PK!ܴ>�1�1modules/custom-code/module.phpnu�[���<?php
namespace ElementorPro\Modules\CustomCode;

use Elementor\Core\Documents_Manager;
use ElementorPro\Plugin;
use Elementor\Settings;
use Elementor\TemplateLibrary\Source_Local;
use Elementor\Utils;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\ThemeBuilder\Classes\Conditions_Manager;
use ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {
	const CAPABILITY = 'manage_options';
	const CPT = 'elementor_snippet';
	const MODULE_NAME = 'custom_code';
	const DOCUMENT_TYPE = 'code_snippet';

	const ADDITIONAL_COLUMN_INSTANCES = 'instances';

	/**
	 * @var \ElementorPro\Modules\CustomCode\Custom_Code_Metabox
	 */
	public $meta_box;

	public function __construct() {
		parent::__construct();

		$this->meta_box = new Custom_Code_Metabox();

		$this->actions();
		$this->register_custom_post_type();
		$this->register_metabox();
	}

	public function get_name() {
		return 'custom-code';
	}

	private function actions() {
		add_action( 'elementor/documents/register', function ( $documents_manager ) {
			return $this->register_documents( $documents_manager );
		} );

		add_action( 'elementor/theme/register_locations', function ( $location_manager ) {
			return $this->register_location( $location_manager );
		} );

		add_action( 'admin_menu', function () {
			return $this->add_admin_menu();
		}, /* After custom icons */  51 );

		add_action( 'current_screen', function () {
			if ( ! is_admin() ) {
				return;
			}

			$current_screen = get_current_screen();

			if ( 'edit-' . self::CPT === $current_screen->id ) {
				$this->admin_ui_actions();
			} elseif ( self::CPT === $current_screen->id ) {
				// Enqueue assets.
				add_action( 'admin_enqueue_scripts', function () {
					$this->enqueue_assets();
				}, 0 /* elementor-app-base styles should be loaded in early stages */ );
			}
		} );

		$this->frontend_actions();
	}

	private function admin_ui_actions() {
		// Show blank 'custom code' snippets list.
		add_action( 'manage_posts_extra_tablenav', function ( $which ) {
			return $this->maybe_render_blank_state( $which );
		} );

		// Mange post columns.
		add_filter( 'manage_posts_columns', function ( $columns ) {
			return $this->manage_posts_columns( $columns );
		} );

		add_action( 'manage_posts_custom_column', function ( $column_name, $post_id ) {
			return $this->manage_posts_custom_column( $column_name, $post_id );
		}, 10, 2 );
	}

	private function frontend_actions() {
		// Print snippets.
		add_action( 'wp_head', function () {
			$this->print_snippets( Custom_Code_Metabox::OPTION_LOCATION_HEAD );
		} );

		add_action( 'wp_body_open', function () {
			$this->print_snippets( Custom_Code_Metabox::OPTION_LOCATION_BODY_START );
		} );

		add_action( 'wp_footer', function () {
			$this->print_snippets( Custom_Code_Metabox::OPTION_LOCATION_BODY_END );
		}, 21 /* After 'wp_print_footer_scripts' */ );
	}

	private function register_custom_post_type() {
		$labels = [
			'name' => esc_html__( 'Custom Code', 'elementor-pro' ),
			'singular_name' => esc_html__( 'Custom Code', 'elementor-pro' ),
			'add_new' => esc_html__( 'Add new', 'elementor-pro' ),
			'add_new_item' => esc_html__( 'New code', 'elementor-pro' ),
			'edit_item' => esc_html__( 'Edit code', 'elementor-pro' ),
		];

		register_post_type( self::CPT, [
			'labels' => $labels,
			'public' => false,
			'rewrite' => false,
			'show_ui' => true,
			'show_in_menu' => false,
			'show_in_nav_menus' => false,
			'exclude_from_search' => true,
			'capability_type' => 'post',
			'hierarchical' => false,
			'supports' => [ 'title', 'author' ],
			'capabilities' => [
				'publish_posts' => 'manage_options',
				'edit_posts' => 'manage_options',
				'edit_others_posts' => 'manage_options',
				'delete_posts' => 'manage_options',
				'delete_others_posts' => 'manage_options',
				'read_private_posts' => 'manage_options',
				'edit_post' => 'manage_options',
				'delete_post' => 'manage_options',
				'read_post' => 'manage_options',
			],
		] );

		// Handling custom post type messages.
		add_filter( 'post_updated_messages', function( $messages ) {
			if ( self::CPT === get_post_type() ) {
				$post = get_post();

				// Thanks 'WooCommerce' for the example.
				$messages[ self::CPT ] = [
					'', // Not in use.
					__( 'Custom code updated.', 'elementor-pro' ),
					__( 'Custom field updated.', 'elementor-pro' ),
					__( 'Custom field deleted.', 'elementor-pro' ),
					__( 'Custom code updated.', 'elementor-pro' ),
					__( 'Revision restored.', 'elementor-pro' ),
					__( 'Custom code published.', 'elementor-pro' ),
					__( 'Custom code saved.', 'elementor-pro' ),
					__( 'Custom code submitted.', 'elementor-pro' ),
					sprintf(
						__( 'Custom code scheduled for: %1$s.', 'elementor-pro' ),
						'<strong>' . date_i18n( esc_html__( 'M j, Y @ G:i', 'elementor-pro' ), strtotime( $post->post_date ) ) . '</strong>'
					),
					__( 'Custom code draft updated.', 'elementor-pro' ),
				];
			}

			return $messages;
		} );

		add_filter( 'bulk_post_updated_messages', function ( $messages, $counters ) {
			$current_screen = get_current_screen();

			if ( $current_screen && self::CPT === $current_screen->post_type ) {
				$messages[ self::CPT ] = [
					'updated' => _n( '%s custom code updated.', '%s custom codes updated.', $counters['updated'], 'elementor-pro' ),
					'locked' => _n( '%s custom code cannot be not updated, someone else is editing it.', '%s custom codes cannot be not updated, someone else is editing them.', $counters['locked'], 'elementor-pro' ),
					'deleted' => _n( '%s custom code permanently deleted.', '%s custom codes permanently deleted.', $counters['deleted'], 'elementor-pro' ),
					'trashed' => _n( '%s custom code moved to trash.', '%s custom codes moved to trash.', $counters['trashed'], 'elementor-pro' ),
					'untrashed' => _n( '%s custom code restored.', '%s custom code restored.', $counters['untrashed'], 'elementor-pro' ),
				];
			}

			return $messages;
		}, 10, 12 );
	}

	/**
	 * Function register metabox.
	 *
	 * Add meta box for custom-code post.
	 */
	private function register_metabox() {
		if ( ! is_admin() ) {
			return;
		}
		// Remove 'author' meta_box from 'add-new.php', 'author' is required only in list ( enabled via 'supports' arg ).
		add_action( 'add_meta_boxes_' . self::CPT, function () {
			remove_meta_box( 'authordiv', self::CPT, 'normal' );
		} );
	}

	private function enqueue_assets() {
		wp_enqueue_style( 'elementor-app-base', $this->get_css_assets_url( 'app-base', null, 'default', true ), [
			'elementor-icons',
			'select2',
		], ELEMENTOR_VERSION );

		wp_register_style(
			'select2',
			$this->get_css_assets_url( 'e-select2', 'assets/lib/e-select2/css/' ),
			[],
			'4.0.6-rc.1'
		);

		wp_register_script(
			'select2',
			$this->get_js_assets_url( 'e-select2.full', 'assets/lib/e-select2/js/' ),
			[
				'jquery',
			],
			'4.0.6-rc.1',
			true
		);

		wp_register_style(
			'elementor-icons',
			$this->get_css_assets_url( 'elementor-icons', 'assets/lib/eicons/css/' ),
			[],
			'5.6.2'
		);

		wp_enqueue_script( 'react' );
		wp_enqueue_script( 'react-dom' );

		wp_enqueue_script(
			'elementor-app-packages',
			$this->get_js_assets_url( 'app-packages' ),
			[
				'wp-i18n',
				'react',
			],
			ELEMENTOR_VERSION,
			true
		);

		add_action( 'elementor-pro/metabox/render', function ( $metabox, $post_id ) {
			$min_suffix = Utils::is_script_debug() ? '' : '.min';

			wp_enqueue_script(
				'tipsy',
				ELEMENTOR_ASSETS_URL . 'lib/tipsy/tipsy' . $min_suffix . '.js',
				[
					'jquery',
				],
				'1.0.0',
				true
			);

			$direction_suffix = is_rtl() ? '-rtl' : '';
			wp_enqueue_style(
				'custom-code',
				ELEMENTOR_PRO_ASSETS_URL . 'css/modules/custom-code' . $direction_suffix . $min_suffix . '.css',
				[
					'elementor-app-base',
				],
				ELEMENTOR_PRO_VERSION
			);

			// Load 'admin.js` module JS entry.
			wp_enqueue_script(
				'custom-code-metabox',
				ELEMENTOR_PRO_ASSETS_URL . 'js/custom-code' . $min_suffix . '.js',
				[
					'react',
					'select2',
				],
				ELEMENTOR_PRO_VERSION
			);

			$post = [
				'ID' => $post_id,
				'post_status' => get_post_status( $post_id ),
			];

			wp_add_inline_script( 'custom-code-metabox', sprintf( 'elementorProAdmin.customCode.post = %s;', wp_json_encode( $post ) ) );
		}, 10, 2 );
	}

	private function add_admin_menu() {
		$menu_title = esc_html__( 'Custom Code', 'elementor-pro' );
		add_submenu_page(
			Settings::PAGE_ID,
			$menu_title,
			$menu_title,
			self::CAPABILITY,
			'edit.php?post_type=' . self::CPT
		);
	}

	private function register_documents( Documents_Manager $documents_manager ) {
		$documents_manager->register_document_type( self::DOCUMENT_TYPE, Document::get_class_full_name() );
	}

	private function register_location( Locations_Manager $location_manager ) {
		foreach ( array_keys( $this->meta_box->get_location_options() ) as $location ) {
			$location_manager->register_location( $location, [
				'multiple' => true,
				'public' => false,
				'edit_in_content' => false,
			] );
		}
	}

	private function maybe_render_blank_state( $which ) {
		$counts = (array) wp_count_posts( self::CPT );
		unset( $counts['auto-draft'] );

		if ( ! array_sum( $counts ) ) {
			/** @var Source_Local $source */
			$source = Plugin::elementor()->templates_manager->get_source( 'local' );

			$source->maybe_render_blank_state( $which, [
				'post_type' => self::DOCUMENT_TYPE,
				'cpt' => self::CPT,
				'description' => esc_html__( 'Add pixels, meta tags and any other scripts to your site.', 'elementor-pro' ) . sprintf( '<br><a target="_blank" href="https://go.elementor.com/wp-dash-custom-code">%s</a>', esc_html__( 'Learn more about adding custom code', 'elementor-pro' ) ),
				'href' => esc_url( admin_url( '/post-new.php?post_type=' . self::CPT ) ),
			] );
		}
	}

	private function manage_posts_columns( $columns ) {
		$new = [
			self::ADDITIONAL_COLUMN_INSTANCES => esc_html__( 'Instances', 'elementor-pro' ),
			Custom_Code_Metabox::FIELD_LOCATION => esc_html__( 'Location', 'elementor-pro' ),
			Custom_Code_Metabox::FIELD_PRIORITY => esc_html__( 'Priority', 'elementor-pro' ),
		];

		// Insert after 'author'.
		$keys = array_keys( $columns );
		$pos = array_search( 'author', $keys ) + 1;
		$columns = array_merge( array_slice( $columns, 0, $pos ), $new, array_slice( $columns, $pos ) );

		return $columns;
	}

	private function manage_posts_custom_column( $column_name, $post_id ) {
		if ( in_array( $column_name, Custom_Code_Metabox::INPUT_FIELDS ) ) {
			$value = get_post_meta( $post_id, '_elementor_' . $column_name, true );

			if ( Custom_Code_Metabox::FIELD_LOCATION === $column_name ) {
				$location_labels = $this->meta_box->get_location_labels();

				if ( isset( $location_labels[ $value ] ) ) {
					$value = $location_labels[ $value ];
				}
			}

			echo esc_html( $value );
		} else if ( self::ADDITIONAL_COLUMN_INSTANCES === $column_name ) {
			/** @var Conditions_Manager $conditions_manager */
			$conditions_manager = Plugin::instance()->modules_manager->get_modules( 'theme-builder' )->get_conditions_manager();

			echo esc_html( implode( ', ', $conditions_manager->get_document_instances( $post_id ) ) );
		}
	}

	private function get_snippets_by_location( $location ) {
		return get_posts( [
			'numberposts' => -1,
			'post_type' => self::CPT,
			'meta_query' => [
				[
					'key' => '_elementor_' . Custom_Code_Metabox::FIELD_LOCATION,
					'value' => $location,
				],
			],
			// Order.
			'order' => 'ASC',
			'orderby' => 'meta_value_num',
			'meta_key' => '_elementor_' . Custom_Code_Metabox::FIELD_PRIORITY,
		] );
	}

	private function print_snippets( $location ) {
		// Do not print snippets on safe mode.
		if ( isset( $_REQUEST['elementor-mode'] ) && 'safe' === $_REQUEST['elementor-mode'] ) {
			return;
		}

		$snippets = $this->get_snippets_by_location( $location );

		/** @var \ElementorPro\Modules\ThemeBuilder\Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );
		$documents_by_conditions = $theme_builder->get_conditions_manager()->get_documents_for_location( $location );
		$location_manager = $theme_builder->get_locations_manager();

		foreach ( $snippets as $snippet ) {
			// Add snippet to location.
			// Also handling situation without conditions, bind current snippet id with current location.
			if ( isset( $documents_by_conditions[ $snippet->ID ] ) || ! get_post_meta( $snippet->ID, '_elementor_conditions', true ) ) {
				$location_manager->add_doc_to_location( $location, $snippet->ID );
			}
		}

		elementor_theme_do_location( $location );
	}
}
PK!:x����modules/social/module.phpnu�[���<?php
namespace ElementorPro\Modules\Social;

use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\Social\Classes\Facebook_SDK_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {
	const URL_TYPE_CURRENT_PAGE = 'current_page';
	const URL_TYPE_CUSTOM = 'custom';
	const URL_FORMAT_PLAIN = 'plain';
	const URL_FORMAT_PRETTY = 'pretty';

	public function get_widgets() {
		return [
			'Facebook_Button',
			'Facebook_Comments',
			'Facebook_Embed',
			'Facebook_Page',
		];
	}

	public function get_name() {
		return 'social';
	}

	public function __construct() {
		parent::__construct();

		$this->add_component( 'facebook_sdk', new Facebook_SDK_Manager() );
	}
}
PK!�9L=��/modules/social/classes/facebook-sdk-manager.phpnu�[���<?php
namespace ElementorPro\Modules\Social\Classes;

use Elementor\Controls_Manager;
use Elementor\Settings;
use Elementor\Widget_Base;
use ElementorPro\Modules\Social\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Integration with Facebook SDK
 */
class Facebook_SDK_Manager {

	const OPTION_NAME_APP_ID = 'elementor_pro_facebook_app_id';

	public static function get_app_id() {
		return get_option( self::OPTION_NAME_APP_ID, '' );
	}

	public static function get_lang() {
		return get_locale();
	}

	public static function enqueue_meta_app_id() {
		$app_id = self::get_app_id();
		if ( $app_id ) {
			printf( '<meta property="fb:app_id" content="%s" />', esc_attr( $app_id ) );
		}
	}

	/**
	 * @param Widget_Base $widget
	 */
	public static function add_app_id_control( $widget ) {
		if ( ! self::get_app_id() ) {
			/* translators: 1: Setting Page link open tag, 2: Link closing tag. */
			$html = sprintf(
				esc_html__( 'Set your Facebook App ID in the %1$sIntegrations Settings%2$s', 'elementor-pro' ),
				sprintf( '<a href="%s" target="_blank">', Settings::get_url() . '#tab-integrations' ),
				'</a>'
			);
			$content_classes = 'elementor-panel-alert elementor-panel-alert-warning';
		} else {
			/* translators: 1: App ID, 2: Setting Page link open tag, 3: Link closing tag. */
			$html = sprintf(
				esc_html__( 'You are connected to Facebook App %1$s, %2$sChange App%3$s', 'elementor-pro' ),
				self::get_app_id(),
				sprintf( '<a href="%s" target="_blank">', Settings::get_url() . '#tab-integrations' ),
				'</a>'
			);
			$content_classes = 'elementor-panel-alert elementor-panel-alert-info';
		}

		$widget->add_control(
			'app_id',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => $html,
				'content_classes' => $content_classes,
			]
		);
	}

	public function localize_settings( $settings ) {
		$settings['facebook_sdk'] = [
			'lang' => self::get_lang(),
			'app_id' => self::get_app_id(),
		];

		return $settings;
	}

	public function __construct() {
		add_action( 'wp_head', [ __CLASS__, 'enqueue_meta_app_id' ] );
		add_filter( 'elementor_pro/frontend/localize_settings', [ $this, 'localize_settings' ] );

		// The nonce already validated on the options page,
		if ( ! empty( $_POST['option_page'] ) && 'elementor' === $_POST['option_page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
			$this->validate_sdk();
		}

		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ] );
		}
	}

	public static function get_permalink( $settings = [] ) {
		$post_id = get_the_ID();

		if ( isset( $settings['url_format'] ) && Module::URL_FORMAT_PRETTY === $settings['url_format'] ) {
			return get_permalink( $post_id );
		}

		// Use plain url to avoid losing comments after change the permalink.
		return add_query_arg( 'p', $post_id, home_url() );
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'facebook_sdk', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'Facebook SDK', 'elementor-pro' ) . '</h2>';

				echo sprintf(
					/* translators: 1: Link open tag, 2: Link closing tag. */
					esc_html__( 'Facebook SDK lets you connect to your %1$sdedicated application%2$s so you can track the Facebook Widgets analytics on your site.', 'elementor-pro' ),
					'<a href="https://developers.facebook.com/docs/apps/register/" target="_blank">',
					'</a>'
				);
				echo '<br><br>';

				echo esc_html__( 'If you are using the Facebook Comments Widget, you can add moderating options through your application. Note that this option will not work on local sites and on domains that don\'t have public access.', 'elementor-pro' );
			},
			'fields' => [
				'pro_facebook_app_id' => [
					'label' => esc_html__( 'App ID', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						/* translators: 1: Link open tag, 2: Link closing tag. */
						'desc' => sprintf(
							esc_html__( 'Remember to add the domain to your %1$sApp Domains%2$s', 'elementor-pro' ),
							sprintf( '<a href="%s" target="_blank">', $this->get_app_settings_url() ),
							'</a>'
						),
					],
				],
			],
		] );
	}

	private function get_app_settings_url() {
		$app_id = self::get_app_id();
		if ( $app_id ) {
			return sprintf( 'https://developers.facebook.com/apps/%d/settings/', $app_id );
		} else {
			return 'https://developers.facebook.com/apps/';
		}
	}

	private function validate_sdk() {
		$errors = [];

		if ( ! empty( $_POST['elementor_pro_facebook_app_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
			$response = wp_remote_get( 'https://graph.facebook.com/' . $_POST['elementor_pro_facebook_app_id'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing

			if ( is_wp_error( $response ) || 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
				$errors[] = esc_html__( 'Facebook App ID is not valid', 'elementor-pro' );
			}
		}

		$message = implode( '<br>', $errors );

		if ( ! empty( $errors ) ) {
			wp_die( $message, esc_html__( 'Facebook SDK', 'elementor-pro' ), [ 'back_link' => true ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}
	}
}
PK!���'��)modules/social/widgets/facebook-embed.phpnu�[���<?php
namespace ElementorPro\Modules\Social\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Social\Classes\Facebook_SDK_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Facebook_Embed extends Base_Widget {

	public function get_name() {
		return 'facebook-embed';
	}

	public function get_title() {
		return esc_html__( 'Facebook Embed', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-fb-embed';
	}

	public function get_categories() {
		return [ 'pro-elements' ];
	}

	public function get_keywords() {
		return [ 'facebook', 'social', 'embed', 'video', 'post', 'comment' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Embed', 'elementor-pro' ),
			]
		);

		Facebook_SDK_Manager::add_app_id_control( $this );

		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'post',
				'options' => [
					'post' => esc_html__( 'Post', 'elementor-pro' ),
					'video' => esc_html__( 'Video', 'elementor-pro' ),
					'comment' => esc_html__( 'Comment', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'post_url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'default' => 'https://www.facebook.com/elemntor/posts/2624214124556197',
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'condition' => [
					'type' => 'post',
				],
				'description' => esc_html__( 'Hover over the date next to the post, and copy its link address.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'video_url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'default' => 'https://www.facebook.com/elemntor/videos/1683988961912056/',
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'condition' => [
					'type' => 'video',
				],
				'description' => esc_html__( 'Hover over the date next to the video, and copy its link address.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'comment_url',
			[
				'label' => esc_html__( 'URL', 'elementor-pro' ),
				'default' => 'https://www.facebook.com/elemntor/videos/1811703749140576/?comment_id=1812873919023559',
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'condition' => [
					'type' => 'comment',
				],
				'description' => esc_html__( 'Hover over the date next to the comment, and copy its link address.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'include_parent',
			[
				'label' => esc_html__( 'Parent Comment', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'description' => esc_html__( 'Set to include parent comment (if URL is a reply).', 'elementor-pro' ),
				'condition' => [
					'type' => 'comment',
				],
			]
		);

		$this->add_control(
			'show_text',
			[
				'label' => esc_html__( 'Full Post', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'description' => esc_html__( 'Show the full text of the post', 'elementor-pro' ),
				'condition' => [
					'type' => [ 'post', 'video' ],
				],
			]
		);

		$this->add_control(
			'video_allowfullscreen',
			[
				'label' => esc_html__( 'Allow Full Screen', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'type' => 'video',
				],
			]
		);

		$this->add_control(
			'video_autoplay',
			[
				'label' => esc_html__( 'Autoplay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'type' => 'video',
				],
			]
		);

		$this->add_control(
			'video_show_captions',
			[
				'label' => esc_html__( 'Captions', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'description' => esc_html__( 'Show captions if available (only on desktop).', 'elementor-pro' ),
				'condition' => [
					'type' => 'video',
				],
			]
		);
	}

	public function render() {
		$settings = $this->get_settings_for_display();

		if ( empty( $settings['type'] ) ) {
			esc_html_e( 'Please set the embed type', 'elementor-pro' );

			return;
		}

		if ( 'comment' === $settings['type'] && empty( $settings['comment_url'] ) || 'post' === $settings['type'] && empty( $settings['post_url'] ) || 'video' === $settings['type'] && empty( $settings['video_url'] ) ) {
			esc_html_e( 'Please enter a valid URL', 'elementor-pro' );

			return;
		}

		$attributes = [
			// The style prevent's the `widget.handleEmptyWidget` to set it as an empty widget
			'style' => 'min-height: 1px',
		];

		switch ( $settings['type'] ) {
			case 'comment':
				$attributes['class'] = 'elementor-facebook-widget fb-comment-embed';
				$attributes['data-href'] = esc_url( $settings['comment_url'] );
				$attributes['data-include-parent'] = 'yes' === $settings['include_parent'] ? 'true' : 'false';
				break;
			case 'post':
				$attributes['class'] = 'elementor-facebook-widget fb-post';
				$attributes['data-href'] = esc_url( $settings['post_url'] );
				$attributes['data-show-text'] = 'yes' === $settings['show_text'] ? 'true' : 'false';
				break;
			case 'video':
				$attributes['class'] = 'elementor-facebook-widget fb-video';
				$attributes['data-href'] = esc_url( $settings['video_url'] );
				$attributes['data-show-text'] = 'yes' === $settings['show_text'] ? 'true' : 'false';
				$attributes['data-allowfullscreen'] = 'yes' === $settings['video_allowfullscreen'] ? 'true' : 'false';
				$attributes['data-autoplay'] = 'yes' === $settings['video_autoplay'] ? 'true' : 'false';
				$attributes['data-show-captions'] = 'yes' === $settings['video_show_captions'] ? 'true' : 'false';
				break;
		}

		$this->add_render_attribute( 'embed_div', $attributes );

		echo '<div ' . $this->get_render_attribute_string( 'embed_div' ) . '></div>'; // XSS ok.
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'social';
	}
}
PK!�� 11,modules/social/widgets/facebook-comments.phpnu�[���<?php
namespace ElementorPro\Modules\Social\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Social\Classes\Facebook_SDK_Manager;
use ElementorPro\Modules\Social\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Facebook_Comments extends Base_Widget {

	public function get_name() {
		return 'facebook-comments';
	}

	public function get_title() {
		return esc_html__( 'Facebook Comments', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-facebook-comments';
	}

	public function get_keywords() {
		return [ 'facebook', 'comments', 'embed' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Comments Box', 'elementor-pro' ),
			]
		);

		Facebook_SDK_Manager::add_app_id_control( $this );

		$this->add_control(
			'comments_number',
			[
				'label' => esc_html__( 'Comment Count', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'min' => 5,
				'max' => 100,
				'default' => '10',
				'description' => esc_html__( 'Minimum number of comments: 5', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'order_by',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'social',
				'options' => [
					'social' => esc_html__( 'Social', 'elementor-pro' ),
					'reverse_time' => esc_html__( 'Reverse Time', 'elementor-pro' ),
					'time' => esc_html__( 'Time', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'url_type',
			[
				'label' => esc_html__( 'Target URL', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					Module::URL_TYPE_CURRENT_PAGE => esc_html__( 'Current Page', 'elementor-pro' ),
					Module::URL_TYPE_CUSTOM => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => Module::URL_TYPE_CURRENT_PAGE,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'url_format',
			[
				'label' => esc_html__( 'URL Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					Module::URL_FORMAT_PLAIN => esc_html__( 'Plain Permalink', 'elementor-pro' ),
					Module::URL_FORMAT_PRETTY => esc_html__( 'Pretty Permalink', 'elementor-pro' ),
				],
				'default' => Module::URL_FORMAT_PLAIN,
				'condition' => [
					'url_type' => Module::URL_TYPE_CURRENT_PAGE,
				],
			]
		);

		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'url_type' => Module::URL_TYPE_CUSTOM,
				],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$settings = $this->get_settings();

		if ( Module::URL_TYPE_CURRENT_PAGE === $settings['url_type'] ) {
			$permalink = Facebook_SDK_Manager::get_permalink( $settings );
		} else {
			if ( ! filter_var( $settings['url'], FILTER_VALIDATE_URL ) ) {
				echo $this->get_title() . ': ' . esc_html__( 'Please enter a valid URL', 'elementor-pro' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

				return;
			}

			$permalink = esc_url( $settings['url'] );
		}

		$attributes = [
			'class' => 'elementor-facebook-widget fb-comments',
			'data-href' => $permalink,
			'data-width' => '100%',
			'data-numposts' => $settings['comments_number'],
			'data-order-by' => $settings['order_by'],
			// The style prevent's the `widget.handleEmptyWidget` to set it as an empty widget
			'style' => 'min-height: 1px',
		];

		$this->add_render_attribute( 'embed_div', $attributes );
		?>
		<div <?php $this->print_render_attribute_string( 'embed_div' ); ?>></div>
		<?php
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'social';
	}
}
PK!f���(modules/social/widgets/facebook-page.phpnu�[���<?php
namespace ElementorPro\Modules\Social\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Social\Classes\Facebook_SDK_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Facebook_Page extends Base_Widget {

	public function get_name() {
		return 'facebook-page';
	}

	public function get_title() {
		return esc_html__( 'Facebook Page', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-fb-feed';
	}

	public function get_keywords() {
		return [ 'facebook', 'social', 'embed', 'page' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Page', 'elementor-pro' ),
			]
		);

		Facebook_SDK_Manager::add_app_id_control( $this );

		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'placeholder' => 'https://www.facebook.com/your-page/',
				'default' => 'https://www.facebook.com/elemntor/',
				'label_block' => true,
				'description' => esc_html__( 'Paste the URL of the Facebook page.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'tabs',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'label_block' => true,
				'default' => [
					'timeline',
				],
				'options' => [
					'timeline' => esc_html__( 'Timeline', 'elementor-pro' ),
					'events' => esc_html__( 'Events', 'elementor-pro' ),
					'messages' => esc_html__( 'Messages', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'small_header',
			[
				'label' => esc_html__( 'Small Header', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
			]
		);

		$this->add_control(
			'show_cover',
			[
				'label' => esc_html__( 'Cover Photo', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_facepile',
			[
				'label' => esc_html__( 'Profile Photos', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_cta',
			[
				'label' => esc_html__( 'Custom CTA Button', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$this->add_control(
			'height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => 'px',
					'size' => 500,
				],
				'range' => [
					'px' => [
						'min' => 70,
						'max' => 1000,
					],
				],
				'size_units' => [ 'px' ],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$settings = $this->get_settings();

		if ( empty( $settings['url'] ) ) {
			echo $this->get_title() . ': ' . esc_html__( 'Please enter a valid URL', 'elementor-pro' ); // XSS ok.

			return;
		}

		$height = $settings['height']['size'] . $settings['height']['unit'];

		$attributes = [
			'class' => 'elementor-facebook-widget fb-page',
			'data-href' => $settings['url'],
			'data-tabs' => implode( ',', $settings['tabs'] ),
			'data-height' => $height,
			'data-width' => '500px', // Try the max possible width
			'data-small-header' => $settings['small_header'] ? 'true' : 'false',
			'data-hide-cover' => $settings['show_cover'] ? 'false' : 'true', // if `show` - don't hide.
			'data-show-facepile' => $settings['show_facepile'] ? 'true' : 'false',
			'data-hide-cta' => $settings['show_cta'] ? 'false' : 'true', // if `show` - don't hide.
			// The style prevent's the `widget.handleEmptyWidget` to set it as an empty widget.
			'style' => 'min-height: 1px;height:' . $height,
		];

		$this->add_render_attribute( 'embed_div', $attributes );

		echo '<div ' . $this->get_render_attribute_string( 'embed_div' ) . '></div>'; // XSS ok.
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'social';
	}
}
PK!8���*modules/social/widgets/facebook-button.phpnu�[���<?php
namespace ElementorPro\Modules\Social\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Social\Classes\Facebook_SDK_Manager;
use ElementorPro\Modules\Social\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Facebook_Button extends Base_Widget {

	public function get_name() {
		return 'facebook-button';
	}

	public function get_title() {
		return esc_html__( 'Facebook Button', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-facebook-like-box';
	}

	public function get_keywords() {
		return [ 'facebook', 'social', 'embed', 'button', 'like', 'share', 'recommend', 'follow' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
			]
		);

		Facebook_SDK_Manager::add_app_id_control( $this );

		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'like',
				'options' => [
					'like' => esc_html__( 'Like', 'elementor-pro' ),
					'recommend' => esc_html__( 'Recommend', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'standard',
				'options' => [
					'standard' => esc_html__( 'Standard', 'elementor-pro' ),
					'button' => esc_html__( 'Button', 'elementor-pro' ),
					'button_count' => esc_html__( 'Button Count', 'elementor-pro' ),
					'box_count' => esc_html__( 'Box Count', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'small',
				'options' => [
					'small' => esc_html__( 'Small', 'elementor-pro' ),
					'large' => esc_html__( 'Large', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'color_scheme',
			[
				'label' => esc_html__( 'Color Scheme', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'light',
				'options' => [
					'light' => esc_html__( 'Light', 'elementor-pro' ),
					'dark' => esc_html__( 'Dark', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'show_share',
			[
				'label' => esc_html__( 'Share Button', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'type!' => 'follow',
				],
			]
		);

		$this->add_control(
			'show_faces',
			[
				'label' => esc_html__( 'Faces', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
			]
		);

		$this->add_control(
			'url_type',
			[
				'label' => esc_html__( 'Target URL', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					Module::URL_TYPE_CURRENT_PAGE => esc_html__( 'Current Page', 'elementor-pro' ),
					Module::URL_TYPE_CUSTOM => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => Module::URL_TYPE_CURRENT_PAGE,
				'separator' => 'before',
				'condition' => [
					'type' => [ 'like', 'recommend' ],
				],
			]
		);

		$this->add_control(
			'url_format',
			[
				'label' => esc_html__( 'URL Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					Module::URL_FORMAT_PLAIN => esc_html__( 'Plain Permalink', 'elementor-pro' ),
					Module::URL_FORMAT_PRETTY => esc_html__( 'Pretty Permalink', 'elementor-pro' ),
				],
				'default' => Module::URL_FORMAT_PLAIN,
				'condition' => [
					'url_type' => Module::URL_TYPE_CURRENT_PAGE,
				],
			]
		);

		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'type' => [ 'like', 'recommend' ],
					'url_type' => Module::URL_TYPE_CUSTOM,
				],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$settings = $this->get_settings();

		// Validate URL
		switch ( $settings['type'] ) {
			case 'like':
			case 'recommend':
				if ( Module::URL_TYPE_CUSTOM === $settings['url_type'] && ! filter_var( $settings['url'], FILTER_VALIDATE_URL ) ) {
					if ( Plugin::elementor()->editor->is_edit_mode() ) {
						echo $this->get_title() . ': ' . esc_html__( 'Please enter a valid URL', 'elementor-pro' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					}

					return;
				}
				break;
		}

		$attributes = [
			'data-layout' => $settings['layout'],
			'data-colorscheme' => $settings['color_scheme'],
			'data-size' => $settings['size'],
			'data-show-faces' => $settings['show_faces'] ? 'true' : 'false',
		];

		switch ( $settings['type'] ) {
			case 'like':
			case 'recommend':
				if ( Module::URL_TYPE_CURRENT_PAGE === $settings['url_type'] ) {
					$permalink = Facebook_SDK_Manager::get_permalink( $settings );
				} else {
					$permalink = esc_url( $settings['url'] );
				}

				$attributes['class'] = 'elementor-facebook-widget fb-like';
				$attributes['data-href'] = $permalink;
				$attributes['data-share'] = $settings['show_share'] ? 'true' : 'false';
				$attributes['data-action'] = $settings['type'];
				break;
		}

		$this->add_render_attribute( 'embed_div', $attributes );
		?>
		<div <?php $this->print_render_attribute_string( 'embed_div' ); ?>></div>
		<?php
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'social';
	}
}
PK!6��;�;+modules/payments/classes/payment-button.phpnu�[���<?php
namespace ElementorPro\Modules\Payments\Classes;

use Elementor\Utils;
use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Modules\DynamicTags\Module as TagsModule;
use Elementor\Widget_Button;
use ElementorPro\Base\Base_Widget_Trait;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Payment_Button extends Widget_Button {
	use Base_Widget_Trait;

	// Payment types.
	const PAYMENT_TYPE_CHECKOUT = 'checkout';
	const PAYMENT_TYPE_SUBSCRIPTION = 'subscription';
	const PAYMENT_TYPE_DONATION = 'donation';

	// Billing cycles.
	const BILLING_CYCLE_DAYS = 'days';
	const BILLING_CYCLE_WEEKS = 'weeks';
	const BILLING_CYCLE_MONTHS = 'months';
	const BILLING_CYCLE_YEARS = 'years';

	// Donation types.
	const DONATION_TYPE_ANY = 'any';
	const DONATION_TYPE_FIXED = 'fixed';

	// Error messages.
	const ERROR_MESSAGE_GLOBAL = 'global';
	const ERROR_MESSAGE_PAYMENT_METHOD = 'payment';

	// Retrieve the merchant display name.
	abstract protected function get_merchant_name();

	// Account details section.
	abstract protected function register_account_section();

	// Custom sandbox controls.
	abstract protected function register_sandbox_controls();

	public function get_group_name() {
		return 'payments';
	}

	// Render custom controls after product type.
	protected function after_product_type() { }

	// Return an array of supported currencies.
	protected function get_currencies() {
		return [
			'AUD' => _x( 'AUD', 'Currency', 'elementor-pro' ),
			'CAD' => _x( 'CAD', 'Currency', 'elementor-pro' ),
			'CZK' => _x( 'CZK', 'Currency', 'elementor-pro' ),
			'DKK' => _x( 'DKK', 'Currency', 'elementor-pro' ),
			'EUR' => _x( 'EUR', 'Currency', 'elementor-pro' ),
			'HKD' => _x( 'HKD', 'Currency', 'elementor-pro' ),
			'HUF' => _x( 'HUF', 'Currency', 'elementor-pro' ),
			'ILS' => _x( 'ILS', 'Currency', 'elementor-pro' ),
			'JPY' => _x( 'JPY', 'Currency', 'elementor-pro' ),
			'MXN' => _x( 'MXN', 'Currency', 'elementor-pro' ),
			'NOK' => _x( 'NOK', 'Currency', 'elementor-pro' ),
			'NZD' => _x( 'NZD', 'Currency', 'elementor-pro' ),
			'PHP' => _x( 'PHP', 'Currency', 'elementor-pro' ),
			'PLN' => _x( 'PLN', 'Currency', 'elementor-pro' ),
			'GBP' => _x( 'GBP', 'Currency', 'elementor-pro' ),
			'RUB' => _x( 'RUB', 'Currency', 'elementor-pro' ),
			'SGD' => _x( 'SGD', 'Currency', 'elementor-pro' ),
			'SEK' => _x( 'SEK', 'Currency', 'elementor-pro' ),
			'CHF' => _x( 'CHF', 'Currency', 'elementor-pro' ),
			'TWD' => _x( 'TWD', 'Currency', 'elementor-pro' ),
			'THB' => _x( 'THB', 'Currency', 'elementor-pro' ),
			'TRY' => _x( 'TRY', 'Currency', 'elementor-pro' ),
			'USD' => _x( 'USD', 'Currency', 'elementor-pro' ),
		];
	}

	// Return an array of default error messages.
	protected function get_default_error_messages() {
		return [
			self::ERROR_MESSAGE_GLOBAL => esc_html__( 'An error occurred.', 'elementor-pro' ),
			self::ERROR_MESSAGE_PAYMENT_METHOD => esc_html__( 'No payment method connected. Contact seller.', 'elementor-pro' ),
		];
	}

	// Get message text by id (`error_message_$id`).
	protected function get_custom_message( $id ) {
		$message = $this->get_settings_for_display( 'error_message_' . $id );

		// Return the user-defined message.
		if ( ! empty( $message ) ) {
			return $message;
		}

		// Return the default message.
		$error_messages = $this->get_default_error_messages();

		return ( ! empty( $error_messages[ $id ] ) ) ? $error_messages[ $id ] : esc_html__( 'Unknown error.', 'elementor-pro' );
	}

	// Product details section.
	protected function register_product_controls() {
		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Transaction Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'checkout',
				'options' => [
					self::PAYMENT_TYPE_CHECKOUT => esc_html__( 'Checkout', 'elementor-pro' ),
					self::PAYMENT_TYPE_DONATION => esc_html__( 'Donation', 'elementor-pro' ),
					self::PAYMENT_TYPE_SUBSCRIPTION => esc_html__( 'Subscription', 'elementor-pro' ),
				],
				'separator' => 'before',
			]
		);

		$this->after_product_type();

		$this->add_control(
			'product_name',
			[
				'label' => esc_html__( 'Item Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
			]
		);

		$this->add_control(
			'product_sku',
			[
				'label' => esc_html__( 'SKU', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'product_price',
			[
				'label' => esc_html__( 'Price', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '0.00',
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'type!' => self::PAYMENT_TYPE_DONATION,
				],
			]
		);

		$this->add_control(
			'donation_type',
			[
				'label' => esc_html__( 'Donation Amount', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => self::DONATION_TYPE_FIXED,
				'options' => [
					self::DONATION_TYPE_ANY => esc_html__( 'Any Amount', 'elementor-pro' ),
					self::DONATION_TYPE_FIXED => esc_html__( 'Fixed', 'elementor-pro' ),
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_DONATION,
				],
			]
		);

		$this->add_control(
			'donation_amount',
			[
				'label' => esc_html__( 'Amount', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '1',
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_DONATION,
					'donation_type' => self::DONATION_TYPE_FIXED,
				],
			]
		);

		$this->add_control(
			'currency',
			[
				'label' => esc_html__( 'Currency', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'USD',
				'options' => $this->get_currencies(),
			]
		);

		$this->add_control(
			'billing_cycle',
			[
				'label' => esc_html__( 'Billing Cycle', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => self::BILLING_CYCLE_MONTHS,
				'options' => [
					self::BILLING_CYCLE_DAYS => esc_html__( 'Daily', 'elementor-pro' ),
					self::BILLING_CYCLE_WEEKS => esc_html__( 'Weekly', 'elementor-pro' ),
					self::BILLING_CYCLE_MONTHS => esc_html__( 'Monthly', 'elementor-pro' ),
					self::BILLING_CYCLE_YEARS => esc_html__( 'Yearly', 'elementor-pro' ),
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_SUBSCRIPTION,
				],
			]
		);

		$this->add_control(
			'auto_renewal',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => esc_html__( 'Auto Renewal', 'elementor-pro' ),
				'default' => 'yes',
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'condition' => [
					'type' => self::PAYMENT_TYPE_SUBSCRIPTION,
				],
			]
		);

		$this->add_control(
			'quantity',
			[
				'label' => esc_html__( 'Quantity', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 1,
				'condition' => [
					'type' => self::PAYMENT_TYPE_CHECKOUT,
				],
			]
		);

		$this->add_control(
			'shipping_price',
			[
				'label' => esc_html__( 'Shipping Price', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 0,
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_CHECKOUT,
				],
			]
		);

		$this->add_control(
			'tax_type',
			[
				'label' => esc_html__( 'Tax', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'percentage' => esc_html__( 'Percentage', 'elementor-pro' ),
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_CHECKOUT,
				],
			]
		);

		$this->add_control(
			'tax_rate',
			[
				'label' => esc_html__( 'Tax Percentage', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '0',
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'type' => self::PAYMENT_TYPE_CHECKOUT,
					'tax_type' => 'percentage',
				],
			]
		);
	}

	// Submission settings section.
	protected function register_settings_section() {
		$this->start_controls_section(
			'section_settings',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'redirect_after_success',
			[
				'label' => esc_html__( 'Redirect After Success', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'options' => false,
				'placeholder' => esc_html__( 'Paste URL or type', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'render_type' => 'none',
			]
		);

		$this->add_control(
			'sandbox_mode',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => esc_html__( 'Sandbox', 'elementor-pro' ),
				'default' => 'no',
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
			]
		);

		$this->register_sandbox_controls();

		$this->add_control(
			'open_in_new_window',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => sprintf( esc_html__( 'Open %s In New Tab', 'elementor-pro' ), $this->get_merchant_name() ),
				'default' => 'yes',
				'label_off' => esc_html__( 'No', 'elementor-pro' ),
				'label_on' => esc_html__( 'Yes', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'custom_messages',
			[
				'label' => esc_html__( 'Custom Messages', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
			]
		);

		$error_messages = $this->get_default_error_messages();

		$this->add_control(
			'error_message_' . self::ERROR_MESSAGE_GLOBAL,
			[
				'label' => esc_html__( 'Error Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $error_messages[ self::ERROR_MESSAGE_GLOBAL ],
				'placeholder' => $error_messages[ self::ERROR_MESSAGE_GLOBAL ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
			]
		);

		$this->add_control(
			'error_message_' . self::ERROR_MESSAGE_PAYMENT_METHOD,
			[
				'label' => sprintf( esc_html__( '%s Not Connected', 'elementor-pro' ), $this->get_merchant_name() ),
				'type' => Controls_Manager::TEXT,
				'default' => $error_messages[ self::ERROR_MESSAGE_PAYMENT_METHOD ],
				'placeholder' => $error_messages[ self::ERROR_MESSAGE_PAYMENT_METHOD ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
			]
		);

		$this->end_controls_section();
	}

	// Customize the default button controls.
	protected function register_button_controls() {
		parent::register_controls();

		$this->remove_control( 'button_type' );

		$this->remove_control( 'link' );

		$this->remove_control( 'size' );

		$this->update_control( 'selected_icon', [
			'default' => [
				'value' => 'fab fa-paypal',
				'library' => 'fa-brands',
			],
		] );

		$this->update_control( 'text', [
			'default' => 'Buy Now',
		] );

		$this->update_control( 'button_text_color', [
			'default' => '#FFF',
		] );

		$this->update_control( 'background_color', [
			'default' => '#032E82',
		] );
	}

	// Add typography settings for custom messages.
	protected function register_messages_style_section() {
		$this->start_controls_section(
			'section_messages_style',
			[
				'label' => esc_html__( 'Messages', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'message_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-message',
			]
		);

		$this->add_control(
			'message_color_' . self::ERROR_MESSAGE_GLOBAL,
			[
				'label' => esc_html__( 'Error Message Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-message.elementor-error-message-' . self::ERROR_MESSAGE_GLOBAL => 'color: {{COLOR}};',
				],
			]
		);

		$this->add_control(
			'message_color_' . self::ERROR_MESSAGE_PAYMENT_METHOD,
			[
				'label' => sprintf( esc_html__( '%s Not Connected Color', 'elementor-pro' ), $this->get_merchant_name() ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-message.elementor-error-message-' . self::ERROR_MESSAGE_PAYMENT_METHOD => 'color: {{COLOR}};',
				],
			]
		);

		$this->end_controls_section();
	}

	// Register widget controls.
	protected function register_controls() {
		$this->register_account_section();
		$this->register_button_controls();
		$this->register_settings_section();
		$this->register_messages_style_section();
	}

	// Render the checkout button.
	protected function render_button( $tag = 'a' ) {
		$this->add_render_attribute( 'button', 'class', 'elementor-payment-button' );

		?>
		<<?php Utils::print_validated_html_tag( $tag ); ?> <?php $this->print_render_attribute_string( 'button' ); ?>>
			<?php $this->render_text(); ?>
		</<?php Utils::print_validated_html_tag( $tag ); ?>>
		<?php
	}

	// Render the widget.
	protected function render() {
		$settings = $this->get_settings_for_display();

		$this->add_render_attribute( 'wrapper', 'class', 'elementor-button-wrapper' );
		$this->add_render_attribute( 'button', 'class', 'elementor-button' );
		$this->add_render_attribute( 'button', 'role', 'button' );

		if ( ! empty( $settings['button_css_id'] ) ) {
			$this->add_render_attribute( 'button', 'id', $settings['button_css_id'] );
		}

		if ( ! empty( $settings['size'] ) ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['size'] );
		}

		if ( $settings['hover_animation'] ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $settings['hover_animation'] );
		}

		?>
		<div <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
			<?php $this->render_button(); ?>
		</div>
		<?php
	}

	protected function content_template() {
		return;
		?>
		<#
		view.addRenderAttribute( 'text', 'class', 'elementor-button-text' );
		view.addInlineEditingAttributes( 'text', 'none' );
		var iconHTML = elementor.helpers.renderIcon( view, settings.selected_icon, { 'aria-hidden': true }, 'i' , 'object' ),
		migrated = elementor.helpers.isIconMigrated( settings, 'selected_icon' );
		#>
		<div class="elementor-button-wrapper">
			<a id="{{ settings.button_css_id }}" class="elementor-button elementor-size-{{ settings.size }} elementor-animation-{{ settings.hover_animation }}" href="#" role="button">
				<span class="elementor-button-content-wrapper">
					<# if ( settings.icon || settings.selected_icon ) { #>
					<span class="elementor-button-icon elementor-align-icon-{{ settings.icon_align }}">
						<# if ( ( migrated || ! settings.icon ) && iconHTML.rendered ) { #>
							{{{ iconHTML.value }}}
						<# } else { #>
							<i class="{{ settings.icon }}" aria-hidden="true"></i>
						<# } #>
					</span>
					<# } #>
					<span {{{ view.getRenderAttributeString( 'text' ) }}}>{{{ settings.text }}}</span>
				</span>
			</a>
		</div>
		<?php
	}

	// Check if it's sandbox mode.
	protected function is_sandbox() {
		return 'yes' === $this->get_settings_for_display( 'sandbox_mode' );
	}
}
PK!0��b))*modules/payments/widgets/paypal-button.phpnu�[���<?php
namespace ElementorPro\Modules\Payments\Widgets;

use Elementor\Controls_Manager;
use Elementor\Plugin;
use Elementor\Utils;
use ElementorPro\Modules\Payments\Classes\Payment_Button;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Paypal_Button extends Payment_Button {

	// API integration types.
	const API_TYPE_SIMPLE = 'simple';
	const API_TYPE_ADVANCED = 'advanced';

	// PayPal constants.
	const PROD_URL = 'https://www.paypal.com/cgi-bin/webscr';
	const SANDBOX_URL = 'https://sandbox.paypal.com/cgi-bin/webscr';
	const CMD_CHECKOUT = '_xclick';
	const CMD_DONATION = '_donations';
	const CMD_SUBSCRIPTION = '_xclick-subscriptions';

	const BILLING_CYCLE_TYPES = [
		self::BILLING_CYCLE_DAYS => 'D',
		self::BILLING_CYCLE_WEEKS => 'W',
		self::BILLING_CYCLE_MONTHS => 'M',
		self::BILLING_CYCLE_YEARS => 'Y',
	];

	public function get_name() {
		return 'paypal-button';
	}

	public function get_title() {
		return esc_html__( 'PayPal Button', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-paypal-button';
	}

	public function get_keywords() {
		return [ 'paypal', 'payment', 'sell', 'donate' ];
	}

	protected function get_merchant_name() {
		return 'PayPal';
	}

	// Retrieve a numerical field from settings, and default to $min if it's too small.
	protected function get_numeric_setting( $key, $min = 0 ) {
		$num = doubleval( $this->get_settings_for_display( $key ) );

		return ( $min > $num ) ? $min : $num;
	}

	// Print a numerical field from settings, using `get_numeric_setting`.
	protected function print_numeric_setting( $key, $min = 0 ) {
		// PHPCS - the get_numeric_setting function is safe.
		echo $this->get_numeric_setting( $key, $min ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	// Get the currently selected API communication method ( legacy / SDK ).
	protected function get_api_method() {
		$settings = $this->get_settings_for_display();

		return ( self::API_TYPE_ADVANCED === $settings['merchant_account'] ) ? 'sdk' : 'legacy';
	}

	// Get validation errors.
	protected function get_errors( $squash_errors = true ) {
		$settings = $this->get_settings_for_display();
		$errors = [];

		// Don't render errors in the editor.
		if ( Plugin::instance()->editor->is_edit_mode() ) {
			return $errors;
		}

		// No payment method provided.
		if ( 'legacy' === $this->get_api_method() ) {
			$empty_email = empty( $settings['email'] );
			$empty_sandbox_email = $this->is_sandbox() && empty( $settings['sandbox_email'] );

			if ( $empty_email || $empty_sandbox_email ) {
				$errors[ self::ERROR_MESSAGE_PAYMENT_METHOD ] = $this->get_custom_message( self::ERROR_MESSAGE_PAYMENT_METHOD );
			}
		}

		// Other errors.
		$empty_product_price = ( self::PAYMENT_TYPE_DONATION !== $settings['type'] && empty( $settings['product_price'] ) );
		$empty_donation_amount = ( self::DONATION_TYPE_FIXED === $settings['donation_type'] && empty( $settings['donation_amount'] ) );
		$empty_tax = ( ! empty( $settings['tax_type'] ) && empty( $settings['tax_rate'] ) );

		if ( $empty_product_price || $empty_donation_amount || $empty_tax ) {
			$errors[ self::ERROR_MESSAGE_GLOBAL ] = $this->get_custom_message( self::ERROR_MESSAGE_GLOBAL );
		}

		// Squash errors to show only a global error.
		if ( $squash_errors && 1 < count( $errors ) ) {
			return [
				self::ERROR_MESSAGE_GLOBAL => $this->get_custom_message( self::ERROR_MESSAGE_GLOBAL ),
			];
		}

		return $errors;
	}

	// Render PayPal's legacy checkout form.
	protected function render_legacy_form() {
		$settings = $this->get_settings_for_display();

		// Handle sandbox mode.
		if ( ! $this->is_sandbox() ) {
			$form_action = self::PROD_URL;
			$email = $settings['email'];
		} else {
			$form_action = self::SANDBOX_URL;
			$email = $settings['sandbox_email'];
			$this->add_render_attribute( 'button', 'class', 'elementor-payment-sandbox-mode' );
		}

		if ( 'yes' === $settings['open_in_new_window'] ) {
			$target = '_blank';
		} else {
			$target = '_top';
		}

		// Set PayPal payment settings by payment type.
		switch ( $settings['type'] ) {
			case self::PAYMENT_TYPE_CHECKOUT:
				$cmd = self::CMD_CHECKOUT;
				$price_field = [
					'name' => 'amount',
					'value' => $settings['product_price'],
				];
				break;

			case self::PAYMENT_TYPE_DONATION:
				$cmd = self::CMD_DONATION;
				$donation_amount = '';

				// phpcs:ignore
				if ( self::DONATION_TYPE_FIXED === $settings['donation_type'] ) {
					$donation_amount = $settings['donation_amount'];
				}

				$price_field = [
					'name' => 'amount',
					'value' => $donation_amount,
				];
				break;

			case self::PAYMENT_TYPE_SUBSCRIPTION:
				$cmd = self::CMD_SUBSCRIPTION;
				$price_field = [
					'name' => 'a3',
					'value' => $settings['product_price'],
				];
				$auto_renewal = ( 'yes' === $settings['auto_renewal'] ) ? 1 : 0;
				$billing_cycle = self::BILLING_CYCLE_TYPES[ $settings['billing_cycle'] ];
				break;
		}

		// PayPal HTML reference:
		// https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/html-reference-landing/

		?>
		<form action="<?php echo esc_attr( $form_action ); ?>" method="post" target="<?php echo esc_attr( $target ); ?>">
			<input type="hidden" name="cmd" value="<?php echo esc_attr( $cmd ); ?>" />
			<input type="hidden" name="business" value="<?php echo esc_attr( $email ); ?>" />
			<input type="hidden" name="lc" value="US" />
			<input type="hidden" name="item_name" value="<?php echo esc_attr( $settings['product_name'] ); ?>" />
			<input type="hidden" name="item_number" value="<?php echo esc_attr( $settings['product_sku'] ); ?>" />
			<input type="hidden" name="currency_code" value="<?php echo esc_attr( $settings['currency'] ); ?>" />
			<input type="hidden" name="<?php echo esc_attr( $price_field['name'] ); ?>" value="<?php echo esc_attr( $price_field['value'] ); ?>" />
			<input type="hidden" name="no_note" value="1">

			<?php if ( self::PAYMENT_TYPE_CHECKOUT === $settings['type'] ) { ?>
				<input type="hidden" name="shipping" value="<?php $this->print_numeric_setting( 'shipping_price' ); ?>" />
				<input type="hidden" name="tax_rate" value="<?php $this->print_numeric_setting( 'tax_rate' ); ?>" />
				<input type="hidden" name="quantity" value="<?php $this->print_numeric_setting( 'quantity', 1 ); ?>" />
				<?php
			} elseif ( self::PAYMENT_TYPE_SUBSCRIPTION === $settings['type'] ) { ?>
				<?php // PHPCS - the $auto_renewal variable is a safe. ?>
				<input type="hidden" name="src" value="<?php echo $auto_renewal; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" />
				<input type="hidden" name="p3" value="1" />
				<?php // PHPCS - the $billing_cycle variable is a constant value from self::BILLING_CYCLE_TYPES. ?>
				<input type="hidden" name="t3" value="<?php echo $billing_cycle; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" />
				<input type="hidden" name="no-shipping" value="1" />
				<?php
			}

			if ( ! empty( $settings['redirect_after_success']['url'] ) ) { ?>
				<input type="hidden" name="return" value="<?php echo esc_url( $settings['redirect_after_success']['url'] ); ?>">
				<?php
			}

			$this->add_render_attribute( 'button', 'type', 'submit' );
			$this->add_render_attribute( 'button', 'class', 'elementor-paypal-legacy' );
			parent::render_button( 'button' );

			foreach ( $this->get_errors() as $type => $message ) {
				?>
				<div class="elementor-message elementor-message-danger elementor-hidden elementor-error-message-<?php Utils::print_unescaped_internal_string( $type ); ?>">
					<?php echo esc_html( $message ); ?>
				</div>
				<?php
			}
			?>
		</form>
		<?php
	}

	// Render the payment button.
	protected function render_button( $tag = 'a' ) {
		switch ( $this->get_api_method() ) {
			case 'legacy':
				$this->render_legacy_form();
				break;
		}
	}

	// Account details section.
	protected function register_account_section() {
		$this->start_controls_section(
			'section_account',
			[
				'label' => esc_html__( 'Pricing & Payments', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'merchant_account',
			[
				'label' => esc_html__( 'Merchant Account', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'default' => self::API_TYPE_SIMPLE,
				'options' => [
					self::API_TYPE_SIMPLE => esc_html__( 'Default (Simple)', 'elementor-pro' ),
					self::API_TYPE_ADVANCED => esc_html__( 'Custom (Advanced)', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'email',
			[
				'label' => esc_html__( 'PayPal Account', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'description' => esc_html__( 'Transactions made through your PayPal button will be registered under this account.', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'merchant_account' => self::API_TYPE_SIMPLE,
				],
				'placeholder' => 'yours@email.com',
			]
		);

		$this->add_control(
			'sdk_token',
			[
				'label' => esc_html__( 'SDK Token', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'condition' => [
					'merchant_account' => self::API_TYPE_ADVANCED,
				],
			]
		);

		$this->register_product_controls();

		$this->end_controls_section();
	}

	// Custom sandbox controls.
	protected function register_sandbox_controls() {
		$this->add_control(
			'sandbox_email',
			[
				'label' => esc_html__( 'Sandbox Email Account', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'description' => esc_html__( 'This is the address given to you by PayPal when you set up a sandbox with your developer account. You can use the sandbox to test your purchase flow.', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'sandbox_mode' => 'yes',
				],
			]
		);
	}

	// This widget extends the button core widget and therefore needs to overwrite the widget-base core CSS config.
	public function get_css_config() {
		$widget_name = 'payments';

		$direction = is_rtl() ? '-rtl' : '';

		$css_file_path = 'css/widget-' . $widget_name . $direction . '.min.css';

		return [
			'key' => $widget_name,
			'version' => ELEMENTOR_PRO_VERSION,
			'file_path' => ELEMENTOR_PRO_ASSETS_PATH . $css_file_path,
			'data' => [
				'file_url' => ELEMENTOR_PRO_ASSETS_URL . $css_file_path,
			],
		];
	}
}
PK!H��@@modules/payments/module.phpnu�[���<?php
namespace ElementorPro\Modules\Payments;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Paypal_Button',
		];
	}

	public function get_name() {
		return 'payments';
	}
}
PK!K��Ą�?modules/theme-builder/theme-support/safe-mode-theme-support.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\ThemeSupport;

use ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Safe_Mode_Theme_Support {

	/**
	 * @param Locations_Manager $manager
	 */
	public function register_locations( $manager ) {
		$manager->register_core_location( 'header' );
		$manager->register_core_location( 'footer' );
	}

	public function do_header() {
		elementor_theme_do_location( 'header' );
	}

	public function do_footer() {
		elementor_theme_do_location( 'footer' );
	}

	public function __construct() {
		add_action( 'elementor/theme/register_locations', [ $this, 'register_locations' ] );

		add_action( 'elementor/page_templates/canvas/before_content', [ $this, 'do_header' ], 0 );
		add_action( 'elementor/page_templates/canvas/after_content', [ $this, 'do_footer' ], 0 );
	}
}
PK!m��KKDmodules/theme-builder/theme-support/generate-press-theme-support.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\ThemeSupport;

use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager;
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class GeneratePress_Theme_Support {

	/**
	 * @param Locations_Manager $manager
	 */
	public function register_locations( $manager ) {
		$manager->register_core_location( 'header' );
		$manager->register_core_location( 'footer' );
	}

	public function metabox_capability( $capability ) {
		if ( Source_Local::CPT === get_post_type() ) {
			$capability = 'do_not_allow';
		}

		return $capability;
	}

	public function do_header() {
		$did_location = Module::instance()->get_locations_manager()->do_location( 'header' );
		if ( $did_location ) {
			remove_action( 'generate_header', 'generate_construct_header' );
			remove_action( 'generate_after_header', 'generate_add_navigation_after_header', 5 );
		}
	}

	public function do_footer() {
		$did_location = Module::instance()->get_locations_manager()->do_location( 'footer' );
		if ( $did_location ) {
			remove_action( 'generate_footer', 'generate_construct_footer' );
			remove_action( 'generate_footer', 'generate_construct_footer_widgets', 5 );
		}
	}

	public function body_classes( $classes ) {
		if ( in_array( 'elementor-template-full-width', $classes ) ) {
			$classes[] = 'full-width-content';
		}

		return $classes;
	}

	public function __construct() {
		add_action( 'elementor/theme/register_locations', [ $this, 'register_locations' ] );
		add_filter( 'generate_metabox_capability', [ $this, 'metabox_capability' ] );

		add_action( 'generate_header', [ $this, 'do_header' ], 0 );
		add_action( 'generate_footer', [ $this, 'do_footer' ], 0 );

		add_filter( 'body_class', [ $this, 'body_classes' ], 11 );
	}
}
PK!^�Mu��modules/theme-builder/api.phpnu�[���<?php

use ElementorPro\Modules\ThemeBuilder\Module as Theme_Builder_Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

function elementor_theme_do_location( $location ) {
	/** @var Theme_Builder_Module $theme_builder_module */
	$theme_builder_module = Theme_Builder_Module::instance();

	return $theme_builder_module->get_locations_manager()->do_location( $location );
}

function elementor_location_exits( $location, $check_match = false ) {
	/** @var Theme_Builder_Module $theme_builder_module */
	$theme_builder_module = Theme_Builder_Module::instance();

	return $theme_builder_module->get_locations_manager()->location_exits( $location, $check_match );
}
PK!�ۆ�;;3modules/theme-builder/widgets/title-widget-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Widget_Heading;
use Elementor\Plugin;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin as ProPlugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Title_Widget_Base extends Widget_Heading {

	use Base_Widget_Trait;

	abstract protected function get_dynamic_tag_name();

	protected function should_show_page_title() {
		$current_doc = Plugin::instance()->documents->get( get_the_ID() );
		if ( $current_doc && 'yes' === $current_doc->get_settings( 'hide_title' ) ) {
			return false;
		}

		return true;
	}

	protected function register_controls() {
		parent::register_controls();

		$dynamic_tag_name = $this->get_dynamic_tag_name();

		$this->update_control(
			'title',
			[
				'dynamic' => [
					'default' => ProPlugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, $dynamic_tag_name ),
				],
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'header_size',
			[
				'default' => 'h1',
			]
		);
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-page-title elementor-widget-' . parent::get_name();
	}

	public function render() {
		if ( $this->should_show_page_title() ) {
			return parent::render();
		}
	}
}
PK!�0V���.modules/theme-builder/widgets/post-excerpt.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Excerpt extends Base_Widget {

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-post-excerpt';
	}

	public function get_title() {
		return esc_html__( 'Post Excerpt', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-post-excerpt';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'post', 'excerpt', 'description' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'excerpt',
			[
				'type' => Controls_Manager::TEXT,
				'label_block' => true,
				'dynamic' => [
					'active' => true,
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'post-excerpt' ),
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-widget-container' => 'text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-widget-container' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-widget-container',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$this->print_unescaped_setting( 'excerpt' );
	}
}
PK!L� ��/modules/theme-builder/widgets/archive-title.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive_Title extends Title_Widget_Base {

	protected function get_dynamic_tag_name() {
		return 'archive-title';
	}

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-archive-title';
	}

	public function get_title() {
		return esc_html__( 'Archive Title', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-archive-title';
	}

	public function get_categories() {
		return [ 'theme-elements-archive' ];
	}

	public function get_keywords() {
		return [ 'title', 'heading', 'archive' ];
	}
}
PK!��aa/modules/theme-builder/widgets/archive-posts.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Modules\Posts\Widgets\Posts_Base;
use ElementorPro\Modules\ThemeBuilder\Skins;
use ElementorPro\Modules\QueryControl\Module as Query_Control;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Posts
 */
class Archive_Posts extends Posts_Base {

	public function get_name() {
		return 'archive-posts';
	}

	public function get_title() {
		return esc_html__( 'Archive Posts', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-archive-posts';
	}

	public function get_categories() {
		return [ 'theme-elements-archive' ];
	}

	public function get_keywords() {
		return [ 'posts', 'cpt', 'archive', 'loop', 'query', 'cards', 'custom post type' ];
	}

	public function get_inline_css_depends() {
		return [ 'posts' ];
	}

	protected function register_skins() {
		$this->add_skin( new Skins\Posts_Archive_Skin_Classic( $this ) );
		$this->add_skin( new Skins\Posts_Archive_Skin_Cards( $this ) );
		$this->add_skin( new Skins\Posts_Archive_Skin_Full_Content( $this ) );
	}

	protected function register_controls() {
		parent::register_controls();

		$this->register_pagination_section_controls();

		$this->register_advanced_section_controls();

		$this->update_control(
			'pagination_type',
			[
				'default' => 'numbers',
			]
		);
	}

	public function register_advanced_section_controls() {
		$this->start_controls_section(
			'section_advanced',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'nothing_found_message',
			[
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'It seems we can\'t find what you\'re looking for.', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_nothing_found_style',
			[
				'tab' => Controls_Manager::TAB_STYLE,
				'label' => esc_html__( 'Nothing Found Message', 'elementor-pro' ),
				'condition' => [
					'nothing_found_message!' => '',
				],
			]
		);

		$this->add_control(
			'nothing_found_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-posts-nothing-found' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'nothing_found_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-posts-nothing-found',
			]
		);

		$this->end_controls_section();
	}

	public function query_posts() {
		global $wp_query;

		$query_vars = $wp_query->query_vars;

		/**
		 * Posts archive query vars.
		 *
		 * Filters the post query variables when the theme loads the posts archive page.
		 *
		 * @since 2.0.0
		 *
		 * @param array $query_vars The query variables for the `WP_Query`.
		 */
		$query_vars = apply_filters( 'elementor/theme/posts_archive/query_posts/query_vars', $query_vars );

		if ( $query_vars !== $wp_query->query_vars ) {
			$this->query = new \WP_Query( $query_vars ); // SQL_CALC_FOUND_ROWS is used.
		} else {
			$this->query = $wp_query;
		}

		Query_Control::add_to_avoid_list( wp_list_pluck( $this->query->posts, 'ID' ) );
	}
}
PK!z=0mm+modules/theme-builder/widgets/site-logo.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Widget_Image;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_Logo extends Widget_Image {

	use Base_Widget_Trait;

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-site-logo';
	}

	public function get_title() {
		return esc_html__( 'Site Logo', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-site-logo';
	}

	public function get_categories() {
		return [ 'theme-elements' ];
	}

	public function get_keywords() {
		return [ 'site', 'logo', 'branding' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'image',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'site-logo' ),
				],
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'image_size',
			[
				'default' => 'full',
			]
		);

		$this->update_control(
			'link_to',
			[
				'default' => 'custom',
			]
		);

		$this->update_control(
			'link',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'site-url' ),
				],
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'caption_source',
			[
				'options' => $this->get_caption_source_options(),
			]
		);

		$this->remove_control( 'caption' );
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-widget-' . parent::get_name();
	}

	private function get_caption_source_options() {
		$caption_source_options = $this->get_controls( 'caption_source' )['options'];

		unset( $caption_source_options['custom'] );

		return $caption_source_options;
	}
}
PK!��\\,modules/theme-builder/widgets/site-title.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Widget_Heading;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Site_Title extends Widget_Heading {

	use Base_Widget_Trait;

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-site-title';
	}

	public function get_title() {
		return esc_html__( 'Site Title', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-site-title';
	}

	public function get_categories() {
		return [ 'theme-elements' ];
	}

	public function get_keywords() {
		return [ 'site', 'title', 'name' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'title',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'site-title' ),
				],
			],
			[
				'recursive' => true,
			]
		);

		$this->update_control(
			'link',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'site-url' ),
				],
			],
			[
				'recursive' => true,
			]
		);
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-widget-' . parent::get_name();
	}
}
PK!�=AL
L
.modules/theme-builder/widgets/post-content.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Posts\Skins\Skin_Content_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Content extends Base_Widget {
	use Skin_Content_Base;
	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-post-content';
	}

	public function get_title() {
		return esc_html__( 'Post Content', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-post-content';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'content', 'post' ];
	}

	public function show_in_panel() {
		// By default don't show.
		return false;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'justify' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => 'text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$this->render_post_content();
	}

	public function render_plain_content() {}
}
PK!�����,modules/theme-builder/widgets/page-title.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Page_Title extends Title_Widget_Base {

	protected function get_dynamic_tag_name() {
		return 'page-title';
	}

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-page-title';
	}

	public function get_title() {
		return esc_html__( 'Page Title', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-archive-title';
	}

	public function get_categories() {
		return [ 'theme-elements' ];
	}

	public function get_keywords() {
		return [ 'title', 'heading', 'page' ];
	}
}
PK![I<���5modules/theme-builder/widgets/post-featured-image.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

use Elementor\Widget_Image;
use ElementorPro\Base\Base_Widget_Trait;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Featured_Image extends Widget_Image {

	use Base_Widget_Trait;

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-post-featured-image';
	}

	public function get_title() {
		return esc_html__( 'Featured Image', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-featured-image';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'image', 'featured', 'thumbnail' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'image',
			[
				'dynamic' => [
					'default' => Plugin::elementor()->dynamic_tags->tag_data_to_tag_text( null, 'post-featured-image' ),
				],
			],
			[
				'recursive' => true,
			]
		);
	}

	protected function get_html_wrapper_class() {
		return parent::get_html_wrapper_class() . ' elementor-widget-' . parent::get_name();
	}
}
PK!�D�K11,modules/theme-builder/widgets/post-title.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Widgets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Title extends Title_Widget_Base {

	public function get_name() {
		// `theme` prefix is to avoid conflicts with a dynamic-tag with same name.
		return 'theme-post-title';
	}

	public function get_title() {
		return esc_html__( 'Post Title', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-post-title';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'title', 'heading', 'post' ];
	}

	protected function get_dynamic_tag_name() {
		return 'post-title';
	}

	public function get_common_args() {
		return [
			'_css_classes' => [
				'default' => 'entry-title',
			],
		];
	}
}
PK!��}��2modules/theme-builder/documents/search-results.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Search_Results extends Archive {

	public function get_name() {
		return 'search-results';
	}

	public static function get_sub_type() {
		return 'search';
	}

	public static function get_title() {
		return esc_html__( 'Search Results', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Search Results', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-search-results';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Search Results Template?', 'elementor-pro' ),
			'content' => esc_html__( 'You can easily control the layout and design of the Search Results page with the Search Results template, which is simply a special archive template just for displaying search results.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can customize the message if there are no results for the search term.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-search-results',
			'video_url' => 'https://www.youtube.com/embed/KKkIU_L5sDo',
		];
	}

	public static function get_preview_as_default() {
		return 'search';
	}

	public static function get_preview_as_options() {
		$options = [
			'search' => esc_html__( 'Search Results', 'elementor-pro' ),
		];

		return [
			'archive' => [
				'label' => esc_html__( 'Archive', 'elementor-pro' ),
				'options' => $options,
			],
		];
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'archive';

		return $config;
	}
}
PK!�O�22-modules/theme-builder/documents/error-404.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Error_404 extends Single_Base {

	public static function get_type() {
		return 'error-404';
	}

	public static function get_sub_type() {
		return 'not_found404';
	}

	public static function get_title() {
		return esc_html__( 'Error 404', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Error 404', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-error-404';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a 404 Page Template?', 'elementor-pro' ),
			'content' => esc_html__( 'A 404 page template allows you to easily design the layout and style of the page that is displayed when a visitor arrives at a page that does not exist.', 'elementor-pro' ),
			'tip' => esc_html__( 'Keep your site\'s visitors happy when they get lost by displaying your recent posts, a search bar, or any information that might help the user find what they were looking for.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-error-404',
			'video_url' => 'https://www.youtube.com/embed/ACCNp9tBMQg',
		];
	}

	public static function get_preview_as_options() {
		return [
			'page/404' => esc_html__( '404', 'elementor-pro' ),
		];
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = '404 page';

		return $config;
	}
}
PK!��*modules/theme-builder/documents/header.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Header extends Header_Footer_Base {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'header';

		return $properties;
	}

	public static function get_type() {
		return 'header';
	}

	public static function get_title() {
		return esc_html__( 'Header', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Headers', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-header';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Header Template?', 'elementor-pro' ),
			'content' => esc_html__( 'The header template allows you to easily design and edit custom WordPress headers so you are no longer constrained by your theme’s header design limitations.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple headers, and assign each to different areas of your site.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-header',
			'video_url' => 'https://www.youtube.com/embed/HHy5RK6W-6I',
		];
	}
}
PK!��n|��7modules/theme-builder/documents/archive-single-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilderModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Archive_Single_Base extends Theme_Page_Document {

	/**
	 * Document sub type meta key.
	 */
	const REMOTE_CATEGORY_META_KEY = '_elementor_template_sub_type';

	public static function get_sub_type() {
		return '';
	}

	public static function get_create_url() {
		$create_url = parent::get_create_url();

		$sub_type = static::get_sub_type();

		if ( $sub_type ) {
			$create_url = add_query_arg( static::REMOTE_CATEGORY_META_KEY, static::get_sub_type(), $create_url );
		}

		return $create_url;
	}

	/**
	 * @access public
	 */
	public function save_template_type() {
		parent::save_template_type();

		$this->save_sub_type_condition();
	}

	private function save_sub_type_condition() {
		$conditions_manager = ThemeBuilderModule::instance()->get_conditions_manager();

		if ( ! empty( $_REQUEST[ self::REMOTE_CATEGORY_META_KEY ] ) ) {
			$sub_type = $_REQUEST[ self::REMOTE_CATEGORY_META_KEY ];

			if ( $conditions_manager->get_condition( $sub_type ) ) {
				$this->update_meta( self::REMOTE_CATEGORY_META_KEY, $sub_type );

				$conditions_manager->save_conditions( $this->post->ID, [
					[
						'include',
						$this->get_property( 'condition_type' ),
						$sub_type,
					],
				] );
			}
		}
	}
}
PK!��d�*modules/theme-builder/documents/single.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Single extends Single_Base {

	public static function get_type() {
		return 'single';
	}

	public static function get_title() {
		return esc_html__( 'Single', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Singles', 'elementor-pro' );
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		// Fallback for old multipurpose `single` documents.
		$category = $this->get_meta( self::REMOTE_CATEGORY_META_KEY );

		if ( $category ) {
			if ( 'not_found404' === $category ) {
				$category = '404 page';
			} else {
				$category = 'single ' . $category;
			}

			$config['category'] = $category;
		} else {
			$config['category'] = 'single post';
		}

		return $config;
	}

	protected static function get_site_editor_thumbnail_url() {
		return ELEMENTOR_ASSETS_URL . 'images/app/site-editor/single-post.svg';
	}
}
PK!c��__/modules/theme-builder/documents/single-page.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Single_Page extends Single_Base {
	public static function get_type() {
		return 'single-page';
	}

	public static function get_sub_type() {
		return 'page';
	}

	public static function get_title() {
		return esc_html__( 'Single Page', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Single Pages', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-single-page';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Single Page Template?', 'elementor-pro' ),
			'content' => esc_html__( 'A single page template allows you to easily create the layout and style of pages, ensuring design consistency across all the pages of your site.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple single page templates, and assign each to different areas of your site.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-page',
			'video_url' => 'https://www.youtube.com/embed/_y5eZ60lVoY',
		];
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'single page';

		return $config;
	}
}
PK!,���B�B2modules/theme-builder/documents/theme-document.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use Elementor\Controls_Manager;
use Elementor\Core\App\Modules\ImportExport\Module as Import_Export_Module;
use Elementor\Modules\Library\Documents\Library_Document;
use Elementor\TemplateLibrary\Source_Local;
use Elementor\Utils;
use ElementorPro\Modules\QueryControl\Module as QueryModule;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Theme_Document extends Library_Document {

	const LOCATION_META_KEY = '_elementor_location';

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['admin_tab_group'] = Module::ADMIN_LIBRARY_TAB_GROUP;
		$properties['support_kit'] = true;
		$properties['support_site_editor'] = true;
		$properties['support_conditions'] = true;

		return $properties;
	}

	protected static function get_site_editor_route() {
		return '/site-editor/templates/' . static::get_type();
	}

	protected static function get_site_editor_icon() {
		return 'eicon eicon-custom';
	}

	protected static function get_site_editor_layout() {
		return 'grid';
	}

	protected static function get_site_editor_thumbnail_url() {
		return ELEMENTOR_ASSETS_URL . 'images/app/site-editor/' . static::get_type() . '.svg';
	}

	public static function get_site_editor_config() {
		return [
			'type' => static::get_type(),
			'icon' => static::get_site_editor_icon(),
			'title' => static::get_title(),
			'page_title' => static::get_title(),
			'page_layout' => static::get_site_editor_layout(),

			// Todo: Remove. Core plugin should use `urls.route`.
			'url' => static::get_site_editor_route(),

			'urls' => [
				'route' => static::get_site_editor_route(),
				'create' => static::get_create_url(),
				'thumbnail' => static::get_site_editor_thumbnail_url(),
			],
			'tooltip_data' => static::get_site_editor_tooltip_data(),
		];
	}

	public static function get_editor_panel_config() {
		$panel_config = parent::get_editor_panel_config();
		$document_config = static::get_properties();

		if ( true === $document_config['support_site_editor'] ) {
			$panel_config['messages']['publish_notification'] = esc_html__( 'Congrats! Your Site Part is Live', 'elementor-pro' );
		}

		return $panel_config;
	}

	protected function get_have_a_look_url() {
		$document_config = static::get_properties();

		if ( true === $document_config['support_site_editor'] ) {
			return '';
		}

		return parent::get_have_a_look_url();
	}

	public static function get_create_url() {
		$base_create_url = Plugin::elementor()->documents->get_create_new_post_url( Source_Local::CPT );

		return add_query_arg( [ 'template_type' => static::get_type() ], $base_create_url );
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => '',
			'content' => '',
			'tip' => '',
			'video_url' => '',
		];
	}

	public function get_name() {
		return static::get_type();
	}

	public function get_location_label() {
		$location = $this->get_location();
		$locations_settings = Module::instance()->get_locations_manager()->get_location( $location );
		$label = '';
		$is_section_doc_type = 'section' === $this->get_name();

		if ( $location ) {
			if ( $is_section_doc_type ) {
				$label .= isset( $locations_settings['label'] ) ? $locations_settings['label'] : $location;
			}
		}

		$supported = true;

		if ( $is_section_doc_type ) {
			if ( $location && ! $locations_settings ) {
				$supported = false;
			}
		} elseif ( ! $location || ! $locations_settings ) {
			$supported = false;
		}

		if ( ! $supported ) {
			$label .= ' (' . esc_html__( 'Unsupported', 'elementor-pro' ) . ')';
		}

		return $label;
	}

	public function before_get_content() {
		$preview_manager = Module::instance()->get_preview_manager();
		$preview_manager->switch_to_preview_query();
	}

	public function after_get_content() {
		$preview_manager = Module::instance()->get_preview_manager();
		$preview_manager->restore_current_query();
	}

	public function get_content( $with_css = false ) {
		$this->before_get_content();

		$content = parent::get_content( $with_css );

		$this->after_get_content();

		return $content;
	}

	public function print_content() {
		$plugin = Plugin::elementor();

		if ( $plugin->preview->is_preview_mode( $this->get_main_id() ) ) {
			// PHPCS - the method builder_wrapper is safe.
			echo $plugin->preview->builder_wrapper( '' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		} else {
			// PHPCS - the method get_content is safe.
			echo $this->get_content(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}
	}

	public static function get_preview_as_default() {
		return '';
	}

	public static function get_preview_as_options() {
		return [];
	}

	public function get_container_attributes() {
		$attributes = parent::get_container_attributes();

		$location = Module::instance()->get_locations_manager()->get_current_location();

		if ( $location ) {
			$attributes['class'] .= ' elementor-location-' . $location;
		}

		return $attributes;
	}

	/**
	 * @static
	 * @since  2.0.0
	 * @access public
	 *
	 * @return string
	 */
	public function get_edit_url() {
		$url = parent::get_edit_url();

		if ( isset( $_GET['action'] ) && 'elementor_new_post' === $_GET['action'] ) {
			$url .= '#library';
		}

		return $url;

	}

	public function get_export_summary() {
		$summary = parent::get_export_summary();

		$summary['location'] = $this->get_location();

		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		$conditions = $theme_builder->get_conditions_manager()->get_document_conditions( $this );

		foreach ( $conditions as $condition ) {
			if ( 'include' === $condition['type'] && ! $condition['sub_id'] ) {
				$summary['conditions'][] = $condition;

				break;
			}
		}

		return $summary;
	}

	public function import( array $data ) {
		parent::import( $data );

		/** @var Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		$condition = $data['import_settings']['conditions'][0];

		$condition = rtrim( implode( '/', $condition ), '/' );

		$conflicts = $theme_builder->get_conditions_manager()->get_conditions_conflicts_by_location( $condition, $this->get_location() );

		if ( $conflicts ) {
			/** @var Import_Export_Module $import_export_module */
			$import_export_module = Plugin::elementor()->app->get_component( 'import-export' );

			$override_conditions = $import_export_module->import->get_settings( 'overrideConditions' );

			if ( ! $override_conditions || ! in_array( $data['id'], $override_conditions, true ) ) {
				return;
			}

			foreach ( $conflicts as $template ) {
				/** @var Theme_Document $template_document */
				$template_document = Plugin::elementor()->documents->get( $template['template_id'] );

				$template_conditions = $theme_builder->get_conditions_manager()->get_document_conditions( $template_document );

				foreach ( $template_conditions as $index => $template_condition ) {
					if ( ! $template_conditions['sub_id'] && ! $template_conditions['sub_name'] ) {
						unset( $template_conditions[ $index ] );
					}
				}

				$theme_builder->get_conditions_manager()->save_conditions( $template_document->get_main_id(), $template_conditions );
			}
		}

		$theme_builder->get_conditions_manager()->save_conditions( $this->get_main_id(), $data['import_settings']['conditions'] );
	}

	protected function register_controls() {
		parent::register_controls();

		$this->start_controls_section(
			'preview_settings',
			[
				'label' => esc_html__( 'Preview Settings', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_SETTINGS,
			]
		);

		$this->add_control(
			'preview_type',
			[
				'label' => esc_html__( 'Preview Dynamic Content as', 'elementor-pro' ),
				'label_block' => true,
				'type' => Controls_Manager::SELECT,
				'default' => $this::get_preview_as_default(),
				'groups' => $this::get_preview_as_options(),
				'export' => false,
			]
		);

		$this->add_control(
			'preview_id',
			[
				'type' => QueryModule::QUERY_CONTROL_ID,
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_JS,
				],
				'separator' => 'none',
				'export' => false,
				'condition' => [
					'preview_type!' => [
						'',
						'search',
					],
				],
			]
		);

		$this->add_control(
			'preview_search_term',
			[
				'label' => esc_html__( 'Search Term', 'elementor-pro' ),
				'export' => false,
				'condition' => [
					'preview_type' => 'search',
				],
			]
		);

		$this->add_control(
			'apply_preview',
			[
				'type' => Controls_Manager::BUTTON,
				'label' => esc_html__( 'Apply & Preview', 'elementor-pro' ),
				'label_block' => true,
				'show_label' => false,
				'text' => esc_html__( 'Apply & Preview', 'elementor-pro' ),
				'separator' => 'none',
				'event' => 'elementorThemeBuilder:ApplyPreview',
			]
		);

		$this->end_controls_section();

		$this->inject_html_tag_control();
	}

	/**
	 * @since 2.9.0
	 *
	 * If the implementing document uses optional wrapper HTML tags, this method injects the control to choose the tag
	 */
	private function inject_html_tag_control() {
		$wrapper_tags = $this->get_wrapper_tags();

		// Only proceed if the implementing document has optional wrapper HTML tags to replace 'div'
		if ( ! $wrapper_tags ) {
			return;
		}

		// Add 'div' to the beginning of the list of wrapper tags
		array_unshift( $wrapper_tags, 'div' );

		/**
		 * Inject the control that sets the HTML tag for the header/footer wrapper element
		 */
		$this->start_injection( [
			'of' => 'post_status',
			'fallback' => [
				'of' => 'post_title',
			],
		] );

		$this->add_control(
			'content_wrapper_html_tag',
			[
				'label' => esc_html__( 'HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'div',
				'options' => array_combine( $wrapper_tags, $wrapper_tags ),
			]
		);

		$this->end_injection();
	}

	/**
	 * @param null $elements_data
	 * @since 2.9.0
	 * @access public
	 *
	 * Overwrite method from document.php to check for user-selected tags to use as the document wrapper element
	 */
	public function print_elements_with_wrapper( $elements_data = null ) {
		// Check if the implementing document has optional wrapper tags
		$has_wrapper_tags = $this->get_wrapper_tags();
		$settings = $this->get_settings_for_display();
		$wrapper_tag = 'div';

		// Only proceed if the inheriting document has optional wrapper HTML tags to replace 'div'
		if ( $has_wrapper_tags ) {
			$wrapper_tag = $settings['content_wrapper_html_tag'];
		}

		if ( ! $elements_data ) {
			$elements_data = $this->get_elements_data();
		}
		?>
		<<?php Utils::print_validated_html_tag( $wrapper_tag ); ?> <?php Utils::print_html_attributes( $this->get_container_attributes() ); ?>>
		<div class="elementor-section-wrap">
			<?php $this->print_elements( $elements_data ); ?>
		</div>
		</<?php Utils::print_validated_html_tag( $wrapper_tag ); ?>>
		<?php
	}

	public function get_wrapper_tags() {
		// 'div' is added later, no need to include it in this list
		return [
			'main',
			'article',
			'header',
			'footer',
			'section',
			'aside',
			'nav',
		];
	}

	public function get_elements_raw_data( $data = null, $with_html_content = false ) {
		$preview_manager = Module::instance()->get_preview_manager();

		$preview_manager->switch_to_preview_query();

		$editor_data = parent::get_elements_raw_data( $data, $with_html_content );

		$preview_manager->restore_current_query();

		return $editor_data;
	}

	public function render_element( $data ) {
		$preview_manager = Module::instance()->get_preview_manager();

		$preview_manager->switch_to_preview_query();

		$render_html = parent::render_element( $data );

		$preview_manager->restore_current_query();

		return $render_html;
	}

	public function get_wp_preview_url() {
		// Ajax request from editor.
		// PHPCS - the method is safe - just retrieving a value.
		if ( ! empty( $_POST['initial_document_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
			return parent::get_wp_preview_url();
		}

		$preview_id = (int) $this->get_settings( 'preview_id' );
		$post_id = $this->get_main_id();

		list( $preview_category, $preview_object_type ) = array_pad( explode( '/', $this->get_settings( 'preview_type' ) ), 2, '' );

		$home_url = trailingslashit( home_url() );

		switch ( $preview_category ) {
			case 'archive':
				switch ( $preview_object_type ) {
					case 'author':
						if ( empty( $preview_id ) ) {
							$preview_id = get_current_user_id();
						}
						$preview_url = get_author_posts_url( $preview_id );
						break;
					case 'date':
						$preview_url = add_query_arg( 'year', gmdate( 'Y' ), $home_url );
						break;
				}
				break;
			case 'search':
				$preview_url = add_query_arg( 's', $this->get_settings( 'preview_search_term' ), $home_url );
				break;
			case 'taxonomy':
				$term = get_term( $preview_id );

				if ( $term && ! is_wp_error( $term ) ) {
					$preview_url = get_term_link( $preview_id );
				}

				break;
			case 'page':
				switch ( $preview_object_type ) {
					case 'home':
						$preview_url = get_post_type_archive_link( 'post' );
						break;
					case 'front':
						$preview_url = $home_url;
						break;
					case '404':
						$preview_url = add_query_arg( 'p', '-1', $home_url );
						break;
				}
				break;
			case 'post_type_archive':
				$post_type = $preview_object_type;
				if ( post_type_exists( $post_type ) ) {
					$preview_url = get_post_type_archive_link( $post_type );
				}
				break;
			case 'single':
				$post = get_post( $preview_id );
				if ( $post ) {
					$preview_url = get_permalink( $post );
				}
				break;
		} // End switch().

		if ( empty( $preview_url ) ) {
			$preview_url = $this->get_permalink();
		}

		$query_args = [
			'preview' => true,
			'preview_nonce' => wp_create_nonce( 'post_preview_' . $post_id ),
			'theme_template_id' => $post_id,
		];

		$preview_url = set_url_scheme( add_query_arg( $query_args, $preview_url ) );

		/**
		 * Document "WordPress preview" URL.
		 *
		 * Filters the WordPress preview URL.
		 *
		 * @since 2.0.0
		 *
		 * @param Theme_Document $this An instance of the theme document.
		 */
		$preview_url = apply_filters( 'elementor/document/wp_preview_url', $preview_url, $this );

		return $preview_url;
	}

	public function get_preview_as_query_args() {
		$preview_id = (int) $this->get_settings( 'preview_id' );

		list( $preview_category, $preview_object_type ) = array_pad( explode( '/', $this->get_settings( 'preview_type' ) ), 2, '' );

		switch ( $preview_category ) {
			case 'archive':
				switch ( $preview_object_type ) {
					case 'author':
						if ( empty( $preview_id ) ) {
							$preview_id = get_current_user_id();
						}

						$query_args = [
							'author' => $preview_id,
						];
						break;
					case 'date':
						$query_args = [
							'year' => gmdate( 'Y' ),
						];
						break;
					case 'recent_posts':
						$query_args = [
							'post_type' => 'post',
						];
						break;
				}
				break;
			case 'search':
				$query_args = [
					's' => $this->get_settings( 'preview_search_term' ),
				];
				break;
			case 'taxonomy':
				$term = get_term( $preview_id );

				if ( $term && ! is_wp_error( $term ) ) {
					$query_args = [
						'tax_query' => [
							[
								'taxonomy' => $term->taxonomy,
								'terms' => [ $preview_id ],
								'field' => 'id',
							],
						],
					];
				}
				break;
			case 'page':
				switch ( $preview_object_type ) {
					case 'home':
						$query_args = [];
						break;
					case 'front':
						$query_args = [
							'p' => get_option( 'page_on_front' ),
							'post_type' => 'page',
						];
						break;
					case '404':
						$query_args = [
							'p' => -1,
						];
						break;
				}
				break;
			case 'post_type_archive':
				$post_type = $preview_object_type;
				if ( post_type_exists( $post_type ) ) {
					$query_args = [
						'post_type' => $post_type,
					];
				}
				break;
			case 'single':
				$post = get_post( $preview_id );
				if ( ! $post ) {
					break;
				}

				$query_args = [
					'p' => $post->ID,
					'post_type' => $post->post_type,
				];
		} // End switch().

		if ( empty( $query_args ) ) {
			$query_args = [
				'p' => $this->get_main_id(),
				'post_type' => $this->get_main_post()->post_type,
			];
		}

		return $query_args;
	}

	public function after_preview_switch_to_query() {
		global $wp_query;
		if ( 'archive/recent_posts' === $this->get_settings( 'preview_type' ) ) {
			$wp_query->is_archive = true;
		}
	}

	public function get_location() {
		$value = self::get_property( 'location' );
		if ( ! $value ) {
			$value = $this->get_main_meta( self::LOCATION_META_KEY );
		}

		return $value;
	}

	public function get_initial_config() {
		$config = parent::get_initial_config();

		$config['support_site_editor'] = static::get_property( 'support_site_editor' );

		return $config;
	}
}
PK!�T�

+modules/theme-builder/documents/section.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use Elementor\Controls_Manager;
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Section extends Theme_Section_Document {

	public function get_name() {
		return 'section';
	}

	public static function get_type() {
		return 'section';
	}

	public static function get_title() {
		return esc_html__( 'Section', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Sections', 'elementor-pro' );
	}

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['admin_tab_group'] = 'library';
		$properties['support_site_editor'] = false;

		return $properties;
	}

	protected function register_controls() {
		parent::register_controls();

		Module::instance()->get_locations_manager()->register_locations();

		$locations = Module::instance()->get_locations_manager()->get_locations( [
			'public' => true,
		] );

		if ( empty( $locations ) ) {
			return;
		}

		$this->start_controls_section(
			'location_settings',
			[
				'label' => esc_html__( 'Location Settings', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_SETTINGS,
			]
		);

		$options = [
			'' => esc_html__( 'Select', 'elementor-pro' ),
		];

		foreach ( $locations as $location => $settings ) {
			$options[ $location ] = $settings['label'];
		}

		$this->add_control(
			'location',
			[
				'label' => esc_html__( 'Location', 'elementor-pro' ),
				'label_block' => true,
				'type' => Controls_Manager::SELECT,
				'default' => $this->get_location(),
				'save_default' => true,
				'options' => $options,
			]
		);

		$this->add_control(
			'apply_location',
			[
				'type' => Controls_Manager::BUTTON,
				'label' => '',
				'text' => esc_html__( 'Apply', 'elementor-pro' ),
				'separator' => 'none',
				'event' => 'elementorThemeBuilder:ApplyPreview',
			]
		);

		$this->end_controls_section();
	}

	public function get_export_data() {
		$data = parent::get_export_data();

		$data['location'] = $this->get_location();

		return $data;
	}

	public function save_settings( $settings ) {
		if ( isset( $settings['location'] ) ) {
			if ( empty( $settings['location'] ) ) {
				$this->delete_main_meta( '_elementor_location' );
			} else {
				$this->update_main_meta( '_elementor_location', $settings['location'] );
				unset( $settings['location'] );
			}
			Module::instance()->get_conditions_manager()->get_cache()->regenerate();
		}

		parent::save_settings( $settings );
	}
}
PK!046D&&/modules/theme-builder/documents/single-post.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Single_Post extends Single_Base {

	public static function get_type() {
		return 'single-post';
	}

	public static function get_title() {
		return esc_html__( 'Single Post', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Single Posts', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-single-post';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Single Post Template?', 'elementor-pro' ),
			'content' => esc_html__( 'A single post template allows you to easily design the layout and style of posts, ensuring a design consistency throughout all your blog posts, for example.', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple single post templates, and assign each to a different category.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-post',
			'video_url' => 'https://www.youtube.com/embed/8Fk-Edu7DL0',
		];
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = 'single post';

		return $config;
	}
}
PK!]�Ⱦ�+modules/theme-builder/documents/archive.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive extends Archive_Single_Base {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'archive';
		$properties['condition_type'] = 'archive';

		return $properties;
	}

	public static function get_type() {
		return 'archive';
	}

	public static function get_title() {
		return esc_html__( 'Archive', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Archives', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-archive';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is an Archive Template?', 'elementor-pro' ),
			'content' => esc_html__( 'An archive template allows you to easily design the layout and style of archive pages - those pages that show a list of posts (e.g. a blog’s list of recent posts), which may be filtered by terms such as authors, categories, tags, search results, etc.', 'elementor-pro' ),
			'tip' => esc_html__( 'If you’d like a different style for a specific category, it’s easy to create a separate archive template whose condition is to only display when users are viewing that category’s list of posts.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-archive',
			'video_url' => 'https://www.youtube.com/embed/wxElpEh9bfA',
		];
	}

	protected static function get_editor_panel_categories() {
		$categories = [
			'theme-elements-archive' => [
				'title' => esc_html__( 'Archive', 'elementor-pro' ),
			],
		];

		return $categories + parent::get_editor_panel_categories();
	}

	public static function get_preview_as_default() {
		return 'archive/recent_posts';
	}

	public static function get_preview_as_options() {
		$post_type_archives = [];

		$taxonomies = [];

		$post_types = Module::get_public_post_types();

		foreach ( $post_types as $post_type => $label ) {
			$post_type_object = get_post_type_object( $post_type );

			if ( $post_type_object->has_archive ) {
				$post_type_archives[ 'post_type_archive/' . $post_type ] = sprintf( esc_html__( '%s Archive', 'elementor-pro' ), $post_type_object->label );
			}

			$post_type_taxonomies = get_object_taxonomies( $post_type, 'objects' );

			$post_type_taxonomies = wp_filter_object_list( $post_type_taxonomies, [
				'public' => true,
				'show_in_nav_menus' => true,
			] );

			foreach ( $post_type_taxonomies as $slug => $object ) {
				$taxonomies[ 'taxonomy/' . $slug ] = sprintf( esc_html__( '%s Archive', 'elementor-pro' ), $object->label );
			}
		}

		$options = [
			'archive/recent_posts' => esc_html__( 'Recent Posts', 'elementor-pro' ),
			'archive/date' => esc_html__( 'Date Archive', 'elementor-pro' ),
			'archive/author' => esc_html__( 'Author Archive', 'elementor-pro' ),
			'search' => esc_html__( 'Search Results', 'elementor-pro' ),
		];

		$options += $taxonomies + $post_type_archives;

		return [
			'archive' => [
				'label' => esc_html__( 'Archive', 'elementor-pro' ),
				'options' => $options,
			],
		];
	}
}
PK!+�R/modules/theme-builder/documents/single-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use Elementor\DB;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Single_Base extends Archive_Single_Base {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'single';
		$properties['condition_type'] = 'singular';

		return $properties;
	}

	public static function get_title() {
		return esc_html__( 'Single', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Singles', 'elementor-pro' );
	}

	public static function get_editor_panel_config() {
		$config = parent::get_editor_panel_config();

		$config['widgets_settings']['theme-post-content'] = [
			'show_in_panel' => true,
		];

		return $config;
	}

	protected static function get_editor_panel_categories() {
		$categories = [
			'theme-elements-single' => [
				'title' => esc_html__( 'Single', 'elementor-pro' ),
			],
		];

		return $categories + parent::get_editor_panel_categories();
	}

	public function before_get_content() {
		parent::before_get_content();

		// For `loop_start` hook.
		if ( have_posts() ) {
			the_post();
		}
	}

	public function after_get_content() {
		wp_reset_postdata();

		parent::after_get_content();
	}

	public function get_container_attributes() {
		$attributes = parent::get_container_attributes();

		if ( is_singular() /* Not 404 */ ) {
			$post_classes = get_post_class( '', get_the_ID() );
			$attributes['class'] .= ' ' . implode( ' ', $post_classes );
		}

		return $attributes;
	}

	public function print_content() {
		$requested_post_id = get_the_ID();
		if ( $requested_post_id !== $this->post->ID ) {
			$requested_document = Module::instance()->get_document( $requested_post_id );

			/**
			 * if current requested document is theme-document & it's not a content type ( like header/footer/sidebar )
			 * show a placeholder instead of content.
			 */
			if ( $requested_document && ! $requested_document instanceof Section && $requested_document->get_location() !== $this->get_location() ) {
				echo '<div class="elementor-theme-builder-content-area">' . esc_html__( 'Content Area', 'elementor-pro' ) . '</div>';

				return;
			}
		}

		parent::print_content();
	}

	protected function register_controls() {
		parent::register_controls();

		$post_type = $this->get_main_meta( self::REMOTE_CATEGORY_META_KEY );

		$latest_posts = get_posts( [
			'posts_per_page' => 1,
			'post_type' => $post_type,
		] );

		if ( ! empty( $latest_posts ) ) {
			$this->update_control(
				'preview_type',
				[
					'default' => 'single/' . $post_type,
				]
			);

			$this->update_control(
				'preview_id',
				[
					'default' => $latest_posts[0]->ID,
				]
			);
		}
	}

	public static function get_preview_as_options() {
		$post_types = Module::get_public_post_types();

		$post_types['attachment'] = get_post_type_object( 'attachment' )->label;
		$post_types_options = [];

		foreach ( $post_types as $post_type => $label ) {
			$post_types_options[ 'single/' . $post_type ] = get_post_type_object( $post_type )->labels->singular_name;
		}

		return [
			'single' => [
				'label' => esc_html__( 'Single', 'elementor-pro' ),
				'options' => $post_types_options,
			],
			'page/404' => esc_html__( '404', 'elementor-pro' ),
		];
	}

	public function get_depended_widget() {
		return Plugin::elementor()->widgets_manager->get_widget_types( 'theme-post-content' );
	}

	public function get_elements_data( $status = DB::STATUS_PUBLISH ) {
		$data = parent::get_elements_data();

		if ( Plugin::elementor()->preview->is_preview_mode() && self::get_property( 'location' ) === Module::instance()->get_locations_manager()->get_current_location() ) {
			$has_the_content = false;

			$depended_widget = $this->get_depended_widget();

			Plugin::elementor()->db->iterate_data( $data, function( $element ) use ( &$has_the_content, $depended_widget ) {
				if ( isset( $element['widgetType'] ) && $depended_widget->get_name() === $element['widgetType'] ) {
					$has_the_content = true;
				}
			} );

			if ( ! $has_the_content ) {
				add_action( 'wp_footer', [ $this, 'preview_error_handler' ] );
			}
		}

		return $data;
	}

	public function preview_error_handler() {
		$depended_widget_title = $this->get_depended_widget()->get_title();

		wp_localize_script( 'elementor-frontend', 'elementorPreviewErrorArgs', [
			/* translators: %s: is the widget name. */
			'headerMessage' => sprintf( esc_html__( 'The %s Widget was not found in your template.', 'elementor-pro' ), $depended_widget_title ),
			/* translators: %1$s: is the widget name. %2$s: is the template name.  */
			'message' => sprintf( esc_html__( 'You must include the %1$s Widget in your template (%2$s), in order for Elementor to work on this page.', 'elementor-pro' ), $depended_widget_title, '<strong>' . static::get_title() . '</strong>' ),
			'strings' => [
				'confirm' => esc_html__( 'Edit Template', 'elementor-pro' ),
			],
			'confirmURL' => $this->get_edit_url(),
		] );
	}
}
PK!��kV��*modules/theme-builder/documents/footer.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Footer extends Header_Footer_Base {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['location'] = 'footer';

		return $properties;
	}

	public static function get_type() {
		return 'footer';
	}

	public static function get_title() {
		return esc_html__( 'Footer', 'elementor-pro' );
	}

	public static function get_plural_title() {
		return esc_html__( 'Footers', 'elementor-pro' );
	}

	protected static function get_site_editor_icon() {
		return 'eicon-footer';
	}

	protected static function get_site_editor_tooltip_data() {
		return [
			'title' => esc_html__( 'What is a Footer Template?', 'elementor-pro' ),
			'content' => esc_html__( 'The footer template allows you to easily design and edit custom WordPress footers without the limits of your theme’s footer design constraints', 'elementor-pro' ),
			'tip' => esc_html__( 'You can create multiple footers, and assign each to different areas of your site.', 'elementor-pro' ),
			'docs' => 'https://go.elementor.com/app-theme-builder-footer',
			'video_url' => 'https://www.youtube.com/embed/xa8DoR4tQrY',
		];
	}
}
PK!*V�7modules/theme-builder/documents/theme-page-document.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use Elementor\Controls_Manager;
use Elementor\Core\DocumentTypes\Post;
use Elementor\Modules\PageTemplates\Module as PageTemplatesModule;
use Elementor\TemplateLibrary\Source_Local;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Theme_Page_Document extends Theme_Document {

	/**
	 * Document sub type meta key.
	 */
	const REMOTE_CATEGORY_META_KEY = '_elementor_template_sub_type';

	public function get_css_wrapper_selector() {
		return 'body.elementor-page-' . $this->get_main_id();
	}

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['support_wp_page_templates'] = true;

		return $properties;
	}

	protected function register_controls() {
		parent::register_controls();

		$this->start_injection( [
			'of' => 'post_status',
			'fallback' => [
				'of' => 'post_title',
			],
		] );

		$this->add_control(
			'page_template',
			[
				'label' => esc_html__( 'Page Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					PageTemplatesModule::TEMPLATE_CANVAS => esc_html__( 'Elementor Canvas', 'elementor-pro' ),
					PageTemplatesModule::TEMPLATE_HEADER_FOOTER => esc_html__( 'Elementor Full Width', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'page_template_default_description',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'Default Page Template from your theme', 'elementor-pro' ),
				'separator' => 'none',
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'page_template' => 'default',
				],
			]
		);

		$this->add_control(
			'page_template_canvas_description',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'No header, no footer, just Elementor', 'elementor-pro' ),
				'separator' => 'none',
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'page_template' => PageTemplatesModule::TEMPLATE_CANVAS,
				],
			]
		);

		$this->add_control(
			'page_template_header_footer_description',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'This template includes the header, full-width content and footer', 'elementor-pro' ),
				'separator' => 'none',
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'page_template' => PageTemplatesModule::TEMPLATE_HEADER_FOOTER,
				],
			]
		);

		$this->end_injection();

		Post::register_style_controls( $this );
	}

	/**
	 * Add body classes.
	 *
	 * Add the body classes for the `style` controls selector.
	 *
	 * @param $body_classes
	 *
	 * @return array
	 */
	public function filter_body_classes( $body_classes ) {
		// Indicator for edit/preview an `archive` document, so it's a `single` elementor_library post - but need a behavior like an archive.
		$is_archive_template = 'archive' === Source_Local::get_template_type( get_the_ID() );

		$add_body_class = false;

		if ( $this instanceof Archive && ( is_archive() || is_search() || is_home() || $is_archive_template ) ) {
			$add_body_class = true;
		} elseif ( $this instanceof Single_Base && ( is_singular() || is_404() ) && ! $is_archive_template ) {
			$add_body_class = true;
		}

		if ( $add_body_class ) {
			$body_classes[] = 'elementor-page-' . $this->get_main_id();
		}

		return $body_classes;
	}

	public function __construct( array $data = [] ) {
		if ( $data ) {
			add_filter( 'body_class', [ $this, 'filter_body_classes' ] );
		}

		parent::__construct( $data );
	}
}
PK!�a6modules/theme-builder/documents/header-footer-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

use Elementor\Core\DocumentTypes\Post;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Header_Footer_Base extends Theme_Section_Document {

	public function get_css_wrapper_selector() {
		return '.elementor-' . $this->get_main_id();
	}

	protected static function get_editor_panel_categories() {
		// Move to top as active.
		$categories = [
			'theme-elements' => [
				'title' => esc_html__( 'Site', 'elementor-pro' ),
				'active' => true,
			],
		];

		return $categories + parent::get_editor_panel_categories();
	}

	protected function register_controls() {
		parent::register_controls();

		Post::register_style_controls( $this );

		$this->update_control(
			'section_page_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
			]
		);
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = $this->get_name();

		return $config;
	}
}
PK!�0shh:modules/theme-builder/documents/theme-section-document.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Documents;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Theme_Section_Document extends Theme_Document {

	public static function get_properties() {
		$properties = parent::get_properties();

		$properties['condition_type'] = 'general';

		return $properties;
	}

	protected static function get_site_editor_layout() {
		return 'strip';
	}

	public static function get_preview_as_default() {
		return '';
	}

	public static function get_preview_as_options() {
		return array_merge(
			[
				'' => esc_html__( 'Select...', 'elementor-pro' ),
			],
			Archive::get_preview_as_options(),
			Single::get_preview_as_options()
		);
	}

	protected function get_remote_library_config() {
		$config = parent::get_remote_library_config();

		$config['category'] = '';

		return $config;
	}
}
PK!!uT)��:modules/theme-builder/skins/posts-archive-skin-classic.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Skins;

use ElementorPro\Modules\Posts\Skins\Skin_Classic;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Posts_Archive_Skin_Classic extends Skin_Classic {
	use Posts_Archive_Skin_Base;

	protected function _register_controls_actions() {
		add_action( 'elementor/element/archive-posts/section_layout/before_section_end', [ $this, 'register_controls' ] );
		add_action( 'elementor/element/archive-posts/section_layout/after_section_end', [ $this, 'register_style_sections' ] );
	}

	public function get_id() {
		return 'archive_classic';
	}

	public function get_title() {
		return esc_html__( 'Classic', 'elementor-pro' );
	}

	public function get_container_class() {
		// Use parent class and parent css.
		return 'elementor-posts--skin-classic';
	}

	/* Remove `posts_per_page` control */
	protected function register_post_count_control(){}
}
PK!QfQ��7modules/theme-builder/skins/posts-archive-skin-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Skins;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

trait Posts_Archive_Skin_Base {

	public function render() {
		$this->parent->query_posts();

		$wp_query = $this->parent->get_query();

		if ( ! $wp_query->found_posts ) {
			$this->render_loop_header();

			$should_escape = apply_filters( 'elementor_pro/theme_builder/archive/escape_nothing_found_message', true );

			$message = $this->parent->get_settings_for_display( 'nothing_found_message' );
			if ( $should_escape ) {
				$message = esc_html( $message );
			}

			?>
				<div class="elementor-posts-nothing-found">
					<?php
						// PHPCS - escaped before if should escape
						echo $message; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					?>
				</div>
			<?php

			$this->render_loop_footer();

			return;
		}

		parent::render();
	}
}
PK!�a9338modules/theme-builder/skins/posts-archive-skin-cards.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Skins;

use ElementorPro\Modules\Posts\Skins\Skin_Cards;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Posts_Archive_Skin_Cards extends Skin_Cards {
	use Posts_Archive_Skin_Base;

	protected function _register_controls_actions() {
		add_action( 'elementor/element/archive-posts/section_layout/before_section_end', [ $this, 'register_controls' ] );
		add_action( 'elementor/element/archive-posts/section_layout/after_section_end', [ $this, 'register_style_sections' ] );
		add_action( 'elementor/element/archive-posts/archive_cards_section_design_image/before_section_end', [ $this, 'register_additional_design_image_controls' ] );
	}

	public function get_id() {
		return 'archive_cards';
	}

	public function get_title() {
		return esc_html__( 'Cards', 'elementor-pro' );
	}

	public function get_container_class() {
		// Use parent class and parent css.
		return 'elementor-posts--skin-cards';
	}

	/* Remove `posts_per_page` control */
	protected function register_post_count_control(){}
}
PK!d}��0�0:modules/theme-builder/skins/post-comments-skin-classic.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Skins;

use Elementor\Skin_Base;
use Elementor\Controls_Manager;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use Elementor\Core\Schemes\Color;
use Elementor\Core\Schemes\Typography;
use Elementor\Utils;
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Comments_Skin_Classic extends Skin_Base {

	public function get_id() {
		return 'skin-classic';
	}

	public function get_title() {
		return 'Skin Classic';
	}

	protected function _register_controls_actions() {
		add_action( 'elementor/element/post-comments/section_content/after_section_end', [ $this, 'register_controls' ] );
	}

	public function register_controls() {
		$this->start_controls_section(
			'section_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'default' => '[field id="comment-count"]',
				'label_block' => true,
				'dynamic' => [
					'types' => [
						'text',
					],
					'apply_on' => 'value',
					'allow_free_text' => true,
					'allow_multiple' => true,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_gravatar',
			[
				'label' => esc_html__( 'Gravatar', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Comments', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => '10',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'row_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .elementor-comment' => 'background-color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'row_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment' => 'border-color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'row_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'placeholder' => '1',
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'row_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_meta_style',
			[
				'label' => esc_html__( 'Meta', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'meta_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => '0',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-meta' => 'padding-bottom: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'meta_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-meta' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'meta_typography',
				'selector' => '{{WRAPPER}} .elementor-comment .comment-meta',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'content_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-content' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content__typography',
				'selector' => '{{WRAPPER}} .elementor-comment .comment-content',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_reply_button_style',
			[
				'label' => esc_html__( 'Reply Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'tabs_reply_button_style' );

		$this->start_controls_tab(
			'tab_reply_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'reply_button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'reply_button_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-comment .comment-reply-link',
			]
		);

		$this->add_control(
			'reply_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(), [
				'name' => 'reply_button_border',
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'placeholder' => '1px',
				'default' => '1px',
				'selector' => '{{WRAPPER}} .elementor-comment .comment-reply-link',
			]
		);

		$this->add_control(
			'reply_button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'reply_button_text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_reply_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'reply_button_background_hover_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'reply_button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-comment .comment-reply-link:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					$this->get_control_id( 'reply_button_border_border!' ) => '',
				],
			]
		);

		$this->add_control(
			'reply_button_hover_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}

	public function render() {

		Module::instance()->get_preview_manager()->switch_to_preview_query();

		// Hack to remove template comment form
		$comments_template_callback = function() {
			return __DIR__ . '/../views/comments-template.php';
		};

		add_filter( 'comments_template', $comments_template_callback );

		// The `comments_template` doesn't has an API to pass current widget instance, so make it global
		$GLOBALS['post_comment_skin_classic'] = $this;

		comments_template();

		remove_filter( 'comments_template', $comments_template_callback );

		unset( $GLOBALS['post_comment_skin_classic'] );

		Module::instance()->get_preview_manager()->restore_current_query();
	}

	public function comment_callback( $comment, $args, $depth ) {
		$tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
		$class = 'elementor-comment';
		if ( ! empty( $args['has_children'] ) ) {
			$class .= ' parent';
		}
		?>
		<<?php Utils::print_validated_html_tag( $tag ); ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $class, $comment ); ?>>
		<article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
			<footer class="comment-meta">
				<div class="comment-author vcard">
					<?php
					if ( 0 < $args['avatar_size'] ) {
						echo get_avatar( $comment, $args['avatar_size'] );
					}
					?>
					<?php
					printf(
						/* translators: 1: Comment author link, 2: Span open tag, 3: Span closing tag. */
						esc_html__( '%1$s %2$ssays:%3$s', 'elementor-pro' ),
						sprintf( '<b class="fn">%s</b>', get_comment_author_link( $comment ) ),
						'<span class="says">',
						'</span>'
					);
					?>
				</div><!-- .comment-author -->

				<div class="comment-metadata">
					<a href="<?php echo esc_url( get_comment_link( $comment, $args ) ); ?>">
						<time datetime="<?php comment_time( 'c' ); ?>">
							<?php
							/* translators: 1: Comment date, 2: Comment time. */
							wp_kses_post( sprintf( esc_html__( '%1$s at %2$s', 'elementor-pro' ), get_comment_date( '', $comment ), get_comment_time() ) );
							?>
						</time>
					</a>
					<?php edit_comment_link( esc_html__( 'Edit', 'elementor-pro' ), '<span class="edit-link">', '</span>' ); ?>
				</div><!-- .comment-metadata -->

				<?php if ( '0' == $comment->comment_approved ) : ?>
					<p class="comment-awaiting-moderation"><?php esc_html_e( 'Your comment is awaiting moderation.', 'elementor-pro' ); ?></p>
				<?php endif; ?>
			</footer><!-- .comment-meta -->

			<div class="comment-content">
				<?php comment_text(); ?>
			</div><!-- .comment-content -->

			<?php
			comment_reply_link( array_merge( $args, [
				'add_below' => 'div-comment',
				'depth' => $depth,
				'max_depth' => $args['max_depth'],
				'before' => '<div class="reply">',
				'after' => '</div>',
			] ) );
			?>
		</article><!-- .comment-body -->
		</<?php Utils::print_validated_html_tag( $tag ); ?>>
		<?php
	}
}
PK!iX��		?modules/theme-builder/skins/posts-archive-skin-full-content.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Skins;

use ElementorPro\Modules\Posts\Skins\Skin_Full_Content;
use ElementorPro\Modules\Posts\Skins\Skin_Content_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Posts_Archive_Skin_Full_Content extends Skin_Full_Content {
	use Skin_Content_Base;
	use Posts_Archive_Skin_Base;

	public function get_id() {
		return 'archive_full_content';
	}

	/* Remove `posts_per_page` control */
	protected function register_post_count_control(){}
}
PK!Gm6modules/theme-builder/assets/images/conditions-tab.svgnu�[���<?xml version="1.0" encoding="UTF-8"?>
<svg width="48px" height="48px" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <path d="M31.6255378,12.1221401 L31.6341569,18.93599 C31.6350386,19.6330181 31.071146,20.1990205 30.3741195,20.2007419 L19.4952319,20.2276087 C19.0068974,20.2288147 18.6100464,19.833919 18.6088404,19.3455845 C18.6080727,19.0347203 18.770606,18.7462889 19.0369148,18.5859244 L30.6681498,11.5818844 C30.966966,11.4019447 31.3550743,11.4983132 31.5350139,11.7971294 C31.5941018,11.8952534 31.6253929,12.0075989 31.6255378,12.1221401 Z" fill="#F1F3F5"></path>
        <path d="M41.7191752,32.3361377 L41.7277943,39.1499877 C41.728676,39.8470158 41.1647835,40.4130181 40.4677569,40.4147395 L29.5888693,40.4416063 C29.1005348,40.4428123 28.7036838,40.0479166 28.7024778,39.5595821 C28.7017101,39.2487179 28.8642435,38.9602865 29.1305522,38.799922 L40.7617872,31.795882 C41.0606034,31.6159423 41.4487117,31.7123108 41.6286514,32.011127 C41.6877392,32.109251 41.7190304,32.2215966 41.7191752,32.3361377 Z" fill="#F1F3F5"></path>
        <path d="M21.5086489,32.3361377 L21.517268,39.1499877 C21.5181497,39.8470158 20.9542571,40.4130181 20.2572306,40.4147395 L9.378343,40.4416063 C8.8900085,40.4428123 8.49315752,40.0479166 8.49195151,39.5595821 C8.49118379,39.2487179 8.65371715,38.9602865 8.9200259,38.799922 L20.5512609,31.795882 C20.8500771,31.6159423 21.2381854,31.7123108 21.4181251,32.011127 C21.4772129,32.109251 21.508504,32.2215966 21.5086489,32.3361377 Z" fill="#F1F3F5"></path>
        <path d="M18.9473684,11.2421053 L30.3157895,11.2421053" stroke="#71D7F7" stroke-width="1.64210526"></path>
        <rect stroke="#A4AFB7" stroke-width="1.64210526" x="18.5052632" y="9.66315789" width="12.2526316" height="9.72631579" rx="1.26315789"></rect>
        <path d="M8.84210526,31.4526316 L20.2105263,31.4526316" stroke="#71D7F7" stroke-width="1.64210526"></path>
        <rect stroke="#A4AFB7" stroke-width="1.64210526" x="8.4" y="29.8736842" width="12.2526316" height="9.72631579" rx="1.26315789"></rect>
        <path d="M29.0526316,31.4526316 L40.4210526,31.4526316" stroke="#71D7F7" stroke-width="1.64210526"></path>
        <rect stroke="#A4AFB7" stroke-width="1.64210526" x="28.6105263" y="29.8736842" width="12.2526316" height="9.72631579" rx="1.26315789"></rect>
        <path d="M14.5263158,30.3157895 L14.5263158,25.8947368 C14.5263158,25.197114 15.0918508,24.6315789 15.7894737,24.6315789 L33.4736842,24.6315789 C34.1713071,24.6315789 34.7368421,25.197114 34.7368421,25.8947368 L34.7368421,30.3157895" stroke="#A4AFB7" stroke-width="1.64210526"></path>
        <path d="M24.6315789,18.9473684 L24.6315789,24" stroke="#A4AFB7" stroke-width="1.64210526"></path>
    </g>
</svg>PK!���>>/modules/theme-builder/classes/theme-support.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Modules\ThemeBuilder\ThemeSupport\GeneratePress_Theme_Support;
use ElementorPro\Modules\ThemeBuilder\ThemeSupport\Safe_Mode_Theme_Support;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Theme_Support {

	public function __construct() {
		add_action( 'init', [ $this, 'init' ] );
	}

	public function init() {
		$theme = wp_get_theme();

		switch ( $theme->get_template() ) {
			case 'generatepress':
				new GeneratePress_Theme_Support();
				break;
			case 'elementor-safe':
				new Safe_Mode_Theme_Support();
				break;
		}

		add_action( 'elementor/theme/register_locations', [ $this, 'after_register_locations' ], 99 );
	}

	/**
	 * @param Locations_Manager $location_manager
	 */
	public function after_register_locations( $location_manager ) {
		$core_locations = $location_manager->get_core_locations();
		$overwrite_header_location = false;
		$overwrite_footer_location = false;

		foreach ( $core_locations as $location => $settings ) {
			if ( ! $location_manager->get_location( $location ) ) {
				if ( 'header' === $location ) {
					$overwrite_header_location = true;
				} elseif ( 'footer' === $location ) {
					$overwrite_footer_location = true;
				}
				$location_manager->register_core_location( $location, [
					'overwrite' => true,
				] );
			}
		}

		if ( $overwrite_header_location || $overwrite_footer_location ) {
			/** @var Module $theme_builder_module */
			$theme_builder_module = Module::instance();

			$conditions_manager = $theme_builder_module->get_conditions_manager();

			$headers = $conditions_manager->get_documents_for_location( 'header' );
			$footers = $conditions_manager->get_documents_for_location( 'footer' );

			if ( ! empty( $headers ) || ! empty( $footers ) ) {
				add_action( 'get_header', [ $this, 'get_header' ] );
				add_action( 'get_footer', [ $this, 'get_footer' ] );
				add_filter( 'show_admin_bar', [ $this, 'filter_admin_bar_from_body_open' ] );
			}
		}
	}

	public function get_header( $name ) {
		require __DIR__ . '/../views/theme-support-header.php';

		$templates = [];
		$name = (string) $name;
		if ( '' !== $name ) {
			$templates[] = "header-{$name}.php";
		}

		$templates[] = 'header.php';

		// Avoid running wp_head hooks again
		remove_all_actions( 'wp_head' );
		ob_start();
		// It cause a `require_once` so, in the get_header it self it will not be required again.
		locate_template( $templates, true );
		ob_get_clean();
	}

	/**
	 * Don't show admin bar on `wp_body_open` because the theme header HTML is ignored via `$this->get_header()`.
	 *
	 * @param bool $show_admin_bar
	 *
	 * @return bool
	 */
	public function filter_admin_bar_from_body_open( $show_admin_bar ) {
		global $wp_current_filter;

		// A flag to mark if $show_admin_bar is switched to false during this filter,
		// if so, it needed to switch back on the next filter (wp_footer).
		static $switched = false;

		if ( $show_admin_bar && in_array( 'wp_body_open', $wp_current_filter ) ) {
			$show_admin_bar = false;
			$switched = true;
		} elseif ( $switched ) {
			$show_admin_bar = true;
		}

		return $show_admin_bar;
	}

	public function get_footer( $name ) {
		require __DIR__ . '/../views/theme-support-footer.php';

		$templates = [];
		$name = (string) $name;
		if ( '' !== $name ) {
			$templates[] = "footer-{$name}.php";
		}

		$templates[] = 'footer.php';

		ob_start();
		// It cause a `require_once` so, in the get_header it self it will not be required again.
		locate_template( $templates, true );
		ob_get_clean();
	}
}
PK!��RL		1modules/theme-builder/classes/preview-manager.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Preview_Manager {

	public function __construct() {
		add_filter( 'elementor/query/get_query_args/current_query', [ $this, 'filter_query_control_args' ] );
		add_filter( 'elementor/theme/posts_archive/query_posts/query_vars', [ $this, 'filter_query_control_args' ] );
		add_filter( 'elementor_pro/dynamic_tags/post_terms/taxonomy_args', [ $this, 'filter_post_terms_taxonomy_arg' ] );

		add_action( 'elementor/template-library/before_get_source_data', [ $this, 'switch_to_preview_query' ] );
		add_action( 'elementor/template-library/after_get_source_data', [ $this, 'restore_current_query' ] );
		add_action( 'elementor/dynamic_tags/before_render', [ $this, 'switch_to_preview_query' ] );
		add_action( 'elementor/dynamic_tags/after_render', [ $this, 'restore_current_query' ] );
	}

	public function filter_post_terms_taxonomy_arg( $taxonomy_args ) {
		$current_post_id = get_the_ID();
		$document = Module::instance()->get_document( $current_post_id );

		if ( $document ) {
			// Show all taxonomies
			unset( $taxonomy_args['object_type'] );
		}

		return $taxonomy_args;
	}

	/**
	 * @access public
	 *
	 * @param $query_vars array
	 *
	 * @return array
	 */
	public function filter_query_control_args( $query_vars ) {
		$document = Plugin::elementor()->documents->get_doc_or_auto_save( get_the_ID() );

		if ( $document && $document instanceof Theme_Document ) {
			$query_vars = $document->get_preview_as_query_args();
		}

		return $query_vars;
	}

	/**
	 * @access public
	 */
	public function switch_to_preview_query() {
		$current_post_id = get_the_ID();
		$document = Plugin::elementor()->documents->get_doc_or_auto_save( $current_post_id );

		if ( ! $document || ! $document instanceof Theme_Document ) {
			return;
		}

		$new_query_vars = $document->get_preview_as_query_args();

		Plugin::elementor()->db->switch_to_query( $new_query_vars, true );

		$document->after_preview_switch_to_query();
	}

	/**
	 * @access public
	 */
	public function restore_current_query() {
		Plugin::elementor()->db->restore_current_query();
	}
}
PK!���2modules/theme-builder/classes/conditions-cache.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Conditions_Cache {

	const OPTION_NAME = 'elementor_pro_theme_builder_conditions';

	protected $conditions = [];

	public function __construct() {
		$this->refresh();
	}

	/**
	 * @param Theme_Document $document
	 * @param array          $conditions
	 *
	 * @return $this
	 */
	public function add( Theme_Document $document, array $conditions ) {
		$location = $document->get_location();
		if ( $location ) {
			if ( ! isset( $this->conditions[ $location ] ) ) {
				$this->conditions[ $location ] = [];
			}
			$this->conditions[ $location ][ $document->get_main_id() ] = $conditions;
		}

		return $this;
	}

	/**
	 * @param int $post_id
	 *
	 * @return $this
	 */
	public function remove( $post_id ) {
		$post_id = absint( $post_id );

		foreach ( $this->conditions as $location => $templates ) {
			foreach ( $templates as $id => $template ) {
				if ( $post_id === $id ) {
					unset( $this->conditions[ $location ][ $id ] );
				}
			}
		}

		return $this;
	}

	/**
	 * @param Theme_Document $document
	 * @param array          $conditions
	 *
	 * @return $this
	 */
	public function update( $document, $conditions ) {
		return $this->remove( $document->get_main_id() )->add( $document, $conditions );
	}

	public function save() {
		return update_option( self::OPTION_NAME, $this->conditions );
	}

	public function refresh() {
		$this->conditions = get_option( self::OPTION_NAME, [] );

		return $this;
	}

	public function clear() {
		$this->conditions = [];

		return $this;
	}

	public function get_by_location( $location ) {
		if ( isset( $this->conditions[ $location ] ) ) {
			return $this->conditions[ $location ];
		}

		return [];
	}

	public function regenerate() {
		$this->clear();

		$document_types = Plugin::elementor()->documents->get_document_types();

		$post_types = [
			Source_Local::CPT,
		];

		foreach ( $document_types as $document_type ) {
			if ( $document_type::get_property( 'support_conditions' ) && $document_type::get_property( 'cpt' ) ) {
				$post_types = array_merge( $post_types, $document_type::get_property( 'cpt' ) );
			}
		}

		$query = new \WP_Query( [
			'posts_per_page' => -1,
			'post_type' => $post_types,
			'fields' => 'ids',
			'meta_key' => '_elementor_conditions',
		] );

		foreach ( $query->posts as $post_id ) {
			$document = Module::instance()->get_document( $post_id );

			if ( $document ) {
				$conditions = $document->get_meta( '_elementor_conditions' );
				$this->add( $document, $conditions );
			}
		}

		$this->save();

		return $this;
	}
}
PK!d�`L8L84modules/theme-builder/classes/conditions-manager.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use Elementor\Core\Utils\Exceptions;
use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Modules\ThemeBuilder\Conditions\Condition_Base;


if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Conditions_Manager {

	/**
	 * @var Condition_Base[]
	 */
	private $conditions = [];

	/**
	 * @var Conditions_Cache
	 */
	private $cache;

	private $location_cache = [];

	public function __construct() {
		$this->cache = new Conditions_Cache();

		add_action( 'wp_loaded', [ $this, 'register_conditions' ] ); // After Plugins Registered CPT.
		add_action( 'wp_trash_post', [ $this, 'purge_post_from_cache' ] );
		add_action( 'untrashed_post', [ $this, 'on_untrash_post' ] );
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );

		add_action( 'manage_' . Source_Local::CPT . '_posts_columns', [ $this, 'admin_columns_headers' ] );
		add_action( 'manage_' . Source_Local::CPT . '_posts_custom_column', [ $this, 'admin_columns_content' ], 10, 2 );
	}

	public function on_untrash_post( $post_id ) {
		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$document = $theme_builder_module->get_document( $post_id );

		if ( $document ) {
			$conditions = $document->get_meta( '_elementor_conditions' );

			if ( $conditions ) {
				$this->cache->add( $document, $conditions )->save();
			}
		}
	}

	public function admin_columns_headers( $posts_columns ) {
		$offset = 3;

		$posts_columns = array_slice( $posts_columns, 0, $offset, true ) + [
			'instances' => esc_html__( 'Instances', 'elementor-pro' ),
		] + array_slice( $posts_columns, $offset, null, true );

		return $posts_columns;
	}

	public function admin_columns_content( $column_name, $post_id ) {
		if ( 'instances' !== $column_name ) {
			return;
		}

		$instances = $this->get_document_instances( $post_id );

		if ( ! empty( $instances ) ) {
			// PHPCS - the method get_document_instances is safe.
			echo implode( '<br />', $instances ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		} else {
			echo esc_html__( 'None', 'elementor-pro' );
		}
	}

	/**
	 * @access public
	 *
	 * @param Ajax $ajax_manager
	 */
	public function register_ajax_actions( $ajax_manager ) {
		$ajax_manager->register_ajax_action( 'pro_theme_builder_save_conditions', [ $this, 'ajax_save_theme_template_conditions' ] );
		$ajax_manager->register_ajax_action( 'pro_theme_builder_conditions_check_conflicts', [ $this, 'ajax_check_conditions_conflicts' ] );
	}

	public function ajax_check_conditions_conflicts( $request ) {
		$post_id = intval( $request['editor_post_id'] );
		$condition = $request['condition'];

		unset( $condition['_id'] );

		$condition = rtrim( implode( '/', $condition ), '/' );

		$conflicted = array_map( function ( $conflict ) {
			return sprintf(
				'<a href="%s" target="_blank">%s</a>', $conflict['edit_url'], $conflict['template_title']
			);
		}, $this->get_conditions_conflicts( $post_id, $condition ) );

		if ( empty( $conflicted ) ) {
			return '';
		}

		return esc_html__( 'Elementor recognized that you have set this location for other templates: ', 'elementor-pro' ) .
			' ' .
			implode( ', ', $conflicted );
	}

	public function get_conditions_conflicts_by_location( $condition, $location, $ignore_post_id = null ) {
		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$location_settings = $theme_builder_module->get_locations_manager()->get_location( $location );

		if ( ! empty( $location_settings['multiple'] ) ) {
			return [];
		}

		$conditions_groups = $this->cache->get_by_location( $location );

		$conflicted = [];

		if ( ! empty( $conditions_groups ) ) {
			foreach ( $conditions_groups as $template_id => $conditions ) {
				if ( ! get_post( $template_id ) ) {
					$this->purge_post_from_cache( $template_id );
				}

				if ( $ignore_post_id === $template_id ) {
					continue;
				}

				if ( false !== array_search( $condition, $conditions, true ) ) {
					$edit_url = $theme_builder_module->get_document( $template_id )->get_edit_url();

					$conflicted[] = [
						'template_id' => $template_id,
						'template_title' => esc_html( get_the_title( $template_id ) ),
						'edit_url' => $edit_url,
					];
				}
			}
		}

		return $conflicted;
	}

	public function get_conditions_conflicts( $post_id, $condition ) {
		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$document = $theme_builder_module->get_document( $post_id );

		return $this->get_conditions_conflicts_by_location( $condition, $document->get_location(), $post_id );
	}

	public function ajax_save_theme_template_conditions( $request ) {
		if ( ! isset( $request['conditions'] ) ) {
			$request['conditions'] = [];
		}
		$is_saved = $this->save_conditions( $request['editor_post_id'], $request['conditions'] );

		if ( ! $is_saved ) {
			throw new \Exception( 'Error while saving conditions.', Exceptions::INTERNAL_SERVER_ERROR );
		}
	}

	private function register_condition( $id, $args = [] ) {
		if ( isset( $this->conditions[ $id ] ) ) {
			return;
		}

		$class_name = ucfirst( $id );
		$class_name = '\\ElementorPro\\Modules\\ThemeBuilder\\Conditions\\' . $class_name;
		/** @var Condition_Base $condition */
		$condition = new $class_name( $args );
		$this->register_condition_instance( $condition );

		foreach ( $condition->get_sub_conditions() as $key => $val ) {
			if ( is_numeric( $key ) ) {
				$id = $val;
				$args = [];
			} else {
				$id = $key;
				$args = $val;
			}
			$this->register_condition( $id, $args );
		}
	}

	/**
	 * @param Condition_Base $instance
	 */
	public function register_condition_instance( $instance ) {
		$this->conditions[ $instance->get_name() ] = $instance;
	}

	/**
	 * @param $id
	 *
	 * @return Condition_Base|bool
	 */
	public function get_condition( $id ) {
		return isset( $this->conditions[ $id ] ) ? $this->conditions[ $id ] : false;
	}

	public function get_conditions_config() {
		$config = [];

		foreach ( $this->conditions as $condition ) {
			$config[ $condition->get_name() ] = $condition->get_config();
		}

		return $config;
	}

	public function get_document_instances( $post_id ) {
		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$document = $theme_builder_module->get_document( $post_id );

		$summary = [];

		if ( ! $document ) {
			return $summary;
		}

		$document_conditions = $this->get_document_conditions( $document );

		if ( ! empty( $document_conditions ) ) {
			foreach ( $document_conditions as $document_condition ) {
				if ( 'exclude' === $document_condition['type'] ) {
					continue;
				}

				$condition_name = ! empty( $document_condition['sub_name'] ) ? $document_condition['sub_name'] : $document_condition['name'];

				$condition = $this->get_condition( $condition_name );
				if ( ! $condition ) {
					continue;
				}

				if ( ! empty( $document_condition['sub_id'] ) ) {
					$instance_label = $condition->get_label() . " #{$document_condition['sub_id']}";
				} else {
					$instance_label = $condition->get_all_label();
				}

				$summary[ $condition->get_name() ] = $instance_label;
			}
		}

		return $summary;
	}

	public function register_conditions() {
		$this->register_condition( 'general' );

		do_action( 'elementor/theme/register_conditions', $this );
	}

	public function save_conditions( $post_id, $conditions ) {
		$conditions_to_save = [];

		foreach ( $conditions as $condition ) {
			unset( $condition['_id'] );
			$conditions_to_save[] = rtrim( implode( '/', $condition ), '/' );
		}

		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$document = $theme_builder_module->get_document( $post_id );

		if ( empty( $conditions_to_save ) ) {
			// TODO: $document->delete_meta.
			$is_saved = delete_post_meta( $post_id, '_elementor_conditions' );
		} else {
			$is_saved = $document->update_meta( '_elementor_conditions', $conditions_to_save );
		}

		$this->cache->regenerate();

		return $is_saved;
	}

	public function get_location_templates( $location ) {
		$conditions_priority = [];

		$conditions_groups = $this->cache->get_by_location( $location );

		if ( empty( $conditions_groups ) ) {
			return $conditions_priority;
		}

		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$location_manager = $theme_builder_module->get_locations_manager();
		$excludes = [];

		foreach ( $conditions_groups as $theme_template_id => $conditions ) {
			$theme_template_id = apply_filters( 'elementor/theme/get_location_templates/template_id', $theme_template_id );

			foreach ( $conditions as $condition ) {
				$parsed_condition = $this->parse_condition( $condition );

				$include = $parsed_condition['type'];
				$name = $parsed_condition['name'];
				$sub_name = $parsed_condition['sub_name'];
				$sub_id = $parsed_condition['sub_id'];

				$is_include = 'include' === $include;
				$condition_instance = $this->get_condition( $name );

				if ( ! $condition_instance ) {
					continue;
				}

				$condition_pass = $condition_instance->check( [] );
				$sub_condition_instance = null;

				if ( $condition_pass && $sub_name ) {
					$sub_condition_instance = $this->get_condition( $sub_name );
					if ( ! $sub_condition_instance ) {
						continue;
					}

					$args = [
						'id' => apply_filters( 'elementor/theme/get_location_templates/condition_sub_id', $sub_id, $parsed_condition ),
					];

					$condition_pass = $sub_condition_instance->check( $args );
				}

				if ( $condition_pass ) {

					$post_status = get_post_status( $theme_template_id );

					if ( 'publish' !== $post_status ) {
						$location_manager->inspector_log( [
							'location' => $location,
							'document' => $theme_builder_module->get_document( $theme_template_id ),
							'description' => 'Skipped, is not Published',
						] );
						continue;
					}

					if ( $is_include ) {
						$conditions_priority[ $theme_template_id ] = $this->get_condition_priority( $condition_instance, $sub_condition_instance, $sub_id );
					} else {
						$excludes[] = $theme_template_id;
					}
				}
			} // End foreach().
		} // End foreach().

		foreach ( $excludes as $exclude_id ) {
			unset( $conditions_priority[ $exclude_id ] );
		}

		asort( $conditions_priority );

		return $conditions_priority;
	}

	public function get_theme_templates_ids( $location ) {
		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$location_manager = $theme_builder_module->get_locations_manager();

		// In case the user want to preview any page with a theme_template_id,
		// like http://domain.com/any-post/?preview=1&theme_template_id=6453
		if ( ! empty( $_GET['theme_template_id'] ) ) {
			$force_template_id = $_GET['theme_template_id'];
			$document = $theme_builder_module->get_document( $force_template_id );
			// e.g. header / header
			if ( $document && $location === $document->get_location() ) {
				$location_manager->inspector_log( [
					'location' => $location,
					'document' => $document,
					'description' => 'Force Template by URL param',
				] );

				return [
					$force_template_id => 1,
				];
			}
		}

		$current_post_id = get_the_ID();
		$document = $theme_builder_module->get_document( $current_post_id );
		if ( $document && $location === $document->get_location() ) {
			$location_manager->inspector_log( [
				'location' => $location,
				'document' => $document,
				'description' => 'Current Edited Template',
			] );

			return [
				$current_post_id => 1,
			];
		}

		$templates = $this->get_location_templates( $location );

		return $templates;
	}

	/**
	 * @param Condition_Base $condition_instance
	 * @param Condition_Base $sub_condition_instance
	 * @param int            $sub_id
	 *
	 * @return mixed
	 * @throws \Exception
	 */
	private function get_condition_priority( $condition_instance, $sub_condition_instance, $sub_id ) {
		$priority = $condition_instance::get_priority();

		if ( $sub_condition_instance ) {
			if ( $sub_condition_instance::get_priority() < $priority ) {
				$priority = $sub_condition_instance::get_priority();
			}

			$priority -= 10;

			if ( $sub_id ) {
				$priority -= 10;
			} elseif ( 0 === count( $sub_condition_instance->get_sub_conditions() ) ) {
				// if no sub conditions - it's more specific.
				$priority -= 5;
			}
		}

		return $priority;
	}

	/**
	 * @param Theme_Document $document
	 *
	 * @return array
	 */
	public function get_document_conditions( $document ) {
		$saved_conditions = $document->get_main_meta( '_elementor_conditions' );
		$conditions = [];

		if ( is_array( $saved_conditions ) ) {
			foreach ( $saved_conditions as $condition ) {
				$conditions[] = $this->parse_condition( $condition );
			}
		}

		return $conditions;
	}

	protected function parse_condition( $condition ) {
		list ( $type, $name, $sub_name, $sub_id ) = array_pad( explode( '/', $condition ), 4, '' );

		return compact( 'type', 'name', 'sub_name', 'sub_id' );
	}

	/**
	 * @param $location
	 *
	 * @return Theme_Document[]
	 */
	public function get_documents_for_location( $location ) {
		if ( isset( $this->location_cache[ $location ] ) ) {
			return $this->location_cache[ $location ];
		}

		$theme_templates_ids = $this->get_theme_templates_ids( $location );

		/** @var Module $theme_builder_module */
		$theme_builder_module = Module::instance();

		$location_settings = $theme_builder_module->get_locations_manager()->get_location( $location );

		$documents = [];

		foreach ( $theme_templates_ids as $theme_template_id => $priority ) {
			$document = $theme_builder_module->get_document( $theme_template_id );
			if ( $document ) {
				$documents[ $theme_template_id ] = $document;
			}

			if ( empty( $location_settings['multiple'] ) ) {
				break;
			}
		}

		$this->location_cache[ $location ] = $documents;

		return $documents;
	}

	public function purge_post_from_cache( $post_id ) {
		return $this->cache->remove( $post_id )->save();
	}

	public function get_cache() {
		return $this->cache;
	}

	public function clear_location_cache() {
		$this->location_cache = [];
	}
}
PK!�!W�mm5modules/theme-builder/classes/conditions-repeater.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use Elementor\Control_Repeater;
use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Conditions_Repeater extends Control_Repeater {

	const CONTROL_TYPE = 'conditions_repeater';

	public function get_type() {
		return self::CONTROL_TYPE;
	}

	protected function get_default_settings() {
		return array_merge( parent::get_default_settings(), [
			'render_type' => 'none',
			'fields' => [
				[
					'name' => 'type',
					'type' => Controls_Manager::SELECT,
					'default' => 'include',
					'options' => [
						'include' => esc_html__( 'Include', 'elementor-pro' ),
						'exclude' => esc_html__( 'Exclude', 'elementor-pro' ),
					],
				],
				[
					'name' => 'name',
					'type' => Controls_Manager::SELECT,
					'default' => 'general',
					'groups' => [
						[
							'label' => esc_html__( 'General', 'elementor-pro' ),
							'options' => [],
						],
					],
				],
				[
					'name' => 'sub_name',
					'type' => Controls_Manager::SELECT,
					'options' => [
						'' => esc_html__( 'All', 'elementor-pro' ),
					],
					'conditions' => [
						'terms' => [
							[
								'name' => 'name',
								'operator' => '!==',
								'value' => '',
							],
						],
					],
				],
				[
					'name' => 'sub_id',
					'type' => Controls_Manager::SELECT,
					'options' => [
						'' => esc_html__( 'All', 'elementor-pro' ),
					],
					'conditions' => [
						'terms' => [
							[
								'name' => 'sub_name',
								'operator' => '!==',
								'value' => '',
							],
						],
					],
				],
			],
		] );
	}
}
PK!��{V?V?3modules/theme-builder/classes/locations-manager.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use Elementor\Core\Files\CSS\Post as Post_CSS;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Plugin;
use Elementor\Modules\PageTemplates\Module as PageTemplatesModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Locations_Manager {

	protected $core_locations = [];
	protected $locations = [];
	protected $did_locations = [];
	protected $current_location;
	protected $current_page_template = '';
	protected $locations_queue = [];
	protected $locations_printed = [];
	protected $locations_skipped = [];

	public function __construct() {
		$this->set_core_locations();

		add_filter( 'the_content', [ $this, 'builder_wrapper' ], 9999999 ); // 9999999 = after preview->builder_wrapper
		add_filter( 'template_include', [ $this, 'template_include' ], 11 ); // 11 = after WooCommerce.
		add_action( 'template_redirect', [ $this, 'register_locations' ] );

		add_filter( 'elementor/admin/create_new_post/meta', [ $this, 'filter_add_location_meta_on_create_new_post' ] );

		if ( ! Module::is_preview() ) {
			add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_styles' ] );
		}
	}

	public function register_locations() {
		// Run Once.
		if ( ! did_action( 'elementor/theme/register_locations' ) ) {
			/**
			 * Register theme locations.
			 *
			 * Fires after template files where included but before locations
			 * have been registered.
			 *
			 * This is where Elementor theme locations are registered by
			 * external themes.
			 *
			 * @since 2.0.0
			 *
			 * @param Locations_Manager $this An instance of locations manager.
			 */
			do_action( 'elementor/theme/register_locations', $this );
		}
	}

	public function enqueue_styles() {
		$locations = $this->get_locations();

		if ( empty( $locations ) ) {
			return;
		}

		if ( ! empty( $this->current_page_template ) ) {
			$locations = $this->filter_page_template_locations( $locations );
		}

		$current_post_id = get_the_ID();

		/** @var Post_CSS[] $css_files */
		$css_files = [];

		foreach ( $locations as $location => $settings ) {
			$documents = Module::instance()->get_conditions_manager()->get_documents_for_location( $location );
			foreach ( $documents as $document ) {
				$post_id = $document->get_post()->ID;

				// Don't enqueue current post here (let the  preview/frontend components to handle it)
				if ( $current_post_id !== $post_id ) {
					$css_file = new Post_CSS( $post_id );
					$css_files[] = $css_file;
				}
			}
		}

		if ( ! empty( $css_files ) ) {
			// Enqueue the frontend styles manually also for pages that don't built with Elementor.
			Plugin::elementor()->frontend->enqueue_styles();

			// Enqueue after the frontend styles to override them.
			foreach ( $css_files as $css_file ) {
				$css_file->enqueue();
			}
		}
	}

	public function template_include( $template ) {
		$location = '';

		if ( is_singular() ) {
			$document = Plugin::elementor()->documents->get_doc_for_frontend( get_the_ID() );
			if ( $document && $document::get_property( 'support_wp_page_templates' ) ) {
				$wp_page_template = $document->get_meta( '_wp_page_template' );
				if ( $wp_page_template && 'default' !== $wp_page_template ) {
					$this->inspector_log( [
						'template' => $template,
						'description' => 'Template File: WP Page Template',
					] );
					$this->current_page_template = $wp_page_template;
					return $template;
				}
			}
		} else {
			$document = false;
		}

		if ( $document && $document instanceof Theme_Document ) {
			// For editor preview iframe.
			$location = $document->get_location();
		} elseif ( function_exists( 'is_shop' ) && is_shop() ) {
			$location = 'archive';
		} elseif ( is_archive() || is_tax() || is_home() || is_search() ) {
			$location = 'archive';
		} elseif ( is_singular() || is_404() ) {
			$location = 'single';
		}

		if ( $location ) {
			$location_settings = $this->get_location( $location );
			$location_documents = Module::instance()->get_conditions_manager()->get_documents_for_location( $location );
			if ( empty( $location_documents ) ) {
				$this->inspector_log( [
					'template' => $template,
					'description' => 'Template File: No Templates for condition',
				] );

				return $template;
			}

			if ( 'single' === $location || 'archive' === $location ) {
				$first_key = key( $location_documents );
				$theme_document = $location_documents[ $first_key ];

				if ( Module::is_preview() && $theme_document->get_autosave_id() ) {
					$theme_document = $theme_document->get_autosave();
				}

				$document_page_template = $theme_document->get_settings( 'page_template' );
				if ( $document_page_template ) {
					$page_template = $document_page_template;
					$this->inspector_log( [
						'document' => $theme_document,
						'template' => $template,
						'description' => 'Template File: Document Page Template',
					] );
				}
			}
		}

		/**
		 * @var \Elementor\Modules\PageTemplates\Module $page_templates_module
		 */
		$page_templates_module = Plugin::elementor()->modules_manager->get_modules( 'page-templates' );

		// If is a `content` document or the theme is not support the document location (top header/ sidebar and etc.).
		$location_exist = ! empty( $location_settings );
		$is_header_footer = 'header' === $location || 'footer' === $location;
		$need_override_location = ! empty( $location_settings['overwrite'] ) && ! $is_header_footer;

		$need_override_location = apply_filters( 'elementor/theme/need_override_location', $need_override_location, $location, $this );

		if ( $location && empty( $page_template ) && ( ! $location_exist || $need_override_location ) ) {
			$page_template = $page_templates_module::TEMPLATE_HEADER_FOOTER;
		}

		if ( ! empty( $page_template ) ) {
			$template_path = $page_templates_module->get_template_path( $page_template );

			if ( $template_path ) {
				$page_templates_module->set_print_callback( function() use ( $location ) {
					Module::instance()->get_locations_manager()->do_location( $location );
				} );

				$this->inspector_log( [
					'location' => $location,
					'template' => $template_path,
					'description' => $location_exist ? 'Template File: Location Settings (Override)' : 'Template File: Location not exit',
				] );

				$template = $template_path;
			}
		}

		return $template;
	}

	/**
	 * @param string $location
	 * @param integer $document_id
	 */
	public function add_doc_to_location( $location, $document_id ) {
		if ( isset( $this->locations_skipped[ $location ][ $document_id ] ) ) {
			// Don't re-add skipped documents.
			return;
		}

		if ( ! isset( $this->locations_queue[ $location ] ) ) {
			$this->locations_queue[ $location ] = [];
		}

		$this->locations_queue[ $location ][ $document_id ] = $document_id;
	}

	public function remove_doc_from_location( $location, $document_id ) {
		unset( $this->locations_queue[ $location ][ $document_id ] );
	}

	public function skip_doc_in_location( $location, $document_id ) {
		$this->remove_doc_from_location( $location, $document_id );

		if ( ! isset( $this->locations_skipped[ $location ] ) ) {
			$this->locations_skipped[ $location ] = [];
		}

		$this->locations_skipped[ $location ][ $document_id ] = $document_id;
	}

	public function is_printed( $location, $document_id ) {
		return isset( $this->locations_printed[ $location ][ $document_id ] );
	}

	public function set_is_printed( $location, $document_id ) {
		if ( ! isset( $this->locations_printed[ $location ] ) ) {
			$this->locations_printed[ $location ] = [];
		}

		$this->locations_printed[ $location ][ $document_id ] = $document_id;
		$this->remove_doc_from_location( $location, $document_id );
	}

	public function do_location( $location ) {
		/** @var Theme_Document[] $documents_by_conditions */
		$documents_by_conditions = Module::instance()->get_conditions_manager()->get_documents_for_location( $location );

		foreach ( $documents_by_conditions as $document_id => $document ) {
			$this->add_doc_to_location( $location, $document_id );
		}

		// Locations Queue can contain documents that added manually.
		if ( empty( $this->locations_queue[ $location ] ) ) {
			return false;
		}

		if ( is_singular() ) {
			Utils::set_global_authordata();
		}

		/**
		 * Before location content printed.
		 *
		 * Fires before Elementor location was printed.
		 *
		 * The dynamic portion of the hook name, `$location`, refers to the location name.
		 *
		 * @since 2.0.0
		 *
		 * @param Locations_Manager $this An instance of locations manager.
		 */
		do_action( "elementor/theme/before_do_{$location}", $this );

		while ( ! empty( $this->locations_queue[ $location ] ) ) {
			$document_id = key( $this->locations_queue[ $location ] );
			$document = Module::instance()->get_document( $document_id );

			if ( ! $document || $this->is_printed( $location, $document_id ) ) {
				$this->skip_doc_in_location( $location, $document_id );
				continue;
			}

			// `$documents_by_conditions` can pe current post even if it's a draft.
			if ( empty( $documents_by_conditions[ $document_id ] ) ) {

				$post_status = get_post_status( $document_id );

				if ( 'publish' !== $post_status ) {
					$this->inspector_log( [
						'location' => $location,
						'document' => $document,
						'description' => 'Added manually but skipped because is not Published',
					] );

					$this->skip_doc_in_location( $location, $document_id );
					continue;
				}
			}

			$this->inspector_log( [
				'location' => $location,
				'document' => $document,
				'description' => isset( $documents_by_conditions[ $document_id ] ) ? 'Added By Condition' : 'Added Manually',

			] );

			$this->current_location = $location;
			$document->print_content();
			$this->did_locations[] = $this->current_location;
			$this->current_location = null;

			$this->set_is_printed( $location, $document_id );
		}

		/**
		 * After location content printed.
		 *
		 * Fires after Elementor location was printed.
		 *
		 * The dynamic portion of the hook name, `$location`, refers to the location name.
		 *
		 * @since 2.0.0
		 *
		 * @param Locations_Manager $this An instance of locations manager.
		 */
		do_action( "elementor/theme/after_do_{$location}", $this );

		return true;
	}

	public function did_location( $location ) {
		return in_array( $location, $this->did_locations, true );
	}

	public function get_current_location() {
		return $this->current_location;
	}

	public function builder_wrapper( $content ) {
		$post_id = get_the_ID();

		if ( $post_id ) {
			$document = Module::instance()->get_document( $post_id );
			if ( $document ) {
				$document_location = $document->get_location();
				$location_settings = $this->get_location( $document_location );
				// If is a `content` document or the theme is not support the document location (header/footer and etc.).
				if ( $location_settings && ! $location_settings['edit_in_content'] ) {
					$content = '<div class="elementor-theme-builder-content-area">' . esc_html__( 'Content Area', 'elementor-pro' ) . '</div>';
				}
			}
		}

		return $content;
	}

	public function get_locations( $filter_args = [] ) {
		$this->register_locations();

		if ( is_string( $filter_args ) ) {
			_deprecated_argument( __FUNCTION__, '2.4.0', 'Passing a location name is deprecated. Use `get_location` instead.' );
			return $this->get_location( $filter_args );
		}

		return wp_list_filter( $this->locations, $filter_args );
	}

	public function get_location( $location ) {
		$locations = $this->get_locations();

		if ( isset( $locations[ $location ] ) ) {
			$location_config = $locations[ $location ];
		} else {
			$location_config = [];
		}

		return $location_config;
	}

	public function get_doc_location( $post_id ) {
		/** @var Theme_Document $document */
		$document = Plugin::elementor()->documents->get( $post_id );

		return $document->get_location();
	}

	public function get_core_locations() {
		return $this->core_locations;
	}

	public function register_all_core_location() {
		foreach ( $this->core_locations as $location => $settings ) {
			$this->register_location( $location, $settings );
		}
	}

	public function register_location( $location, $args = [] ) {
		$args = wp_parse_args( $args, [
			'label' => $location,
			'multiple' => false,
			'public' => true,
			'edit_in_content' => true,
			'hook' => 'elementor/theme/' . $location,
		] );

		$this->locations[ $location ] = $args;

		add_action( $args['hook'], function() use ( $location, $args ) {
			$did_location = Module::instance()->get_locations_manager()->do_location( $location );

			if ( $did_location && ! empty( $args['remove_hooks'] ) ) {
				foreach ( $args['remove_hooks'] as $item ) {
					remove_action( $args['hook'], $item );
				}
			}
		}, 5 );
	}

	public function register_core_location( $location, $args = [] ) {
		if ( ! isset( $this->core_locations[ $location ] ) ) {
			/* translators: %s: Location name. */
			wp_die( esc_html( sprintf( esc_html__( 'Location \'%s\' is not a core location.', 'elementor-pro' ), $location ) ) );
		}

		$args = array_replace_recursive( $this->core_locations[ $location ], $args );

		$this->register_location( $location, $args );
	}

	public function location_exits( $location = '', $check_match = false ) {
		$location_exits = ! ! $this->get_location( $location );

		if ( $location_exits && $check_match ) {
			$location_exits = ! ! Module::instance()->get_conditions_manager()->get_documents_for_location( $location );
		}

		return $location_exits;
	}

	public function filter_add_location_meta_on_create_new_post( $meta ) {
		if ( ! empty( $_GET['meta_location'] ) ) {
			$meta[ Theme_Document::LOCATION_META_KEY ] = $_GET['meta_location'];
		}

		return $meta;
	}

	private function set_core_locations() {
		$this->core_locations = [
			'header' => [
				'is_core' => true,
				'public' => false,
				'label' => esc_html__( 'Header', 'elementor-pro' ),
				'edit_in_content' => false,
			],
			'footer' => [
				'is_core' => true,
				'public' => false,
				'label' => esc_html__( 'Footer', 'elementor-pro' ),
				'edit_in_content' => false,
			],
			'archive' => [
				'is_core' => true,
				'public' => false,
				'overwrite' => true,
				'label' => esc_html__( 'Archive', 'elementor-pro' ),
				'edit_in_content' => true,
			],
			'single' => [
				'is_core' => true,
				'public' => false,
				'label' => esc_html__( 'Single', 'elementor-pro' ),
				'edit_in_content' => true,
			],
		];
	}

	public function inspector_log( $args ) {
		$inspector_enabled = method_exists( Plugin::elementor()->inspector, 'is_enabled' ) && Plugin::elementor()->inspector->is_enabled();
		if ( ! $inspector_enabled ) {
			return;
		}

		$title = [];
		$url = '';

		if ( isset( $args['location'] ) ) {
			$location_settings = $this->get_location( $args['location'] );
			if ( $location_settings ) {
				$args['location'] = $location_settings['label'];
			}
			$title[] = 'Location: ' . $args['location'];
		}

		if ( isset( $args['description'] ) ) {
			$title[] = $args['description'];
		}

		if ( ! empty( $args['document'] ) ) {
			$title[] = esc_html( $args['document']->get_post()->post_title );
			$url = $args['document']->get_edit_url();
		}

		if ( isset( $args['template'] ) ) {
			$title[] = Plugin::elementor()->inspector->parse_template_path( $args['template'] );
		}

		$title = implode( ' > ', $title );

		Plugin::elementor()->inspector->add_log( 'Theme', $title, $url );
	}

	private function filter_page_template_locations( array $locations ) {
		$templates_to_filter = [
			PageTemplatesModule::TEMPLATE_CANVAS,
			PageTemplatesModule::TEMPLATE_HEADER_FOOTER,
		];

		if ( ! in_array( $this->current_page_template, $templates_to_filter, true ) ) {
			return $locations;
		}

		if ( PageTemplatesModule::TEMPLATE_CANVAS === $this->current_page_template ) {
			$allowed_core = [];
		} else {
			$allowed_core = [ 'header', 'footer' ];
		}

		foreach ( $locations as $location => $settings ) {
			if ( ! empty( $settings['is_core'] ) && ! in_array( $location, $allowed_core, true ) ) {
				unset( $locations[ $location ] );
			}
		}

		return $locations;
	}
}
PK!��"��5modules/theme-builder/classes/template-conditions.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use Elementor\Controls_Stack;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Template_Conditions extends Controls_Stack {

	public function get_name() {
		return 'template-conditions';
	}

	protected function register_controls() {
		parent::register_controls();

		$this->add_control(
			'conditions',
			[
				'section' => 'settings',
				'type' => Conditions_Repeater::CONTROL_TYPE,
			]
		);
	}
}
PK!Sb9modules/theme-builder/classes/templates-types-manager.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Classes;

use ElementorPro\Modules\ThemeBuilder\Documents;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Templates_Types_Manager {
	private $docs_types = [];

	public function __construct() {
		add_action( 'elementor/documents/register', [ $this, 'register_documents' ] );
	}

	public function get_types_config( $args = [] ) {
		$config = [];

		$document_types = Plugin::elementor()->documents->get_document_types( $args );

		foreach ( $document_types as $type => $document_type ) {
			$properties = $document_type::get_properties();

			if ( ( new $document_type() ) instanceof Documents\Theme_Document ) {
				$config[ $type ] = $properties;
			}
		}

		return $config;
	}

	public function register_documents() {
		$this->docs_types = [
			'section' => Documents\Section::get_class_full_name(),
			'header' => Documents\Header::get_class_full_name(),
			'footer' => Documents\Footer::get_class_full_name(),
			'single' => Documents\Single::get_class_full_name(),
			'single-post' => Documents\Single_Post::get_class_full_name(),
			'single-page' => Documents\Single_Page::get_class_full_name(),
			'archive' => Documents\Archive::get_class_full_name(),
			'search-results' => Documents\Search_Results::get_class_full_name(),
			'error-404' => Documents\Error_404::get_class_full_name(),
		];

		foreach ( $this->docs_types as $type => $class_name ) {
			Plugin::elementor()->documents->register_document_type( $type, $class_name );
		}
	}
}
PK!�b�-modules/theme-builder/conditions/child-of.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Child_Of extends Condition_Base {

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 40;
	}

	public function get_name() {
		return 'child_of';
	}

	public function get_label() {
		return esc_html__( 'Direct Child Of', 'elementor-pro' );
	}

	public function check( $args ) {
		if ( ! is_singular() ) {
			return false;
		}

		$id = (int) $args['id'];
		$parent_id = wp_get_post_parent_id( get_the_ID() );

		return ( ( 0 === $id && 0 < $parent_id ) || ( $parent_id === $id ) );
	}

	protected function register_controls() {
		$hierarchical_post_types = get_post_types( [
			'hierarchical' => true,
			'public' => true,
		] );

		$this->add_control(
			'parent_id',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_POST,
					'query' => [
						'post_type' => array_keys( $hierarchical_post_types ),
					],
				],
			]
		);
	}
}
PK!,=��+modules/theme-builder/conditions/author.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author extends Condition_Base {

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 70;
	}

	public function get_name() {
		return 'author';
	}

	public function get_label() {
		return esc_html__( 'Author Archive', 'elementor-pro' );
	}

	public function check( $args = null ) {
		return is_author( $args['id'] );
	}

	protected function register_controls() {
		$this->add_control(
			'author_id',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_AUTHOR,
				],
			]
		);
	}
}
PK!B�r5��/modules/theme-builder/conditions/front-page.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Front_Page extends Condition_Base {

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 30;
	}

	public function get_name() {
		return 'front_page';
	}

	public function get_label() {
		return esc_html__( 'Front Page', 'elementor-pro' );
	}

	public function check( $args ) {
		return is_front_page();
	}
}
PK!�>�##-modules/theme-builder/conditions/taxonomy.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Taxonomy extends Condition_Base {

	private $taxonomy;

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 70;
	}

	public function __construct( $data ) {
		parent::__construct();

		$this->taxonomy = $data['object'];
	}

	public function get_name() {
		return $this->taxonomy->name;
	}

	public function get_label() {
		return $this->taxonomy->label;
	}

	public function check( $args ) {
		$taxonomy = $this->get_name();
		$id = (int) $args['id'];

		if ( 'category' === $taxonomy ) {
			return is_category( $id );
		}

		if ( 'post_tag' === $taxonomy ) {
			return is_tag( $id );
		}

		return is_tax( $taxonomy, $id );
	}

	protected function register_controls() {
		$this->add_control(
			'taxonomy',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'options' => [
					'' => esc_html__( 'All', 'elementor-pro' ),
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_TAX,
					'by_field' => 'term_id',
					'query' => [
						'taxonomy' => $this->taxonomy->name,
					],
				],
			]
		);
	}
}
PK!o���1modules/theme-builder/conditions/not-found404.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Not_Found404 extends Condition_Base {

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 20;
	}

	public function get_name() {
		return 'not_found404';
	}

	public function get_label() {
		return esc_html__( '404 Page', 'elementor-pro' );
	}

	public function check( $args ) {
		return is_404();
	}
}
PK!�љ�881modules/theme-builder/conditions/any-child-of.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Any_Child_Of extends Child_Of {

	public function get_name() {
		return 'any_child_of';
	}

	public function get_label() {
		return esc_html__( 'Any Child Of', 'elementor-pro' );
	}

	public function check( $args ) {
		if ( ! is_singular() ) {
			return false;
		}

		$id = (int) $args['id'];
		$parents = get_post_ancestors( get_the_ID() );

		return ( ( 0 === $id && ! empty( $parents ) ) || in_array( $id, $parents ) );
	}
}
PK!7�C���-modules/theme-builder/conditions/singular.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Singular extends Condition_Base {

	protected $sub_conditions = [
		'front_page',
	];

	public static function get_type() {
		return 'singular';
	}

	public function get_name() {
		return 'singular';
	}

	public static function get_priority() {
		return 60;
	}

	public function get_label() {
		return esc_html__( 'Singular', 'elementor-pro' );
	}

	public function get_all_label() {
		return esc_html__( 'All Singular', 'elementor-pro' );
	}

	public function register_sub_conditions() {
		$post_types = Module::get_public_post_types();

		$post_types['attachment'] = get_post_type_object( 'attachment' )->label;

		foreach ( $post_types as $post_type => $label ) {
			$condition = new Post( [
				'post_type' => $post_type,
			] );

			$this->register_sub_condition( $condition );
		}

		$this->sub_conditions[] = 'child_of';

		$this->sub_conditions[] = 'any_child_of';

		$this->sub_conditions[] = 'by_author';

		// Last condition.
		$this->sub_conditions[] = 'not_found404';
	}

	public function check( $args ) {
		return ( is_singular() && ! is_embed() ) || is_404();
	}
}
PK!I<y���)modules/theme-builder/conditions/date.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Date extends Condition_Base {

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 70;
	}

	public function get_name() {
		return 'date';
	}

	public function get_label() {
		return esc_html__( 'Date Archive', 'elementor-pro' );
	}

	public function check( $args ) {
		return is_date();
	}
}
PK!��W�,modules/theme-builder/conditions/archive.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Archive extends Condition_Base {

	protected $sub_conditions = [
		'author',
		'date',
		'search',
	];

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 80;
	}

	public function get_name() {
		return 'archive';
	}

	public function get_label() {
		return esc_html__( 'Archives', 'elementor-pro' );
	}

	public function get_all_label() {
		return esc_html__( 'All Archives', 'elementor-pro' );
	}

	public function register_sub_conditions() {
		$post_types = Module::get_public_post_types();

		foreach ( $post_types as $post_type => $label ) {
			if ( ! get_post_type_archive_link( $post_type ) ) {
				continue;
			}

			$condition = new Post_Type_Archive( [
				'post_type' => $post_type,
			] );

			$this->register_sub_condition( $condition );
		}
	}

	public function check( $args ) {
		$is_archive = is_archive() || is_home() || is_search();

		// WooCommerce is handled by `woocommerce` module.
		if ( $is_archive && class_exists( 'woocommerce' ) && is_woocommerce() ) {
			$is_archive = false;
		}

		return $is_archive;
	}
}
PK!u�	nn0modules/theme-builder/conditions/in-sub-term.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class In_Sub_Term extends In_Taxonomy {

	/**
	 * @var \WP_Taxonomy
	 */
	private $taxonomy;

	public function __construct( $data ) {
		parent::__construct( $data );

		$this->taxonomy = $data['object'];
	}

	public function get_name() {
		return 'in_' . $this->taxonomy->name . '_children';
	}

	public function get_label() {
		/* translators: %s: Taxonomy label. */
		return sprintf( esc_html__( 'In Child %s', 'elementor-pro' ), $this->taxonomy->labels->name );
	}

	public function check( $args ) {
		$id = (int) $args['id'];
		if ( ! is_singular() || ! $id ) {
			return false;
		}
		$child_terms = get_term_children( $id, $this->taxonomy->name );

		return ! empty( $child_terms ) && has_term( $child_terms, $this->taxonomy->name );
	}
}
PK!l�Y[[0modules/theme-builder/conditions/in-taxonomy.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class In_Taxonomy extends Condition_Base {


	/**
	 * @var \WP_Taxonomy
	 */
	private $taxonomy;

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 40;
	}

	public function __construct( $data ) {
		parent::__construct();

		$this->taxonomy = $data['object'];
	}

	public function get_name() {
		return 'in_' . $this->taxonomy->name;
	}

	public function get_label() {
		/* translators: %s: Taxonomy label. */
		return sprintf( esc_html__( 'In %s', 'elementor-pro' ), $this->taxonomy->labels->singular_name );
	}

	public function check( $args ) {
		return is_singular() && has_term( (int) $args['id'], $this->taxonomy->name );
	}

	protected function register_controls() {
		$this->add_control(
			'taxonomy',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_TAX,
					'display' => 'detailed',
					'by_field' => 'term_id',
					'query' => [
						'taxonomy' => $this->taxonomy->name,
					],
				],
			]
		);
	}
}
PK!���8modules/theme-builder/conditions/post-type-by-author.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Type_By_Author extends Condition_Base {

	private $post_type;

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 40;
	}

	public function __construct( $post_type ) {
		parent::__construct();

		$this->post_type = $post_type;
	}

	public function get_name() {
		return $this->post_type->name . '_by_author';
	}

	public function get_label() {
		return sprintf( esc_html__( '%s By Author', 'elementor-pro' ), $this->post_type->label );
	}

	public function check( $args = null ) {
		return is_singular( $this->post_type->name ) && get_post_field( 'post_author' ) === $args['id'];
	}

	protected function register_controls() {
		$this->add_control(
			'author_id',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_AUTHOR,
				],
			]
		);
	}
}
PK!U�Ơyy2modules/theme-builder/conditions/child-of-term.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Child_Of_Term extends Taxonomy {

	private $taxonomy;

	public function get_name() {
		return 'child_of_' . $this->taxonomy->name;
	}

	public function get_label() {
		return sprintf( esc_html__( 'Direct Child %s Of', 'elementor-pro' ), $this->taxonomy->labels->singular_name );
	}

	public function __construct( $data ) {
		parent::__construct( $data );

		$this->taxonomy = $data['object'];
	}

	public function is_term() {
		$taxonomy = $this->taxonomy->name;
		$current = get_queried_object();
		return ( $current && isset( $current->taxonomy ) && $taxonomy === $current->taxonomy );
	}

	public function check( $args ) {
		$id = (int) $args['id'];
		$current = get_queried_object();

		return $this->is_term() && $id === $current->parent;
	}
}
PK!Gԉ nn)modules/theme-builder/conditions/post.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post extends Condition_Base {

	private $post_type;
	private $post_taxonomies;

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 40;
	}

	public function __construct( $data ) {
		$this->post_type = get_post_type_object( $data['post_type'] );
		$taxonomies = get_object_taxonomies( $data['post_type'], 'objects' );
		$this->post_taxonomies = wp_filter_object_list( $taxonomies, [
			'public' => true,
			'show_in_nav_menus' => true,
		] );

		parent::__construct();
	}

	public function get_name() {
		return $this->post_type->name;
	}

	public function get_label() {
		return $this->post_type->labels->singular_name;
	}

	public function get_all_label() {
		/* translators: %s: Post type label. */
		return $this->post_type->label;
	}

	public function check( $args ) {
		if ( isset( $args['id'] ) ) {
			$id = (int) $args['id'];
			if ( $id ) {
				return is_singular() && get_queried_object_id() === $id;
			}
		}

		return is_singular( $this->post_type->name );
	}

	public function register_sub_conditions() {
		foreach ( $this->post_taxonomies as $slug => $object ) {
			$in_taxonomy = new In_Taxonomy( [
				'object' => $object,
			] );
			$this->register_sub_condition( $in_taxonomy );

			if ( $object->hierarchical ) {
				$in_sub_term = new In_Sub_Term( [
					'object' => $object,
				] );
				$this->register_sub_condition( $in_sub_term );
			}
		}

		$by_author = new Post_Type_By_Author( $this->post_type );
		$this->register_sub_condition( $by_author );

	}

	protected function register_controls() {
		$this->add_control(
			'post_id',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_POST,
					'query' => [
						'post_type' => $this->get_name(),
					],
				],
			]
		);
	}
}
PK!
n�3modules/theme-builder/conditions/condition-base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use Elementor\Controls_Stack;
use Elementor\Core\Utils\Exceptions;
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Condition_Base extends Controls_Stack {

	protected $sub_conditions = [];

	public static function get_priority() {
		return 100;
	}

	abstract public function get_label();

	public function get_unique_name() {
		return 'condition_' . $this->get_name();
	}

	public static function get_type() {
		throw new \Exception( 'Please overwrite the method', Exceptions::INTERNAL_SERVER_ERROR );
	}

	public function check( $args ) {
		return false;
	}

	public function get_sub_conditions() {
		return $this->sub_conditions;
	}

	public function get_all_label() {
		return $this->get_label();
	}

	protected function get_initial_config() {
		$config = parent::get_initial_config();

		$config['label'] = $this->get_label();
		$config['sub_conditions'] = $this->get_sub_conditions();
		$config['all_label'] = $this->get_all_label();

		return $config;
	}

	public function register_sub_conditions() {}

	/**
	 * @param self $condition
	 */
	public function register_sub_condition( $condition ) {
		$conditions_manager = Module::instance()->get_conditions_manager();
		$conditions_manager->register_condition_instance( $condition );
		$this->sub_conditions[] = $condition->get_name();
	}

	public function __construct( array $data = [] ) {
		parent::__construct( $data );

		$this->register_sub_conditions();
	}
}
PK!l�J|��6modules/theme-builder/conditions/any-child-of-term.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Any_Child_Of_Term extends Child_Of_Term {

	private $taxonomy;

	public function get_name() {
		return 'any_child_of_' . $this->taxonomy->name;
	}

	public function get_label() {
		return sprintf( esc_html__( 'Any Child %s Of', 'elementor-pro' ), $this->taxonomy->labels->singular_name );
	}

	public function __construct( $data ) {
		parent::__construct( $data );

		$this->taxonomy = $data['object'];
	}

	public function check( $args ) {
		$id = (int) $args['id'];
		/**
		 * @var \WP_Term $current
		 */
		$current = get_queried_object();
		if ( ! $this->is_term() || 0 === $current->parent ) {
			return false;
		}

		while ( $current->parent > 0 ) {
			if ( $id === $current->parent ) {
				return true;
			}
			$current = get_term_by( 'id', $current->parent, $current->taxonomy );
		}

		return $id === $current->parent;
	}
}
PK!���JJ,modules/theme-builder/conditions/general.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class General extends Condition_Base {

	protected $sub_conditions = [
		'archive',
		'singular',
	];

	public static function get_type() {
		return 'general';
	}

	public function get_name() {
		return 'general';
	}

	public function get_label() {
		return esc_html__( 'General', 'elementor-pro' );
	}

	public function get_all_label() {
		return esc_html__( 'Entire Site', 'elementor-pro' );
	}

	public function check( $args ) {
		return true;
	}
}
PK!�o���.modules/theme-builder/conditions/by-author.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

use ElementorPro\Modules\QueryControl\Module as QueryModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class By_Author extends Condition_Base {

	public static function get_type() {
		return 'singular';
	}

	public static function get_priority() {
		return 40;
	}

	public function get_name() {
		return 'by_author';
	}

	public function get_label() {
		return esc_html__( 'By Author', 'elementor-pro' );
	}

	public function check( $args = null ) {
		return is_singular() && get_post_field( 'post_author' ) === $args['id'];
	}

	protected function register_controls() {
		$this->add_control(
			'author_id',
			[
				'section' => 'settings',
				'type' => QueryModule::QUERY_CONTROL_ID,
				'select2options' => [
					'dropdownCssClass' => 'elementor-conditions-select2-dropdown',
				],
				'autocomplete' => [
					'object' => QueryModule::QUERY_OBJECT_AUTHOR,
				],
			]
		);
	}
}
PK!����+modules/theme-builder/conditions/search.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Search extends Condition_Base {

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 70;
	}

	public function get_name() {
		return 'search';
	}

	public function get_label() {
		return esc_html__( 'Search Results', 'elementor-pro' );
	}

	public function check( $args ) {
		return is_search();
	}
}
PK!�4D���6modules/theme-builder/conditions/post-type-archive.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder\Conditions;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Type_Archive extends Condition_Base {

	private $post_type;
	private $post_taxonomies;

	public static function get_type() {
		return 'archive';
	}

	public static function get_priority() {
		return 70;
	}

	public function __construct( $data ) {
		$this->post_type = get_post_type_object( $data['post_type'] );
		$taxonomies = get_object_taxonomies( $data['post_type'], 'objects' );
		$this->post_taxonomies = wp_filter_object_list( $taxonomies, [
			'public' => true,
			'show_in_nav_menus' => true,
		] );

		parent::__construct();
	}

	public function get_name() {
		return $this->post_type->name . '_archive';
	}

	public function get_label() {
		return sprintf( esc_html__( '%s Archive', 'elementor-pro' ), $this->post_type->label );
	}

	public function get_all_label() {
		return sprintf( esc_html__( '%s Archive', 'elementor-pro' ), $this->post_type->label );
	}

	public function register_sub_conditions() {
		foreach ( $this->post_taxonomies as $slug => $object ) {
			$condition = new Taxonomy( [
				'object' => $object,
			] );

			$this->register_sub_condition( $condition );

			if ( ! $object->hierarchical ) {
				continue;
			}

			$sub_conditions = [
				'Child_Of_Term',
				'Any_Child_Of_Term',
			];

			foreach ( $sub_conditions as $class_name ) {
				$full_class_name = __NAMESPACE__ . '\\' . $class_name;
				$this->register_sub_condition( new $full_class_name( [ 'object' => $object ] ) );
			}
		}
	}

	public function check( $args ) {
		return is_post_type_archive( $this->post_type->name ) || ( 'post' === $this->post_type->name && is_home() );
	}
}
PK!�ط�g5g5 modules/theme-builder/module.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeBuilder;

use Elementor\Core\Admin\Admin_Notices;
use Elementor\Core\App\App;
use Elementor\Core\Base\Document;
use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Base\Module_Base;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\ThemeBuilder\Classes;
use ElementorPro\Modules\ThemeBuilder\Documents\Single;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const ADMIN_LIBRARY_TAB_GROUP = 'theme';

	public static function is_preview() {
		return Plugin::elementor()->preview->is_preview_mode() || is_preview();
	}

	public static function get_public_post_types( $args = [] ) {
		$post_types = Utils::get_public_post_types( $args );

		// Product form WooCommerce are handled separately.
		if ( class_exists( 'woocommerce' ) ) {
			unset( $post_types['product'] );
		}

		return $post_types;
	}

	public function get_name() {
		return 'theme-builder';
	}

	public function get_widgets() {
		$widgets = [
			'Site_Logo',
			'Site_Title',
			'Page_Title',
			'Post_Title',
			'Post_Excerpt',
			'Post_Content',
			'Post_Featured_Image',
			'Archive_Title',
		];

		if ( class_exists( '\ElementorPro\Modules\Posts\Widgets\Posts' ) ) {
			$widgets[] = 'Archive_Posts';
		}

		return $widgets;
	}

	/**
	 * @return Classes\Conditions_Manager
	 */
	public function get_conditions_manager() {
		return $this->get_component( 'conditions' );
	}

	/**
	 * @return Classes\Locations_Manager
	 */
	public function get_locations_manager() {
		return $this->get_component( 'locations' );
	}

	/**
	 * @return Classes\Preview_Manager
	 */
	public function get_preview_manager() {
		return $this->get_component( 'preview' );
	}

	/**
	 * @return Classes\Templates_Types_Manager
	 */
	public function get_types_manager() {
		return $this->get_component( 'templates_types' );
	}

	/**
	 * @param $post_id
	 *
	 * @return Theme_Document
	 */
	public function get_document( $post_id ) {
		$document = null;

		try {
			$document = Plugin::elementor()->documents->get( $post_id );
		} catch ( \Exception $e ) {
			// Do nothing.
			unset( $e );
		}

		if ( ! empty( $document ) && ! $document instanceof Theme_Document ) {
			$document = null;
		}

		return $document;
	}

	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'publish_settings' => esc_html__( 'Publish Settings', 'elementor-pro' ),
				'conditions' => esc_html__( 'Conditions', 'elementor-pro' ),
				'display_conditions' => esc_html__( 'Display Conditions', 'elementor-pro' ),
				'choose' => esc_html__( 'Choose', 'elementor-pro' ),
				'add_condition' => esc_html__( 'Add Condition', 'elementor-pro' ),
				'conditions_title' => esc_html__( 'Where Do You Want to Display Your %s?', 'elementor-pro' ),
				'conditions_description' => esc_html__( 'Set the conditions that determine where your %s is used throughout your site.', 'elementor-pro' ) . '<br>' . esc_html__( 'For example, choose \'Entire Site\' to display the template across your site.', 'elementor-pro' ),
				'conditions_publish_screen_description' => esc_html__( 'Apply current template to these pages.', 'elementor-pro' ),
				'save_and_close' => esc_html__( 'Save & Close', 'elementor-pro' ),
				'open_site_editor' => esc_html__( 'Open Site Editor', 'elementor-pro' ),
				'view_live_site' => esc_html__( 'View Live Site', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public function document_config( $config, $post_id ) {
		$document = $this->get_document( $post_id );

		if ( ! $document ) {
			return $config;
		}

		$types_manager = $this->get_types_manager();
		$conditions_manager = $this->get_conditions_manager();
		$template_type = $this->get_template_type( $post_id );

		$config = array_replace_recursive( $config, [
			'theme_builder' => [
				'types' => $types_manager->get_types_config(),
				'conditions' => $conditions_manager->get_conditions_config(),
				'template_conditions' => ( new Classes\Template_Conditions() )->get_config(),
				'is_theme_template' => $this->is_theme_template( $post_id ),
				'settings' => [
					'template_type' => $template_type,
					'location' => $document->get_location(),
					'conditions' => $conditions_manager->get_document_conditions( $document ),
				],
			],
		] );

		return $config;
	}

	public function register_controls() {
		$controls_manager = Plugin::elementor()->controls_manager;

		$controls_manager->register_control( Classes\Conditions_Repeater::CONTROL_TYPE, new Classes\Conditions_Repeater() );
	}

	public function create_new_dialog_types( $types ) {
		/**
		 * @var Theme_Document[] $document_types
		 */
		foreach ( $types as $type => $label ) {
			$document_type = Plugin::elementor()->documents->get_document_type( $type );
			$instance = new $document_type();

			if ( $instance instanceof Theme_Document && 'section' !== $type ) {
				$types[ $type ] .= $instance->get_location_label();
			}

			if ( Single::class === $document_type ) {
				unset( $types[ $type ] );
			}
		}

		return $types;
	}

	public function print_location_field() {
		$locations = $this->get_locations_manager()->get_locations( [
			'public' => true,
		] );

		if ( empty( $locations ) ) {
			return;
		}
		?>
		<div id="elementor-new-template__form__location__wrapper" class="elementor-form-field">
			<label for="elementor-new-template__form__location" class="elementor-form-field__label">
				<?php echo esc_html__( 'Select a Location', 'elementor-pro' ); ?>
			</label>
			<div class="elementor-form-field__select__wrapper">
				<select id="elementor-new-template__form__location" class="elementor-form-field__select" name="meta_location">
					<option value="">
						<?php echo esc_html__( 'Select...', 'elementor-pro' ); ?>
					</option>
					<?php

					foreach ( $locations as $location => $settings ) {
						echo sprintf( '<option value="%1$s">%2$s</option>', esc_html( $location ), esc_html( $settings['label'] ) );
					}
					?>
				</select>
			</div>
		</div>
		<?php
	}

	public function print_post_type_field() {
		$post_types = self::get_public_post_types( [
			'exclude_from_search' => false,
		] );

		if ( empty( $post_types ) ) {
			return;
		}
		?>
		<div id="elementor-new-template__form__post-type__wrapper" class="elementor-form-field">
			<label for="elementor-new-template__form__post-type" class="elementor-form-field__label">
				<?php echo esc_html__( 'Select Post Type', 'elementor-pro' ); ?>
			</label>
			<div class="elementor-form-field__select__wrapper">
				<select
					id="elementor-new-template__form__post-type"
					class="elementor-form-field__select"
					name="<?php echo Single::REMOTE_CATEGORY_META_KEY; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>"
				>
					<option value="">
						<?php echo esc_html__( 'Select', 'elementor-pro' ); ?>...
					</option>
					<?php

					foreach ( $post_types as $post_type => $label ) {
						$doc_type = Plugin::elementor()->documents->get_document_type( $post_type );
						$doc_class = new $doc_type();

						$is_base_page = $doc_class instanceof \Elementor\Core\DocumentTypes\PageBase;

						if ( $is_base_page ) {
							$post_type_object = get_post_type_object( $post_type );
							echo sprintf( '<option value="%1$s">%2$s</option>', esc_html( $post_type ), esc_html( $post_type_object->labels->singular_name ) );
						}
					}

					// 404.
					echo sprintf( '<option value="%1$s">%2$s</option>', 'not_found404', esc_html__( '404 Page', 'elementor-pro' ) );

					?>
				</select>
			</div>
		</div>
		<?php
	}

	public function admin_head() {
		$current_screen = get_current_screen();
		if ( $current_screen && in_array( $current_screen->id, [ 'elementor_library', 'edit-elementor_library' ] ) ) {
			// For column type (Supported/Unsupported) & for `print_location_field`.
			$this->get_locations_manager()->register_locations();
		}
	}

	/**
	 * An hack to hide the app menu on before render without remove the app page from system.
	 *
	 * @param $menu
	 *
	 * @return mixed
	 */
	public function hide_admin_app_submenu( $menu ) {
		remove_submenu_page( Source_Local::ADMIN_MENU_SLUG, App::PAGE_ID );

		return $menu;
	}

	public function admin_columns_content( $column_name, $post_id ) {
		if ( 'elementor_library_type' === $column_name ) {
			/** @var Document $document */
			$document = Plugin::elementor()->documents->get( $post_id );

			if ( $document instanceof Theme_Document ) {
				$location_label = $document->get_location_label();

				if ( $location_label ) {
					echo ' - ' . esc_html( $location_label );
				}
			}
		}
	}

	public function get_template_type( $post_id ) {
		return Source_local::get_template_type( $post_id );
	}

	public function is_theme_template( $post_id ) {
		$document = Plugin::elementor()->documents->get( $post_id );

		return $document instanceof Theme_Document;
	}

	public function on_elementor_editor_init() {
		Plugin::elementor()->common->add_template( __DIR__ . '/views/panel-template.php' );
	}

	public function add_finder_items( array $categories ) {
		$categories['create']['items']['theme-template'] = [
			'title' => esc_html__( 'Add New Theme Template', 'elementor-pro' ),
			'icon' => 'plus-circle-o',
			'url' => $this->get_admin_templates_url() . '#add_new',
			'keywords' => [ 'template', 'theme', 'new', 'create' ],
		];

		return $categories;
	}

	/**
	 * Add New item to admin menu.
	 *
	 * Fired by `admin_menu` action.
	 *
	 * @since 2.4.0
	 * @access public
	 */
	public function admin_menu() {
		add_submenu_page(
			Source_Local::ADMIN_MENU_SLUG,
			'',
			esc_html__( 'Theme Builder', 'elementor-pro' ),
			'publish_posts',
			$this->get_admin_templates_url( true )
		);
	}

	public function print_new_theme_builder_promotion( $views ) {
		/** @var Source_Local $source */
		$source = Plugin::elementor()->templates_manager->get_source( 'local' );

		$current_tab_group = $source->get_current_tab_group();

		if ( self::ADMIN_LIBRARY_TAB_GROUP === $current_tab_group ) {
			/**
			 * @var Admin_Notices $admin_notices
			 */
			$admin_notices = Plugin::elementor()->admin->get_component( 'admin-notices' );

			$admin_notices->print_admin_notice( [
				'title' => esc_html__( 'Meet the New Theme Builder: More Intuitive and Visual Than Ever', 'elementor-pro' ),
				'description' => esc_html__( 'With the new Theme Builder you can visually manage every part of your site intuitively, making the task of designing a complete website that much easier', 'elementor-pro' ),
				'button' => [
					'text' => esc_html__( 'Try it Now', 'elementor-pro' ),
					'class' => 'elementor-button elementor-button-success',
					'url' => Plugin::elementor()->app->get_settings( 'menu_url' ),
				],
			] );
		}

		return $views;
	}

	private function get_admin_templates_url( $relative = false ) {
		$base_url = Source_Local::ADMIN_MENU_SLUG;

		if ( ! $relative ) {
			$base_url = admin_url( $base_url );
		}

		return add_query_arg( 'tabs_group', self::ADMIN_LIBRARY_TAB_GROUP, $base_url );
	}

	private function add_conflicts_to_import_result( array $result ) {
		$manifest_data = $result['manifest'];

		if ( empty( $manifest_data['templates'] ) ) {
			return $result;
		}

		foreach ( $manifest_data['templates'] as $template_id => $template ) {
			if ( empty( $template['conditions'] ) ) {
				continue;
			}

			foreach ( $template['conditions'] as $condition ) {
				$condition = rtrim( implode( '/', $condition ), '/' );
				$conflicts = $this->get_conditions_manager()->get_conditions_conflicts_by_location( $condition, $template['location'] );

				if ( $conflicts ) {
					$result['conflicts'][ $template_id ] = $conflicts;
				}
			}
		}

		return $result;
	}

	public function __construct() {
		parent::__construct();

		require __DIR__ . '/api.php';

		$this->add_component( 'theme_support', new Classes\Theme_Support() );
		$this->add_component( 'conditions', new Classes\Conditions_Manager() );
		$this->add_component( 'templates_types', new Classes\Templates_Types_Manager() );
		$this->add_component( 'preview', new Classes\Preview_Manager() );
		$this->add_component( 'locations', new Classes\Locations_Manager() );

		add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls' ] );

		// Editor
		add_action( 'elementor/editor/init', [ $this, 'on_elementor_editor_init' ] );
		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
		add_filter( 'elementor/document/config', [ $this, 'document_config' ], 10, 2 );

		// Admin
		add_action( 'admin_head', [ $this, 'admin_head' ] );
		add_action( 'admin_menu', [ $this, 'admin_menu' ], 22 /* After core promotion menu */ );
		add_filter( 'add_menu_classes', [ $this, 'hide_admin_app_submenu' ], 9 /* Before core submenu fixes */ );
		add_action( 'manage_' . Source_Local::CPT . '_posts_custom_column', [ $this, 'admin_columns_content' ], 10, 2 );
		add_action( 'elementor/template-library/create_new_dialog_fields', [ $this, 'print_location_field' ] );
		add_action( 'elementor/template-library/create_new_dialog_fields', [ $this, 'print_post_type_field' ] );
		add_filter( 'elementor/template-library/create_new_dialog_types', [ $this, 'create_new_dialog_types' ] );
		add_filter( 'views_edit-' . Source_Local::CPT, [ $this, 'print_new_theme_builder_promotion' ], 9 );
		add_filter( 'elementor/import/stage_1/result', function( array $result ) {
			return $this->add_conflicts_to_import_result( $result );
		} );

		// Common
		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_items' ] );
	}
}
PK!��/3>>1modules/theme-builder/views/comments-template.phpnu�[���<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/** @var \ElementorPro\Modules\ThemeBuilder\Skins\Post_Comments_Skin_Classic $skin */
$skin = $GLOBALS['post_comment_skin_classic'];

if ( post_password_required() ) { ?>
	<p class="nocomments"><?php esc_html_e( 'This post is password protected. Enter the password to view comments.', 'elementor-pro' ); ?></p>
	<?php
	return;
}
?>

<?php

$comment_count = get_comment_count();

if ( $comment_count ) :
	?>
	<h3 id="comments">
		<?php echo esc_html( $skin->get_instance_value( 'title' ) ); ?>
	</h3>

	<div class="navigation">
		<div class="alignleft"><?php previous_comments_link(); ?></div>
		<div class="alignright"><?php next_comments_link(); ?></div>
	</div>

	<ol class="commentlist">
		<?php
		wp_list_comments( [
			'callback' => [ $skin, 'comment_callback' ],
		] );
		?>
	</ol>

	<div class="navigation">
		<div class="alignleft"><?php previous_comments_link(); ?></div>
		<div class="alignright"><?php next_comments_link(); ?></div>
	</div>
<?php else : ?>

	<?php if ( comments_open() ) : ?>
		<p class="nocomments"><?php echo esc_html( $skin->get_instance_value( 'title' ) ); ?></p>

	<?php else : ?>
		<!-- If comments are closed. -->
		<p class="nocomments"><?php esc_html_e( 'Comments are closed.', 'elementor-pro' ); ?></p>
		<?php
	endif;
endif;
PK!k&z��.modules/theme-builder/views/panel-template.phpnu�[���<?php
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

// TODO: Remove after moving to Route API
?>
<script type="text/template" id="tmpl-elementor-publish">
	<# if ( screens.length > 1 ) { #>
	<div id="elementor-publish__tabs" class="elementor-templates-modal__sidebar">
		<# screens.forEach( function( screen ) { #>
		<div class="elementor-publish__tab" data-screen="{{ screen.name }}">
			<div class="elementor-publish__tab__image">
				<img src="{{ screen.image }}">
			</div>
			<div class="elementor-publish__tab__content">
				<div class="elementor-publish__tab__title">{{{ screen.title }}}</div>
				<div class="elementor-publish__tab__description">{{{ screen.description }}}</div>
			</div>
		</div>
		<# } ); #>
	</div>
	<# } #>
	<div id="elementor-publish__screen" class="elementor-templates-modal__content"></div>
</script>

<script type="text/template" id="tmpl-elementor-component-publish">
	<# if ( Object.keys( tabs ).length > 1 ) { #>
	<div id="elementor-publish__tabs" class="elementor-templates-modal__sidebar">
		<# jQuery.each( tabs, ( tab, args ) => { #>
		<div class="elementor-component-tab elementor-publish__tab" data-tab="{{ tab }}">
			<div class="elementor-publish__tab__image">
				<img src="{{ args.image }}">
			</div>
			<div class="elementor-publish__tab__content">
				<div class="elementor-publish__tab__title">{{{ args.title }}}</div>
				<div class="elementor-publish__tab__description">{{{ args.description }}}</div>
			</div>
		</div>
		<# } ); #>
	</div>
	<# } #>
	<div id="elementor-publish__screen" class="elementor-templates-modal__content"></div>
</script>

<script type="text/template" id="tmpl-elementor-theme-builder-conditions-view">
	<div class="elementor-template-library-blank-icon">
		<img src="<?php echo ELEMENTOR_PRO_MODULES_URL; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>theme-builder/assets/images/conditions-tab.svg">
	</div>
	<div class="elementor-template-library-blank-title">{{{ elementorPro.translate( 'conditions_title', [ elementor.config.document.post_type_title ] ) }}}</div>
	<div class="elementor-template-library-blank-message">{{{ elementorPro.translate( 'conditions_description', [ elementor.config.document.post_type_title ] ) }}}</div>
	<div id="elementor-theme-builder-conditions">
		<div id="elementor-theme-builder-conditions-controls"></div>
	</div>
</script>

<script type="text/template" id="tmpl-elementor-theme-builder-conditions-repeater-row">
	<div class="elementor-theme-builder-conditions-repeater-row-controls"></div>
	<div class="elementor-repeater-row-tool elementor-repeater-tool-remove">
		<i class="eicon-close" aria-hidden="true"></i>
		<span class="elementor-screen-only"><?php esc_html_e( 'Remove this item', 'elementor-pro' ); ?></span>
	</div>
</script>

<script type="text/template" id="tmpl-elementor-theme-builder-button-preview">
	<i class="eicon-preview-medium tooltip-target" aria-hidden="true"  data-tooltip="<?php esc_attr_e( 'Preview Changes', 'elementor-pro' ); ?>"></i>
	<span class="elementor-screen-only">
		<?php esc_attr_e( 'Preview Changes', 'elementor-pro' ); ?>
	</span>
	<div class="elementor-panel-footer-sub-menu-wrapper">
		<div class="elementor-panel-footer-sub-menu">
			<div onclick="$e.run( 'theme-builder-publish/preview-settings' );" id="elementor-panel-footer-theme-builder-button-preview-settings" class="elementor-panel-footer-sub-menu-item">
				<i class="eicon-wrench" aria-hidden="true"></i>
				<span class="elementor-title"><?php esc_html_e( 'Settings', 'elementor-pro' ); ?></span>
			</div>
			<div onclick="$e.run( 'editor/documents/preview', { id: elementor.documents.getCurrent().id, force: true } );" id="elementor-panel-footer-theme-builder-button-open-preview" class="elementor-panel-footer-sub-menu-item">
				<i class="eicon-editor-external-link" aria-hidden="true"></i>
				<span class="elementor-title"><?php esc_html_e( 'Preview', 'elementor-pro' ); ?></span>
			</div>
		</div>
	</div>
</script>
PK!ק�VV4modules/theme-builder/views/theme-support-header.phpnu�[���<?php
use ElementorPro\Modules\ThemeBuilder\Module;
use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

$location_manager = Module::instance()->get_locations_manager();
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
	<meta charset="<?php bloginfo( 'charset' ); ?>">
	<?php
		// PHPCS - not a user input.
		echo Utils::get_meta_viewport( 'theme-builder' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	?>
	<?php if ( ! current_theme_supports( 'title-tag' ) ) : ?>
		<title>
			<?php
				// PHPCS - already escaped by WordPress.
				echo wp_get_document_title(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			?>
		</title>
	<?php endif; ?>
	<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>

<?php $location_manager->do_location( 'header' ); ?>
PK!/�M#4modules/theme-builder/views/theme-support-footer.phpnu�[���<?php
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

$location_manager = Module::instance()->get_locations_manager();
$location_manager->do_location( 'footer' ); ?>

<?php wp_footer(); ?>

</body>
</html>
PK!	7@s.s.6modules/query-control/classes/elementor-post-query.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Classes;

use Elementor\Widget_Base;
use ElementorPro\Modules\QueryControl\Module;
use ElementorPro\Core\Utils;

/**
 * Class Elementor_Post_Query
 * Wrapper for WP_Query.
 * Used by the various widgets for generating the query, according to the controls added using Group_Control_Query.
 * Each class instance is associated with the specific widget that is passed in the class constructor.
 */
class Elementor_Post_Query {
	/** @var Widget_Base */
	protected $widget;
	protected $query_args;
	protected $prefix;
	protected $widget_settings;

	/**
	 * Elementor_Post_Query constructor.
	 *
	 * @param Widget_Base $widget
	 * @param string $group_query_name
	 * @param array $query_args
	 */
	public function __construct( $widget, $group_query_name, $query_args = [] ) {
		$this->widget = $widget;
		$this->prefix = $group_query_name . '_';
		$this->query_args = $query_args;

		$settings = $this->widget->get_settings();
		$defaults = $this->get_query_defaults();

		$this->widget_settings = wp_parse_args( $settings, $defaults );
	}

	/**
	 * 1) build query args
	 * 2) invoke callback to fine-tune query-args
	 * 3) generate WP_Query object
	 * 4) if no results & fallback is set, generate a new WP_Query with fallback args
	 * 5) return WP_Query
	 *
	 * @return \WP_Query
	 */
	public function get_query() {
		$this->get_query_args();

		$offset_control = $this->get_widget_settings( 'offset' );

		$query_id = $this->get_widget_settings( 'query_id' );
		if ( ! empty( $query_id ) ) {
			add_action( 'pre_get_posts', [ $this, 'pre_get_posts_query_filter' ] );
		}

		$post_type = $this->get_widget_settings( 'post_type' );

		if ( 'by_id' !== $post_type && 0 < $offset_control ) {
			add_action( 'pre_get_posts', [ $this, 'fix_query_offset' ], 1 );
			add_filter( 'found_posts', [ $this, 'fix_query_found_posts' ], 1, 2 );
		}

		$query = new \WP_Query( $this->query_args );// SQL_CALC_FOUND_ROWS is used.

		remove_action( 'pre_get_posts', [ $this, 'pre_get_posts_query_filter' ] );
		remove_action( 'pre_get_posts', [ $this, 'fix_query_offset' ], 1 );
		remove_filter( 'found_posts', [ $this, 'fix_query_found_posts' ], 1 );

		Module::add_to_avoid_list( wp_list_pluck( $query->posts, 'ID' ) );

		do_action( 'elementor/query/query_results', $query, $this->widget );

		return $query;
	}

	protected function get_query_defaults() {
		$defaults = [
			$this->prefix . 'post_type' => 'post',
			$this->prefix . 'posts_ids' => [],
			$this->prefix . 'orderby' => 'date',
			$this->prefix . 'order' => 'desc',
			$this->prefix . 'offset' => 0,
			$this->prefix . 'posts_per_page' => 3,
		];

		return $defaults;
	}

	public function get_query_args() {
		$post_type = $this->get_widget_settings( 'post_type' );

		if ( 'current_query' === $post_type ) {
			$current_query_vars = $GLOBALS['wp_query']->query_vars;

			/**
			 * Current query variables.
			 *
			 * Filters the query variables for the current query.
			 *
			 * @since 1.0.0
			 *
			 * @param array $current_query_vars Current query variables.
			 */
			$current_query_vars = apply_filters_deprecated( 'elementor_pro/query_control/get_query_args/current_query', [ $current_query_vars ], '2.5.0', 'elementor/query/get_query_args/current_query' );
			$current_query_vars = apply_filters( 'elementor/query/get_query_args/current_query', $current_query_vars );
			$this->query_args = $current_query_vars;
			return $current_query_vars;
		}

		$this->set_common_args();
		$this->set_order_args();
		$this->set_pagination_args();
		$this->set_post_include_args();

		if ( 'by_id' !== $post_type ) {

			$this->set_post_exclude_args();
			$this->set_avoid_duplicates();
			$this->set_terms_args();
			$this->set_author_args();
			$this->set_date_args();
		}

		$this->query_args = apply_filters( 'elementor/query/query_args', $this->query_args, $this->widget );

		return $this->query_args;
	}

	protected function set_pagination_args() {
		$this->set_query_arg( 'posts_per_page', $this->get_widget_settings( 'posts_per_page' ) );
		$sticky_post = $this->get_widget_settings( 'ignore_sticky_posts' ) ? true : false;
		$this->set_query_arg( 'ignore_sticky_posts', $sticky_post );
	}

	protected function set_common_args() {
		$this->query_args['post_status'] = 'publish'; // Hide drafts/private posts for admins

		$post_type = $this->get_widget_settings( 'post_type' );
		if ( 'by_id' === $post_type ) {
			$post_types = Utils::get_public_post_types();
			$this->query_args['post_type'] = array_keys( $post_types );
		} else {
			$this->query_args['post_type'] = $post_type;
		}
	}

	protected function set_post_include_args() {

		if ( 'by_id' === $this->get_widget_settings( 'post_type' ) ) {

			$this->set_query_arg( 'post__in', $this->get_widget_settings( 'posts_ids' ) );

			if ( empty( $this->query_args['post__in'] ) ) {
				// If no selection - return an empty query
				$this->query_args['post__in'] = [ 0 ];
			}
		}
	}

	protected function set_post_exclude_args() {

		$exclude = $this->get_widget_settings( 'exclude' );

		if ( empty( $exclude ) ) {
			return;
		}

		$post__not_in = [];

		if ( $this->maybe_in_array( 'current_post', $exclude ) ) {
			if ( is_singular() ) {
				$post__not_in[] = get_queried_object_id();
			}
		}

		$exclude_ids = $this->get_widget_settings( 'exclude_ids' );
		if ( $this->maybe_in_array( 'manual_selection', $exclude ) && ! empty( $exclude_ids ) ) {
			$post__not_in = array_merge( $post__not_in, $exclude_ids );
		}

		$this->set_query_arg( 'post__not_in', $post__not_in );
	}

	protected function set_avoid_duplicates() {
		if ( 'yes' === $this->get_widget_settings( 'avoid_duplicates' ) ) {
			$post__not_in = isset( $this->query_args['post__not_in'] ) ? $this->query_args['post__not_in'] : [];
			$post__not_in = array_merge( $post__not_in, Module::$displayed_ids );
			$this->set_query_arg( 'post__not_in', $post__not_in, true );
		}
	}

	protected function set_terms_args() {

		$post_type = $this->get_widget_settings( 'post_type' );

		if ( 'by_id' === $post_type ) {
			return;
		}
		$this->build_terms_query_include( 'include_term_ids' );
		$this->build_terms_query_exclude( 'exclude_term_ids' );
	}

	protected function build_terms_query_include( $control_id ) {
		$this->build_terms_query( 'include', $control_id );
	}

	protected function build_terms_query_exclude( $control_id ) {
		$this->build_terms_query( 'exclude', $control_id, true );
	}

	protected function build_terms_query( $tab_id, $control_id, $exclude = false ) {
		$tab_id = $this->get_widget_settings( $tab_id );
		$settings_terms = $this->get_widget_settings( $control_id );
		if ( empty( $tab_id ) || empty( $settings_terms ) || ! $this->maybe_in_array( 'terms', $tab_id ) ) {
			return;
		}

		$terms = [];

		// Switch to term_id in order to get all term children (sub-categories):
		foreach ( $settings_terms as $id ) {
			$term_data = get_term_by( 'term_taxonomy_id', $id );
			if ( false !== $term_data ) {
				$taxonomy = $term_data->taxonomy;
				$terms[ $taxonomy ][] = $id;
			}
		}
		$this->insert_tax_query( $terms, $exclude );
	}

	protected function insert_tax_query( $terms, $exclude ) {
		$tax_query = [];
		foreach ( $terms as $taxonomy => $ids ) {
			$query = [
				'taxonomy' => $taxonomy,
				'field' => 'term_taxonomy_id',
				'terms' => $ids,
			];

			if ( $exclude ) {
				$query['operator'] = 'NOT IN';
			}

			$tax_query[] = $query;
		}

		if ( empty( $tax_query ) ) {
			return;
		}

		if ( empty( $this->query_args['tax_query'] ) ) {
			$this->query_args['tax_query'] = $tax_query;
		} else {
			$this->query_args['tax_query']['relation'] = 'AND';
			$this->query_args['tax_query'][] = $tax_query;
		}
	}

	protected function set_author_args() {

		$include_authors = $this->get_widget_settings( 'include_authors' );
		if ( ! empty( $include_authors ) && $this->maybe_in_array( 'authors', $this->get_widget_settings( 'include' ) ) ) {
			$this->set_query_arg( 'author__in', $include_authors );
		}

		$exclude_authors = $this->get_widget_settings( 'exclude_authors' );
		if ( ! empty( $exclude_authors ) && $this->maybe_in_array( 'authors', $this->get_widget_settings( 'exclude' ) ) ) {
			//exclude only if not explicitly included
			if ( empty( $this->query_args['author__in'] ) ) {
				$this->set_query_arg( 'author__not_in', $exclude_authors );
			}
		}
	}

	protected function set_order_args() {
		$order = $this->get_widget_settings( 'order' );
		if ( ! empty( $order ) ) {
			$this->set_query_arg( 'orderby', $this->get_widget_settings( 'orderby' ) );
			$this->set_query_arg( 'order', $this->get_widget_settings( 'order' ) );
		}
	}

	protected function set_date_args() {

		$select_date = $this->get_widget_settings( 'select_date' );
		if ( ! empty( $select_date ) ) {
			$date_query = [];
			switch ( $select_date ) {
				case 'today':
					$date_query['after'] = '-1 day';
					break;
				case 'week':
					$date_query['after'] = '-1 week';
					break;
				case 'month':
					$date_query['after'] = '-1 month';
					break;
				case 'quarter':
					$date_query['after'] = '-3 month';
					break;
				case 'year':
					$date_query['after'] = '-1 year';
					break;
				case 'exact':
					$after_date = $this->get_widget_settings( 'date_after' );
					if ( ! empty( $after_date ) ) {
						$date_query['after'] = $after_date;
					}
					$before_date = $this->get_widget_settings( 'date_before' );
					if ( ! empty( $before_date ) ) {
						$date_query['before'] = $before_date;
					}
					$date_query['inclusive'] = true;
					break;
			}

			$this->set_query_arg( 'date_query', $date_query );
		}
	}

	/**\
	 * @param string $control_name
	 *
	 * @return mixed|null
	 */
	protected function get_widget_settings( $control_name ) {
		$control_name = $this->prefix . $control_name;
		return isset( $this->widget_settings[ $control_name ] ) ? $this->widget_settings[ $control_name ] : null;
	}

	/**
	 * @param       $key
	 * @param       $value
	 * @param false $override
	 *
	 */
	protected function set_query_arg( $key, $value, $override = false ) {
		if ( ! isset( $this->query_args[ $key ] ) || $override ) {
			$this->query_args[ $key ] = $value;
		}
	}

	/**
	 * @param string    $value
	 * @param mixed     $maybe_array
	 *
	 * @return bool
	 */
	protected function maybe_in_array( $value, $maybe_array ) {
		return is_array( $maybe_array ) ? in_array( $value, $maybe_array, true ) : $value === $maybe_array;
	}

	/**
	 * @param \WP_Query $wp_query
	 */
	public function pre_get_posts_query_filter( $wp_query ) {
		if ( $this->widget ) {
			$query_id = $this->get_widget_settings( 'query_id' );
			$widget_name = $this->widget->get_name();
			/**
			 * Elementor Pro posts widget Query args.
			 *
			 * It allows developers to alter individual posts widget queries.
			 *
			 * The dynamic portions of the hook name, `$widget_name` & `$query_id`, refers to the Widget name and Query ID respectively.
			 *
			 * @since 2.1.0
			 *
			 * @param \WP_Query     $wp_query
			 * @param Widget_Base   $this->current_widget
			 */
			do_action_deprecated( "elementor_pro/{$widget_name}/query/{$query_id}", [ $wp_query, $this->widget ], '2.5.0', "elementor/query/{$query_id}" );
			do_action( "elementor/query/{$query_id}", $wp_query, $this->widget );
		}
	}

	/**
	 * @param \WP_Query $query
	 */
	public function fix_query_offset( &$query ) {
		$offset = $this->get_widget_settings( 'offset' );

		if ( $offset && $query->is_paged ) {
			$query->query_vars['offset'] = $offset + ( ( $query->query_vars['paged'] - 1 ) * $query->query_vars['posts_per_page'] );
		} else {
			$query->query_vars['offset'] = $offset;
		}
	}

	/**
	 * @param int       $found_posts
	 * @param \WP_Query $query
	 *
	 * @return int
	 */
	public function fix_query_found_posts( $found_posts, $query ) {
		$offset = $this->get_widget_settings( 'offset' );

		if ( $offset ) {
			$found_posts -= $offset;
		}

		return $found_posts;
	}
}
PK!~�.Ypp9modules/query-control/classes/elementor-related-query.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Classes;

use Elementor\Widget_Base;
use ElementorPro\Core\Utils;

class Elementor_Related_Query extends Elementor_Post_Query {
	private $fallback_args;
	private $related_post_id;

	/**
	 * Elementor_Post_Query constructor.
	 *
	 * @param Widget_Base $widget
	 * @param string $group_query_name
	 * @param array $query_args
	 * @param array $fallback_args
	 */
	public function __construct( $widget, $group_query_name, $query_args = [], $fallback_args = [] ) {
		parent::__construct( $widget, $group_query_name, $query_args );
		$this->related_post_id = -1;
		$this->fallback_args = $fallback_args;
	}

	/**
	 * 1) build query args
	 * 2) invoke callback to fine-tune query-args
	 * 3) generate WP_Query object
	 * 4) if no results & fallback is set, generate a new WP_Query with fallback args
	 * 5) return WP_Query
	 *
	 * @return \WP_Query
	 */
	public function get_query() {
		$query = parent::get_query();

		if ( ! $query->post_count && $this->is_valid_fallback() ) {
			$query = $this->get_fallback_query( $query );
		}

		return $query;
	}

	protected function get_fallback_query( $original_query ) {
		$this->set_fallback_query_args();
		$this->set_fallback_arg_by_settings( 'posts_per_page', $original_query->query_vars['posts_per_page'] );
		$this->fallback_args = apply_filters( 'elementor/query/fallback_query_args', $this->fallback_args, $this->widget );

		$this->fallback_args['no_found_rows'] = true;

		return new \WP_Query( $this->fallback_args );
	}

	private function is_valid_fallback() {
		$related_callback = $this->get_widget_settings( 'related_fallback' );
		if ( empty( $related_callback ) ) {
			return false;
		}
		$valid = false;
		switch ( $this->get_widget_settings( 'related_fallback' ) ) {
			case 'fallback_recent':
				$valid = true;
				break;
			case 'fallback_by_id':
				$fallback_id = $this->get_widget_settings( 'fallback_ids' );
				if ( ! empty( $fallback_id ) ) {
					$valid = true;
				}
				break;
		}

		return $valid;
	}

	protected function set_common_args() {
		parent::set_common_args();
		$post_id = get_queried_object_id();
		$this->related_post_id = is_singular() && ( 0 !== $post_id ) ? $post_id : null;
		$this->query_args['post_type'] = get_post_type( $this->related_post_id );
	}

	protected function set_post_exclude_args() {
		parent::set_post_exclude_args();

		if ( $this->related_post_id ) {
			$post_not_in = isset( $this->query_args['post__not_in'] ) ? $this->query_args['post__not_in'] : [];
			$post_not_in[] = $this->related_post_id;
			$this->query_args['post__not_in'] = $post_not_in;
		}
	}

	protected function build_terms_query_include( $control_id ) {
		/**
		 * Build tax_query for the "related posts" query:
		 * 1) find the list of taxonomies associated with the current-post
		 * 2) extract the ids for each taxonomy
		 * 3) build tax_query array accordingly
		 *
		 */
		if ( null === $this->get_widget_settings( 'include' ) || null === $this->get_widget_settings( 'related_taxonomies' ) || ! $this->maybe_in_array( 'terms', $this->get_widget_settings( 'include' ) ) ) {
			return;
		}

		$taxonomies = $this->get_widget_settings( 'related_taxonomies' );
		$terms = [];
		if ( is_string( $taxonomies ) ) {
			$terms[ $taxonomies ] = wp_get_post_terms( $this->related_post_id, $taxonomies, [ 'fields' => 'tt_ids' ] );
		} else {
			foreach ( $taxonomies as $taxonomy ) {
				$terms[ $taxonomy ] = wp_get_post_terms( $this->related_post_id, $taxonomy, [ 'fields' => 'tt_ids' ] );
			}
		}

		$this->insert_tax_query( $terms, false );
	}

	protected function set_author_args() {
		if ( ! $this->maybe_in_array( 'authors', $this->get_widget_settings( 'include' ) ) ) {
			return;
		}

		$this->query_args['author__in'] = get_post_field( 'post_author', $this->related_post_id );
	}

	/**
	 * @param string $key
	 * @param mixed  $value
	 * @param string $control_name
	 */
	private function set_fallback_arg_by_settings( $key, $value, $control_name = '' ) {
		if ( empty( $this->fallback_args[ $key ] ) ) {
			$settings = $this->widget->get_settings();
			$this->fallback_args[ $key ] = ( '' === $control_name || empty( $settings[ $this->prefix . $control_name ] ) ) ? $value : $settings[ $this->prefix . $control_name ];
		}
	}

	protected function set_fallback_query_args() {
		$this->set_fallback_arg_by_settings( 'ignore_sticky_posts', true );
		$this->set_fallback_arg_by_settings( 'post_status', 'publish' );

		$post_types = Utils::get_public_post_types();
		$post_types = array_keys( $post_types );

		$this->set_fallback_arg_by_settings( 'post_type', $post_types );

		if ( 'fallback_by_id' === $this->get_widget_settings( 'related_fallback' ) ) {
			$this->set_fallback_arg_by_settings( 'post__in', [ 0 ], 'fallback_ids' );
			$this->set_fallback_arg_by_settings( 'orderby', 'rand' );
		} else { //recent posts
			$this->set_fallback_arg_by_settings( 'orderby', 'date' );
			$this->set_fallback_arg_by_settings( 'order', 'DESC' );
		}
	}
}
PK!������8modules/query-control/controls/group-control-related.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Controls;

use Elementor\Controls_Manager;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\QueryControl\Module as Query_Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Group_Control_Related extends Group_Control_Query {

	public static function get_type() {
		return 'related-query';
	}

	/**
	 * Build the group-controls array
	 * Note: this method completely overrides any settings done in Group_Control_Posts
	 * @param string $name
	 *
	 * @return array
	 */
	protected function init_fields_by_name( $name ) {
		$fields = parent::init_fields_by_name( $name );

		$tabs_wrapper = $name . '_query_args';
		$include_wrapper = $name . '_query_include';

		$fields['post_type']['options']['related'] = esc_html__( 'Related', 'elementor-pro' );
		$fields['include_term_ids']['condition']['post_type!'][] = 'related';
		$fields['related_taxonomies']['condition']['post_type'][] = 'related';
		$fields['include_authors']['condition']['post_type!'][] = 'related';
		$fields['exclude_authors']['condition']['post_type!'][] = 'related';
		$fields['avoid_duplicates']['condition']['post_type!'][] = 'related';
		$fields['offset']['condition']['post_type!'][] = 'related';

		$related_taxonomies = [
			'label' => esc_html__( 'Term', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT2,
			'options' => $this->get_supported_taxonomies(),
			'label_block' => true,
			'multiple' => true,
			'condition' => [
				'include' => 'terms',
				'post_type' => [
					'related',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $include_wrapper,
		];

		$related_fallback = [
			'label' => esc_html__( 'Fallback', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'fallback_none' => esc_html__( 'None', 'elementor-pro' ),
				'fallback_by_id' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				'fallback_recent' => esc_html__( 'Recent Posts', 'elementor-pro' ),
			],
			'default' => 'fallback_none',
			'description' => esc_html__( 'Displayed if no relevant results are found. Manual selection display order is random', 'elementor-pro' ),
			'condition' => [
				'post_type' => 'related',
			],
			'separator' => 'before',
		];

		$fallback_ids = [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_POST,
			],
			'condition' => [
				'post_type' => 'related',
				'related_fallback' => 'fallback_by_id',
			],
			'export' => false,
		];

		$fields = \Elementor\Utils::array_inject( $fields, 'include_term_ids', [ 'related_taxonomies' => $related_taxonomies ] );
		$fields = \Elementor\Utils::array_inject( $fields, 'offset', [ 'related_fallback' => $related_fallback ] );
		$fields = \Elementor\Utils::array_inject( $fields, 'related_fallback', [ 'fallback_ids' => $fallback_ids ] );

		return $fields;
	}

	protected function get_supported_taxonomies() {
		$supported_taxonomies = [];

		$public_types = Utils::get_public_post_types();

		foreach ( $public_types as $type => $title ) {
			$taxonomies = get_object_taxonomies( $type, 'objects' );
			foreach ( $taxonomies as $key => $tax ) {
				if ( ! array_key_exists( $key, $supported_taxonomies ) ) {
					$label = $tax->label;
					if ( in_array( $tax->label, $supported_taxonomies ) ) {
						$label = $tax->label . ' (' . $tax->name . ')';
					}
					$supported_taxonomies[ $key ] = $label;
				}
			}
		}

		return $supported_taxonomies;
	}

	protected static function init_presets() {
		parent::init_presets();
		static::$presets['related'] = [
			'related_fallback',
			'fallback_ids',
		];
	}
}
PK!�0'(modules/query-control/controls/query.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Controls;

use Elementor\Control_Select2;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Query extends Control_Select2 {

	public function get_type() {
		return 'query';
	}

	/**
	 * 'query' can be used for passing query args in the structure and format used by WP_Query.
	 * @return array
	 */
	protected function get_default_settings() {
		return array_merge(
			parent::get_default_settings(), [
				'query' => '',
			]
		);
	}
}
PK!Z���7�76modules/query-control/controls/group-control-query.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Controls;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Base;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\QueryControl\Module as Query_Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Group_Control_Query extends Group_Control_Base {

	protected static $presets;
	protected static $fields;

	public static function get_type() {
		return 'query-group';
	}

	protected function init_args( $args ) {
		parent::init_args( $args );
		$args = $this->get_args();
		static::$fields = $this->init_fields_by_name( $args['name'] );
	}

	protected function init_fields() {
		$args = $this->get_args();

		return $this->init_fields_by_name( $args['name'] );
	}

	/**
	 * Build the group-controls array
	 * Note: this method completely overrides any settings done in Group_Control_Posts
	 * @param string $name
	 *
	 * @return array
	 */
	protected function init_fields_by_name( $name ) {
		$fields = [];

		$name .= '_';

		$fields['post_type'] = [
			'label' => esc_html__( 'Source', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'by_id' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				'current_query' => esc_html__( 'Current Query', 'elementor-pro' ),
			],
		];

		$fields['query_args'] = [
			'type' => Controls_Manager::TABS,
		];

		$tabs_wrapper = $name . 'query_args';
		$include_wrapper = $name . 'query_include';
		$exclude_wrapper = $name . 'query_exclude';

		$fields['query_include'] = [
			'type' => Controls_Manager::TAB,
			'label' => esc_html__( 'Include', 'elementor-pro' ),
			'tabs_wrapper' => $tabs_wrapper,
			'condition' => [
				'post_type!' => [
					'current_query',
					'by_id',
				],
			],
		];

		$fields['posts_ids'] = [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_POST,
			],
			'condition' => [
				'post_type' => 'by_id',
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $include_wrapper,
			'export' => false,
		];

		$fields['include'] = [
			'label' => esc_html__( 'Include By', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT2,
			'multiple' => true,
			'options' => [
				'terms' => esc_html__( 'Term', 'elementor-pro' ),
				'authors' => esc_html__( 'Author', 'elementor-pro' ),
			],
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'label_block' => true,
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $include_wrapper,
		];

		$fields['include_term_ids'] = [
			'label' => esc_html__( 'Term', 'elementor-pro' ),
			'description' => esc_html__( 'Terms are items in a taxonomy. The available taxonomies are: Categories, Tags, Formats and custom taxonomies.', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_CPT_TAX,
				'display' => 'detailed',
			],
			'group_prefix' => $name,
			'condition' => [
				'include' => 'terms',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $include_wrapper,
		];

		$fields['include_authors'] = [
			'label' => esc_html__( 'Author', 'elementor-pro' ),
			'label_block' => true,
			'type' => Query_Module::QUERY_CONTROL_ID,
			'multiple' => true,
			'default' => [],
			'options' => [],
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_AUTHOR,
			],
			'condition' => [
				'include' => 'authors',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $include_wrapper,
			'export' => false,
		];

		$fields['query_exclude'] = [
			'type' => Controls_Manager::TAB,
			'label' => esc_html__( 'Exclude', 'elementor-pro' ),
			'tabs_wrapper' => $tabs_wrapper,
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
		];

		$fields['exclude'] = [
			'label' => esc_html__( 'Exclude By', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT2,
			'multiple' => true,
			'options' => [
				'current_post' => esc_html__( 'Current Post', 'elementor-pro' ),
				'manual_selection' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				'terms' => esc_html__( 'Term', 'elementor-pro' ),
				'authors' => esc_html__( 'Author', 'elementor-pro' ),
			],
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'label_block' => true,
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
		];

		$fields['exclude_ids'] = [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_POST,
			],
			'condition' => [
				'exclude' => 'manual_selection',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
			'export' => false,
		];

		$fields['exclude_term_ids'] = [
			'label' => esc_html__( 'Term', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_CPT_TAX,
				'display' => 'detailed',
			],
			'group_prefix' => $name,
			'condition' => [
				'exclude' => 'terms',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
			'export' => false,
		];

		$fields['exclude_authors'] = [
			'label' => esc_html__( 'Author', 'elementor-pro' ),
			'type' => Query_Module::QUERY_CONTROL_ID,
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'autocomplete' => [
				'object' => Query_Module::QUERY_OBJECT_AUTHOR,
				'display' => 'detailed',
			],
			'condition' => [
				'exclude' => 'authors',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
			'export' => false,
		];

		$fields['avoid_duplicates'] = [
			'label' => esc_html__( 'Avoid Duplicates', 'elementor-pro' ),
			'type' => Controls_Manager::SWITCHER,
			'default' => '',
			'description' => esc_html__( 'Set to Yes to avoid duplicate posts from showing up. This only effects the frontend.', 'elementor-pro' ),
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
		];

		$fields['offset'] = [
			'label' => esc_html__( 'Offset', 'elementor-pro' ),
			'type' => Controls_Manager::NUMBER,
			'default' => 0,
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'description' => esc_html__( 'Use this setting to skip over posts (e.g. \'2\' to skip over 2 posts).', 'elementor-pro' ),
			'tabs_wrapper' => $tabs_wrapper,
			'inner_tab' => $exclude_wrapper,
		];

		$fields['select_date'] = [
			'label' => esc_html__( 'Date', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'post_type' => '',
			'options' => [
				'anytime' => esc_html__( 'All', 'elementor-pro' ),
				'today' => esc_html__( 'Past Day', 'elementor-pro' ),
				'week' => esc_html__( 'Past Week', 'elementor-pro' ),
				'month'  => esc_html__( 'Past Month', 'elementor-pro' ),
				'quarter' => esc_html__( 'Past Quarter', 'elementor-pro' ),
				'year' => esc_html__( 'Past Year', 'elementor-pro' ),
				'exact' => esc_html__( 'Custom', 'elementor-pro' ),
			],
			'default' => 'anytime',
			'multiple' => false,
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'separator' => 'before',
		];

		$fields['date_before'] = [
			'label' => esc_html__( 'Before', 'elementor-pro' ),
			'type' => Controls_Manager::DATE_TIME,
			'post_type' => '',
			'label_block' => false,
			'multiple' => false,
			'placeholder' => esc_html__( 'Choose', 'elementor-pro' ),
			'condition' => [
				'select_date' => 'exact',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'description' => esc_html__( 'Setting a ‘Before’ date will show all the posts published until the chosen date (inclusive).', 'elementor-pro' ),
		];

		$fields['date_after'] = [
			'label' => esc_html__( 'After', 'elementor-pro' ),
			'type' => Controls_Manager::DATE_TIME,
			'post_type' => '',
			'label_block' => false,
			'multiple' => false,
			'placeholder' => esc_html__( 'Choose', 'elementor-pro' ),
			'condition' => [
				'select_date' => 'exact',
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'description' => esc_html__( 'Setting an ‘After’ date will show all the posts published since the chosen date (inclusive).', 'elementor-pro' ),
		];

		$fields['orderby'] = [
			'label' => esc_html__( 'Order By', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'default' => 'post_date',
			'options' => [
				'post_date' => esc_html__( 'Date', 'elementor-pro' ),
				'post_title' => esc_html__( 'Title', 'elementor-pro' ),
				'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
				'rand' => esc_html__( 'Random', 'elementor-pro' ),
			],
			'condition' => [
				'post_type!' => 'current_query',
			],
		];

		$fields['order'] = [
			'label' => esc_html__( 'Order', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'default' => 'desc',
			'options' => [
				'asc' => esc_html__( 'ASC', 'elementor-pro' ),
				'desc' => esc_html__( 'DESC', 'elementor-pro' ),
			],
			'condition' => [
				'post_type!' => 'current_query',
			],
		];

		$fields['posts_per_page'] = [
			'label' => esc_html__( 'Posts Per Page', 'elementor-pro' ),
			'type' => Controls_Manager::NUMBER,
			'default' => 3,
			'condition' => [
				'post_type!' => 'current_query',
			],
		];

		$fields['ignore_sticky_posts'] = [
			'label' => esc_html__( 'Ignore Sticky Posts', 'elementor-pro' ),
			'type' => Controls_Manager::SWITCHER,
			'default' => 'yes',
			'condition' => [
				'post_type' => 'post',
			],
			'description' => esc_html__( 'Sticky-posts ordering is visible on frontend only', 'elementor-pro' ),
		];

		$fields['query_id'] = [
			'label' => esc_html__( 'Query ID', 'elementor-pro' ),
			'type' => Controls_Manager::TEXT,
			'default' => '',
			'description' => esc_html__( 'Give your Query a custom unique id to allow server side filtering', 'elementor-pro' ),
			'separator' => 'before',
		];

		static::init_presets();

		return $fields;
	}

	/**
	 * Presets: filter controls subsets to be be used by the specific Group_Control_Query instance.
	 *
	 * Possible values:
	 * 'full' : (default) all presets
	 * 'include' : the 'include' tab - by id, by taxonomy, by author
	 * 'exclude': the 'exclude' tab - by id, by taxonomy, by author
	 * 'advanced_exclude': extend the 'exclude' preset with 'avoid-duplicates' & 'offset'
	 * 'date': date query controls
	 * 'pagination': posts per-page
	 * 'order': sort & ordering controls
	 * 'query_id': allow saving a specific query for future usage.
	 *
	 * Usage:
	 * full: build a Group_Controls_Query with all possible controls,
	 * when 'full' is passed, the Group_Controls_Query will ignore all other preset values.
	 * $this->add_group_control(
	 * Group_Control_Query::get_type(),
	 * [
	 * ...
	 * 'presets' => [ 'full' ],
	 *  ...
	 *  ] );
	 *
	 * Subset: build a Group_Controls_Query with subset of the controls,
	 * in the following example, the Query controls will set only the 'include' & 'date' query args.
	 * $this->add_group_control(
	 * Group_Control_Query::get_type(),
	 * [
	 * ...
	 * 'presets' => [ 'include', 'date' ],
	 *  ...
	 *  ] );
	 */
	protected static function init_presets() {

		$tabs = [
			'query_args',
			'query_include',
			'query_exclude',
		];

		static::$presets['include'] = array_merge( $tabs, [
			'include',
			'include_ids',
			'include_term_ids',
			'include_authors',
		] );

		static::$presets['exclude'] = array_merge( $tabs, [
			'exclude',
			'exclude_ids',
			'exclude_term_ids',
			'exclude_authors',
		] );

		static::$presets['advanced_exclude'] = array_merge( static::$presets['exclude'], [
			'avoid_duplicates',
			'offset',
		] );

		static::$presets['date'] = [
			'select_date',
			'date_before',
			'date_after',
		];

		static::$presets['pagination'] = [
			'posts_per_page',
			'ignore_sticky_posts',
		];

		static::$presets['order'] = [
			'orderby',
			'order',
		];

		static::$presets['query_id'] = [
			'query_id',
		];
	}

	private function filter_by_presets( $presets, $fields ) {

		if ( in_array( 'full', $presets, true ) ) {
			return $fields;
		}

		$control_ids = [];
		foreach ( static::$presets as $key => $preset ) {
			$control_ids = array_merge( $control_ids, $preset );
		}

		foreach ( $presets as $preset ) {
			if ( array_key_exists( $preset, static::$presets ) ) {
				$control_ids = array_diff( $control_ids, static::$presets[ $preset ] );
			}
		}

		foreach ( $control_ids as $remove ) {
			unset( $fields[ $remove ] );
		}

		return $fields;

	}

	protected function prepare_fields( $fields ) {

		$args = $this->get_args();

		if ( ! empty( $args['presets'] ) ) {
			$fields = $this->filter_by_presets( $args['presets'], $fields );
		}

		$post_type_args = [];
		if ( ! empty( $args['post_type'] ) ) {
			$post_type_args['post_type'] = $args['post_type'];
		}

		$post_types = Utils::get_public_post_types( $post_type_args );

		$fields['post_type']['options'] = array_merge( $post_types, $fields['post_type']['options'] );
		$fields['post_type']['default'] = key( $post_types );
		$fields['posts_ids']['object_type'] = array_keys( $post_types );

		//skip parent, go directly to grandparent
		return Group_Control_Base::prepare_fields( $fields );
	}

	protected function get_child_default_args() {
		$args = parent::get_child_default_args();
		$args['presets'] = [ 'full' ];

		return $args;
	}

	protected function get_default_options() {
		return [
			'popover' => false,
		];
	}
}
PK!o�j� � 6modules/query-control/controls/group-control-posts.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl\Controls;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Base;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\QueryControl\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Group_Control_Posts
 * @deprecated since 2.5.0, use class Group_Control_Query and Elementor_Post_Query
 */
class Group_Control_Posts extends Group_Control_Base {

	const INLINE_MAX_RESULTS = 15;

	protected static $fields;

	public static function get_type() {
		return 'posts';
	}

	/**
	 * @deprecated since 2.4.0 using Control's settings 'export' = false
	 *
	 * @param $element
	 * @param $control_id
	 *
	 * @return mixed
	 */
	public static function on_export_remove_setting_from_element( $element, $control_id ) {
		_deprecated_function( __METHOD__, '2.4.0' );

		unset( $element['settings'][ $control_id . '_posts_ids' ] );
		unset( $element['settings'][ $control_id . '_authors' ] );

		foreach ( Utils::get_public_post_types() as $post_type => $label ) {
			$taxonomy_filter_args = [
				'show_in_nav_menus' => true,
				'object_type' => [ $post_type ],
			];

			$taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );

			foreach ( $taxonomies as $taxonomy => $object ) {
				unset( $element['settings'][ $control_id . '_' . $taxonomy . '_ids' ] );
			}
		}

		return $element;
	}

	protected function init_fields() {
		$fields = [];

		$fields['post_type'] = [
			'label' => esc_html__( 'Source', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
		];

		$fields['posts_ids'] = [
			'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
			'type' => Module::QUERY_CONTROL_ID,
			'post_type' => '',
			'options' => [],
			'label_block' => true,
			'multiple' => true,
			'filter_type' => 'by_id',
			'condition' => [
				'post_type' => 'by_id',
			],
			'export' => false,
		];

		$fields['authors'] = [
			'label' => esc_html__( 'Author', 'elementor-pro' ),
			'label_block' => true,
			'type' => Module::QUERY_CONTROL_ID,
			'multiple' => true,
			'default' => [],
			'options' => [],
			'filter_type' => 'author',
			'condition' => [
				'post_type!' => [
					'by_id',
					'current_query',
				],
			],
			'export' => false,
		];

		return $fields;
	}

	protected function prepare_fields( $fields ) {
		$args = $this->get_args();

		$post_type_args = [];
		if ( ! empty( $args['post_type'] ) ) {
			$post_type_args['post_type'] = $args['post_type'];
		}

		$post_types = Utils::get_public_post_types( $post_type_args );

		$post_types_options = $post_types;

		$post_types_options['by_id'] = esc_html__( 'Manual Selection', 'elementor-pro' );
		$post_types_options['current_query'] = esc_html__( 'Current Query', 'elementor-pro' );

		$fields['post_type']['options'] = $post_types_options;

		$fields['post_type']['default'] = key( $post_types );

		$fields['posts_ids']['object_type'] = array_keys( $post_types );

		$taxonomy_filter_args = [
			'show_in_nav_menus' => true,
		];

		$taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );

		// bypass bug in WP_List_Util::filter() causing wrong array comparison
		// when a taxonomy belongs to several post-types (e.g. when using woocommerce-product-add-ons)
		// ( using simple '==' rather than in_array() or array_intersect() ).
		$filtered_taxonomies = [];
		if ( ! empty( $args['post_type'] ) ) {
			foreach ( $taxonomies as $taxonomy => $obj ) {
				$tax_array = (array) $obj;
				if ( in_array( $args['post_type'], $tax_array['object_type'] ) ) {
					$filtered_taxonomies[ $taxonomy ] = $obj;
				}
			}
		} else {
			$filtered_taxonomies = $taxonomies;
		}

		foreach ( $filtered_taxonomies as $taxonomy => $object ) {
			$taxonomy_args = [
				'label' => $object->label,
				'type' => Module::QUERY_CONTROL_ID,
				'label_block' => true,
				'multiple' => true,
				'object_type' => $taxonomy,
				'options' => [],
				'condition' => [
					'post_type' => $object->object_type,
				],
				'export' => false,
			];

			$count = wp_count_terms( $taxonomy );

			$options = [];

			// For large websites, use Ajax to search
			if ( $count > self::INLINE_MAX_RESULTS ) {
				$taxonomy_args['type'] = Module::QUERY_CONTROL_ID;

				$taxonomy_args['filter_type'] = 'taxonomy';
			} else {
				$taxonomy_args['type'] = Controls_Manager::SELECT2;

				$terms = get_terms( [
					'taxonomy' => $taxonomy,
					'hide_empty' => false,
				] );

				foreach ( $terms as $term ) {
					$options[ $term->term_id ] = $term->name;
				}

				$taxonomy_args['options'] = $options;
			}

			$fields[ $taxonomy . '_ids' ] = $taxonomy_args;
		}

		return parent::prepare_fields( $fields );
	}

	protected function get_default_options() {
		return [
			'popover' => false,
		];
	}

	protected function fix_offset( $query_args, $settings, $prefix = '' ) {
		if ( 0 < $settings[ $prefix . 'offset' ] ) {
			/**
			 * Due to a WordPress bug, the offset will be set later, in $this->fix_query_offset()
			 * @see https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination
			 */
			$query_args['offset_to_fix'] = $settings[ $prefix . 'offset' ];
		}

		return $query_args;
	}

	protected function build_query_args( $settings, $control_id_prefix ) {

		$prefix = $control_id_prefix . '_';

		$post_type = $settings[ $prefix . 'post_type' ];

		$query_args = [
			'orderby' => $settings['orderby'],
			'order' => $settings['order'],
			'ignore_sticky_posts' => 1,
			'post_status' => 'publish', // Hide drafts/private posts for admins
		];

		if ( 'by_id' === $post_type ) {
			$post_types = Utils::get_public_post_types();

			$query_args['post_type'] = array_keys( $post_types );
			$query_args['posts_per_page'] = -1;

			$query_args['post__in'] = $settings[ $prefix . 'posts_ids' ];

			if ( empty( $query_args['post__in'] ) ) {
				// If no selection - return an empty query
				$query_args['post__in'] = [ 0 ];
			}
		} else {
			$query_args['post_type'] = $post_type;
			$query_args['posts_per_page'] = $settings['posts_per_page'];
			$query_args['tax_query'] = [];

			$query_args = $this->fix_offset( $query_args, $settings );

			$taxonomies = get_object_taxonomies( $post_type, 'objects' );

			foreach ( $taxonomies as $object ) {
				$setting_key = $prefix . $object->name . '_ids';

				if ( ! empty( $settings[ $setting_key ] ) ) {
					$query_args['tax_query'][] = [
						'taxonomy' => $object->name,
						'field' => 'term_id',
						'terms' => $settings[ $setting_key ],
					];
				}
			}
		}

		if ( ! empty( $settings[ $prefix . 'authors' ] ) ) {
			$query_args['author__in'] = $settings[ $prefix . 'authors' ];
		}

		$post__not_in = [];
		if ( ! empty( $settings['exclude'] ) ) {
			if ( in_array( 'current_post', $settings['exclude'], true ) ) {
				if ( wp_doing_ajax() && ! empty( $_REQUEST['post_id'] ) ) {
					$post__not_in[] = $_REQUEST['post_id'];
				} elseif ( is_singular() ) {
					$post__not_in[] = get_queried_object_id();
				}
			}

			if ( in_array( 'manual_selection', $settings['exclude'], true ) && ! empty( $settings['exclude_ids'] ) ) {
				$post__not_in = array_merge( $post__not_in, $settings['exclude_ids'] );
			}
		}

		if ( ! empty( $settings['avoid_duplicates'] ) && 'yes' === $settings['avoid_duplicates'] ) {
			$post__not_in = array_merge( $post__not_in, Module::$displayed_ids );
		}

		$query_args['post__not_in'] = $post__not_in;

		return $query_args;
	}

	public function get_query_args( $control_id_prefix, $settings ) {

		$defaults = [
			$control_id_prefix . '_post_type' => 'post',
			$control_id_prefix . '_posts_ids' => [],
			'orderby' => 'date',
			'order' => 'desc',
			'posts_per_page' => 3,
			'offset' => 0,
		];

		$settings = wp_parse_args( $settings, $defaults );

		$post_type = $settings[ $control_id_prefix . '_post_type' ];

		if ( 'current_query' === $post_type ) {
			$current_query_vars = $GLOBALS['wp_query']->query_vars;

			/**
			 * Current query variables.
			 *
			 * Filters the query variables for the current query.
			 *
			 * @since 1.0.0
			 *
			 * @param array $current_query_vars Current query variables.
			 */
			$current_query_vars = apply_filters( 'elementor_pro/query_control/get_query_args/current_query', $current_query_vars );

			return $current_query_vars;
		}

		return $this->build_query_args( $settings, $control_id_prefix );
	}
}
PK!�WI��s�s modules/query-control/module.phpnu�[���<?php
namespace ElementorPro\Modules\QueryControl;

use Elementor\Controls_Manager;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use Elementor\TemplateLibrary\Source_Local;
use Elementor\Widget_Base;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\QueryControl\Classes\Elementor_Post_Query;
use ElementorPro\Modules\QueryControl\Classes\Elementor_Related_Query;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Posts;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Query;
use ElementorPro\Modules\QueryControl\Controls\Group_Control_Related;
use ElementorPro\Modules\QueryControl\Controls\Query;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const QUERY_CONTROL_ID = 'query';
	const AUTOCOMPLETE_ERROR_CODE = 'QueryControlAutocomplete';
	const GET_TITLES_ERROR_CODE = 'QueryControlGetTitles';

	// Supported objects for query:
	const QUERY_OBJECT_POST = 'post';
	const QUERY_OBJECT_TAX = 'tax';
	const QUERY_OBJECT_AUTHOR = 'author';
	const QUERY_OBJECT_USER = 'user';
	const QUERY_OBJECT_LIBRARY_TEMPLATE = 'library_template';
	const QUERY_OBJECT_ATTACHMENT = 'attachment';

	// Objects that are manipulated by js (not sent in AJAX):
	const QUERY_OBJECT_CPT_TAX = 'cpt_tax';
	const QUERY_OBJECT_JS = 'js';

	public static $displayed_ids = [];

	private static $supported_objects_for_query = [
		self::QUERY_OBJECT_POST,
		self::QUERY_OBJECT_TAX,
		self::QUERY_OBJECT_AUTHOR,
		self::QUERY_OBJECT_USER,
		self::QUERY_OBJECT_LIBRARY_TEMPLATE,
		self::QUERY_OBJECT_ATTACHMENT,
	];

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}

	public static function add_to_avoid_list( $ids ) {
		self::$displayed_ids = array_unique( array_merge( self::$displayed_ids, $ids ) );
	}

	public static function get_avoid_list_ids() {
		return self::$displayed_ids;
	}

	/**
	 * @deprecated use Group_Control_Query capabilities
	 *
	 * @param Widget_Base $widget
	 */
	public static function add_exclude_controls( $widget ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function( __METHOD__, '2.5.0', 'class Group_Control_Query' );

		$widget->add_control(
			'exclude',
			[
				'label' => esc_html__( 'Exclude', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => [
					'current_post' => esc_html__( 'Current Post', 'elementor-pro' ),
					'manual_selection' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				],
				'label_block' => true,
			]
		);

		$widget->add_control(
			'exclude_ids',
			[
				'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
				'type' => self::QUERY_CONTROL_ID,
				'autocomplete' => [
					'object' => self::QUERY_OBJECT_POST,
				],
				'options' => [],
				'label_block' => true,
				'multiple' => true,
				'condition' => [
					'exclude' => 'manual_selection',
				],
			]
		);

		$widget->add_control(
			'avoid_duplicates',
			[
				'label' => esc_html__( 'Avoid Duplicates', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'description' => esc_html__( 'Set to Yes to avoid duplicate posts from showing up on the page. This only affects the frontend.', 'elementor-pro' ),
			]
		);

	}

	public function get_name() {
		return 'query-control';
	}

	private function search_taxonomies( $query_params, $query_data, $data ) {
		$by_field = $query_data['query']['by_field'];
		$terms = get_terms( $query_params );

		$results = [];

		foreach ( $terms as $term ) {
			$results[] = [
				'id' => $term->{$by_field},
				'text' => $this->get_term_name( $term, $query_data['display'], $data ),
			];
		}

		return $results;

	}

	/**
	 * 'autocomplete' => [
	 *    'object' => 'post|tax|user|library_template|attachment|js', // required
	 *    'display' => 'minimal(default)|detailed|custom_filter_name',
	 *    'by_field' => 'term_taxonomy_id(default)|term_id', // relevant only if `object` is tax|cpt_tax
	 *    'query' => [
	 *        'post_type' => 'any|post|page|custom-post-type', // can be an array for multiple post types.
	 *                                                         // 'any' should not be used if 'object' is 'tax' or 'cpt_tax'.
	 *         ...
	 *    ],
	 * ],
	 *
	 * 'object' (required):    the queried object.
	 *      supported values:
	 *      'post'              : will use WP_Query(), if query['post_type'] is empty or missing, will default to 'any'.
	 *      'tax'               : will use get_terms().
	 *                            When 'post_type' is provided, will first use get_object_taxonomies() to build 'taxonomy'
	 *                            args then invoke get_terms().
	 *                            When both 'taxonomy' and 'post_type' are provided, 'post_type' is ignored.
	 *      'cpt_tax'           : Used in frontend only, will be replaced to 'tax' by js.
	 *                            Will use get_object_taxonomies() to build 'taxonomy' args then use get_terms().
	 *      'user'              : will use WP_User_Query() with the args defined in 'query'.
	 *      'author'            : will use WP_User_Query() with pre-defined args.
	 *      'library_template'  : will use WP_Query() with post_type = Source_Local::CPT.
	 *      'attachment'        : will use WP_Query() with post_type = attachment.
	 *      'js'                : Query data is populated by JavaScript.
	 *                            By the time the data is sent to the server,
	 *                            the 'object' value should be replaced with one of the other valid 'object' values and
	 *                            the Query array populated accordingly.
	 *      user_defined        : will invoke apply_filters() using the user_defined value as filter name,
	 *                            `elementor/query/[get_value_titles|get_autocomplete]/{user_defined}`.
	 *
	 * 'display':   output format
	 *      supported values:
	 *      'minimal' (default) : name only
	 *      'detailed'          : for Post & Taxonomies -> `[Taxonomy|Post-Type] : [parent] ... [parent] > name`
	 *                            for Users & Authors -> `name [email]`
	 *      user_defined        : will invoke apply_filters using the user_defined value as filter name,
	 *                            `elementor/query/[get_value_titles|get_autocomplete]/display/{user_defined}`
	 *
	 * `by_field`:  value of 'id' field in taxonomy query. Relevant only if `object` is tax|cpt_tax
	 *      supported values:
	 *      'term_taxonomy_id'(default)
	 *      'term_id'
	 *
	 * 'query': array of args to be passed "as-is" to the relevant query function (see 'object').
	 *
	 **
	 *
	 * @param array $data
	 *
	 * @return array | \WP_Error
	 */
	private function autocomplete_query_data( $data ) {
		if ( empty( $data['autocomplete'] ) || empty( $data['q'] ) || empty( $data['autocomplete']['object'] ) ) {
			return new \WP_Error( self::AUTOCOMPLETE_ERROR_CODE, 'Empty or incomplete data' );
		}

		$autocomplete = $data['autocomplete'];

		if ( in_array( $autocomplete['object'], self::$supported_objects_for_query, true ) ) {
			$method_name = 'autocomplete_query_for_' . $autocomplete['object'];
			if ( empty( $autocomplete['display'] ) ) {
				$autocomplete['display'] = 'minimal';
				$data['autocomplete'] = $autocomplete;
			}
			$query = $this->$method_name( $data );
			if ( is_wp_error( $query ) ) {
				return $query;
			}
			$autocomplete['query'] = $query;
		}

		return $autocomplete;
	}

	private function autocomplete_query_for_post( $data ) {
		if ( ! isset( $data['autocomplete']['query'] ) ) {
			return new \WP_Error( self::AUTOCOMPLETE_ERROR_CODE, 'Missing autocomplete[`query`] data' );
		}
		$query = $data['autocomplete']['query'];
		if ( empty( $query['post_type'] ) ) {
			$query['post_type'] = 'any';
		}
		$query['posts_per_page'] = -1;
		$query['s'] = $data['q'];

		return $query;
	}

	private function autocomplete_query_for_library_template( $data ) {
		$query = $data['autocomplete']['query'];

		$query['post_type'] = Source_Local::CPT;
		$query['orderby'] = 'meta_value';
		$query['order'] = 'ASC';

		if ( empty( $query['posts_per_page'] ) ) {
			$query['posts_per_page'] = -1;
		}
		$query['s'] = $data['q'];

		return $query;
	}

	private function autocomplete_query_for_attachment( $data ) {
		$query = $this->autocomplete_query_for_post( $data );
		if ( is_wp_error( $query ) ) {
			return $query;
		}
		$query['post_type'] = 'attachment';
		$query['post_status'] = 'inherit';

		return $query;
	}

	private function autocomplete_query_for_tax( $data ) {
		$query = $data['autocomplete']['query'];

		if ( empty( $query['taxonomy'] ) && ! empty( $query['post_type'] ) ) {
			$query['taxonomy'] = get_object_taxonomies( $query['post_type'] );
		}
		$query['search'] = $data['q'];
		$query['hide_empty'] = false;
		return $query;
	}

	private function autocomplete_query_for_author( $data ) {
		$query = $this->autocomplete_query_for_user( $data );
		if ( is_wp_error( $query ) ) {
			return $query;
		}
		$query['who'] = 'authors';
		return $query;
	}

	private function autocomplete_query_for_user( $data ) {
		$query = $data['autocomplete']['query'];
		if ( ! empty( $query ) ) {
			return $query;
		}

		$query = [
			'fields' => [
				'ID',
				'display_name',
			],
			'search' => '*' . $data['q'] . '*',
			'search_columns' => [
				'user_login',
				'user_nicename',
			],
		];
		if ( 'detailed' === $data['autocomplete']['display'] ) {
			$query['fields'][] = 'user_email';
		}
		return $query;
	}

	private function get_titles_query_data( $data ) {
		if ( empty( $data['get_titles'] ) || empty( $data['id'] ) || empty( $data['get_titles']['object'] ) ) {
			return new \WP_Error( self::GET_TITLES_ERROR_CODE, 'Empty or incomplete data' );
		}

		$get_titles = $data['get_titles'];
		if ( empty( $get_titles['query'] ) ) {
			$get_titles['query'] = [];
		}

		if ( in_array( $get_titles['object'], self::$supported_objects_for_query, true ) ) {
			$method_name = 'get_titles_query_for_' . $get_titles['object'];
			$query = $this->$method_name( $data );
			if ( is_wp_error( $query ) ) {
				return $query;
			}
			$get_titles['query'] = $query;
		}

		if ( empty( $get_titles['display'] ) ) {
			$get_titles['display'] = 'minimal';
		}

		return $get_titles;
	}

	private function get_titles_query_for_post( $data ) {
		$query = $data['get_titles']['query'];
		if ( empty( $query['post_type'] ) ) {
			$query['post_type'] = 'any';
		}
		$query['posts_per_page'] = -1;
		$query['post__in'] = (array) $data['id'];

		return $query;
	}

	private function get_titles_query_for_attachment( $data ) {
		$query = $this->get_titles_query_for_post( $data );
		$query['post_type'] = 'attachment';
		$query['post_status'] = 'inherit';

		return $query;
	}

	private function get_titles_query_for_tax( $data ) {
		$by_field = empty( $data['get_titles']['by_field'] ) ? 'term_taxonomy_id' : $data['get_titles']['by_field'];
		return [
			$by_field => (array) $data['id'],
			'hide_empty' => false,
		];
	}


	private function get_titles_query_for_library_template( $data ) {
		$query = $data['get_titles']['query'];

		$query['post_type'] = Source_Local::CPT;
		$query['orderby'] = 'meta_value';
		$query['order'] = 'ASC';

		if ( empty( $query['posts_per_page'] ) ) {
			$query['posts_per_page'] = -1;
		}

		return $query;
	}

	private function get_titles_query_for_author( $data ) {
		$query = $this->get_titles_query_for_user( $data );
		$query['who'] = 'authors';
		$query['has_published_posts'] = true;
		return $query;
	}

	private function get_titles_query_for_user( $data ) {
		$query = $data['get_titles']['query'];
		if ( ! empty( $query ) ) {
			return $query;
		}
		$query = [
			'fields' => [
				'ID',
				'display_name',
			],
			'include' => (array) $data['id'],
		];
		if ( 'detailed' === $data['get_titles']['display'] ) {
			$query['fields'][] = 'user_email';
		}
		return $query;
	}

	/**
	 * @deprecated 2.6.0 use new `autocomplete` format
	 *
	 * @param $data
	 *
	 * @return mixed
	 */
	private function extract_post_type( $data ) {

		if ( ! empty( $data['query'] ) && ! empty( $data['query']['post_type'] ) ) {
			return $data['query']['post_type'];
		}

		return $data['object_type'];
	}

	/**
	 * @deprecated 2.6.0 use new `autocomplete` format
	 *
	 * @param $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function ajax_posts_filter_autocomplete_deprecated( $data ) {
		if ( empty( $data['filter_type'] ) || empty( $data['q'] ) ) {
			throw new \Exception( 'Bad Request' );
		}

		$results = [];

		switch ( $data['filter_type'] ) {
			case 'taxonomy':
				$query_params = [
					'taxonomy' => $this->extract_post_type( $data ),
					'search' => $data['q'],
					'hide_empty' => false,
				];

				$terms = get_terms( $query_params );
				if ( is_wp_error( $terms ) ) {
					break;
				}

				global $wp_taxonomies;

				foreach ( $terms as $term ) {
					$term_name = $this->get_term_name_with_parents( $term );
					if ( ! empty( $data['include_type'] ) ) {
						$text = $wp_taxonomies[ $term->taxonomy ]->labels->name . ': ' . $term_name;
					} else {
						$text = $term_name;
					}

					$results[] = [
						'id' => $term->term_taxonomy_id,
						'text' => $text,
					];
				}

				break;

			case 'by_id':
			case 'post':
				$query_params = [
					'post_type' => $this->extract_post_type( $data ),
					's' => $data['q'],
					'posts_per_page' => -1,
				];

				if ( 'attachment' === $query_params['post_type'] ) {
					$query_params['post_status'] = 'inherit';
				}

				$query = new \WP_Query( $query_params );

				foreach ( $query->posts as $post ) {
					$post_type_obj = get_post_type_object( $post->post_type );
					if ( ! empty( $data['include_type'] ) ) {
						$text = $post_type_obj->labels->name . ': ' . $post->post_title;
					} else {
						$text = ( $post_type_obj->hierarchical ) ? $this->get_post_name_with_parents( $post ) : $post->post_title;
					}

					$results[] = [
						'id' => $post->ID,
						'text' => esc_html( $text ),
					];
				}
				break;

			case 'author':
				$query_params = [
					'who' => 'authors',
					'has_published_posts' => true,
					'fields' => [
						'ID',
						'display_name',
					],
					'search' => '*' . $data['q'] . '*',
					'search_columns' => [
						'user_login',
						'user_nicename',
					],
				];

				$user_query = new \WP_User_Query( $query_params );

				foreach ( $user_query->get_results() as $author ) {
					$results[] = [
						'id' => $author->ID,
						'text' => $author->display_name,
					];
				}
				break;
			default:
				$results = apply_filters_deprecated( 'elementor_pro/query_control/get_autocomplete/' . $data['filter_type'], $data, '3.0.0', 'elementor/query/get_autocomplete/' . $data['filter_type'] );
				$results = apply_filters( 'elementor/query/get_autocomplete/' . $data['filter_type'], [], $data );
		}

		return [
			'results' => $results,
		];
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function ajax_posts_filter_autocomplete( array $data ) {
		$query_data = $this->autocomplete_query_data( $data );
		if ( is_wp_error( $query_data ) ) {
			/** @var \WP_Error $query_data */
			throw new \Exception( $query_data->get_error_code() . ':' . $query_data->get_error_message() );
		}

		$results = [];
		$display = $query_data['display'];
		$query_args = $query_data['query'];
		$query_args['no_found_rows'] = true;

		switch ( $query_data['object'] ) {
			case self::QUERY_OBJECT_TAX:
				$by_field = ! empty( $query_data['by_field'] ) ? $query_data['by_field'] : 'term_taxonomy_id';
				$terms = get_terms( $query_args );
				if ( is_wp_error( $terms ) ) {
					break;
				}
				foreach ( $terms as $term ) {
					if ( apply_filters( "elementor/query/get_autocomplete/tax/{$display}", true, $term, $data ) ) {
						$results[] = [
							'id' => $term->{$by_field},
							'text' => $this->get_term_name( $term, $display, $data ),
						];
					}
				}
				break;
			case self::QUERY_OBJECT_ATTACHMENT:
			case self::QUERY_OBJECT_POST:
				$query = new \WP_Query( $query_args );

				foreach ( $query->posts as $post ) {
					if ( apply_filters( "elementor/query/get_autocomplete/custom/{$display}", true, $post, $data ) ) {
						$text = $this->format_post_for_display( $post, $display, $data );
						$results[] = [
							'id' => $post->ID,
							'text' => $text,
						];
					}
				}
				break;
			case self::QUERY_OBJECT_LIBRARY_TEMPLATE:
				$query = new \WP_Query( $query_args );

				foreach ( $query->posts as $post ) {
					$document = Plugin::elementor()->documents->get( $post->ID );
					if ( $document ) {
						$text = esc_html( $post->post_title ) . ' (' . $document->get_post_type_title() . ')';
						$results[] = [
							'id' => $post->ID,
							'text' => $text,
						];
					}
				}
				break;
			case self::QUERY_OBJECT_USER:
			case self::QUERY_OBJECT_AUTHOR:
				$user_query = new \WP_User_Query( $query_args );

				foreach ( $user_query->get_results() as $user ) {
					if ( apply_filters( "elementor/query/get_autocomplete/user/{$display}", true, $user, $data ) ) {
						$results[] = [
							'id' => $user->ID,
							'text' => $this->format_user_for_display( $user, $display, $data ),
						];
					}
				}
				break;
			default:
				$results = apply_filters( 'elementor/query/get_autocomplete/' . $query_data['filter_type'], $results, $data );
		}

		return [
			'results' => $results,
		];
	}

	/**
	 * @deprecated 2.6.0 use new `autocomplete` format
	 *
	 * @param $request
	 *
	 * @return array
	 */
	public function ajax_posts_control_value_titles_deprecated( $request ) {
		$ids = (array) $request['id'];

		$results = [];

		switch ( $request['filter_type'] ) {
			case 'taxonomy':
				$terms = get_terms(
					[
						'term_taxonomy_id' => $ids,
						'hide_empty' => false,
					]
				);
				if ( is_wp_error( $terms ) ) {
					break;
				}

				global $wp_taxonomies;
				foreach ( $terms as $term ) {
					$term_name = $this->get_term_name_with_parents( $term );
					if ( ! empty( $request['include_type'] ) ) {
						$text = $wp_taxonomies[ $term->taxonomy ]->labels->name . ': ' . $term_name;
					} else {
						$text = $term_name;
					}
					$results[ $term->{$by_field} ] = $text;
				}
				break;

			case 'by_id':
			case 'post':
				$query = new \WP_Query(
					[
						'post_type' => 'any',
						'post__in' => $ids,
						'posts_per_page' => -1,
					]
				);

				foreach ( $query->posts as $post ) {
					$results[ $post->ID ] = esc_html( $post->post_title );
				}
				break;

			case 'author':
				$query_params = [
					'who' => 'authors',
					'has_published_posts' => true,
					'fields' => [
						'ID',
						'display_name',
					],
					'include' => $ids,
				];

				$user_query = new \WP_User_Query( $query_params );

				foreach ( $user_query->get_results() as $author ) {
					$results[ $author->ID ] = $author->display_name;
				}
				break;
			default:
				$results = apply_filters_deprecated( 'elementor_pro/query_control/get_value_titles/' . $request['filter_type'], $request, '3.0.0', 'elementor/query/get_value_titles/' . $request['filter_type'] );
				$results = apply_filters( 'elementor/query/get_value_titles/' . $request['filter_type'], [], $request );
		}

		return $results;
	}

	public function ajax_posts_control_value_titles( $request ) {
		$query_data = $this->get_titles_query_data( $request );
		if ( is_wp_error( $query_data ) ) {
			return [];
		}
		$display = $query_data['display'];
		$query_args = $query_data['query'];
		$query_args['no_found_rows'] = true;

		$results = [];
		switch ( $query_data['object'] ) {
			case self::QUERY_OBJECT_TAX:
				$by_field = ! empty( $query_data['by_field'] ) ? $query_data['by_field'] : 'term_taxonomy_id';
				$terms = get_terms( $query_args );

				if ( is_wp_error( $terms ) ) {
					break;
				}
				foreach ( $terms as $term ) {
					if ( apply_filters( "elementor/query/get_value_titles/tax/{$display}", true, $term, $request ) ) {
						$results[ $term->{$by_field} ] = $this->get_term_name( $term, $display, $request, 'get_value_titles' );
					}
				}
				break;

			case self::QUERY_OBJECT_ATTACHMENT:
			case self::QUERY_OBJECT_POST:
				$query = new \WP_Query( $query_args );

				foreach ( $query->posts as $post ) {
					if ( apply_filters( "elementor/query/get_value_titles/custom/{$display}", true, $post, $request ) ) {
						$results[ $post->ID ] = $this->format_post_for_display( $post, $display, $request, 'get_value_titles' );
					}
				}
				break;
			case self::QUERY_OBJECT_LIBRARY_TEMPLATE:
				$query = new \WP_Query( $query_args );

				foreach ( $query->posts as $post ) {
					$document = Plugin::elementor()->documents->get( $post->ID );
					if ( $document ) {
						$results[ $post->ID ] = esc_html( $post->post_title ) . ' (' . $document->get_post_type_title() . ')';
					}
				}
				break;
			case self::QUERY_OBJECT_AUTHOR:
			case self::QUERY_OBJECT_USER:
				$user_query = new \WP_User_Query( $query_args );

				foreach ( $user_query->get_results() as $user ) {
					if ( apply_filters( "elementor/query/get_value_titles/user/{$display}", true, $user, $request ) ) {
						$results[ $user->ID ] = $this->format_user_for_display( $user, $display, $request, 'get_value_titles' );
					}
				}
				break;
			default:
				$results = apply_filters( "elementor/query/get_value_titles/{$query_data['filter_type']}", $results, $request );
		}

		return $results;
	}

	private function get_term_name( $term, $display, $request, $filter_name = 'get_autocomplete' ) {
		global $wp_taxonomies;
		$term_name = $this->get_term_name_with_parents( $term );
		switch ( $display ) {
			case 'detailed':
				$text = $wp_taxonomies[ $term->taxonomy ]->labels->name . ': ' . $term_name;
				break;
			case 'minimal':
				$text = $term_name;
				break;
			default:
				$text = apply_filters( "elementor/query/{$filter_name}/display/{$display}", $term_name, $request );
				break;
		}
		return $text;
	}

	/**
	 * @param \WP_Post $post
	 * @param string $display
	 * @param array $data
	 * @param string $filter_name
	 *
	 * @return mixed|string|void
	 */
	private function format_post_for_display( $post, $display, $data, $filter_name = 'get_autocomplete' ) {
		$post_type_obj = get_post_type_object( $post->post_type );
		switch ( $display ) {
			case 'minimal':
				$text = ( $post_type_obj->hierarchical ) ? $this->get_post_name_with_parents( $post ) : $post->post_title;
				break;
			case 'detailed':
				$text = $post_type_obj->labels->name . ': ' . ( $post_type_obj->hierarchical ) ? $this->get_post_name_with_parents( $post ) : $post->post_title;
				break;
			default:
				$text = apply_filters( "elementor/query/{$filter_name}/display/{$display}", $post->post_title, $post->ID, $data );
				break;
		}

		return esc_html( $text );
	}

	/**
	 * @param \WP_User $user
	 * @param string $display
	 * @param array $data
	 * @param string $filter_name
	 *
	 * @return string
	 */
	private function format_user_for_display( $user, $display, $data, $filter_name = 'get_autocomplete' ) {
		switch ( $display ) {
			case 'minimal':
				$text = $user->display_name;
				break;
			case 'detailed':
				$text = sprintf( '%s (%s)', $user->display_name, $user->user_email );
				break;
			default:
				$text = apply_filters( "elementor/query/{$filter_name}/display/{$display}", $user, $data );
				break;
		}

		return $text;
	}

	private function query_data_compatibility( $data ) {
		if ( isset( $data['query']['filter_type'] ) ) {
			$data['filter_type'] = $data['query']['filter_type'];
		}
		if ( isset( $data['query']['object_type'] ) ) {
			$data['object_type'] = $data['query']['object_type'];
		}
		if ( isset( $data['query']['include_type'] ) ) {
			$data['include_type'] = $data['query']['include_type'];
		}
		if ( isset( $data['query']['post_type'] ) ) {
			$data['post_type'] = $data['query']['post_type'];
		}
		return $data;
	}

	public function register_controls() {
		$controls_manager = Plugin::elementor()->controls_manager;

		$controls_manager->add_group_control( Group_Control_Posts::get_type(), new Group_Control_Posts() );

		$controls_manager->add_group_control( Group_Control_Query::get_type(), new Group_Control_Query() );

		$controls_manager->add_group_control( Group_Control_Related::get_type(), new Group_Control_Related() );

		$controls_manager->register_control( self::QUERY_CONTROL_ID, new Query() );
	}

	/**
	 * get_term_name_with_parents
	 * @param \WP_Term $term
	 * @param int $max
	 *
	 * @return string
	 */
	private function get_term_name_with_parents( \WP_Term $term, $max = 3 ) {
		if ( 0 === $term->parent ) {
			return $term->name;
		}
		$separator = is_rtl() ? ' < ' : ' > ';
		$test_term = $term;
		$names = [];
		while ( $test_term->parent > 0 ) {
			$test_term = get_term( $test_term->parent );
			if ( ! $test_term ) {
				break;
			}
			$names[] = $test_term->name;
		}

		$names = array_reverse( $names );
		if ( count( $names ) < ( $max ) ) {
			return implode( $separator, $names ) . $separator . $term->name;
		}

		$name_string = '';
		for ( $i = 0; $i < ( $max - 1 ); $i++ ) {
			$name_string .= $names[ $i ] . $separator;
		}
		return $name_string . '...' . $separator . $term->name;
	}

	/**
	 * get post name with parents
	 * @param \WP_Post $post
	 * @param int $max
	 *
	 * @return string
	 */
	private function get_post_name_with_parents( $post, $max = 3 ) {
		if ( 0 === $post->post_parent ) {
			return $post->post_title;
		}
		$separator = is_rtl() ? ' < ' : ' > ';
		$test_post = $post;
		$names = [];
		while ( $test_post->post_parent > 0 ) {
			$test_post = get_post( $test_post->post_parent );
			if ( ! $test_post ) {
				break;
			}
			$names[] = $test_post->post_title;
		}

		$names = array_reverse( $names );
		if ( count( $names ) < ( $max ) ) {
			return implode( $separator, $names ) . $separator . $post->post_title;
		}

		$name_string = '';
		for ( $i = 0; $i < ( $max - 1 ); $i++ ) {
			$name_string .= $names[ $i ] . $separator;
		}
		return $name_string . '...' . $separator . $post->post_title;
	}

	/**
	 * @deprecated use Elementor_Post_Query capabilities
	 *
	 * @param string $control_id
	 * @param array $settings
	 *
	 * @return array
	 */
	public function get_query_args( $control_id, $settings ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function( __METHOD__, '2.5.0', 'class Elementor_Post_Query' );

		$controls_manager = Plugin::elementor()->controls_manager;

		/** @var Group_Control_Posts $posts_query */
		$posts_query = $controls_manager->get_control_groups( Group_Control_Posts::get_type() );

		return $posts_query->get_query_args( $control_id, $settings );
	}

	/**
	 * @param \ElementorPro\Base\Base_Widget $widget
	 * @param string $name
	 * @param array $query_args
	 * @param array $fallback_args
	 *
	 * @return \WP_Query
	 */
	public function get_query( $widget, $name, $query_args = [], $fallback_args = [] ) {
		$prefix = $name . '_';
		$post_type = $widget->get_settings( $prefix . 'post_type' );
		if ( 'related' === $post_type ) {
			$elementor_query = new Elementor_Related_Query( $widget, $name, $query_args, $fallback_args );
		} else {
			$elementor_query = new Elementor_Post_Query( $widget, $name, $query_args );
		}
		return $elementor_query->get_query();
	}

	/**
	 * @deprecated 2.5.0
	 * @param \WP_Query &$query
	 */
	public function fix_query_offset( &$query ) {
		if ( ! empty( $query->query_vars['offset_to_fix'] ) ) {
			if ( $query->is_paged ) {
				$query->query_vars['offset'] = $query->query_vars['offset_to_fix'] + ( ( $query->query_vars['paged'] - 1 ) * $query->query_vars['posts_per_page'] );
			} else {
				$query->query_vars['offset'] = $query->query_vars['offset_to_fix'];
			}
		}
	}

	/**
	 * @deprecated 2.5.0
	 *
	 * @param int       $found_posts
	 * @param \WP_Query $query
	 *
	 * @return mixed
	 */
	public static function fix_query_found_posts( $found_posts, $query ) {
		$offset_to_fix = $query->get( 'offset_to_fix' );

		if ( $offset_to_fix ) {
			$found_posts -= $offset_to_fix;
		}

		return $found_posts;
	}

	/**
	 * @param Ajax $ajax_manager
	 */
	public function register_ajax_actions( $ajax_manager ) {
		$ajax_manager->register_ajax_action( 'query_control_value_titles', [ $this, 'ajax_posts_control_value_titles' ] );
		$ajax_manager->register_ajax_action( 'pro_panel_posts_control_filter_autocomplete', [ $this, 'ajax_posts_filter_autocomplete' ] );
		/**
		 * @deprecated 2.6.0 use new `autocomplete` format
		 */
		$ajax_manager->register_ajax_action( 'query_control_value_titles_deprecated', [ $this, 'ajax_posts_control_value_titles_deprecated' ] );
		$ajax_manager->register_ajax_action( 'pro_panel_posts_control_filter_autocomplete_deprecated', [ $this, 'ajax_posts_filter_autocomplete_deprecated' ] );
	}

	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'all' => esc_html__( 'All', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	protected function add_actions() {
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );
		add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls' ] );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );

		/**
		 * @see https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination
		 */
		add_action( 'pre_get_posts', [ $this, 'fix_query_offset' ], 1 );
		add_filter( 'found_posts', [ $this, 'fix_query_found_posts' ], 1, 2 );
	}
}
PK!�hN

1modules/code-highlight/widgets/code-highlight.phpnu�[���<?php
namespace ElementorPro\Modules\CodeHighlight\Widgets;

use Elementor\Modules\DynamicTags\Module as TagsModule;
use Elementor\Controls_Manager;
use ElementorPro\Plugin;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Code_Highlight extends Base_Widget {

	public function get_name() {
		return 'code-highlight';
	}

	public function get_title() {
		return esc_html__( 'Code Highlight', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-code-highlight';
	}

	public function get_keywords() {
		return [ 'code', 'highlight', 'syntax', 'highlighter', 'javascript', 'css', 'php', 'html', 'java', 'js' ];
	}

	public function get_style_depends() {
		return [ 'prismjs_style' ];
	}

	public function get_script_depends() {
		$depends = [
			'prismjs_core' => true,
			'prismjs_loader' => true,
			'prismjs_normalize' => true,
			'highlight_handler' => true,
			'prismjs_line_numbers' => true,
			'prismjs_line_highlight' => true,
			'prismjs_copy_to_clipboard' => true,
		];

		if ( ! Plugin::elementor()->preview->is_preview_mode() ) {
			$settings = $this->get_settings_for_display();

			if ( ! $settings['line_numbers'] ) {
				unset( $depends['prismjs_line_numbers'] );
			}

			if ( ! $settings['highlight_lines'] ) {
				unset( $depends['prismjs_line_highlight'] );
			}

			if ( ! $settings['copy_to_clipboard'] ) {
				unset( $depends['prismjs_copy_to_clipboard'] );
			}
		}

		return array_keys( $depends );
	}

	public function get_css_config() {
		// This widget is loading its own CSS using get_style_depends.
		return [
			'key' => $this->get_group_name(),
			'version' => ELEMENTOR_PRO_VERSION,
			'file_path' => '',
			'data' => [],
		];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Code Highlight', 'elementor-pro' ),
			]
		);

		$language_option = [
			'markup' => 'Markup',
			'html' => 'HTML',
			'css' => 'CSS',
			'sass' => 'Sass (Sass)',
			'scss' => 'Sass (Scss)',
			'less' => 'Less',
			'javascript' => 'JavaScript',
			'typescript' => 'TypeScript',
			'jsx' => 'React JSX',
			'tsx' => 'React TSX',
			'php' => 'PHP',
			'ruby' => 'Ruby',
			'json' => 'JSON + Web App Manifest',
			'http' => 'HTTP',
			'xml' => 'XML',
			'svg' => 'SVG',
			'rust' => 'Rust',
			'csharp' => 'C#',
			'dart' => 'Dart',
			'git' => 'Git',
			'java' => 'Java',
			'sql' => 'SQL',
			'go' => 'Go',
			'kotlin' => 'Kotlin + Kotlin Script',
			'julia' => 'Julia',
			'python' => 'Python',
			'swift' => 'Swift',
			'bash' => 'Bash + Shell',
			'scala' => 'Scala',
			'haskell' => 'Haskell',
			'perl' => 'Perl',
			'objectivec' => 'Objective-C',
			'visual-basic,' => 'Visual Basic + VBA',
			'r' => 'R',
			'c' => 'C',
			'cpp' => 'C++',
			'aspnet' => 'ASP.NET (C#)',
		];

		$this->add_control(
			'language',
			[
				'label' => esc_html__( 'Language', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => false,
				'options' => apply_filters( 'elementor_pro/code_highlight/languages', $language_option ),
				'default' => 'javascript',
			]
		);

		$this->add_control(
			'code',
			[
				'label' => esc_html__( 'Code', 'elementor-pro' ),
				'type' => Controls_Manager::CODE,
				'default' => 'console.log( \'Code is Poetry\' );',
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::TEXT_CATEGORY,
					],
				],
			]
		);

		$this->add_control(
			'line_numbers',
			[
				'label' => esc_html__( 'Line Numbers', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'line-numbers',
				'default' => 'line-numbers',
			]
		);

		$this->add_control(
			'copy_to_clipboard',
			[
				'label' => esc_html__( 'Copy to Clipboard', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'return_value' => 'copy-to-clipboard',
				'default' => 'copy-to-clipboard',
			]
		);

		$this->add_control(
			'highlight_lines',
			[
				'label' => esc_html__( 'Highlight Lines', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'placeholder' => '1, 3-6',
			]
		);

		$this->add_control(
			'word_wrap',
			[
				'label' => esc_html__( 'Word Wrap', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'return_value' => 'word-wrap',
				'default' => '',
			]
		);

		$this->add_control(
			'theme',
			[
				'label' => esc_html__( 'Theme', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default'  => 'Solid',
					'dark' => 'Dark',
					'okaidia' => 'Okaidia',
					'solarizedlight' => 'Solarizedlight',
					'tomorrow' => 'Tomorrow',
					'twilight' => 'Twilight',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'vh', 'em' ],
				'range' => [
					'px' => [
						'min' => 115,
						'max' => 1000,
					],
					'em' => [
						'min' => 6,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .highlight-height' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'font_size',
			[
				'label' => esc_html__( 'Font Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em', 'rem', 'vw' ],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 200,
					],
					'vw' => [
						'min' => 0.1,
						'max' => 10,
						'step' => 0.1,
					],
				],
				'responsive' => true,
				'selectors' => [
					'{{WRAPPER}} pre, {{WRAPPER}} code, {{WRAPPER}} .line-numbers .line-numbers-rows' => 'font-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		?>
		<div class="<?php echo 'prismjs-' . esc_attr( $settings['theme'] ); ?> <?php echo esc_attr( $settings['copy_to_clipboard'] ); ?> <?php echo esc_attr( $settings['word_wrap'] ); ?>">
			<pre data-line="<?php echo esc_attr( $settings['highlight_lines'] ); ?>" class="highlight-height language-<?php echo esc_attr( $settings['language'] ); ?> <?php echo esc_attr( $settings['line_numbers'] ); ?>">
				<code readonly="true" class="language-<?php echo esc_attr( $settings['language'] ); ?>">
					<xmp><?php $this->print_unescaped_setting( 'code' ); ?></xmp>
				</code>
			</pre>
		</div>
		<?php
	}

	protected function content_template() {
		?>
		<div class="prismjs-{{{ settings.theme }}} {{{settings.copy_to_clipboard}}} {{{settings.word_wrap}}}">
			<pre data-line="{{{settings.highlight_lines }}}" class="highlight-height language-{{{ settings.language }}} {{{ settings.line_numbers }}}">
				<code readonly="true" class="language-{{{ settings.language }}}">
					<xmp>{{{ settings.code }}}</xmp>
				</code>
			</pre>
		</div>
		<?php
	}
}
PK!����!modules/code-highlight/module.phpnu�[���<?php
namespace ElementorPro\Modules\CodeHighlight;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_name() {
		return 'code-highlight';
	}

	public function get_widgets() {
		return [
			'Code_Highlight',
		];
	}

	public function register_frontend_scripts() {
		$base_url = 'https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0';
		wp_register_script( 'prismjs_core', $base_url . '/components/prism-core.min.js', [], '1.23.0', true );
		wp_register_script( 'prismjs_loader', $base_url . '/plugins/autoloader/prism-autoloader.min.js', [ 'prismjs_core' ], '1.23.0', true );
		wp_register_script( 'prismjs_normalize', $base_url . '/plugins/normalize-whitespace/prism-normalize-whitespace.min.js', [ 'prismjs_core' ], '1.23.0', true );
		wp_register_script( 'prismjs_line_numbers', $base_url . '/plugins/line-numbers/prism-line-numbers.min.js', [ 'prismjs_normalize' ], '1.23.0', true );
		wp_register_script( 'prismjs_line_highlight', $base_url . '/plugins/line-highlight/prism-line-highlight.min.js', [ 'prismjs_normalize' ], '1.23.0', true );
		wp_register_script( 'prismjs_toolbar', $base_url . '/plugins/toolbar/prism-toolbar.min.js', [ 'prismjs_normalize' ], '1.23.0', true );
		wp_register_script( 'prismjs_copy_to_clipboard', $base_url . '/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js', [ 'prismjs_toolbar' ], '1.23.0', true );

		wp_register_style( 'prismjs_style', ELEMENTOR_PRO_URL . 'assets/css/modules/code-highlight.min.css', [], '1.23.0', false );
	}

	public function __construct() {
		parent::__construct();

		add_action( 'elementor/frontend/before_register_scripts', [ $this, 'register_frontend_scripts' ] );
	}
}
PK!����modules/custom-css/module.phpnu�[���<?php
namespace ElementorPro\Modules\CustomCss;

use Elementor\Controls_Manager;
use Elementor\Controls_Stack;
use Elementor\Core\DynamicTags\Dynamic_CSS;
use Elementor\Core\Files\CSS\Post;
use Elementor\Element_Base;
use ElementorPro\Base\Module_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}

	public function get_name() {
		return 'custom-css';
	}

	/**
	 * @param $element    Controls_Stack
	 * @param $section_id string
	 */
	public function register_controls( Controls_Stack $element, $section_id ) {
		// Remove Custom CSS Banner (From free version)
		if ( 'section_custom_css_pro' !== $section_id ) {
			return;
		}

		$this->replace_go_pro_custom_css_controls( $element );
	}

	/**
	 * @param $post_css Post
	 * @param $element  Element_Base
	 */
	public function add_post_css( $post_css, $element ) {
		if ( $post_css instanceof Dynamic_CSS ) {
			return;
		}

		$element_settings = $element->get_settings();

		if ( empty( $element_settings['custom_css'] ) ) {
			return;
		}

		$css = trim( $element_settings['custom_css'] );

		if ( empty( $css ) ) {
			return;
		}
		$css = str_replace( 'selector', $post_css->get_element_unique_selector( $element ), $css );

		// Add a css comment
		$css = sprintf( '/* Start custom CSS for %s, class: %s */', $element->get_name(), $element->get_unique_selector() ) . $css . '/* End custom CSS */';

		$post_css->get_stylesheet()->add_raw_css( $css );
	}

	/**
	 * @param $post_css Post
	 */
	public function add_page_settings_css( $post_css ) {
		$document = Plugin::elementor()->documents->get( $post_css->get_post_id() );
		$custom_css = $document->get_settings( 'custom_css' );

		$custom_css = trim( $custom_css );

		if ( empty( $custom_css ) ) {
			return;
		}

		$custom_css = str_replace( 'selector', $document->get_css_wrapper_selector(), $custom_css );

		// Add a css comment
		$custom_css = '/* Start custom CSS */' . $custom_css . '/* End custom CSS */';

		$post_css->get_stylesheet()->add_raw_css( $custom_css );
	}

	/**
	 * @param Controls_Stack $controls_stack
	 */
	public function replace_go_pro_custom_css_controls( $controls_stack ) {
		$old_section = Plugin::elementor()->controls_manager->get_control_from_stack( $controls_stack->get_unique_name(), 'section_custom_css_pro' );

		Plugin::elementor()->controls_manager->remove_control_from_stack( $controls_stack->get_unique_name(), [ 'section_custom_css_pro', 'custom_css_pro' ] );

		$controls_stack->start_controls_section(
			'section_custom_css',
			[
				'label' => esc_html__( 'Custom CSS', 'elementor-pro' ),
				'tab' => $old_section['tab'],
			]
		);

		$controls_stack->add_control(
			'custom_css_title',
			[
				'raw' => esc_html__( 'Add your own custom CSS here', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
			]
		);

		$controls_stack->add_control(
			'custom_css',
			[
				'type' => Controls_Manager::CODE,
				'label' => esc_html__( 'Custom CSS', 'elementor-pro' ),
				'language' => 'css',
				'render_type' => 'ui',
				'show_label' => false,
				'separator' => 'none',
			]
		);

		$controls_stack->add_control(
			'custom_css_description',
			[
				'raw' => sprintf(
				/* translators: 1: Break line tag. */
					esc_html__( 'Use "selector" to target wrapper element. Examples:%1$sselector {color: red;} // For main element%1$sselector .child-element {margin: 10px;} // For child element%1$s.my-class {text-align: center;} // Or use any custom selector', 'elementor-pro' ),
					'<br>'
				),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
			]
		);

		$controls_stack->end_controls_section();
	}

	public function localize_settings( array $settings ) {
		$settings['i18n']['custom_css'] = esc_html__( 'Custom CSS', 'elementor-pro' );

		return $settings;
	}

	protected function add_actions() {
		add_action( 'elementor/element/after_section_end', [ $this, 'register_controls' ], 10, 2 );
		add_action( 'elementor/element/parse_css', [ $this, 'add_post_css' ], 10, 2 );
		add_action( 'elementor/css-file/post/parse', [ $this, 'add_page_settings_css' ] );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
	}
}
PK!�>ޜ��modules/sticky/module.phpnu�[���<?php
namespace ElementorPro\Modules\Sticky;

use Elementor\Controls_Manager;
use Elementor\Element_Base;
use Elementor\Element_Section;
use Elementor\Widget_Base;
use ElementorPro\Base\Module_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}

	public function get_name() {
		return 'sticky';
	}

	/**
	 * Check if `$element` is an instance of a class in the `$types` array.
	 *
	 * @param $element
	 * @param $types
	 *
	 * @return bool
	 */
	private function is_instance_of( $element, array $types ) {
		foreach ( $types as $type ) {
			if ( $element instanceof $type ) {
				return true;
			}
		}

		return false;
	}

	public function register_controls( Element_Base $element ) {
		$element->add_control(
			'sticky',
			[
				'label' => esc_html__( 'Sticky', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'top' => esc_html__( 'Top', 'elementor-pro' ),
					'bottom' => esc_html__( 'Bottom', 'elementor-pro' ),
				],
				'separator' => 'before',
				'render_type' => 'none',
				'frontend_available' => true,
				'assets' => $this->get_asset_conditions_data(),
			]
		);

		// TODO: In Pro 3.5.0, get the active devices using Breakpoints/Manager::get_active_devices_list().
		$active_breakpoint_instances = Plugin::elementor()->breakpoints->get_active_breakpoints();
		// Devices need to be ordered from largest to smallest.
		$active_devices = array_reverse( array_keys( $active_breakpoint_instances ) );

		// Add desktop in the correct position.
		if ( in_array( 'widescreen', $active_devices, true ) ) {
			$active_devices = array_merge( array_slice( $active_devices, 0, 1 ), [ 'desktop' ], array_slice( $active_devices, 1 ) );
		} else {
			$active_devices = array_merge( [ 'desktop' ], $active_devices );
		}

		$sticky_device_options = [];

		foreach ( $active_devices as $device ) {
			$label = 'desktop' === $device ? esc_html__( 'Desktop', 'elementor-pro' ) : $active_breakpoint_instances[ $device ]->get_label();
			$sticky_device_options[ $device ] = $label;
		}

		$element->add_control(
			'sticky_on',
			[
				'label' => esc_html__( 'Sticky On', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'label_block' => true,
				'default' => $active_devices,
				'options' => $sticky_device_options,
				'condition' => [
					'sticky!' => '',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$element->add_responsive_control(
			'sticky_offset',
			[
				'label' => esc_html__( 'Offset', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 0,
				'min' => 0,
				'max' => 500,
				'required' => true,
				'condition' => [
					'sticky!' => '',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$element->add_responsive_control(
			'sticky_effects_offset',
			[
				'label' => esc_html__( 'Effects Offset', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 0,
				'min' => 0,
				'max' => 1000,
				'required' => true,
				'condition' => [
					'sticky!' => '',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		// Add `Stay In Column` only to the following types:
		$types = [
			Element_Section::class,
			Widget_Base::class,
		];

		if ( $this->is_instance_of( $element, $types ) ) {
			$conditions = [
				'sticky!' => '',
			];

			// Target only inner sections.
			// Checking for `$element->get_data( 'isInner' )` in both editor & frontend causes it to work properly on the frontend but
			// break on the editor, because the inner section is created in JS and not rendered in PHP.
			// So this is a hack to force the editor to show the `sticky_parent` control, and still make it work properly on the frontend.
			if ( $element instanceof Element_Section && Plugin::elementor()->editor->is_edit_mode() ) {
				$conditions['isInner'] = true;
			}

			$element->add_control(
				'sticky_parent',
				[
					'label' => esc_html__( 'Stay In Column', 'elementor-pro' ),
					'type' => Controls_Manager::SWITCHER,
					'condition' => $conditions,
					'render_type' => 'none',
					'frontend_available' => true,
				]
			);
		}

		$element->add_control(
			'sticky_divider',
			[
				'type' => Controls_Manager::DIVIDER,
			]
		);
	}

	private function get_asset_conditions_data() {
		return [
			'scripts' => [
				[
					'name' => 'e-sticky',
					'conditions' => [
						'terms' => [
							[
								'name' => 'sticky',
								'operator' => '!==',
								'value' => '',
							],
						],
					],
				],
			],
		];
	}

	private function add_actions() {
		add_action( 'elementor/element/section/section_effects/after_section_start', [ $this, 'register_controls' ] );
		add_action( 'elementor/element/common/section_effects/after_section_start', [ $this, 'register_controls' ] );
	}
}
PK!�)h}55modules/slides/module.phpnu�[���<?php
namespace ElementorPro\Modules\Slides;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_name() {
		return 'slides';
	}

	public function get_widgets() {
		return [
			'Slides',
		];
	}
}
PK!�۱���!modules/slides/widgets/slides.phpnu�[���<?php
namespace ElementorPro\Modules\Slides\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Slides extends Base_Widget {

	public function get_name() {
		return 'slides';
	}

	public function get_title() {
		return esc_html__( 'Slides', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-slides';
	}

	public function get_keywords() {
		return [ 'slides', 'carousel', 'image', 'title', 'slider' ];
	}

	public function get_script_depends() {
		return [ 'imagesloaded' ];
	}

	public static function get_button_sizes() {
		return [
			'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
			'sm' => esc_html__( 'Small', 'elementor-pro' ),
			'md' => esc_html__( 'Medium', 'elementor-pro' ),
			'lg' => esc_html__( 'Large', 'elementor-pro' ),
			'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
		];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_slides',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
			]
		);

		$repeater = new Repeater();

		$repeater->start_controls_tabs( 'slides_repeater' );

		$repeater->start_controls_tab( 'background', [ 'label' => esc_html__( 'Background', 'elementor-pro' ) ] );

		$repeater->add_control(
			'background_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#bbbbbb',
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-bg' => 'background-color: {{VALUE}}',
				],
			]
		);

		$repeater->add_control(
			'background_image',
			[
				'label' => _x( 'Image', 'Background Control', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-bg' => 'background-image: url({{URL}})',
				],
			]
		);

		$repeater->add_control(
			'background_size',
			[
				'label' => _x( 'Size', 'Background Control', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'cover',
				'options' => [
					'cover' => _x( 'Cover', 'Background Control', 'elementor-pro' ),
					'contain' => _x( 'Contain', 'Background Control', 'elementor-pro' ),
					'auto' => _x( 'Auto', 'Background Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-bg' => 'background-size: {{VALUE}}',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_image[url]',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'background_ken_burns',
			[
				'label' => esc_html__( 'Ken Burns Effect', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_image[url]',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'zoom_direction',
			[
				'label' => esc_html__( 'Zoom Direction', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'in',
				'options' => [
					'in' => esc_html__( 'In', 'elementor-pro' ),
					'out' => esc_html__( 'Out', 'elementor-pro' ),
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_ken_burns',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'background_overlay',
			[
				'label' => esc_html__( 'Background Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_image[url]',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'background_overlay_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => 'rgba(0,0,0,0.5)',
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_overlay',
							'value' => 'yes',
						],
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .elementor-background-overlay' => 'background-color: {{VALUE}}',
				],
			]
		);

		$repeater->add_control(
			'background_overlay_blend_mode',
			[
				'label' => esc_html__( 'Blend Mode', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'multiply' => 'Multiply',
					'screen' => 'Screen',
					'overlay' => 'Overlay',
					'darken' => 'Darken',
					'lighten' => 'Lighten',
					'color-dodge' => 'Color Dodge',
					'color-burn' => 'Color Burn',
					'hue' => 'Hue',
					'saturation' => 'Saturation',
					'color' => 'Color',
					'exclusion' => 'Exclusion',
					'luminosity' => 'Luminosity',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'background_overlay',
							'value' => 'yes',
						],
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .elementor-background-overlay' => 'mix-blend-mode: {{VALUE}}',
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab( 'content', [ 'label' => esc_html__( 'Content', 'elementor-pro' ) ] );

		$repeater->add_control(
			'heading',
			[
				'label' => esc_html__( 'Title & Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Slide Heading', 'elementor-pro' ),
				'label_block' => true,
			]
		);

		$repeater->add_control(
			'description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'show_label' => false,
			]
		);

		$repeater->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Button Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Click Here', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'link_click',
			[
				'label' => esc_html__( 'Apply Link On', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'slide' => esc_html__( 'Whole Slide', 'elementor-pro' ),
					'button' => esc_html__( 'Button Only', 'elementor-pro' ),
				],
				'default' => 'slide',
				'conditions' => [
					'terms' => [
						[
							'name' => 'link[url]',
							'operator' => '!=',
							'value' => '',
						],
					],
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab( 'style', [ 'label' => esc_html__( 'Style', 'elementor-pro' ) ] );

		$repeater->add_control(
			'custom_style',
			[
				'label' => esc_html__( 'Custom', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'description' => esc_html__( 'Set custom style that will only affect this specific slide.', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'horizontal_position',
			[
				'label' => esc_html__( 'Horizontal Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-contents' => '{{VALUE}}',
				],
				'selectors_dictionary' => [
					'left' => 'margin-right: auto',
					'center' => 'margin: 0 auto',
					'right' => 'margin-left: auto',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'custom_style',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-inner' => 'align-items: {{VALUE}}',
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'custom_style',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'text_align',
			[
				'label' => esc_html__( 'Text Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-inner' => 'text-align: {{VALUE}}',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'custom_style',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'content_color',
			[
				'label' => esc_html__( 'Content Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-inner .elementor-slide-heading' => 'color: {{VALUE}}',
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-inner .elementor-slide-description' => 'color: {{VALUE}}',
					'{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-inner .elementor-slide-button' => 'color: {{VALUE}}; border-color: {{VALUE}}',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'custom_style',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$repeater->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'repeater_text_shadow',
				'selector' => '{{WRAPPER}} {{CURRENT_ITEM}} .swiper-slide-contents',
				'conditions' => [
					'terms' => [
						[
							'name' => 'custom_style',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$this->add_control(
			'slides',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'show_label' => true,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'heading' => esc_html__( 'Slide 1 Heading', 'elementor-pro' ),
						'description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'button_text' => esc_html__( 'Click Here', 'elementor-pro' ),
						'background_color' => '#833ca3',
					],
					[
						'heading' => esc_html__( 'Slide 2 Heading', 'elementor-pro' ),
						'description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'button_text' => esc_html__( 'Click Here', 'elementor-pro' ),
						'background_color' => '#4054b2',
					],
					[
						'heading' => esc_html__( 'Slide 3 Heading', 'elementor-pro' ),
						'description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'button_text' => esc_html__( 'Click Here', 'elementor-pro' ),
						'background_color' => '#1abc9c',
					],
				],
				'title_field' => '{{{ heading }}}',
			]
		);

		$this->add_responsive_control(
			'slides_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'default' => [
					'size' => 400,
				],
				'size_units' => [ 'px', 'vh', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide' => 'height: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_slider_options',
			[
				'label' => esc_html__( 'Slider Options', 'elementor-pro' ),
				'type' => Controls_Manager::SECTION,
			]
		);

		$this->add_control(
			'navigation',
			[
				'label' => esc_html__( 'Navigation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'both',
				'options' => [
					'both' => esc_html__( 'Arrows and Dots', 'elementor-pro' ),
					'arrows' => esc_html__( 'Arrows', 'elementor-pro' ),
					'dots' => esc_html__( 'Dots', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'autoplay',
			[
				'label' => esc_html__( 'Autoplay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'pause_on_hover',
			[
				'label' => esc_html__( 'Pause on Hover', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'render_type' => 'none',
				'frontend_available' => true,
				'condition' => [
					'autoplay!' => '',
				],
			]
		);

		$this->add_control(
			'pause_on_interaction',
			[
				'label' => esc_html__( 'Pause on Interaction', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'render_type' => 'none',
				'frontend_available' => true,
				'condition' => [
					'autoplay!' => '',
				],
			]
		);

		$this->add_control(
			'autoplay_speed',
			[
				'label' => esc_html__( 'Autoplay Speed', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 5000,
				'condition' => [
					'autoplay' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide' => 'transition-duration: calc({{VALUE}}ms*1.2)',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'infinite',
			[
				'label' => esc_html__( 'Infinite Loop', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'transition',
			[
				'label' => esc_html__( 'Transition', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'slide',
				'options' => [
					'slide' => esc_html__( 'Slide', 'elementor-pro' ),
					'fade' => esc_html__( 'Fade', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'transition_speed',
			[
				'label' => esc_html__( 'Transition Speed', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::NUMBER,
				'default' => 500,
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'content_animation',
			[
				'label' => esc_html__( 'Content Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fadeInUp',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'fadeInDown' => esc_html__( 'Down', 'elementor-pro' ),
					'fadeInUp' => esc_html__( 'Up', 'elementor-pro' ),
					'fadeInRight' => esc_html__( 'Right', 'elementor-pro' ),
					'fadeInLeft' => esc_html__( 'Left', 'elementor-pro' ),
					'zoomIn' => esc_html__( 'Zoom', 'elementor-pro' ),
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_slides',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'content_max_width',
			[
				'label' => esc_html__( 'Content Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ '%', 'px' ],
				'default' => [
					'size' => '66',
					'unit' => '%',
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide-contents' => 'max-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'slides_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'slides_horizontal_position',
			[
				'label' => esc_html__( 'Horizontal Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'center',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'prefix_class' => 'elementor--h-position-',
			]
		);

		$this->add_control(
			'slides_vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'middle',
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'prefix_class' => 'elementor--v-position-',
			]
		);

		$this->add_control(
			'slides_text_align',
			[
				'label' => esc_html__( 'Text Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .swiper-slide-inner' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'text_shadow',
				'selector' => '{{WRAPPER}} .swiper-slide-contents',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide-inner .elementor-slide-heading:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-heading' => 'color: {{VALUE}}',

				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-slide-heading',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'description_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-slide-inner .elementor-slide-description:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'description_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-description' => 'color: {{VALUE}}',

				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
				'selector' => '{{WRAPPER}} .elementor-slide-description',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_button',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'sm',
				'options' => self::get_button_sizes(),
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'selector' => '{{WRAPPER}} .elementor-slide-button',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
			]
		);

		$this->add_control(
			'button_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button' => 'border-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->start_controls_tabs( 'button_tabs' );

		$this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'elementor-pro' ) ] );

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-slide-button',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'hover', [ 'label' => esc_html__( 'Hover', 'elementor-pro' ) ] );

		$this->add_control(
			'button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_hover_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-slide-button:hover',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-slide-button:hover' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_navigation',
			[
				'label' => esc_html__( 'Navigation', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'navigation' => [ 'arrows', 'dots', 'both' ],
				],
			]
		);

		$this->add_control(
			'heading_style_arrows',
			[
				'label' => esc_html__( 'Arrows', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'navigation' => [ 'arrows', 'both' ],
				],
			]
		);

		$this->add_control(
			'arrows_position',
			[
				'label' => esc_html__( 'Arrows Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'inside',
				'options' => [
					'inside' => esc_html__( 'Inside', 'elementor-pro' ),
					'outside' => esc_html__( 'Outside', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-arrows-position-',
				'condition' => [
					'navigation' => [ 'arrows', 'both' ],
				],
			]
		);

		$this->add_control(
			'arrows_size',
			[
				'label' => esc_html__( 'Arrows Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 20,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-swiper-button' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'navigation' => [ 'arrows', 'both' ],
				],
			]
		);

		$this->add_control(
			'arrows_color',
			[
				'label' => esc_html__( 'Arrows Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-swiper-button' => 'color: {{VALUE}}',
					'{{WRAPPER}} .elementor-swiper-button svg' => 'fill: {{VALUE}}',
				],
				'condition' => [
					'navigation' => [ 'arrows', 'both' ],
				],
			]
		);

		$this->add_control(
			'heading_style_dots',
			[
				'label' => esc_html__( 'Dots', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'navigation' => [ 'dots', 'both' ],
				],
			]
		);

		$this->add_control(
			'dots_position',
			[
				'label' => esc_html__( 'Dots Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'inside',
				'options' => [
					'outside' => esc_html__( 'Outside', 'elementor-pro' ),
					'inside' => esc_html__( 'Inside', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-pagination-position-',
				'condition' => [
					'navigation' => [ 'dots', 'both' ],
				],
			]
		);

		$this->add_control(
			'dots_size',
			[
				'label' => esc_html__( 'Dots Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 5,
						'max' => 15,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-pagination-bullet' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .swiper-container-horizontal .swiper-pagination-progressbar' => 'height: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .swiper-pagination-fraction' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'navigation' => [ 'dots', 'both' ],
				],
			]
		);

		$this->add_control(
			'dots_color',
			[
				'label' => esc_html__( 'Dots Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .swiper-pagination-bullet-active' => 'background-color: {{VALUE}};',
				],
				'condition' => [
					'navigation' => [ 'dots', 'both' ],
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings();

		if ( empty( $settings['slides'] ) ) {
			return;
		}

		$this->add_render_attribute( 'button', 'class', [ 'elementor-button', 'elementor-slide-button' ] );

		if ( ! empty( $settings['button_size'] ) ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['button_size'] );
		}

		$slides = [];
		$slide_count = 0;

		foreach ( $settings['slides'] as $slide ) {
			$slide_html = '';
			$btn_attributes = '';
			$slide_attributes = '';
			$slide_element = 'div';
			$btn_element = 'div';

			if ( ! empty( $slide['link']['url'] ) ) {
				$this->add_link_attributes( 'slide_link' . $slide_count, $slide['link'] );

				if ( 'button' === $slide['link_click'] ) {
					$btn_element = 'a';
					$btn_attributes = $this->get_render_attribute_string( 'slide_link' . $slide_count );
				} else {
					$slide_element = 'a';
					$slide_attributes = $this->get_render_attribute_string( 'slide_link' . $slide_count );
				}
			}

			$slide_html .= '<' . $slide_element . ' class="swiper-slide-inner" ' . $slide_attributes . '>';

			$slide_html .= '<div class="swiper-slide-contents">';

			if ( $slide['heading'] ) {
				$slide_html .= '<div class="elementor-slide-heading">' . $slide['heading'] . '</div>';
			}

			if ( $slide['description'] ) {
				$slide_html .= '<div class="elementor-slide-description">' . $slide['description'] . '</div>';
			}

			if ( $slide['button_text'] ) {
				$slide_html .= '<' . $btn_element . ' ' . $btn_attributes . ' ' . $this->get_render_attribute_string( 'button' ) . '>' . $slide['button_text'] . '</' . $btn_element . '>';
			}

			$slide_html .= '</div></' . $slide_element . '>';

			if ( 'yes' === $slide['background_overlay'] ) {
				$slide_html = '<div class="elementor-background-overlay"></div>' . $slide_html;
			}

			$ken_class = '';

			if ( $slide['background_ken_burns'] ) {
				$ken_class = ' elementor-ken-burns elementor-ken-burns--' . $slide['zoom_direction'];
			}

			$slide_html = '<div class="swiper-slide-bg' . $ken_class . '"></div>' . $slide_html;

			$slides[] = '<div class="elementor-repeater-item-' . $slide['_id'] . ' swiper-slide">' . $slide_html . '</div>';
			$slide_count++;
		}

		$direction = is_rtl() ? 'rtl' : 'ltr';

		$show_dots = ( in_array( $settings['navigation'], [ 'dots', 'both' ] ) );
		$show_arrows = ( in_array( $settings['navigation'], [ 'arrows', 'both' ] ) );

		$slides_count = count( $settings['slides'] );
		?>
		<div class="elementor-swiper">
			<div class="elementor-slides-wrapper elementor-main-swiper swiper-container" dir="<?php Utils::print_unescaped_internal_string( $direction ); ?>" data-animation="<?php $this->print_render_attribute_string( $settings['content_animation'] ); ?>">
				<div class="swiper-wrapper elementor-slides">
					<?php // PHPCS - Slides for each is safe. ?>
					<?php echo implode( '', $slides ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				</div>
				<?php if ( 1 < $slides_count ) : ?>
					<?php if ( $show_dots ) : ?>
						<div class="swiper-pagination"></div>
					<?php endif; ?>
					<?php if ( $show_arrows ) : ?>
						<div class="elementor-swiper-button elementor-swiper-button-prev">
							<?php $this->render_swiper_button( 'previous' ); ?>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Previous', 'elementor-pro' ); ?></span>
						</div>
						<div class="elementor-swiper-button elementor-swiper-button-next">
							<?php $this->render_swiper_button( 'next' ); ?>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Next', 'elementor-pro' ); ?></span>
						</div>
					<?php endif; ?>
				<?php endif; ?>
			</div>
		</div>
		<?php
	}

	/**
	 * Render Slides widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var direction        = elementorFrontend.config.is_rtl ? 'rtl' : 'ltr',
				next             = elementorFrontend.config.is_rtl ? 'left' : 'right',
				prev             = elementorFrontend.config.is_rtl ? 'right' : 'left',
				navi             = settings.navigation,
				showDots         = ( 'dots' === navi || 'both' === navi ),
				showArrows       = ( 'arrows' === navi || 'both' === navi ),
				buttonSize       = settings.button_size;
		#>
		<div class="elementor-swiper">
			<div class="elementor-slides-wrapper elementor-main-swiper swiper-container" dir="{{ direction }}" data-animation="{{ settings.content_animation }}">
				<div class="swiper-wrapper elementor-slides">
					<# jQuery.each( settings.slides, function( index, slide ) { #>
						<div class="elementor-repeater-item-{{ slide._id }} swiper-slide">
							<#
							var kenClass = '';

							if ( '' != slide.background_ken_burns ) {
								kenClass = ' elementor-ken-burns elementor-ken-burns--' + slide.zoom_direction;
							}
							#>
							<div class="swiper-slide-bg{{ kenClass }}"></div>
							<# if ( 'yes' === slide.background_overlay ) { #>
							<div class="elementor-background-overlay"></div>
							<# } #>
							<div class="swiper-slide-inner">
								<div class="swiper-slide-contents">
									<# if ( slide.heading ) { #>
										<div class="elementor-slide-heading">{{{ slide.heading }}}</div>
									<# }
									if ( slide.description ) { #>
										<div class="elementor-slide-description">{{{ slide.description }}}</div>
									<# }
									if ( slide.button_text ) { #>
										<div class="elementor-button elementor-slide-button elementor-size-{{ buttonSize }}">{{{ slide.button_text }}}</div>
									<# } #>
								</div>
							</div>
						</div>
					<# } ); #>
				</div>
				<# if ( 1 < settings.slides.length ) { #>
					<# if ( showDots ) { #>
						<div class="swiper-pagination"></div>
					<# } #>
					<# if ( showArrows ) { #>
						<div class="elementor-swiper-button elementor-swiper-button-prev">
							<i class="eicon-chevron-{{ prev }}" aria-hidden="true"></i>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Previous', 'elementor-pro' ); ?></span>
						</div>
						<div class="elementor-swiper-button elementor-swiper-button-next">
							<i class="eicon-chevron-{{ next }}" aria-hidden="true"></i>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Next', 'elementor-pro' ); ?></span>
						</div>
					<# } #>
				<# } #>
			</div>
		</div>
		<?php
	}

	private function render_swiper_button( $type ) {
		$direction = 'next' === $type ? 'right' : 'left';

		if ( is_rtl() ) {
			$direction = 'right' === $direction ? 'left' : 'right';
		}

		$icon_value = 'eicon-chevron-' . $direction;

		Icons_Manager::render_icon( [
			'library' => 'eicons',
			'value' => $icon_value,
		], [ 'aria-hidden' => 'true' ] );
	}
}
PK!�FR���1modules/call-to-action/widgets/call-to-action.phpnu�[���<?php
namespace ElementorPro\Modules\CallToAction\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Call_To_Action extends Base_Widget {

	public function get_name() {
		return 'call-to-action';
	}

	public function get_title() {
		return esc_html__( 'Call to Action', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-image-rollover';
	}

	public function get_keywords() {
		return [ 'call to action', 'cta', 'button' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_main_image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'classic' => esc_html__( 'Classic', 'elementor-pro' ),
					'cover' => esc_html__( 'Cover', 'elementor-pro' ),
				],
				'render_type' => 'template',
				'prefix_class' => 'elementor-cta--skin-',
				'default' => 'classic',
			]
		);

		$this->add_responsive_control(
			'layout',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'above' => [
						'title' => esc_html__( 'Above', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'prefix_class' => 'elementor-cta-%s-layout-image-',
				'condition' => [
					'skin!' => 'cover',
				],
			]
		);

		$this->add_control(
			'bg_image',
			[
				'label' => esc_html__( 'Choose Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'dynamic' => [
					'active' => true,
				],
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'bg_image', // Actually its `image_size`
				'label' => esc_html__( 'Image Resolution', 'elementor-pro' ),
				'default' => 'large',
				'condition' => [
					'bg_image[id]!' => '',
				],
				'separator' => 'none',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'graphic_element',
			[
				'label' => esc_html__( 'Graphic Element', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'none' => [
						'title' => esc_html__( 'None', 'elementor-pro' ),
						'icon' => 'eicon-ban',
					],
					'image' => [
						'title' => esc_html__( 'Image', 'elementor-pro' ),
						'icon' => 'fa fa-picture-o',
					],
					'icon' => [
						'title' => esc_html__( 'Icon', 'elementor-pro' ),
						'icon' => 'eicon-star',
					],
				],
				'default' => 'none',
			]
		);

		$this->add_control(
			'graphic_image',
			[
				'label' => esc_html__( 'Choose Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'dynamic' => [
					'active' => true,
				],
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
				'condition' => [
					'graphic_element' => 'image',
				],
				'show_label' => false,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'graphic_image', // Actually its `image_size`
				'default' => 'thumbnail',
				'condition' => [
					'graphic_element' => 'image',
					'graphic_image[id]!' => '',
				],
			]
		);

		$this->add_control(
			'selected_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'default' => [
					'value' => 'fas fa-star',
					'library' => 'fa-solid',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'stacked' => esc_html__( 'Stacked', 'elementor-pro' ),
					'framed' => esc_html__( 'Framed', 'elementor-pro' ),
				],
				'default' => 'default',
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_shape',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'circle' => esc_html__( 'Circle', 'elementor-pro' ),
					'square' => esc_html__( 'Square', 'elementor-pro' ),
				],
				'default' => 'circle',
				'condition' => [
					'icon_view!' => 'default',
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'This is the heading', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your title', 'elementor-pro' ),
				'label_block' => true,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your description', 'elementor-pro' ),
				'separator' => 'none',
				'rows' => 5,
			]
		);

		$this->add_control(
			'title_tag',
			[
				'label' => esc_html__( 'Title HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
				],
				'default' => 'h2',
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_control(
			'button',
			[
				'label' => esc_html__( 'Button Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'Click Here', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),

			]
		);

		$this->add_control(
			'link_click',
			[
				'label' => esc_html__( 'Apply Link On', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'box' => esc_html__( 'Whole Box', 'elementor-pro' ),
					'button' => esc_html__( 'Button Only', 'elementor-pro' ),
				],
				'default' => 'button',
				'separator' => 'none',
				'condition' => [
					'link[url]!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_ribbon',
			[
				'label' => esc_html__( 'Ribbon', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'ribbon_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'ribbon_horizontal_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'ribbon_title!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'box_style',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'min-height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 10,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vh' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__content' => 'min-height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__content' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'prefix_class' => 'elementor-cta--valign-',
				'separator' => 'none',
			]
		);

		$this->add_responsive_control(
			'padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_bg_image_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'condition' => [
					'bg_image[url]!' => '',
					'skin' => 'classic',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'image_min_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 500,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__bg-wrapper' => 'min-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'skin' => 'classic',
					'layout!' => 'above',
				],
			]
		);

		$this->add_responsive_control(
			'image_min_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 500,
					],
					'vh' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vh' ],

				'selectors' => [
					'{{WRAPPER}} .elementor-cta__bg-wrapper' => 'min-height: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'graphic_element_style',
			[
				'label' => esc_html__( 'Graphic Element', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'graphic_element!' => [
						'none',
						'',
					],
				],
			]
		);

		$this->add_control(
			'graphic_image_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__image' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'graphic_image_width',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ) . ' (%)',
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%' ],
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'%' => [
						'min' => 5,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__image img' => 'width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'graphic_image_border',
				'selector' => '{{WRAPPER}} .elementor-cta__image img',
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'graphic_image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__image img' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'image',
				],
			]
		);

		$this->add_control(
			'icon_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-wrapper' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon' => 'background-color: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon svg' => 'stroke: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon, {{WRAPPER}} .elementor-view-default .elementor-icon' => 'color: {{VALUE}}; border-color: {{VALUE}}',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon, {{WRAPPER}} .elementor-view-default .elementor-icon svg' => 'fill: {{VALUE}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-view-framed .elementor-icon' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-framed .elementor-icon svg' => 'stroke: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-view-stacked .elementor-icon svg' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 6,
						'max' => 300,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'font-size: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
				],
			]
		);

		$this->add_control(
			'icon_padding',
			[
				'label' => esc_html__( 'Icon Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'padding: {{SIZE}}{{UNIT}};',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
					],
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
			]
		);

		$this->add_control(
			'icon_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'border-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view' => 'framed',
				],
			]
		);

		$this->add_control(
			'icon_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'graphic_element' => 'icon',
					'icon_view!' => 'default',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'title',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'description',
							'operator' => '!==',
							'value' => '',
						],
					],
				],
			]
		);

		$this->add_control(
			'heading_style_title',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-cta__title',
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'title_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__title:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_control(
			'heading_style_description',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'description!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-cta__description',
				'condition' => [
					'description!' => '',
				],
			]
		);

		$this->add_responsive_control(
			'description_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__description:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'description!' => '',
				],
			]
		);

		$this->add_control(
			'heading_content_colors',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Colors', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->start_controls_tabs( 'color_tabs' );

		$this->start_controls_tab( 'colors_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'content_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__content' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Title Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__title' => 'color: {{VALUE}}',
				],
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_control(
			'description_color',
			[
				'label' => esc_html__( 'Description Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__description' => 'color: {{VALUE}}',
				],
				'condition' => [
					'description!' => '',
				],
			]
		);

		$this->add_control(
			'button_color',
			[
				'label' => esc_html__( 'Button Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'color: {{VALUE}}; border-color: {{VALUE}}',
				],
				'condition' => [
					'button!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'colors_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'content_bg_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:hover .elementor-cta__content' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'title_color_hover',
			[
				'label' => esc_html__( 'Title Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:hover .elementor-cta__title' => 'color: {{VALUE}}',
				],
				'condition' => [
					'title!' => '',
				],
			]
		);

		$this->add_control(
			'description_color_hover',
			[
				'label' => esc_html__( 'Description Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:hover .elementor-cta__description' => 'color: {{VALUE}}',
				],
				'condition' => [
					'description!' => '',
				],
			]
		);

		$this->add_control(
			'button_color_hover',
			[
				'label' => esc_html__( 'Button Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:hover .elementor-cta__button' => 'color: {{VALUE}}; border-color: {{VALUE}}',
				],
				'condition' => [
					'button!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'button!' => '',
				],
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'sm',
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'label' => esc_html__( 'Typography', 'elementor-pro' ),
				'selector' => '{{WRAPPER}} .elementor-cta__button',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
			]
		);

		$this->start_controls_tabs( 'button_tabs' );

		$this->start_controls_tab( 'button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'button-hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_hover_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button:hover' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'button_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'border-width: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__button' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_ribbon_style',
			[
				'label' => esc_html__( 'Ribbon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
				'condition' => [
					'ribbon_title!' => '',
				],
			]
		);

		$this->add_control(
			'ribbon_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-ribbon-inner' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'ribbon_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-ribbon-inner' => 'color: {{VALUE}}',
				],
			]
		);

		$ribbon_distance_transform = is_rtl() ? 'translateY(-50%) translateX({{SIZE}}{{UNIT}}) rotate(-45deg)' : 'translateY(-50%) translateX(-50%) translateX({{SIZE}}{{UNIT}}) rotate(-45deg)';

		$this->add_responsive_control(
			'ribbon_distance',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-ribbon-inner' => 'margin-top: {{SIZE}}{{UNIT}}; transform: ' . $ribbon_distance_transform,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'ribbon_typography',
				'selector' => '{{WRAPPER}} .elementor-ribbon-inner',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}} .elementor-ribbon-inner',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'hover_effects',
			[
				'label' => esc_html__( 'Hover Effects', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'content_hover_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'condition' => [
					'skin' => 'cover',
				],
			]
		);

		$this->add_control(
			'content_animation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'groups' => [
					[
						'label' => esc_html__( 'None', 'elementor-pro' ),
						'options' => [
							'' => esc_html__( 'None', 'elementor-pro' ),
						],
					],
					[
						'label' => esc_html__( 'Entrance', 'elementor-pro' ),
						'options' => [
							'enter-from-right' => 'Slide In Right',
							'enter-from-left' => 'Slide In Left',
							'enter-from-top' => 'Slide In Up',
							'enter-from-bottom' => 'Slide In Down',
							'enter-zoom-in' => 'Zoom In',
							'enter-zoom-out' => 'Zoom Out',
							'fade-in' => 'Fade In',
						],
					],
					[
						'label' => esc_html__( 'Reaction', 'elementor-pro' ),
						'options' => [
							'grow' => 'Grow',
							'shrink' => 'Shrink',
							'move-right' => 'Move Right',
							'move-left' => 'Move Left',
							'move-up' => 'Move Up',
							'move-down' => 'Move Down',
						],
					],
					[
						'label' => esc_html__( 'Exit', 'elementor-pro' ),
						'options' => [
							'exit-to-right' => 'Slide Out Right',
							'exit-to-left' => 'Slide Out Left',
							'exit-to-top' => 'Slide Out Up',
							'exit-to-bottom' => 'Slide Out Down',
							'exit-zoom-in' => 'Zoom In',
							'exit-zoom-out' => 'Zoom Out',
							'fade-out' => 'Fade Out',
						],
					],
				],
				'default' => 'grow',
				'condition' => [
					'skin' => 'cover',
				],
			]
		);

		/*
		 *
		 * Add class 'elementor-animated-content' to widget when assigned content animation
		 *
		 */
		$this->add_control(
			'animation_class',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'default' => 'animated-content',
				'prefix_class' => 'elementor-',
				'condition' => [
					'content_animation!' => '',
				],
			]
		);

		$this->add_control(
			'content_animation_duration',
			[
				'label' => esc_html__( 'Animation Duration', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::SLIDER,
				'render_type' => 'template',
				'default' => [
					'size' => 1000,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__content-item' => 'transition-duration: {{SIZE}}ms',
					'{{WRAPPER}}.elementor-cta--sequenced-animation .elementor-cta__content-item:nth-child(2)' => 'transition-delay: calc( {{SIZE}}ms / 3 )',
					'{{WRAPPER}}.elementor-cta--sequenced-animation .elementor-cta__content-item:nth-child(3)' => 'transition-delay: calc( ( {{SIZE}}ms / 3 ) * 2 )',
					'{{WRAPPER}}.elementor-cta--sequenced-animation .elementor-cta__content-item:nth-child(4)' => 'transition-delay: calc( ( {{SIZE}}ms / 3 ) * 3 )',
				],
				'condition' => [
					'content_animation!' => '',
					'skin' => 'cover',
				],
			]
		);

		$this->add_control(
			'sequenced_animation',
			[
				'label' => esc_html__( 'Sequenced Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'return_value' => 'elementor-cta--sequenced-animation',
				'prefix_class' => '',
				'condition' => [
					'content_animation!' => '',

				],
			]
		);

		$this->add_control(
			'background_hover_heading',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Background', 'elementor-pro' ),
				'separator' => 'before',
				'condition' => [
					'skin' => 'cover',
				],
			]
		);

		$this->add_control(
			'transformation',
			[
				'label' => esc_html__( 'Hover Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => 'None',
					'zoom-in' => 'Zoom In',
					'zoom-out' => 'Zoom Out',
					'move-left' => 'Move Left',
					'move-right' => 'Move Right',
					'move-up' => 'Move Up',
					'move-down' => 'Move Down',
				],
				'default' => 'zoom-in',
				'prefix_class' => 'elementor-bg-transform elementor-bg-transform-',
			]
		);

		$this->start_controls_tabs( 'bg_effects_tabs' );

		$this->start_controls_tab( 'normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'overlay_color',
			[
				'label' => esc_html__( 'Overlay Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:not(:hover) .elementor-cta__bg-overlay' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'bg_filters',
				'selector' => '{{WRAPPER}} .elementor-cta__bg',
			]
		);

		$this->add_control(
			'overlay_blend_mode',
			[
				'label' => esc_html__( 'Blend Mode', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Normal', 'elementor-pro' ),
					'multiply' => 'Multiply',
					'screen' => 'Screen',
					'overlay' => 'Overlay',
					'darken' => 'Darken',
					'lighten' => 'Lighten',
					'color-dodge' => 'Color Dodge',
					'color-burn' => 'Color Burn',
					'hue' => 'Hue',
					'saturation' => 'Saturation',
					'color' => 'Color',
					'exclusion' => 'Exclusion',
					'luminosity' => 'Luminosity',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta__bg-overlay' => 'mix-blend-mode: {{VALUE}}',
				],
				'separator' => 'none',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab( 'hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'overlay_color_hover',
			[
				'label' => esc_html__( 'Overlay Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-cta:hover .elementor-cta__bg-overlay' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Css_Filter::get_type(),
			[
				'name' => 'bg_filters_hover',
				'selector' => '{{WRAPPER}} .elementor-cta:hover .elementor-cta__bg',
			]
		);

		$this->add_control(
			'effect_duration',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'render_type' => 'template',
				'default' => [
					'size' => 1500,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 3000,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-cta .elementor-cta__bg, {{WRAPPER}} .elementor-cta .elementor-cta__bg-overlay' => 'transition-duration: {{SIZE}}ms',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		$wrapper_tag = 'div';
		$button_tag = 'a';
		$bg_image = '';
		$content_animation = $settings['content_animation'];
		$animation_class = '';
		$print_bg = true;
		$print_content = true;

		if ( ! empty( $settings['bg_image']['id'] ) ) {
			$bg_image = Group_Control_Image_Size::get_attachment_image_src( $settings['bg_image']['id'], 'bg_image', $settings );
		} elseif ( ! empty( $settings['bg_image']['url'] ) ) {
			$bg_image = $settings['bg_image']['url'];
		}

		if ( empty( $bg_image ) && 'classic' == $settings['skin'] ) {
			$print_bg = false;
		}

		if ( empty( $settings['title'] ) && empty( $settings['description'] ) && empty( $settings['button'] ) && 'none' == $settings['graphic_element'] ) {
			$print_content = false;
		}

		$this->add_render_attribute( 'wrapper', 'class', 'elementor-cta' );

		$this->add_render_attribute( 'background_image', 'style', [
			'background-image: url(' . $bg_image . ');',
		] );

		$this->add_render_attribute( 'title', 'class', [
			'elementor-cta__title',
			'elementor-cta__content-item',
			'elementor-content-item',
		] );

		$this->add_render_attribute( 'description', 'class', [
			'elementor-cta__description',
			'elementor-cta__content-item',
			'elementor-content-item',
		] );

		$this->add_render_attribute( 'button', 'class', [
			'elementor-cta__button',
			'elementor-button',
			'elementor-size-' . $settings['button_size'],
		] );

		$this->add_render_attribute( 'graphic_element', 'class',
			[
				'elementor-content-item',
				'elementor-cta__content-item',
			]
		);

		if ( 'icon' === $settings['graphic_element'] ) {
			$this->add_render_attribute( 'graphic_element', 'class',
				[
					'elementor-icon-wrapper',
					'elementor-cta__icon',
				]
			);
			$this->add_render_attribute( 'graphic_element', 'class', 'elementor-view-' . $settings['icon_view'] );
			if ( 'default' != $settings['icon_view'] ) {
				$this->add_render_attribute( 'graphic_element', 'class', 'elementor-shape-' . $settings['icon_shape'] );
			}

			if ( ! isset( $settings['icon'] ) && ! Icons_Manager::is_migration_allowed() ) {
				// add old default
				$settings['icon'] = 'fa fa-star';
			}

			if ( ! empty( $settings['icon'] ) ) {
				$this->add_render_attribute( 'icon', 'class', $settings['icon'] );
			}
		} elseif ( 'image' === $settings['graphic_element'] && ! empty( $settings['graphic_image']['url'] ) ) {
			$this->add_render_attribute( 'graphic_element', 'class', 'elementor-cta__image' );
		}

		if ( ! empty( $content_animation ) && 'cover' == $settings['skin'] ) {

			$animation_class = 'elementor-animated-item--' . $content_animation;

			$this->add_render_attribute( 'title', 'class', $animation_class );

			$this->add_render_attribute( 'graphic_element', 'class', $animation_class );

			$this->add_render_attribute( 'description', 'class', $animation_class );

		}

		if ( ! empty( $settings['link']['url'] ) ) {
			$link_element = 'button';

			if ( 'box' === $settings['link_click'] ) {
				$wrapper_tag = 'a';
				$button_tag = 'span';
				$link_element = 'wrapper';
			}

			$this->add_link_attributes( $link_element, $settings['link'] );
		}

		$this->add_inline_editing_attributes( 'title' );
		$this->add_inline_editing_attributes( 'description' );
		$this->add_inline_editing_attributes( 'button' );

		$migrated = isset( $settings['__fa4_migrated']['selected_icon'] );
		$is_new = empty( $settings['icon'] ) && Icons_Manager::is_migration_allowed();

		?>
		<<?php Utils::print_validated_html_tag( $wrapper_tag ); ?> <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
		<?php if ( $print_bg ) : ?>
			<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" <?php $this->print_render_attribute_string( 'background_image' ); ?>></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
		<?php endif; ?>
		<?php if ( $print_content ) : ?>
			<div class="elementor-cta__content">
				<?php if ( 'image' === $settings['graphic_element'] && ! empty( $settings['graphic_image']['url'] ) ) : ?>
					<div <?php $this->print_render_attribute_string( 'graphic_element' ); ?>>
						<?php Group_Control_Image_Size::print_attachment_image_html( $settings, 'graphic_image' ); ?>
					</div>
				<?php elseif ( 'icon' === $settings['graphic_element'] && ( ! empty( $settings['icon'] ) || ! empty( $settings['selected_icon'] ) ) ) : ?>
					<div <?php $this->print_render_attribute_string( 'graphic_element' ); ?>>
						<div class="elementor-icon">
							<?php if ( $is_new || $migrated ) :
								Icons_Manager::render_icon( $settings['selected_icon'], [ 'aria-hidden' => 'true' ] );
							else : ?>
								<i <?php $this->print_render_attribute_string( 'icon' ); ?>></i>
							<?php endif; ?>
						</div>
					</div>
				<?php endif; ?>

				<?php
				if ( ! empty( $settings['title'] ) ) :
					$title_tag = Utils::validate_html_tag( $settings['title_tag'] );

					echo '<' . $title_tag . ' ' . $this->get_render_attribute_string( 'title' ) . '>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					$this->print_unescaped_setting( 'title' );
					echo '</' . $title_tag . '>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				endif;
				?>

				<?php if ( ! empty( $settings['description'] ) ) : ?>
					<div <?php $this->print_render_attribute_string( 'description' ); ?>>
						<?php $this->print_unescaped_setting( 'description' ); ?>
					</div>
				<?php endif; ?>

				<?php if ( ! empty( $settings['button'] ) ) : ?>
					<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item <?php echo esc_attr( $animation_class ); ?>">
					<<?php Utils::print_validated_html_tag( $button_tag ); ?> <?php $this->print_render_attribute_string( 'button' ); ?>>
						<?php $this->print_unescaped_setting( 'button' ); ?>
					</<?php Utils::print_unescaped_internal_string( $button_tag ); ?>>
					</div>
				<?php endif; ?>
			</div>
		<?php endif; ?>
		<?php
		if ( ! empty( $settings['ribbon_title'] ) ) :
			$this->add_render_attribute( 'ribbon-wrapper', 'class', 'elementor-ribbon' );

			if ( ! empty( $settings['ribbon_horizontal_position'] ) ) {
				$this->add_render_attribute( 'ribbon-wrapper', 'class', 'elementor-ribbon-' . $settings['ribbon_horizontal_position'] );
			}
			?>
			<div <?php $this->print_render_attribute_string( 'ribbon-wrapper' ); ?>>
				<div class="elementor-ribbon-inner"><?php $this->print_unescaped_setting( 'ribbon_title' ); ?></div>
			</div>
		<?php endif; ?>
		</<?php Utils::print_validated_html_tag( $wrapper_tag ); ?>>
		<?php
	}

	/**
	 * Render Call to Action widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var wrapperTag = 'div',
				buttonTag = 'a',
				contentAnimation = settings.content_animation,
				animationClass,
				btnSizeClass = 'elementor-size-' + settings.button_size,
				printBg = true,
				printContent = true,
				iconHTML = elementor.helpers.renderIcon( view, settings.selected_icon, { 'aria-hidden': true }, 'i' , 'object' ),
				migrated = elementor.helpers.isIconMigrated( settings, 'selected_icon' );

			if ( 'box' === settings.link_click ) {
				wrapperTag = 'a';
				buttonTag = 'span';
				view.addRenderAttribute( 'wrapper', 'href', '#' );
			}

			if ( '' !== settings.bg_image.url ) {
				var bg_image = {
					id: settings.bg_image.id,
					url: settings.bg_image.url,
					size: settings.bg_image_size,
					dimension: settings.bg_image_custom_dimension,
					model: view.getEditModel()
				};

				var bgImageUrl = elementor.imagesManager.getImageUrl( bg_image );
			}

			if ( ! bg_image && 'classic' == settings.skin ) {
				printBg = false;
			}

			if ( ! settings.title && ! settings.description && ! settings.button && 'none' == settings.graphic_element ) {
				printContent = false;
			}

			if ( 'icon' === settings.graphic_element ) {
				var iconWrapperClasses = 'elementor-icon-wrapper';
					iconWrapperClasses += ' elementor-cta__image';
					iconWrapperClasses += ' elementor-view-' + settings.icon_view;
				if ( 'default' !== settings.icon_view ) {
					iconWrapperClasses += ' elementor-shape-' + settings.icon_shape;
				}
				view.addRenderAttribute( 'graphic_element', 'class', iconWrapperClasses );

			} else if ( 'image' === settings.graphic_element && '' !== settings.graphic_image.url ) {
				var image = {
					id: settings.graphic_image.id,
					url: settings.graphic_image.url,
					size: settings.graphic_image_size,
					dimension: settings.graphic_image_custom_dimension,
					model: view.getEditModel()
				};

				var imageUrl = elementor.imagesManager.getImageUrl( image );
				view.addRenderAttribute( 'graphic_element', 'class', 'elementor-cta__image' );
			}

			if ( contentAnimation && 'cover' === settings.skin ) {

				var animationClass = 'elementor-animated-item--' + contentAnimation;

				view.addRenderAttribute( 'title', 'class', animationClass );

				view.addRenderAttribute( 'description', 'class', animationClass );

				view.addRenderAttribute( 'graphic_element', 'class', animationClass );
			}

			view.addRenderAttribute( 'background_image', 'style', 'background-image: url(' + bgImageUrl + ');' );
			view.addRenderAttribute( 'title', 'class', [ 'elementor-cta__title', 'elementor-cta__content-item', 'elementor-content-item' ] );
			view.addRenderAttribute( 'description', 'class', [ 'elementor-cta__description', 'elementor-cta__content-item', 'elementor-content-item' ] );
			view.addRenderAttribute( 'button', 'class', [ 'elementor-cta__button', 'elementor-button', btnSizeClass ] );
			view.addRenderAttribute( 'graphic_element', 'class', [ 'elementor-cta__content-item', 'elementor-content-item' ] );


			view.addInlineEditingAttributes( 'title' );
			view.addInlineEditingAttributes( 'description' );
			view.addInlineEditingAttributes( 'button' );
		#>

		<{{ wrapperTag }} class="elementor-cta" {{{ view.getRenderAttributeString( 'wrapper' ) }}}>

		<# if ( printBg ) { #>
			<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" {{{ view.getRenderAttributeString( 'background_image' ) }}}></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
		<# } #>
		<# if ( printContent ) { #>
			<div class="elementor-cta__content">
				<# if ( 'image' === settings.graphic_element && '' !== settings.graphic_image.url ) { #>
					<div {{{ view.getRenderAttributeString( 'graphic_element' ) }}}>
						<img src="{{ imageUrl }}">
					</div>
				<#  } else if ( 'icon' === settings.graphic_element && ( settings.icon || settings.selected_icon ) ) { #>
					<div {{{ view.getRenderAttributeString( 'graphic_element' ) }}}>
						<div class="elementor-icon">
							<# if ( iconHTML && iconHTML.rendered && ( ! settings.icon || migrated ) ) { #>
								{{{ iconHTML.value }}}
							<# } else { #>
								<i class="{{ settings.icon }}"></i>
							<# } #>
						</div>
					</div>
				<# } #>
				<# if ( settings.title ) { #>
					<# var titleTag = elementorPro.validateHTMLTag( settings.title_tag ) #>
					<{{ titleTag }} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}}</{{ titleTag }}>
				<# } #>

				<# if ( settings.description ) { #>
					<div {{{ view.getRenderAttributeString( 'description' ) }}}>{{{ settings.description }}}</div>
				<# } #>

				<# if ( settings.button ) { #>
					<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item {{ animationClass }}">
						<{{ buttonTag }} href="#" {{{ view.getRenderAttributeString( 'button' ) }}}>{{{ settings.button }}}</{{ buttonTag }}>
					</div>
				<# } #>
			</div>
		<# } #>
		<# if ( settings.ribbon_title ) {
			var ribbonClasses = 'elementor-ribbon';

			if ( settings.ribbon_horizontal_position ) {
				ribbonClasses += ' elementor-ribbon-' + settings.ribbon_horizontal_position;
			} #>
			<div class="{{ ribbonClasses }}">
				<div class="elementor-ribbon-inner">{{{ settings.ribbon_title }}}</div>
			</div>
		<# } #>
		</{{ wrapperTag }}>
		<?php
	}
}
PK!H�LL!modules/call-to-action/module.phpnu�[���<?php
namespace ElementorPro\Modules\CallToAction;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Call_To_Action',
		];
	}

	public function get_name() {
		return 'call-to-action';
	}
}
PK!ٿW�� modules/admin-top-bar/module.phpnu�[���<?php

namespace ElementorPro\Modules\AdminTopBar;

use ElementorPro\Plugin;
use ElementorPro\Base\Module_Base;
use ElementorPro\Core\Connect\Apps\Activate;
use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_name() {
		return 'admin-top-bar';
	}

	/**
	 * Module constructor.
	 */
	public function __construct() {
		parent::__construct();

		add_action( 'elementor/admin-top-bar/init', function ( $module ) {
			$settings = $module->get_settings();

			/** @var Activate $activate */
			$activate = Plugin::elementor()->common->get_component( 'connect' )->get_app( 'activate' );

			$settings['is_user_connected'] = $settings['is_user_connected'] && API::is_license_active();
			$settings['connect_url'] = ! API::is_license_active() ? $activate->get_admin_url( 'authorize' ) : $settings['connect_url'];

			$module->set_settings( $settings );
		} );
	}
}
PK!���"��=modules/assets-manager/asset-types/icons/font-awesome-pro.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons;

use ElementorPro\Modules\AssetsManager\Classes\Assets_Base;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Font_Awesome_Pro extends  Assets_Base {

	const FA_KIT_ID_OPTION_NAME = 'font_awesome_pro_kit_id';

	const FA_KIT_SCRIPT_LINK = 'https://kit.fontawesome.com/%s.js';

	public function get_name() {
		return esc_html__( 'Font Awesome Pro', 'elementor-pro' );
	}

	public function get_type() {
		return 'font-awesome-pro';
	}

	private function get_kit_id() {
		return get_option( 'elementor_' . self::FA_KIT_ID_OPTION_NAME, false );
	}

	public function replace_font_awesome_pro( $settings ) {
		$json_url = ELEMENTOR_PRO_ASSETS_URL . 'lib/font-awesome-pro/%s.js';
		$icons['fa-regular'] = [
			'name' => 'fa-regular',
			'label' => esc_html__( 'Font Awesome - Regular Pro', 'elementor-pro' ),
			'url' => false,
			'enqueue' => false,
			'prefix' => 'fa-',
			'displayPrefix' => 'far',
			'labelIcon' => 'fab fa-font-awesome-alt',
			'ver' => '5.15.1-pro',
			'fetchJson' => sprintf( $json_url, 'regular' ),
			'native' => true,
		];
		$icons['fa-solid'] = [
			'name' => 'fa-solid',
			'label' => esc_html__( 'Font Awesome - Solid Pro', 'elementor-pro' ),
			'url' => false,
			'enqueue' => false,
			'prefix' => 'fa-',
			'displayPrefix' => 'fas',
			'labelIcon' => 'fab fa-font-awesome',
			'ver' => '5.15.1-pro',
			'fetchJson' => sprintf( $json_url, 'solid' ),
			'native' => true,
		];
		$icons['fa-brands'] = [
			'name' => 'fa-brands',
			'label' => esc_html__( 'Font Awesome - Brands Pro', 'elementor-pro' ),
			'url' => false,
			'enqueue' => false,
			'prefix' => 'fa-',
			'displayPrefix' => 'fab',
			'labelIcon' => 'fab fa-font-awesome-flag',
			'ver' => '5.15.1-pro',
			'fetchJson' => sprintf( $json_url, 'brands' ),
			'native' => true,
		];
		$icons['fa-light'] = [
			'name' => 'fa-light',
			'label' => esc_html__( 'Font Awesome - Light Pro', 'elementor-pro' ),
			'url' => false,
			'enqueue' => false,
			'prefix' => 'fa-',
			'displayPrefix' => 'fal',
			'labelIcon' => 'fal fa-flag',
			'ver' => '5.15.1-pro',
			'fetchJson' => sprintf( $json_url, 'light' ),
			'native' => true,
		];
		$icons['fa-duotone'] = [
			'name' => 'fa-duotone',
			'label' => esc_html__( 'Font Awesome - Duotone Pro', 'elementor-pro' ),
			'url' => false,
			'enqueue' => false,
			'prefix' => 'fa-',
			'displayPrefix' => 'fad',
			'labelIcon' => 'fad fa-flag',
			'ver' => '5.15.1-pro',
			'fetchJson' => sprintf( $json_url, 'duotone' ),
			'native' => true,
		];
		// remove Free
		unset(
			$settings['fa-solid'],
			$settings['fa-regular'],
			$settings['fa-brands']
		);
		return array_merge( $icons, $settings );
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'font_awesome_pro', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'Font Awesome Pro', 'elementor-pro' ) . '</h2>';
				esc_html_e( 'Font Awesome, the web\'s most popular icon set and toolkit, Pro Integration', 'elementor-pro' );
			},
			'fields' => [
				self::FA_KIT_ID_OPTION_NAME => [
					'label' => esc_html__( 'Kit ID', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'Enter Your %1$sFont Awesome Pro Kit ID%2$s.', 'elementor-pro' ),
							'<a href="https://fontawesome.com/kits" target="_blank">',
							'</a>'
						),
					],
					'setting_args' => [
						'sanitize_callback' => [ $this, 'sanitize_kit_id_settings' ],
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_fa_pro_validate_button">%s</button><br><p><span class="elementor-pro-fa_pro_data hidden"></span></p>',
							self::FA_KIT_ID_OPTION_NAME . '_fetch',
							wp_create_nonce( self::FA_KIT_ID_OPTION_NAME ),
							__( 'Validate Kit ID', 'elementor-pro' )
						),
					],
				],
			],
		] );
	}

	public function enqueue_kit_js() {
		wp_enqueue_script( 'font-awesome-pro', sprintf( self::FA_KIT_SCRIPT_LINK, $this->get_kit_id() ), [], ELEMENTOR_PRO_VERSION );
	}

	public function sanitize_kit_id_settings( $input ) {
		if ( empty( $input ) ) {
			delete_option( 'elementor_' . self::FA_KIT_ID_OPTION_NAME );
		}

		return $input;
	}

	protected function actions() {
		parent::actions();

		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 100 );
		}

		if ( $this->get_kit_id() ) {
			add_filter( 'elementor/icons_manager/native', [ $this, 'replace_font_awesome_pro' ] );
			add_action( 'elementor/editor/after_enqueue_scripts', [ $this, 'enqueue_kit_js' ] );
			add_action( 'elementor/frontend/after_enqueue_scripts', [ $this, 'enqueue_kit_js' ] );
		}
	}
}
PK!U�ׇII@modules/assets-manager/asset-types/icons/icon-sets/fontastic.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons\IconSets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Fontastic extends Icon_Set_Base {

	protected $data = '';
	protected $data_file = 'icons-reference.html';
	protected $stylesheet_file = 'styles.css';
	protected $allowed_zipped_files = [ 'icons-reference.html', 'styles.css', 'fonts/' ];
	protected $allowed_webfont_extensions = [ 'woff', 'ttf', 'svg', 'eot' ];

	protected function prepare() {
		$this->data = file_get_contents( $this->directory . $this->stylesheet_file );
	}

	public function get_type() {
		return esc_html__( 'Fontastic', 'elementor-pro' );
	}

	public function is_valid() {
		if ( ! file_exists( $this->directory . $this->data_file ) ) {
			return false; // missing data file
		}
		return true;
	}

	protected function extract_icon_list() {
		$pattern = '/\.' . $this->get_prefix() . '(.*)\:before\s\{/';
		preg_match_all( $pattern, $this->data, $icons_matches );
		if ( empty( $icons_matches[1] ) ) {
			return false; //  missing icons list
		}
		$icons = [];
		foreach ( $icons_matches[1] as $icon ) {
			$icons[] = $icon;
		}
		return $icons;
	}

	protected function get_url( $filename = '' ) {
		return $this->get_file_url( $this->dir_name . $filename );
	}

	protected function get_prefix() {
		static $set_prefix = null;
		if ( null === $set_prefix ) {
			$pattern = '/class\^="(.*)?"/';
			preg_match_all( $pattern, $this->data, $prefix );
			if ( ! isset( $prefix[1][0] ) ) {
				return false; //  missing css_prefix_text
			}
			$set_prefix = $prefix[1][0];
		}
		return $set_prefix;
	}

	public function get_name() {
		static $set_name = null;
		if ( null === $set_name ) {
			$pattern = '/font-family: "(.*)"/';
			preg_match_all( $pattern, $this->data, $name );
			if ( ! isset( $name[1][0] ) ) {
				return false; //  missing name
			}
			$set_name = $name[1][0];
		}
		return $set_name;
	}

	protected function get_stylesheet() {
		$name = $this->get_name();
		if ( ! $name ) {
			return false; //  missing name
		}
		return $this->get_url() . '/' . $this->stylesheet_file;
	}
}
PK!�*�PP>modules/assets-manager/asset-types/icons/icon-sets/icomoon.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons\IconSets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Icomoon extends Icon_Set_Base {

	protected $data_file = 'selection.json';
	protected $stylesheet_file = 'style.css';
	protected $allowed_zipped_files = [ 'selection.json', 'demo.html', 'Read Mw.txt', 'demo-files/', 'fonts/' ];
	protected $allowed_webfont_extensions = [ 'woff', 'ttf', 'svg', 'eot' ];

	protected function prepare() {
		return [];
	}

	public function get_type() {
		return esc_html__( 'Icomoon', 'elementor-pro' );
	}

	public function is_valid() {
		if ( ! file_exists( $this->directory . $this->data_file ) ) {
			return false; // missing data file
		}
		return true;
	}

	private function get_json() {
		return json_decode( file_get_contents( $this->directory . $this->data_file ) );
	}

	protected function extract_icon_list() {
		$config = $this->get_json();
		if ( ! isset( $config->icons ) ) {
			return false; //  missing icons list
		}
		$icons = [];
		foreach ( $config->icons as $icon ) {
			$icons[] = $icon->properties->name;
		}
		return $icons;
	}

	protected function get_url( $filename = '' ) {
		return $this->get_file_url( $this->get_name() . $filename );
	}

	protected function get_prefix() {
		$config = $this->get_json();
		if ( ! isset( $config->preferences->fontPref->prefix ) ) {
			return false; //  missing css_prefix_text
		}
		return $config->preferences->fontPref->prefix;
	}

	protected function get_display_prefix() {
		$config = $this->get_json();
		if ( ! isset( $config->preferences->fontPref->classSelector ) ) {
			return false; //  missing css_prefix_text
		}
		return str_replace( '.', '', $config->preferences->fontPref->classSelector );
	}

	public function get_name() {
		$config = $this->get_json();
		if ( ! isset( $config->metadata->name ) ) {
			return false; //  missing name
		}
		return $config->metadata->name;
	}

	protected function get_stylesheet() {
		$name = $this->get_name();
		if ( ! $name ) {
			return false; //  missing name
		}
		return $this->get_url( '/' . $this->stylesheet_file );
	}
}
PK!��V­�Dmodules/assets-manager/asset-types/icons/icon-sets/icon-set-base.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons\IconSets;

use ElementorPro\Core\Utils;
use ElementorPro\Modules\AssetsManager\AssetTypes\Icons\Custom_Icons;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Icon_Set_Base {

	protected $dir_name = '';
	protected $directory = '';
	protected $data_file = '';
	protected $stylesheet_file = '';
	protected $allowed_zipped_files = [];
	protected $files_to_save = [];
	/**
	 * Webfont extensions.
	 *
	 * @var array
	 */
	protected $allowed_webfont_extensions = [ 'woff', 'woff2', 'ttf', 'svg', 'otf', 'eot' ];

	abstract protected function extract_icon_list();

	abstract protected function prepare();

	abstract protected function get_type();

	abstract public function get_name();

	private function is_path_dir( $path ) {
		return '/' === substr( $path, -1 );
	}

	private function is_file_allowed( $path_name ) {
		$check = $this->directory . $path_name;
		if ( ! file_exists( $check ) ) {
			return false;
		}
		if ( $this->is_path_dir( $path_name ) ) {
			return is_dir( $check );
		}
		return true;
	}

	/**
	 * is icon set
	 *
	 * validate that the current uploaded zip is in this icon set format
	 * @return bool
	 */
	public function is_icon_set() {
		foreach ( $this->allowed_zipped_files as $file ) {
			if ( ! $this->is_file_allowed( $file ) ) {
				return false;
			}
		}
		return true;
	}

	public function is_valid() {
		return false;
	}

	protected function get_display_prefix() {
		return '';
	}

	protected function get_prefix() {
		return '';
	}

	public function handle_new_icon_set() {
		return $this->prepare();
	}

	/**
	 * cleanup_temp_files
	 * @param \WP_Filesystem_Base $wp_filesystem
	 */
	protected function cleanup_temp_files( $wp_filesystem ) {
		$wp_filesystem->rmdir( $this->directory, true );
	}

	/**
	 * Gets the URL to uploaded file.
	 *
	 * @param $file_name
	 *
	 * @return string
	 */
	protected function get_file_url( $file_name ) {
		$wp_upload_dir = wp_upload_dir();
		$url = $wp_upload_dir['baseurl'] . '/elementor/custom-icons/' . $file_name;

		/**
		 * Upload file URL.
		 *
		 * Filters the URL to a file uploaded using Elementor forms.
		 *
		 * @since 1.0.0
		 *
		 * @param string $url       File URL.
		 * @param string $file_name File name.
		 */
		$url = apply_filters( 'elementor_pro/icons_manager/custom_icons/url', $url, $file_name );

		return $url;
	}

	protected function get_icon_sets_dir() {
		$wp_upload_dir = wp_upload_dir();
		$path = $wp_upload_dir['basedir'] . '/elementor/custom-icons';

		/**
		 * Upload file path.
		 *
		 * Filters the path for custom icons file uploads using custom icons.
		 *
		 * @param string $path .
		 */
		$path = apply_filters( 'elementor_pro/icons_manager/custom_icons/dir', $path );
		Utils::get_ensure_upload_dir( $path );
		return $path;
	}

	protected function get_ensure_upload_dir( $dir = '' ) {
		$path = $this->get_icon_sets_dir();
		if ( ! empty( $dir ) ) {
			$path .= '/' . $dir;
		}
		return Utils::get_ensure_upload_dir( $path );
	}

	public function move_files( $post_id ) {
		// @todo: save only needed files
		$wp_filesystem = Custom_Icons::get_wp_filesystem();
		$unique_name = $this->get_unique_name();
		$to = $this->get_ensure_upload_dir( $unique_name ) . '/';

		foreach ( $wp_filesystem->dirlist( $this->directory, false, true ) as $file ) {
			$full_path = $this->directory . $file['name'];
			if ( $wp_filesystem->is_dir( $full_path ) ) {
				$wp_filesystem->mkdir( $to . $file['name'] );

				foreach ( $file['files'] as $filename => $sub_file ) {
					$new_path = $to . $file['name'] . DIRECTORY_SEPARATOR . $filename;
					$wp_filesystem->move( $full_path . DIRECTORY_SEPARATOR . $filename, $new_path );
					$this->insert_attachment( $this->get_url() . '/' . $file['name'] . '/' . $filename, $new_path, $post_id );
				}
			} else {
				$new_path = $to . $file['name'];
				$wp_filesystem->move( $full_path, $new_path );
				$this->insert_attachment( $this->get_url() . '/' . $file['name'], $new_path, $post_id );
			}
		}

		$this->cleanup_temp_files( $wp_filesystem );
		update_post_meta( $post_id, '_elementor_icon_set_path', $to );
		$this->dir_name = $unique_name;
		$this->directory = $to;
	}

	private function insert_attachment( $file_url, $filename, $post_id = 0 ) {
		$attachment = [
			'file' => $filename,
			'guid' => $file_url,
			'post_parent' => $post_id,
			'post_type' => 'attachment',
		];
		$id = wp_insert_attachment( $attachment );
		return $id;
	}

	public function get_unique_name() {
		$name = $this->get_name();
		$basename = $name;
		$counter = 1;
		while ( ! $this->is_name_unique( $name ) ) {
			$name = $basename . '-' . $counter;
			$counter++;
		}
		return $name;
	}

	private function is_name_unique( $name ) {
		return ! is_dir( $this->get_icon_sets_dir() . '/' . $name );
	}

	abstract protected function get_url( $filename = '' );

	protected function get_stylesheet() {
		return '';
	}

	protected function get_version() {
		return '1.0.0';
	}

	protected function get_enqueue() {
		return false;
	}

	public function build_config() {
		$name = $this->get_name();
		$icon_set_config = [
			'name' => $name,
			'label' => ucwords( str_replace( [ '-', '_' ], ' ', $name ) ),
			'url' => $this->get_stylesheet(),
			'enqueue' => $this->get_enqueue(),
			'prefix' => $this->get_prefix(),
			'displayPrefix' => $this->get_display_prefix(),
			'labelIcon' => 'eicon eicon-folder',
			'ver' => $this->get_version(),
			'custom_icon_type' => $this->get_type(),
		];

		$icons = $this->extract_icon_list();
		$icon_set_config['count'] = count( $icons );
		$icon_set_config['icons'] = $icons;

		if ( 25 < $icon_set_config['count'] ) {
			$icon_set_config['fetchJson'] = $this->store_icon_list_json( $icons );
		}

		return $icon_set_config;
	}

	private function store_icon_list_json( $icons ) {
		$wp_filesystem = Custom_Icons::get_wp_filesystem();
		$json_file = $this->get_ensure_upload_dir( $this->dir_name ) . '/e_icons.js';
		$wp_filesystem->put_contents( $json_file, json_encode( [ 'icons' => $icons ] ) );
		return $this->get_url() . '/e_icons.js';
	}

	/**
	 * Icon Set Base constructor.
	 *
	 * @param $directory
	 */
	public function __construct( $directory ) {
		$this->directory = $directory;
		return $this->is_icon_set() ? $this : false;
	}
}
PK!m���VV?modules/assets-manager/asset-types/icons/icon-sets/fontello.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons\IconSets;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Fontello extends Icon_Set_Base {

	protected $data_file = 'config.json';
	protected $stylesheet_file = '';
	protected $allowed_zipped_files = [ 'config.json', 'demo.html', 'README.txt', 'LICENSE.txt', 'css/', 'font/' ];
	protected $allowed_webfont_extensions = [ 'woff', 'woff2', 'ttf', 'svg', 'otf' ];

	protected function prepare() {
		$this->remove_fontello_styling();
	}

	public function get_type() {
		return esc_html__( 'Fontello', 'elementor-pro' );
	}

	public function is_valid() {
		if ( ! file_exists( $this->directory . $this->data_file ) ) {
			return false; // missing data file
		}
		return true;
	}

	private function remove_fontello_styling() {
		$filename = $this->directory . 'css/' . $this->get_name() . '.css';
		$stylesheet = file_get_contents( $filename );
		$stylesheet = str_replace( [ 'margin-left: .2em;', 'margin-right: .2em;' ], [ '', '' ], $stylesheet );
		file_put_contents( $filename, $stylesheet );
	}

	private function get_json() {
		return json_decode( file_get_contents( $this->directory . $this->data_file ) );
	}

	protected function extract_icon_list() {
		$config = $this->get_json();
		if ( ! isset( $config->glyphs ) ) {
			return false; //  missing icons list
		}
		$icons = [];
		foreach ( $config->glyphs as $icon ) {
			$icons[] = $icon->css;
		}
		return $icons;
	}

	protected function get_url( $filename = '' ) {
		return $this->get_file_url( $this->dir_name . $filename );
	}

	protected function get_prefix() {
		$config = $this->get_json();
		if ( ! isset( $config->css_prefix_text ) ) {
			return false; //  missing css_prefix_text
		}
		return $config->css_prefix_text;
	}

	public function get_name() {
		$config = $this->get_json();
		if ( ! isset( $config->name ) ) {
			return false; //  missing name
		}
		return $config->name;
	}

	protected function get_stylesheet() {
		$name = $this->get_name();
		if ( ! $name ) {
			return false; //  missing name
		}
		return $this->get_url() . '/css/' . $name . '.css';
	}
}
PK!9���779modules/assets-manager/asset-types/icons/custom-icons.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Icons;

use Elementor\Core\Utils\Exceptions;
use ElementorPro\Modules\AssetsManager\Classes\Assets_Base;
use ElementorPro\Modules\AssetsManager\AssetTypes\Icons_Manager;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Custom_Icons extends  Assets_Base {

	const META_KEY = 'elementor_custom_icon_set_config';
	const OPTION_NAME = 'elementor_custom_icon_sets_config';

	public $current_post_id = 0;

	public function get_name() {
		return esc_html__( 'Custom Icons', 'elementor-pro' );
	}

	public function get_type() {
		return 'custom-icons';
	}

	public function add_meta_box() {
		add_meta_box(
			'elementor-custom-icons-metabox',
			__( 'Icon Set', 'elementor-pro' ),
			[ $this, 'render_metabox' ],
			Icons_Manager::CPT,
			'normal',
			'default'
		);
	}

	public static function get_icon_set_config( $id ) {
		return get_post_meta( $id, self::META_KEY, true );
	}

	public function render_metabox( $post ) {
		wp_enqueue_media();

		$save_data = self::get_icon_set_config( $post->ID );

		$fields = [
			[
				'id' => 'open_div',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'elementor-custom-icons-metabox',
				],
			],
			[
				'id' => 'zip_upload',
				'field_type' => 'dropzone',
				'accept' => 'zip,application/octet-stream,application/zip,application/x-zip,application/x-zip-compressed',
				'label' => false,
				'sub-label' => esc_html__( 'Your Fontello, IcoMoon or Fontastic .zip file', 'elementor-pro' ),
			],
			[
				'id' => 'close_div',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => self::META_KEY,
				'name' => self::META_KEY,
				'field_type' => 'input',
				'input_type' => 'hidden',
				'label' => false,
				'value' => $save_data,
				'saved' => $save_data,
			],
			[
				'id' => Icons_Manager::CPT . '_nonce',
				'name' => Icons_Manager::CPT . '_nonce',
				'field_type' => 'input',
				'input_type' => 'hidden',
				'label' => false,
				'value' => wp_create_nonce( Icons_Manager::CPT ),
			],
		];

		foreach ( $fields as $field ) {
			$field['saved'] = isset( $field['saved'] ) ? $field['saved'] : '';
		}

		$this->print_metabox( $fields );
	}

	public function save_post_meta( $post_id, $post, $update ) {
		// If this is an autosave, our form has not been submitted,
		// so we don't want to do anything.
		if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
			return $post_id;
		}

		// Check the user's permissions.
		if ( ! current_user_can( 'edit_post', $post_id ) ) {
			return $post_id;
		}

		// Check if our nonce is set.
		if ( ! isset( $_POST[ Icons_Manager::CPT . '_nonce' ] ) ) {
			return $post_id;
		}

		// Verify that the nonce is valid.
		if ( ! wp_verify_nonce( $_POST[ Icons_Manager::CPT . '_nonce' ], Icons_Manager::CPT ) ) {
			return $post_id;
		}

		if ( ! isset( $_POST[ self::META_KEY ] ) ) {
			return delete_post_meta( $post_id, self::META_KEY );
		}

		// Sanitize a little
		$json = json_decode( stripslashes_deep( $_POST[ self::META_KEY ] ), true );
		foreach ( $json as $property => $value ) {
			$json[ $property ] = $this->sanitize_text_field_recursive( $value );
		}

		// All good save the files array
		update_post_meta( $post_id, self::META_KEY, json_encode( $json ) );

		// Force refresh of list in Options Table
		self::clear_icon_list_option();
	}

	public static function get_supported_icon_sets() {
		$icon_sets = [
			'fontastic' => __NAMESPACE__ . '\IconSets\Fontastic',
			'fontello' => __NAMESPACE__ . '\IconSets\Fontello',
			'icomoon' => __NAMESPACE__ . '\IconSets\Icomoon',
		];
		return array_merge( apply_filters( 'elementor_pro/icons_manager/custom_icons/additional_supported_types', [] ), $icon_sets );
	}

	private function get_active_icon_sets() {
		$icons = new \WP_Query( [
			'post_type' => Icons_Manager::CPT,
			'posts_per_page' => -1,
		] );
		$custom_icon_sets = [];
		foreach ( $icons->posts as $icon_set ) {
			$set_config = json_decode( self::get_icon_set_config( $icon_set->ID ), true );
			$set_config['custom_icon_post_id'] = $icon_set->ID;
			$set_config['label'] = $icon_set->post_title;
			$custom_icon_sets[ $set_config['name'] ] = $set_config;
		}
		return $custom_icon_sets;
	}

	/**
	 * get_wp_filesystem
	 * @return \WP_Filesystem_Base
	 */
	public static function get_wp_filesystem() {
		global $wp_filesystem;
		if ( empty( $wp_filesystem ) ) {
			require_once ABSPATH . '/wp-admin/includes/file.php';
			WP_Filesystem();
		}
		return $wp_filesystem;
	}

	private function upload() {
		$file = $_FILES['zip_upload'];
		$filename = $_FILES['zip_upload']['name'];
		$ext = pathinfo( $filename, PATHINFO_EXTENSION );
		if ( 'zip' !== $ext ) {
			unlink( $_FILES['zip_upload']['name'] );
			return new \WP_Error( 'unsupported_file', esc_html__( 'Only zip files are allowed', 'elementor-pro' ) );
		}
		if ( ! function_exists( 'wp_handle_upload' ) ) {
			require_once ABSPATH . 'wp-admin/includes/file.php';
		}
		// Handler upload archive file.
		$upload_result = wp_handle_upload( $file, [ 'test_form' => false ] );
		if ( isset( $upload_result['error'] ) ) {
			unlink( $_FILES['zip_upload']['name'] );
			return new \WP_Error( 'upload_error', $upload_result['error'] );
		}
		return $upload_result['file'];
	}

	private function extract_zip( $file, $to ) {
		// TODO: Move to core as a util.
		$valid_field_types = [
			'css',
			'eot',
			'html',
			'json',
			'otf',
			'svg',
			'ttf',
			'txt',
			'woff',
			'woff2',
		];

		$zip = new \ZipArchive();

		$zip->open( $file );

		$valid_entries = [];

		// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
		for ( $i = 0; $i < $zip->numFiles; $i++ ) {
			$zipped_file_name = $zip->getNameIndex( $i );
			$dirname = pathinfo( $zipped_file_name, PATHINFO_DIRNAME );

			// Skip the OS X-created __MACOSX directory.
			if ( '__MACOSX/' === substr( $dirname, 0, 9 ) ) {
				continue;
			}

			$zipped_extension = pathinfo( $zipped_file_name, PATHINFO_EXTENSION );

			if ( in_array( $zipped_extension, $valid_field_types, true ) ) {
				$valid_entries[] = $zipped_file_name;
			}
		}

		$unzip_result = false;

		if ( ! empty( $valid_entries ) ) {
			$unzip_result = $zip->extractTo( $to, $valid_entries );
		}

		if ( ! $unzip_result ) {
			$unzip_result = new \WP_Error( 'error', esc_html__( 'Could not unzip or empty archive.', 'elementor-pro' ) );
		}

		@unlink( $file );

		return $unzip_result; // TRUE | WP_Error instance.
	}

	private function upload_and_extract_zip() {
		$zip_file = $this->upload();
		if ( is_wp_error( $zip_file ) ) {
			return $zip_file;
		}
		$filesystem = self::get_wp_filesystem();
		$extract_to = trailingslashit( get_temp_dir() . pathinfo( $zip_file, PATHINFO_FILENAME ) );

		$unzipped = $this->extract_zip( $zip_file, $extract_to );
		if ( is_wp_error( $unzipped ) ) {
			return $unzipped;
		}

		// Find the right folder.
		$source_files = array_keys( $filesystem->dirlist( $extract_to ) );
		if ( count( $source_files ) === 0 ) {
			return new \WP_Error( 'incompatible_archive', esc_html__( 'Incompatible archive', 'elementor-pro' ) );
		}

		if ( 1 === count( $source_files ) && $filesystem->is_dir( $extract_to . $source_files[0] ) ) {
			$directory = $extract_to . trailingslashit( $source_files[0] );
		} else {
			$directory = $extract_to;
		}
		return [
			'directory' => $directory,
			'extracted_to' => $extract_to,
		];
	}

	public function custom_icons_upload_handler( $data ) {
		if ( ! current_user_can( Icons_Manager::CAPABILITY ) ) {
			return new \WP_Error( Exceptions::FORBIDDEN, 'Access denied.' );
		}

		$this->current_post_id = $data['post_id'];
		$results = $this->upload_and_extract_zip();
		if ( is_wp_error( $results ) ) {
			return $results;
		}
		$supported_icon_sets = self::get_supported_icon_sets();
		foreach ( $supported_icon_sets as $key => $handler ) {
			/**
			 * @var IconSets\Icon_Set_Base $icon_set_handler
			 */
			$icon_set_handler = new $handler( $results['directory'] );

			if ( ! $icon_set_handler ) {
				continue;
			}
			if ( ! $icon_set_handler->is_valid() ) {
				continue;
			}
			$icon_set_handler->handle_new_icon_set();
			$name = $icon_set_handler->get_name();
			$icon_set_handler->move_files( $this->current_post_id );
			$config = $icon_set_handler->build_config();

			// Notify about duplicate prefix
			if ( self::icon_set_prefix_exists( $config['prefix'] ) ) {
				$config['duplicate_prefix'] = true;
			}
			return [
				'config' => $config,
			];
		}
		return new \WP_Error( 'unsupported_zip_format', esc_html__( 'The zip file provided is not supported!', 'elementor-pro' ) );
	}

	public function handle_delete_icon_set( $post_id ) {
		if ( Icons_Manager::CPT !== get_post_type( $post_id ) ) {
			return;
		}

		// remove all assets related to this icon set
		$attachments = get_attached_media( '', $post_id );

		foreach ( $attachments as $attachment ) {
			wp_delete_attachment( $attachment->ID, 'true' );
		}

		// remove icon set assets directory
		$icon_set_dir = get_post_meta( $post_id, '_elementor_icon_set_path', true );
		if ( ! empty( $icon_set_dir ) && is_dir( $icon_set_dir ) ) {
			$this::get_wp_filesystem()->rmdir( $icon_set_dir, true );
		}

		// Force refresh of list in Options Table
		self::clear_icon_list_option();
	}

	public static function clear_icon_list_option() {
		delete_option( self::OPTION_NAME );
	}

	public function display_post_states( $post_states, $post ) {
		if ( 'publish' !== $post->post_status || Icons_Manager::CPT !== $post->post_type ) {
			return $post_states;
		}

		$data = json_decode( self::get_icon_set_config( $post->ID ) );
		if ( ! empty( $data->count ) ) {
			echo sprintf( '<span class="font-variations-count">%d</span>', esc_html( $data->count ) );
		}

		return $post_states;
	}

	/**
	 * Render preview column in font manager admin listing
	 *
	 * @param $column
	 * @param $post_id
	 */
	public function render_columns( $column, $post_id ) {
		if ( 'icons_prefix' === $column ) {
			$data = json_decode( self::get_icon_set_config( $post_id ) );
			if ( ! empty( $data->prefix ) ) {
				echo '<pre>' . esc_html( '.' . $data->prefix ) . '</pre>';
			}
		}
	}

	/**
	 * Define which columns to display in font manager admin listing
	 *
	 * @param $columns
	 *
	 * @return array
	 */
	public function manage_columns( $columns ) {
		return [
			'cb' => '<input type="checkbox" />',
			'title' => esc_html__( 'Icon Set', 'elementor-pro' ),
			'icons_prefix' => esc_html__( 'CSS Prefix', 'elementor-pro' ),
		];
	}

	public function update_enter_title_here( $title, $post ) {
		if ( isset( $post->post_type ) && Icons_Manager::CPT === $post->post_type ) {
			return esc_html__( 'Enter Icon Set Name', 'elementor-pro' );
		}

		return $title;
	}

	public function register_ajax_actions( Ajax $ajax ) {
		$ajax->register_ajax_action( 'pro_assets_manager_custom_icon_upload', [ $this, 'custom_icons_upload_handler' ] );
	}

	public function register_icon_libraries_control( $additional_sets ) {
		return array_merge( $additional_sets, self::get_custom_icons_config() );
	}

	public function add_custom_icon_templates( $current_screen ) {
		if ( 'elementor_icons' !== $current_screen->id || 'post' !== $current_screen->base ) {
			return;
		}
		Plugin::elementor()->common->add_template( __DIR__ . '/templates.php' );
	}

	public function add_custom_icons_url( $config ) {
		$config['customIconsURL'] = admin_url( 'edit.php?post_type=' . Icons_Manager::CPT );
		return $config;
	}

	public static function get_custom_icons_config() {
		$config = get_option( self::OPTION_NAME, false );
		if ( false === $config ) {
			$icons = new \WP_Query( [
				'post_type' => Icons_Manager::CPT,
				'posts_per_page' => -1,
				'post_status' => 'publish',
			] );
			$config = [];
			foreach ( $icons->posts as $icon_set ) {
				$set_config = json_decode( self::get_icon_set_config( $icon_set->ID ), true );
				$set_config['custom_icon_post_id'] = $icon_set->ID;
				$set_config['label'] = $icon_set->post_title;
				if ( isset( $set_config['fetchJson'] ) ) {
					unset( $set_config['icons'] );
				}
				$config[ $set_config['name'] ] = $set_config;
			}
			update_option( self::OPTION_NAME, $config );
		}
		return $config;
	}

	public static function icon_set_prefix_exists( $prefix ) {
		$config = self::get_custom_icons_config();
		if ( empty( $config ) ) {
			return false;
		}
		foreach ( $config as $icon_set_name => $icon_config ) {
			if ( $prefix === $icon_config['prefix'] ) {
				return true;
			}
		}
		return false;
	}

	public function transition_post_status( $new_status, $old_status, $post ) {
		if ( Icons_Manager::CPT !== $post->post_type ) {
			return;
		}

		if ( 'publish' === $old_status && 'publish' !== $new_status ) {
			$this->clear_icon_list_option();
		}
	}

	protected function actions() {

		parent::actions();
		if ( is_admin() ) {
			add_action( 'add_meta_boxes_' . Icons_Manager::CPT, [ $this, 'add_meta_box' ] );
			add_action( 'save_post_' . Icons_Manager::CPT, [ $this, 'save_post_meta' ], 10, 3 );
			add_filter( 'display_post_states', [ $this, 'display_post_states' ], 10, 2 );
			add_action( 'manage_' . Icons_Manager::CPT . '_posts_custom_column', [ $this, 'render_columns' ], 10, 2 );
			add_filter( 'enter_title_here', [ $this, 'update_enter_title_here' ], 10, 2 );
			add_filter( 'manage_' . Icons_Manager::CPT . '_posts_columns', [ $this, 'manage_columns' ], 100 );
			add_action( 'current_screen', [ $this, 'add_custom_icon_templates' ] );
		}

		add_action( 'transition_post_status', [ $this, 'transition_post_status' ], 10, 3 );
		add_action( 'before_delete_post', [ $this, 'handle_delete_icon_set' ] );
		add_filter( 'elementor/icons_manager/additional_tabs', [ $this, 'register_icon_libraries_control' ] );
		add_filter( 'elementor/editor/localize_settings', [ $this, 'add_custom_icons_url' ] );

		// Ajax.
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );
	}
}
PK!��A�FF6modules/assets-manager/asset-types/icons/templates.phpnu�[���<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}
?>
<script type="text/template" id="elementor-custom-icons-template-footer">
	<div class="elementor-icon-set-footer"><?php echo esc_html__( 'Created on', 'elementor-pro' ); ?>: {{day}}/{{mm}}/{{year}}, {{hour}}:{{minute}}</div>
</script>

<script type="text/template" id="elementor-custom-icons-template-header">
	<div class="elementor-icon-set-header">
		<div><span class="elementor-icon-set-header-meta"><?php echo esc_html__( 'Name', 'elementor-pro' ); ?>: </span><span class="elementor-icon-set-header-meta-value">{{name}}</span></div>
		<div><span class="elementor-icon-set-header-meta"><?php echo esc_html__( 'CSS Prefix', 'elementor-pro' ); ?>: </span><span class="elementor-icon-set-header-meta-value">{{prefix}}</span></div>
		<div><span class="elementor-icon-set-header-meta"><?php echo esc_html__( 'Icons Count', 'elementor-pro' ); ?>: </span><span class="elementor-icon-set-header-meta-value">{{count}}</span></div>
	</div>
</script>

<script type="text/template" id="elementor-custom-icons-template-duplicate-prefix">
	<div class="elementor-icon-set-duplicate-prefix"><?php echo esc_html__( 'The Icon Set prefix already exists in your site. In order to avoid conflicts we recommend to use a unique prefix per Icon Set.', 'elementor-pro' ); ?></div>
</script>
PK!�fc99:modules/assets-manager/asset-types/fonts/typekit-fonts.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Fonts;

use ElementorPro\Modules\AssetsManager\Classes\Font_Base;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Typekit_Fonts extends Font_Base {

	const TYPEKIT_KIT_ID_OPTION_NAME = 'typekit-kit-id';

	const TYPEKIT_FONTS_OPTION_NAME = 'elementor_typekit-data';

	const TYPEKIT_FONTS_LINK = 'https://use.typekit.net/%s.css';

	protected $kit_enqueued = false;

	protected $error = '';

	private $api_base = 'https://typekit.com/api/v1/json/kits';

	private function get_typekit_fonts() {
		return get_option( self::TYPEKIT_FONTS_OPTION_NAME, false );
	}

	private function get_typekit_kit_id() {
		return get_option( 'elementor_' . self::TYPEKIT_KIT_ID_OPTION_NAME, false );
	}

	public function get_name() {
		return esc_html__( 'Adobe Fonts (TypeKit)', 'elementor-pro' );
	}

	public function get_type() {
		return 'typekit';
	}

	private function fetch_typekit_data() {
		$kit_id = $this->get_typekit_kit_id();
		if ( ! $kit_id ) {
			return false;
		}

		$response = wp_remote_get( $this->api_base . '/' . $kit_id . '/published' );

		// Response is a WP_Error object
		if ( is_wp_error( $response ) ) {
			return false;
		}

		// Response code is not success
		$response_code = (int) wp_remote_retrieve_response_code( $response );
		$response_body = json_decode( wp_remote_retrieve_body( $response ) );
		if ( 200 !== $response_code ) {
			switch ( $response_code ) {
				case 404:
					$this->error = esc_html__( 'Project not found.', 'elementor-pro' );
					break;
				default:
					$this->error = $response_code;
					if ( isset( $response_body->errors ) ) {
						$this->error .= ': ' . implode( ', ', $response_body->errors );
					}
					break;
			}

			return false;
		}

		if ( ! $response_body ) {
			$this->error = esc_html__( 'No project data was returned.', 'elementor-pro' );

			return false;
		}

		/*
		 * Expected Json response example
		 * {
		 *    "kit": {
		 *        "id": "nmm7qvq",
		 *        "families": [
		 *             {
		 *                 "id": "hmqz",
		 *                 "name": "Adobe Caslon Pro",
		 *                 "slug": "adobe-caslon-pro",
		 *	               "css_names": [
		 *                    "adobe-caslon-pro"
		 * 	                ],
		 *                 "css_stack": "\"adobe-caslon-pro\",serif",
		 *                 "variations": [ "n6","i6","i7" ]
		 * 	            }
		 * 	        ]
		 * 	    }
		 * 	}
		 */
		if ( ! is_object( $response_body ) || ! isset( $response_body->kit ) || ! isset( $response_body->kit->families ) || ! is_array( $response_body->kit->families ) ) {
			return false;
		}

		$families = [];
		foreach ( $response_body->kit->families as $font_family ) {
			$font_css = isset( $font_family->css_names[0] ) ? $font_family->css_names[0] : $font_family->slug;
			$families[ $font_css ] = $this->get_type();
		}
		update_option( self::TYPEKIT_FONTS_OPTION_NAME, $families );

		return $families;
	}

	private function get_kit_fonts() {
		$typekit_fonts = $this->get_typekit_fonts();
		if ( ! $typekit_fonts ) {
			$typekit_fonts = $this->fetch_typekit_data();
		}

		return $typekit_fonts;
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		$font_family = sanitize_text_field( $data['font'] );

		$typekit_fonts = $this->get_kit_fonts();

		if ( ! $typekit_fonts || ! is_array( $typekit_fonts ) ) {
			throw new \Exception( esc_html__( 'Error with TypeKit fonts', 'elementor-pro' ) );
		}

		if ( ! in_array( $font_family, array_keys( $typekit_fonts ) ) ) {
			throw new \Exception( esc_html__( 'Font missing in Project', 'elementor-pro' ) );
		}

		$kit_id = $this->get_typekit_kit_id();

		return [ 'font_url' => sprintf( self::TYPEKIT_FONTS_LINK, $kit_id ) ];
	}

	public function sanitize_kit_id_settings( $input ) {
		if ( empty( $input ) ) {
			delete_option( self::TYPEKIT_FONTS_OPTION_NAME );
		}

		return $input;
	}

	public function register_admin_fields( Settings $settings ) {
		$fonts = $this->get_typekit_fonts();
		$button_label = esc_html__( 'Get Project ID', 'elementor-pro' );
		$found_label = '<span class="elementor-pro-typekit-count">{{count}}</span> ' . esc_html__( 'Fonts Families Found in project. Please note that typekit takes a few minutes to sync once you publish or update a project.', 'elementor-pro' );
		if ( $fonts && is_array( $fonts ) ) {
			$button_label = esc_html__( 'Sync Project', 'elementor-pro' );
		}
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'typekit', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'Adobe Fonts (TypeKit)', 'elementor-pro' ) . '</h2>';
				esc_html_e( 'TypeKit partners with the world’s leading type foundries to bring thousands of beautiful fonts to designers every day.', 'elementor-pro' );
			},
			'fields' => [
				self::TYPEKIT_KIT_ID_OPTION_NAME => [
					'label' => esc_html__( 'Project ID', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'Enter Your %1$sTypeKit Project ID%2$s.', 'elementor-pro' ),
							'<a href="https://fonts.adobe.com/typekit" target="_blank">',
							'</a>'
						),
					],
					'setting_args' => [
						'sanitize_callback' => [ $this, 'sanitize_kit_id_settings' ],
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-found="%s" data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_typekit_validate_button">%s</button><br><p><span class="elementor-pro-typekit-data hidden"></span></p>',
							esc_html( $found_label ),
							self::TYPEKIT_KIT_ID_OPTION_NAME . '_fetch',
							wp_create_nonce( self::TYPEKIT_KIT_ID_OPTION_NAME ),
							$button_label
						),
					],
				],
			],
		] );
	}

	public function register_fonts_in_control( $fonts ) {
		$typekit_fonts = $this->get_kit_fonts();
		if ( $typekit_fonts ) {
			return array_merge( $typekit_fonts, $fonts );
		}

		return $fonts;
	}

	public function print_font_link( $font ) {
		if ( $this->kit_enqueued ) {
			return;
		}
		if ( $this->is_font_in_kit( $font ) ) {
			$kit_url = sprintf( self::TYPEKIT_FONTS_LINK, $this->get_typekit_kit_id() );
			echo '<link rel="stylesheet" type="text/css" href="' . esc_url( $kit_url ) . '">';
			$this->kit_enqueued = true;
		}
	}

	private function is_font_in_kit( $font ) {
		$kit_fonts = $this->get_kit_fonts();
		if ( ! $kit_fonts || ! is_array( $kit_fonts ) ) {
			return false;
		}

		return in_array( $font, array_keys( $kit_fonts ) );
	}

	public function integrations_admin_ajax_handler() {
		check_ajax_referer( self::TYPEKIT_KIT_ID_OPTION_NAME, '_nonce' );
		if ( ! isset( $_POST['kit_id'] ) ) {
			wp_send_json_error();
		}
		$fonts = [];
		try {
			update_option( 'elementor_' . self::TYPEKIT_KIT_ID_OPTION_NAME, sanitize_text_field( $_POST['kit_id'] ) );
			$fonts = $this->fetch_typekit_data();
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success( [
			'fonts' => $fonts,
			'count' => count( $fonts ),
		] );
	}

	protected function actions() {
		parent::actions();
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 100 );
		}
		add_filter( 'elementor/fonts/additional_fonts', [ $this, 'register_fonts_in_control' ] );
		add_action( 'elementor/fonts/print_font_links/' . $this->get_type(), [ $this, 'print_font_link' ] );
		add_action( 'wp_ajax_elementor_pro_admin_fetch_fonts', [ $this, 'integrations_admin_ajax_handler' ] );
	}
}
PK!�Z�k�6�69modules/assets-manager/asset-types/fonts/custom-fonts.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes\Fonts;

use Elementor\Core\Files\Assets\Files_Upload_Handler;
use Elementor\Core\Files\CSS\Base;
use ElementorPro\Modules\AssetsManager\Classes;
use ElementorPro\Modules\AssetsManager\AssetTypes\Fonts_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Custom_Fonts extends Classes\Font_Base {

	const FONT_META_KEY = 'elementor_font_files';
	const FONT_FACE_META_KEY = 'elementor_font_face';

	public function get_name() {
		return esc_html__( 'Custom Fonts', 'elementor-pro' );
	}

	public function get_type() {
		return 'custom';
	}

	private function get_file_types() {
		return [
			'woff' => 'font/woff|application/font-woff|application/x-font-woff|application/octet-stream',
			'woff2' => 'font/woff2|application/octet-stream|font/x-woff2',
			'ttf' => 'application/x-font-ttf|application/octet-stream|font/ttf',
			'svg' => 'image/svg+xml|application/octet-stream|image/x-svg+xml',
			'eot' => 'application/vnd.ms-fontobject|application/octet-stream|application/x-vnd.ms-fontobject',
		];
	}

	public function add_meta_box() {
		add_meta_box(
			'elementor-font-' . $this->get_type() . 'metabox',
			__( 'Manage Your Font Files', 'elementor-pro' ),
			[ $this, 'render_metabox' ],
			Fonts_Manager::CPT,
			'normal',
			'default'
		);
	}

	public function render_metabox( $post ) {
		wp_enqueue_media();

		$fields = [
			[
				'id' => 'open_div',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'repeater-content-top',
				],
			],
			[
				'id' => 'font_weight',
				'field_type' => 'select',
				'label' => esc_html__( 'Weight', 'elementor-pro' ) . ':',
				'extra_attributes' => [
					'class' => 'font_weight',
				],
				'options' => $this->get_font_weight_options(),
			],
			[
				'id' => 'font_style',
				'field_type' => 'select',
				'label' => esc_html__( 'Style', 'elementor-pro' ) . ':',
				'extra_attributes' => [
					'class' => 'font_style',
				],
				'options' => $this->get_font_style_options(),
			],
			[
				'id' => 'preview_label',
				'field_type' => 'html',
				'label' => false,
				'raw_html' => sprintf( '<div class="inline-preview">%s</div>', esc_html__( 'Elementor Is Making the Web Beautiful!!!', 'elementor-pro' ) ),
			],
			[
				'id' => 'toolbar',
				'field_type' => 'toolbar',
				'label' => false,
			],
			[
				'id' => 'close_div',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'close' => true,
			],
			[
				'id' => 'open_div',
				'field_type' => 'html_tag',
				'label' => false,
				'tag' => 'div',
				'attributes' => [
					'class' => 'repeater-content-bottom',
				],
			],
		];

		foreach ( $this->get_file_types() as $type => $mine ) {
			$fields[] = [
				'id' => $type,
				'field_type' => 'file',
				'mine' => str_replace( '|', ',', $mine ),
				'ext' => $type,
				/* translators: %s: Font file format. */
				'label' => sprintf( esc_html__( '%s File', 'elementor-pro' ), strtoupper( $type ) ),
				/* translators: %s: Font file format. */
				'box_title' => sprintf( esc_html__( 'Upload font .%s file', 'elementor-pro' ), $type ),
				/* translators: %s: Font file format. */
				'box_action' => sprintf( esc_html__( 'Select .%s file', 'elementor-pro' ), $type ),
				'preview_anchor' => 'none',
				'description' => $this->get_file_type_description( $type ),
			];
		}

		$fields[] = [
			'id' => 'close_div',
			'field_type' => 'html_tag',
			'label' => false,
			'tag' => 'div',
			'close' => true,
		];

		$font_data = get_post_meta( $post->ID, self::FONT_META_KEY, true );

		$repeater = [
			'fields' => $fields,
			'id' => 'font_face',
			'label' => false,
			'add_label' => esc_html__( 'Add Font Variation', 'elementor-pro' ),
			'toggle_title' => esc_html__( 'Edit', 'elementor-pro' ),
			'remove_title' => esc_html__( 'Delete', 'elementor-pro' ),
			'field_type' => 'repeater',
			'row_label' => [
				'default' => 'Settings',
				'selector' => '.font_weight',
			],
			'saved' => $font_data,
		];

		$this->print_metabox( [ $repeater ] );

		// PHPCS - Dedicated for CSS.
		printf( '<style>%s</style>', get_post_meta( $post->ID, self::FONT_FACE_META_KEY, true ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	public function save_meta( $post_id, $data ) {
		if ( ! isset( $data['font_face'] ) || ! is_array( $data['font_face'] ) ) {
			return;
		}

		// Sanitize a little
		$font_face = [];
		foreach ( $data['font_face'] as $font_data ) {
			$font_face[] = $this->sanitize_text_field_recursive( $font_data );
		}

		// All good save the files array
		update_post_meta( $post_id, self::FONT_META_KEY, $font_face );

		// Save font face
		update_post_meta( $post_id, self::FONT_FACE_META_KEY, $this->generate_font_face( $post_id ) );
	}

	public function upload_mimes( $mine_types ) {
		if ( current_user_can( Fonts_Manager::CAPABILITY ) && $this->is_elementor_font_upload() ) {
			foreach ( $this->get_file_types() as $type => $mine ) {
				if ( ! isset( $mine_types[ $type ] ) ) {
					$mine_types[ $type ] = $mine;
				}
			}
		}

		return $mine_types;
	}

	public function wp_handle_upload_prefilter( $file ) {
		if ( ! $this->is_elementor_font_upload() ) {
			return $file;
		}

		$ext = pathinfo( $file['name'], PATHINFO_EXTENSION );

		if ( 'svg' !== $ext ) {
			return $file;
		}

		/**
		 * @var \Elementor\Core\Files\Assets\Svg\Svg_Handler $svg_handler;
		 */
		$svg_handler = Plugin::elementor()->assets_manager->get_asset( 'svg-handler' );

		if ( Files_Upload_Handler::file_sanitizer_can_run() && ! $svg_handler->sanitize_svg( $file['tmp_name'] ) ) {
			$file['error'] = esc_html__( 'Invalid SVG Format, file not uploaded for security reasons', 'elementor-pro' );
		}

		return $file;
	}

	private function is_elementor_font_upload() {
		return isset( $_POST['uploadTypeCaller'] ) && 'elementor-admin-font-upload' === $_POST['uploadTypeCaller']; // phpcs:ignore
	}

	/**
	 * A workaround for upload validation which relies on a PHP extension (fileinfo) with inconsistent reporting behaviour.
	 * ref: https://core.trac.wordpress.org/ticket/39550
	 * ref: https://core.trac.wordpress.org/ticket/40175
	 */
	public function filter_fix_wp_check_filetype_and_ext( $data, $file, $filename, $mimes ) {
		if ( ! empty( $data['ext'] ) && ! empty( $data['type'] ) ) {
			return $data;
		}

		$registered_file_types = $this->get_file_types();
		$filetype = wp_check_filetype( $filename, $mimes );

		if ( ! isset( $registered_file_types[ $filetype['ext'] ] ) ) {
			return $data;
		}
		// Fix incorrect file mime type
		$filetype['type'] = explode( '|', $filetype['type'] )[0];

		return [
			'ext' => $filetype['ext'],
			'type' => $filetype['type'],
			'proper_filename' => $data['proper_filename'],
		];
	}

	public function generate_font_face( $post_id ) {
		$saved = get_post_meta( $post_id, self::FONT_META_KEY, true );
		if ( ! is_array( $saved ) ) {
			return false;
		}

		$font_family = get_the_title( $post_id );
		$font_face = '';

		foreach ( $saved as $font_data ) {
			$font_face .= $this->get_font_face_from_data( $font_family, $font_data ) . PHP_EOL;
		}

		return $font_face;
	}

	public function get_font_face_from_data( $font_family, $data ) {
		$src = [];
		foreach ( [ 'eot', 'woff2', 'woff', 'ttf', 'svg' ] as $type ) {
			if ( ! isset( $data[ $type ] ) || ! isset( $data[ $type ]['url'] ) || empty( $data[ $type ]['url'] ) ) {
				continue;
			}

			if ( 'svg' === $type ) {
				$data[ $type ]['url'] .= '#' . str_replace( ' ', '', $font_family );
			}

			$src[] = $this->get_font_src_per_type( $type, $data[ $type ]['url'] );
		}

		$font_face = '@font-face {' . PHP_EOL;
		$font_face .= "\tfont-family: '" . $font_family . "';" . PHP_EOL;
		$font_face .= "\tfont-style: " . $data['font_style'] . ';' . PHP_EOL;
		$font_face .= "\tfont-weight: " . $data['font_weight'] . ';' . PHP_EOL;
		$font_face .= "\tfont-display: " . apply_filters( 'elementor_pro/custom_fonts/font_display', 'auto', $font_family, $data ) . ';' . PHP_EOL;

		if ( isset( $data['eot'] ) && isset( $data['eot']['url'] ) && ! empty( $data['eot']['url'] ) ) {
			$font_face .= "\tsrc: url('" . esc_attr( $data['eot']['url'] ) . "');" . PHP_EOL;
		}

		$font_face .= "\tsrc: " . implode( ',' . PHP_EOL . "\t\t", $src ) . ';' . PHP_EOL . '}';

		return $font_face;
	}

	private function get_font_src_per_type( $type, $url ) {
		$src = 'url(\'' . esc_attr( $url ) . '\') ';
		switch ( $type ) {
			case 'woff':
			case 'woff2':
			case 'svg':
				$src .= 'format(\'' . $type . '\')';
				break;

			case 'ttf':
				$src .= 'format(\'truetype\')';
				break;

			case 'eot':
				$src = 'url(\'' . esc_attr( $url ) . '?#iefix\') format(\'embedded-opentype\')';
				break;
		}

		return $src;
	}

	public function get_fonts( $force = false ) {
		$fonts = get_option( self::FONTS_OPTION_NAME, false );
		if ( $fonts && ! $force ) {
			return $fonts;
		}

		add_filter( 'posts_fields', [ $this, 'posts_fields' ] );
		$fonts = new \WP_Query( [
			'post_type' => Fonts_Manager::CPT,
			'posts_per_page' => -1,
		] );
		remove_filter( 'posts_fields', [ $this, 'posts_fields' ] );

		$new_fonts = [];
		foreach ( $fonts->posts as $font ) {
			$new_fonts[ $font->post_title ] = 'custom';
		}

		update_option( self::FONTS_OPTION_NAME, $new_fonts );

		return $new_fonts;
	}

	private function get_font_face_by_font_family( $font_family ) {
		global $wpdb;

		$id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = %s LIMIT 1", $font_family, Fonts_Manager::CPT ) );

		if ( $id ) {
			return get_post_meta( $id, self::FONT_FACE_META_KEY, true );
		}

		return '';
	}

	public function render_preview_column( $post_id ) {
		$font_face = get_post_meta( $post_id, self::FONT_FACE_META_KEY, true );

		if ( ! $font_face ) {
			return;
		}

		// PHPCS - the variable $font_face is CSS. the property $this->font_preview_phrase is safe.
		printf( '<style>%s</style><span style="font-family: \'%s\';">%s</span>', $font_face, esc_html( get_the_title( $post_id ) ), $this->font_preview_phrase ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	public function get_font_family_type( $post_id, $post_title ) {
		return [
			$post_title => $this->get_type(),
		];
	}

	public function get_font_data( $post_id, $post_title ) {
		return [
			$post_title => [
				'font_face' => $this->generate_font_face( $post_id ),
				'post_id' => $post_id,
			],
		];
	}

	public function get_font_variations_count( $post_id ) {
		$data = get_post_meta( $post_id, self::FONT_META_KEY, true );
		if ( ! empty( $data ) && count( $data ) > 0 ) {
			echo sprintf( '<span class="font-variations-count">%d</span>', count( $data ) );
		}
	}

	/**
	 * @param string $font_family
	 * @param array  $font_data
	 * @param Base   $post_css
	 */
	public function enqueue_font( $font_family, $font_data, $post_css ) {
		$font_faces = isset( $font_data['font_face'] ) ? $font_data['font_face'] : $this->get_font_face_by_font_family( $font_family );
		// Add a css comment
		$custom_css = '/* Start Custom Fonts CSS */' . $font_faces . '/* End Custom Fonts CSS */';
		$post_css->get_stylesheet()->add_raw_css( $custom_css );
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		$font_family = sanitize_text_field( $data['font'] );

		$font_face = $this->get_font_face_by_font_family( $font_family );

		if ( empty( $font_face ) ) {
			/* translators: %s: Font family. */
			$error_message = sprintf( esc_html__( 'Font %s was not found.', 'elementor-pro' ), $font_family );

			throw new \Exception( $error_message );
		}

		return [
			'font_face' => $font_face,
		];
	}

	private function get_font_style_options() {
		return [
			'normal' => esc_html__( 'Normal', 'elementor-pro' ),
			'italic' => esc_html__( 'Italic', 'elementor-pro' ),
			'oblique' => esc_html__( 'Oblique', 'elementor-pro' ),
		];
	}

	private function get_font_weight_options() {
		return [
			'normal' => esc_html__( 'Normal', 'elementor-pro' ),
			'bold' => esc_html__( 'Bold', 'elementor-pro' ),
			'100' => '100',
			'200' => '200',
			'300' => '300',
			'400' => '400',
			'500' => '500',
			'600' => '600',
			'700' => '700',
			'800' => '800',
			'900' => '900',
		];
	}

	private function get_file_type_description( $file_type ) {
		$descriptions = [
			'eot' => esc_html__( 'Embedded OpenType, Used by IE6-IE9 Browsers', 'elementor-pro' ),
			'woff2' => esc_html__( 'The Web Open Font Format 2, Used by Super Modern Browsers', 'elementor-pro' ),
			'woff' => esc_html__( 'The Web Open Font Format, Used by Modern Browsers', 'elementor-pro' ),
			'ttf' => esc_html__( 'TrueType Fonts, Used for better supporting Safari, Android, iOS', 'elementor-pro' ),
			'svg' => esc_html__( 'SVG fonts allow SVG to be used as glyphs when displaying text, Used by Legacy iOS', 'elementor-pro' ),
		];

		return isset( $descriptions[ $file_type ] ) ? $descriptions[ $file_type ] : '';
	}

	private function replace_urls( $rows_affected, $from, $to ) {
		global $wpdb;

		$rows_affected = $wpdb->query(
			"UPDATE {$wpdb->postmeta} " .
			$wpdb->prepare( 'SET `meta_value` = REPLACE(`meta_value`, %s, %s) ', $from, $to ) .
			'WHERE `meta_key` = \'' . self::FONT_FACE_META_KEY . '\''
		);

		return $rows_affected;
	}

	protected function actions() {
		parent::actions();

		add_filter( 'elementor/tools/replace-urls', function( $rows_affected, $from, $to ) {
			return $this->replace_urls( $rows_affected, $from, $to );
		}, 10, 3 );
		add_filter( 'wp_check_filetype_and_ext', [ $this, 'filter_fix_wp_check_filetype_and_ext' ], 10, 4 );
		add_filter( 'wp_handle_upload_prefilter', [ $this, 'wp_handle_upload_prefilter' ] );
		add_filter( 'upload_mimes', [ $this, 'upload_mimes' ] );
		add_action( 'add_meta_boxes_' . Fonts_Manager::CPT, [ $this, 'add_meta_box' ] );
	}
}
PK!����DD4modules/assets-manager/asset-types/icons-manager.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes;

use ElementorPro\Modules\AssetsManager\Classes;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Icons_Manager {

	const CAPABILITY = 'manage_options';

	const CPT = 'elementor_icons';

	const FONTS_OPTION_NAME = 'elementor_fonts_manager_fonts';

	const FONTS_NAME_TYPE_OPTION_NAME = 'elementor_fonts_manager_font_types';

	private $post_type_object;

	private $enqueued_fonts = [];

	protected $icon_types = [];

	/**
	 * get a font type object for a given type
	 *
	 * @param null $type
	 *
	 * @return array|bool|\ElementorPro\Modules\AssetsManager\Classes\Font_Base
	 */
	public function get_icon_type_object( $type = null ) {
		if ( null === $type ) {
			return $this->icon_types;
		}

		if ( isset( $this->icon_types[ $type ] ) ) {
			return $this->icon_types[ $type ];
		}

		return false;
	}

	/**
	 * Add a font type to the font manager
	 *
	 * @param string            $icon_type
	 * @param Classes\Assets_Base $instance
	 */
	public function add_icon_type( $icon_type, $instance ) {
		$this->icon_types[ $icon_type ] = $instance;
	}

	/**
	 * Register elementor icon set custom post type
	 */
	public function register_post_type() {
		$labels = [
			'name' => _x( 'Custom Icons', 'CPT Name', 'elementor-pro' ),
			'singular_name' => _x( 'Icon Set', 'CPT Singular Name', 'elementor-pro' ),
			'add_new' => esc_html__( 'Add New', 'elementor-pro' ),
			'add_new_item' => esc_html__( 'Add New Icon Set', 'elementor-pro' ),
			'edit_item' => esc_html__( 'Edit Icon Set', 'elementor-pro' ),
			'new_item' => esc_html__( 'New Icon Set', 'elementor-pro' ),
			'all_items' => esc_html__( 'All Icons', 'elementor-pro' ),
			'view_item' => esc_html__( 'View Icon', 'elementor-pro' ),
			'search_items' => esc_html__( 'Search Icon Set', 'elementor-pro' ),
			'not_found' => esc_html__( 'No icons found', 'elementor-pro' ),
			'not_found_in_trash' => esc_html__( 'No icons found in trash', 'elementor-pro' ),
			'parent_item_colon' => '',
			'menu_name' => _x( 'Custom Icons', 'CPT Menu Name', 'elementor-pro' ),
		];

		$args = [
			'labels' => $labels,
			'public' => false,
			'rewrite' => false,
			'show_ui' => true,
			'show_in_menu' => false,
			'show_in_nav_menus' => false,
			'exclude_from_search' => true,
			'capability_type' => 'post',
			'hierarchical' => false,
			'supports' => [ 'title' ],
		];

		$this->post_type_object = register_post_type( self::CPT, $args );
	}

	public function post_updated_messages( $messages ) {
		$messages[ self::CPT ] = [
			0 => '', // Unused. Messages start at index 1.
			1 => esc_html__( 'Icon Set updated.', 'elementor-pro' ),
			2 => esc_html__( 'Custom field updated.', 'elementor-pro' ),
			3 => esc_html__( 'Custom field deleted.', 'elementor-pro' ),
			4 => esc_html__( 'Icon Set updated.', 'elementor-pro' ),
			/* translators: %s: date and time of the revision */
			5 => isset( $_GET['revision'] ) ? sprintf( esc_html__( 'Icon Set restored to revision from %s', 'elementor-pro' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
			6 => esc_html__( 'Icon Set saved.', 'elementor-pro' ),
			7 => esc_html__( 'Icon Set saved.', 'elementor-pro' ),
			8 => esc_html__( 'Icon Set submitted.', 'elementor-pro' ),
			9 => esc_html__( 'Icon Set updated.', 'elementor-pro' ),
			10 => esc_html__( 'Icon Set draft updated.', 'elementor-pro' ),
		];

		return $messages;
	}

	/**
	 * Add Font manager link to admin menu
	 */
	public function register_admin_menu() {
		$menu_title = _x( 'Custom Icons', 'Elementor Font', 'elementor-pro' );
		add_submenu_page(
			Settings::PAGE_ID,
			$menu_title,
			$menu_title,
			self::CAPABILITY,
			'edit.php?post_type=' . self::CPT
		);
	}

	public function redirect_admin_old_page_to_new() {
		if ( ! empty( $_GET['page'] ) && 'elementor_custom_icons' === $_GET['page'] ) {
			wp_safe_redirect( admin_url( 'edit.php?post_type=' . self::CPT ) );
			die;
		}
	}

	/**
	 * Clean up admin Font manager admin listing
	 */
	public function clean_admin_listing_page() {
		global $typenow;

		if ( self::CPT !== $typenow ) {
			return;
		}

		add_filter( 'months_dropdown_results', '__return_empty_array' );
		add_filter( 'screen_options_show_screen', '__return_false' );
	}

	public function post_row_actions( $actions, $post ) {
		if ( self::CPT !== $post->post_type ) {
			return $actions;
		}

		unset( $actions['inline hide-if-no-js'] );

		return $actions;
	}

	public function add_finder_item( array $categories ) {
		$categories['settings']['items']['custom-icons'] = [
			'title' => esc_html__( 'Custom Icons', 'elementor-pro' ),
			'icon' => 'favorite',
			'url' => admin_url( 'edit.php?post_type=' . self::CPT ),
			'keywords' => [ 'custom', 'icons', 'elementor' ],
		];

		return $categories;
	}

	/**
	 * Register Font Manager action and filter hooks
	 */
	protected function actions() {
		add_action( 'init', [ $this, 'register_post_type' ] );

		if ( is_admin() ) {
			add_action( 'init', [ $this, 'redirect_admin_old_page_to_new' ] );
			add_action( 'admin_menu', [ $this, 'register_admin_menu' ], 50 );
			add_action( 'admin_head', [ $this, 'clean_admin_listing_page' ] );
		}

		add_filter( 'post_updated_messages', [ $this, 'post_updated_messages' ] );
		add_filter( 'post_row_actions', [ $this, 'post_row_actions' ], 10, 2 );

		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_item' ] );

		/**
		 * Elementor icons manager loaded.
		 *
		 * Fires after the icons manager was fully loaded and instantiated.
		 *
		 * @since 2.0.0
		 *
		 * @param Fonts_Manager $this An instance of icons manager.
		 */
		do_action( 'elementor_pro/icons_manager_loaded', $this );
	}

	/**
	 * Fonts_Manager constructor.
	 */
	public function __construct() {
		$this->actions();
		$this->add_icon_type( 'custom', new Icons\Custom_Icons() );
		$this->add_icon_type( 'font-awesome-pro', new Icons\Font_Awesome_Pro() );
	}
}
PK!g�[�Y>Y>4modules/assets-manager/asset-types/fonts-manager.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\AssetTypes;

use Elementor\Utils;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use ElementorPro\Modules\AssetsManager\Classes;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Fonts_Manager {

	const CAPABILITY = 'manage_options';

	const CPT = 'elementor_font';

	const TAXONOMY = 'elementor_font_type';

	const FONTS_OPTION_NAME = 'elementor_fonts_manager_fonts';

	const FONTS_NAME_TYPE_OPTION_NAME = 'elementor_fonts_manager_font_types';

	private $post_type_object;

	private $taxonomy_object;

	private $enqueued_fonts = [];

	protected $font_types = [];

	/**
	 * get a font type object for a given type
	 *
	 * @param null $type
	 *
	 * @return array|bool|\ElementorPro\Modules\AssetsManager\Classes\Font_Base
	 */
	public function get_font_type_object( $type = null ) {
		if ( null === $type ) {
			return $this->font_types;
		}

		if ( isset( $this->font_types[ $type ] ) ) {
			return $this->font_types[ $type ];
		}

		return false;
	}

	/**
	 * Add a font type to the font manager
	 *
	 * @param string            $font_type
	 * @param Classes\Font_Base $instance
	 */
	public function add_font_type( $font_type, $instance ) {
		$this->font_types[ $font_type ] = $instance;
	}

	/**
	 * Register elementor font custom post type and elementor font type custom taxonomy
	 */
	public function register_post_type_and_tax() {
		$labels = [
			'name' => _x( 'Custom Fonts', 'CPT Name', 'elementor-pro' ),
			'singular_name' => _x( 'Font', 'CPT Singular Name', 'elementor-pro' ),
			'add_new' => esc_html__( 'Add New', 'elementor-pro' ),
			'add_new_item' => esc_html__( 'Add New Font', 'elementor-pro' ),
			'edit_item' => esc_html__( 'Edit Font', 'elementor-pro' ),
			'new_item' => esc_html__( 'New Font', 'elementor-pro' ),
			'all_items' => esc_html__( 'All Fonts', 'elementor-pro' ),
			'view_item' => esc_html__( 'View Font', 'elementor-pro' ),
			'search_items' => esc_html__( 'Search Font', 'elementor-pro' ),
			'not_found' => esc_html__( 'No fonts found', 'elementor-pro' ),
			'not_found_in_trash' => esc_html__( 'No fonts found in trash', 'elementor-pro' ),
			'parent_item_colon' => '',
			'menu_name' => _x( 'Custom Fonts', 'CPT Menu Name', 'elementor-pro' ),
		];

		$args = [
			'labels' => $labels,
			'public' => false,
			'rewrite' => false,
			'show_ui' => true,
			'show_in_menu' => false,
			'show_in_nav_menus' => false,
			'exclude_from_search' => true,
			'capability_type' => 'post',
			'hierarchical' => false,
			'supports' => [ 'title' ],
		];

		$this->post_type_object = register_post_type( self::CPT, $args );

		$taxonomy_labels = [
			'name' => _x( 'Font Types', 'Font type taxonomy general name', 'elementor-pro' ),
			'singular_name' => _x( 'Font Type', 'Font type singular name', 'elementor-pro' ),
			'search_items' => esc_html__( 'Search Font Types', 'elementor-pro' ),
			'popular_items' => esc_html__( 'Popular Font Types', 'elementor-pro' ),
			'all_items' => esc_html__( 'All Font Types', 'elementor-pro' ),
			'edit_item' => esc_html__( 'Edit Font Type', 'elementor-pro' ),
			'update_item' => esc_html__( 'Update Font Type', 'elementor-pro' ),
			'add_new_item' => esc_html__( 'Add New Font Type', 'elementor-pro' ),
			'new_item_name' => esc_html__( 'New Font Type Name', 'elementor-pro' ),
			'separate_items_with_commas' => esc_html__( 'Separate Font Types with commas', 'elementor-pro' ),
			'add_or_remove_items' => esc_html__( 'Add or remove Font Types', 'elementor-pro' ),
			'choose_from_most_used' => esc_html__( 'Choose from the most used Font Types', 'elementor-pro' ),
			'not_found' => esc_html__( 'No Font Types found.', 'elementor-pro' ),
			'menu_name' => esc_html__( 'Font Types', 'elementor-pro' ),
		];

		$taxonomy_args = [
			'labels' => $taxonomy_labels,
			'hierarchical' => false,
			'show_ui' => true,
			'show_in_nav_menus' => false,
			'query_var' => is_admin(),
			'rewrite' => false,
			'public' => false,
			'meta_box_cb' => [ $this, 'print_taxonomy_metabox' ],
		];

		$this->taxonomy_object = register_taxonomy( self::TAXONOMY, self::CPT, $taxonomy_args );
	}

	public function post_updated_messages( $messages ) {
		$messages[ self::CPT ] = [
			0 => '', // Unused. Messages start at index 1.
			1 => esc_html__( 'Font updated.', 'elementor-pro' ),
			2 => esc_html__( 'Custom field updated.', 'elementor-pro' ),
			3 => esc_html__( 'Custom field deleted.', 'elementor-pro' ),
			4 => esc_html__( 'Font updated.', 'elementor-pro' ),
			/* translators: %s: date and time of the revision */
			5 => isset( $_GET['revision'] ) ? sprintf( esc_html__( 'Font restored to revision from %s', 'elementor-pro' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
			6 => esc_html__( 'Font saved.', 'elementor-pro' ),
			7 => esc_html__( 'Font saved.', 'elementor-pro' ),
			8 => esc_html__( 'Font submitted.', 'elementor-pro' ),
			9 => esc_html__( 'Font updated.', 'elementor-pro' ),
			10 => esc_html__( 'Font draft updated.', 'elementor-pro' ),
		];

		return $messages;
	}

	/**
	 * Print Font Type metabox
	 *
	 * @param $post
	 * @param $box
	 */
	public function print_taxonomy_metabox( $post, $box ) {
		wp_nonce_field( self::CPT, self::CPT . '_nonce' );
		$name = self::TAXONOMY;
		?>
		<div id="taxonomy-<?php echo esc_attr( $name ); ?>" class="categorydiv">
			<?php
			$term_obj = wp_get_object_terms( $post->ID, $name );
			$slug = false;
			if ( is_array( $term_obj ) && isset( $term_obj[0] ) ) {
				$slug = $term_obj[0]->slug;
			}
			$options = '';
			foreach ( $this->font_types as $type => $instance ) {
				$options .= sprintf( '<option value="%s"%s>%s</option>' . "\n", $type, selected( $slug, $type, false ), $instance->get_name() );
			}
			?>
			<select class="widefat" name="<?php echo esc_attr( $name ); ?>">
				<?php Utils::print_unescaped_internal_string( $options ); ?>
			</select>
		</div>
		<?php
	}

	/**
	 * Add Font manager link to admin menu
	 */
	public function register_admin_menu() {
		$menu_title = _x( 'Custom Fonts', 'Elementor Font', 'elementor-pro' );
		add_submenu_page(
			Settings::PAGE_ID,
			$menu_title,
			$menu_title,
			self::CAPABILITY,
			'edit.php?post_type=' . self::CPT
		);
	}

	public function redirect_admin_old_page_to_new() {
		if ( ! empty( $_GET['page'] ) && 'elementor_custom_fonts' === $_GET['page'] ) {
			wp_safe_redirect( admin_url( 'edit.php?post_type=' . self::CPT ) );
			die;
		}
	}

	/**
	 * Render preview column in font manager admin listing
	 *
	 * @param $column
	 * @param $post_id
	 */
	public function render_columns( $column, $post_id ) {
		if ( 'font_preview' === $column ) {
			$font_type = $this->get_font_type_by_post_id( $post_id, true );

			if ( false === $font_type ) {
				return;
			}

			$font_type->render_preview_column( $post_id );
		}
	}

	/**
	 * Handle editor request to embed/link font CSS per font type
	 *
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function assets_manager_panel_action_data( array $data ) {
		if ( empty( $data['type'] ) ) {
			throw new \Exception( 'font_type_is_required' );
		}

		if ( empty( $data['font'] ) ) {
			throw new \Exception( 'font_is_required' );
		}

		$asset = $this->get_font_type_object( $data['type'] );

		if ( ! $asset ) {
			throw new \Exception( 'font_type_not_found' );
		}

		try {
			return $asset->handle_panel_request( $data );

		} catch ( \Exception $exception ) {
			throw $exception;
		}
	}

	/**
	 * Clean up admin Font manager admin listing
	 */
	public function clean_admin_listing_page() {
		global $typenow;

		if ( self::CPT !== $typenow ) {
			return;
		}

		add_filter( 'months_dropdown_results', '__return_empty_array' );
		add_action( 'manage_' . self::CPT . '_posts_custom_column', [ $this, 'render_columns' ], 10, 2 );
		add_filter( 'display_post_states', [ $this, 'display_post_states' ], 10, 2 );
		add_filter( 'screen_options_show_screen', '__return_false' );
	}

	public function update_enter_title_here( $title, $post ) {
		if ( isset( $post->post_type ) && self::CPT === $post->post_type ) {
			return esc_html__( 'Enter Font Family', 'elementor-pro' );
		}

		return $title;
	}

	public function post_row_actions( $actions, $post ) {
		if ( self::CPT !== $post->post_type ) {
			return $actions;
		}

		unset( $actions['inline hide-if-no-js'] );

		return $actions;
	}

	public function display_post_states( $post_states, $post ) {
		$font_type = $this->get_font_type_by_post_id( $post->ID, true );

		if ( false !== $font_type ) {
			$font_type->get_font_variations_count( $post->ID );
		}

		return $post_states;
	}

	/**
	 * Define which columns to display in font manager admin listing
	 *
	 * @param $columns
	 *
	 * @return array
	 */
	public function manage_columns( $columns ) {
		return [
			'cb' => '<input type="checkbox" />',
			'title' => esc_html__( 'Font Family', 'elementor-pro' ),
			'font_preview' => esc_html__( 'Preview', 'elementor-pro' ),
		];
	}

	public function register_fonts_in_control( $fonts ) {
		$custom_fonts = $this->get_font_types();
		if ( empty( $custom_fonts ) ) {
			$this->generate_fonts_list();
			$custom_fonts = $this->get_font_types();
		}

		return array_merge( $custom_fonts, $fonts );
	}

	public function register_fonts_groups( $font_groups ) {
		$new_groups = [];

		foreach ( $this->get_font_type_object() as $type => $instance ) {
			$new_groups[ $type ] = $instance->get_name();
		}

		return array_merge( $new_groups, $font_groups );
	}

	/**
	 * Gets a Font type for any given post id
	 *
	 * @param      $post_id
	 * @param bool $return_object
	 *
	 * @return array|bool|Classes\Font_Base
	 */
	private function get_font_type_by_post_id( $post_id, $return_object = false ) {
		$term_obj = get_the_terms( $post_id, self::TAXONOMY );

		if ( is_array( $term_obj ) ) {
			$type_obj = array_shift( $term_obj );

			if ( false === $return_object ) {
				return $type_obj->slug;
			}

			return $this->get_font_type_object( $type_obj->slug );
		}

		return false;
	}

	/**
	 * Get font manager fonts as font family => font type array
	 * @return array
	 */
	private function get_font_types() {
		static $font_types = false;

		if ( ! $font_types ) {
			$font_types = get_option( self::FONTS_NAME_TYPE_OPTION_NAME, [] );
		}

		return $font_types;
	}

	/**
	 * Generates a list of all Font Manager fonts and stores it in the options table
	 * @return array
	 */
	private function generate_fonts_list() {
		$fonts = new \WP_Query( [
			'post_type' => self::CPT,
			'posts_per_page' => -1,
		] );

		$new_fonts = [];
		$font_types = [];
		foreach ( $fonts->posts as $font ) {
			$font_type = $this->get_font_type_by_post_id( $font->ID, true );
			if ( false === $font_type ) {
				continue;
			}
			$font_types = array_merge( $font_types, $font_type->get_font_family_type( $font->ID, $font->post_title ) );
			$new_fonts = array_merge( $new_fonts, $font_type->get_font_data( $font->ID, $font->post_title ) );
		}

		update_option( self::FONTS_NAME_TYPE_OPTION_NAME, $font_types );
		update_option( self::FONTS_OPTION_NAME, $new_fonts );

		return $new_fonts;
	}

	/**
	 * runs on Elementor font post save and calls the font type handler save meta method
	 *
	 * @param int      $post_id
	 * @param \WP_Post $post
	 * @param bool     $update
	 *
	 * @return mixed
	 */
	public function save_post_meta( $post_id, $post, $update ) {
		// If this is an autosave, our form has not been submitted,
		// so we don't want to do anything.
		if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
			return $post_id;
		}

		// Check the user's permissions.
		if ( ! current_user_can( 'edit_post', $post_id ) ) {
			return $post_id;
		}

		// Check if our nonce is set.
		if ( ! isset( $_POST[ self::CPT . '_nonce' ] ) ) {
			return $post_id;
		}

		// Verify that the nonce is valid.
		if ( ! wp_verify_nonce( $_POST[ self::CPT . '_nonce' ], self::CPT ) ) {
			return $post_id;
		}

		// Save font type
		// only custom for now
		$custom_font = $this->get_font_type_object( 'custom' );

		wp_set_object_terms( $post_id, $custom_font->get_type(), self::TAXONOMY );

		// Let Font type handle saving
		$custom_font->save_meta( $post_id, $_POST );
	}

	/**
	 * Helper to clean font list on save/update
	 */
	public function clear_fonts_list() {
		delete_option( self::FONTS_OPTION_NAME );
		delete_option( self::FONTS_NAME_TYPE_OPTION_NAME );
	}

	/**
	 * Get fonts array form the database or generate a new list if $force is set to true
	 *
	 * @param bool $force
	 *
	 * @return array|bool|mixed
	 */
	public function get_fonts() {
		static $fonts = false;

		if ( false !== $fonts ) {
			return $fonts;
		}

		$fonts = $this->generate_fonts_list();

		$fonts = get_option( self::FONTS_OPTION_NAME, false );

		return $fonts;
	}

	/**
	 * Enqueue fonts css
	 *
	 * @param $post_css
	 */
	public function enqueue_fonts( $post_css ) {
		$used_fonts = $post_css->get_fonts();
		$font_manager_fonts = $this->get_fonts();
		$font_types = $this->get_font_types();

		foreach ( $used_fonts as $font_family ) {
			if ( ! isset( $font_types[ $font_family ] ) || in_array( $font_family, $this->enqueued_fonts ) ) {
				continue;
			}

			$font_type = $this->get_font_type_object( $font_types[ $font_family ] );
			if ( ! $font_type ) {
				continue;
			}

			$font_data = [];
			if ( isset( $font_manager_fonts[ $font_family ] ) ) {
				$font_data = $font_manager_fonts[ $font_family ];
			}
			$font_type->enqueue_font( $font_family, $font_data, $post_css );

			$this->enqueued_fonts[] = $font_family;
		}
	}

	public function register_ajax_actions( Ajax $ajax ) {
		$ajax->register_ajax_action( 'pro_assets_manager_panel_action_data', [ $this, 'assets_manager_panel_action_data' ] );
	}

	public function add_finder_item( array $categories ) {
		$categories['settings']['items']['custom-fonts'] = [
			'title' => esc_html__( 'Custom Fonts', 'elementor-pro' ),
			'icon' => 'typography',
			'url' => admin_url( 'edit.php?post_type=' . self::CPT ),
			'keywords' => [ 'custom', 'fonts', 'elementor' ],
		];

		return $categories;
	}

	/**
	 * Register Font Manager action and filter hooks
	 */
	protected function actions() {
		add_action( 'init', [ $this, 'register_post_type_and_tax' ] );

		if ( is_admin() ) {
			add_action( 'init', [ $this, 'redirect_admin_old_page_to_new' ] );
			add_action( 'admin_menu', [ $this, 'register_admin_menu' ], 50 );
			add_action( 'admin_head', [ $this, 'clean_admin_listing_page' ] );
		}

		add_filter( 'post_row_actions', [ $this, 'post_row_actions' ], 10, 2 );
		add_filter( 'manage_' . self::CPT . '_posts_columns', [ $this, 'manage_columns' ], 100 );
		add_action( 'save_post_' . self::CPT, [ $this, 'save_post_meta' ], 10, 3 );
		add_action( 'save_post_' . self::CPT, [ $this, 'clear_fonts_list' ], 100 );

		add_filter( 'elementor/fonts/groups', [ $this, 'register_fonts_groups' ] );
		add_filter( 'elementor/fonts/additional_fonts', [ $this, 'register_fonts_in_control' ] );
		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_item' ] );
		add_action( 'elementor/css-file/post/parse', [ $this, 'enqueue_fonts' ] );
		add_action( 'elementor/css-file/global/parse', [ $this, 'enqueue_fonts' ] );
		add_filter( 'post_updated_messages', [ $this, 'post_updated_messages' ] );
		add_filter( 'enter_title_here', [ $this, 'update_enter_title_here' ], 10, 2 );

		// Ajax.
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );

		/**
		 * Elementor fonts manager loaded.
		 *
		 * Fires after the fonts manager was fully loaded and instantiated.
		 *
		 * @since 2.0.0
		 *
		 * @param Fonts_Manager $this An instance of fonts manager.
		 */
		do_action( 'elementor_pro/fonts_manager_loaded', $this );
	}

	/**
	 * Fonts_Manager constructor.
	 */
	public function __construct() {
		$this->actions();
		$this->add_font_type( 'custom', new Fonts\Custom_Fonts() );
		$this->add_font_type( 'typekit', new Fonts\Typekit_Fonts() );
	}
}
PK!m�5��0�0.modules/assets-manager/classes/assets-base.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\Classes;

use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Assets_Base {

	abstract public function get_name();

	abstract public function get_type();

	protected function actions() { }

	public function print_metabox( $fields ) {
		?>
		<div class="elementor-metabox-content">
			<?php
			foreach ( $fields as $field ) :
				$field['saved'] = isset( $field['saved'] ) ? $field['saved'] : '';
				// PHPCS - admin fields
				echo $this->get_metabox_field_html( $field, $field['saved'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			endforeach;
			?>
		</div>
		<?php
	}

	public function get_metabox_field_html( $field, $saved ) {
		$html = '';

		switch ( $field['field_type'] ) {
			case 'html':
				$html = $this->get_html_field( $field );

				return $html;
				break;

			case 'html_tag':
				$html = $this->get_html_tag( $field );

				return $html;
				break;

			case 'toolbar':
				$html = $this->get_repeater_tools( $field );
				break;

			case 'input':
				$html = $this->get_input_field( $field );
				break;

			case 'select':
				$html = $this->get_select_field( $field, $saved );
				break;

			case 'textarea':
				$html = $this->get_textarea_field( $field, $saved );
				break;

			case 'file':
				$html = $this->get_file_field( $field, $saved );
				break;

			case 'repeater':
				$html = $this->get_repeater_field( $field, $saved );
				break;

			case 'dropzone':
				$html = $this->get_dropzone_field( $field, $saved );
				break;

			case 'checkbox':
				return $this->get_checkbox_field( $field, $saved );

			default:
				$method = 'get_' . $field['field_type'] . 'field';
				if ( method_exists( $this, $method ) ) {
					$html = call_user_func( [ $this, $method ], $field, $saved );
				}
				break;
		}

		return $this->get_field_row( $field, $html );
	}

	public function get_field_label( $field ) {
		if ( ! isset( $field['label'] ) || false === $field['label'] ) {
			return '';
		}
		$id = $field['id'];
		if ( 'file' === $field['field_type'] ) {
			$id .= $field['field_type'];
		}

		return '<p class="elementor-field-label"><label for="' . esc_attr( $id ) . '">' . $field['label'] . '</label></p>';
	}

	public function get_input_field( $attributes ) {
		if ( isset( $attributes['input_type'] ) ) {
			$attributes['type'] = $attributes['input_type'];
			unset( $attributes['input_type'] );
		}
		$input = '<input ' . $this->get_attribute_string( $attributes ) . '>';

		return $input;
	}

	public function get_attribute_string( $attributes, $field = [] ) {
		if ( isset( $field['extra_attributes'] ) && is_array( $field['extra_attributes'] ) ) {
			$attributes = array_merge( $attributes, $field['extra_attributes'] );
		}
		$attributes_array = [];
		foreach ( $attributes as $name => $value ) {
			$attributes_array[] = sprintf( '%s="%s"', $name, esc_attr( $value ) );
		}

		return implode( ' ', $attributes_array );
	}

	public function get_select_field( $field, $selected = '' ) {
		$input = '<select ';
		$input .= $this->get_attribute_string( [
			'name' => $field['id'],
			'id' => $field['id'],
		], $field );

		$input .= '>' . "\n";
		foreach ( $field['options'] as $value => $label ) {
			$input .= '<option value="' . $value . '" ' . selected( $selected, $value, false ) . '>' . esc_attr( $label ) . '</option>' . PHP_EOL;
		}

		return $input . '</select>';
	}

	public function get_textarea_field( $field, $html ) {
		$input = '<textarea ';
		$input .= $this->get_attribute_string( [
			'name' => $field['id'],
			'id' => $field['id'],
		], $field );

		$input .= '>' . esc_textarea( $html ) . '</textarea>';

		return $input;
	}

	public function get_file_field( $field, $saved ) {
		$value = [
			'id' => '',
			'url' => '',
		];

		if ( isset( $saved['id'] ) && isset( $saved['url'] ) ) {
			$value = $saved;
		}

		$html = '<ul></ul>';
		$html .= $this->get_input_field(
			[
				'type' => 'hidden',
				'name' => $field['id'] . '[id]',
				'value' => $value['id'],
			]
		);

		$html .= $this->get_input_field(
			[
				'type' => 'text',
				'name' => $field['id'] . '[url]',
				'value' => $value['url'],
				'placeholder' => $field['description'],
				'class' => 'elementor-field-input',
			]
		);

		$html .= $this->get_input_field(
			[
				'type' => 'button',
				'class' => 'button elementor-button elementor-upload-btn',
				'name' => $field['id'],
				'id' => $field['id'],
				'value' => '',
				'data-preview_anchor' => isset( $field['preview_anchor'] ) ? $field['preview_anchor'] : 'none',
				'data-mime_type' => isset( $field['mine'] ) ? $field['mine'] : '',
				'data-ext' => isset( $field['ext'] ) ? $field['ext'] : '',
				'data-upload_text' => esc_html__( 'Upload', 'elementor-pro' ),
				'data-remove_text' => esc_html__( 'Delete', 'elementor-pro' ),
				'data-box_title' => isset( $field['box_title'] ) ? $field['box_title'] : '',
				'data-box_action' => isset( $field['box_action'] ) ? $field['box_action'] : '',
			]
		);

		return $html;
	}

	public function get_html_field( $field ) {
		return $field['raw_html'];
	}

	public function get_dropzone_field( $field ) {
		ob_start();
		$input_attributes = [
			'type' => 'file',
			'name' => $field['id'],
			'id' => $field['id'],
			'accept' => $field['accept'],
			'class' => 'box__file',
		];
		if ( ! empty( $field['multiple'] ) ) {
			$input_attributes['multiple'] = true;
		}
		$input_html = $this->get_input_field( $input_attributes );
		$field['label'] = '<h4><span class="box__dragndrop">' . esc_html__( 'Drag & Drop to Upload', 'elementor-pro' ) . '</span></h4>';
		if ( ! empty( $field['sub-label'] ) ) {
			$field['label'] .= '<h5>' . $field['sub-label'] . '</h5>';
		}
		?>
		<div class="elementor-dropzone-field">
			<div class="box__input">
				<div class="elementor--dropzone--upload__icon">
					<i class="eicon-library-upload"></i>
				</div>
				<?php echo $input_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				<?php echo $this->get_field_label( $field ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				<div class="elementor-button elementor--dropzone--upload__browse">
					<span><?php esc_html_e( 'Click here to browse', 'elementor-pro' ); ?></span>
				</div>
			</div>
			<div class="box__uploading"><?php esc_html_e( 'Uploading&hellip;', 'elementor-pro' ); ?></div>
			<div class="box__success"><?php esc_html_e( 'Done!', 'elementor-pro' ); ?></div>
			<div class="box__error"><?php esc_html_e( 'Error!', 'elementor-pro' ); ?> <span></span>.</div>
		</div>
		<?php
		return ob_get_clean();
	}

	public function get_repeater_field( $field, $saved ) {
		$id = $field['id'];
		$js_id = 'repeater_' . Utils::generate_random_string();
		$add_label = isset( $field['add_label'] ) ? $field['add_label'] : esc_html__( 'Add item', 'elementor-pro' );
		$row_label = isset( $field['row_label'] ) ? $field['row_label'] : esc_html__( 'Row', 'elementor-pro' );
		$row_label_html_args = [
			'id' => 'row_label_' . $js_id,
			'class' => 'repeater-title hidden',
		];

		if ( is_array( $row_label ) ) {
			$label = $row_label['default'];
			$row_label_html_args['data-default'] = $row_label['default'];
			$row_label_html_args['data-selector'] = $row_label['selector'];
		} else {
			$label = $row_label;
			$row_label_html_args['data-default'] = $row_label;
		}

		$row_label_html = '<span ' . $this->get_attribute_string( $row_label_html_args ) . '>' . $label . '</span>';
		ob_start();
		?>
		<script type="text/template" id="<?php echo esc_attr( $js_id . '_block' ); ?>">
			<div class="repeater-block block-visible">
				<?php
				echo $row_label_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				echo $this->get_repeater_tools( $field ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
				<div class="repeater-content form-table">
					<?php
					foreach ( $field['fields'] as $sub_field ) {
						$sub_field['real_id'] = $id;
						$sub_field['id'] = $id . '[__counter__][' . $sub_field['id'] . ']';
						echo $this->get_metabox_field_html( $sub_field, '' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					}
					?>
				</div>
			</div>
		</script>
		<?php
		$counter = 0;
		$row_label_html_args['class'] = 'repeater-title';

		$row_label_html = '<span ' . $this->get_attribute_string( $row_label_html_args ) . '>' . $label . '</span>';
		if ( is_array( $saved ) && count( $saved ) > 0 ) {
			foreach ( (array) $saved as $key => $item ) {
				echo '<div class="repeater-block">';
				echo $row_label_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				echo $this->get_repeater_tools( $field ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				echo '<div class="repeater-content hidden form-table">';
				foreach ( $field['fields'] as $sub_field ) {
					$default = isset( $sub_field['default'] ) ? $sub_field['default'] : '';
					$item_meta = isset( $item[ $sub_field['id'] ] ) ? $item[ $sub_field['id'] ] : $default;
					$sub_field['real_id'] = $sub_field['id'];
					$sub_field['id'] = $id . '[' . $counter . '][' . $sub_field['id'] . ']';
					echo $this->get_metabox_field_html( $sub_field, $item_meta ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				}
				echo '</div>'; // end table
				echo '</div>';
				$counter++;
			}
		}
		echo '<input type="button" class="button elementor-button add-repeater-row" value="' . esc_attr( $add_label ) . '" data-template-id="' . esc_html( $js_id ) . '_block">';

		return ob_get_clean();
	}

	public function get_checkbox_field( $field, $saved ) {
		Utils::print_unescaped_internal_string( $this->get_field_row( $field, '' ) );

		echo '<div id="' . esc_attr( $field['id'] ) . '" class="elementor-field-checkboxes">';

		foreach ( $field['options'] as $checkbox_key => $label ) {
			$name = $field['id'] . '_' . $checkbox_key;

			$checked = ! empty( $saved ) && in_array( $checkbox_key, $saved, true ) ? 'checked' : '';

			echo '<input name="' . esc_attr( $name ) . '" type="checkbox" ' . esc_attr( $checked ) . '><span class="label">' . esc_html( $label ) . '</span></input>';
		}

		echo '</div>';
	}

	private function get_html_tag( $field ) {
		$tag = isset( $field['tag'] ) ? $field['tag'] : 'div';
		if ( isset( $field['close'] ) && true === $field['close'] ) {
			return '</' . $tag . '>';
		}

		return '<' . $tag . ' ' . $this->get_attribute_string( $field['attributes'] ) . '>';
	}

	private function get_repeater_tools( $field ) {
		$confirm = isset( $field['confirm'] ) ? $field['confirm'] : esc_html__( 'Are you sure?', 'elementor-pro' );
		$remove_title = isset( $field['remove_title'] ) ? $field['remove_title'] : esc_html__( 'Delete', 'elementor-pro' );
		$toggle_title = isset( $field['toggle_title'] ) ? $field['toggle_title'] : esc_html__( 'Edit', 'elementor-pro' );
		$close_title = isset( $field['close_title'] ) ? $field['close_title'] : esc_html__( 'Close', 'elementor-pro' );

		return '<span class="elementor-repeater-tool-btn close-repeater-row" title="' . esc_attr( $close_title ) . '">
                    <i class="eicon-times" aria-hidden="true"></i>' . $close_title . '
                </span>
                <span class="elementor-repeater-tool-btn toggle-repeater-row" title="' . esc_attr( $toggle_title ) . '">
                    <i class="eicon-edit" aria-hidden="true"></i>' . $toggle_title . '
                </span>
                <span class="elementor-repeater-tool-btn remove-repeater-row" data-confirm="' . $confirm . '" title="' . esc_attr( $remove_title ) . '">
                    <i class="eicon-trash" aria-hidden="true"></i>' . $remove_title . '
                </span>';
	}

	public function get_field_row( $field, $field_html ) {
		$description = '';
		$css_id = isset( $field['id'] ) ? ' ' . $field['id'] : '';

		if ( isset( $field['real_id'] ) ) {
			$css_id = ' ' . $field['real_id'];
		}

		$css_id .= ' elementor-field-' . $field['field_type'];

		return '<div class="elementor-field' . $css_id . '">' . $this->get_field_label( $field ) . $field_html . $description . '</div>';
	}

	public function sanitize_text_field_recursive( $data ) {
		if ( is_array( $data ) ) {
			foreach ( $data as $key => $value ) {
				$data[ $key ] = $this->sanitize_text_field_recursive( $value );
			}

			return $data;
		}

		return sanitize_text_field( $data );
	}

	public function __construct() {
		$this->actions();
	}
}
PK!�9g�  ,modules/assets-manager/classes/font-base.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}


class Font_Base extends Assets_Base {

	const FONTS_OPTION_NAME = 'elementor_fonts_manager_fonts';

	protected $font_preview_phrase = '';

	protected function actions() {}

	public function __construct() {
		parent::__construct();

		$this->font_preview_phrase = esc_html__( 'Elementor Is Making the Web Beautiful!!!', 'elementor-pro' );
	}

	public function get_name() {
		return '';
	}

	public function get_type() {
		return '';
	}

	public function handle_panel_request( array $data ) {
		return [];
	}

	public function get_fonts( $force = false ) {}

	public function enqueue_font( $font_family, $font_data, $post_css ) {}

	public function get_font_family_type( $post_id, $post_title ) {}

	public function get_font_data( $post_id, $post_title ) {}

	public function render_preview_column( $post_id ) {}

	public function get_font_variations_count( $post_id ) {}

	public function save_meta( $post_id, $data ) {}
}
PK!M4�a��!modules/assets-manager/module.phpnu�[���<?php
namespace ElementorPro\Modules\AssetsManager;

use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\AssetsManager\AssetTypes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	private $asset_managers = [];

	public function get_name() {
		return 'assets-manager';
	}

	public function add_asset_manager( $name, $instance ) {
		$this->asset_managers[ $name ] = $instance;
	}

	public function get_assets_manager( $id = null ) {
		if ( $id ) {
			if ( ! isset( $this->asset_managers[ $id ] ) ) {
				return null;
			}

			return $this->asset_managers[ $id ];
		}

		return $this->asset_managers;
	}

	// Add translation string for the modal that appears when a user tries
	// to publish a new font "post" without uploading/choosing one
	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'fontsUploadEmptyNotice' => esc_html__( 'Choose a font to publish.', 'elementor-pro' ),
				'iconsUploadEmptyNotice' => esc_html__( 'Upload an icon set to publish.', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public function __construct() {
		parent::__construct();

		add_filter( 'elementor_pro/admin/localize_settings', [ $this, 'localize_settings' ] );
		$this->add_asset_manager( 'font', new AssetTypes\Fonts_Manager() );
		$this->add_asset_manager( 'icon', new AssetTypes\Icons_Manager() );
	}
}
PK!�B�)<<$modules/custom-attributes/module.phpnu�[���<?php
namespace ElementorPro\Modules\CustomAttributes;

use Elementor\Controls_Stack;
use Elementor\Controls_Manager;
use Elementor\Element_Base;
use Elementor\Utils;
use ElementorPro\Base\Module_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}

	public function get_name() {
		return 'custom-attributes';
	}

	private function get_black_list_attributes() {
		static $black_list = null;

		if ( null === $black_list ) {
			$black_list = [ 'id', 'class', 'data-id', 'data-settings', 'data-element_type', 'data-widget_type', 'data-model-cid' ];

			/**
			 * Elementor attributes black list.
			 *
			 * Filters the attributes that won't be rendered in the wrapper element.
			 *
			 * By default Elementor doesn't render some attributes to prevent things
			 * from breaking down. But this list of attributes can be changed.
			 *
			 * @since 2.2.0
			 *
			 * @param array $black_list A black list of attributes.
			 */
			$black_list = apply_filters( 'elementor_pro/element/attributes/black_list', $black_list );
		}

		return $black_list;
	}

	/**
	 * @param Element_Base $element
	 */
	public function replace_go_pro_custom_attributes_controls( Element_Base $element ) {
		Plugin::elementor()->controls_manager->remove_control_from_stack( $element->get_unique_name(), [ 'section_custom_attributes_pro', 'custom_attributes_pro' ] );

		$this->register_custom_attributes_controls( $element );
	}

	public function register_custom_attributes_controls( Element_Base $element ) {
		$element_name = $element->get_name();

		$element->start_controls_section(
			'_section_attributes',
			[
				'label' => esc_html__( 'Attributes', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_ADVANCED,
			]
		);

		$element->add_control(
			'_attributes',
			[
				'label' => esc_html__( 'Custom Attributes', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'key|value', 'elementor-pro' ),
				'description' => sprintf( esc_html__( 'Set custom attributes for the wrapper element. Each attribute in a separate line. Separate attribute key from the value using %s character.', 'elementor-pro' ), '<code>|</code>' ),
				'classes' => 'elementor-control-direction-ltr',
			]
		);

		$element->end_controls_section();
	}

	/**
	 * @param $element    Controls_Stack
	 * @param $section_id string
	 */
	public function register_controls( Controls_Stack $element, $section_id ) {
		if ( ! $element instanceof Element_Base ) {
			return;
		}

		// Remove Custom CSS Banner (From free version)
		if ( 'section_custom_attributes_pro' === $section_id ) {
			$this->replace_go_pro_custom_attributes_controls( $element );
		}
	}

	/**
	 * @param $element Element_Base
	 */
	public function render_attributes( Element_Base $element ) {
		$settings = $element->get_settings_for_display();

		if ( ! empty( $settings['_attributes'] ) ) {
			$attributes = Utils::parse_custom_attributes( $settings['_attributes'], "\n" );

			$black_list = $this->get_black_list_attributes();

			foreach ( $attributes as $attribute => $value ) {
				if ( ! in_array( $attribute, $black_list, true ) ) {
					$element->add_render_attribute( '_wrapper', $attribute, $value );
				}
			}
		}
	}

	protected function add_actions() {
		add_action( 'elementor/element/after_section_end', [ $this, 'register_controls' ], 10, 2 );
		add_action( 'elementor/element/after_add_attributes', [ $this, 'render_attributes' ] );
	}
}
PK!��� ��modules/usage/module.phpnu�[���<?php
namespace ElementorPro\Modules\Usage;

use Elementor\Core\Base\Module as BaseModule;
use ElementorPro\Modules\AssetsManager\AssetTypes\Fonts\Custom_Fonts;
use ElementorPro\Modules\AssetsManager\AssetTypes\Icons\Custom_Icons;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Elementor usage module.
 * @method static Module instance()
 */
class Module extends BaseModule {
	/**
	 * Get module name.
	 *
	 * Retrieve the usage module name.
	 *
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'usage';
	}

	/**
	 * Get integrations usage.
	 *
	 * Check all integrations in settings tab, find out who are in use.
	 *
	 * @return array
	 */
	public function get_integrations_usage() {
		$usage = [];

		$settings_tab = Plugin::elementor()->settings->get_tabs();
		$integrations = $settings_tab['integrations']['sections'];

		foreach ( $integrations as $integration_name => $integration_data ) {
			$integration_options = [];
			$integration_fields_count = count( $integration_data['fields'] );

			foreach ( $integration_data['fields'] as $field_name => $field_data ) {
				$integration_options [] = get_option( 'elementor_' . $field_name );
			}
			/**
			 * array_filter will clear all empty array values.
			 * if all the values filled then the count should be the same.
			 */
			if ( count( array_filter( $integration_options ) ) === $integration_fields_count ) {
				$usage[ $integration_name ] = true;
			}
		}

		return $usage;
	}

	/**
	 * Get fonts usage.
	 *
	 * Retrieve the number of Elementor fonts variants saved.
	 *
	 * @access public
	 * @static
	 *
	 * @return array The number of Elementor fonts variants.
	 */
	public static function get_fonts_usage() {
		$usage = [];
		$query = new \WP_Query( [
			'posts_per_page' => -1,
			'post_type' => 'elementor_font',
		] );

		$post_index = 0;
		foreach ( $query->get_posts() as $post ) {
			$elementor_font_files = get_post_meta( $post->ID, Custom_Fonts::FONT_META_KEY );

			if ( ! empty( $elementor_font_files ) ) {
				foreach ( $elementor_font_files as $elementor_font_index => $elementor_font_file ) {
					$current = & $usage[ $post_index ];

					foreach ( $elementor_font_file as $elementor_font_variant_index => $elementor_font_variant ) {
						$current_variant = & $current[ 'variant_' . $elementor_font_variant_index ];

						foreach ( [ 'weight', 'style' ] as $font_prop ) {
							$current_variant[ $font_prop ] = $elementor_font_variant[ 'font_' . $font_prop ];
						}

						$current_variant['types'] = [];
						foreach ( [ 'woff', 'woff2', 'ttf', 'svg', 'eot' ] as $font_ext ) {
							if ( isset( $elementor_font_variant[ $font_ext ] ) && strlen( $elementor_font_variant[ $font_ext ]['url'] ) ) {
								$current_variant['types'][] = $font_ext;
							}
						}
					}
				}

				$post_index++;
			}
		}

		return $usage;
	}

	/**
	 * Get icons usage.
	 *
	 * Retrieve the number of Elementor icons saved.
	 *
	 * @access public
	 * @static
	 *
	 * @return array The number of Elementor icons.
	 */
	public static function get_icons_usage() {
		$usage = [];
		$query = new \WP_Query( [
			'posts_per_page' => -1,
			'post_type' => 'elementor_icons',
		] );

		$index = 0;
		foreach ( $query->get_posts() as $post ) {
			$elementor_custom_icon_set_config = get_post_meta( $post->ID, Custom_Icons::META_KEY );

			if ( isset( $elementor_custom_icon_set_config[0] ) ) {
				$elementor_custom_icon_set_config = json_decode( $elementor_custom_icon_set_config[0] );

				$usage[ $index ] = (int) $elementor_custom_icon_set_config->count;

				$index++;
			}
		}

		return $usage;
	}

	/**
	 * Add's tracking data.
	 *
	 * Called on elementor/tracker/send_tracking_data_params.
	 *
	 * @param array $params
	 *
	 * @return array
	 */
	public function add_tracking_data( $params ) {
		$params['usages']['integrations'] = $this->get_integrations_usage();
		$params['usages']['icons'] = $this->get_icons_usage();
		$params['usages']['fonts'] = $this->get_fonts_usage();

		return $params;
	}

	/**
	 * Usage module constructor.
	 *
	 * Initializing Elementor usage module.
	 *
	 * @access public
	 */
	public function __construct() {
		add_filter( 'elementor/tracker/send_tracking_data_params', [ $this, 'add_tracking_data' ] );
	}
}
PK!(�E�QQ#modules/progress-tracker/module.phpnu�[���<?php
namespace ElementorPro\Modules\ProgressTracker;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'ProgressTracker',
		];
	}

	public function get_name() {
		return 'progress-tracker';
	}
}
PK!�G���@�@5modules/progress-tracker/widgets/progress-tracker.phpnu�[���<?php

namespace ElementorPro\Modules\ProgressTracker\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Modules\PageTemplates\Module as PageTemplatesModule;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class ProgressTracker extends Base_Widget {

	public function get_name() {
		return 'progress-tracker';
	}

	public function get_title() {
		return esc_html__( 'Progress Tracker', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-progress-tracker';
	}

	public function get_categories() {
		return [ 'pro-elements', 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'progress', 'tracker', 'read', 'scroll' ];
	}

	private function register_content_controls() {
		$this->start_controls_section(
			'section_content_scrolling_tracker',
			[
				'label' => esc_html__( 'Progress Tracker', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'type',
			[
				'label' => esc_html__( 'Tracker Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'frontend_available' => true,
				'options' => [
					'horizontal' => esc_html__( 'Horizontal', 'elementor-pro' ),
					'circular' => esc_html__( 'Circular', 'elementor-pro' ),
				],
				'default' => 'horizontal',
			]
		);

		$this->add_control(
			'relative_to',
			[
				'label' => esc_html__( 'Progress relative to', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'frontend_available' => true,
				'options' => [
					'entire_page' => esc_html__( 'Entire Page', 'elementor-pro' ),
					'post_content' => esc_html__( 'Post Content', 'elementor-pro' ),
					'selector' => esc_html__( 'Selector', 'elementor-pro' ),
				],
				'default' => 'entire_page',
			]
		);

		$this->add_control(
			'selector',
			[
				'label' => esc_html__( 'Selector', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Add the CSS ID or Class of a specific element on this page to track its progress separately', 'elementor-pro' ),
				'frontend_available' => true,
				'condition' => [
					'relative_to' => 'selector',
				],
				'placeholder' => '#id, .class',
			]
		);

		$this->add_control(
			'relative_to_description',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => esc_html__( 'Note: You can only track progress relative to Post Content on a single post template.', 'elementor-pro' ),
				'separator' => 'none',
				'content_classes' => 'elementor-descriptor',
				'condition' => [
					'relative_to' => 'post_content',
				],
			]
		);

		$this->add_control(
			'direction',
			[
				'label' => esc_html__( 'Direction', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'ltr' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'rtl' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'render_type' => 'template',
				'frontend_available' => true,
				'selectors' => [
					'{{WRAPPER}}' => '--direction: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'percentage',
			[
				'label' => esc_html__( 'Percentage', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'no',
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'percentage_position',
			[
				'label' => esc_html__( 'Percentage Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'rtl' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'ltr' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'type' => 'horizontal',
					'percentage' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--text-direction: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function register_tracker_style_controls() {
		$this->start_controls_section(
			'section_style_scrolling_tracker',
			[
				'label' => esc_html__( 'Tracker', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'circular_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--circular-width: {{SIZE}}{{UNIT}}; --circular-height: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_control(
			'heading_progress_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Progress Indicator', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'circular_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--circular-color: {{VALUE}}',
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_responsive_control(
			'circular_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 400,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--circular-progress-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'horizontal_color',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .current-progress',
				'condition' => [
					'type' => 'horizontal',
				],
				'fields_options' => [
					'background' => [
						'label' => esc_html__( 'Progress Color', 'elementor-pro' ),
					],
				],
			]
		);

		$this->add_control(
			'horizontal_border_style',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'none',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => _x( 'Solid', 'Border Control', 'elementor-pro' ),
					'double' => _x( 'Double', 'Border Control', 'elementor-pro' ),
					'dotted' => _x( 'Dotted', 'Border Control', 'elementor-pro' ),
					'dashed' => _x( 'Dashed', 'Border Control', 'elementor-pro' ),
					'groove' => _x( 'Groove', 'Border Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-progress-border: {{VALUE}};',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-progress-border-top-width: {{TOP}}{{UNIT}}; --horizontal-progress-border-right-width: {{RIGHT}}{{UNIT}}; --horizontal-progress-border-bottom-width: {{BOTTOM}}{{UNIT}}; --horizontal-progress-border-left-width: {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'horizontal_border_style!' => 'none',
					'type' => 'horizontal',
				],
			]
		);

		$this->add_control(
			'horizontal_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-progress-border-color: {{VALUE}}',
				],
				'condition' => [
					'horizontal_border_style!' => 'none',
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--progress-border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_control(
			'heading_tracker_background_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Tracker Background', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'circular_background_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--circular-background-color: {{VALUE}}',
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_responsive_control(
			'circular_background_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 400,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--circular-background-width: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'circular',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'horizontal_background_color',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-scrolling-tracker-horizontal',
				'fields_options' => [
					'background' => [
						'label' => esc_html__( 'Background Color', 'elementor-pro' ),
					],
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
					'vh' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', 'vh' ],
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-height: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_control(
			'horizontal_tracker_border_style',
			[
				'label' => esc_html__( 'Border Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'none',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'solid' => _x( 'Solid', 'Border Control', 'elementor-pro' ),
					'double' => _x( 'Double', 'Border Control', 'elementor-pro' ),
					'dotted' => _x( 'Dotted', 'Border Control', 'elementor-pro' ),
					'dashed' => _x( 'Dashed', 'Border Control', 'elementor-pro' ),
					'groove' => _x( 'Groove', 'Border Control', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-border-style: {{VALUE}};',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_tracker_border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-border-top-width: {{TOP}}{{UNIT}}; --horizontal-border-right-width: {{RIGHT}}{{UNIT}}; --horizontal-border-bottom-width: {{BOTTOM}}{{UNIT}}; --horizontal-border-left-width: {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'horizontal_tracker_border_style!' => 'none',
					'type' => 'horizontal',
				],
			]
		);

		$this->add_control(
			'horizontal_tracker_border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--horizontal-border-color: {{VALUE}}',
				],
				'condition' => [
					'horizontal_tracker_border_style!' => 'none',
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_tracker_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}} .elementor-scrolling-tracker',
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->add_responsive_control(
			'horizontal_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--tracker-padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'condition' => [
					'type' => 'horizontal',
				],
			]
		);

		$this->end_controls_section();
	}

	private function register_content_style_controls() {
		$this->start_controls_section(
			'section__content_style_scrolling_tracker',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'percentage' => 'yes',
				],
			]
		);

		$this->add_control(
			'heading_percentage_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Percentage', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'percentage_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--percentage-color: {{VALUE}}',
				],
				'frontend_available' => true,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'percentage_typography',
				'selector' => '{{WRAPPER}} .current-progress-percentage',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'percentage_text_shadow',
				'selector' => '{{WRAPPER}} .current-progress-percentage',
				'fields_options' => [
					'text_shadow_type' => [
						'label' => esc_html__( 'Text Shadow', 'elementor-pro' ),
					],
				],
			]
		);
	}

	protected function register_controls() {
		$this->register_content_controls();
		$this->register_tracker_style_controls();
		$this->register_content_style_controls();
	}

	public function render_plain_content() {}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$horizontal = 'horizontal' === $settings['type'];
		$this->add_render_attribute( 'scrolling-percentage', 'class', 'current-progress-percentage' );
		$this->add_render_attribute( 'scrolling-tracker', 'class', [
			'elementor-scrolling-tracker',
			'elementor-scrolling-tracker-' . $settings['type'],
			'elementor-scrolling-tracker-alignment-' . $settings['align'],
		] ); ?>

		<div <?php $this->print_render_attribute_string( 'scrolling-tracker' ); ?>>
		<?php if ( $horizontal ) : ?>
				<div class="current-progress">
					<div <?php $this->print_render_attribute_string( 'scrolling-percentage' ); ?>></div>
				</div>
		<?php else : ?>
				<svg
						width="100%"
						height="100%">
					<circle class="circle"
							r="40%"
							cx="50%"
							cy="50%"/>

					<circle class="current-progress"
							r="40%"
							cx="50%"
							cy="50%"/>
				</svg>
				<div <?php $this->print_render_attribute_string( 'scrolling-percentage' ); ?>></div>
		<?php endif; ?>
		</div>
		<?php
	}
}
PK!��S����-modules/lottie/assets/animations/default.jsonnu�[���{"v":"5.5.7","meta":{"g":"LottieFiles AE ","a":"","k":"","d":"","tc":""},"fr":25,"ip":0,"op":125,"w":1920,"h":1080,"nm":"InLogo 3","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[862,408,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[28.7,53,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":33,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":90,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":0,"k":[960,540],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":66.833,"s":[{"i":[[4.75,0.75],[1,-1.25],[-8,-0.25]],"o":[[-4.75,-0.75],[-1,1.25],[8,0.25]],"v":[[346.5,-0.25],[334.25,0.5],[341.75,4.25]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[1.286,0.48],[0.271,-0.799],[-2.167,-0.16]],"o":[[-1.286,-0.48],[-0.271,0.799],[2.167,0.16]],"v":[[352.589,0.471],[349.271,0.951],[351.302,3.348]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 13","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[4.18,-0.372],[0.022,-1.823],[-6.574,0.303],[0.536,2.784]],"o":[[-4.18,0.372],[-0.03,2.442],[6.574,-0.303],[-0.604,-3.14]],"v":[[-510.668,-7.313],[-517.525,-0.891],[-508.861,4.275],[-501.457,-3.208]],"c":true}],"h":1},{"t":71.833,"s":[{"i":[[1.998,-0.14],[-0.044,-1.297],[-3.151,0.02],[0.341,1.997]],"o":[[-1.998,0.14],[0.058,1.737],[3.151,-0.02],[-0.384,-2.252]],"v":[[-518.552,-4.632],[-521.656,-0.268],[-517.355,3.533],[-511.502,-1.693]],"c":true}],"h":1},{"t":73.5003255208333,"s":[{"i":[[1.184,-0.136],[-0.026,-0.772],[-2.27,0.176],[0.203,1.189]],"o":[[-2.219,0.255],[0.035,1.034],[1.87,-0.145],[-0.229,-1.341]],"v":[[-521.063,-2.58],[-523.443,0.073],[-520.398,2.327],[-517.399,-0.776]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[830.5,-2.125],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":74.333,"s":[100]},{"t":75.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 12","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":68.5,"s":[{"i":[[8.475,-4.457],[-1.556,-3.859],[-13.577,6.419],[3.576,5.392]],"o":[[-8.475,4.457],[2.084,5.169],[13.577,-6.419],[-4.034,-6.081]],"v":[[-523.509,-12.882],[-532.302,6.668],[-509.517,9.93],[-500.504,-12.337]],"c":true}],"h":1},{"t":70.166,"s":[{"i":[[2.779,-0.194],[-0.061,-1.804],[-4.383,0.027],[0.474,2.778]],"o":[[-2.779,0.194],[0.081,2.416],[4.383,-0.027],[-0.535,-3.133]],"v":[[-531.232,-4.697],[-535.55,1.374],[-529.567,6.662],[-521.425,-0.608]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.516,-0.174],[-0.033,-0.988],[-2.905,0.226],[0.26,1.521]],"o":[[-2.841,0.327],[0.044,1.323],[2.393,-0.186],[-0.293,-1.716]],"v":[[-538.976,-1.008],[-542.022,2.387],[-538.125,5.273],[-534.286,1.301]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[758.5,-2.125],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67.666,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":68.5,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 11","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":66.833,"s":[{"i":[[5.552,-0.494],[0.03,-2.422],[-8.733,0.403],[0.712,3.698]],"o":[[-5.552,0.494],[-0.04,3.244],[8.733,-0.403],[-0.803,-4.171]],"v":[[-518.497,-8.318],[-527.605,0.213],[-516.128,6.827],[-499.303,-3.636]],"c":true}],"h":1},{"t":68.5,"s":[{"i":[[2.779,-0.194],[-0.061,-1.804],[-4.383,0.027],[0.474,2.778]],"o":[[-2.779,0.194],[0.081,2.416],[4.383,-0.027],[-0.535,-3.133]],"v":[[-531.232,-4.697],[-535.55,1.374],[-529.567,6.662],[-521.425,-0.608]],"c":true}],"h":1},{"t":70.1663411458333,"s":[{"i":[[1.516,-0.174],[-0.033,-0.988],[-2.905,0.226],[0.26,1.521]],"o":[[-2.841,0.327],[0.044,1.323],[2.393,-0.186],[-0.293,-1.716]],"v":[[-538.976,-1.008],[-542.022,2.387],[-538.125,5.273],[-534.286,1.301]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[638,-2],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[100]},{"t":71.8333333333333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 10","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":66.833,"s":[{"i":[[5.552,-0.494],[0.03,-2.422],[-8.733,0.403],[0.712,3.698]],"o":[[-5.552,0.494],[-0.04,3.244],[8.733,-0.403],[-0.803,-4.171]],"v":[[-517.685,-5.901],[-527.515,-1.059],[-517.499,3.978],[-494.807,-3.956]],"c":true}],"h":1},{"t":68.5,"s":[{"i":[[2.327,-0.154],[-0.063,-1.604],[-3.672,-0.005],[0.416,2.473]],"o":[[-2.327,0.154],[0.084,2.149],[3.672,0.005],[-0.469,-2.789]],"v":[[-526.191,-3.085],[-530.187,-0.183],[-525.805,3.467],[-516.479,-1.084]],"c":true}],"h":1},{"t":70.1663411458333,"s":[{"i":[[0.793,-0.028],[-0.057,-0.821],[-1.256,-0.083],[0.196,1.272]],"o":[[-0.793,0.028],[0.076,1.099],[1.256,0.083],[-0.221,-1.435]],"v":[[-530.305,-0.876],[-531.609,0.52],[-530.03,2.479],[-526.94,0.358]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[542,-2],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[100]},{"t":71.8333333333333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 9","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":71.833,"s":[{"i":[[3.776,0.019],[-1.805,-0.357],[0.815,1.363]],"o":[[-1.825,-0.009],[1.641,0.325],[0.065,-0.538]],"v":[[-461.744,-1.505],[-461.964,0.088],[-452.414,-0.453]],"c":true}],"h":1},{"t":73.5003255208333,"s":[{"i":[[1.518,-0.096],[-0.453,-0.638],[-0.713,0.267]],"o":[[-0.734,0.046],[0.453,0.638],[0.713,-0.267]],"v":[[-465.108,-1.338],[-467.09,-0.546],[-461.402,-0.46]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-341.688,1.75],"ix":2},"a":{"a":0,"k":[-455.313,-0.938],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":178.598,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":74.333,"s":[100]},{"t":75.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[3.776,0.019],[-1.031,-1.318],[0.815,1.363]],"o":[[-1.825,-0.009],[1.031,1.318],[0.065,-0.538]],"v":[[-461.237,-1.805],[-466.254,-0.892],[-449.162,-0.498]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-465.182,-1.777],[-467.21,-1.112],[-461.538,-0.668]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-382.875,1.25],"ix":2},"a":{"a":0,"k":[-455.313,-0.938],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":178.598,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":68.5,"s":[{"i":[[3,0],[-0.813,-1.313],[-1.438,0.438]],"o":[[-1.45,0],[0.813,1.313],[1.438,-0.438]],"v":[[-456.438,-2.188],[-460.438,-0.875],[-449.25,0]],"c":true}],"h":1},{"t":70.1663411458333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-455.498,-1.54],[-457.526,-0.875],[-451.854,-0.431]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-421.625,1.125],"ix":2},"a":{"a":0,"k":[-455.375,-1.063],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-183.942,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67.666,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":68.5,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":71,"s":[100]},{"t":71.8333333333333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":66.833,"s":[{"i":[[4.25,-0.125],[0.477,-1.343],[-17.974,-0.972],[-17.25,-1.25],[-0.226,6.325],[9.25,-0.75]],"o":[[-4.25,0.125],[-1.375,3.875],[18.5,1],[12.53,0.908],[0.25,-7],[-9.25,0.75]],"v":[[-455.25,-3.125],[-490.125,-1.625],[-454,3.75],[-411.25,5.25],[-374.25,0.75],[-414.75,-5.25]],"c":true}],"h":1},{"t":68.5,"s":[{"i":[[4.086,-0.081],[0.458,-0.874],[-5.769,-0.163],[-16.585,-0.814],[-0.217,4.118],[8.893,-0.488]],"o":[[-4.086,0.081],[-1.322,2.523],[17.797,0.502],[12.046,0.591],[0.24,-4.557],[-8.893,0.488]],"v":[[-435.501,-2.216],[-446.678,-0.832],[-437.905,2.748],[-397.063,4.062],[-367.24,0.632],[-399.178,-3.774]],"c":true}],"h":1},{"t":70.166,"s":[{"i":[[2.531,-0.05],[0.284,-0.542],[-3.573,-0.101],[-3.522,-0.193],[-0.135,2.55],[5.508,-0.302]],"o":[[-2.531,0.05],[-0.819,1.562],[11.022,0.311],[7.458,0.409],[0.149,-2.822],[-5.508,0.302]],"v":[[-392.395,-1.267],[-399.317,-0.41],[-393.884,1.807],[-378.731,2.904],[-365.138,0.47],[-379.886,-2.8]],"c":true}],"h":1},{"t":71.833,"s":[{"i":[[1.313,-0.257],[-0.001,-0.413],[-1.873,-0.146],[-1.851,0.065],[0.075,1.157],[2.532,0.118]],"o":[[-1.138,0.223],[-0.031,0.658],[2.76,0.215],[1.761,-0.062],[-0.059,-0.909],[-2.16,-0.101]],"v":[[-371.104,-1.254],[-374.278,0.212],[-371.197,1.838],[-365.507,2.199],[-362.637,0.385],[-365.818,-1.488]],"c":true}],"h":1},{"t":73.5003255208333,"s":[{"i":[[0.895,-0.155],[-0.001,-0.249],[-1.275,-0.088],[-1.26,0.039],[0.051,0.698],[1.724,0.072]],"o":[[-0.775,0.135],[-0.021,0.397],[1.88,0.13],[1.2,-0.037],[-0.04,-0.549],[-1.471,-0.061]],"v":[[-363.818,-0.623],[-365.979,0.262],[-363.88,1.243],[-360.005,1.461],[-358.051,0.366],[-360.217,-0.764]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-384.5,2],"ix":2},"a":{"a":0,"k":[-433,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":66.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":74.333,"s":[100]},{"t":75.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[430.984,2.882],"ix":2},"a":{"a":0,"k":[-383.766,1.382],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[5.552,-0.494],[0.03,-2.422],[-8.733,0.403],[1.951,2.164]],"o":[[-5.552,0.494],[-0.04,3.244],[8.733,-0.403],[-1.951,-2.164]],"v":[[-513.027,-2.965],[-524.904,1.633],[-513.464,5.984],[-492.197,-1.265]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[1.933,-0.356],[-0.386,-1.859],[-3.102,0.273],[1.062,1.668]],"o":[[-1.933,0.356],[0.517,2.489],[3.102,-0.273],[-1.062,-1.668]],"v":[[-522.22,-1.02],[-527.341,3.093],[-521.05,6.088],[-515.846,1.385]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[0.928,-0.039],[-0.058,-0.895],[-1.47,-0.077],[0.387,0.851]],"o":[[-0.928,0.039],[0.077,1.199],[1.47,0.077],[-0.387,-0.851]],"v":[[-526.389,1.435],[-529.058,3.02],[-526.312,4.838],[-523.566,2.982]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221,-2],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[2.487,-0.104],[-0.155,-2.399],[-3.938,-0.207],[1.036,2.28]],"o":[[-2.487,0.104],[0.207,3.213],[3.938,0.207],[-1.036,-2.28]],"v":[[-504.58,-4.041],[-509.655,-0.308],[-504.157,4.8],[-495.002,-0.908]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[1.933,-0.356],[-0.386,-1.859],[-3.102,0.273],[1.062,1.668]],"o":[[-1.933,0.356],[0.517,2.489],[3.102,-0.273],[-1.062,-1.668]],"v":[[-502.876,-3.482],[-507.998,0.631],[-501.706,3.626],[-496.502,-1.077]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[0.928,-0.039],[-0.058,-0.895],[-1.47,-0.077],[0.387,0.851]],"o":[[-0.928,0.039],[0.077,1.199],[1.47,0.077],[-0.387,-0.851]],"v":[[-502.085,-1.659],[-504.754,-0.073],[-502.008,1.745],[-499.262,-0.112]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23,0],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":187.253,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[3,-0.125],[-0.187,-2.893],[-4.75,-0.25],[1.25,2.75]],"o":[[-3,0.125],[0.25,3.875],[4.75,0.25],[-1.25,-2.75]],"v":[[-502.625,-5.5],[-511.25,-0.375],[-502.375,5.5],[-493.5,-0.5]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[1.964,-0.082],[-0.122,-1.894],[-3.11,-0.164],[0.818,1.8]],"o":[[-1.964,0.082],[0.164,2.537],[3.11,0.164],[-0.818,-1.8]],"v":[[-502.355,-3.579],[-508.002,-0.224],[-502.191,3.622],[-496.381,-0.306]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[0.928,-0.039],[-0.058,-0.895],[-1.47,-0.077],[0.387,0.851]],"o":[[-0.928,0.039],[0.077,1.199],[1.47,0.077],[-0.387,-0.851]],"v":[[-502.085,-1.659],[-504.754,-0.073],[-502.008,1.745],[-499.262,-0.112]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-296,0],"ix":2},"a":{"a":0,"k":[-502,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":171.987,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[4.875,1.125],[1,-4],[-3,1.125]],"o":[[-4.7,-1.085],[-1,4],[9.843,-3.691]],"v":[[-238.125,-1.125],[-265.5,3.125],[-229.125,6.375]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[3.438,0.793],[0.705,-2.821],[-2.116,0.793]],"o":[[-3.314,-0.765],[-0.705,2.821],[6.941,-2.603]],"v":[[-232.569,0.075],[-247.202,2.984],[-228.691,5.187]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[1.056,0.411],[0.217,-1.463],[-0.65,0.411]],"o":[[-1.019,-0.397],[-0.217,1.463],[2.133,-1.35]],"v":[[-227.556,1.312],[-232.053,2.821],[-226.364,3.964]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[88,-3],"ix":2},"a":{"a":0,"k":[-241,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[3.375,3.25],[1,-4],[-10.5,-0.5]],"o":[[-6.918,-6.662],[-1,4],[10.5,0.5]],"v":[[-220.5,1],[-264.5,2],[-230,6]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[1.463,1.5],[0.55,-2.933],[-5.754,0.611]],"o":[[-4.478,-4.592],[-0.55,2.933],[5.688,-0.604]],"v":[[-219.4,1],[-243.6,1.733],[-224.625,4.667]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[0.571,0.861],[0.186,-1.867],[-1.309,0.229]],"o":[[-1.7,-2.563],[-0.186,1.867],[1.937,-0.339]],"v":[[-218.987,0.375],[-226.98,1.467],[-220.566,3.333]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[3,0],[-0.813,-1.313],[-1.438,0.438]],"o":[[-1.45,0],[0.813,1.313],[1.438,-0.438]],"v":[[-456.438,-2.188],[-460.438,-0.875],[-449.25,0]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-455.498,-1.54],[-457.526,-0.875],[-451.854,-0.431]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-350.375,1],"ix":2},"a":{"a":0,"k":[-455.313,-0.938],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":178.598,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[3,0],[-0.813,-1.313],[-1.438,0.438]],"o":[[-1.45,0],[0.813,1.313],[1.438,-0.438]],"v":[[-456.438,-2.188],[-460.438,-0.875],[-449.25,0]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-455.498,-1.54],[-457.526,-0.875],[-451.854,-0.431]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-394.5,-0.25],"ix":2},"a":{"a":0,"k":[-455.375,-1.063],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 5","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[4.25,-0.125],[4.002,-4.002],[-17.974,-0.972],[-17.25,-1.25],[1,6.25],[9.25,-0.75]],"o":[[-4.25,0.125],[-5.375,5.375],[18.5,1],[12.53,0.908],[-1.644,-10.274],[-9.25,0.75]],"v":[[-453.25,-2.625],[-490.125,-2.375],[-454,3.75],[-409,5.75],[-386.75,-0.75],[-420.5,-5.25]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[3.669,-0.106],[3.455,-3.4],[-15.518,-0.826],[-11.428,-1.229],[0.458,5.361],[7.986,-0.637]],"o":[[-3.669,0.106],[-4.64,4.567],[15.972,0.85],[10.782,1.159],[-0.637,-7.456],[-7.986,0.637]],"v":[[-440.274,-3.388],[-475.86,-2.425],[-441.922,2.029],[-406.322,3.979],[-386.613,-1.044],[-414.751,-4.618]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[2.858,-0.084],[2.774,-2.606],[-7.473,0.19],[-12.303,-2.034],[3.317,2.746],[6.221,-0.504]],"o":[[-2.858,0.084],[-4.23,3.973],[10.762,-0.273],[8.336,1.378],[-3.744,-3.1],[-6.221,0.504]],"v":[[-429.443,-1.916],[-451.964,-2.289],[-431.274,1.139],[-399.548,3.122],[-390.339,-1.364],[-414.612,-1.376]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-384.5,2],"ix":2},"a":{"a":0,"k":[-433,1],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-121.266,2.382],"ix":2},"a":{"a":0,"k":[-383.766,1.382],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.726,-0.489],[0.33,0.9],[1.837,-0.574]],"o":[[1.667,0.219],[-0.408,-1.112],[-4.387,1.372]],"v":[[-416.513,1.844],[-414.744,0.325],[-418.558,-1.419]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67.666,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":68.5,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 10","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[3,0],[-0.813,-1.313],[-1.438,0.438]],"o":[[-1.45,0],[0.813,1.313],[1.438,-0.438]],"v":[[-456.438,-2.188],[-460.438,-0.875],[-449.25,0]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-455.498,-1.54],[-457.526,-0.875],[-451.854,-0.431]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-350.375,1],"ix":2},"a":{"a":0,"k":[-455.313,-0.938],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":178.598,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 9","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":70.166,"s":[{"i":[[3,0],[-0.813,-1.313],[-1.438,0.438]],"o":[[-1.45,0],[0.813,1.313],[1.438,-0.438]],"v":[[-456.438,-2.188],[-460.438,-0.875],[-449.25,0]],"c":true}],"h":1},{"t":71.8333333333333,"s":[{"i":[[1.521,0],[-0.412,-0.665],[-0.729,0.222]],"o":[[-0.735,0],[0.412,0.665],[0.729,-0.222]],"v":[[-455.498,-1.54],[-457.526,-0.875],[-451.854,-0.431]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-394.5,-0.25],"ix":2},"a":{"a":0,"k":[-455.375,-1.063],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":72.666,"s":[100]},{"t":73.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[4.25,-0.125],[3.792,-4.202],[-17.974,-0.972],[-17.25,-1.25],[8.5,6],[9.25,-0.75]],"o":[[-4.25,0.125],[-4.625,5.125],[18.5,1],[12.53,0.908],[-8.5,-6],[-9.25,0.75]],"v":[[-446.75,-3.875],[-485,-1.25],[-449,6.75],[-397.75,7],[-388.25,-3],[-424,-4.5]],"c":true}],"h":1},{"t":66,"s":[{"i":[[4.25,-0.125],[3.792,-4.202],[-17.974,-0.972],[-17.25,-1.25],[8.5,6],[9.25,-0.75]],"o":[[-4.25,0.125],[-4.625,5.125],[18.5,1],[12.53,0.908],[-8.5,-6],[-9.25,0.75]],"v":[[-446.75,-3.875],[-487.5,-1],[-449,6.75],[-397.75,7],[-388.25,-3],[-424,-4.5]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[3.672,-0.108],[3.564,-3.348],[-15.551,0.11],[-15.606,-1.602],[4.32,3.456],[7.992,-0.648]],"o":[[-3.672,0.108],[-5.433,5.104],[14.923,-0.106],[10.797,1.108],[-7.019,-5.615],[-7.992,0.648]],"v":[[-437.551,-2.315],[-474.355,-2.294],[-438.896,3.136],[-399.435,4.442],[-387.32,-1.606],[-419.071,-3.334]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[2.858,-0.084],[0.597,-3.759],[-7.473,0.19],[-12.303,-2.034],[3.317,2.746],[6.221,-0.504]],"o":[[-2.858,0.084],[-0.661,4.164],[10.762,-0.273],[8.336,1.378],[-3.744,-3.1],[-6.221,0.504]],"v":[[-429.443,-1.916],[-454.339,-1.539],[-431.274,1.139],[-399.548,3.122],[-390.339,-1.364],[-414.612,-1.376]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.5,1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-362.658,1.059],"ix":2},"a":{"a":0,"k":[-372.408,1.059],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[3,-0.125],[-0.187,-2.893],[-4.75,-0.25],[1.25,2.75]],"o":[[-3,0.125],[0.25,3.875],[4.75,0.25],[-1.25,-2.75]],"v":[[-502.625,-5.5],[-511.25,-0.375],[-502.375,5.5],[-493.5,-0.5]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[1.964,-0.082],[-0.122,-1.894],[-3.11,-0.164],[0.818,1.8]],"o":[[-1.964,0.082],[0.164,2.537],[3.11,0.164],[-0.818,-1.8]],"v":[[-502.355,-3.579],[-508.002,-0.224],[-502.191,3.622],[-496.381,-0.306]],"c":true}],"h":1},{"t":68.5003255208333,"s":[{"i":[[0.928,-0.039],[-0.058,-0.895],[-1.47,-0.077],[0.387,0.851]],"o":[[-0.928,0.039],[0.077,1.199],[1.47,0.077],[-0.387,-0.851]],"v":[[-502.085,-1.659],[-504.754,-0.073],[-502.008,1.745],[-499.262,-0.112]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[46,1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":69.333,"s":[100]},{"t":70.1663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":65.166,"s":[{"i":[[2.299,0],[-0.143,-2.356],[-2.244,0],[0.115,1.897]],"o":[[-2.36,0],[0.136,2.24],[1.9,0],[-0.139,-2.295]],"v":[[-527.5,-4],[-532.75,0.75],[-527,4.25],[-522.5,0.75]],"c":true}],"h":1},{"t":66.8333333333333,"s":[{"i":[[0.826,0],[-0.051,-0.847],[-0.807,0],[0.041,0.682]],"o":[[-0.848,0],[0.049,0.805],[0.683,0],[-0.05,-0.825]],"v":[[-527.589,-1.358],[-529.477,0.35],[-527.409,1.608],[-525.791,0.35]],"c":true}],"h":1}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[40.25,1],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":64.333,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":65.166,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":67.666,"s":[100]},{"t":68.5003255208333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"t":56.833,"s":[{"i":[[20,0],[1,-19],[-18.998,-0.576],[0.5,25]],"o":[[-17.007,0],[-1,19],[16.5,0.5],[-0.5,-25]],"v":[[-833,-32.5],[-865,0.5],[-830,34.5],[-796.5,0.5]],"c":true}],"h":1},{"t":58.5,"s":[{"i":[[20,0],[1,-19],[-18.998,-0.576],[0.5,25]],"o":[[-17.007,0],[-1,19],[16.5,0.5],[-0.5,-25]],"v":[[-717,-32.5],[-865,0.5],[-714,33],[-668,0.5]],"c":true}],"h":1},{"t":60.166,"s":[{"i":[[20,0],[1,-19],[-18.998,-0.462],[0.5,25]],"o":[[-17.007,0],[-1,19],[16.5,0.402],[-0.5,-25]],"v":[[149,-27],[-862,0],[152,25.598],[198,-0.5]],"c":true}],"h":1},{"t":61.833,"s":[{"i":[[20,0],[1,-19],[-18.998,-0.349],[-0.45,18.001]],"o":[[-17.007,0],[-1,19],[16.5,0.303],[0.5,-20]],"v":[[559,-20.5],[-798,0],[562,19.197],[608,-0.5]],"c":true}],"h":1},{"t":63.5,"s":[{"i":[[73,0.658],[30.5,-6.5],[-19.002,-0.276],[0.5,25]],"o":[[-17.006,-0.153],[58,16.5],[68,0.987],[-0.5,-25]],"v":[[673,-22.08],[-589.5,0],[676,21.013],[776,0]],"c":true}],"h":1},{"t":65.166,"s":[{"i":[[19.987,-0.708],[221,-12],[-229,-13],[0.5,25]],"o":[[-127,4.5],[114,15],[16.481,0.936],[-0.5,-25]],"v":[[797,-26.5],[282,0],[797,26.5],[846,-0.5]],"c":true}],"h":1},{"t":66.833,"s":[{"i":[[20,0],[1,-19],[-18.998,-0.576],[0.5,25]],"o":[[-17.007,0],[-1,19],[16.5,0.5],[-0.5,-25]],"v":[[819,-33.5],[722,0],[822,32],[868,-0.5]],"c":true}],"h":1},{"t":68.5,"s":[{"i":[[18.242,0.223],[-0.24,-17.143],[-18.057,-0.023],[0.516,15.75]],"o":[[-17.559,-0.215],[0.217,15.55],[17.043,0.022],[-0.664,-20.262]],"v":[[852.508,-30.223],[821.533,-0.05],[854.057,28.773],[883.484,-0.5]],"c":true}],"h":1},{"t":70.166,"s":[{"i":[[14.169,0.174],[-0.186,-13.316],[-14.026,-0.018],[0.401,12.234]],"o":[[-13.639,-0.167],[0.169,12.078],[13.238,0.017],[-0.516,-15.738]],"v":[[871.289,-23.659],[847.229,-0.222],[872.492,22.166],[895.349,-0.572]],"c":true}],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71.833,"s":[{"i":[[11.26,0.138],[-0.148,-10.582],[-11.146,-0.014],[0.319,9.722]],"o":[[-10.839,-0.133],[0.134,9.598],[10.52,0.013],[-0.41,-12.507]],"v":[[882.561,-18.97],[863.441,-0.345],[883.517,17.446],[901.681,-0.623]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":73.5,"s":[{"i":[[8.06,0.099],[-0.106,-7.575],[-7.978,-0.01],[0.228,6.959]],"o":[[-7.758,-0.095],[0.096,6.871],[7.53,0.01],[-0.293,-8.953]],"v":[[891.585,-13.813],[877.899,-0.481],[892.27,12.255],[905.272,-0.68]],"c":true}]},{"t":76.8333333333333,"s":[{"i":[[2.64,0.056],[-0.035,-4.335],[-2.613,-0.006],[0.075,3.982]],"o":[[-2.541,-0.054],[0.031,3.932],[2.466,0.005],[-0.096,-5.123]],"v":[[907.017,-8.256],[902.535,-0.627],[907.241,6.661],[911.499,-0.74]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":56.833,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76.833,"s":[100]},{"t":77.6663411458333,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":81.8333333333333,"st":56.8333333333333,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-90,"ix":10},"p":{"a":0,"k":[779.346,392,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[43.7,48,100],"ix":6}},"ao":0,"ef":[{"ty":5,"nm":"Turbulent Displace","np":16,"mn":"ADBE Turbulent Displace","ix":1,"en":1,"ef":[{"ty":7,"nm":"Displacement","mn":"ADBE Turbulent Displace-0001","ix":1,"v":{"a":0,"k":1,"ix":1}},{"ty":0,"nm":"Amount","mn":"ADBE Turbulent Displace-0002","ix":2,"v":{"a":0,"k":33,"ix":2}},{"ty":0,"nm":"Size","mn":"ADBE Turbulent Displace-0003","ix":3,"v":{"a":0,"k":90,"ix":3}},{"ty":3,"nm":"Offset (Turbulence)","mn":"ADBE Turbulent Displace-0004","ix":4,"v":{"a":0,"k":[960,540],"ix":4}},{"ty":0,"nm":"Complexity","mn":"ADBE Turbulent Displace-0005","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":0,"nm":"Evolution","mn":"ADBE Turbulent Displace-0006","ix":6,"v":{"a":0,"k":0,"ix":6}},{"ty":6,"nm":"Evolution Options","mn":"ADBE Turbulent Displace-0007","ix":7,"v":0},{"ty":7,"nm":"Cycle Evolution","mn":"ADBE Turbulent Displace-0008","ix":8,"v":{"a":0,"k":0,"ix":8}},{"ty":0,"nm":"Cycle (in Revolutions)","mn":"ADBE Turbulent Displace-0009","ix":9,"v":{"a":0,"k":1,"ix":9}},{"ty":0,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0010","ix":10,"v":{"a":0,"k":0,"ix":10}},{"ty":6,"nm":"Random Seed","mn":"ADBE Turbulent Displace-0011","ix":11,"v":0},{"ty":7,"nm":"Pinning","mn":"ADBE Turbulent Displace-0012","ix":12,"v":{"a":0,"k":3,"ix":12}},{"ty":7,"nm":"Resize Layer","mn":"ADBE Turbulent Displace-0013","ix":13,"v":{"a":0,"k":0,"ix":13}},{"ty":7,"nm":"Antialiasing for Best Quality","mn":"ADBE Turbulent Displace-0014","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56.833,"s":[{"i":[[11.322,0],[0.345,-0.017],[0,-10.973],[-11.159,-0.189],[-0.118,0],[0,11.322]],"o":[[-0.349,0],[-10.838,0.542],[0,11.204],[0.118,0.002],[11.322,0],[0,-11.322]],"v":[[1.25,-21.25],[0.208,-21.224],[-19.25,-0.75],[0.896,19.747],[1.25,19.75],[21.75,-0.75]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57.666,"s":[{"i":[[16.482,-0.109],[0.514,-0.021],[0.053,-10.972],[-16.369,-0.081],[-0.172,0.001],[-0.054,11.321]],"o":[[-0.508,0.003],[-16.137,0.649],[-0.054,11.203],[0.173,0.001],[16.482,-0.109],[0.054,-11.321]],"v":[[16.806,-21.487],[15.273,-21.451],[-19.303,-0.751],[16.093,19.51],[16.61,19.51],[40.383,-1.145]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58.5,"s":[{"i":[[15.609,-0.124],[1.007,-0.027],[0.06,-10.971],[-21.26,-0.005],[-0.163,0.001],[-0.062,11.321]],"o":[[-0.482,0.004],[-31.615,0.837],[-0.061,11.203],[0.224,0],[15.609,-0.124],[0.062,-11.321]],"v":[[294.52,-15.545],[292.279,-15.499],[-19.31,-0.751],[293.715,25.453],[294.296,25.452],[316.829,4.775]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59.333,"s":[{"i":[[22.713,0],[1.996,-0.02],[0,-10.973],[-36.822,-0.163],[-0.237,0],[0,11.322]],"o":[[-0.701,0],[-62.69,0.615],[0,11.204],[0.388,0.002],[22.713,0],[0,-11.322]],"v":[[732.113,-7.432],[728.047,-7.403],[-19.25,-0.75],[731.174,33.565],[732.113,33.568],[764.738,13.068]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60.166,"s":[{"i":[[22.713,0],[2.143,-0.019],[0,-10.973],[-38.457,-0.168],[-0.237,0],[0,11.322]],"o":[[-0.701,0],[-67.327,0.6],[0,11.204],[0.405,0.002],[22.713,0],[0,-11.322]],"v":[[878.053,-4.043],[873.763,-4.014],[-4.25,-1.5],[877.088,36.954],[878.053,36.957],[910.678,16.457]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[13.629,-4.561],[86.652,-5.975],[0,-10.358],[-53.446,1.16],[-22.24,8.602],[2.444,23.969]],"o":[[-9.862,3.3],[-80.243,5.533],[0,10.857],[46.354,-1.006],[18.302,-7.078],[-1.149,-11.263]],"v":[[1074.284,-36.077],[963.177,-3.705],[190.576,4.925],[941.208,34.747],[1057.908,19.478],[1102.693,-22.181]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[25.734,-14.458],[57.535,0.433],[0,-10.358],[-53.458,-0.289],[-28.449,20.495],[16.742,10.948]],"o":[[-45.444,25.531],[-80.43,-0.606],[0,10.857],[97.834,0.528],[20.653,-14.879],[-26.837,-17.549]],"v":[[1072.672,-29.604],[937.627,-1.065],[432.522,10.148],[956.717,34.381],[1120.036,-15.944],[1150.156,-76.861]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[23.815,-17.439],[60.087,-2.523],[0,-10.358],[-53.395,2.605],[-27.04,22.321],[16.742,10.948]],"o":[[-61.791,45.249],[-80.362,3.374],[0,10.857],[115.945,-5.656],[30.862,-25.477],[-26.837,-17.549]],"v":[[1107.611,-54.498],[937.531,4.434],[656.485,14.205],[956.813,28.882],[1139.838,-33.101],[1191.46,-122.647]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[18.893,-22.679],[60.087,-2.523],[-0.009,-7.129],[-53.457,0.418],[-28.313,20.683],[27.034,12.374]],"o":[[-49.538,59.465],[-80.362,3.374],[0.014,10.931],[106.359,-0.832],[43.474,-31.758],[-19.486,-8.919]],"v":[[1132.449,-73.568],[950.977,7.678],[819.989,15.441],[962.338,27.487],[1135.304,-31.18],[1210.331,-172.326]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[11.856,-27.032],[56.914,-19.432],[-1.357,-6.999],[-58.312,21.909],[-22.064,27.25],[29.714,1.04]],"o":[[-31.29,71.344],[-44.492,15.191],[2.081,10.731],[33.919,-12.744],[45.923,-56.717],[-24.377,-0.853]],"v":[[1179.204,-142.321],[1032.438,-3.447],[944.982,17.633],[1072.983,5.804],[1169.801,-60.084],[1218.771,-211.834]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[14.53,-35.892],[30.675,-23.851],[5.099,-4.983],[-50.58,36.358],[-16.698,30.832],[29.683,1.694]],"o":[[-19.208,47.446],[-37.115,28.858],[-11.962,11.69],[28.617,-20.57],[23.405,-43.217],[-25.543,-1.458]],"v":[[1178.34,-146.817],[1108.748,-47.775],[1041.305,6.278],[1128.594,-38.743],[1209.941,-137.785],[1216.557,-246.794]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[6.463,-38.179],[26.105,-35.723],[3.462,-6.232],[-38.476,48.988],[-6.091,22.999],[28.929,-6.861]],"o":[[-2.665,15.742],[-27.739,37.959],[-8.122,14.621],[16.705,-21.269],[12.583,-47.51],[-24.895,5.904]],"v":[[1195.756,-182.445],[1160.966,-93.998],[1108.528,-35.694],[1176.987,-93.916],[1220.9,-173.321],[1205.693,-274.264]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66.833,"s":[{"i":[[-3.967,-38.518],[14.738,-41.718],[2.805,-6.554],[-17.135,35.515],[3.642,44.481],[5.311,-9.959]],"o":[[1.636,15.882],[-10.128,28.668],[-4.058,9.483],[11.752,-24.358],[-4.01,-48.984],[-7.603,14.257]],"v":[[1203.101,-232.396],[1185.56,-129.169],[1153.419,-77.434],[1199.41,-126.896],[1227.572,-246.524],[1191.203,-296.143]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67.666,"s":[{"i":[[-6.517,-18.867],[6.536,-33.775],[1.403,-5.363],[-9.315,43.217],[8.841,20.883],[2.939,-8.269]],"o":[[4.053,11.734],[-4.492,23.21],[-2.03,7.758],[4.43,-20.556],[-14.898,-35.19],[-4.207,11.838]],"v":[[1193.273,-271.965],[1203.312,-170.863],[1184.545,-127.384],[1220.176,-196.608],[1217.473,-286.022],[1181.171,-312.54]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":68.5,"s":[{"i":[[-9.304,-14.906],[-0.873,-44.41],[0.562,-4.797],[-0.324,53.603],[11.725,14.991],[1.63,-7.53]],"o":[[5.786,9.27],[0.403,20.504],[-0.813,6.94],[0.11,-18.265],[-20.528,-26.245],[-2.334,10.78]],"v":[[1182.667,-295.219],[1206.787,-226.586],[1201.598,-166.302],[1220.883,-246.831],[1203.141,-311.834],[1169.962,-323.009]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69.333,"s":[{"i":[[-9.304,-14.906],[-6.738,-23.509],[0.562,-4.797],[3.138,27.16],[11.278,15.331],[4.942,-5.911]],"o":[[5.786,9.27],[5.651,19.714],[-0.813,6.94],[-2.096,-18.145],[-13.204,-17.949],[-5.257,6.287]],"v":[[1174.843,-305.357],[1208.609,-245.057],[1211.646,-197.632],[1218.662,-262.872],[1195.807,-321.463],[1166.646,-333.568]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70.166,"s":[{"i":[[-11.178,-13.557],[-7.335,-18.018],[0.562,-4.797],[7.715,22.739],[11.278,15.331],[4.942,-5.911]],"o":[[9.466,11.481],[7.732,18.994],[-0.813,6.94],[-5.869,-17.297],[-13.204,-17.949],[-5.257,6.287]],"v":[[1164.993,-314.03],[1200.968,-265.693],[1214.144,-226.092],[1209.987,-281.526],[1186.957,-330.119],[1157.769,-340.724]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71,"s":[{"i":[[-5.68,-5.275],[-6.615,-5.699],[-5.996,-9.279],[4.449,11.328],[8.129,7.475],[4.963,-6.237]],"o":[[9.337,8.672],[7.612,6.558],[4.077,-17.869],[-3.896,-9.921],[-10.024,-9.217],[-4.807,6.041]],"v":[[1156.32,-325.652],[1174.022,-308.569],[1196.611,-282.346],[1192.558,-321.685],[1176.913,-343.998],[1153.575,-346.545]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":71.833,"s":[{"i":[[-4.618,-4.412],[-5.383,-4.772],[-4.833,-7.713],[3.536,9.381],[6.61,6.253],[4.158,-5.076]],"o":[[7.591,7.253],[6.195,5.492],[3.56,-14.665],[-3.097,-8.217],[-8.152,-7.711],[-4.028,4.917]],"v":[[1150.562,-334.187],[1164.948,-319.907],[1183.255,-298.042],[1180.363,-330.484],[1167.73,-349.046],[1148.538,-351.424]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":72.666,"s":[{"i":[[-4.207,-3.771],[-4.886,-4.078],[-4.552,-6.589],[3.511,8.013],[6.019,5.343],[3.352,-4.333]],"o":[[6.916,6.198],[5.623,4.693],[2.372,-12.522],[-3.075,-7.019],[-7.422,-6.589],[-3.247,4.197]],"v":[[1147.89,-337.464],[1161.022,-325.261],[1177.911,-306.579],[1173.845,-334.286],[1162.023,-350.145],[1145.308,-352.186]],"c":true}]},{"t":73.5003255208333,"s":[{"i":[[-3.787,-3.137],[-4.403,-3.357],[-4.057,-5.786],[3.081,7.256],[5.419,4.439],[3.136,-4.492]],"o":[[6.225,5.157],[5.067,3.863],[2.373,-12.188],[-2.698,-6.355],[-6.682,-5.475],[-3.038,4.351]],"v":[[1146.958,-339.941],[1158.771,-329.735],[1173.915,-313.763],[1170.646,-339.723],[1160.09,-353.554],[1144.835,-353.689]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-721,85],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-1,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66.833,"s":[{"i":[[-1.848,-1.875],[-1.957,2.875],[-0.435,6],[5,-6]],"o":[[1.848,1.875],[1.957,-2.875],[0.435,-6],[-5,6]],"v":[[404.456,17.75],[410.543,14.375],[419.348,4.625],[410.869,6.875]],"c":true}]},{"t":71.0003255208333,"s":[{"i":[[-0.708,-0.483],[-0.42,0.573],[0.389,0.655],[0.499,-1.177]],"o":[[1.05,0.716],[0.992,-1.354],[-0.735,-1.237],[-0.242,0.571]],"v":[[433.253,-14.046],[435.614,-14.589],[436.296,-17.576],[433.331,-16.399]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":66,"s":[0],"h":1},{"t":66.833,"s":[100],"h":1},{"t":71.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 11","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[5.332,-4.406],[10.05,-7.572],[1.148,-0.821],[-8.315,4.877],[-3.93,2.126]],"o":[[-3.121,2.579],[-3.833,2.888],[2.727,2.148],[6.731,-3.948],[8.785,-4.751]],"v":[[321.037,36.094],[290.353,57.89],[284.11,64.219],[302.203,53.915],[319.584,46.207]],"c":true}]},{"t":71.0003255208333,"s":[{"i":[[1.425,0.375],[0.516,-1.431],[0.049,-0.343],[-0.554,-0.143],[-0.279,0.334]],"o":[[-1.228,-0.324],[-0.141,0.391],[-0.06,0.416],[0.573,0.148],[0.944,-1.131]],"v":[[333.77,22.361],[330.951,24.963],[330.662,26.083],[331.622,26.966],[333.142,26.736]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[331.087,62.625],"ix":2},"a":{"a":0,"k":[283.928,58.982],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-0.198,"ix":6},"o":{"a":1,"k":[{"t":65.166,"s":[1],"h":1},{"t":66,"s":[100],"h":1},{"t":71.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 10","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[6.001,-3.438],[4.622,-1.369],[-9.463,3.193]],"o":[[-4.853,2.78],[-6.364,1.884],[9.463,-3.193]],"v":[[287.03,54.981],[272.713,60.955],[289.158,61.059]],"c":true}]},{"t":68.5003255208333,"s":[{"i":[[1.379,-0.683],[-0.18,-1.043],[-1.179,0.646]],"o":[[-1.734,0.859],[0.188,1.086],[1.764,-0.966]],"v":[[307.257,48.925],[305.837,51.696],[308.931,52.026]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.913,77.25],"ix":2},"a":{"a":0,"k":[283.928,58.982],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-0.198,"ix":6},"o":{"a":1,"k":[{"t":64.333,"s":[1],"h":1},{"t":65.166,"s":[100],"h":1},{"t":69.3333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 9","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[2.875,-0.125],[-8.035,-2.12],[-6.725,1.978]],"o":[[-2.875,0.125],[9,2.375],[8.5,-2.5]],"v":[[239.75,63.5],[218.75,70.625],[240.375,70]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[2.876,0.091],[-3.613,-2.264],[-3,1.66]],"o":[[-2.876,-0.091],[4.677,2.93],[7.752,-4.291]],"v":[[248.185,61.363],[234.385,66.845],[249.523,68.399]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66.833,"s":[{"i":[[2.781,-0.74],[-1.488,-1.369],[-1.507,2.224]],"o":[[-2.781,0.74],[2.644,2.433],[1.864,-2.752]],"v":[[250.348,60.068],[244.863,65.494],[254.886,64.877]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67.666,"s":[{"i":[[1.649,-0.439],[-0.882,-0.811],[-0.893,1.319]],"o":[[-1.649,0.439],[1.568,1.442],[1.105,-1.632]],"v":[[252.991,59.068],[251.221,62.433],[255.681,61.919]],"c":true}]},{"t":68.5003255208333,"s":[{"i":[[1.256,-0.334],[-0.672,-0.618],[-0.68,1.004]],"o":[[-1.256,0.334],[1.194,1.098],[0.842,-1.243]],"v":[[254.502,58.588],[253.154,61.152],[256.551,60.76]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.826,16],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":64.333,"s":[0],"h":1},{"t":65.166,"s":[100],"h":1},{"t":69.3333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[0,0],[6.25,-5.25],[-8,2.5],[8.5,2.5]],"o":[[0,0],[-6.25,5.25],[8,-2.5],[-8.5,-2.5]],"v":[[101,65.25],[80.75,66.75],[111.75,74.25],[125.5,66.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[0,0],[-3.699,-2.367],[-3.884,2.019],[4.127,2.019]],"o":[[0,0],[2.367,1.514],[3.884,-2.019],[-4.127,-2.019]],"v":[[118.172,64.837],[113.256,70.894],[123.39,72.106],[130.066,65.644]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-1.235,-2.726],[-2.801,1.026],[1.549,1.158]],"o":[[0,0],[0.71,1.566],[2.801,-1.026],[-2.508,-1.874]],"v":[[126.435,64.519],[123.517,68.184],[130.262,69.992],[132.951,65.48]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66.833,"s":[{"i":[[0,0],[-0.755,-1.666],[-1.712,0.627],[0.947,0.708]],"o":[[0,0],[0.434,0.957],[1.712,-0.627],[-1.533,-1.145]],"v":[[129.695,64.355],[127.912,66.595],[132.034,67.7],[133.678,64.942]],"c":true}]},{"t":67.6663411458333,"s":[{"i":[[0,0],[-0.438,-0.966],[-0.993,0.364],[0.549,0.41]],"o":[[0,0],[0.251,0.555],[0.993,-0.364],[-0.889,-0.664]],"v":[[131.885,64.447],[130.852,65.746],[133.242,66.386],[134.195,64.788]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[55.12,18.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":63.5,"s":[0],"h":1},{"t":64.333,"s":[100],"h":1},{"t":68.5003255208333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[0,0],[6.25,-5.25],[-8,2.5],[8.5,2.5]],"o":[[0,0],[-6.25,5.25],[8,-2.5],[-8.5,-2.5]],"v":[[101,65.25],[80.75,66.75],[111.75,74.25],[125.5,66.25]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[0,0],[-3.699,-2.367],[-3.884,2.019],[4.127,2.019]],"o":[[0,0],[2.367,1.514],[3.884,-2.019],[-4.127,-2.019]],"v":[[118.172,64.837],[113.256,70.894],[123.391,72.106],[130.066,65.644]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[0,0],[-1.235,-2.726],[-2.801,1.026],[1.549,1.158]],"o":[[0,0],[0.71,1.566],[2.801,-1.026],[-2.508,-1.874]],"v":[[125.685,65.769],[122.767,69.434],[129.512,71.242],[132.201,66.73]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[0,0],[-0.755,-1.666],[-1.712,0.627],[0.947,0.708]],"o":[[0,0],[0.434,0.957],[1.712,-0.627],[-1.533,-1.145]],"v":[[129.445,66.855],[127.662,69.095],[131.784,70.2],[133.428,67.442]],"c":true}]},{"t":66.8333333333333,"s":[{"i":[[0,0],[-0.438,-0.966],[-0.993,0.364],[0.549,0.41]],"o":[[0,0],[0.251,0.555],[0.993,-0.364],[-0.889,-0.664]],"v":[[132.073,67.572],[131.039,68.871],[133.429,69.511],[134.382,67.913]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-31.304,15],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":62.666,"s":[0],"h":1},{"t":63.5,"s":[100],"h":1},{"t":67.6663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[4.652,3.866],[0.317,-3.123],[-4.812,-0.938]],"o":[[-4.652,-3.866],[-0.317,3.123],[4.812,0.938]],"v":[[-513.42,73.625],[-538.679,74.835],[-515.78,80.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[2.816,2.132],[0.154,-2.732],[-2.47,0.079]],"o":[[-3.241,-2.454],[-0.154,2.732],[2.974,-0.095]],"v":[[-511.191,74.099],[-521.346,75.103],[-512.006,79.608]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[1.529,1.464],[0.083,-1.876],[-1.341,0.054]],"o":[[-1.759,-1.685],[-0.083,1.876],[1.615,-0.065]],"v":[[-509.154,74.587],[-514.667,75.277],[-511.012,78.358]],"c":true}]},{"t":66.8333333333333,"s":[{"i":[[1.046,1.002],[0.057,-1.284],[-0.917,0.037]],"o":[[-1.204,-1.153],[-0.057,1.284],[1.105,-0.045]],"v":[[-508.046,74.925],[-511.818,75.397],[-509.318,77.505]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":63.5,"s":[0],"h":1},{"t":64.333,"s":[100],"h":1},{"t":67.6663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[3.694,2.428],[-0.025,-2.294],[-3.572,-0.288]],"o":[[-3.694,-2.428],[0.025,2.294],[3.572,0.288]],"v":[[-567.944,74.515],[-577.502,78.021],[-570.185,82.462]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[2.581,1.696],[-0.018,-1.603],[-2.496,-0.201]],"o":[[-2.581,-1.696],[0.018,1.603],[2.496,0.201]],"v":[[-564.081,75.39],[-570.76,77.839],[-565.647,80.943]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[{"i":[[1.886,1.239],[-0.013,-1.171],[-1.823,-0.147]],"o":[[-1.886,-1.239],[0.013,1.171],[1.823,0.147]],"v":[[-562.761,75.937],[-567.64,77.726],[-563.905,79.993]],"c":true}]},{"t":66.8333333333333,"s":[{"i":[[1.329,0.736],[-0.009,-0.696],[-1.285,-0.087]],"o":[[-1.329,-0.736],[0.009,0.696],[1.285,0.087]],"v":[[-559.329,76.538],[-562.768,77.601],[-560.136,78.949]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":63.5,"s":[0],"h":1},{"t":64.333,"s":[100],"h":1},{"t":67.6663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.908,0.183],[-0.035,-4.015],[-4.965,-0.504],[-10.464,0.985],[-4.133,0.503],[-0.107,1.024],[13.717,0.931]],"o":[[-6.653,-0.42],[0.035,4.015],[1.388,0.141],[5.467,-0.515],[4.596,-0.559],[0.152,-1.445],[-10.969,-0.745]],"v":[[-566.295,72.587],[-589.833,78.972],[-559.661,83.746],[-536.761,81.379],[-521.818,79.944],[-514.015,77.696],[-533.468,70.031]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":62.666,"s":[0],"h":1},{"t":63.5,"s":[100],"h":1},{"t":64.3333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-4.701,82.841],"ix":2},"a":{"a":0,"k":[-424.093,76.841],"ix":1},"s":{"a":0,"k":[100,-77.71],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[4.652,3.866],[0.317,-3.123],[-4.812,-0.938]],"o":[[-4.652,-3.866],[-0.317,3.123],[4.812,0.938]],"v":[[-513.42,73.625],[-538.679,74.835],[-515.78,80.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[2.816,2.132],[0.154,-2.732],[-2.47,0.079]],"o":[[-3.241,-2.454],[-0.154,2.732],[2.974,-0.095]],"v":[[-511.191,74.099],[-521.346,75.103],[-512.006,79.608]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[1.529,1.464],[0.083,-1.876],[-1.341,0.054]],"o":[[-1.759,-1.685],[-0.083,1.876],[1.615,-0.065]],"v":[[-509.154,74.587],[-514.667,75.277],[-511.012,78.358]],"c":true}]},{"t":66.0003255208333,"s":[{"i":[[1.046,1.002],[0.057,-1.284],[-0.917,0.037]],"o":[[-1.204,-1.153],[-0.057,1.284],[1.105,-0.045]],"v":[[-508.046,74.925],[-511.818,75.397],[-509.318,77.505]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":62.666,"s":[0],"h":1},{"t":63.5,"s":[100],"h":1},{"t":66.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[3.694,2.428],[-0.025,-2.294],[-3.572,-0.288]],"o":[[-3.694,-2.428],[0.025,2.294],[3.572,0.288]],"v":[[-567.944,74.515],[-577.502,78.021],[-570.185,82.462]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64.333,"s":[{"i":[[2.581,1.696],[-0.018,-1.603],[-2.496,-0.201]],"o":[[-2.581,-1.696],[0.018,1.603],[2.496,0.201]],"v":[[-564.081,75.39],[-570.76,77.839],[-565.647,80.943]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65.166,"s":[{"i":[[1.886,1.239],[-0.013,-1.171],[-1.823,-0.147]],"o":[[-1.886,-1.239],[0.013,1.171],[1.823,0.147]],"v":[[-562.761,75.937],[-567.64,77.726],[-563.905,79.993]],"c":true}]},{"t":66.0003255208333,"s":[{"i":[[1.329,0.736],[-0.009,-0.696],[-1.285,-0.087]],"o":[[-1.329,-0.736],[0.009,0.696],[1.285,0.087]],"v":[[-559.329,76.538],[-562.768,77.601],[-560.136,78.949]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":62.666,"s":[0],"h":1},{"t":63.5,"s":[100],"h":1},{"t":66.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.908,0.183],[-0.035,-4.015],[-4.965,-0.504],[-10.464,0.985],[-4.133,0.503],[-0.107,1.024],[13.717,0.931]],"o":[[-6.653,-0.42],[0.035,4.015],[1.388,0.141],[5.467,-0.515],[4.596,-0.559],[0.152,-1.445],[-10.969,-0.745]],"v":[[-566.295,72.587],[-589.833,78.972],[-559.661,83.746],[-536.761,81.379],[-521.818,79.944],[-514.015,77.696],[-533.468,70.031]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":61.833,"s":[0],"h":1},{"t":62.666,"s":[100],"h":1},{"t":63.5003255208333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-115.701,82.841],"ix":2},"a":{"a":0,"k":[-424.093,76.841],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[14.298,-0.054],[0.036,-3.288],[-10.012,-0.052]],"o":[[-10.607,0.04],[-0.043,3.974],[11.703,0.061]],"v":[[-545.673,75.118],[-590.957,80.579],[-545.703,86.128]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[9.143,-0.038],[0.023,-2.29],[-6.402,-0.036]],"o":[[-6.782,0.028],[-0.028,2.768],[7.483,0.043]],"v":[[-534.518,76.79],[-563.472,80.593],[-534.537,84.457]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[6.887,-0.028],[0.017,-1.725],[-4.822,-0.027]],"o":[[-5.109,0.021],[-0.021,2.085],[5.637,0.032]],"v":[[-530.637,77.694],[-538.229,80.567],[-530.651,83.469]],"c":true}]},{"t":64.3333333333333,"s":[{"i":[[1.84,-0.014],[0.005,-0.823],[-1.289,-0.013]],"o":[[-1.365,0.01],[-0.006,0.994],[1.506,0.015]],"v":[[-525.59,79.206],[-527.619,80.576],[-525.594,81.96]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":61,"s":[0],"h":1},{"t":61.833,"s":[100],"h":1},{"t":65.1663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[4.869,1.745],[-0.033,-1.648],[-4.708,-0.207]],"o":[[-4.869,-1.745],[0.033,1.648],[4.708,0.207]],"v":[[-621.244,79.457],[-632.592,82.226],[-622.948,85.418]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[2.36,1.324],[-0.016,-1.251],[-2.281,-0.157]],"o":[[-2.36,-1.324],[0.016,1.251],[2.281,0.157]],"v":[[-618.235,79.99],[-623.734,82.092],[-619.06,84.515]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[1.686,0.946],[-0.012,-0.894],[-1.629,-0.112]],"o":[[-1.686,-0.946],[0.012,0.894],[1.629,0.112]],"v":[[-615.436,80.47],[-619.363,81.971],[-616.025,83.701]],"c":true}]},{"t":64.3333333333333,"s":[{"i":[[0.974,0.547],[-0.007,-0.516],[-0.941,-0.065]],"o":[[-0.974,-0.547],[0.007,0.516],[0.941,0.065]],"v":[[-613.099,80.976],[-615.368,81.843],[-613.44,82.843]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":61,"s":[0],"h":1},{"t":61.833,"s":[100],"h":1},{"t":65.1663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[10.353,2.306],[-0.07,-2.179],[-10.009,-0.274]],"o":[[-10.353,-2.306],[0.07,2.179],[10.009,0.274]],"v":[[-580.173,78.536],[-606.957,81.865],[-586.453,86.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[2.976,1.724],[-0.02,-1.629],[-2.877,-0.205]],"o":[[-2.976,-1.724],[0.02,1.629],[2.877,0.205]],"v":[[-574.601,79.232],[-582.3,81.721],[-576.406,84.876]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[1.661,0.651],[-0.012,-0.944],[-1.667,-0.119]],"o":[[-1.855,-0.727],[0.012,0.944],[1.667,0.119]],"v":[[-573.599,80.037],[-576.621,81.52],[-574.27,83.369]],"c":true}]},{"t":64.3333333333333,"s":[{"i":[[0.865,0.339],[-0.006,-0.492],[-0.868,-0.062]],"o":[[-0.966,-0.378],[0.006,0.491],[0.868,0.062]],"v":[[-571.428,80.689],[-573.002,81.462],[-571.777,82.425]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":65.1663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-284.543,85.184],"ix":2},"a":{"a":0,"k":[-567.935,80.684],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[4.652,3.866],[0.317,-3.123],[-4.812,-0.938]],"o":[[-4.652,-3.866],[-0.317,3.123],[4.812,0.938]],"v":[[-513.42,73.625],[-538.679,74.835],[-515.78,80.171]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[2.816,2.132],[0.154,-2.732],[-2.47,0.079]],"o":[[-3.241,-2.454],[-0.154,2.732],[2.974,-0.095]],"v":[[-511.191,74.099],[-521.346,75.103],[-512.006,79.608]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[1.529,1.464],[0.083,-1.876],[-1.341,0.054]],"o":[[-1.759,-1.685],[-0.083,1.876],[1.615,-0.065]],"v":[[-509.154,74.587],[-514.667,75.277],[-511.012,78.358]],"c":true}]},{"t":64.3333333333333,"s":[{"i":[[1.046,1.002],[0.057,-1.284],[-0.917,0.037]],"o":[[-1.204,-1.153],[-0.057,1.284],[1.105,-0.045]],"v":[[-508.046,74.925],[-511.818,75.397],[-509.318,77.505]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":61,"s":[0],"h":1},{"t":61.833,"s":[100],"h":1},{"t":65.1663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 8","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[3.694,2.428],[-0.025,-2.294],[-3.572,-0.288]],"o":[[-3.694,-2.428],[0.025,2.294],[3.572,0.288]],"v":[[-567.944,74.515],[-577.502,78.021],[-570.185,82.462]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[2.581,1.696],[-0.018,-1.603],[-2.496,-0.201]],"o":[[-2.581,-1.696],[0.018,1.603],[2.496,0.201]],"v":[[-564.081,75.39],[-570.76,77.839],[-565.647,80.943]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":63.5,"s":[{"i":[[1.886,1.239],[-0.013,-1.171],[-1.823,-0.147]],"o":[[-1.886,-1.239],[0.013,1.171],[1.823,0.147]],"v":[[-562.761,75.937],[-567.64,77.726],[-563.905,79.993]],"c":true}]},{"t":64.3333333333333,"s":[{"i":[[1.329,0.736],[-0.009,-0.696],[-1.285,-0.087]],"o":[[-1.329,-0.736],[0.009,0.696],[1.285,0.087]],"v":[[-559.329,76.538],[-562.768,77.601],[-560.136,78.949]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":61,"s":[0],"h":1},{"t":61.833,"s":[100],"h":1},{"t":65.1663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 7","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.908,0.183],[-0.035,-4.015],[-4.965,-0.504],[-10.464,0.985],[-4.133,0.503],[-0.107,1.024],[13.717,0.931]],"o":[[-6.653,-0.42],[0.035,4.015],[1.388,0.141],[5.467,-0.515],[4.596,-0.559],[0.152,-1.445],[-10.969,-0.745]],"v":[[-566.295,72.587],[-589.833,78.972],[-559.661,83.746],[-536.761,81.379],[-521.818,79.944],[-514.015,77.696],[-533.468,70.031]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.25,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":61.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 6","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-426.701,87.841],"ix":2},"a":{"a":0,"k":[-424.093,76.841],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[14.298,-0.054],[0.036,-3.288],[-10.012,-0.052]],"o":[[-10.607,0.04],[-0.043,3.974],[11.703,0.061]],"v":[[-571.673,75.179],[-590.957,80.579],[-571.703,86.189]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[7.176,-0.042],[0.018,-2.549],[-5.025,-0.041]],"o":[[-5.323,0.031],[-0.022,3.081],[5.873,0.047]],"v":[[-563.301,77.667],[-572.978,81.853],[-563.316,86.203]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":62.666,"s":[{"i":[[3.284,0.186],[0.006,-1.479],[-1.743,-0.063]],"o":[[-1.845,-0.105],[-0.008,1.788],[3.229,0.116]],"v":[[-559.482,79.432],[-562.17,81.888],[-559.487,84.384]],"c":true}]},{"t":63.5003255208333,"s":[{"i":[[2.54,0.144],[0.005,-1.144],[-1.348,-0.048]],"o":[[-1.427,-0.081],[-0.006,1.382],[2.497,0.09]],"v":[[-556.29,79.994],[-558.369,81.894],[-556.294,83.824]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.935,-4.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":64.3333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 4","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[-3.416,-2.174],[0.023,2.053],[3.303,0.258]],"o":[[3.416,2.174],[-0.023,-2.053],[-3.303,-0.258]],"v":[[-622.236,85.018],[-613.398,81.88],[-620.164,77.904]],"c":true}]},{"t":61.8333333333333,"s":[{"i":[[2.025,1.288],[-0.014,-1.217],[-1.958,-0.153]],"o":[[-2.025,-1.288],[0.014,1.217],[1.958,0.153]],"v":[[-609.15,80.128],[-614.389,81.988],[-610.378,84.345]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-4.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":62.6663411458333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 3","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61,"s":[{"i":[[10.353,2.306],[-0.07,-2.179],[-10.009,-0.274]],"o":[[-10.353,-2.306],[0.07,2.179],[10.009,0.274]],"v":[[-580.173,78.536],[-606.957,81.865],[-586.453,86.084]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":61.833,"s":[{"i":[[2.976,1.724],[-0.02,-1.629],[-2.877,-0.205]],"o":[[-2.976,-1.724],[0.02,1.629],[2.877,0.205]],"v":[[-574.601,79.232],[-582.3,81.721],[-576.406,84.876]],"c":true}]},{"t":62.6663411458333,"s":[{"i":[[1.661,0.651],[-0.012,-0.944],[-1.667,-0.119]],"o":[[-1.855,-0.727],[0.012,0.944],[1.667,0.119]],"v":[[-573.599,80.037],[-576.621,81.52],[-574.27,83.369]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-4.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":63.5003255208333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[-570.543,87.684],"ix":2},"a":{"a":0,"k":[-567.935,80.684],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.49,1.863],[0,0],[-7.181,0.153]],"o":[[-7.49,-1.863],[0,0],[7.181,-0.153]],"v":[[-661.49,79.935],[-687.038,82.701],[-668.091,85.619]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.047058868408,0,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.739,1.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"t":60.166,"s":[0],"h":1},{"t":61,"s":[100],"h":1},{"t":61.8333333333333,"s":[0],"h":1}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":75.1666666666667,"st":56.8333333333333,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,539.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0,0,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":13,"s":[971,971,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.456,0],[0,-7.456],[-7.456,0],[0,7.456]],"o":[[-7.456,0],[0,7.456],[7.456,0],[0,-7.456]],"v":[[0.75,-10.75],[-12.75,2.75],[0.75,16.25],[14.25,2.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0],"y":[0]},"t":0,"s":[41]},{"t":23.8974609375,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0.5,2.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":23,"st":-2,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-29],[1104,-195.999]],"o":[[0,0],[0,770],[0,0.001]],"v":[[-117.997,-146.999],[-118,146],[0,-0.001]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[48]},{"t":56,"s":[-41]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25,"s":[0]},{"t":26.09375,"s":[4]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[296]},{"i":{"x":[0],"y":[1]},"o":{"x":[1],"y":[0]},"t":45,"s":[182.4]},{"t":66,"s":[44]}],"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":57.7,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":25,"op":57,"st":25,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-118,1028]],"o":[[0,0],[762,0],[0,-36]],"v":[[-30,117],[146,117],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":27,"s":[48]},{"t":48,"s":[-41]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[0]},{"t":18.09375,"s":[4]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":17,"s":[296]},{"i":{"x":[0],"y":[1]},"o":{"x":[1],"y":[0]},"t":37,"s":[182.4]},{"t":61,"s":[44]}],"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":60,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":49,"st":17,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[30,0],[34.001,998]],"o":[[0,0],[-934,0],[0,-340]],"v":[[144,0],[-30,0],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":19,"s":[48]},{"t":40,"s":[-41]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[0]},{"t":10.09375,"s":[4]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[296]},{"i":{"x":[0],"y":[1]},"o":{"x":[1],"y":[0]},"t":29.227,"s":[182.4]},{"t":48,"s":[44]}],"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":60,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":39,"st":9,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-1040]],"o":[[0,0],[898,0],[0,1172]],"v":[[-30,-118],[146,-118],[0,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[48]},{"t":30,"s":[-41]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 2","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-1,"s":[0]},{"t":0.09375,"s":[4]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-1,"s":[296]},{"i":{"x":[0],"y":[1]},"o":{"x":[1],"y":[0]},"t":19.227,"s":[182.4]},{"t":43,"s":[44]}],"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":60,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-1,"op":31,"st":-1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"E-SideLine Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[842,539.5,0],"ix":2},"a":{"a":0,"k":[30,147.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.638,148.405],[-29,148.405]],"c":true}]},{"i":{"x":0.45,"y":1},"o":{"x":0.792,"y":0},"t":61,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.319,-276.595],[-29.319,-276.595]],"c":true}]},{"i":{"x":0.353,"y":1},"o":{"x":0.766,"y":0},"t":68,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.479,-64.095],[-29.16,-64.095]],"c":true}]},{"i":{"x":0.329,"y":1},"o":{"x":0.699,"y":0},"t":75,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.387,-185.524],[-29.251,-185.524]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.44,-116.136],[-29.199,-116.136]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.414,-150.83],[-29.225,-150.83]],"c":true}]},{"t":93,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-29.319,146.595],[29.319,146.595],[29.319,-146.595],[-29.319,-146.595]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.223,295.033],"ix":2},"a":{"a":0,"k":[0,147.516],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":13182,"st":55,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"E-1rdLine Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":47,"s":[1068.739,656.907,0],"to":[0,0,0],"ti":[0,0,0]},{"t":76,"s":[928.739,656.907,0]}],"ix":2},"a":{"a":0,"k":[89,30,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[87.958,-29.319],[90.042,-29.731],[90.042,28.907],[87.958,29.319]],"c":true}]},{"t":66,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[87.958,-29.319],[-87.958,-29.319],[-87.958,29.319],[87.958,29.319]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[269.119,29.774],"ix":2},"a":{"a":0,"k":[89.1,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":49,"op":13174,"st":47,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"E-2ndLine Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":38,"s":[918,539.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":66,"s":[1018,539.5,0]}],"ix":2},"a":{"a":0,"k":[89,30.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":38,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-87.042,-29.638],[-87.958,-29.319],[-87.958,29.319],[-87.042,29]],"c":true}]},{"t":56,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[87.958,-29.319],[-87.958,-29.319],[-87.958,29.319],[87.958,29.319]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.119,30.497],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":39,"op":13164,"st":37,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"E-1stLine Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":28,"s":[1158,422,0],"to":[0,0,0],"ti":[0,0,0]},{"t":57,"s":[1018,422,0]}],"ix":2},"a":{"a":0,"k":[89,30,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0,"y":0},"t":28,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[87.958,-29.319],[88.042,-28.319],[88.042,30.319],[87.958,29.319]],"c":true}]},{"t":47,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[87.958,-29.319],[-87.958,-29.319],[-87.958,29.319],[87.958,29.319]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.482352941176,0.898039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[89.119,30.221],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":31,"op":13155,"st":28,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Circle Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[959.5,539.5,0],"ix":2},"a":{"a":0,"k":[352.5,352.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.994,0.994,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":29,"s":[0,0,100]},{"t":40,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\nvar damping, elasticity, speedLimit, tempsClefProx, tempsDebut, tempsDebut, temps, spring, spring;\nvar fx = effect('Transform Spring');\ndamping = fx(2).value;\nelasticity = fx(1).value;\n$bm_rt = speedLimit = 0.1;\nif (numKeys > 1 && elasticity != 0) {\n    if (nearestKey(time).index == 1) {\n        $bm_rt = value;\n    } else {\n        if (length(velocity) <= speedLimit) {\n            tempsClefProx = nearestKey(time).time;\n            if (tempsClefProx <= time) {\n                tempsDebut = tempsClefProx;\n            } else {\n                tempsDebut = key($bm_sub(nearestKey(time).index, 1)).time;\n            }\n            temps = $bm_sub(time, tempsDebut);\n            spring = $bm_mul(velocityAtTime($bm_sub(tempsDebut, thisComp.frameDuration)), $bm_div($bm_mul($bm_div(0.15, elasticity), Math.sin($bm_mul($bm_mul($bm_mul(elasticity, temps), 2), Math.PI))), Math.exp($bm_mul(temps, damping))));\n            if (speedLimit > 0)\n                spring = $bm_mul(spring, $bm_sub(1, $bm_div(length(velocity), speedLimit)));\n            $bm_rt = $bm_sum(valueAtTime(tempsDebut), spring);\n        } else {\n            $bm_rt = value;\n        }\n    }\n} else {\n    $bm_rt = value;\n}"}},"ao":0,"ef":[{"ty":5,"nm":"Transform Spring","np":4,"mn":"Pseudo/DUIK multid spring","ix":1,"en":1,"ef":[{"ty":0,"nm":"Elasticity","mn":"Pseudo/DUIK multid spring-0001","ix":1,"v":{"a":0,"k":2.68,"ix":1}},{"ty":0,"nm":"Damping","mn":"Pseudo/DUIK multid spring-0002","ix":2,"v":{"a":0,"k":5.2,"ix":2}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-194.308],[-194.308,0],[0,194.308],[194.308,0]],"o":[[0,194.308],[194.308,0],[0,-194.308],[-194.308,0]],"v":[[-351.829,0],[0,351.829],[351.829,0],[0,-351.829]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.572549019608,0,0.23137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[352.5,352.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":29,"op":13156,"st":29,"bm":0}],"markers":[]}PK!�/��PP!modules/lottie/widgets/lottie.phpnu�[���<?php

namespace ElementorPro\Modules\Lottie\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Css_Filter;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Lottie extends Base_Widget {

	/**
	 * Get element name.
	 *
	 * Retrieve the element name.
	 *
	 * @return string The name.
	 * @since 2.7.0
	 * @access public
	 *
	 */
	public function get_name() {
		return 'lottie';
	}

	public function get_title() {
		return esc_html__( 'Lottie', 'elementor-pro' );
	}

	public function get_script_depends() {
		return [ 'lottie' ];
	}

	public function get_style_depends() {
		return [ 'e-lottie' ];
	}

	public function get_icon() {
		return 'eicon-lottie';
	}

	protected function register_controls() {
		$this->start_controls_section( 'lottie', [
			'label' => esc_html__( 'Lottie', 'elementor-pro' ),
		] );

		$this->add_control(
			'source',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'media_file',
				'options' => [
					'media_file' => esc_html__( 'Media File', 'elementor-pro' ),
					'external_url' => esc_html__( 'External URL', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'source_external_url',
			[
				'label' => esc_html__( 'External URL', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'condition' => [
					'source' => 'external_url',
				],
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'Enter your URL', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'source_json',
			[
				'label' => esc_html__( 'Upload JSON File', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'media_type' => 'application/json',
				'frontend_available' => true,
				'condition' => [
					'source' => 'media_file',
				],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left'    => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor%s-align-',
				'default' => 'center',
			]
		);

		$this->add_control(
			'caption_source',
			[
				'label' => esc_html__( 'Caption', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'none',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'caption' => esc_html__( 'Caption', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'condition' => [
					'source!' => 'external_url',
					'source_json[url]!' => '',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'caption',
			[
				'label' => esc_html__( 'Custom Caption', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'caption_source',
							'value' => 'custom',
						],
						[
							'name' => 'source',
							'value' => 'external_url',
						],
					],
				],
				'dynamic' => [
					'active' => true,
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'link_to',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'render_type' => 'none',
				'default' => 'none',
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom URL', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'custom_link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'render_type' => 'none',
				'placeholder' => esc_html__( 'Enter your URL', 'elementor-pro' ),
				'condition' => [
					'link_to' => 'custom',
				],
				'dynamic' => [
					'active' => true,
				],
				'default' => [
					'url' => '',
				],
				'show_label' => false,
				'frontend_available' => true,
			]
		);

		// lottie.
		$this->end_controls_section();

		$this->start_controls_section( 'settings', [
			'label' => esc_html__( 'Settings', 'elementor-pro' ),
		] );

		$this->add_control(
			'trigger',
			[
				'label' => esc_html__( 'Trigger', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'arriving_to_viewport',
				'options' => [
					'arriving_to_viewport' => esc_html__( 'Viewport', 'elementor-pro' ),
					'on_click' => esc_html__( 'On Click', 'elementor-pro' ),
					'on_hover' => esc_html__( 'On Hover', 'elementor-pro' ),
					'bind_to_scroll' => esc_html__( 'Scroll', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'viewport',
			[
				'label' => esc_html__( 'Viewport', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'trigger',
							'operator' => '===',
							'value' => 'arriving_to_viewport',
						],
						[
							'name' => 'trigger',
							'operator' => '===',
							'value' => 'bind_to_scroll',
						],
					],
				],
				'default' => [
					'sizes' => [
						'start' => 0,
						'end' => 100,
					],
					'unit' => '%',
				],
				'labels' => [
					__( 'Bottom', 'elementor-pro' ),
					__( 'Top', 'elementor-pro' ),
				],
				'scales' => 1,
				'handles' => 'range',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'effects_relative_to',
			[
				'label' => esc_html__( 'Effects Relative To', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'render_type' => 'none',
				'condition' => [
					'trigger' => 'bind_to_scroll',
				],
				'default' => 'viewport',
				'options' => [
					'viewport' => esc_html__( 'Viewport', 'elementor-pro' ),
					'page' => esc_html__( 'Entire Page', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'loop',
			[
				'label' => esc_html__( 'Loop', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'render_type' => 'none',
				'condition' => [
					'trigger!' => 'bind_to_scroll',
				],
				'return_value' => 'yes',
				'default' => '',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'number_of_times',
			[
				'label' => esc_html__( 'Times', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'trigger',
							'operator' => '!==',
							'value' => 'bind_to_scroll',
						],
						[
							'name' => 'loop',
							'operator' => '===',
							'value' => 'yes',
						],
					],
				],
				'min' => 0,
				'step' => 1,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'link_timeout',
			[
				'label' => esc_html__( 'Link Timeout', 'elementor-pro' ) . ' (ms)',
				'type' => Controls_Manager::NUMBER,
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'link_to',
							'operator' => '===',
							'value' => 'custom',
						],
						[
							'name' => 'trigger',
							'operator' => '===',
							'value' => 'on_click',
						],
						[
							'name' => 'custom_link[url]',
							'operator' => '!==',
							'value' => '',
						],
					],
				],
				'description' => esc_html__( 'Redirect to link after selected timeout', 'elementor-pro' ),
				'min' => 0,
				'max' => 5000,
				'step' => 1,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'on_hover_out',
			[
				'label' => esc_html__( 'On Hover Out', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'render_type' => 'none',
				'condition' => [
					'trigger' => 'on_hover',
				],
				'default' => 'default',
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'reverse' => esc_html__( 'Reverse', 'elementor-pro' ),
					'pause' => esc_html__( 'Pause', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'hover_area',
			[
				'label' => esc_html__( 'Hover Area', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'render_type' => 'none',
				'condition' => [
					'trigger' => 'on_hover',
				],
				'default' => 'animation',
				'options' => [
					'animation' => esc_html__( 'Animation', 'elementor-pro' ),
					'column' => esc_html__( 'Column', 'elementor-pro' ),
					'section' => esc_html__( 'Section', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'play_speed',
			[
				'label' => esc_html__( 'Play Speed', 'elementor-pro' ) . ' (x)',
				'type' => Controls_Manager::SLIDER,
				'render_type' => 'none',
				'condition' => [
					'trigger!' => 'bind_to_scroll',
				],
				'default' => [
					'unit' => 'px',
					'size' => 1,
				],
				'range' => [
					'px' => [
						'min' => 0.1,
						'max' => 5,
						'step' => 0.1,
					],
				],
				'size_units' => [ 'px' ],
				'dynamic' => [
					'active' => true,
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'start_point',
			[
				'label' => esc_html__( 'Start Point', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'frontend_available' => true,
				'render_type' => 'none',
				'default' => [
					'size' => '0',
					'unit' => '%',
				],
				'size_units' => [ '%' ],
			]
		);

		$this->add_control(
			'end_point',
			[
				'label' => esc_html__( 'End Point', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'frontend_available' => true,
				'render_type' => 'none',
				'default' => [
					'size' => '100',
					'unit' => '%',
				],
				'size_units' => [ '%' ],
			]
		);

		$this->add_control(
			'reverse_animation',
			[
				'label' => esc_html__( 'Reverse', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'and',
					'terms' => [
						[
							'name' => 'trigger',
							'operator' => '!==',
							'value' => 'bind_to_scroll',
						],
						[
							'name' => 'trigger',
							'operator' => '!==',
							'value' => 'on_hover',
						],
					],
				],
				'return_value' => 'yes',
				'default' => '',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'renderer',
			[
				'label' => esc_html__( 'Renderer', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'svg',
				'options' => [
					'svg' => esc_html__( 'SVG', 'elementor-pro' ),
					'canvas' => esc_html__( 'Canvas', 'elementor-pro' ),
				],
				'separator' => 'before',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'lazyload',
			[
				'label' => esc_html__( 'Lazy Load', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'yes',
				'default' => '',
				'frontend_available' => true,
			]
		);

		// Settings.
		$this->end_controls_section();

		$this->start_controls_section(
			'style',
			[
				'label' => esc_html__( 'Lottie', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => '%',
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'size_units' => [ '%', 'px', 'vw' ],
				'range' => [
					'%' => [
						'min' => 1,
						'max' => 100,
					],
					'px' => [
						'min' => 1,
						'max' => 1000,
					],
					'vw' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--lottie-container-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'space',
			[
				'label' => esc_html__( 'Max Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => '%',
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'size_units' => [ '%', 'px', 'vw' ],
				'range' => [
					'%' => [
						'min' => 1,
						'max' => 100,
					],
					'px' => [
						'min' => 1,
						'max' => 1000,
					],
					'vw' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--lottie-container-max-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'separator_panel_style',
			[
				'type' => Controls_Manager::DIVIDER,
				'style' => 'thick',
			]
		);

		$this->start_controls_tabs( 'image_effects' );

			$this->start_controls_tab( 'normal',
				[
					'label' => esc_html__( 'Normal', 'elementor-pro' ),
				]
			);

			$this->add_control(
				'opacity',
				[
					'label' => esc_html__( 'Opacity', 'elementor-pro' ),
					'type' => Controls_Manager::SLIDER,
					'range' => [
						'px' => [
							'max' => 1,
							'min' => 0.10,
							'step' => 0.01,
						],
					],
					'selectors' => [
						'{{WRAPPER}}' => '--lottie-container-opacity: {{SIZE}};',
					],
				]
			);

			$this->add_group_control(
				Group_Control_Css_Filter::get_type(),
				[
					'name' => 'css_filters',
					'selector' => '{{WRAPPER}} .e-lottie__container',
				]
			);

			// Normal.
			$this->end_controls_tab();

			$this->start_controls_tab( 'hover',
				[
					'label' => esc_html__( 'Hover', 'elementor-pro' ),
				]
			);

			$this->add_control(
				'opacity_hover',
				[
					'label' => esc_html__( 'Opacity', 'elementor-pro' ),
					'type' => Controls_Manager::SLIDER,
					'range' => [
						'px' => [
							'max' => 1,
							'min' => 0.10,
							'step' => 0.01,
						],
					],
					'selectors' => [
						'{{WRAPPER}}' => '--lottie-container-opacity-hover: {{SIZE}};',
					],
				]
			);

			$this->add_group_control(
				Group_Control_Css_Filter::get_type(),
				[
					'name' => 'css_filters_hover',
					'selector' => '{{WRAPPER}} .e-lottie__container:hover',
				]
			);

			$this->add_control(
				'background_hover_transition',
				[
					'label' => esc_html__( 'Transition Duration', 'elementor-pro' ),
					'type' => Controls_Manager::SLIDER,
					'range' => [
						'px' => [
							'max' => 3,
							'step' => 0.1,
						],
					],
					'selectors' => [
						'{{WRAPPER}}' => '--lottie-container-transition-duration-hover: {{SIZE}}s',
					],
				]
			);

			// Hover.
			$this->end_controls_tab();

		// Image effects.
		$this->end_controls_tabs();

		// lottie style.
		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_caption',
			[
				'label' => esc_html__( 'Caption', 'elementor-pro' ),
				'tab'   => Controls_Manager::TAB_STYLE,
				'condition' => [
					'caption_source!' => 'none',
				],
			]
		);

		$this->add_control(
			'caption_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'default' => 'center',
				'selectors' => [
					'{{WRAPPER}}' => '--caption-text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => '--caption-color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'caption_typography',
				'selector' => '{{WRAPPER}} .e-lottie__caption',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_responsive_control(
			'caption_space',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--caption-margin-top: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function get_caption( $settings ) {
		$is_media_file_caption = $this->is_media_file_caption( $settings );
		$is_external_url_caption = $this->is_external_url_caption( $settings );

		if ( ( $is_media_file_caption && 'custom' === $settings['caption_source'] ) || $is_external_url_caption ) {
			return $settings['caption'];
		} else if ( 'caption' === $settings['caption_source'] ) {
			return wp_get_attachment_caption( $settings['source_json']['id'] );
		} else if ( 'title' === $settings['caption_source'] ) {
			return get_the_title( $settings['source_json']['id'] );
		}

		return '';
	}

	private function is_media_file_caption( $settings ) {
		return 'media_file' === $settings['source'] && 'none' !== $settings['caption_source'];
	}

	private function is_external_url_caption( $settings ) {
		return 'external_url' === $settings['source'] && '' !== $settings['caption'];
	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$caption = $this->get_caption( $settings );
		$widget_caption = $caption ? '<p class="e-lottie__caption"> ' . esc_html( $caption ) . '</p>' : '';
		$widget_container = '<div class="e-lottie__container"><div class="e-lottie__animation"></div>' . $widget_caption . '</div>';

		if ( ! empty( $settings['custom_link']['url'] ) && 'custom' === $settings['link_to'] ) {
			$this->add_link_attributes( 'url', $settings['custom_link'] );
			$widget_container = sprintf( '<a class="e-lottie__container__link" %1$s>%2$s</a>', $this->get_render_attribute_string( 'url' ), $widget_container );
		}

		// PHPCS - XSS ok. Everything that should be escaped in the way is escaped.
		echo $widget_container; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	protected function content_template() {
		?>
		<#
		var ensureAttachmentData = function( id, type ) {
			if ( 'caption' === type || 'title' === type ) {
				if ( 'undefined' === typeof wp.media.attachment( id ).get( type ) ) {
					wp.media.attachment( id ).fetch().then( function( data ) {
						view.render();
					} );
				}
			}
		};

		var getAttachmentData = function( id, type ) {
			if ( id && ( 'caption' === type || 'title' === type ) ) {
				ensureAttachmentData( id, type );
				return wp.media.attachment( id ).get( type );
			}

			return '';
		};

		var getCaption = function() {
			if ( ( isMediaFileCaption() && 'custom' === settings.caption_source ) || isExternalUrlCaption() ) {
				return settings.caption;
			} else if ( 'caption' === settings.caption_source || 'title' === settings.caption_source ) {
				return getAttachmentData( settings.source_json.id, settings.caption_source );
			}

			return '';
		};

		var isMediaFileCaption = function() {
			return 'media_file' === settings.source && 'none' !== settings.caption_source;
		};

		var isExternalUrlCaption = function() {
			return 'external_url' === settings.source && '' !== settings.caption;
		};

		var widget_caption = getCaption() ? '<p class="e-lottie__caption">' + getCaption() + '</p>' : '';
		var widget_container = '<div class="e-lottie__container"><div class="e-lottie__animation"></div>' + widget_caption + '</div>';

		if ( settings.custom_link.url && 'custom' === settings.link_to ) {
			widget_container = '<a class="e-lottie__container__link" href="' + settings.custom_link.url + '">' + widget_container + '</a>';
		}

		print( widget_container );
		#>
		<?php
	}
}
PK!��M��modules/lottie/module.phpnu�[���<?php

namespace ElementorPro\Modules\Lottie;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {
	public function __construct() {
		parent::__construct();

		add_filter( 'wp_check_filetype_and_ext', [ $this, 'handle_file_type' ], 10, 3 );

		add_filter( 'elementor_pro/frontend/localize_settings', [ $this, 'localize_settings' ] );

		add_action( 'elementor/frontend/before_register_scripts', [ $this, 'register_frontend_scripts' ] );
	}

	/**
	 * Get module name.
	 *
	 * Retrieve the module name.
	 *
	 * @since  2.7.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'lottie';
	}

	public function get_widgets() {
		return [
			'lottie',
		];
	}

	// Fixing wordpress problem when `finfo_file()` returns wrong file type
	public function handle_file_type( $file_data, $file, $filename ) {
		if ( $file_data['ext'] && $file_data['type'] ) {
			return $file_data;
		}

		$filetype = wp_check_filetype( $filename );

		if ( 'json' === $filetype['ext'] ) {
			$file_data['ext'] = 'json';
			$file_data['type'] = 'application/json';
		}

		return $file_data;
	}

	public function register_frontend_scripts() {
		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

		wp_register_script(
			'lottie',
			ELEMENTOR_PRO_URL . 'assets/lib/lottie/lottie' . $suffix . '.js',
			[
				'jquery',
			],
			'5.6.6',
			true
		);
	}

	public function localize_settings( array $settings ) {
		$settings['lottie']['defaultAnimationUrl'] = ELEMENTOR_PRO_MODULES_URL . 'lottie/assets/animations/default.json';

		return $settings;
	}
}
PK!e�ᨆH�H+modules/carousel/widgets/media-carousel.phpnu�[���<?php
namespace ElementorPro\Modules\Carousel\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Embed;
use Elementor\Group_Control_Text_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Media_Carousel extends Base {

	/**
	 * @var int
	 */
	private $lightbox_slide_index;

	public function get_name() {
		return 'media-carousel';
	}

	public function get_title() {
		return esc_html__( 'Media Carousel', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-media-carousel';
	}

	public function get_keywords() {
		return [ 'media', 'carousel', 'image', 'video', 'lightbox' ];
	}

	protected function render() {
		$settings = $this->get_active_settings();

		if ( $settings['overlay'] ) {
			$this->add_render_attribute( 'image-overlay', 'class', [
				'elementor-carousel-image-overlay',
				'e-overlay-animation-' . $settings['overlay_animation'],
			] );
		}

		$this->print_slider();

		if ( 'slideshow' !== $settings['skin'] || count( $settings['slides'] ) <= 1 ) {
			return;
		}

		$settings['thumbs_slider'] = true;
		$settings['container_class'] = 'elementor-thumbnails-swiper';
		$settings['show_arrows'] = false;

		$this->print_slider( $settings );
	}

	protected function register_controls() {
		parent::register_controls();

		$this->start_controls_section(
			'section_lightbox_style',
			[
				'label' => esc_html__( 'Lightbox', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'lightbox_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'#elementor-lightbox-slideshow-{{ID}}' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'lightbox_ui_color',
			[
				'label' => esc_html__( 'UI Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'#elementor-lightbox-slideshow-{{ID}} .dialog-lightbox-close-button, #elementor-lightbox-slideshow-{{ID}} .elementor-swiper-button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'lightbox_ui_hover_color',
			[
				'label' => esc_html__( 'UI Hover Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'#elementor-lightbox-slideshow-{{ID}} .dialog-lightbox-close-button:hover, #elementor-lightbox-slideshow-{{ID}} .elementor-swiper-button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'lightbox_video_width',
			[
				'label' => esc_html__( 'Video Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'%' => [
						'min' => 50,
					],
				],
				'selectors' => [
					'#elementor-lightbox-slideshow-{{ID}} .elementor-video-container' => 'width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->add_injections();

		$this->update_controls();
	}

	protected function add_repeater_controls( Repeater $repeater ) {
		$repeater->add_control(
			'type',
			[
				'type' => Controls_Manager::CHOOSE,
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'default' => 'image',
				'options' => [
					'image' => [
						'title' => esc_html__( 'Image', 'elementor-pro' ),
						'icon' => 'eicon-image-bold',
					],
					'video' => [
						'title' => esc_html__( 'Video', 'elementor-pro' ),
						'icon' => 'eicon-video-camera',
					],
				],
				'toggle' => false,
			]
		);

		$repeater->add_control(
			'image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
			]
		);

		$repeater->add_control(
			'image_link_to_type',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'file' => esc_html__( 'Media File', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom URL', 'elementor-pro' ),
				],
				'condition' => [
					'type' => 'image',
				],
			]
		);

		$repeater->add_control(
			'image_link_to',
			[
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'show_external' => 'true',
				'condition' => [
					'type' => 'image',
					'image_link_to_type' => 'custom',
				],
				'separator' => 'none',
				'show_label' => false,
			]
		);

		$repeater->add_control(
			'video',
			[
				'label' => esc_html__( 'Video Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'Enter your video link', 'elementor-pro' ),
				'description' => esc_html__( 'YouTube or Vimeo link', 'elementor-pro' ),
				'options' => false,
				'condition' => [
					'type' => 'video',
				],
			]
		);
	}

	protected function get_default_slides_count() {
		return 5;
	}

	protected function get_repeater_defaults() {
		$placeholder_image_src = Utils::get_placeholder_image_src();

		return array_fill( 0, $this->get_default_slides_count(), [
			'image' => [
				'url' => $placeholder_image_src,
			],
		] );
	}

	protected function get_image_caption( $slide ) {
		$caption_type = $this->get_settings( 'caption' );

		if ( empty( $caption_type ) ) {
			return '';
		}

		$attachment_post = get_post( $slide['image']['id'] );

		if ( 'caption' === $caption_type ) {
			return $attachment_post->post_excerpt;
		}

		if ( 'title' === $caption_type ) {
			return $attachment_post->post_title;
		}

		return $attachment_post->post_content;
	}

	protected function get_image_link_to( $slide ) {
		if ( ! empty( $slide['video']['url'] ) ) {
			return $slide['image']['url'] ? $slide['image']['url'] : '#';
		}

		if ( ! $slide['image_link_to_type'] ) {
			return '';
		}

		if ( 'custom' === $slide['image_link_to_type'] ) {
			return $slide['image_link_to']['url'];
		}

		return $slide['image']['url'];
	}

	protected function print_slider( array $settings = null ) {
		$this->lightbox_slide_index = 0;

		parent::print_slider( $settings );
	}

	protected function print_slide( array $slide, array $settings, $element_key ) {
		if ( ! empty( $settings['thumbs_slider'] ) ) {
			$settings['video_play_icon'] = false;

			$this->add_render_attribute( $element_key . '-image', 'class', 'elementor-fit-aspect-ratio' );
		}

		$this->add_render_attribute( $element_key . '-image', [
			'class' => 'elementor-carousel-image',
			'style' => 'background-image: url(' . $this->get_slide_image_url( $slide, $settings ) . ')',
		] );

		$image_link_to = $this->get_image_link_to( $slide );

		if ( $image_link_to && empty( $settings['thumbs_slider'] ) ) {
			if ( 'custom' === $slide['image_link_to_type'] ) {
				$this->add_link_attributes( $element_key . '_link', $slide['image_link_to'] );
			} else {
				$this->add_render_attribute( $element_key . '_link', 'href', $image_link_to );

				$this->add_lightbox_data_attributes( $element_key . '_link', $slide['image']['id'], 'yes', $this->get_id() );

				if ( Plugin::elementor()->editor->is_edit_mode() ) {
					$this->add_render_attribute( $element_key . '_link', 'class', 'elementor-clickable' );
				}

				$this->lightbox_slide_index++;
			}

			if ( 'video' === $slide['type'] && $slide['video']['url'] ) {
				$embed_url_params = [
					'autoplay' => 1,
					'rel' => 0,
					'controls' => 0,
				];

				$this->add_render_attribute( $element_key . '_link', 'data-elementor-lightbox-video', Embed::get_embed_url( $slide['video']['url'], $embed_url_params ) );
			}

			// PHPCS - the method get_render_attribute_string is safe.
			echo '<a ' . $this->get_render_attribute_string( $element_key . '_link' ) . '>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		$this->print_slide_image( $slide, $element_key, $settings );

		if ( $image_link_to ) {
			echo '</a>';
		}
	}

	protected function print_slide_image( array $slide, $element_key, array $settings ) {
		?>
		<div <?php $this->print_render_attribute_string( $element_key . '-image' ); ?>>
			<?php if ( 'video' === $slide['type'] && $settings['video_play_icon'] ) : ?>
				<div class="elementor-custom-embed-play">
					<?php
						Icons_Manager::render_icon( [
							'library' => 'eicons',
							'value' => 'eicon-play',
						], [ 'aria-hidden' => 'true' ] );
					?>
					<span class="elementor-screen-only"><?php echo esc_html__( 'Play', 'elementor-pro' ); ?></span>
				</div>
			<?php endif; ?>
		</div>
		<?php if ( $settings['overlay'] ) : ?>
			<div <?php $this->print_render_attribute_string( 'image-overlay' ); ?>>
				<?php
				if ( 'text' === $settings['overlay'] ) {
					echo wp_kses_post( $this->get_image_caption( $slide ) );
				} else {
					$this->render_overlay_icon( $settings['icon'] );
				}
				?>
			</div>
			<?php
		endif;
	}

	private function add_injections() {
		$this->start_injection( [
			'type' => 'section',
			'at' => 'start',
			'of' => 'section_slides',
		] );

		$this->add_control(
			'skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'carousel',
				'options' => [
					'carousel' => esc_html__( 'Carousel', 'elementor-pro' ),
					'slideshow' => esc_html__( 'Slideshow', 'elementor-pro' ),
					'coverflow' => esc_html__( 'Coverflow', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-skin-',
				'render_type' => 'template',
				'frontend_available' => true,
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'of' => 'image_size_custom_dimension',
		] );

		$this->add_control(
			'image_fit',
			[
				'label' => esc_html__( 'Image Fit', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'Cover', 'elementor-pro' ),
					'contain' => esc_html__( 'Contain', 'elementor-pro' ),
					'auto' => esc_html__( 'Auto', 'elementor-pro' ),
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .elementor-carousel-image' => 'background-size: {{VALUE}}',
				],
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'of' => 'pagination_color',
		] );

		$this->add_control(
			'play_icon_title',
			[
				'label' => esc_html__( 'Play Icon', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'play_icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-custom-embed-play i' => 'color: {{VALUE}}',
					'{{WRAPPER}} .elementor-custom-embed-play svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'play_icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 20,
						'max' => 150,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-custom-embed-play i' => 'font-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Text_Shadow::get_type(),
			[
				'name' => 'play_icon_text_shadow',
				'selector' => '{{WRAPPER}} .elementor-custom-embed-play i',
				'fields_options' => [
					'text_shadow_type' => [
						'label' => _x( 'Shadow', 'Text Shadow Control', 'elementor-pro' ),
					],
				],
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'of' => 'pause_on_interaction',
		] );

		$this->add_control(
			'overlay',
			[
				'label' => esc_html__( 'Overlay', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'text' => esc_html__( 'Text', 'elementor-pro' ),
					'icon' => esc_html__( 'Icon', 'elementor-pro' ),
				],
				'condition' => [
					'skin!' => 'slideshow',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'caption',
			[
				'label' => esc_html__( 'Caption', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'title',
				'options' => [
					'title' => esc_html__( 'Title', 'elementor-pro' ),
					'caption' => esc_html__( 'Caption', 'elementor-pro' ),
					'description' => esc_html__( 'Description', 'elementor-pro' ),
				],
				'condition' => [
					'skin!' => 'slideshow',
					'overlay' => 'text',
				],
			]
		);

		$this->add_control(
			'icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'search-plus',
				'options' => [
					'search-plus' => [
						'icon' => 'eicon-search-bold',
					],
					'plus-circle' => [
						'icon' => 'eicon-plus-circle',
					],
					'eye' => [
						'icon' => 'eicon-preview-medium',
					],
					'link' => [
						'icon' => 'eicon-link',
					],
				],
				'condition' => [
					'skin!' => 'slideshow',
					'overlay' => 'icon',
				],
			]
		);

		$this->add_control(
			'overlay_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'fade',
				'options' => [
					'fade' => 'Fade',
					'slide-up' => 'Slide Up',
					'slide-down' => 'Slide Down',
					'slide-right' => 'Slide Right',
					'slide-left' => 'Slide Left',
					'zoom-in' => 'Zoom In',
				],
				'condition' => [
					'skin!' => 'slideshow',
					'overlay!' => '',
				],
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'type' => 'section',
			'of' => 'section_navigation',
		] );

		$this->start_controls_section(
			'section_overlay',
			[
				'label' => esc_html__( 'Overlay', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'skin!' => 'slideshow',
					'overlay!' => '',
				],
			]
		);

		$this->add_control(
			'overlay_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-carousel-image-overlay' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'overlay_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-carousel-image-overlay' => '--e-carousel-image-overlay-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'caption_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-carousel-image-overlay',
				'condition' => [
					'overlay' => 'text',
				],
			]
		);

		$this->add_control(
			'icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-carousel-image-overlay' => '--e-carousel-image-overlay-icon-size: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'overlay' => 'icon',
				],
			]
		);

		$this->end_controls_section();

		$this->end_injection();

		// Slideshow

		$this->start_injection( [
			'of' => 'effect',
		] );

		$this->add_responsive_control(
			'slideshow_height',
			[
				'type' => Controls_Manager::SLIDER,
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'range' => [
					'px' => [
						'min' => 20,
						'max' => 1000,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper' => 'height: {{SIZE}}{{UNIT}};',
				],
				'condition' => [
					'skin' => 'slideshow',
				],
			]
		);

		$this->add_control(
			'thumbs_title',
			[
				'label' => esc_html__( 'Thumbnails', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'skin' => 'slideshow',
				],
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'of' => 'slides_per_view',
		] );

		$this->add_control(
			'thumbs_ratio',
			[
				'label' => esc_html__( 'Ratio', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '219',
				'options' => [
					'169' => '16:9',
					'219' => '21:9',
					'43' => '4:3',
					'11' => '1:1',
				],
				'prefix_class' => 'elementor-aspect-ratio-',
				'condition' => [
					'skin' => 'slideshow',
				],
			]
		);

		$this->add_control(
			'centered_slides',
			[
				'label' => esc_html__( 'Centered Slides', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'skin' => 'slideshow',
				],
				'frontend_available' => true,
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'of' => 'slides_per_view',
		] );

		$slides_per_view = range( 1, 10 );

		$slides_per_view = array_combine( $slides_per_view, $slides_per_view );

		$this->add_responsive_control(
			'slideshow_slides_per_view',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Slides Per View', 'elementor-pro' ),
				'options' => [ '' => esc_html__( 'Default', 'elementor-pro' ) ] + $slides_per_view,
				'condition' => [
					'skin' => 'slideshow',
				],
				'frontend_available' => true,
			]
		);

		$this->end_injection();
	}

	private function update_controls() {
		$carousel_controls = [
			'slides_to_scroll',
			'pagination',
			'heading_pagination',
			'pagination_size',
			'pagination_position',
			'pagination_color',
		];

		$carousel_responsive_controls = [
			'width',
			'height',
			'slides_per_view',
		];

		foreach ( $carousel_controls as $control_id ) {
			$this->update_control(
				$control_id,
				[
					'condition' => [
						'skin!' => 'slideshow',
					],
				],
				[ 'recursive' => true ]
			);
		}

		foreach ( $carousel_responsive_controls as $control_id ) {
			$this->update_responsive_control(
				$control_id,
				[
					'condition' => [
						'skin!' => 'slideshow',
					],
				],
				[ 'recursive' => true ]
			);
		}

		$this->update_responsive_control(
			'space_between',
			[
				'selectors' => [
					'{{WRAPPER}}.elementor-skin-slideshow .elementor-main-swiper' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
				'render_type' => 'ui',
			]
		);

		$this->update_control(
			'effect',
			[
				'condition' => [
					'skin!' => 'coverflow',
				],
			]
		);
	}

	public function get_group_name() {
		return 'carousel';
	}

	private function render_overlay_icon( $icon_name ) {
		$icon_value = 'fas fa-' . $icon_name;

		$icon = [
			'library' => 'fa-solid',
			'value' => $icon_value,
		];

		Icons_Manager::render_icon( $icon );
	}
}
PK!�.ə�S�S$modules/carousel/widgets/reviews.phpnu�[���<?php
namespace ElementorPro\Modules\Carousel\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Reviews extends Base {

	public function get_name() {
		return 'reviews';
	}

	public function get_title() {
		return esc_html__( 'Reviews', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-review';
	}

	public function get_keywords() {
		return [ 'reviews', 'social', 'rating', 'testimonial', 'carousel' ];
	}

	public function get_inline_css_depends() {
		$slides = $this->get_settings_for_display( 'slides' );

		foreach ( $slides as $slide ) {
			if ( $slide['rating'] ) {
				return [
					[
						'name' => 'star-rating',
						'is_core_dependency' => true,
					],
				];
			}
		}

		return [];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->update_control(
			'slide_padding',
			[
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__header' => 'padding-top: {{TOP}}{{UNIT}}; padding-left: {{LEFT}}{{UNIT}}; padding-right: {{RIGHT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-testimonial__content' => 'padding-bottom: {{BOTTOM}}{{UNIT}}; padding-left: {{LEFT}}{{UNIT}}; padding-right: {{RIGHT}}{{UNIT}};',
				],
			]
		);

		$this->start_injection( [
			'of' => 'slide_padding',
		] );

		$this->add_control(
			'heading_header',
			[
				'label' => esc_html__( 'Header', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'header_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__header' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'content_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__header' => 'padding-bottom: calc({{SIZE}}{{UNIT}} / 2)',
					'{{WRAPPER}} .elementor-testimonial__content' => 'padding-top: calc({{SIZE}}{{UNIT}} / 2)',
				],
			]
		);

		$this->add_control(
			'show_separator',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'default' => 'has-separator',
				'return_value' => 'has-separator',
				'prefix_class' => 'elementor-review--',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'separator_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__header' => 'border-bottom-color: {{VALUE}}',
				],
				'condition' => [
					'show_separator!' => '',
				],
			]
		);

		$this->add_control(
			'separator_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'condition' => [
					'show_separator!' => '',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__header' => 'border-bottom-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_injection();

		$this->start_injection( [
			'at' => 'before',
			'of' => 'section_navigation',
		] );

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'name_title_style',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'name_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__name' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'name_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__header, {{WRAPPER}} .elementor-testimonial__name',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'heading_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__title' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__title',
			]
		);

		$this->add_control(
			'heading_review_style',
			[
				'label' => esc_html__( 'Review', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'content_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__text' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__text',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'image_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 70,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'image_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-testimonial__image + cite' => 'margin-left: {{SIZE}}{{UNIT}}; margin-right: 0;',
					'body.rtl {{WRAPPER}} .elementor-testimonial__image + cite' => 'margin-right: {{SIZE}}{{UNIT}}; margin-left:0;',
				],
			]
		);

		$this->add_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_icon_style',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default' => esc_html__( 'Official', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'icon_custom_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'condition' => [
					'icon_color' => 'custom',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__icon:not(.elementor-testimonial__rating)' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-testimonial__icon:not(.elementor-testimonial__rating) svg' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__icon' => 'font-size: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-testimonial__icon svg' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_rating_style',
			[
				'label' => esc_html__( 'Rating', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'star_style',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'star_fontawesome' => 'Font Awesome',
					'star_unicode' => 'Unicode',
				],
				'default' => 'star_fontawesome',
				'render_type' => 'template',
				'prefix_class' => 'elementor--star-style-',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'unmarked_star_style',
			[
				'label' => esc_html__( 'Unmarked Style', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'solid' => [
						'title' => esc_html__( 'Solid', 'elementor-pro' ),
						'icon' => 'eicon-star',
					],
					'outline' => [
						'title' => esc_html__( 'Outline', 'elementor-pro' ),
						'icon' => 'eicon-star-o',
					],
				],
				'default' => 'solid',
			]
		);

		$this->add_control(
			'star_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-star-rating' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'star_space',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-star-rating i:not(:last-of-type)' => 'margin-right: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-star-rating i:not(:last-of-type)' => 'margin-left: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'stars_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-star-rating i:before' => 'color: {{VALUE}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'stars_unmarked_color',
			[
				'label' => esc_html__( 'Unmarked Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-star-rating i' => 'color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_section();

		$this->end_injection();

		$this->update_responsive_control(
			'width',
			[
				'selectors' => [
					'{{WRAPPER}}.elementor-arrows-yes .elementor-main-swiper' => 'width: calc( {{SIZE}}{{UNIT}} - 40px )',
					'{{WRAPPER}} .elementor-main-swiper' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->update_responsive_control(
			'slides_per_view',
			[
				'condition' => null,
			]
		);

		$this->update_control(
			'slides_to_scroll',
			[
				'condition' => null,
			]
		);

		$this->remove_control( 'effect' );
		$this->remove_responsive_control( 'height' );
		$this->remove_control( 'pagination_position' );
	}

	protected function add_repeater_controls( Repeater $repeater ) {
		$repeater->add_control(
			'image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
			]
		);

		$repeater->add_control(
			'name',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'John Doe', 'elementor-pro' ),
			]
		);

		$repeater->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '@username',
			]
		);

		$repeater->add_control(
			'rating',
			[
				'label' => esc_html__( 'Rating', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'min' => 0,
				'max' => 5,
				'step' => 0.1,
			]
		);

		$repeater->add_control(
			'selected_social_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'social_icon',
				'default' => [
					'value' => 'fab fa-twitter',
					'library' => 'fa-brands',
				],
				'recommended' => [
					'fa-solid' => [
						'rss',
						'shopping-cart',
						'thumbtack',
					],
					'fa-brands' => [
						'android',
						'apple',
						'behance',
						'bitbucket',
						'codepen',
						'delicious',
						'digg',
						'dribbble',
						'envelope',
						'facebook',
						'flickr',
						'foursquare',
						'github',
						'google-plus',
						'houzz',
						'instagram',
						'jsfiddle',
						'linkedin',
						'medium',
						'meetup',
						'mix',
						'mixcloud',
						'odnoklassniki',
						'pinterest',
						'product-hunt',
						'reddit',
						'skype',
						'slideshare',
						'snapchat',
						'soundcloud',
						'spotify',
						'stack-overflow',
						'steam',
						'telegram',
						'tripadvisor',
						'tumblr',
						'twitch',
						'twitter',
						'vimeo',
						'fa-vk',
						'weibo',
						'weixin',
						'whatsapp',
						'wordpress',
						'xing',
						'yelp',
						'youtube',
						'500px',
					],
				],
			]
		);

		$repeater->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),

			]
		);

		$repeater->add_control(
			'content',
			[
				'label' => esc_html__( 'Review', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
			]
		);
	}

	protected function get_repeater_defaults() {
		$placeholder_image_src = Utils::get_placeholder_image_src();

		return [
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => '@username',
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => '@username',
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => '@username',
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
		];
	}

	private function print_cite( $slide, $settings ) {
		if ( empty( $slide['name'] ) && empty( $slide['title'] ) ) {
			return '';
		}

		$html = '<cite class="elementor-testimonial__cite">';

		if ( ! empty( $slide['name'] ) ) {
			$html .= '<span class="elementor-testimonial__name">' . $slide['name'] . '</span>';
		}

		if ( ! empty( $slide['rating'] ) ) {
			$html .= $this->render_stars( $slide, $settings );
		}

		if ( ! empty( $slide['title'] ) ) {
			$html .= '<span class="elementor-testimonial__title">' . $slide['title'] . '</span>';
		}
		$html .= '</cite>';

		echo wp_kses_post( $html );
	}

	protected function render_stars( $slide, $settings ) {
		$icon = '&#xE934;';

		if ( 'star_fontawesome' === $settings['star_style'] ) {
			if ( 'outline' === $settings['unmarked_star_style'] ) {
				$icon = '&#xE933;';
			}
		} elseif ( 'star_unicode' === $settings['star_style'] ) {
			$icon = '&#9733;';

			if ( 'outline' === $settings['unmarked_star_style'] ) {
				$icon = '&#9734;';
			}
		}

		$rating = (float) $slide['rating'] > 5 ? 5 : $slide['rating'];
		$floored_rating = (int) $rating;
		$stars_html = '';

		for ( $stars = 1; $stars <= 5; $stars++ ) {
			if ( $stars <= $floored_rating ) {
				$stars_html .= '<i class="elementor-star-full">' . $icon . '</i>';
			} elseif ( $floored_rating + 1 === $stars && $rating !== $floored_rating ) {
				$stars_html .= '<i class="elementor-star-' . ( $rating - $floored_rating ) * 10 . '">' . $icon . '</i>';
			} else {
				$stars_html .= '<i class="elementor-star-empty">' . $icon . '</i>';
			}
		}

		return '<div class="elementor-star-rating">' . $stars_html . '</div>';
	}

	private function print_icon( $slide, $element_key ) {
		$migration_allowed = Icons_Manager::is_migration_allowed();
		if ( ! isset( $slide['social_icon'] ) && ! $migration_allowed ) {
			// add old default
			$slide['social_icon'] = 'fa fa-twitter';
		}

		if ( empty( $slide['social_icon'] ) && empty( $slide['selected_social_icon'] ) ) {
			return '';
		}

		$migrated = isset( $slide['__fa4_migrated']['selected_social_icon'] );
		$is_new = empty( $slide['social_icon'] ) && $migration_allowed;
		$social = '';

		if ( $is_new || $migrated ) {
			ob_start();
			Icons_Manager::render_icon( $slide['selected_social_icon'], [ 'aria-hidden' => 'true' ] );
			$icon = ob_get_clean();
		} else {
			$icon = '<i class="' . esc_attr( $slide['social_icon'] ) . '" aria-hidden="true"></i>';
		}

		if ( ! empty( $slide['social_icon'] ) ) {
			$social = str_replace( 'fa fa-', '', $slide['social_icon'] );
		}

		if ( ( $is_new || $migrated ) && 'svg' !== $slide['selected_social_icon']['library'] ) {
			$social = explode( ' ', $slide['selected_social_icon']['value'], 2 );
			if ( empty( $social[1] ) ) {
				$social = '';
			} else {
				$social = str_replace( 'fa-', '', $social[1] );
			}
		}
		if ( 'svg' === $slide['selected_social_icon']['library'] ) {
			$social = '';
		}

		$this->add_render_attribute( 'icon_wrapper_' . $element_key, 'class', 'elementor-testimonial__icon elementor-icon' );

		$icon .= '<span class="elementor-screen-only">' . esc_html__( 'Read More', 'elementor-pro' ) . '</span>';
		$this->add_render_attribute( 'icon_wrapper_' . $element_key, 'class', 'elementor-icon-' . $social );

		// Icon is escaped above, get_render_attribute_string() is safe
		echo '<div ' . $this->get_render_attribute_string( 'icon_wrapper_' . $element_key ) . '>' . $icon . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	protected function print_slide( array $slide, array $settings, $element_key ) {
		$this->add_render_attribute( $element_key . '-testimonial', [
			'class' => 'elementor-testimonial',
		] );

		$this->add_render_attribute( $element_key . '-testimonial', [
			'class' => 'elementor-repeater-item-' . $slide['_id'],
		] );

		if ( ! empty( $slide['image']['url'] ) ) {
			$this->add_render_attribute( $element_key . '-image', [
				'src' => $this->get_slide_image_url( $slide, $settings ),
				'alt' => ! empty( $slide['name'] ) ? $slide['name'] : '',
			] );
		}

		?>
		<div <?php $this->print_render_attribute_string( $element_key . '-testimonial' ); ?>>
			<?php if ( $slide['image']['url'] || ! empty( $slide['name'] ) || ! empty( $slide['title'] ) ) :

				$link_url = empty( $slide['link']['url'] ) ? false : $slide['link']['url'];
				$header_tag = ! empty( $link_url ) ? 'a' : 'div';
				$header_element = 'header_' . $slide['_id'];

				$this->add_render_attribute( $header_element, 'class', 'elementor-testimonial__header' );

				if ( ! empty( $link_url ) ) {
					$this->add_link_attributes( $header_element, $slide['link'] );
				}
				?>
				<<?php Utils::print_validated_html_tag( $header_tag ); ?> <?php $this->print_render_attribute_string( $header_element ); ?>>
					<?php if ( $slide['image']['url'] ) : ?>
						<div class="elementor-testimonial__image">
							<img <?php $this->print_render_attribute_string( $element_key . '-image' ); ?>>
						</div>
					<?php endif; ?>
					<?php $this->print_cite( $slide, $settings ); ?>
					<?php $this->print_icon( $slide, $element_key ); ?>
				</<?php Utils::print_validated_html_tag( $header_tag ); ?>>
			<?php endif; ?>
			<?php if ( $slide['content'] ) : ?>
				<div class="elementor-testimonial__content">
					<div class="elementor-testimonial__text">
						<?php
						// Main content allowed
						echo $slide['content']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					</div>
				</div>
			<?php endif; ?>
		</div>
		<?php
	}

	protected function render() {
		$this->print_slider();
	}

	public function get_group_name() {
		return 'carousel';
	}
}
PK!WP�L�8�8!modules/carousel/widgets/base.phpnu�[���<?php
namespace ElementorPro\Modules\Carousel\Widgets;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Image_Size;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base extends Base_Widget {

	private $slide_prints_count = 0;

	public function get_script_depends() {
		return [ 'imagesloaded' ];
	}

	abstract protected function add_repeater_controls( Repeater $repeater );

	abstract protected function get_repeater_defaults();

	abstract protected function print_slide( array $slide, array $settings, $element_key );

	protected function register_controls() {
		$this->start_controls_section(
			'section_slides',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$repeater = new Repeater();

		$this->add_repeater_controls( $repeater );

		$this->add_control(
			'slides',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => $this->get_repeater_defaults(),
				'separator' => 'after',
			]
		);

		$this->add_control(
			'effect',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Effect', 'elementor-pro' ),
				'default' => 'slide',
				'options' => [
					'slide' => esc_html__( 'Slide', 'elementor-pro' ),
					'fade' => esc_html__( 'Fade', 'elementor-pro' ),
					'cube' => esc_html__( 'Cube', 'elementor-pro' ),
				],
				'frontend_available' => true,
			]
		);

		$slides_per_view = range( 1, 10 );
		$slides_per_view = array_combine( $slides_per_view, $slides_per_view );

		$this->add_responsive_control(
			'slides_per_view',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Slides Per View', 'elementor-pro' ),
				'options' => [ '' => esc_html__( 'Default', 'elementor-pro' ) ] + $slides_per_view,
				'inherit_placeholders' => false,
				'condition' => [
					'effect' => 'slide',
				],
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'slides_to_scroll',
			[
				'type' => Controls_Manager::SELECT,
				'label' => esc_html__( 'Slides to Scroll', 'elementor-pro' ),
				'description' => esc_html__( 'Set how many slides are scrolled per swipe.', 'elementor-pro' ),
				'options' => [ '' => esc_html__( 'Default', 'elementor-pro' ) ] + $slides_per_view,
				'inherit_placeholders' => false,
				'condition' => [
					'effect' => 'slide',
				],
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'height',
			[
				'type' => Controls_Manager::SLIDER,
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'size_units' => [ 'px', 'vh' ],
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1000,
					],
					'vh' => [
						'min' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper' => 'height: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'width',
			[
				'type' => Controls_Manager::SLIDER,
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'range' => [
					'px' => [
						'min' => 100,
						'max' => 1140,
					],
					'%' => [
						'min' => 50,
					],
				],
				'size_units' => [ '%', 'px' ],
				'default' => [
					'unit' => '%',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper' => 'width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_additional_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_arrows',
			[
				'type' => Controls_Manager::SWITCHER,
				'label' => esc_html__( 'Arrows', 'elementor-pro' ),
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'prefix_class' => 'elementor-arrows-',
				'render_type' => 'template',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'pagination',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'bullets',
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'bullets' => esc_html__( 'Dots', 'elementor-pro' ),
					'fraction' => esc_html__( 'Fraction', 'elementor-pro' ),
					'progressbar' => esc_html__( 'Progress', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-pagination-type-',
				'render_type' => 'template',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'speed',
			[
				'label' => esc_html__( 'Transition Duration', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 500,
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'autoplay',
			[
				'label' => esc_html__( 'Autoplay', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'separator' => 'before',
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'autoplay_speed',
			[
				'label' => esc_html__( 'Autoplay Speed', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 5000,
				'condition' => [
					'autoplay' => 'yes',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'loop',
			[
				'label' => esc_html__( 'Infinite Loop', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'pause_on_hover',
			[
				'label' => esc_html__( 'Pause on Hover', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'condition' => [
					'autoplay' => 'yes',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'pause_on_interaction',
			[
				'label' => esc_html__( 'Pause on Interaction', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'condition' => [
					'autoplay' => 'yes',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'image_size',
				'default' => 'full',
				'separator' => 'before',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_slides_style',
			[
				'label' => esc_html__( 'Slides', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$space_between_config = [
			'label' => esc_html__( 'Space Between', 'elementor-pro' ),
			'type' => Controls_Manager::SLIDER,
			'range' => [
				'px' => [
					'max' => 50,
				],
			],
			'render_type' => 'none',
			'frontend_available' => true,
		];

		// TODO: Once Core 3.4.0 is out, get the active devices using Breakpoints/Manager::get_active_devices_list().
		$active_breakpoint_instances = Plugin::elementor()->breakpoints->get_active_breakpoints();
		// Devices need to be ordered from largest to smallest.
		$active_devices = array_reverse( array_keys( $active_breakpoint_instances ) );

		// Add desktop in the correct position.
		if ( in_array( 'widescreen', $active_devices, true ) ) {
			$active_devices = array_merge( array_slice( $active_devices, 0, 1 ), [ 'desktop' ], array_slice( $active_devices, 1 ) );
		} else {
			$active_devices = array_merge( [ 'desktop' ], $active_devices );
		}

		foreach ( $active_devices as $active_device ) {
			$space_between_config[ $active_device . '_default' ] = [
				'size' => 10,
			];
		}

		$this->add_responsive_control(
			'space_between',
			$space_between_config
		);

		$this->add_control(
			'slide_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .swiper-slide' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'slide_border_size',
			[
				'label' => esc_html__( 'Border Size', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .swiper-slide' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'slide_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'range' => [
					'%' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .swiper-slide' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'slide_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .swiper-slide' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'slide_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-main-swiper .swiper-slide' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_navigation',
			[
				'label' => esc_html__( 'Navigation', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_arrows',
			[
				'label' => esc_html__( 'Arrows', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'none',
			]
		);

		$this->add_control(
			'arrows_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 20,
				],
				'range' => [
					'px' => [
						'min' => 10,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-swiper-button' => 'font-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'arrows_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-swiper-button' => 'color: {{VALUE}}',
					'{{WRAPPER}} .elementor-swiper-button svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_pagination',
			[
				'label' => esc_html__( 'Pagination', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'pagination!' => '',
				],
			]
		);

		$this->add_control(
			'pagination_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'outside',
				'options' => [
					'outside' => esc_html__( 'Outside', 'elementor-pro' ),
					'inside' => esc_html__( 'Inside', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-pagination-position-',
				'condition' => [
					'pagination!' => '',
				],
			]
		);

		$this->add_control(
			'pagination_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .swiper-pagination-bullet' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .swiper-container-horizontal .swiper-pagination-progressbar' => 'height: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .swiper-pagination-fraction' => 'font-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'pagination!' => '',
				],
			]
		);

		$this->add_control(
			'pagination_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .swiper-pagination-bullet-active, {{WRAPPER}} .swiper-pagination-progressbar-fill' => 'background-color: {{VALUE}}',
					'{{WRAPPER}} .swiper-pagination-fraction' => 'color: {{VALUE}}',
				],
				'condition' => [
					'pagination!' => '',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function print_slider( array $settings = null ) {
		if ( null === $settings ) {
			$settings = $this->get_settings_for_display();
		}

		$default_settings = [
			'container_class' => 'elementor-main-swiper',
			'video_play_icon' => true,
		];

		$settings = array_merge( $default_settings, $settings );

		$slides_count = count( $settings['slides'] );
		?>
		<div class="elementor-swiper">
			<div class="<?php echo esc_attr( $settings['container_class'] ); ?> swiper-container">
				<div class="swiper-wrapper">
					<?php
					foreach ( $settings['slides'] as $index => $slide ) :
						$this->slide_prints_count++;
						?>
						<div class="swiper-slide">
							<?php $this->print_slide( $slide, $settings, 'slide-' . $index . '-' . $this->slide_prints_count ); ?>
						</div>
					<?php endforeach; ?>
				</div>
				<?php if ( 1 < $slides_count ) : ?>
					<?php if ( $settings['pagination'] ) : ?>
						<div class="swiper-pagination"></div>
					<?php endif; ?>
					<?php if ( $settings['show_arrows'] ) : ?>
						<div class="elementor-swiper-button elementor-swiper-button-prev">
							<?php $this->render_swiper_button( 'previous' ); ?>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Previous', 'elementor-pro' ); ?></span>
						</div>
						<div class="elementor-swiper-button elementor-swiper-button-next">
							<?php $this->render_swiper_button( 'next' ); ?>
							<span class="elementor-screen-only"><?php echo esc_html__( 'Next', 'elementor-pro' ); ?></span>
						</div>
					<?php endif; ?>
				<?php endif; ?>
			</div>
		</div>
		<?php
	}

	protected function get_slide_image_url( $slide, array $settings ) {
		$image_url = Group_Control_Image_Size::get_attachment_image_src( $slide['image']['id'], 'image_size', $settings );

		if ( ! $image_url ) {
			$image_url = $slide['image']['url'];
		}

		return $image_url;
	}

	private function render_swiper_button( $type ) {
		$direction = 'next' === $type ? 'right' : 'left';

		if ( is_rtl() ) {
			$direction = 'right' === $direction ? 'left' : 'right';
		}

		$icon_value = 'eicon-chevron-' . $direction;

		Icons_Manager::render_icon( [
			'library' => 'eicons',
			'value' => $icon_value,
		], [ 'aria-hidden' => 'true' ] );
	}
}
PK!��>ySS1modules/carousel/widgets/testimonial-carousel.phpnu�[���<?php
namespace ElementorPro\Modules\Carousel\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Repeater;
use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Testimonial_Carousel extends Base {

	public function get_name() {
		return 'testimonial-carousel';
	}

	public function get_title() {
		return esc_html__( 'Testimonial Carousel', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-testimonial-carousel';
	}

	public function get_keywords() {
		return [ 'testimonial', 'carousel', 'image' ];
	}

	protected function register_controls() {
		parent::register_controls();

		$this->start_injection( [
			'of' => 'slides',
		] );

		$this->add_control(
			'skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'bubble' => esc_html__( 'Bubble', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-testimonial--skin-',
				'render_type' => 'template',
			]
		);

		$this->add_control(
			'layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'image_inline',
				'options' => [
					'image_inline' => esc_html__( 'Image Inline', 'elementor-pro' ),
					'image_stacked' => esc_html__( 'Image Stacked', 'elementor-pro' ),
					'image_above' => esc_html__( 'Image Above', 'elementor-pro' ),
					'image_left' => esc_html__( 'Image Left', 'elementor-pro' ),
					'image_right' => esc_html__( 'Image Right', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-testimonial--layout-',
				'render_type' => 'template',
			]
		);

		$this->add_responsive_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'center',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-testimonial--align-',
			]
		);

		$this->end_injection();

		$this->start_controls_section(
			'section_skin_style',
			[
				'label' => esc_html__( 'Bubble', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'skin' => 'bubble',
				],
			]
		);

		$this->add_control(
			'background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'alpha' => false,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content, {{WRAPPER}} .elementor-testimonial__content:after' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'text_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'default' => [
					'top' => '20',
					'bottom' => '20',
					'left' => '20',
					'right' => '20',
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,
					{{WRAPPER}}.elementor-testimonial--layout-image_right .elementor-testimonial__footer' => 'padding-top: {{TOP}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,
					{{WRAPPER}}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer,
					{{WRAPPER}}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer' => 'padding: 0 {{RIGHT}}{{UNIT}} 0 {{LEFT}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'border',
			[
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content, {{WRAPPER}} .elementor-testimonial__content:after' => 'border-style: solid',
				],
			]
		);

		$this->add_control(
			'border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#000',
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content' => 'border-color: {{VALUE}}',
					'{{WRAPPER}} .elementor-testimonial__content:after' => 'border-color: transparent {{VALUE}} {{VALUE}} transparent',
				],
				'condition' => [
					'border' => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__content, {{WRAPPER}} .elementor-testimonial__content:after' => 'border-width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after,
					{{WRAPPER}}.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after' => 'margin-top: -{{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_above .elementor-testimonial__content:after' => 'margin-bottom: -{{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'border' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_injection( [
			'at' => 'before',
			'of' => 'section_navigation',
		] );

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'content_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer,
					{{WRAPPER}}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer' => 'margin-top: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_above .elementor-testimonial__footer' => 'margin-bottom: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_left .elementor-testimonial__footer' => 'padding-right: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_right .elementor-testimonial__footer' => 'padding-left: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'content_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__text' => 'color: {{VALUE}}',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__text',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'name_title_style',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'name_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__name' => 'color: {{VALUE}}',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'name_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__name',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'heading_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'title_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__title' => 'color: {{VALUE}}',
				],
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'selector' => '{{WRAPPER}} .elementor-testimonial__title',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'image_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_right .elementor-testimonial__content:after' => 'top: calc( {{text_padding.TOP}}{{text_padding.UNIT}} + ({{SIZE}}{{UNIT}} / 2) - 8px );',

					'body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_stacked:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-right) .elementor-testimonial__content:after,
					 body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_inline:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-right) .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after' => 'left: calc( {{text_padding.LEFT}}{{text_padding.UNIT}} + ({{SIZE}}{{UNIT}} / 2) - 8px ); right:auto;',

					'body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_stacked:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-left) .elementor-testimonial__content:after,
					 body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_inline:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-left) .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after' => 'right: calc( {{text_padding.RIGHT}}{{text_padding.UNIT}} + ({{SIZE}}{{UNIT}} / 2) - 8px ); left:auto;',

					'body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_above:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-right) .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after' => 'left: calc( {{text_padding.LEFT}}{{text_padding.UNIT}} + ({{SIZE}}{{UNIT}} / 2) - 8px ); right:auto;',

					'body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_above:not(.elementor-testimonial--align-center):not(.elementor-testimonial--align-left) .elementor-testimonial__content:after,
					 {{WRAPPER}}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after' => 'right: calc( {{text_padding.RIGHT}}{{text_padding.UNIT}} + ({{SIZE}}{{UNIT}} / 2) - 8px ); left:auto;',
				],
			]
		);

		$this->add_responsive_control(
			'image_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite,
					 body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite,
					 body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite,
					 body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_above .elementor-testimonial__image + cite' => 'margin-left: {{SIZE}}{{UNIT}}; margin-right: 0;',

					'body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite,
					 body:not(.rtl) {{WRAPPER}}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite,
					 body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite,
					 body.rtl {{WRAPPER}}.elementor-testimonial--layout-image_above .elementor-testimonial__image + cite' => 'margin-right: {{SIZE}}{{UNIT}}; margin-left:0;',

					'{{WRAPPER}}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image + cite,
					 {{WRAPPER}}.elementor-testimonial--layout-image_left .elementor-testimonial__image + cite,
					 {{WRAPPER}}.elementor-testimonial--layout-image_right .elementor-testimonial__image + cite' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'image_border',
			[
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'border-style: solid',
				],
			]
		);

		$this->add_control(
			'image_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#000',
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'image_border' => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'image_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'border-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'image_border' => 'yes',
				],
			]
		);

		$this->add_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-testimonial__image img' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->end_injection();

		$this->update_responsive_control(
			'width',
			[
				'selectors' => [
					'{{WRAPPER}}.elementor-arrows-yes .elementor-main-swiper' => 'width: calc( {{SIZE}}{{UNIT}} - 40px )',
					'{{WRAPPER}} .elementor-main-swiper' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->update_responsive_control(
			'slides_per_view',
			[
				'condition' => null,
			]
		);

		$this->update_responsive_control(
			'slides_to_scroll',
			[
				'condition' => null,
			]
		);

		$this->remove_control( 'effect' );
		$this->remove_responsive_control( 'height' );
		$this->remove_control( 'pagination_position' );
	}

	protected function add_repeater_controls( Repeater $repeater ) {
		$repeater->add_control(
			'content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'name',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'John Doe', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'CEO', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);
	}

	protected function get_repeater_defaults() {
		$placeholder_image_src = Utils::get_placeholder_image_src();

		return [
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => esc_html__( 'CEO', 'elementor-pro' ),
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => esc_html__( 'CEO', 'elementor-pro' ),
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
			[
				'content' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ),
				'name' => esc_html__( 'John Doe', 'elementor-pro' ),
				'title' => esc_html__( 'CEO', 'elementor-pro' ),
				'image' => [
					'url' => $placeholder_image_src,
				],
			],
		];
	}

	private function print_cite( $slide, $location ) {
		if ( empty( $slide['name'] ) && empty( $slide['title'] ) ) {
			return '';
		}

		$skin = $this->get_settings( 'skin' );
		$layout = 'bubble' === $skin ? 'image_inline' : $this->get_settings( 'layout' );
		$locations_outside = [ 'image_above', 'image_right', 'image_left' ];
		$locations_inside = [ 'image_inline', 'image_stacked' ];

		$print_outside = ( 'outside' === $location && in_array( $layout, $locations_outside ) );
		$print_inside = ( 'inside' === $location && in_array( $layout, $locations_inside ) );

		$html = '';
		if ( $print_outside || $print_inside ) {
			$html = '<cite class="elementor-testimonial__cite">';
			if ( ! empty( $slide['name'] ) ) {
				$html .= '<span class="elementor-testimonial__name">' . $slide['name'] . '</span>';
			}
			if ( ! empty( $slide['title'] ) ) {
				$html .= '<span class="elementor-testimonial__title">' . $slide['title'] . '</span>';
			}
			$html .= '</cite>';
		}

		// PHPCS - the main text of a widget should not be escaped.
		echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	protected function print_slide( array $slide, array $settings, $element_key ) {
		$this->add_render_attribute( $element_key . '-testimonial', [
			'class' => 'elementor-testimonial',
		] );

		if ( ! empty( $slide['image']['url'] ) ) {
			$this->add_render_attribute( $element_key . '-image', [
				'src' => $this->get_slide_image_url( $slide, $settings ),
				'alt' => ! empty( $slide['name'] ) ? $slide['name'] : '',
			] );
		}

		?>
		<div <?php $this->print_render_attribute_string( $element_key . '-testimonial' ); ?>>
			<?php if ( $slide['content'] ) : ?>
				<div class="elementor-testimonial__content">
					<div class="elementor-testimonial__text">
						<?php // PHPCS - the main text of a widget should not be escaped.
						echo $slide['content']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					</div>
					<?php $this->print_cite( $slide, 'outside' ); ?>
				</div>
			<?php endif; ?>
			<div class="elementor-testimonial__footer">
				<?php if ( $slide['image']['url'] ) : ?>
					<div class="elementor-testimonial__image">
						<img <?php $this->print_render_attribute_string( $element_key . '-image' ); ?>>
					</div>
				<?php endif; ?>
				<?php $this->print_cite( $slide, 'inside' ); ?>
			</div>
		</div>
		<?php
	}

	protected function render() {
		$this->print_slider();
	}

	public function get_group_name() {
		return 'carousel';
	}
}
PK!�0y�jjmodules/carousel/module.phpnu�[���<?php
namespace ElementorPro\Modules\Carousel;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Media_Carousel',
			'Testimonial_Carousel',
			'Reviews',
		];
	}

	public function get_name() {
		return 'carousel';
	}
}
PK![�Һ�
�
modules/motion-fx/module.phpnu�[���<?php

namespace ElementorPro\Modules\MotionFX;

use Elementor\Element_Base;
use Elementor\Element_Column;
use Elementor\Element_Section;
use ElementorPro\Base\Module_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		$this->add_actions();
	}
	/**
	 * Get module name.
	 *
	 * Retrieve the module name.
	 *
	 * @since  2.5.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'motion-fx';
	}

	public function register_controls_group() {
		Plugin::elementor()->controls_manager->add_group_control( Controls_Group::get_type(), new Controls_Group() );
	}

	public function add_controls_group_to_element( Element_Base $element ) {
		$exclude = [];

		$selector = '{{WRAPPER}}';

		if ( $element instanceof Element_Section ) {
			$exclude[] = 'motion_fx_mouse';
		} elseif ( $element instanceof Element_Column ) {
			$selector .= ' > .elementor-widget-wrap';
		} else {
			$selector .= ' > .elementor-widget-container';
		}

		$element->add_group_control(
			Controls_Group::get_type(),
			[
				'name' => 'motion_fx',
				'selector' => $selector,
				'exclude' => $exclude,
			]
		);
	}

	public function add_controls_group_to_element_background( Element_Base $element ) {
		$element->start_injection( [
			'of' => 'background_bg_width_mobile',
		] );

		$element->add_group_control(
			Controls_Group::get_type(),
			[
				'name' => 'background_motion_fx',
				'exclude' => [
					'rotateZ_effect',
					'tilt_effect',
					'transform_origin_x',
					'transform_origin_y',
				],
			]
		);

		$options = [
			'separator' => 'before',
			'conditions' => [
				'relation' => 'or',
				'terms' => [
					[
						'name' => 'background_background',
						'value' => 'classic',
					],
					[
						'terms' => [
							[
								'name' => 'background_background',
								'value' => 'gradient',
							],
							[
								'name' => 'background_color',
								'operator' => '!==',
								'value' => '',
							],
							[
								'name' => 'background_color_b',
								'operator' => '!==',
								'value' => '',
							],
						],
					],
				],
			],
		];

		$element->update_control( 'background_motion_fx_motion_fx_scrolling', $options );

		$element->update_control( 'background_motion_fx_motion_fx_mouse', $options );

		$element->end_injection();
	}

	public function localize_settings( array $settings ) {
		$settings['i18n']['motion_effects'] = esc_html__( 'Motion Effects', 'elementor-pro' );

		return $settings;
	}

	private function add_actions() {
		add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls_group' ] );

		add_action( 'elementor/element/section/section_effects/after_section_start', [ $this, 'add_controls_group_to_element' ] );
		add_action( 'elementor/element/column/section_effects/after_section_start', [ $this, 'add_controls_group_to_element' ] );
		add_action( 'elementor/element/common/section_effects/after_section_start', [ $this, 'add_controls_group_to_element' ] );

		add_action( 'elementor/element/section/section_background/before_section_end', [ $this, 'add_controls_group_to_element_background' ] );
		add_action( 'elementor/element/column/section_style/before_section_end', [ $this, 'add_controls_group_to_element_background' ] );

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
	}
}
PK!SZ)W::$modules/motion-fx/controls-group.phpnu�[���<?php

namespace ElementorPro\Modules\MotionFX;

use Elementor\Controls_Manager;
use Elementor\Group_Control_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Controls_Group extends Group_Control_Base {

	protected static $fields;

	/**
	 * Get group control type.
	 *
	 * Retrieve the group control type.
	 *
	 * @since  2.5.0
	 * @access public
	 * @static
	 */
	public static function get_type() {
		return 'motion_fx';
	}

	/**
	 * Init fields.
	 *
	 * Initialize group control fields.
	 *
	 * @since  2.5.0
	 * @access protected
	 */
	protected function init_fields() {
		$fields = [
			'motion_fx_scrolling' => [
				'label' => esc_html__( 'Scrolling Effects', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'render_type' => 'ui',
				'frontend_available' => true,
			],
		];

		$this->prepare_effects( 'scrolling', $fields );

		$transform_origin_conditions = [
			'terms' => [
				[
					'name' => 'motion_fx_scrolling',
					'value' => 'yes',
				],
				[
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'rotateZ_effect',
							'value' => 'yes',
						],
						[
							'name' => 'scale_effect',
							'value' => 'yes',
						],
					],
				],
			],
		];

		if ( version_compare( ELEMENTOR_VERSION, '3.5.0', '>=' ) ) {

			$css_transform_controls = [
				[
					'name' => 'transform_x_anchor_point',
					'value' => '',
				],
				[
					'name' => 'transform_y_anchor_point',
					'value' => '',
				],
			];

			$transform_origin_conditions['terms'] = array_merge( $transform_origin_conditions['terms'], $css_transform_controls );
		}

		$fields['transform_origin_x'] = [
			'label' => esc_html__( 'X Anchor Point', 'elementor-pro' ),
			'type' => Controls_Manager::CHOOSE,
			'default' => 'center',
			'options' => [
				'left' => [
					'title' => esc_html__( 'Left', 'elementor-pro' ),
					'icon' => 'eicon-h-align-left',
				],
				'center' => [
					'title' => esc_html__( 'Center', 'elementor-pro' ),
					'icon' => 'eicon-h-align-center',
				],
				'right' => [
					'title' => esc_html__( 'Right', 'elementor-pro' ),
					'icon' => 'eicon-h-align-right',
				],
			],
			'conditions' => $transform_origin_conditions,
			'toggle' => false,
			'render_type' => 'ui',
			'selectors' => [
				'{{SELECTOR}}' => '--e-transform-origin-x: {{VALUE}}',
			],
		];

		$fields['transform_origin_y'] = [
			'label' => esc_html__( 'Y Anchor Point', 'elementor-pro' ),
			'type' => Controls_Manager::CHOOSE,
			'default' => 'center',
			'options' => [
				'top' => [
					'title' => esc_html__( 'Top', 'elementor-pro' ),
					'icon' => 'eicon-v-align-top',
				],
				'center' => [
					'title' => esc_html__( 'Center', 'elementor-pro' ),
					'icon' => 'eicon-v-align-middle',
				],
				'bottom' => [
					'title' => esc_html__( 'Bottom', 'elementor-pro' ),
					'icon' => 'eicon-v-align-bottom',
				],
			],
			'conditions' => $transform_origin_conditions,
			'selectors' => [
				'{{SELECTOR}}' => '--e-transform-origin-y: {{VALUE}}',
			],
			'toggle' => false,
		];

		// TODO: Once Core 3.4.0 is out, get the active devices using Breakpoints/Manager::get_active_devices_list().
		$active_breakpoint_instances = Plugin::elementor()->breakpoints->get_active_breakpoints();
		// Devices need to be ordered from largest to smallest.
		$active_devices = array_reverse( array_keys( $active_breakpoint_instances ) );

		// Add desktop in the correct position.
		if ( in_array( 'widescreen', $active_devices, true ) ) {
			$active_devices = array_merge( array_slice( $active_devices, 0, 1 ), [ 'desktop' ], array_slice( $active_devices, 1 ) );
		} else {
			$active_devices = array_merge( [ 'desktop' ], $active_devices );
		}

		$devices_options = [];

		foreach ( $active_devices as $device_key ) {
			$device_label = 'desktop' === $device_key ? esc_html__( 'Desktop', 'elementor-pro' ) : $active_breakpoint_instances[ $device_key ]->get_label();

			$devices_options[ $device_key ] = $device_label;
		}

		$fields['devices'] = [
			'label' => esc_html__( 'Apply Effects On', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT2,
			'multiple' => true,
			'label_block' => true,
			'default' => $active_devices,
			'options' => $devices_options,
			'condition' => [
				'motion_fx_scrolling' => 'yes',
			],
			'render_type' => 'none',
			'frontend_available' => true,
		];

		$fields['range'] = [
			'label' => esc_html__( 'Effects Relative To', 'elementor-pro' ),
			'type' => Controls_Manager::SELECT,
			'options' => [
				'' => esc_html__( 'Default', 'elementor-pro' ),
				'viewport' => esc_html__( 'Viewport', 'elementor-pro' ),
				'page' => esc_html__( 'Entire Page', 'elementor-pro' ),
			],
			'condition' => [
				'motion_fx_scrolling' => 'yes',
			],
			'render_type' => 'none',
			'frontend_available' => true,
		];

		$fields['motion_fx_mouse'] = [
			'label' => esc_html__( 'Mouse Effects', 'elementor-pro' ),
			'type' => Controls_Manager::SWITCHER,
			'label_off' => esc_html__( 'Off', 'elementor-pro' ),
			'label_on' => esc_html__( 'On', 'elementor-pro' ),
			'separator' => 'before',
			'render_type' => 'none',
			'frontend_available' => true,
		];

		$this->prepare_effects( 'mouse', $fields );

		return $fields;
	}

	protected function get_default_options() {
		return [
			'popover' => false,
		];
	}

	private function get_scrolling_effects() {
		return [
			'translateY' => [
				'label' => esc_html__( 'Vertical Scroll', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'options' => [
							'' => esc_html__( 'Up', 'elementor-pro' ),
							'negative' => esc_html__( 'Down', 'elementor-pro' ),
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 4,
						],
						'range' => [
							'px' => [
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
					'affectedRange' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 0,
								'end' => 100,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
			'translateX' => [
				'label' => esc_html__( 'Horizontal Scroll', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'options' => [
							'' => esc_html__( 'To Left', 'elementor-pro' ),
							'negative' => esc_html__( 'To Right', 'elementor-pro' ),
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 4,
						],
						'range' => [
							'px' => [
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
					'affectedRange' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 0,
								'end' => 100,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
			'opacity' => [
				'label' => esc_html__( 'Transparency', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'default' => 'out-in',
						'options' => [
							'out-in' => 'Fade In',
							'in-out' => 'Fade Out',
							'in-out-in' => 'Fade Out In',
							'out-in-out' => 'Fade In Out',
						],
					],
					'level' => [
						'label' => esc_html__( 'Level', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 10,
						],
						'range' => [
							'px' => [
								'min' => 1,
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
					'range' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 20,
								'end' => 80,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
			'blur' => [
				'label' => esc_html__( 'Blur', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'default' => 'out-in',
						'options' => [
							'out-in' => 'Fade In',
							'in-out' => 'Fade Out',
							'in-out-in' => 'Fade Out In',
							'out-in-out' => 'Fade In Out',
						],
					],
					'level' => [
						'label' => esc_html__( 'Level', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 7,
						],
						'range' => [
							'px' => [
								'min' => 1,
								'max' => 15,
							],
						],
					],
					'range' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 20,
								'end' => 80,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
			'rotateZ' => [
				'label' => esc_html__( 'Rotate', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'options' => [
							'' => esc_html__( 'To Left', 'elementor-pro' ),
							'negative' => esc_html__( 'To Right', 'elementor-pro' ),
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 1,
						],
						'range' => [
							'px' => [
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
					'affectedRange' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 0,
								'end' => 100,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
			'scale' => [
				'label' => esc_html__( 'Scale', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'default' => 'out-in',
						'options' => [
							'out-in' => 'Scale Up',
							'in-out' => 'Scale Down',
							'in-out-in' => 'Scale Down Up',
							'out-in-out' => 'Scale Up Down',
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 4,
						],
						'range' => [
							'px' => [
								'min' => -10,
								'max' => 10,
							],
						],
					],
					'range' => [
						'label' => esc_html__( 'Viewport', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'sizes' => [
								'start' => 20,
								'end' => 80,
							],
							'unit' => '%',
						],
						'labels' => [
							__( 'Bottom', 'elementor-pro' ),
							__( 'Top', 'elementor-pro' ),
						],
						'scales' => 1,
						'handles' => 'range',
					],
				],
			],
		];
	}

	private function get_mouse_effects() {
		return [
			'mouseTrack' => [
				'label' => esc_html__( 'Mouse Track', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'default' => '',
						'options' => [
							'' => esc_html__( 'Opposite', 'elementor-pro' ),
							'negative' => esc_html__( 'Direct', 'elementor-pro' ),
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 1,
						],
						'range' => [
							'px' => [
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
				],
			],
			'tilt' => [
				'label' => esc_html__( '3D Tilt', 'elementor-pro' ),
				'fields' => [
					'direction' => [
						'label' => esc_html__( 'Direction', 'elementor-pro' ),
						'type' => Controls_Manager::SELECT,
						'default' => '',
						'options' => [
							'' => esc_html__( 'Direct', 'elementor-pro' ),
							'negative' => esc_html__( 'Opposite', 'elementor-pro' ),
						],
					],
					'speed' => [
						'label' => esc_html__( 'Speed', 'elementor-pro' ),
						'type' => Controls_Manager::SLIDER,
						'default' => [
							'size' => 4,
						],
						'range' => [
							'px' => [
								'max' => 10,
								'step' => 0.1,
							],
						],
					],
				],
			],
		];
	}

	private function prepare_effects( $effects_group, array &$fields ) {
		$method_name = "get_{$effects_group}_effects";

		$effects = $this->$method_name();

		foreach ( $effects as $effect_name => $effect_args ) {
			$args = [
				'label' => $effect_args['label'],
				'type' => Controls_Manager::POPOVER_TOGGLE,
				'condition' => [
					'motion_fx_' . $effects_group => 'yes',
				],
				'render_type' => 'none',
				'frontend_available' => true,
			];

			if ( ! empty( $effect_args['separator'] ) ) {
				$args['separator'] = $effect_args['separator'];
			}

			$fields[ $effect_name . '_effect' ] = $args;

			$effect_fields = $effect_args['fields'];

			$first_field = & $effect_fields[ key( $effect_fields ) ];

			$first_field['popover']['start'] = true;

			end( $effect_fields );

			$last_field = & $effect_fields[ key( $effect_fields ) ];

			$last_field['popover']['end'] = true;

			reset( $effect_fields );

			foreach ( $effect_fields as $field_name => $field ) {
				$field = array_merge( $field, [
					'condition' => [
						'motion_fx_' . $effects_group => 'yes',
						$effect_name . '_effect' => 'yes',
					],
					'render_type' => 'none',
					'frontend_available' => true,
				] );

				$fields[ $effect_name . '_' . $field_name ] = $field;
			}
		}
	}
}
PK!�+���E�E'modules/countdown/widgets/countdown.phpnu�[���<?php
namespace ElementorPro\Modules\Countdown\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Countdown extends Base_Widget {

	public function get_name() {
		return 'countdown';
	}

	public function get_title() {
		return esc_html__( 'Countdown', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-countdown';
	}

	public function get_keywords() {
		return [ 'countdown', 'number', 'timer', 'time', 'date', 'evergreen' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_countdown',
			[
				'label' => esc_html__( 'Countdown', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'countdown_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'due_date' => esc_html__( 'Due Date', 'elementor-pro' ),
					'evergreen' => esc_html__( 'Evergreen Timer', 'elementor-pro' ),
				],
				'default' => 'due_date',
			]
		);

		$this->add_control(
			'due_date',
			[
				'label' => esc_html__( 'Due Date', 'elementor-pro' ),
				'type' => Controls_Manager::DATE_TIME,
				'default' => gmdate( 'Y-m-d H:i', strtotime( '+1 month' ) + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ),
				/* translators: %s: Time zone. */
				'description' => sprintf( esc_html__( 'Date set according to your timezone: %s.', 'elementor-pro' ), Utils::get_timezone_string() ),
				'condition' => [
					'countdown_type' => 'due_date',
				],
			]
		);

		$this->add_control(
			'evergreen_counter_hours',
			[
				'label' => esc_html__( 'Hours', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 47,
				'placeholder' => esc_html__( 'Hours', 'elementor-pro' ),
				'condition' => [
					'countdown_type' => 'evergreen',
				],
			]
		);

		$this->add_control(
			'evergreen_counter_minutes',
			[
				'label' => esc_html__( 'Minutes', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 59,
				'placeholder' => esc_html__( 'Minutes', 'elementor-pro' ),
				'condition' => [
					'countdown_type' => 'evergreen',
				],
			]
		);

		$this->add_control(
			'label_display',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'block' => esc_html__( 'Block', 'elementor-pro' ),
					'inline' => esc_html__( 'Inline', 'elementor-pro' ),
				],
				'default' => 'block',
				'prefix_class' => 'elementor-countdown--label-',
			]
		);

		$this->add_control(
			'show_days',
			[
				'label' => esc_html__( 'Days', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_hours',
			[
				'label' => esc_html__( 'Hours', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_minutes',
			[
				'label' => esc_html__( 'Minutes', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_seconds',
			[
				'label' => esc_html__( 'Seconds', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_labels',
			[
				'label' => esc_html__( 'Show Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'custom_labels',
			[
				'label' => esc_html__( 'Custom Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'show_labels!' => '',
				],
			]
		);

		$this->add_control(
			'label_days',
			[
				'label' => esc_html__( 'Days', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Days', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Days', 'elementor-pro' ),
				'condition' => [
					'show_labels!' => '',
					'custom_labels!' => '',
					'show_days' => 'yes',
				],
			]
		);

		$this->add_control(
			'label_hours',
			[
				'label' => esc_html__( 'Hours', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Hours', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Hours', 'elementor-pro' ),
				'condition' => [
					'show_labels!' => '',
					'custom_labels!' => '',
					'show_hours' => 'yes',
				],
			]
		);

		$this->add_control(
			'label_minutes',
			[
				'label' => esc_html__( 'Minutes', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Minutes', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Minutes', 'elementor-pro' ),
				'condition' => [
					'show_labels!' => '',
					'custom_labels!' => '',
					'show_minutes' => 'yes',
				],
			]
		);

		$this->add_control(
			'label_seconds',
			[
				'label' => esc_html__( 'Seconds', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Seconds', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Seconds', 'elementor-pro' ),
				'condition' => [
					'show_labels!' => '',
					'custom_labels!' => '',
					'show_seconds' => 'yes',
				],
			]
		);

		$this->add_control(
			'expire_actions',
			[
				'label' => esc_html__( 'Actions After Expire', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'options' => [
					'redirect' => esc_html__( 'Redirect', 'elementor-pro' ),
					'hide' => esc_html__( 'Hide', 'elementor-pro' ),
					'message' => esc_html__( 'Show Message', 'elementor-pro' ),
				],
				'label_block' => true,
				'separator' => 'before',
				'render_type' => 'none',
				'multiple' => true,
			]
		);

		$this->add_control(
			'message_after_expire',
			[
				'label' => esc_html__( 'Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'separator' => 'before',
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'expire_actions' => 'message',
				],
			]
		);

		$this->add_control(
			'expire_redirect_url',
			[
				'label' => esc_html__( 'Redirect URL', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'separator' => 'before',
				'options' => false,
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'expire_actions' => 'redirect',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_box_style',
			[
				'label' => esc_html__( 'Boxes', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'container_width',
			[
				'label' => esc_html__( 'Container Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'unit' => '%',
					'size' => 100,
				],
				'tablet_default' => [
					'unit' => '%',
				],
				'mobile_default' => [
					'unit' => '%',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 2000,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ '%', 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-wrapper' => 'max-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'box_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-item' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'box_border',
				'selector' => '{{WRAPPER}} .elementor-countdown-item',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'box_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'box_spacing',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-countdown-item:not(:first-of-type)' => 'margin-left: calc( {{SIZE}}{{UNIT}}/2 );',
					'body:not(.rtl) {{WRAPPER}} .elementor-countdown-item:not(:last-of-type)' => 'margin-right: calc( {{SIZE}}{{UNIT}}/2 );',
					'body.rtl {{WRAPPER}} .elementor-countdown-item:not(:first-of-type)' => 'margin-right: calc( {{SIZE}}{{UNIT}}/2 );',
					'body.rtl {{WRAPPER}} .elementor-countdown-item:not(:last-of-type)' => 'margin-left: calc( {{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_responsive_control(
			'box_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_digits',
			[
				'label' => esc_html__( 'Digits', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'digits_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-digits' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'digits_typography',
				'selector' => '{{WRAPPER}} .elementor-countdown-digits',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'heading_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'label_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-label' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'label_typography',
				'selector' => '{{WRAPPER}} .elementor-countdown-label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_expire_message_style',
			[
				'label' => esc_html__( 'Message', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'expire_actions' => 'message',
				],
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-expire--message' => 'text-align: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-expire--message' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-countdown-expire--message',
			]
		);

		$this->add_responsive_control(
			'message_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-countdown-expire--message' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function get_strftime( $instance ) {
		$string = '';
		if ( $instance['show_days'] ) {
			$string .= $this->render_countdown_item( $instance, 'label_days', 'elementor-countdown-days' );
		}
		if ( $instance['show_hours'] ) {
			$string .= $this->render_countdown_item( $instance, 'label_hours', 'elementor-countdown-hours' );
		}
		if ( $instance['show_minutes'] ) {
			$string .= $this->render_countdown_item( $instance, 'label_minutes', 'elementor-countdown-minutes' );
		}
		if ( $instance['show_seconds'] ) {
			$string .= $this->render_countdown_item( $instance, 'label_seconds', 'elementor-countdown-seconds' );
		}

		return $string;
	}

	private $_default_countdown_labels;

	private function init_default_countdown_labels() {
		$this->_default_countdown_labels = [
			'label_months' => esc_html__( 'Months', 'elementor-pro' ),
			'label_weeks' => esc_html__( 'Weeks', 'elementor-pro' ),
			'label_days' => esc_html__( 'Days', 'elementor-pro' ),
			'label_hours' => esc_html__( 'Hours', 'elementor-pro' ),
			'label_minutes' => esc_html__( 'Minutes', 'elementor-pro' ),
			'label_seconds' => esc_html__( 'Seconds', 'elementor-pro' ),
		];
	}

	public function get_default_countdown_labels() {
		if ( ! $this->_default_countdown_labels ) {
			$this->init_default_countdown_labels();
		}

		return $this->_default_countdown_labels;
	}

	private function render_countdown_item( $instance, $label, $part_class ) {
		$string = '<div class="elementor-countdown-item"><span class="elementor-countdown-digits ' . $part_class . '"></span>';

		if ( $instance['show_labels'] ) {
			$default_labels = $this->get_default_countdown_labels();
			$label = ( $instance['custom_labels'] ) ? $instance[ $label ] : $default_labels[ $label ];
			$string .= ' <span class="elementor-countdown-label">' . $label . '</span>';
		}

		$string .= '</div>';

		return $string;
	}

	private function get_evergreen_interval( $instance ) {
		$hours = empty( $instance['evergreen_counter_hours'] ) ? 0 : ( $instance['evergreen_counter_hours'] * HOUR_IN_SECONDS );
		$minutes = empty( $instance['evergreen_counter_minutes'] ) ? 0 : ( $instance['evergreen_counter_minutes'] * MINUTE_IN_SECONDS );
		$evergreen_interval = $hours + $minutes;

		return $evergreen_interval;
	}

	private function get_actions( $settings ) {
		if ( empty( $settings['expire_actions'] ) || ! is_array( $settings['expire_actions'] ) ) {
			return false;
		}

		$actions = [];

		foreach ( $settings['expire_actions'] as $action ) {
			$action_to_run = [ 'type' => $action ];
			if ( 'redirect' === $action ) {
				if ( empty( $settings['expire_redirect_url']['url'] ) ) {
					continue;
				}
				$action_to_run['redirect_url'] = $settings['expire_redirect_url']['url'];
			}
			$actions[] = $action_to_run;
		}

		return $actions;
	}

	protected function render() {
		$instance = $this->get_settings_for_display();
		$due_date = $instance['due_date'];
		$string = $this->get_strftime( $instance );

		if ( 'evergreen' === $instance['countdown_type'] ) {
			$this->add_render_attribute( 'div', 'data-evergreen-interval', $this->get_evergreen_interval( $instance ) );
		} else {
			// Handle timezone ( we need to set GMT time )
			$gmt = get_gmt_from_date( $due_date . ':00' );
			$due_date = strtotime( $gmt );
		}

		$actions = false;

		if ( ! Plugin::elementor()->editor->is_edit_mode() ) {
			$actions = $this->get_actions( $instance );
		}

		if ( $actions ) {
			$this->add_render_attribute( 'div', 'data-expire-actions', wp_json_encode( $actions ) );
		}

		$this->add_render_attribute( 'div', [
			'class' => 'elementor-countdown-wrapper',
			'data-date' => $due_date,
		] );

		?>
		<div <?php $this->print_render_attribute_string( 'div' ); ?>>
			<?php echo wp_kses_post( $string ); ?>
		</div>
		<?php
		if ( $actions && is_array( $actions ) ) {
			foreach ( $actions as $action ) {
				if ( 'message' !== $action['type'] ) {
					continue;
				} ?>
				<div class="elementor-countdown-expire--message">
					<?php // PHPCS - the main text of a widget should not be escaped.
					echo $instance['message_after_expire']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				</div>
				<?php
			}
		}
	}
}
PK!f��>>modules/countdown/module.phpnu�[���<?php
namespace ElementorPro\Modules\Countdown;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Countdown',
		];
	}

	public function get_name() {
		return 'countdown';
	}
}
PK!Z��JJ$modules/compatibility-tag/module.phpnu�[���<?php
namespace ElementorPro\Modules\CompatibilityTag;

use ElementorPro\Base\Module_Base;
use Elementor\Modules\CompatibilityTag\Base_Module as Compatibility_Tag_Base_Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {
	const MODULE_NAME = 'compatibility-tag-pro';

	/**
	 * Checks if elementor core compatibility module is exists before
	 * activate this module
	 *
	 * @return bool
	 */
	public static function is_active() {
		return class_exists( Compatibility_Tag_Base_Module::class );
	}

	/**
	 * @return string
	 */
	public function get_name() {
		return self::MODULE_NAME;
	}

	/**
	 * Module constructor.
	 */
	public function __construct() {
		parent::__construct();

		$this->add_component( 'compatibility-tag-pro-handler', new Compatibility_Tag_Component() );
	}
}
PK!�K�2��9modules/compatibility-tag/compatibility-tag-component.phpnu�[���<?php
namespace ElementorPro\Modules\CompatibilityTag;

use Elementor\Modules\CompatibilityTag\Base_Module as Compatibility_Tag_Base_Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Compatibility_Tag_Component extends Compatibility_Tag_Base_Module {
	/**
	 * This is the header used by extensions to show testing.
	 *
	 * @var string
	 */
	const PLUGIN_VERSION_TESTED_HEADER = 'Elementor Pro tested up to';

	/**
	 * @return string
	 */
	protected function get_plugin_header() {
		return self::PLUGIN_VERSION_TESTED_HEADER;
	}

	/**
	 * @return string
	 */
	protected function get_plugin_label() {
		return esc_html__( 'Elementor Pro', 'elementor-pro' );
	}

	/**
	 * @return string
	 */
	protected function get_plugin_name() {
		return ELEMENTOR_PRO_PLUGIN_BASE;
	}

	/**
	 * @return string
	 */
	protected function get_plugin_version() {
		return ELEMENTOR_PRO_VERSION;
	}
}
PK!K�?6��$modules/library/widgets/template.phpnu�[���<?php
namespace ElementorPro\Modules\Library\Widgets;

use Elementor\Core\Base\Document;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\QueryControl\Module as QueryControlModule;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Template extends Base_Widget {

	public function get_name() {
		return 'template';
	}

	public function get_title() {
		return esc_html__( 'Template', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-document-file';
	}

	public function get_keywords() {
		return [ 'elementor', 'template', 'library', 'block', 'page' ];
	}

	public function is_reload_preview_required() {
		return false;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_template',
			[
				'label' => esc_html__( 'Template', 'elementor-pro' ),
			]
		);

		$document_types = Plugin::elementor()->documents->get_document_types( [
			'show_in_library' => true,
		] );

		$this->add_control(
			'template_id',
			[
				'label' => esc_html__( 'Choose Template', 'elementor-pro' ),
				'type' => QueryControlModule::QUERY_CONTROL_ID,
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryControlModule::QUERY_OBJECT_LIBRARY_TEMPLATE,
					'query' => [
						'meta_query' => [
							[
								'key' => Document::TYPE_META_KEY,
								'value' => array_keys( $document_types ),
								'compare' => 'IN',
							],
						],
					],
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$template_id = $this->get_settings( 'template_id' );

		if ( 'publish' !== get_post_status( $template_id ) ) {
			return;
		}

		?>
		<div class="elementor-template">
			<?php
				// PHPCS - should not be escaped.
				echo Plugin::elementor()->frontend->get_builder_content_for_display( $template_id ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
			?>
		</div>
		<?php
	}

	public function render_plain_content() {}
}
PK!�!q�modules/library/module.phpnu�[���<?php
namespace ElementorPro\Modules\Library;

use Elementor\Core\Base\Document;
use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\Library\Classes\Shortcode;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Template',
		];
	}

	public function __construct() {
		parent::__construct();

		$this->add_filters();
		$this->add_actions();

		new Shortcode();
	}

	public function get_name() {
		return 'library';
	}

	public function register_wp_widgets() {
		register_widget( 'ElementorPro\Modules\Library\WP_Widgets\Elementor_Library' );
	}

	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'home_url' => home_url(),
				'edit_template' => esc_html__( 'Edit Template', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public function add_to_results_for_library_widget_templates( $val, $post, $request ) {
		$document = Plugin::elementor()->documents->get( $post->ID );
		if ( $document ) {
			return true;
		}

		return false;
	}

	public function format_post_title_for_library_widget_templates( $post_title, $post_id, $request ) {
		$document = Plugin::elementor()->documents->get( $post_id );
		return $post_title . ' (' . $document->get_post_type_title() . ')';
	}

	public function add_actions() {
		add_action( 'widgets_init', [ $this, 'register_wp_widgets' ] );
	}

	/**
	 * @deprecated 2.6.0 No longer used by internal code. See Autocomplete documentation in Query-Control Module.
	 * @param array $results
	 * @param array $data
	 *
	 * @return array
	 */
	public function get_autocomplete_for_library_widget_templates( array $results, array $data ) {
		$document_types = Plugin::elementor()->documents->get_document_types( [
			'show_in_library' => true,
		] );

		$query_params = [
			's' => $data['q'],
			'post_type' => Source_Local::CPT,
			'posts_per_page' => -1,
			'orderby' => 'meta_value',
			'order' => 'ASC',
			'meta_query' => [
				[
					'key' => Document::TYPE_META_KEY,
					'value' => array_keys( $document_types ),
					'compare' => 'IN',
				],
			],
		];

		$query = new \WP_Query( $query_params );

		$results = [];

		foreach ( $query->posts as $post ) {
			$document = Plugin::elementor()->documents->get( $post->ID );
			if ( $document ) {
				$results[] = [
					'id' => $post->ID,
					'text' => esc_html( $post->post_title ) . ' (' . $document->get_post_type_title() . ')',
				];
			}
		}

		return $results;
	}

	/**
	 * @deprecated 2.6.0 No longer used by internal code. See Autocomplete documentation in Query-Control Module.
	 * @param $results
	 * @param $request
	 *
	 * @return mixed
	 */
	public function get_value_title_for_library_widget_templates( $results, $request ) {
		$ids = (array) $request['id'];

		$query = new \WP_Query(
			[
				'post_type' => Source_Local::CPT,
				'post__in' => $ids,
				'posts_per_page' => -1,
			]
		);

		foreach ( $query->posts as $post ) {
			$document = Plugin::elementor()->documents->get( $post->ID );
			if ( $document ) {
				$results[ $post->ID ] = esc_html( $post->post_title ) . ' (' . $document->get_post_type_title() . ')';
			}
		}

		return $results;
	}

	public function add_filters() {
		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
		add_filter( 'elementor_pro/admin/localize_settings', [ $this, 'localize_settings' ] ); // For WordPress Widgets and Customizer
		add_filter( 'elementor/widgets/black_list', function( $black_list ) {
			$black_list[] = 'ElementorPro\Modules\Library\WP_Widgets\Elementor_Library';

			return $black_list;
		} );
	}

	public static function get_templates() {
		return Plugin::elementor()->templates_manager->get_source( 'local' )->get_items();
	}

	public static function empty_templates_message() {
		return '<div id="elementor-widget-template-empty-templates">
				<div class="elementor-widget-template-empty-templates-icon"><i class="eicon-nerd" aria-hidden="true"></i></div>
				<div class="elementor-widget-template-empty-templates-title">' . esc_html__( 'You Haven’t Saved Templates Yet.', 'elementor-pro' ) . '</div>
				<div class="elementor-widget-template-empty-templates-footer">' . esc_html__( 'Want to learn more about Elementor library?', 'elementor-pro' ) . ' <a class="elementor-widget-template-empty-templates-footer-url" href="https://go.elementor.com/docs-library/" target="_blank">' . esc_html__( 'Click Here', 'elementor-pro' ) . '</a>
				</div>
				</div>';
	}
}
PK!��#0modules/library/wp-widgets/elementor-library.phpnu�[���<?php
namespace ElementorPro\Modules\Library\WP_Widgets;

use Elementor\Core\Base\Document;
use ElementorPro\Modules\Library\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Elementor_Library extends \WP_Widget {

	private $sidebar_id;

	public function __construct() {
		parent::__construct(
			'elementor-library',
			esc_html__( 'Elementor Library', 'elementor-pro' ),
			[
				'description' => esc_html__( 'Embed your saved elements.', 'elementor-pro' ),
			]
		);
	}

	/**
	 * @param array $args
	 * @param array $instance
	 */
	public function widget( $args, $instance ) {
		// PHPCS - Theme arg
		echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

		if ( ! empty( $instance['title'] ) ) {
			/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
			$title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
			// PHPCS - Theme arg
			echo $args['before_title'] . esc_html( $title ) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		if ( ! empty( $instance['template_id'] ) && 'publish' === get_post_status( $instance['template_id'] ) ) {
			$this->sidebar_id = $args['id'];

			add_filter( 'elementor/frontend/builder_content_data', [ $this, 'filter_content_data' ] );

			// PHPCS - the main content
			echo Plugin::elementor()->frontend->get_builder_content_for_display( $instance['template_id'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

			remove_filter( 'elementor/frontend/builder_content_data', [ $this, 'filter_content_data' ] );

			unset( $this->sidebar_id );
		}

		// PHPCS - Theme arg
		echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	/**
	 * Avoid nesting a sidebar within a template that will appear in the sidebar itself
	 *
	 * @param array $data
	 *
	 * @return mixed
	 */
	public function filter_content_data( $data ) {
		if ( ! empty( $data ) ) {
			$data = Plugin::elementor()->db->iterate_data( $data, function( $element ) {
				if ( 'widget' === $element['elType'] && 'sidebar' === $element['widgetType'] && $this->sidebar_id === $element['settings']['sidebar'] ) {
					$element['settings']['sidebar'] = null;
				}

				return $element;
			} );
		}

		return $data;
	}

	/**
	 * @param array $instance
	 *
	 * @return void
	 */
	public function form( $instance ) {
		$default = [
			'title' => '',
			'template_id' => '',
		];

		$instance = array_merge( $default, $instance );

		$templates = Module::get_templates();

		if ( ! $templates ) {
			// PHPCS - the method empty_templates_message is safe.
			echo Module::empty_templates_message(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped

			return;
		}
		?>
		<p>
			<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_attr_e( 'Title', 'elementor-pro' ); ?>:</label>
			<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>">
		</p>

		<p>
			<label for="<?php echo esc_attr( $this->get_field_id( 'template_id' ) ); ?>"><?php esc_attr_e( 'Choose Template', 'elementor-pro' ); ?>:</label>
			<select class="widefat elementor-widget-template-select" id="<?php echo esc_attr( $this->get_field_id( 'template_id' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'template_id' ) ); ?>">
				<option value="">— <?php echo esc_html__( 'Select', 'elementor-pro' ); ?> —</option>
				<?php
				foreach ( $templates as $template ) :
					?>
					<option
						value="<?php echo esc_html( $template['template_id'] ); ?>"
						<?php selected( $template['template_id'], $instance['template_id'] ); ?>
						data-type="<?php echo esc_attr( $template['type'] ); ?>"
					>
						<?php echo esc_html( $template['title'] ); ?> (<?php echo esc_html( $template['type'] ); ?>)
					</option>
				<?php endforeach; ?>
			</select>
			<?php
			$style = ' style="display:none"';

			$template_type = get_post_meta( $instance['template_id'], Document::TYPE_META_KEY, true );

			// 'widget' is editable only from an Elementor page
			if ( 'page' === $template_type ) {
				$style = '';
			}
			?>
			<a
				target="_blank"
				class="elementor-edit-template"<?php echo $style; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				href="<?php echo esc_url( add_query_arg( 'elementor', '', get_permalink( $instance['template_id'] ) ) ); ?>"
			>
				<i class="eicon-pencil"></i> <?php echo esc_html__( 'Edit Template', 'elementor-pro' ); ?>
			</a>
		</p>
		<?php
	}

	/**
	 *
	 * @param array $new_instance
	 * @param array $old_instance
	 *
	 * @return array
	 */
	public function update( $new_instance, $old_instance ) {
		$instance = [];
		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
		$instance['template_id'] = $new_instance['template_id'];

		return $instance;
	}
}
PK!��M��%modules/library/classes/shortcode.phpnu�[���<?php
namespace ElementorPro\Modules\Library\Classes;

use Elementor\TemplateLibrary\Source_Local;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Shortcode {

	const SHORTCODE = 'elementor-template';

	public function __construct() {
		$this->add_actions();
	}

	public function admin_columns_headers( $defaults ) {
		$defaults['shortcode'] = esc_html__( 'Shortcode', 'elementor-pro' );

		return $defaults;
	}

	public function admin_columns_content( $column_name, $post_id ) {
		if ( 'shortcode' === $column_name ) {
			printf(
				'<input class="elementor-shortcode-input" type="text" readonly onfocus="this.select()" value="%s" />',
				// %s = shortcode, %d = post_id
				esc_attr( sprintf( '[%s id="%d"]', self::SHORTCODE, $post_id ) )
			);
		}
	}

	public function shortcode( $attributes = [] ) {
		if ( empty( $attributes['id'] ) ) {
			return '';
		}

		$include_css = false;

		if ( isset( $attributes['css'] ) && 'false' !== $attributes['css'] ) {
			$include_css = (bool) $attributes['css'];
		}

		return Plugin::elementor()->frontend->get_builder_content_for_display( $attributes['id'], $include_css );
	}

	private function add_actions() {
		if ( is_admin() ) {
			add_action( 'manage_' . Source_Local::CPT . '_posts_columns', [ $this, 'admin_columns_headers' ] );
			add_action( 'manage_' . Source_Local::CPT . '_posts_custom_column', [ $this, 'admin_columns_content' ], 10, 2 );
		}

		add_shortcode( self::SHORTCODE, [ $this, 'shortcode' ] );
	}
}
PK!T뢯MMmodules/pricing/module.phpnu�[���<?php
namespace ElementorPro\Modules\Pricing;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_name() {
		return 'pricing';
	}

	public function get_widgets() {
		return [
			'Price_List',
			'Price_Table',
		];
	}
}
PK!��a��B�B&modules/pricing/widgets/price-list.phpnu�[���<?php
namespace ElementorPro\Modules\Pricing\Widgets;

use Elementor\Utils;
use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Image_Size;
use Elementor\Group_Control_Typography;
use Elementor\Repeater;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Price_List extends Base_Widget {

	public function get_name() {
		return 'price-list';
	}

	public function get_title() {
		return esc_html__( 'Price List', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-price-list';
	}

	public function get_keywords() {
		return [ 'pricing', 'list', 'product', 'image', 'menu' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_list',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'price',
			[
				'label' => esc_html__( 'Price', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'label_block' => 'true',
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'item_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => '',
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'image',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'default' => [],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$repeater->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'default' => [ 'url' => '#' ],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'price_list',
			[
				'label' => esc_html__( 'List Items', 'elementor-pro' ),
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'title' => esc_html__( 'First item on the list', 'elementor-pro' ),
						'item_description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'price' => '$20',
						'link' => [ 'url' => '#' ],
					],
					[
						'title' => esc_html__( 'Second item on the list', 'elementor-pro' ),
						'item_description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'price' => '$9',
						'link' => [ 'url' => '#' ],
					],
					[
						'title' => esc_html__( 'Third item on the list', 'elementor-pro' ),
						'item_description' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
						'price' => '$32',
						'link' => [ 'url' => '#' ],
					],
				],
				'title_field' => '{{{ title }}}',
			]
		);
		$this->end_controls_section();

		$this->start_controls_section(
			'section_list_style',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading__title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-header' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-price-list-header',
			]
		);

		$this->add_control(
			'price_title',
			[
				'label' => __( 'Price', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'price_color',
			[
				'label' => __( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-price' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'price_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'selector' => '{{WRAPPER}} .elementor-price-list-price',
			]
		);

		$this->add_control(
			'heading_item_description',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'description_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-description' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'description_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-price-list-description',
			]
		);

		$this->add_control(
			'heading_separator',
			[
				'label' => esc_html__( 'Separator', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'separator_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
				],
				'default' => 'dotted',
				'render_type' => 'template',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-separator' => 'border-bottom-style: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'separator_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 10,
					],
				],
				'condition' => [
					'separator_style!' => 'none',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-separator' => 'border-bottom-width: {{SIZE}}{{UNIT}}',
				],
				'default' => [
					'size' => 2,
				],
			]
		);

		$this->add_control(
			'separator_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-separator' => 'border-bottom-color: {{VALUE}};',
				],
				'condition' => [
					'separator_style!' => 'none',
				],
			]
		);

		$this->add_control(
			'separator_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 40,
					],
				],
				'condition' => [
					'separator_style!' => 'none',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-separator' => 'margin-left: {{SIZE}}{{UNIT}}; margin-right: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_group_control(
			Group_Control_Image_Size::get_type(),
			[
				'name' => 'image_size',
				'default' => 'thumbnail',
			]
		);

		$this->add_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-image img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'image_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'body.rtl {{WRAPPER}} .elementor-price-list-image' => 'padding-left: calc({{SIZE}}{{UNIT}}/2);',
					'body.rtl {{WRAPPER}} .elementor-price-list-image + .elementor-price-list-text' => 'padding-right: calc({{SIZE}}{{UNIT}}/2);',
					'body:not(.rtl) {{WRAPPER}} .elementor-price-list-image' => 'padding-right: calc({{SIZE}}{{UNIT}}/2);',
					'body:not(.rtl) {{WRAPPER}} .elementor-price-list-image + .elementor-price-list-text' => 'padding-left: calc({{SIZE}}{{UNIT}}/2);',
				],
				'default' => [
					'size' => 20,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_item_style',
			[
				'label' => esc_html__( 'Item', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
					'em' => [
						'max' => 5,
						'step' => 0.1,
					],
				],
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list li:not(:last-child)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
				],
				'default' => [
					'size' => 20,
				],
			]
		);

		$this->add_control(
			'vertical_align',
			[
				'label' => esc_html__( 'Vertical Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-list-item' => 'align-items: {{VALUE}};',
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'bottom' => 'flex-end',
				],
				'default' => 'top',
			]
		);

		$this->end_controls_section();
	}

	private function render_image( $item, $instance ) {
		$image_id = $item['image']['id'];
		$image_size = $instance['image_size_size'];
		if ( 'custom' === $image_size ) {
			$image_src = Group_Control_Image_Size::get_attachment_image_src( $image_id, 'image_size', $instance );
		} else {
			$image_src = wp_get_attachment_image_src( $image_id, $image_size );
			$image_src = $image_src[0];
		}

		return sprintf( '<img src="%s" alt="%s" />', $image_src, $item['title'] );
	}

	private function render_item_header( $item ) {
		$url = $item['link']['url'];

		$item_id = $item['_id'];

		if ( $url ) {
			$unique_link_id = 'item-link-' . $item_id;

			$this->add_render_attribute( $unique_link_id, 'class', 'elementor-price-list-item' );

			$this->add_link_attributes( $unique_link_id, $item['link'] );

			return '<li><a ' . $this->get_render_attribute_string( $unique_link_id ) . '>';
		} else {
			return '<li class="elementor-price-list-item">';
		}
	}

	private function render_item_footer( $item ) {
		if ( $item['link']['url'] ) {
			return '</a></li>';
		} else {
			return '</li>';
		}
	}

	protected function render() {
		$settings = $this->get_settings_for_display(); ?>

		<ul class="elementor-price-list">

		<?php foreach ( $settings['price_list'] as $index => $item ) : ?>
			<?php if ( ! empty( $item['title'] ) || ! empty( $item['price'] ) || ! empty( $item['item_description'] ) ) :
				$title_repeater_setting_key = $this->get_repeater_setting_key( 'title', 'price_list', $index );
				$description_repeater_setting_key = $this->get_repeater_setting_key( 'item_description', 'price_list', $index );
				$this->add_inline_editing_attributes( $title_repeater_setting_key );
				$this->add_inline_editing_attributes( $description_repeater_setting_key );
				$this->add_render_attribute( $title_repeater_setting_key, 'class', 'elementor-price-list-title' );
				$this->add_render_attribute( $description_repeater_setting_key, 'class', 'elementor-price-list-description' );
				?>
				<?php
					// PHPCS - the method render_item_header is safe.
					echo $this->render_item_header( $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
				<?php if ( ! empty( $item['image']['url'] ) ) : ?>
					<div class="elementor-price-list-image">
					<?php
						// PHPCS - the method render_image is safe.
						echo $this->render_image( $item, $settings ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					?>
				</div>
				<?php endif; ?>

				<div class="elementor-price-list-text">
				<?php if ( ! empty( $item['title'] ) || ! empty( $item['price'] ) ) : ?>
					<div class="elementor-price-list-header">
					<?php if ( ! empty( $item['title'] ) ) : ?>
						<span <?php $this->print_render_attribute_string( $title_repeater_setting_key ); ?>>
							<?php $this->print_unescaped_setting( 'title', 'price_list', $index ); ?>
						</span>
					<?php endif; ?>
						<?php if ( 'none' != $settings['separator_style'] ) : ?>
							<span class="elementor-price-list-separator"></span>
						<?php endif; ?>
						<?php if ( ! empty( $item['price'] ) ) : ?>
							<span class="elementor-price-list-price"><?php $this->print_unescaped_setting( 'price', 'price_list', $index ); ?></span>
						<?php endif; ?>
				</div>
				<?php endif; ?>
					<?php if ( ! empty( $item['item_description'] ) ) : ?>
						<p <?php $this->print_render_attribute_string( $description_repeater_setting_key ); ?>>
							<?php $this->print_unescaped_setting( 'item_description', 'price_list', $index ); ?>
						</p>
					<?php endif; ?>
			</div>
				<?php
					// PHPCS - the method render_item_footer is safe.
					echo $this->render_item_footer( $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
			<?php endif; ?>
		<?php endforeach; ?>

		</ul>

		<?php
	}

	/**
	 * Render Price List widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<ul class="elementor-price-list">
			<#
				for ( var i in settings.price_list ) {
					var item = settings.price_list[i],
						item_open_wrap = '<li class="elementor-price-list-item">',
						item_close_wrap = '</li>';
					if ( item.link.url ) {
						item_open_wrap = '<li><a href="' + item.link.url + '" class="elementor-price-list-item">';
						item_close_wrap = '</a></li>';
					}

					if ( ! _.isEmpty( item.title ) || ! _.isEmpty( item.price ) || ! _.isEmpty( item.description ) || ! _.isEmpty( item.image ) ) { #>

					{{{ item_open_wrap }}}
					<# if ( item.image && item.image.id ) {

						var image = {
							id: item.image.id,
							url: item.image.url,
							size: settings.image_size_size,
							dimension: settings.image_size_custom_dimension,
							model: view.getEditModel()
						};

						var image_url = elementor.imagesManager.getImageUrl( image );

						if ( image_url ) { #>
							<div class="elementor-price-list-image"><img src="{{ image_url }}" alt="{{ item.title }}"></div>
						<# } #>

					<# } #>


					<# if ( ! _.isEmpty( item.title ) || ! _.isEmpty( item.price ) || ! _.isEmpty( item.item_description ) ) { #>
						<div class="elementor-price-list-text">

							<# if ( ! _.isEmpty( item.title ) || ! _.isEmpty( item.price ) ) { #>
								<div class="elementor-price-list-header">

								<# if ( ! _.isEmpty( item.title ) ) { #>
									<span class="elementor-price-list-title">{{{ item.title }}}</span>
								<# } #>

								<# if ( 'none' != settings.separator_style ) { #>
									<span class="elementor-price-list-separator"></span>
								<# } #>

								<# if ( ! _.isEmpty( item.price ) ) { #>
									<span class="elementor-price-list-price">{{{ item.price }}}</span>
								<# } #>

								</div>
							<# } #>

							<# if ( ! _.isEmpty( item.item_description ) ) { #>
								<p class="elementor-price-list-description">{{{ item.item_description }}}</p>
							<# } #>

						</div>
					<# } #>

					{{{ item_close_wrap }}}

					<# } #>
			 <# } #>
		</ul>
		<?php
	}

	public function get_group_name() {
		return 'pricing';
	}
}
PK!AG�*8�8�'modules/pricing/widgets/price-table.phpnu�[���<?php
namespace ElementorPro\Modules\Pricing\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Price_Table extends Base_Widget {

	public function get_name() {
		return 'price-table';
	}

	public function get_title() {
		return esc_html__( 'Price Table', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-price-table';
	}

	public function get_keywords() {
		return [ 'pricing', 'table', 'product', 'image', 'plan', 'button' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_header',
			[
				'label' => esc_html__( 'Header', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Enter your title', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'sub_heading',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Enter your description', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'heading_tag',
			[
				'label' => esc_html__( 'Title HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
				],
				'default' => 'h3',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_pricing',
			[
				'label' => esc_html__( 'Pricing', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'currency_symbol',
			[
				'label' => esc_html__( 'Currency Symbol', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'dollar' => '&#36; ' . _x( 'Dollar', 'Currency', 'elementor-pro' ),
					'euro' => '&#128; ' . _x( 'Euro', 'Currency', 'elementor-pro' ),
					'baht' => '&#3647; ' . _x( 'Baht', 'Currency', 'elementor-pro' ),
					'franc' => '&#8355; ' . _x( 'Franc', 'Currency', 'elementor-pro' ),
					'guilder' => '&fnof; ' . _x( 'Guilder', 'Currency', 'elementor-pro' ),
					'krona' => 'kr ' . _x( 'Krona', 'Currency', 'elementor-pro' ),
					'lira' => '&#8356; ' . _x( 'Lira', 'Currency', 'elementor-pro' ),
					'peseta' => '&#8359 ' . _x( 'Peseta', 'Currency', 'elementor-pro' ),
					'peso' => '&#8369; ' . _x( 'Peso', 'Currency', 'elementor-pro' ),
					'pound' => '&#163; ' . _x( 'Pound Sterling', 'Currency', 'elementor-pro' ),
					'real' => 'R$ ' . _x( 'Real', 'Currency', 'elementor-pro' ),
					'ruble' => '&#8381; ' . _x( 'Ruble', 'Currency', 'elementor-pro' ),
					'rupee' => '&#8360; ' . _x( 'Rupee', 'Currency', 'elementor-pro' ),
					'indian_rupee' => '&#8377; ' . _x( 'Rupee (Indian)', 'Currency', 'elementor-pro' ),
					'shekel' => '&#8362; ' . _x( 'Shekel', 'Currency', 'elementor-pro' ),
					'yen' => '&#165; ' . _x( 'Yen/Yuan', 'Currency', 'elementor-pro' ),
					'won' => '&#8361; ' . _x( 'Won', 'Currency', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'dollar',
			]
		);

		$this->add_control(
			'currency_symbol_custom',
			[
				'label' => esc_html__( 'Custom Symbol', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'currency_symbol' => 'custom',
				],
			]
		);

		$this->add_control(
			'price',
			[
				'label' => esc_html__( 'Price', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '39.99',
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'currency_format',
			[
				'label' => esc_html__( 'Currency Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => '1,234.56 (Default)',
					',' => '1.234,56',
				],
			]
		);

		$this->add_control(
			'sale',
			[
				'label' => esc_html__( 'Sale', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'default' => '',
			]
		);

		$this->add_control(
			'original_price',
			[
				'label' => esc_html__( 'Original Price', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => '59',
				'condition' => [
					'sale' => 'yes',
				],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'period',
			[
				'label' => esc_html__( 'Period', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Monthly', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_features',
			[
				'label' => esc_html__( 'Features', 'elementor-pro' ),
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'item_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'List Item', 'elementor-pro' ),
			]
		);

		$default_icon = [
			'value' => 'far fa-check-circle',
			'library' => 'fa-regular',
		];

		$repeater->add_control(
			'selected_item_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'item_icon',
				'default' => $default_icon,
			]
		);

		$repeater->add_control(
			'item_icon_color',
			[
				'label' => esc_html__( 'Icon Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} i' => 'color: {{VALUE}}',
					'{{WRAPPER}} {{CURRENT_ITEM}} svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'features_list',
			[
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'item_text' => esc_html__( 'List Item #1', 'elementor-pro' ),
						'selected_item_icon' => $default_icon,
					],
					[
						'item_text' => esc_html__( 'List Item #2', 'elementor-pro' ),
						'selected_item_icon' => $default_icon,
					],
					[
						'item_text' => esc_html__( 'List Item #3', 'elementor-pro' ),
						'selected_item_icon' => $default_icon,
					],
				],
				'title_field' => '{{{ item_text }}}',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_footer',
			[
				'label' => esc_html__( 'Footer', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Button Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Click Here', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'default' => [
					'url' => '#',
				],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'footer_additional_info',
			[
				'label' => esc_html__( 'Additional Info', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'This is text element', 'elementor-pro' ),
				'rows' => 3,
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_ribbon',
			[
				'label' => esc_html__( 'Ribbon', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_ribbon',
			[
				'label' => esc_html__( 'Show', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'ribbon_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Popular', 'elementor-pro' ),
				'condition' => [
					'show_ribbon' => 'yes',
				],
				'dynamic' => [
					'active' => true,
				],
			]
		);

		$this->add_control(
			'ribbon_horizontal_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'condition' => [
					'show_ribbon' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_header_style',
			[
				'label' => esc_html__( 'Header', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_control(
			'header_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-price-table-header-background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'header_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__header' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_heading_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__heading' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'heading_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__heading',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'heading_sub_heading_style',
			[
				'label' => esc_html__( 'Sub Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sub_heading_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__subheading' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sub_heading_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__subheading',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_pricing_element_style',
			[
				'label' => esc_html__( 'Pricing', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_control(
			'pricing_element_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__price' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'pricing_element_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__price' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__currency, {{WRAPPER}} .elementor-price-table__integer-part, {{WRAPPER}} .elementor-price-table__fractional-part' => 'color: {{VALUE}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'price_typography',
				// Targeting also the .elementor-price-table class in order to get a higher specificity from the inline CSS.
				'selector' => '{{WRAPPER}} .elementor-price-table .elementor-price-table__price',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'heading_currency_style',
			[
				'label' => esc_html__( 'Currency Symbol', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'currency_symbol!' => '',
				],
			]
		);

		$this->add_control(
			'currency_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__price > .elementor-price-table__currency' => 'font-size: calc({{SIZE}}em/100)',
				],
				'condition' => [
					'currency_symbol!' => '',
				],
			]
		);

		$this->add_control(
			'currency_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'before',
				'options' => [
					'before' => [
						'title' => esc_html__( 'Before', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'after' => [
						'title' => esc_html__( 'After', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
			]
		);

		$this->add_control(
			'currency_vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'default' => 'top',
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__currency' => 'align-self: {{VALUE}}',
				],
				'condition' => [
					'currency_symbol!' => '',
				],
			]
		);

		$this->add_control(
			'fractional_part_style',
			[
				'label' => esc_html__( 'Fractional Part', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'fractional-part_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__fractional-part' => 'font-size: calc({{SIZE}}em/100)',
				],
			]
		);

		$this->add_control(
			'fractional_part_vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'default' => 'top',
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__after-price' => 'justify-content: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'heading_original_price_style',
			[
				'label' => esc_html__( 'Original Price', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'sale' => 'yes',
					'original_price!' => '',
				],
			]
		);

		$this->add_control(
			'original_price_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__original-price' => 'color: {{VALUE}}',
				],
				'condition' => [
					'sale' => 'yes',
					'original_price!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'original_price_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__original-price',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
				'condition' => [
					'sale' => 'yes',
					'original_price!' => '',
				],
			]
		);

		$this->add_control(
			'original_price_vertical_position',
			[
				'label' => esc_html__( 'Vertical Position', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
					'bottom' => [
						'title' => esc_html__( 'Bottom', 'elementor-pro' ),
						'icon' => 'eicon-v-align-bottom',
					],
				],
				'selectors_dictionary' => [
					'top' => 'flex-start',
					'middle' => 'center',
					'bottom' => 'flex-end',
				],
				'default' => 'bottom',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__original-price' => 'align-self: {{VALUE}}',
				],
				'condition' => [
					'sale' => 'yes',
					'original_price!' => '',
				],
			]
		);

		$this->add_control(
			'heading_period_style',
			[
				'label' => esc_html__( 'Period', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'period!' => '',
				],
			]
		);

		$this->add_control(
			'period_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__period' => 'color: {{VALUE}}',
				],
				'condition' => [
					'period!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'period_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__period',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
				'condition' => [
					'period!' => '',
				],
			]
		);

		$this->add_control(
			'period_position',
			[
				'label' => esc_html__( 'Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'below' => esc_html__( 'Below', 'elementor-pro' ),
					'beside' => esc_html__( 'Beside', 'elementor-pro' ),
				],
				'default' => 'below',
				'condition' => [
					'period!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_features_list_style',
			[
				'label' => esc_html__( 'Features', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_control(
			'features_list_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'features_list_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'features_list_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list' => '--e-price-table-features-list-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'features_list_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__features-list li',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'features_list_alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list' => 'text-align: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'item_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'%' => [
						'min' => 25,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__feature-inner' => 'margin-left: calc((100% - {{SIZE}}%)/2); margin-right: calc((100% - {{SIZE}}%)/2)',
				],
			]
		);

		$this->add_control(
			'list_divider',
			[
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'divider_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
				],
				'default' => 'solid',
				'condition' => [
					'list_divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list li:before' => 'border-top-style: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ddd',
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => [
					'list_divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list li:before' => 'border-top-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 2,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 10,
					],
				],
				'condition' => [
					'list_divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list li:before' => 'border-top-width: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'divider_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'condition' => [
					'list_divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list li:before' => 'margin-left: calc((100% - {{SIZE}}%)/2); margin-right: calc((100% - {{SIZE}}%)/2)',
				],
			]
		);

		$this->add_control(
			'divider_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 15,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 50,
					],
				],
				'condition' => [
					'list_divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__features-list li:before' => 'margin-top: {{SIZE}}{{UNIT}}; margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_footer_style',
			[
				'label' => esc_html__( 'Footer', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
			]
		);

		$this->add_control(
			'footer_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__footer' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'footer_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__footer' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_footer_button',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'md',
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-price-table__button',
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-price-table__button',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
					'color' => [
						'global' => [
							'default' => Global_Colors::COLOR_ACCENT,
						],
					],
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(), [
				'name' => 'button_border',
				'selector' => '{{WRAPPER}} .elementor-price-table__button',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'button_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background_hover',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-price-table__button:hover',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__button:hover' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'heading_additional_info',
			[
				'label' => esc_html__( 'Additional Info', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'footer_additional_info!' => '',
				],
			]
		);

		$this->add_control(
			'additional_info_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__additional_info' => 'color: {{VALUE}}',
				],
				'condition' => [
					'footer_additional_info!' => '',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'additional_info_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__additional_info',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'condition' => [
					'footer_additional_info!' => '',
				],
			]
		);

		$this->add_control(
			'additional_info_margin',
			[
				'label' => esc_html__( 'Margin', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%', 'em' ],
				'default' => [
					'top' => 15,
					'right' => 30,
					'bottom' => 0,
					'left' => 30,
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__additional_info' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
				],
				'condition' => [
					'footer_additional_info!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_ribbon_style',
			[
				'label' => esc_html__( 'Ribbon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'show_label' => false,
				'condition' => [
					'show_ribbon' => 'yes',
				],
			]
		);

		$this->add_control(
			'ribbon_bg_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__ribbon-inner' => 'background-color: {{VALUE}}',
				],
			]
		);

		$ribbon_distance_transform = is_rtl() ? 'translateY(-50%) translateX({{SIZE}}{{UNIT}}) rotate(-45deg)' : 'translateY(-50%) translateX(-50%) translateX({{SIZE}}{{UNIT}}) rotate(-45deg)';

		$this->add_responsive_control(
			'ribbon_distance',
			[
				'label' => esc_html__( 'Distance', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__ribbon-inner' => 'margin-top: {{SIZE}}{{UNIT}}; transform: ' . $ribbon_distance_transform,
				],
			]
		);

		$this->add_control(
			'ribbon_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'separator' => 'before',
				'selectors' => [
					'{{WRAPPER}} .elementor-price-table__ribbon-inner' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'ribbon_typography',
				'selector' => '{{WRAPPER}} .elementor-price-table__ribbon-inner',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}} .elementor-price-table__ribbon-inner',
			]
		);

		$this->end_controls_section();
	}

	private function render_currency_symbol( $symbol, $location ) {
		$currency_position = $this->get_settings( 'currency_position' );
		$location_setting = ! empty( $currency_position ) ? $currency_position : 'before';
		if ( ! empty( $symbol ) && $location === $location_setting ) {
			echo '<span class="elementor-price-table__currency">' . esc_html( $symbol ) . '</span>';
		}
	}

	private function get_currency_symbol( $symbol_name ) {
		$symbols = [
			'dollar' => '&#36;',
			'euro' => '&#128;',
			'franc' => '&#8355;',
			'pound' => '&#163;',
			'ruble' => '&#8381;',
			'shekel' => '&#8362;',
			'baht' => '&#3647;',
			'yen' => '&#165;',
			'won' => '&#8361;',
			'guilder' => '&fnof;',
			'peso' => '&#8369;',
			'peseta' => '&#8359',
			'lira' => '&#8356;',
			'rupee' => '&#8360;',
			'indian_rupee' => '&#8377;',
			'real' => 'R$',
			'krona' => 'kr',
		];

		return isset( $symbols[ $symbol_name ] ) ? $symbols[ $symbol_name ] : '';
	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$symbol = '';

		if ( ! empty( $settings['currency_symbol'] ) ) {
			if ( 'custom' !== $settings['currency_symbol'] ) {
				$symbol = $this->get_currency_symbol( $settings['currency_symbol'] );
			} else {
				$symbol = $settings['currency_symbol_custom'];
			}
		}
		$currency_format = empty( $settings['currency_format'] ) ? '.' : $settings['currency_format'];
		$price = explode( $currency_format, $settings['price'] );
		$intpart = $price[0];
		$fraction = '';
		if ( 2 === count( $price ) ) {
			$fraction = $price[1];
		}

		$this->add_render_attribute( 'button_text', 'class', [
			'elementor-price-table__button',
			'elementor-button',
			'elementor-size-' . $settings['button_size'],
		] );

		if ( ! empty( $settings['link']['url'] ) ) {
			$this->add_link_attributes( 'button_text', $settings['link'] );
		}

		if ( ! empty( $settings['button_hover_animation'] ) ) {
			$this->add_render_attribute( 'button_text', 'class', 'elementor-animation-' . $settings['button_hover_animation'] );
		}

		$this->add_render_attribute( 'heading', 'class', 'elementor-price-table__heading' );
		$this->add_render_attribute( 'sub_heading', 'class', 'elementor-price-table__subheading' );
		$this->add_render_attribute( 'period', 'class', [ 'elementor-price-table__period', 'elementor-typo-excluded' ] );
		$this->add_render_attribute( 'footer_additional_info', 'class', 'elementor-price-table__additional_info' );
		$this->add_render_attribute( 'ribbon_title', 'class', 'elementor-price-table__ribbon-inner' );

		$this->add_inline_editing_attributes( 'heading', 'none' );
		$this->add_inline_editing_attributes( 'sub_heading', 'none' );
		$this->add_inline_editing_attributes( 'period', 'none' );
		$this->add_inline_editing_attributes( 'footer_additional_info' );
		$this->add_inline_editing_attributes( 'button_text' );
		$this->add_inline_editing_attributes( 'ribbon_title' );

		$period_position = $settings['period_position'];
		$period_element = '<span ' . $this->get_render_attribute_string( 'period' ) . '>' . $settings['period'] . '</span>';
		$heading_tag = Utils::validate_html_tag( $settings['heading_tag'] );

		$migration_allowed = Icons_Manager::is_migration_allowed();
		?>

		<div class="elementor-price-table">
			<?php if ( $settings['heading'] || $settings['sub_heading'] ) : ?>
				<div class="elementor-price-table__header">
					<?php if ( ! empty( $settings['heading'] ) ) : ?>
						<<?php Utils::print_validated_html_tag( $heading_tag ); ?> <?php $this->print_render_attribute_string( 'heading' ); ?>>
						<?php $this->print_unescaped_setting( 'heading' ); ?>
						</<?php Utils::print_validated_html_tag( $heading_tag ); ?>>
					<?php endif; ?>

					<?php if ( ! empty( $settings['sub_heading'] ) ) : ?>
						<span <?php $this->print_render_attribute_string( 'sub_heading' ); ?>>
							<?php $this->print_unescaped_setting( 'sub_heading' ); ?>
						</span>
					<?php endif; ?>
				</div>
			<?php endif; ?>

			<div class="elementor-price-table__price">
				<?php if ( 'yes' === $settings['sale'] && ! empty( $settings['original_price'] ) ) : ?>
					<div class="elementor-price-table__original-price elementor-typo-excluded">
						<?php
						$this->render_currency_symbol( $symbol, 'before' );
						$this->print_unescaped_setting( 'original_price' );
						$this->render_currency_symbol( $symbol, 'after' );
						?>
					</div>
				<?php endif; ?>
				<?php $this->render_currency_symbol( $symbol, 'before' ); ?>
				<?php if ( ! empty( $intpart ) || 0 <= $intpart ) : ?>
					<span class="elementor-price-table__integer-part">
						<?php
							// PHPCS - the main text of a widget should not be escaped.
							echo $intpart; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						?>
					</span>
				<?php endif; ?>

				<?php if ( '' !== $fraction || ( ! empty( $settings['period'] ) && 'beside' === $period_position ) ) : ?>
					<div class="elementor-price-table__after-price">
						<span class="elementor-price-table__fractional-part">
							<?php
								// PHPCS - the main text of a widget should not be escaped.
								echo $fraction; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							?>
						</span>

						<?php if ( ! empty( $settings['period'] ) && 'beside' === $period_position ) : ?>
							<?php
								// PHPCS - already escaped before
								echo $period_element; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							?>
						<?php endif; ?>
					</div>
				<?php endif; ?>

				<?php $this->render_currency_symbol( $symbol, 'after' ); ?>

				<?php if ( ! empty( $settings['period'] ) && 'below' === $period_position ) : ?>
					<?php
						// PHPCS - already escaped before
						echo $period_element; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					?>
				<?php endif; ?>
			</div>

			<?php if ( ! empty( $settings['features_list'] ) ) : ?>
				<ul class="elementor-price-table__features-list">
					<?php
					foreach ( $settings['features_list'] as $index => $item ) :
						$repeater_setting_key = $this->get_repeater_setting_key( 'item_text', 'features_list', $index );
						$this->add_inline_editing_attributes( $repeater_setting_key );

						$migrated = isset( $item['__fa4_migrated']['selected_item_icon'] );
						// add old default
						if ( ! isset( $item['item_icon'] ) && ! $migration_allowed ) {
							$item['item_icon'] = 'fa fa-check-circle';
						}
						$is_new = ! isset( $item['item_icon'] ) && $migration_allowed;
						?>
						<li class="elementor-repeater-item-<?php echo esc_attr( $item['_id'] ); ?>">
							<div class="elementor-price-table__feature-inner">
								<?php if ( ! empty( $item['item_icon'] ) || ! empty( $item['selected_item_icon'] ) ) :
									if ( $is_new || $migrated ) :
										Icons_Manager::render_icon( $item['selected_item_icon'], [ 'aria-hidden' => 'true' ] );
									else : ?>
										<i class="<?php echo esc_attr( $item['item_icon'] ); ?>" aria-hidden="true"></i>
										<?php
									endif;
								endif; ?>
								<?php if ( ! empty( $item['item_text'] ) ) : ?>
									<span <?php $this->print_render_attribute_string( $repeater_setting_key ); ?>>
										<?php $this->print_unescaped_setting( 'item_text', 'features_list', $index ); ?>
									</span>
									<?php
								else :
									echo '&nbsp;';
								endif;
								?>
							</div>
						</li>
					<?php endforeach; ?>
				</ul>
			<?php endif; ?>

			<?php if ( ! empty( $settings['button_text'] ) || ! empty( $settings['footer_additional_info'] ) ) : ?>
				<div class="elementor-price-table__footer">
					<?php if ( ! empty( $settings['button_text'] ) ) : ?>
						<a <?php $this->print_render_attribute_string( 'button_text' ); ?>>
							<?php $this->print_unescaped_setting( 'button_text' ); ?>
						</a>
					<?php endif; ?>

					<?php if ( ! empty( $settings['footer_additional_info'] ) ) : ?>
						<div <?php $this->print_render_attribute_string( 'footer_additional_info' ); ?>>
							<?php $this->print_unescaped_setting( 'footer_additional_info' ); ?>
						</div>
					<?php endif; ?>
				</div>
			<?php endif; ?>
		</div>

		<?php
		if ( 'yes' === $settings['show_ribbon'] && ! empty( $settings['ribbon_title'] ) ) :
			$this->add_render_attribute( 'ribbon-wrapper', 'class', 'elementor-price-table__ribbon' );

			if ( ! empty( $settings['ribbon_horizontal_position'] ) ) :
				$this->add_render_attribute( 'ribbon-wrapper', 'class', 'elementor-ribbon-' . $settings['ribbon_horizontal_position'] );
			endif;

			?>
			<div <?php $this->print_render_attribute_string( 'ribbon-wrapper' ); ?>>
				<div <?php $this->print_render_attribute_string( 'ribbon_title' ); ?>>
					<?php $this->print_unescaped_setting( 'ribbon_title' ); ?>
				</div>
			</div>
			<?php
		endif;
	}

	/**
	 * Render Price Table widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var symbols = {
				dollar: '&#36;',
				euro: '&#128;',
				franc: '&#8355;',
				pound: '&#163;',
				ruble: '&#8381;',
				shekel: '&#8362;',
				baht: '&#3647;',
				yen: '&#165;',
				won: '&#8361;',
				guilder: '&fnof;',
				peso: '&#8369;',
				peseta: '&#8359;',
				lira: '&#8356;',
				rupee: '&#8360;',
				indian_rupee: '&#8377;',
				real: 'R$',
				krona: 'kr'
			};

			var symbol = '',
				iconsHTML = {};

			if ( settings.currency_symbol ) {
				if ( 'custom' !== settings.currency_symbol ) {
					symbol = symbols[ settings.currency_symbol ] || '';
				} else {
					symbol = settings.currency_symbol_custom;
				}
			}

			var buttonClasses = 'elementor-price-table__button elementor-button elementor-size-' + settings.button_size;

			if ( settings.button_hover_animation ) {
				buttonClasses += ' elementor-animation-' + settings.button_hover_animation;
			}

		view.addRenderAttribute( 'heading', 'class', 'elementor-price-table__heading' );
		view.addRenderAttribute( 'sub_heading', 'class', 'elementor-price-table__subheading' );
		view.addRenderAttribute( 'period', 'class', ['elementor-price-table__period', 'elementor-typo-excluded'] );
		view.addRenderAttribute( 'footer_additional_info', 'class', 'elementor-price-table__additional_info'  );
		view.addRenderAttribute( 'button_text', 'class', buttonClasses  );
		view.addRenderAttribute( 'ribbon_title', 'class', 'elementor-price-table__ribbon-inner'  );

		view.addInlineEditingAttributes( 'heading', 'none' );
		view.addInlineEditingAttributes( 'sub_heading', 'none' );
		view.addInlineEditingAttributes( 'period', 'none' );
		view.addInlineEditingAttributes( 'footer_additional_info' );
		view.addInlineEditingAttributes( 'button_text' );
		view.addInlineEditingAttributes( 'ribbon_title' );

		var currencyFormat = settings.currency_format || '.',
			price = settings.price.split( currencyFormat ),
			intpart = price[0],
			fraction = price[1],

			periodElement = '<span ' + view.getRenderAttributeString( "period" ) + '>' + settings.period + '</span>';

		#>
		<div class="elementor-price-table">
			<# if ( settings.heading || settings.sub_heading ) { #>
				<div class="elementor-price-table__header">
					<# if ( settings.heading ) { #>
						<# var headingTag = elementorPro.validateHTMLTag( settings.heading_tag ) #>
						<{{ headingTag }} {{{ view.getRenderAttributeString( 'heading' ) }}}>{{{ settings.heading }}}</{{ headingTag }}>
					<# } #>
					<# if ( settings.sub_heading ) { #>
						<span {{{ view.getRenderAttributeString( 'sub_heading' ) }}}>{{{ settings.sub_heading }}}</span>
					<# } #>
				</div>
			<# } #>

			<div class="elementor-price-table__price">
				<# if ( settings.sale && settings.original_price ) { #>
					<div class="elementor-price-table__original-price elementor-typo-excluded">
						<# if ( ! _.isEmpty( symbol ) && ( 'before' == settings.currency_position || _.isEmpty( settings.currency_position ) ) ) { #>
							<span class="elementor-price-table__currency">{{{ symbol }}}</span>{{{ settings.original_price }}}
						<# } #>
						<#
						/* The duplicate usage of the original price setting in the "if blocks" is to avoid whitespace between the number and the symbol. */
						if ( _.isEmpty( symbol ) ) {
						#>
							{{{ settings.original_price }}}
						<# } #>
						<# if ( ! _.isEmpty( symbol ) && 'after' == settings.currency_position ) { #>
						{{{ settings.original_price }}}<span class="elementor-price-table__currency">{{{ symbol }}}</span>
						<# } #>
					</div>
				<# } #>

				<# if ( ! _.isEmpty( symbol ) && ( 'before' == settings.currency_position || _.isEmpty( settings.currency_position ) ) ) { #>
					<span class="elementor-price-table__currency elementor-currency--before">{{{ symbol }}}</span>
				<# } #>
				<# if ( intpart ) { #>
					<span class="elementor-price-table__integer-part">{{{ intpart }}}</span>
				<# } #>
				<div class="elementor-price-table__after-price">
					<# if ( fraction ) { #>
						<span class="elementor-price-table__fractional-part">{{{ fraction }}}</span>
					<# } #>
					<# if ( settings.period && 'beside' === settings.period_position ) { #>
						{{{ periodElement }}}
					<# } #>
				</div>

				<# if ( ! _.isEmpty( symbol ) && 'after' == settings.currency_position ) { #>
				<span class="elementor-price-table__currency elementor-currency--after">{{{ symbol }}}</span>
				<# } #>

				<# if ( settings.period && 'below' === settings.period_position ) { #>
					{{{ periodElement }}}
				<# } #>
			</div>

			<# if ( settings.features_list ) { #>
				<ul class="elementor-price-table__features-list">
				<# _.each( settings.features_list, function( item, index ) {

					var featureKey = view.getRepeaterSettingKey( 'item_text', 'features_list', index ),
						migrated = elementor.helpers.isIconMigrated( item, 'selected_item_icon' );

					view.addInlineEditingAttributes( featureKey ); #>

						<li class="elementor-repeater-item-{{ item._id }}">
							<div class="elementor-price-table__feature-inner">
								<# if ( item.item_icon  || item.selected_item_icon ) {
									iconsHTML[ index ] = elementor.helpers.renderIcon( view, item.selected_item_icon, { 'aria-hidden': 'true' }, 'i', 'object' );
									if ( ( ! item.item_icon || migrated ) && iconsHTML[ index ] && iconsHTML[ index ].rendered ) { #>
										{{{ iconsHTML[ index ].value }}}
									<# } else { #>
										<i class="{{ item.item_icon }}" aria-hidden="true"></i>
									<# }
								} #>
								<# if ( ! _.isEmpty( item.item_text.trim() ) ) { #>
									<span {{{ view.getRenderAttributeString( featureKey ) }}}>{{{ item.item_text }}}</span>
								<# } else { #>
									&nbsp;
								<# } #>
							</div>
						</li>
					<# } ); #>
				</ul>
			<# } #>

			<# if ( settings.button_text || settings.footer_additional_info ) { #>
				<div class="elementor-price-table__footer">
					<# if ( settings.button_text ) { #>
						<a href="#" {{{ view.getRenderAttributeString( 'button_text' ) }}}>{{{ settings.button_text }}}</a>
					<# } #>
					<# if ( settings.footer_additional_info ) { #>
						<p {{{ view.getRenderAttributeString( 'footer_additional_info' ) }}}>{{{ settings.footer_additional_info }}}</p>
					<# } #>
				</div>
			<# } #>
		</div>

		<# if ( 'yes' === settings.show_ribbon && settings.ribbon_title ) {
			var ribbonClasses = 'elementor-price-table__ribbon';
			if ( settings.ribbon_horizontal_position ) {
				ribbonClasses += ' elementor-ribbon-' + settings.ribbon_horizontal_position;
			} #>
			<div class="{{ ribbonClasses }}">
				<div {{{ view.getRenderAttributeString( 'ribbon_title' ) }}}>{{{ settings.ribbon_title }}}</div>
			</div>
		<# } #>
		<?php
	}

	public function get_group_name() {
		return 'pricing';
	}
}
PK!�pA�n�n,modules/theme-elements/widgets/post-info.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Info extends Base {

	public function get_name() {
		return 'post-info';
	}

	public function get_title() {
		return esc_html__( 'Post Info', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-post-info';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'post', 'info', 'date', 'time', 'author', 'taxonomy', 'comments', 'terms', 'avatar' ];
	}

	public function get_style_depends() {
		if ( Icons_Manager::is_migration_allowed() ) {
			return [
				'elementor-icons-fa-regular',
				'elementor-icons-fa-solid',
			];
		}

		return [];
	}

	public function get_inline_css_depends() {
		return [
			[
				'name' => 'icon-list',
				'is_core_dependency' => true,
			],
		];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_icon',
			[
				'label' => esc_html__( 'Meta Data', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'view',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'inline',
				'options' => [
					'traditional' => [
						'title' => esc_html__( 'Default', 'elementor-pro' ),
						'icon' => 'eicon-editor-list-ul',
					],
					'inline' => [
						'title' => esc_html__( 'Inline', 'elementor-pro' ),
						'icon' => 'eicon-ellipsis-h',
					],
				],
				'render_type' => 'template',
				'classes' => 'elementor-control-start-end',
			]
		);

		$repeater = new Repeater();

		$repeater->add_control(
			'type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'date',
				'options' => [
					'author' => esc_html__( 'Author', 'elementor-pro' ),
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'time' => esc_html__( 'Time', 'elementor-pro' ),
					'comments' => esc_html__( 'Comments', 'elementor-pro' ),
					'terms' => esc_html__( 'Terms', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
			]
		);

		$repeater->add_control(
			'date_format',
			[
				'label' => esc_html__( 'Date Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default' => 'Default',
					'0' => _x( 'March 6, 2018 (F j, Y)', 'Date Format', 'elementor-pro' ),
					'1' => '2018-03-06 (Y-m-d)',
					'2' => '03/06/2018 (m/d/Y)',
					'3' => '06/03/2018 (d/m/Y)',
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'condition' => [
					'type' => 'date',
				],
			]
		);

		$repeater->add_control(
			'custom_date_format',
			[
				'label' => esc_html__( 'Custom Date Format', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => 'F j, Y',
				'condition' => [
					'type' => 'date',
					'date_format' => 'custom',
				],
				'description' => sprintf(
					/* translators: %s: Allowed data letters (see: http://php.net/manual/en/function.date.php). */
					__( 'Use the letters: %s', 'elementor-pro' ),
					'l D d j S F m M n Y y'
				),
			]
		);

		$repeater->add_control(
			'time_format',
			[
				'label' => esc_html__( 'Time Format', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'default',
				'options' => [
					'default' => 'Default',
					'0' => '3:31 pm (g:i a)',
					'1' => '3:31 PM (g:i A)',
					'2' => '15:31 (H:i)',
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'condition' => [
					'type' => 'time',
				],
			]
		);
		$repeater->add_control(
			'custom_time_format',
			[
				'label' => esc_html__( 'Custom Time Format', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => 'g:i a',
				'placeholder' => 'g:i a',
				'condition' => [
					'type' => 'time',
					'time_format' => 'custom',
				],
				'description' => sprintf(
					/* translators: %s: Allowed time letters (see: http://php.net/manual/en/function.time.php). */
					__( 'Use the letters: %s', 'elementor-pro' ),
					'g G H i a A'
				),
			]
		);

		$repeater->add_control(
			'taxonomy',
			[
				'label' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'label_block' => true,
				'default' => [],
				'options' => $this->get_taxonomies(),
				'condition' => [
					'type' => 'terms',
				],
			]
		);

		$repeater->add_control(
			'text_prefix',
			[
				'label' => esc_html__( 'Before', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'type!' => 'custom',
				],
			]
		);

		$repeater->add_control(
			'show_avatar',
			[
				'label' => esc_html__( 'Avatar', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'type' => 'author',
				],
			]
		);

		$repeater->add_responsive_control(
			'avatar_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} {{CURRENT_ITEM}} .elementor-icon-list-icon' => 'width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'show_avatar' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'comments_custom_strings',
			[
				'label' => esc_html__( 'Custom Format', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => false,
				'condition' => [
					'type' => 'comments',
				],
			]
		);

		$repeater->add_control(
			'string_no_comments',
			[
				'label' => esc_html__( 'No Comments', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'No Comments', 'elementor-pro' ),
				'condition' => [
					'comments_custom_strings' => 'yes',
					'type' => 'comments',
				],
			]
		);

		$repeater->add_control(
			'string_one_comment',
			[
				'label' => esc_html__( 'One Comment', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'One Comment', 'elementor-pro' ),
				'condition' => [
					'comments_custom_strings' => 'yes',
					'type' => 'comments',
				],
			]
		);

		$repeater->add_control(
			'string_comments',
			[
				'label' => esc_html__( 'Comments', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( '%s Comments', 'elementor-pro' ),
				'condition' => [
					'comments_custom_strings' => 'yes',
					'type' => 'comments',
				],
			]
		);

		$repeater->add_control(
			'custom_text',
			[
				'label' => esc_html__( 'Custom', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'condition' => [
					'type' => 'custom',
				],
			]
		);

		$repeater->add_control(
			'link',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'condition' => [
					'type!' => 'time',
				],
			]
		);

		$repeater->add_control(
			'custom_url',
			[
				'label' => esc_html__( 'Custom URL', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'type' => 'custom',
				],
			]
		);

		$repeater->add_control(
			'show_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'default' => esc_html__( 'Default', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'default',
				'condition' => [
					'show_avatar!' => 'yes',
				],
			]
		);

		$repeater->add_control(
			'selected_icon',
			[
				'label' => esc_html__( 'Choose Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'condition' => [
					'show_icon' => 'custom',
					'show_avatar!' => 'yes',
				],
			]
		);

		$this->add_control(
			'icon_list',
			[
				'label' => '',
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'type' => 'author',
						'selected_icon' => [
							'value' => 'far fa-user-circle',
							'library' => 'fa-regular',
						],
					],
					[
						'type' => 'date',
						'selected_icon' => [
							'value' => 'fas fa-calendar',
							'library' => 'fa-solid',
						],
					],
					[
						'type' => 'time',
						'selected_icon' => [
							'value' => 'far fa-clock',
							'library' => 'fa-regular',
						],
					],
					[
						'type' => 'comments',
						'selected_icon' => [
							'value' => 'far fa-comment-dots',
							'library' => 'fa-regular',
						],
					],
				],
				'title_field' => '{{{ elementor.helpers.renderIcon( this, selected_icon, {}, "i", "panel" ) || \'<i class="{{ icon }}" aria-hidden="true"></i>\' }}} <span style="text-transform: capitalize;">{{{ type }}}</span>',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_icon_list',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'space_between',
			[
				'label' => esc_html__( 'Space Between', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child)' => 'padding-bottom: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}} .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:first-child)' => 'margin-top: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}} .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item' => 'margin-right: calc({{SIZE}}{{UNIT}}/2); margin-left: calc({{SIZE}}{{UNIT}}/2)',
					'{{WRAPPER}} .elementor-icon-list-items.elementor-inline-items' => 'margin-right: calc(-{{SIZE}}{{UNIT}}/2); margin-left: calc(-{{SIZE}}{{UNIT}}/2)',
					'body.rtl {{WRAPPER}} .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after' => 'left: calc(-{{SIZE}}{{UNIT}}/2)',
					'body:not(.rtl) {{WRAPPER}} .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:after' => 'right: calc(-{{SIZE}}{{UNIT}}/2)',
				],
			]
		);

		$this->add_responsive_control(
			'icon_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Start', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'End', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'prefix_class' => 'elementor%s-align-',
			]
		);

		$this->add_control(
			'divider',
			[
				'label' => esc_html__( 'Divider', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-item:not(:last-child):after' => 'content: ""',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'divider_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'solid' => esc_html__( 'Solid', 'elementor-pro' ),
					'double' => esc_html__( 'Double', 'elementor-pro' ),
					'dotted' => esc_html__( 'Dotted', 'elementor-pro' ),
					'dashed' => esc_html__( 'Dashed', 'elementor-pro' ),
				],
				'default' => 'solid',
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after' => 'border-top-style: {{VALUE}};',
					'{{WRAPPER}} .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item:not(:last-child):after' => 'border-left-style: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'divider_weight',
			[
				'label' => esc_html__( 'Weight', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 1,
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 20,
					],
				],
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child):after' => 'border-top-width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-inline-items .elementor-icon-list-item:not(:last-child):after' => 'border-left-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'divider_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 100,
					],
					'%' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'condition' => [
					'divider' => 'yes',
					'view!' => 'inline',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-item:not(:last-child):after' => 'width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'divider_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ '%', 'px' ],
				'default' => [
					'unit' => '%',
				],
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 100,
					],
					'%' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'condition' => [
					'divider' => 'yes',
					'view' => 'inline',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-item:not(:last-child):after' => 'height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'divider_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ddd',
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => [
					'divider' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-item:not(:last-child):after' => 'border-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_icon_style',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'icon_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-icon i' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-icon-list-icon svg' => 'fill: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
			]
		);

		$this->add_responsive_control(
			'icon_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 14,
				],
				'range' => [
					'px' => [
						'min' => 6,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-icon' => 'width: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-icon-list-icon i' => 'font-size: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-icon-list-icon svg' => '--e-icon-list-icon-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_text_style',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'text_indent',
			[
				'label' => esc_html__( 'Indent', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-icon-list-text' => 'padding-left: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-icon-list-text' => 'padding-right: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-icon-list-text, {{WRAPPER}} .elementor-icon-list-text a' => 'color: {{VALUE}}',
				],
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'icon_typography',
				'selector' => '{{WRAPPER}} .elementor-icon-list-item',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();
	}

	protected function get_taxonomies() {
		$taxonomies = get_taxonomies( [
			'show_in_nav_menus' => true,
		], 'objects' );

		$options = [
			'' => esc_html__( 'Choose', 'elementor-pro' ),
		];

		foreach ( $taxonomies as $taxonomy ) {
			$options[ $taxonomy->name ] = $taxonomy->label;
		}

		return $options;
	}

	protected function get_meta_data( $repeater_item ) {
		$item_data = [];

		switch ( $repeater_item['type'] ) {
			case 'author':
				$item_data['text'] = get_the_author_meta( 'display_name' );
				$item_data['icon'] = 'fa fa-user-circle-o'; // Default icon.
				$item_data['selected_icon'] = [
					'value' => 'far fa-user-circle',
					'library' => 'fa-regular',
				]; // Default icons.
				$item_data['itemprop'] = 'author';

				if ( 'yes' === $repeater_item['link'] ) {
					$item_data['url'] = [
						'url' => get_author_posts_url( get_the_author_meta( 'ID' ) ),
					];
				}

				if ( 'yes' === $repeater_item['show_avatar'] ) {
					$item_data['image'] = get_avatar_url( get_the_author_meta( 'ID' ), 96 );
				}

				break;

			case 'date':
				$custom_date_format = empty( $repeater_item['custom_date_format'] ) ? 'F j, Y' : $repeater_item['custom_date_format'];

				$format_options = [
					'default' => 'F j, Y',
					'0' => 'F j, Y',
					'1' => 'Y-m-d',
					'2' => 'm/d/Y',
					'3' => 'd/m/Y',
					'custom' => $custom_date_format,
				];

				$item_data['text'] = get_the_time( $format_options[ $repeater_item['date_format'] ] );
				$item_data['icon'] = 'fa fa-calendar'; // Default icon
				$item_data['selected_icon'] = [
					'value' => 'fas fa-calendar',
					'library' => 'fa-solid',
				]; // Default icons.
				$item_data['itemprop'] = 'datePublished';

				if ( 'yes' === $repeater_item['link'] ) {
					$item_data['url'] = [
						'url' => get_day_link( get_post_time( 'Y' ), get_post_time( 'm' ), get_post_time( 'j' ) ),
					];
				}
				break;

			case 'time':
				$custom_time_format = empty( $repeater_item['custom_time_format'] ) ? 'g:i a' : $repeater_item['custom_time_format'];

				$format_options = [
					'default' => 'g:i a',
					'0' => 'g:i a',
					'1' => 'g:i A',
					'2' => 'H:i',
					'custom' => $custom_time_format,
				];
				$item_data['text'] = get_the_time( $format_options[ $repeater_item['time_format'] ] );
				$item_data['icon'] = 'fa fa-clock-o'; // Default icon
				$item_data['selected_icon'] = [
					'value' => 'far fa-clock',
					'library' => 'fa-regular',
				]; // Default icons.
				break;

			case 'comments':
				if ( comments_open() ) {
					$default_strings = [
						'string_no_comments' => esc_html__( 'No Comments', 'elementor-pro' ),
						'string_one_comment' => esc_html__( 'One Comment', 'elementor-pro' ),
						'string_comments' => esc_html__( '%s Comments', 'elementor-pro' ),
					];

					if ( 'yes' === $repeater_item['comments_custom_strings'] ) {
						if ( ! empty( $repeater_item['string_no_comments'] ) ) {
							$default_strings['string_no_comments'] = $repeater_item['string_no_comments'];
						}

						if ( ! empty( $repeater_item['string_one_comment'] ) ) {
							$default_strings['string_one_comment'] = $repeater_item['string_one_comment'];
						}

						if ( ! empty( $repeater_item['string_comments'] ) ) {
							$default_strings['string_comments'] = $repeater_item['string_comments'];
						}
					}

					$num_comments = (int) get_comments_number(); // get_comments_number returns only a numeric value

					if ( 0 === $num_comments ) {
						$item_data['text'] = $default_strings['string_no_comments'];
					} else {
						$item_data['text'] = sprintf( _n( $default_strings['string_one_comment'], $default_strings['string_comments'], $num_comments, 'elementor-pro' ), $num_comments );
					}

					if ( 'yes' === $repeater_item['link'] ) {
						$item_data['url'] = [
							'url' => get_comments_link(),
						];
					}
					$item_data['icon'] = 'fa fa-commenting-o'; // Default icon
					$item_data['selected_icon'] = [
						'value' => 'far fa-comment-dots',
						'library' => 'fa-regular',
					]; // Default icons.
					$item_data['itemprop'] = 'commentCount';
				}
				break;

			case 'terms':
				$item_data['icon'] = 'fa fa-tags'; // Default icon
				$item_data['selected_icon'] = [
					'value' => 'fas fa-tags',
					'library' => 'fa-solid',
				]; // Default icons.
				$item_data['itemprop'] = 'about';

				$taxonomy = $repeater_item['taxonomy'];
				$terms = wp_get_post_terms( get_the_ID(), $taxonomy );
				foreach ( $terms as $term ) {
					$item_data['terms_list'][ $term->term_id ]['text'] = $term->name;
					if ( 'yes' === $repeater_item['link'] ) {
						$item_data['terms_list'][ $term->term_id ]['url'] = get_term_link( $term );
					}
				}
				break;

			case 'custom':
				$item_data['text'] = $repeater_item['custom_text'];
				$item_data['icon'] = 'fa fa-info-circle'; // Default icon.
				$item_data['selected_icon'] = [
					'value' => 'far fa-tags',
					'library' => 'fa-regular',
				]; // Default icons.

				if ( 'yes' === $repeater_item['link'] && ! empty( $repeater_item['custom_url'] ) ) {
					$item_data['url'] = $repeater_item['custom_url'];
				}

				break;
		}

		$item_data['type'] = $repeater_item['type'];

		if ( ! empty( $repeater_item['text_prefix'] ) ) {
			$item_data['text_prefix'] = esc_html( $repeater_item['text_prefix'] );
		}

		return $item_data;
	}

	protected function render_item( $repeater_item ) {
		$item_data = $this->get_meta_data( $repeater_item );
		$repeater_index = $repeater_item['_id'];

		if ( empty( $item_data['text'] ) && empty( $item_data['terms_list'] ) ) {
			return;
		}

		$has_link = false;
		$link_key = 'link_' . $repeater_index;
		$item_key = 'item_' . $repeater_index;

		$this->add_render_attribute( $item_key, 'class',
			[
				'elementor-icon-list-item',
				'elementor-repeater-item-' . $repeater_item['_id'],
			]
		);

		$active_settings = $this->get_active_settings();

		if ( 'inline' === $active_settings['view'] ) {
			$this->add_render_attribute( $item_key, 'class', 'elementor-inline-item' );
		}

		if ( ! empty( $item_data['url']['url'] ) ) {
			$has_link = true;

			$this->add_link_attributes( $link_key, $item_data['url'] );
		}

		if ( ! empty( $item_data['itemprop'] ) ) {
			$this->add_render_attribute( $item_key, 'itemprop', $item_data['itemprop'] );
		}

		?>
		<li <?php $this->print_render_attribute_string( $item_key ); ?>>
			<?php if ( $has_link ) : ?>
			<a <?php $this->print_render_attribute_string( $link_key ); ?>>
				<?php endif; ?>
				<?php $this->render_item_icon_or_image( $item_data, $repeater_item, $repeater_index ); ?>
				<?php $this->render_item_text( $item_data, $repeater_index ); ?>
				<?php if ( $has_link ) : ?>
			</a>
		<?php endif; ?>
		</li>
		<?php
	}

	protected function render_item_icon_or_image( $item_data, $repeater_item, $repeater_index ) {
		// Set icon according to user settings.
		$migration_allowed = Icons_Manager::is_migration_allowed();
		if ( ! $migration_allowed ) {
			if ( 'custom' === $repeater_item['show_icon'] && ! empty( $repeater_item['icon'] ) ) {
				$item_data['icon'] = $repeater_item['icon'];
			} elseif ( 'none' === $repeater_item['show_icon'] ) {
				$item_data['icon'] = '';
			}
		} else {
			if ( 'custom' === $repeater_item['show_icon'] && ! empty( $repeater_item['selected_icon'] ) ) {
				$item_data['selected_icon'] = $repeater_item['selected_icon'];
			} elseif ( 'none' === $repeater_item['show_icon'] ) {
				$item_data['selected_icon'] = [];
			}
		}

		if ( empty( $item_data['icon'] ) && empty( $item_data['selected_icon'] ) && empty( $item_data['image'] ) ) {
			return;
		}

		$migrated = isset( $repeater_item['__fa4_migrated']['selected_icon'] );
		$is_new = empty( $repeater_item['icon'] ) && $migration_allowed;
		$show_icon = 'none' !== $repeater_item['show_icon'];

		if ( ! empty( $item_data['image'] ) || $show_icon ) {
			?>
			<span class="elementor-icon-list-icon">
			<?php
			if ( ! empty( $item_data['image'] ) ) :
				$image_data = 'image_' . $repeater_index;
				$this->add_render_attribute( $image_data, 'src', $item_data['image'] );
				$this->add_render_attribute( $image_data, 'alt', $item_data['text'] );
				?>
					<img class="elementor-avatar" <?php $this->print_render_attribute_string( $image_data ); ?>>
				<?php elseif ( $show_icon ) : ?>
					<?php if ( $is_new || $migrated ) :
						Icons_Manager::render_icon( $item_data['selected_icon'], [ 'aria-hidden' => 'true' ] );
					else : ?>
						<i class="<?php echo esc_attr( $item_data['icon'] ); ?>" aria-hidden="true"></i>
					<?php endif; ?>
				<?php endif; ?>
			</span>
			<?php
		}
	}

	protected function render_item_text( $item_data, $repeater_index ) {
		$repeater_setting_key = $this->get_repeater_setting_key( 'text', 'icon_list', $repeater_index );

		$this->add_render_attribute( $repeater_setting_key, 'class', [ 'elementor-icon-list-text', 'elementor-post-info__item', 'elementor-post-info__item--type-' . $item_data['type'] ] );
		if ( ! empty( $item['terms_list'] ) ) {
			$this->add_render_attribute( $repeater_setting_key, 'class', 'elementor-terms-list' );
		}

		?>
		<span <?php $this->print_render_attribute_string( $repeater_setting_key ); ?>>
			<?php if ( ! empty( $item_data['text_prefix'] ) ) : ?>
				<span class="elementor-post-info__item-prefix"><?php echo esc_html( $item_data['text_prefix'] ); ?></span>
			<?php endif; ?>
			<?php
			if ( ! empty( $item_data['terms_list'] ) ) :
				$terms_list = [];
				$item_class = 'elementor-post-info__terms-list-item';
				?>
				<span class="elementor-post-info__terms-list">
				<?php
				foreach ( $item_data['terms_list'] as $term ) :
					if ( ! empty( $term['url'] ) ) :
						$terms_list[] = '<a href="' . esc_attr( $term['url'] ) . '" class="' . $item_class . '">' . esc_html( $term['text'] ) . '</a>';
					else :
						$terms_list[] = '<span class="' . $item_class . '">' . esc_html( $term['text'] ) . '</span>';
					endif;
				endforeach;

				// PHPCS - the variable $terms_list is safe.
				echo implode( ', ', $terms_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				?>
				</span>
			<?php else : ?>
				<?php
				echo wp_kses( $item_data['text'], [
					'a' => [
						'href' => [],
						'title' => [],
						'rel' => [],
					],
				] );
				?>
			<?php endif; ?>
		</span>
		<?php
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		ob_start();
		if ( ! empty( $settings['icon_list'] ) ) {
			foreach ( $settings['icon_list'] as $repeater_item ) {
				$this->render_item( $repeater_item );
			}
		}
		$items_html = ob_get_clean();

		if ( empty( $items_html ) ) {
			return;
		}

		if ( 'inline' === $settings['view'] ) {
			$this->add_render_attribute( 'icon_list', 'class', 'elementor-inline-items' );
		}

		$this->add_render_attribute( 'icon_list', 'class', [ 'elementor-icon-list-items', 'elementor-post-info' ] );
		?>
		<ul <?php $this->print_render_attribute_string( 'icon_list' ); ?>>
			<?php // PHPCS - the variable $terms_list is safe. ?>
			<?php echo $items_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
		</ul>
		<?php
	}
}
PK!�B��GG'modules/theme-elements/widgets/base.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base extends Base_Widget {

	public function get_categories() {
		return [ 'theme-elements' ];
	}

	public function render_plain_content() {}
}
PK!�
���0modules/theme-elements/widgets/post-comments.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use ElementorPro\Modules\QueryControl\Module as QueryControlModule;
use ElementorPro\Modules\ThemeElements\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Comments extends Base {

	public function get_name() {
		return 'post-comments';
	}

	public function get_title() {
		return esc_html__( 'Post Comments', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-comments';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'comments', 'post', 'response', 'form' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_content',
			[
				'label' => esc_html__( 'Comments', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'_skin',
			[
				'type' => Controls_Manager::HIDDEN,
			]
		);

		$this->add_control(
			'skin_temp',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Theme Comments', 'elementor-pro' ),
				],
				'description' => esc_html__( 'The Theme Comments skin uses the currently active theme comments design and layout to display the comment form and comments.', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'source_type',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					Module::SOURCE_TYPE_CURRENT_POST => esc_html__( 'Current Post', 'elementor-pro' ),
					Module::SOURCE_TYPE_CUSTOM => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => Module::SOURCE_TYPE_CURRENT_POST,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'source_custom',
			[
				'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
				'type' => QueryControlModule::QUERY_CONTROL_ID,
				'label_block' => true,
				'autocomplete' => [
					'object' => QueryControlModule::QUERY_OBJECT_POST,
				],
				'condition' => [
					'source_type' => Module::SOURCE_TYPE_CUSTOM,
				],
			]
		);

		$this->end_controls_section();
	}

	public function render() {
		$settings = $this->get_settings();

		if ( Module::SOURCE_TYPE_CUSTOM === $settings['source_type'] ) {
			$post_id = (int) $settings['source_custom'];
			Plugin::elementor()->db->switch_to_post( $post_id );
		}

		if ( ! comments_open() && ( Plugin::elementor()->preview->is_preview_mode() || Plugin::elementor()->editor->is_edit_mode() ) ) :
			?>
			<div class="elementor-alert elementor-alert-danger" role="alert">
				<span class="elementor-alert-title">
					<?php esc_html_e( 'Comments are closed.', 'elementor-pro' ); ?>
				</span>
				<span class="elementor-alert-description">
					<?php esc_html_e( 'Switch on comments from either the discussion box on the WordPress post edit screen or from the WordPress discussion settings.', 'elementor-pro' ); ?>
				</span>
			</div>
			<?php
		else :
			comments_template();
		endif;

		if ( Module::SOURCE_TYPE_CUSTOM === $settings['source_type'] ) {
			Plugin::elementor()->db->restore_current_post();
		}
	}
}
PK!�A{��;�;2modules/theme-elements/widgets/post-navigation.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Post_Navigation extends Base {

	public function get_name() {
		return 'post-navigation';
	}

	public function get_title() {
		return esc_html__( 'Post Navigation', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-post-navigation';
	}

	public function get_categories() {
		return [ 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'post', 'navigation', 'menu', 'links' ];
	}

	public function get_script_depends() {
		return [ 'post-navigation' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_post_navigation_content',
			[
				'label' => esc_html__( 'Post Navigation', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'prev_label',
			[
				'label' => esc_html__( 'Previous Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Previous', 'elementor-pro' ),
				'condition' => [
					'show_label' => 'yes',
				],
			]
		);

		$this->add_control(
			'next_label',
			[
				'label' => esc_html__( 'Next Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Next', 'elementor-pro' ),
				'condition' => [
					'show_label' => 'yes',
				],
			]
		);

		$this->add_control(
			'show_arrow',
			[
				'label' => esc_html__( 'Arrows', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'arrow',
			[
				'label' => esc_html__( 'Arrows Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'fa fa-angle-left' => esc_html__( 'Angle', 'elementor-pro' ),
					'fa fa-angle-double-left' => esc_html__( 'Double Angle', 'elementor-pro' ),
					'fa fa-chevron-left' => esc_html__( 'Chevron', 'elementor-pro' ),
					'fa fa-chevron-circle-left' => esc_html__( 'Chevron Circle', 'elementor-pro' ),
					'fa fa-caret-left' => esc_html__( 'Caret', 'elementor-pro' ),
					'fa fa-arrow-left' => esc_html__( 'Arrow', 'elementor-pro' ),
					'fa fa-long-arrow-left' => esc_html__( 'Long Arrow', 'elementor-pro' ),
					'fa fa-arrow-circle-left' => esc_html__( 'Arrow Circle', 'elementor-pro' ),
					'fa fa-arrow-circle-o-left' => esc_html__( 'Arrow Circle Negative', 'elementor-pro' ),
				],
				'default' => 'fa fa-angle-left',
				'condition' => [
					'show_arrow' => 'yes',
				],
			]
		);

		$this->add_control(
			'show_title',
			[
				'label' => esc_html__( 'Post Title', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'show_borders',
			[
				'label' => esc_html__( 'Borders', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'prefix_class' => 'elementor-post-navigation-borders-',
			]
		);

		// Filter out post type without taxonomies
		$post_type_options = [];
		$post_type_taxonomies = [];
		foreach ( Utils::get_public_post_types() as $post_type => $post_type_label ) {
			$taxonomies = Utils::get_taxonomies( [ 'object_type' => $post_type ], false );
			if ( empty( $taxonomies ) ) {
				continue;
			}

			$post_type_options[ $post_type ] = $post_type_label;
			$post_type_taxonomies[ $post_type ] = [];
			foreach ( $taxonomies as $taxonomy ) {
				$post_type_taxonomies[ $post_type ][ $taxonomy->name ] = $taxonomy->label;
			}
		}

		$this->add_control(
			'in_same_term',
			[
				'label' => esc_html__( 'In same Term', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'options' => $post_type_options,
				'default' => '',
				'multiple' => true,
				'label_block' => true,
				'description' => esc_html__( 'Indicates whether next post must be within the same taxonomy term as the current post, this lets you set a taxonomy per each post type', 'elementor-pro' ),
			]
		);

		foreach ( $post_type_options as $post_type => $post_type_label ) {
			$this->add_control(
				$post_type . '_taxonomy',
				[
					'label' => $post_type_label . ' ' . esc_html__( 'Taxonomy', 'elementor-pro' ),
					'type' => Controls_Manager::SELECT,
					'options' => $post_type_taxonomies[ $post_type ],
					'default' => '',
					'condition' => [
						'in_same_term' => $post_type,
					],
				]
			);
		}

		$this->end_controls_section();

		$this->start_controls_section(
			'label_style',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_label' => 'yes',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_label_style' );

		$this->start_controls_tab(
			'label_color_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'label_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} span.post-navigation__prev--label' => 'color: {{VALUE}};',
					'{{WRAPPER}} span.post-navigation__next--label' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'label_color_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'label_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} span.post-navigation__prev--label:hover' => 'color: {{VALUE}};',
					'{{WRAPPER}} span.post-navigation__next--label:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'label_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
				'selector' => '{{WRAPPER}} span.post-navigation__prev--label, {{WRAPPER}} span.post-navigation__next--label',
				'exclude' => [ 'line_height' ],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_title' => 'yes',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_post_navigation_style' );

		$this->start_controls_tab(
			'tab_color_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} span.post-navigation__prev--title, {{WRAPPER}} span.post-navigation__next--title' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_color_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} span.post-navigation__prev--title:hover, {{WRAPPER}} span.post-navigation__next--title:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'title_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
				'selector' => '{{WRAPPER}} span.post-navigation__prev--title, {{WRAPPER}} span.post-navigation__next--title',
				'exclude' => [ 'line_height' ],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'arrow_style',
			[
				'label' => esc_html__( 'Arrow', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_arrow' => 'yes',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_post_navigation_arrow_style' );

		$this->start_controls_tab(
			'arrow_color_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'arrow_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .post-navigation__arrow-wrapper' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'arrow_color_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'arrow_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .post-navigation__arrow-wrapper:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'arrow_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 6,
						'max' => 300,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .post-navigation__arrow-wrapper' => 'font-size: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'arrow_padding',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .post-navigation__arrow-prev' => 'padding-right: {{SIZE}}{{UNIT}};',
					'body:not(.rtl) {{WRAPPER}} .post-navigation__arrow-next' => 'padding-left: {{SIZE}}{{UNIT}};',
					'body.rtl {{WRAPPER}} .post-navigation__arrow-prev' => 'padding-left: {{SIZE}}{{UNIT}};',
					'body.rtl {{WRAPPER}} .post-navigation__arrow-next' => 'padding-right: {{SIZE}}{{UNIT}};',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'borders_section_style',
			[
				'label' => esc_html__( 'Borders', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_borders!' => '',
				],
			]
		);

		$this->add_control(
			'sep_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				//'default' => '#D4D4D4',
				'selectors' => [
					'{{WRAPPER}} .elementor-post-navigation__separator' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-post-navigation' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'borders_width',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-post-navigation__separator' => 'width: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-post-navigation' => 'border-top-width: {{SIZE}}{{UNIT}}; border-bottom-width: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-post-navigation__next.elementor-post-navigation__link' => 'width: calc(50% - ({{SIZE}}{{UNIT}} / 2))',
					'{{WRAPPER}} .elementor-post-navigation__prev.elementor-post-navigation__link' => 'width: calc(50% - ({{SIZE}}{{UNIT}} / 2))',
				],
			]
		);

		$this->add_control(
			'borders_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-post-navigation' => 'padding: {{SIZE}}{{UNIT}} 0;',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
					],
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_active_settings();

		$prev_label = '';
		$next_label = '';
		$prev_arrow = '';
		$next_arrow = '';

		if ( 'yes' === $settings['show_label'] ) {
			$prev_label = '<span class="post-navigation__prev--label">' . $settings['prev_label'] . '</span>';
			$next_label = '<span class="post-navigation__next--label">' . $settings['next_label'] . '</span>';
		}

		if ( 'yes' === $settings['show_arrow'] ) {
			if ( is_rtl() ) {
				$prev_icon_class = str_replace( 'left', 'right', $settings['arrow'] );
				$next_icon_class = $settings['arrow'];
			} else {
				$prev_icon_class = $settings['arrow'];
				$next_icon_class = str_replace( 'left', 'right', $settings['arrow'] );
			}

			$prev_arrow = '<span class="post-navigation__arrow-wrapper post-navigation__arrow-prev"><i class="' . $prev_icon_class . '" aria-hidden="true"></i><span class="elementor-screen-only">' . esc_html__( 'Prev', 'elementor-pro' ) . '</span></span>';
			$next_arrow = '<span class="post-navigation__arrow-wrapper post-navigation__arrow-next"><i class="' . $next_icon_class . '" aria-hidden="true"></i><span class="elementor-screen-only">' . esc_html__( 'Next', 'elementor-pro' ) . '</span></span>';
		}

		$prev_title = '';
		$next_title = '';

		if ( 'yes' === $settings['show_title'] ) {
			$prev_title = '<span class="post-navigation__prev--title">%title</span>';
			$next_title = '<span class="post-navigation__next--title">%title</span>';
		}

		$in_same_term = false;
		$taxonomy = 'category';
		$post_type = get_post_type( get_queried_object_id() );

		if ( ! empty( $settings['in_same_term'] ) && is_array( $settings['in_same_term'] ) && in_array( $post_type, $settings['in_same_term'] ) ) {
			if ( isset( $settings[ $post_type . '_taxonomy' ] ) ) {
				$in_same_term = true;
				$taxonomy = $settings[ $post_type . '_taxonomy' ];
			}
		}
		?>
		<div class="elementor-post-navigation">
			<div class="elementor-post-navigation__prev elementor-post-navigation__link">
				<?php previous_post_link( '%link', $prev_arrow . '<span class="elementor-post-navigation__link__prev">' . $prev_label . $prev_title . '</span>', $in_same_term, '', $taxonomy ); ?>
			</div>
			<?php if ( 'yes' === $settings['show_borders'] ) : ?>
				<div class="elementor-post-navigation__separator-wrapper">
					<div class="elementor-post-navigation__separator"></div>
				</div>
			<?php endif; ?>
			<div class="elementor-post-navigation__next elementor-post-navigation__link">
				<?php next_post_link( '%link', '<span class="elementor-post-navigation__link__next">' . $next_label . $next_title . '</span>' . $next_arrow, $in_same_term, '', $taxonomy ); ?>
			</div>
		</div>
		<?php
	}
}
PK!o�VHH*modules/theme-elements/widgets/sitemap.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use ElementorPro\Modules\QueryControl\Module as Query_Module;
use Elementor\Repeater;
use Elementor\Group_Control_Typography;
use Elementor\Utils;
use ElementorPro\Core\Utils as Pro_Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Elementor sitemap widget.
 *
 * Elementor widget that displays an HTML sitemap.
 *
 */
class Sitemap extends Base {

	public function get_name() {
		return 'sitemap';
	}

	public function get_title() {
		return esc_html__( 'Sitemap', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-sitemap';
	}

	public function get_keywords() {
		return [ 'taxonomy', 'custom post type', 'cpt', 'sitemap', 'site map', 'link', 'menu', 'tree' ];
	}

	private function register_sitemap_tab() {
		$this->start_controls_section(
			'sitemap_section',
			[
				'label' => esc_html__( 'Sitemap', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->register_post_type_controls();

		$this->add_control(
			'sitemap_layout_divider',
			[
				'type' => Controls_Manager::DIVIDER,
			]
		);

		$this->register_layout_controls();

		$this->end_controls_section();

		$this->register_additional_settings_section();
	}

	private function register_additional_settings_section() {
		$this->start_controls_section(
			'sitemap_query_section',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'sitemap_exclude',
			[
				'label' => esc_html__( 'Exclude', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => [
					'current_post' => esc_html__( 'Current Post', 'elementor-pro' ),
					'manual_selection' => esc_html__( 'Manual Selection', 'elementor-pro' ),
				],
				'label_block' => true,
			]
		);

		$this->add_control(
			'sitemap_exclude_ids',
			[
				'label' => esc_html__( 'Search & Select', 'elementor-pro' ),
				'type' => Query_Module::QUERY_CONTROL_ID,
				'options' => [],
				'label_block' => true,
				'multiple' => true,
				'autocomplete' => [
					'object' => Query_Module::QUERY_OBJECT_POST,
				],
				'condition' => [
					'sitemap_exclude' => 'manual_selection',
				],
			]
		);

		$this->add_control(
			'sitemap_password_protected',
			[
				'label' => esc_html__( 'Protected Posts', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();
	}

	private function register_layout_controls() {
		$this->add_responsive_control(
			'sitemap_columns',
			[
				'label' => esc_html__( 'Columns', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '4',
				'tablet_default' => '2',
				'mobile_default' => '1',
				'options' => [
					'1' => '1',
					'2' => '2',
					'3' => '3',
					'4' => '4',
					'5' => '5',
					'6' => '6',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-section' => 'flex-basis: calc( 1 / {{VALUE}} * 100% );',
				],
			]
		);

		$this->add_control(
			'sitemap_title_tag',
			[
				'label' => esc_html__( 'Title HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
					'p' => 'p',
				],
				'default' => 'h2',
			]
		);

		$this->add_control(
			'sitemap_add_nofollow',
			[
				'label' => esc_html__( 'Add nofollow', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
			]
		);
	}

	private function register_post_type_controls() {
		$supported_taxonomies = [];

		$public_types = Pro_Utils::get_public_post_types();

		foreach ( $public_types as $type => $title ) {
			$taxonomies = get_object_taxonomies( $type, 'objects' );
			foreach ( $taxonomies as $key => $tax ) {
				if ( ! in_array( $tax->name, $supported_taxonomies ) ) {
					$label = $tax->label . ' (' . $tax->name . ')';
					$supported_taxonomies[ $tax->name ] = $label;
				}
			}
		}

		$repeater = new Repeater();

		$repeater->add_control(
			'sitemap_type_selector',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'post_type',
				'options' => [
					'post_type' => esc_html__( 'Post Type', 'elementor-pro' ),
					'taxonomy' => esc_html__( 'Taxonomy', 'elementor-pro' ),
				],
			]
		);

		$repeater->add_control(
			'sitemap_source_post_type',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'page',
				'options' => $public_types,
				'condition' => [
					'sitemap_type_selector' => 'post_type',
				],
			]
		);

		$repeater->add_control(
			'sitemap_source_taxonomy',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'category',
				'options' => $supported_taxonomies,
				'condition' => [
					'sitemap_type_selector' => 'taxonomy',
				],
			]
		);

		$repeater->add_control(
			'sitemap_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$repeater->add_control(
			'sitemap_orderby_post_type',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'post_date',
				'options' => [
					'post_date' => esc_html__( 'Date', 'elementor-pro' ),
					'post_title' => esc_html__( 'Title', 'elementor-pro' ),
					'menu_order' => esc_html__( 'Menu Order', 'elementor-pro' ),
					'rand' => esc_html__( 'Random', 'elementor-pro' ),
				],
				'condition' => [
					'sitemap_type_selector' => 'post_type',
				],
			]
		);

		$repeater->add_control(
			'sitemap_orderby_taxonomy',
			[
				'label' => esc_html__( 'Order By', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'name',
				'options' => [
					'id' => esc_html__( 'ID', 'elementor-pro' ),
					'name' => esc_html__( 'Name', 'elementor-pro' ),
				],
				'condition' => [
					'sitemap_type_selector' => 'taxonomy',
				],
			]
		);

		$repeater->add_control(
			'sitemap_order',
			[
				'label' => esc_html__( 'Order', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'desc',
				'options' => [
					'asc' => esc_html__( 'ASC', 'elementor-pro' ),
					'desc' => esc_html__( 'DESC', 'elementor-pro' ),
				],
			]
		);

		$repeater->add_control(
			'sitemap_hide_empty',
			[
				'label' => esc_html__( 'Hide Empty', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'condition' => [
					'sitemap_type_selector' => 'taxonomy',
				],
			]
		);

		$repeater->add_control(
			'sitemap_hierarchical',
			[
				'label' => esc_html__( 'Hierarchical View', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'no',
			]
		);

		$repeater->add_control(
			'sitemap_depth',
			[
				'label' => esc_html__( 'Depth', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => '0',
				'options' => [
					'0' => esc_html__( 'All', 'elementor-pro' ),
					'1' => 1,
					'2' => 2,
					'3' => 3,
					'4' => 4,
					'5' => 5,
					'6' => 6,
				],
				'condition' => [
					'sitemap_hierarchical' => 'yes',
				],
			]
		);

		$this->add_control(
			'sitemap_items',
			[
				'label' => '',
				'type' => Controls_Manager::REPEATER,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'sitemap_type_selector' => 'post_type',
						'sitemap_title' => esc_html__( 'Pages', 'elementor-pro' ),
						'sitemap_source_post_type' => 'page',
					],
					[
						'sitemap_type_selector' => 'taxonomy',
						'sitemap_title' => esc_html__( 'Categories', 'elementor-pro' ),
						'sitemap_source_taxonomy' => 'category',
					],
				],
				'title_field' => '{{{ sitemap_title }}}',
			]
		);
	}

	private function register_style_tab() {
		$this->start_controls_section(
			'section_sitemap_style',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'sitemap_list_indent',
			[
				'label' => esc_html__( 'Indent', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-sitemap-section ul' => 'margin-left: {{SIZE}}{{UNIT}};',
					'body.rtl {{WRAPPER}} .elementor-sitemap-section ul' => 'margin-right: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_responsive_control(
			'sitemap_section_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-section' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'sitemap_title_style',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sitemap_title_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-title' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_PRIMARY,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sitemap_title_typography',
				'selector' => '{{WRAPPER}} .elementor-sitemap-title',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'sitemap_list_style',
			[
				'label' => esc_html__( 'List Item', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sitemap_list_item_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-item, {{WRAPPER}} span.elementor-sitemap-list, {{WRAPPER}} .elementor-sitemap-item a' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'sitemap_list_item_typography',
				'selector' => '{{WRAPPER}} .elementor-sitemap-item, {{WRAPPER}} span.elementor-sitemap-list, {{WRAPPER}} .elementor-sitemap-item a',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'sitemap_bullet_style',
			[
				'label' => esc_html__( 'Bullet', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'sitemap_bullet_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-item' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_control(
			'sitemap_list_item_bullet_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'disc',
				'options' => [
					'disc' => [
						'title' => esc_html__( 'Disc', 'elementor-pro' ),
						'icon' => 'eicon-circle',
					],
					'circle' => [
						'title' => esc_html__( 'Circle', 'elementor-pro' ),
						'icon' => 'eicon-circle-o',
					],
					'square' => [
						'title' => esc_html__( 'Square', 'elementor-pro' ),
						'icon' => 'eicon-square',
					],
					'none' => [
						'title' => esc_html__( 'None', 'elementor-pro' ),
						'icon' => 'eicon-ban',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-sitemap-list, {{WRAPPER}} .elementor-sitemap-list .children' => 'list-style-type: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function register_controls() {
		$this->register_sitemap_tab();
		$this->register_style_tab();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		if ( empty( $settings['sitemap_items'] ) ) {
			return;
		}

		$title_tag = $settings['sitemap_title_tag'];

		$posts_query = [
			'post__not_in' => $settings['sitemap_exclude_ids'],
			'has_password' => 'yes' === $settings['sitemap_password_protected'] ? null : false,
		];

		$this->add_render_attribute( [
			'category_link' => [
				'class' => 'elementor-sitemap-category-title',
			],
			'wrapper' => [
				'class' => 'elementor-sitemap-wrap',
			],
		] );

		if ( 'yes' === $settings['sitemap_add_nofollow'] ) {
			$this->add_render_attribute( 'a', 'rel', 'nofollow' );
		}

		echo '<div ';
		$this->print_render_attribute_string( 'wrapper' );
		echo '>';
		foreach ( $settings['sitemap_items'] as $sitemap_item ) {
			// PHPCS - `render_sitemap_item` is safe.
			echo $this->render_sitemap_item( $sitemap_item, $title_tag, $posts_query ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}
		echo '</div>';
	}

	private function get_list_title( $current_title, $item_type, $is_taxonomy ) {
		if ( '' !== $current_title ) {
			return $current_title;
		}

		if ( $is_taxonomy ) {
			$obj = get_taxonomy( $item_type );
			if ( false === $obj ) {
				return '';
			}
			return $obj->label;
		}

		$obj = get_post_type_object( $item_type );
		if ( null === $obj ) {
			return '';
		}
		if ( '' === $obj->labels->name ) {
			return $obj->labels->singular_name;
		}

		return $obj->labels->name;
	}

	private function render_sitemap_item( $sitemap_item, $title_tag, $query_args ) {
		$hierarchical = 'yes' === $sitemap_item['sitemap_hierarchical'];
		$max_depth = $sitemap_item['sitemap_depth'];
		$query_args['orderby'] = $sitemap_item['sitemap_orderby_post_type'];
		$query_args['order'] = $sitemap_item['sitemap_order'];
		$is_taxonomy = 'taxonomy' === $sitemap_item['sitemap_type_selector'];
		$item_type = $is_taxonomy ? $sitemap_item['sitemap_source_taxonomy'] : $sitemap_item['sitemap_source_post_type'];
		$title = $this->get_list_title( $sitemap_item['sitemap_title'], $item_type, $is_taxonomy );

		$this->add_render_attribute( [
			'section' . $item_type => [
				'class' => [
					'elementor-sitemap-section',
				],
			],
			'list' . $item_type => [
				'class' => [
					'elementor-sitemap-list',
					'elementor-sitemap-' . $item_type . '-list',
				],
			],
			$title_tag . $item_type => [
				'class' => [
					'elementor-sitemap-title',
					'elementor-sitemap-' . $item_type . '-title',
				],
			],
			'item' . $item_type => [
				'class' => [
					'elementor-sitemap-item',
					'elementor-sitemap-item-' . $item_type,
				],
			],
		] );

		$items_html = '';

		if ( $is_taxonomy ) {
			$items_html .= $this->sitemap_html_taxonomies( $item_type, $hierarchical, $max_depth, $sitemap_item, $query_args );
		} else {
			$items_html .= $this->sitemap_html_post_types( $item_type, $hierarchical, $max_depth, $query_args );
		}

		$title = empty( $title ) ? '' : sprintf( '<%s %s>%s</%1$s>', Utils::validate_html_tag( $title_tag ), $this->get_render_attribute_string( $title_tag . $item_type ), $title );

		$html = sprintf( '<div %s>%s', $this->get_render_attribute_string( 'section' . $item_type ), $title );
		if ( empty( $items_html ) ) {
			$html .= sprintf( '<span %s>%s</span>', $this->get_render_attribute_string( 'list' . $item_type ), esc_html__( 'None', 'elementor-pro' ) );
		} else {
			$html .= sprintf( '<ul %s>%s</ul>', $this->get_render_attribute_string( 'list' . $item_type ), $items_html );
		}
		$html .= '</div>';

		return $html;
	}

	private function sitemap_html_taxonomies( $taxonomy, $hierarchical, $max_depth, $item_settings, $query_args ) {
		$query_args['hide_empty'] = 'yes' === $item_settings['sitemap_hide_empty'];
		$query_args['show_option_none'] = '';
		$query_args['taxonomy'] = $taxonomy;
		$query_args['title_li'] = '';
		$query_args['echo'] = false;
		$query_args['depth'] = $max_depth;
		$query_args['hierarchical'] = $hierarchical;
		$query_args['orderby'] = $item_settings['sitemap_orderby_taxonomy'];

		$taxonomy_list = wp_list_categories( $query_args );
		$taxonomy_list = $this->add_sitemap_item_classes( 'item' . $taxonomy, $taxonomy_list );

		return $taxonomy_list;
	}

	/**
	 * @param string $post_type
	 * @param array  $query_args
	 *
	 * @return \WP_Query
	 */
	private function query_by_post_type( $post_type, $query_args ) {
		$args = [
			'posts_per_page' => -1,
			'update_post_meta_cache' => false,
			'post_type' => $post_type,
			'filter' => 'ids',
			'post_status' => 'publish',
		];

		$args = array_merge( $query_args, $args );

		$query = new \WP_Query( $args );

		return $query;
	}

	/**
	 * @param string $post_type
	 * @param bool   $hierarchical
	 * @param int    $depth
	 * @param array  $query_args
	 *
	 * @return string
	 */
	private function sitemap_html_post_types( $post_type, $hierarchical, $depth, $query_args ) {
		$html = '';

		$query_result = $this->query_by_post_type( $post_type, $query_args );

		if ( empty( $query_result ) ) {
			return '';
		}

		if ( $query_result->have_posts() ) {
			if ( ! $hierarchical ) {
				$depth = -1;
			}
			$walker = new \Walker_Page();
			$walker->tree_type = $post_type;
			$walker_str = $walker->walk( $query_result->posts, $depth );
			$html .= $this->add_sitemap_item_classes( 'item' . $post_type, $walker_str );
		}

		return $html;
	}

	private function add_sitemap_item_classes( $element, $str ) {
		$element_str = $this->get_render_attribute_string( $element );
		/**  remove trailing " */
		$element_str = substr_replace( $element_str, ' ', -1, 1 );
		$source = [
			'class="',
		];
		$replace = [
			$element_str,
		];

		if ( 'yes' === $this->get_settings_for_display( 'sitemap_add_nofollow' ) ) {
			$source[] = 'href=';
			$replace[] = 'rel="nofollow" href=';
		}

		return str_replace( $source, $replace, $str );
	}
}


PK!�?R)N_N_.modules/theme-elements/widgets/search-form.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Utils;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Search_Form extends Base {

	public function get_name() {
		return 'search-form';
	}

	public function get_title() {
		return esc_html__( 'Search Form', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-site-search';
	}

	public function get_keywords() {
		return [ 'search', 'form' ];
	}

	public function get_style_depends() {
		if ( Icons_Manager::is_migration_allowed() ) {
			return [ 'elementor-icons-fa-solid' ];
		}
		return [];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'search_content',
			[
				'label' => esc_html__( 'Search Form', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'classic',
				'options' => [
					'classic' => esc_html__( 'Classic', 'elementor-pro' ),
					'minimal' => esc_html__( 'Minimal', 'elementor-pro' ),
					'full_screen' => esc_html__( 'Full Screen', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-search-form--skin-',
				'render_type' => 'template',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'placeholder',
			[
				'label' => esc_html__( 'Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'separator' => 'before',
				'default' => esc_html__( 'Search', 'elementor-pro' ) . '...',
			]
		);

		$this->add_control(
			'heading_button_content',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'button_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'icon',
				'options' => [
					'icon' => esc_html__( 'Icon', 'elementor-pro' ),
					'text' => esc_html__( 'Text', 'elementor-pro' ),
				],
				'prefix_class' => 'elementor-search-form--button-type-',
				'render_type' => 'template',
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Search', 'elementor-pro' ),
				'separator' => 'after',
				'condition' => [
					'button_type' => 'text',
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'search',
				'options' => [
					'search' => [
						'title' => esc_html__( 'Search', 'elementor-pro' ),
						'icon' => 'eicon-search',
					],
					'arrow' => [
						'title' => esc_html__( 'Arrow', 'elementor-pro' ),
						'icon' => 'eicon-arrow-right',
					],
				],
				'render_type' => 'template',
				'prefix_class' => 'elementor-search-form--icon-',
				'condition' => [
					'button_type' => 'icon',
					'skin' => 'classic',
				],
			]
		);

		$this->add_control(
			'size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 50,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__container' => 'min-height: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}} .elementor-search-form__submit' => 'min-width: {{SIZE}}{{UNIT}}',
					'body:not(.rtl) {{WRAPPER}} .elementor-search-form__icon' => 'padding-left: calc({{SIZE}}{{UNIT}} / 3)',
					'body.rtl {{WRAPPER}} .elementor-search-form__icon' => 'padding-right: calc({{SIZE}}{{UNIT}} / 3)',
					'{{WRAPPER}} .elementor-search-form__input, {{WRAPPER}}.elementor-search-form--button-type-text .elementor-search-form__submit' => 'padding-left: calc({{SIZE}}{{UNIT}} / 3); padding-right: calc({{SIZE}}{{UNIT}} / 3)',
				],
				'condition' => [
					'skin!' => 'full_screen',
				],
			]
		);

		$this->add_control(
			'toggle_button_content',
			[
				'label' => esc_html__( 'Toggle', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'skin' => 'full_screen',
				],
			]
		);

		$this->add_control(
			'toggle_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'default' => 'center',
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-h-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form' => 'text-align: {{VALUE}}',
				],
				'condition' => [
					'skin' => 'full_screen',
				],
			]
		);

		$this->add_control(
			'toggle_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 33,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'skin' => 'full_screen',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_input_style',
			[
				'label' => esc_html__( 'Input', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'icon_size_minimal',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__icon' => '--e-search-form-icon-size-minimal: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'skin' => 'minimal',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'overlay_background_color',
			[
				'label' => esc_html__( 'Overlay Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}.elementor-search-form--skin-full_screen .elementor-search-form__container' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'skin' => 'full_screen',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'input_typography',
				'selector' => '{{WRAPPER}} input[type="search"].elementor-search-form__input',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->start_controls_tabs( 'tabs_input_colors' );

		$this->start_controls_tab(
			'tab_input_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'input_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__input,
					{{WRAPPER}} .elementor-search-form__icon,
					{{WRAPPER}} .elementor-lightbox .dialog-lightbox-close-button,
					{{WRAPPER}} .elementor-lightbox .dialog-lightbox-close-button:hover,
					{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input' => 'color: {{VALUE}}; fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'input_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container' => 'background-color: {{VALUE}}',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'skin!' => 'full_screen',
				],
			]
		);

		$this->add_control(
			'input_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container' => 'border-color: {{VALUE}}',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'input_box_shadow',
				'selector' => '{{WRAPPER}} .elementor-search-form__container',
				'fields_options' => [
					'box_shadow_type' => [
						'separator' => 'default',
					],
				],
				'condition' => [
					'skin!' => 'full_screen',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_input_focus',
			[
				'label' => esc_html__( 'Focus', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'input_text_color_focus',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form--focus .elementor-search-form__input,
					{{WRAPPER}} .elementor-search-form--focus .elementor-search-form__icon,
					{{WRAPPER}} .elementor-lightbox .dialog-lightbox-close-button:hover,
					{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input:focus' => 'color: {{VALUE}}; fill: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'input_background_color_focus',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form--focus .elementor-search-form__container' => 'background-color: {{VALUE}}',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input:focus' => 'background-color: {{VALUE}}',
				],
				'condition' => [
					'skin!' => 'full_screen',
				],
			]
		);

		$this->add_control(
			'input_border_color_focus',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form--focus .elementor-search-form__container' => 'border-color: {{VALUE}}',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input:focus' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'input_box_shadow_focus',
				'selector' => '{{WRAPPER}} .elementor-search-form--focus .elementor-search-form__container',
				'fields_options' => [
					'box_shadow_type' => [
						'separator' => 'default',
					],
				],
				'condition' => [
					'skin!' => 'full_screen',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'button_border_width',
			[
				'label' => esc_html__( 'Border Size', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'default' => [
					'size' => 3,
					'unit' => 'px',
				],
				'selectors' => [
					'{{WRAPPER}}:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container' => 'border-radius: {{SIZE}}{{UNIT}}',
					'{{WRAPPER}}.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'skin' => 'classic',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'selector' => '{{WRAPPER}} .elementor-search-form__submit',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'condition' => [
					'button_type' => 'text',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_button_colors' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit' => '--e-search-form-submit-text-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit:hover' => '--e-search-form-submit-text-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit' => '--e-search-form-submit-icon-size: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'button_type' => 'icon',
				],
				'separator' => 'before',
			]
		);

		$this->add_responsive_control(
			'button_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 1,
						'max' => 10,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__submit' => 'min-width: calc( {{SIZE}} * {{size.SIZE}}{{size.UNIT}} )',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_toggle_style',
			[
				'label' => esc_html__( 'Toggle', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'skin' => 'full_screen',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_toggle_color' );

		$this->start_controls_tab(
			'tab_toggle_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'toggle_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'toggle_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_toggle_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'toggle_color_hover',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle:hover' => '--e-search-form-toggle-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'toggle_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle:hover' => '--e-search-form-toggle-background-color: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'toggle_icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-icon-size: calc({{SIZE}}em / 100)',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'toggle_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 10,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-border-width: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'toggle_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-search-form__toggle' => '--e-search-form-toggle-border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings();
		$this->add_render_attribute(
			'input', [
				'placeholder' => $settings['placeholder'],
				'class' => 'elementor-search-form__input',
				'type' => 'search',
				'name' => 's',
				'title' => esc_html__( 'Search', 'elementor-pro' ),
				'value' => get_search_query(),
			]
		);

		// Set the selected icon.
		$icon_class = 'search';

		if ( 'icon' === $settings['button_type'] && 'arrow' === $settings['icon'] ) {
			$icon_class = is_rtl() ? 'arrow-left' : 'arrow-right';
		}

		$this->add_render_attribute( 'icon', [
			'class' => 'fa fa-' . $icon_class,
		] );

		$icon = [
			'value' => 'fas fa-' . $icon_class,
			'library' => 'fa-solid',
		];
		?>
		<form class="elementor-search-form" role="search" action="<?php // PHPCS - the method home_url is safe.
			echo home_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" method="get">
			<?php do_action( 'elementor_pro/search_form/before_input', $this ); ?>
			<?php if ( 'full_screen' === $settings['skin'] ) : ?>
			<div class="elementor-search-form__toggle">
				<?php $this->render_search_icon( $icon, [ 'aria-hidden' => 'true' ] ); ?>
				<span class="elementor-screen-only"><?php esc_html_e( 'Search', 'elementor-pro' ); ?></span>
			</div>
			<?php endif; ?>
			<div class="elementor-search-form__container">
				<?php if ( 'minimal' === $settings['skin'] ) : ?>
					<div class="elementor-search-form__icon">
						<?php $this->render_search_icon( $icon, [ 'aria-hidden' => 'true' ] ); ?>
						<span class="elementor-screen-only"><?php esc_html_e( 'Search', 'elementor-pro' ); ?></span>
					</div>
				<?php endif; ?>
				<input <?php $this->print_render_attribute_string( 'input' ); ?>>
				<?php do_action( 'elementor_pro/search_form/after_input', $this ); ?>
				<?php if ( 'classic' === $settings['skin'] ) : ?>
					<button class="elementor-search-form__submit" type="submit" title="<?php esc_attr_e( 'Search', 'elementor-pro' ); ?>" aria-label="<?php esc_attr_e( 'Search', 'elementor-pro' ); ?>">
						<?php if ( 'icon' === $settings['button_type'] ) : ?>
							<?php $this->render_search_icon( $icon, $this->get_render_attributes( 'icon' ) ); ?>
							<span class="elementor-screen-only"><?php esc_html_e( 'Search', 'elementor-pro' ); ?></span>
						<?php elseif ( ! empty( $settings['button_text'] ) ) : ?>
							<?php $this->print_unescaped_setting( 'button_text' ); ?>
						<?php endif; ?>
					</button>
				<?php endif; ?>
				<?php if ( 'full_screen' === $settings['skin'] ) : ?>
				<div class="dialog-lightbox-close-button dialog-close-button">
					<?php
						Icons_Manager::render_icon( [
							'library' => 'eicons',
							'value' => 'eicon-close',
						], [ 'aria-hidden' => 'true' ] );
					?>
					<span class="elementor-screen-only"><?php esc_html_e( 'Close', 'elementor-pro' ); ?></span>
				</div>
				<?php endif ?>
			</div>
		</form>
		<?php
	}

	/**
	 * Render Search Form widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var iconClass = 'fa fas fa-search';

			if ( 'arrow' === settings.icon ) {
				if ( elementorCommon.config.isRTL ) {
					iconClass = 'fa fas fa-arrow-left';
				} else {
					iconClass = 'fa fas fa-arrow-right';
				}
			}
		#>
		<form class="elementor-search-form" action="" role="search">
			<# if ( 'full_screen' === settings.skin ) { #>
				<div class="elementor-search-form__toggle">
					<i class="fa fas fa-search" aria-hidden="true"></i>
					<span class="elementor-screen-only"><?php esc_html_e( 'Search', 'elementor-pro' ); ?></span>
				</div>
			<# } #>
			<div class="elementor-search-form__container">
				<# if ( 'minimal' === settings.skin ) { #>
					<div class="elementor-search-form__icon">
						<i class="fa fas fa-search" aria-hidden="true"></i>
						<span class="elementor-screen-only"><?php esc_html_e( 'Search', 'elementor-pro' ); ?></span>
					</div>
				<# } #>
				<input type="search"
					   name="s"
					   title="<?php esc_attr_e( 'Search', 'elementor-pro' ); ?>"
					   class="elementor-search-form__input"
					   placeholder="{{ settings.placeholder }}">

				<# if ( 'classic' === settings.skin ) { #>
					<button class="elementor-search-form__submit" type="submit">
						<# if ( 'icon' === settings.button_type ) { #>
							<i class="{{ iconClass }}" aria-hidden="true"></i>
							<span class="elementor-screen-only"><?php esc_html_e( 'Submit', 'elementor-pro' ); ?></span>
						<# } else if ( settings.button_text ) { #>
							{{{ settings.button_text }}}
						<# } #>
					</button>
				<# } #>
			</div>
		</form>
		<?php
	}

	private function render_search_icon( $icon, $attributes = [] ) {
		// When the experiment is active and the search icon renders as SVG, it needs additional container for the icon box border.
		if ( Plugin::elementor()->experiments->is_feature_active( 'e_font_icon_svg' ) ) {
			$icon_html = Icons_Manager::render_font_icon( $icon, $attributes );

			Utils::print_unescaped_internal_string( sprintf( '<div class="e-font-icon-svg-container">%s</div>', $icon_html ) );
		} else {
			$migration_allowed = Icons_Manager::is_migration_allowed();

			if ( ! $migration_allowed || ! Icons_Manager::render_icon( $icon, [ 'aria-hidden' => 'true' ] ) ) {
				Utils::print_unescaped_internal_string( sprintf( '<i %s aria-hidden="true"></i>', esc_attr( $this->get_render_attribute_string( 'icon' ) ) ) );
			}
		}
	}
}
PK!��yy.modules/theme-elements/widgets/breadcrumbs.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Typography;
use Elementor\Utils;
use WPSEO_Breadcrumbs;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Breadcrumbs extends Base {

	public function get_name() {
		return 'breadcrumbs';
	}

	public function get_title() {
		return esc_html__( 'Breadcrumbs', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-yoast';
	}

	public function get_script_depends() {
		return [ 'breadcrumbs' ];
	}

	public function get_keywords() {
		return [ 'yoast', 'seo', 'breadcrumbs', 'internal links' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_breadcrumbs_content',
			[
				'label' => esc_html__( 'Breadcrumbs', 'elementor-pro' ),
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor%s-align-',
			]
		);

		$this->add_control(
			'html_tag',
			[
				'label' => esc_html__( 'HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					'p' => 'p',
					'div' => 'div',
					'nav' => 'nav',
					'span' => 'span',
				],
				'default' => '',
			]
		);

		$this->add_control(
			'html_description',
			[
				'raw' => esc_html__( 'Additional settings are available in the Yoast SEO', 'elementor-pro' ) . ' ' . sprintf( '<a href="%s" target="_blank">%s</a>', admin_url( 'admin.php?page=wpseo_titles#top#breadcrumbs' ), esc_html__( 'Breadcrumbs Panel', 'elementor-pro' ) ),
				'type' => Controls_Manager::RAW_HTML,
				'content_classes' => 'elementor-descriptor',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Breadcrumbs', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'typography',
				'selector' => '{{WRAPPER}}',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_SECONDARY,
				],
			]
		);

		$this->add_control(
			'text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => 'color: {{VALUE}};',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_breadcrumbs_style' );

		$this->start_controls_tab(
			'tab_color_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'link_color',
			[
				'label' => esc_html__( 'Link Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} a' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_color_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'link_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} a:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_section();
	}

	private function get_html_tag() {
		$html_tag = $this->get_settings( 'html_tag' );

		if ( empty( $html_tag ) ) {
			$html_tag = 'p';
		}

		return Utils::validate_html_tag( $html_tag );
	}

	protected function render() {
		if ( class_exists( '\WPSEO_Breadcrumbs' ) ) {
			$html_tag = $this->get_html_tag();
			WPSEO_Breadcrumbs::breadcrumb( '<' . $html_tag . ' id="breadcrumbs">', '</' . $html_tag . '>' );
		}

	}
}
PK!6�"TUTU-modules/theme-elements/widgets/author-box.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Author_Box extends Base {

	public function get_name() {
		return 'author-box';
	}

	public function get_title() {
		return esc_html__( 'Author Box', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-person';
	}

	public function get_categories() {
		return [
			'theme-elements-single',
			'theme-elements-archive',
		];
	}

	public function get_keywords() {
		return [ 'author', 'user', 'profile', 'biography', 'testimonial', 'avatar' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_author_info',
			[
				'label' => esc_html__( 'Author Info', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'source',
			[
				'label' => esc_html__( 'Source', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'current',
				'options' => [
					'current' => esc_html__( 'Current Author', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
			]
		);

		$this->add_control(
			'show_avatar',
			[
				'label' => esc_html__( 'Profile Picture', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'prefix_class' => 'elementor-author-box--avatar-',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'separator' => 'before',
				'condition' => [
					'source!' => 'custom',
				],
				'render_type' => 'template',
			]
		);

		//This controls for custom source
		$this->add_control(
			'author_avatar',
			[
				'label' => esc_html__( 'Profile Picture', 'elementor-pro' ),
				'type' => Controls_Manager::MEDIA,
				'default' => [
					'url' => Utils::get_placeholder_image_src(),
				],
				'condition' => [
					'source' => 'custom',
				],
				'separator' => 'before',
			]
		);
		//END

		$this->add_control(
			'show_name',
			[
				'label' => esc_html__( 'Display Name', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'prefix_class' => 'elementor-author-box--name-',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'condition' => [
					'source!' => 'custom',
				],
				'render_type' => 'template',
				'separator' => 'before',
			]
		);

		//This control for custom source
		$this->add_control(
			'author_name',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'John Doe', 'elementor-pro' ),
				'condition' => [
					'source' => 'custom',
				],
				'separator' => 'before',
			]
		);
		//END

		$this->add_control(
			'author_name_tag',
			[
				'label' => esc_html__( 'HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
					'span' => 'span',
				],
				'default' => 'h4',
			]
		);

		$this->add_control(
			'link_to',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'None', 'elementor-pro' ),
					'website' => esc_html__( 'Website', 'elementor-pro' ),
					'posts_archive' => esc_html__( 'Posts Archive', 'elementor-pro' ),
				],
				'condition' => [
					'source!' => 'custom',
				],
				'description' => esc_html__( 'Link for the Author Name and Image', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_biography',
			[
				'label' => esc_html__( 'Biography', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'prefix_class' => 'elementor-author-box--biography-',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'yes',
				'condition' => [
					'source!' => 'custom',
				],
				'render_type' => 'template',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'show_link',
			[
				'label' => esc_html__( 'Archive Button', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'prefix_class' => 'elementor-author-box--link-',
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => 'no',
				'condition' => [
					'source!' => 'custom',
				],
				'render_type' => 'template',
			]
		);

		$this->add_control(
			'author_website',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'condition' => [
					'source' => 'custom',
				],
				'description' => esc_html__( 'Link for the Author Name and Image', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'author_bio',
			[
				'label' => esc_html__( 'Biography', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
				'rows' => 3,
				'condition' => [
					'source' => 'custom',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'posts_url',
			[
				'label' => esc_html__( 'Archive Button', 'elementor-pro' ),
				'type' => Controls_Manager::URL,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'condition' => [
					'source' => 'custom',
				],
			]
		);

		$this->add_control(
			'link_text',
			[
				'label' => esc_html__( 'Archive Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'All Posts', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'layout',
			[
				'label' => esc_html__( 'Layout', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-h-align-left',
					],
					'above' => [
						'title' => esc_html__( 'Above', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-h-align-right',
					],
				],
				'separator' => 'before',
				'prefix_class' => 'elementor-author-box--layout-image-',
			]
		);

		$this->add_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-author-box--align-',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_image_style',
			[
				'label' => esc_html__( 'Image', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'image_vertical_align',
			[
				'label' => esc_html__( 'Vertical Align', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'top' => [
						'title' => esc_html__( 'Top', 'elementor-pro' ),
						'icon' => 'eicon-v-align-top',
					],
					'middle' => [
						'title' => esc_html__( 'Middle', 'elementor-pro' ),
						'icon' => 'eicon-v-align-middle',
					],
				],
				'prefix_class' => 'elementor-author-box--image-valign-',
				'condition' => [
					'layout!' => 'above',
				],
			]
		);

		$this->add_responsive_control(
			'image_size',
			[
				'label' => esc_html__( 'Image Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 200,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__avatar img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'image_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'body.rtl {{WRAPPER}}.elementor-author-box--layout-image-left .elementor-author-box__avatar,
					 body:not(.rtl) {{WRAPPER}}:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar' => 'margin-right: {{SIZE}}{{UNIT}}; margin-left: 0;',

					'body:not(.rtl) {{WRAPPER}}.elementor-author-box--layout-image-right .elementor-author-box__avatar,
					 body.rtl {{WRAPPER}}:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar' => 'margin-left: {{SIZE}}{{UNIT}}; margin-right:0;',

					'{{WRAPPER}}.elementor-author-box--layout-image-above .elementor-author-box__avatar' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'image_border',
			[
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__avatar img' => 'border-style: solid',
				],
			]
		);

		$this->add_control(
			'image_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#000',
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__avatar img' => 'border-color: {{VALUE}}',
				],
				'condition' => [
					'image_border' => 'yes',
				],
			]
		);

		$this->add_responsive_control(
			'image_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__avatar img' => 'border-width: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'image_border' => 'yes',
				],
			]
		);

		$this->add_control(
			'image_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__avatar img' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'input_box_shadow',
				'selector' => '{{WRAPPER}} .elementor-author-box__avatar img',
				'fields_options' => [
					'box_shadow_type' => [
						'separator' => 'default',
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_text_style',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'heading_name_style',
			[
				'label' => esc_html__( 'Name', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'name_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__name' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'name_typography',
				'selector' => '{{WRAPPER}} .elementor-author-box__name',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_responsive_control(
			'name_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__name' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_bio_style',
			[
				'label' => esc_html__( 'Biography', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'bio_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__bio' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'bio_typography',
				'selector' => '{{WRAPPER}} .elementor-author-box__bio',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_responsive_control(
			'bio_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__bio' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_button',
			[
				'label' => 'Button',
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button' => 'color: {{VALUE}}; border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-author-box__button',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button:hover' => 'border-color: {{VALUE}}; color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_background_hover_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'button_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 20,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button' => 'border-width: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'before',
				'condition' => [
					'link_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button' => 'border-radius: {{SIZE}}{{UNIT}};',
				],
				'separator' => 'after',
				'condition' => [
					'link_text!' => '',
				],
			]
		);

		$this->add_control(
			'button_text_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-author-box__button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_active_settings();
		$author = [];
		$link_tag = 'div';
		$link_url = '';
		$link_target = '';
		$author_name_tag = Utils::validate_html_tag( $settings['author_name_tag'] );

		$custom_src = ( 'custom' === $settings['source'] );

		if ( 'current' === $settings['source'] ) {

			$avatar_args['size'] = 300;

			$user_id = get_the_author_meta( 'ID' );
			$author['avatar'] = get_avatar_url( $user_id, $avatar_args );
			$author['display_name'] = get_the_author_meta( 'display_name' );
			$author['website'] = get_the_author_meta( 'user_url' );
			$author['bio'] = get_the_author_meta( 'description' );
			$author['posts_url'] = get_author_posts_url( $user_id );

		} elseif ( $custom_src ) {

			if ( ! empty( $settings['author_avatar']['url'] ) ) {
				$avatar_src = $settings['author_avatar']['url'];

				if ( $settings['author_avatar']['id'] ) {
					$attachment_image_src = wp_get_attachment_image_src( $settings['author_avatar']['id'], 'medium' );

					if ( ! empty( $attachment_image_src[0] ) ) {
						$avatar_src = $attachment_image_src[0];
					}
				}

				$author['avatar'] = $avatar_src;
			}

			$author['display_name'] = $settings['author_name'];
			$author['website'] = $settings['author_website']['url'];
			$author['bio'] = wpautop( $settings['author_bio'] );
			$author['posts_url'] = $settings['posts_url']['url'];
		}

		$print_avatar = ( ( ! $custom_src && 'yes' === $settings['show_avatar'] ) || ( $custom_src && ! empty( $author['avatar'] ) ) );
		$print_name = ( ( ! $custom_src && 'yes' === $settings['show_name'] ) || ( $custom_src && ! empty( $author['display_name'] ) ) );
		$print_bio = ( ( ! $custom_src && 'yes' === $settings['show_biography'] ) || ( $custom_src && ! empty( $author['bio'] ) ) );
		$print_link = ( ( ! $custom_src && 'yes' === $settings['show_link'] ) && ! empty( $settings['link_text'] ) || ( $custom_src && ! empty( $author['posts_url'] ) && ! empty( $settings['link_text'] ) ) );

		if ( ! empty( $settings['link_to'] ) || $custom_src ) {
			if ( ( $custom_src || 'website' === $settings['link_to'] ) && ! empty( $author['website'] ) ) {
				$link_tag = 'a';
				$link_url = $author['website'];

				if ( $custom_src ) {
					$link_target = $settings['author_website']['is_external'] ? '_blank' : '';
				} else {
					$link_target = '_blank';
				}
			} elseif ( 'posts_archive' === $settings['link_to'] && ! empty( $author['posts_url'] ) ) {
				$link_tag = 'a';
				$link_url = $author['posts_url'];
			}

			if ( ! empty( $link_url ) ) {
				$this->add_render_attribute( 'author_link', 'href', $link_url );

				if ( ! empty( $link_target ) ) {
					$this->add_render_attribute( 'author_link', 'target', $link_target );
				}
			}
		}

		$this->add_render_attribute(
			'button',
			'class', [
				'elementor-author-box__button',
				'elementor-button',
				'elementor-size-xs',
			]
		);

		if ( $print_link ) {
			$this->add_render_attribute( 'button', 'href', $author['posts_url'] );
		}

		if ( $print_link && ! empty( $settings['button_hover_animation'] ) ) {
			$this->add_render_attribute(
				'button',
				'class',
				'elementor-animation-' . $settings['button_hover_animation']
			);
		}

		if ( $print_avatar ) {
			$this->add_render_attribute( 'avatar', 'src', $author['avatar'] );

			if ( ! empty( $author['display_name'] ) ) {
				$this->add_render_attribute( 'avatar', 'alt', $author['display_name'] );
			}
		}

		?>
		<div class="elementor-author-box">
			<?php if ( $print_avatar ) { ?>
				<<?php Utils::print_validated_html_tag( $link_tag ); ?> <?php $this->print_render_attribute_string( 'author_link' ); ?> class="elementor-author-box__avatar">
					<img <?php $this->print_render_attribute_string( 'avatar' ); ?>>
				</<?php Utils::print_validated_html_tag( $link_tag ); ?>>
			<?php } ?>

			<div class="elementor-author-box__text">
				<?php if ( $print_name ) : ?>
					<<?php Utils::print_validated_html_tag( $link_tag ); ?> <?php $this->print_render_attribute_string( 'author_link' ); ?>>
						<<?php Utils::print_validated_html_tag( $author_name_tag ); ?> class="elementor-author-box__name">
							<?php Utils::print_unescaped_internal_string( $author['display_name'] ); ?>
						</<?php Utils::print_validated_html_tag( $author_name_tag ); ?>>
					</<?php Utils::print_validated_html_tag( $link_tag ); ?>>
				<?php endif; ?>

				<?php if ( $print_bio ) : ?>
					<div class="elementor-author-box__bio">
						<?php Utils::print_unescaped_internal_string( $author['bio'] ); ?>
					</div>
				<?php endif; ?>

				<?php if ( $print_link ) : ?>
					<a <?php $this->print_render_attribute_string( 'button' ); ?>>
						<?php $this->print_unescaped_setting( 'link_text' ); ?>
					</a>
				<?php endif; ?>
			</div>
		</div>
		<?php
	}
}
PK!y���!modules/theme-elements/module.phpnu�[���<?php
namespace ElementorPro\Modules\ThemeElements;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	const SOURCE_TYPE_CURRENT_POST = 'current_post';
	const SOURCE_TYPE_CUSTOM = 'custom';

	public function get_name() {
		return 'theme-elements';
	}

	public function get_widgets() {
		$widgets = [
			'Search_Form',
			'Author_Box',
			'Post_Comments',
			'Post_Navigation',
			'Post_Info',
			'Sitemap',
		];

		if ( $this->is_yoast_seo_active() ) {
			$widgets[] = 'Breadcrumbs';
		}

		return $widgets;
	}

	public function is_yoast_seo_active() {
		return function_exists( 'yoast_breadcrumb' );
	}
}
PK!��/q		modules/forms/module.phpnu�[���<?php
namespace ElementorPro\Modules\Forms;

use ElementorPro\Modules\Forms\Data\Controller;
use Elementor\Core\Experiments\Manager;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\Forms\Actions;
use ElementorPro\Modules\Forms\Classes;
use ElementorPro\Modules\Forms\Controls\Fields_Map;
use ElementorPro\Modules\Forms\Registrars\Form_Actions_Registrar;
use ElementorPro\Modules\Forms\Registrars\Form_Fields_Registrar;
use ElementorPro\Modules\Forms\Submissions\Component as Form_Submissions_Component;
use ElementorPro\Modules\Forms\Controls\Fields_Repeater;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends Module_Base {
	/**
	 * @var Form_Actions_Registrar
	 */
	public $actions_registrar;

	/**
	 * @var Form_Fields_Registrar
	 */
	public $fields_registrar;

	public function get_name() {
		return 'forms';
	}

	public function get_widgets() {
		return [
			'Form',
			'Login',
		];
	}

	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'i18n' => [
				'x_field' => esc_html__( '%s Field', 'elementor-pro' ),
			],
		] );

		return $settings;
	}

	public static function find_element_recursive( $elements, $form_id ) {
		foreach ( $elements as $element ) {
			if ( $form_id === $element['id'] ) {
				return $element;
			}

			if ( ! empty( $element['elements'] ) ) {
				$element = self::find_element_recursive( $element['elements'], $form_id );

				if ( $element ) {
					return $element;
				}
			}
		}

		return false;
	}

	public function register_controls() {
		$controls_manager = Plugin::elementor()->controls_manager;

		$controls_manager->register_control( Fields_Repeater::CONTROL_TYPE, new Fields_Repeater() );
		$controls_manager->register_control( Fields_Map::CONTROL_TYPE, new Fields_Map() );
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function forms_panel_action_data( array $data ) {
		if ( empty( $data['service'] ) ) {
			throw new \Exception( 'service_required' );
		}

		/** @var \ElementorPro\Modules\Forms\Classes\Integration_Base $integration */
		$integration = $this->actions_registrar->get( $data['service'] );

		if ( ! $integration ) {
			throw new \Exception( 'action_not_found' );
		}

		return $integration->handle_panel_request( $data );
	}

	/**
	 * @deprecated 3.5.0 - Use `fields_registrar->register()`.
	 */
	public function add_form_field_type( $type, $instance ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function(
			__METHOD__,
			'3.5.0',
			'fields_registrar->register()'
		);

		$this->fields_registrar->register( $instance, $type );
	}

	/**
	 * @deprecated 3.5.0 - Use `actions_registrar->register()`.
	 */
	public function add_form_action( $id, $instance ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function(
			__METHOD__,
			'3.5.0',
			'actions_registrar->register()'
		);

		$this->actions_registrar->register( $instance, $id );
	}

	/**
	 * @deprecated 3.5.0 - Use `actions_registrar->get()`.
	 */
	public function get_form_actions( $id = null ) {
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->deprecated_function(
			__METHOD__,
			'3.5.0',
			'actions_registrar->get()'
		);

		return $this->actions_registrar->get( $id );
	}

	public function register_ajax_actions( Ajax $ajax ) {
		$ajax->register_ajax_action( 'pro_forms_panel_action_data', [ $this, 'forms_panel_action_data' ] );
	}

	/**
	 * Register submissions
	 */
	private function register_submissions_component() {
		$experiments_manager = Plugin::elementor()->experiments;
		$name = Form_Submissions_Component::NAME;

		$experiments_manager->add_feature( [
			'name' => $name,
			'title' => esc_html__( 'Form Submissions', 'elementor-pro' ),
			'description' => esc_html__( 'Never lose another submission! Using “Actions After Submit” you can now choose to save all submissions to an internal database.', 'elementor-pro' ),
			'release_status' => Manager::RELEASE_STATUS_STABLE,
			'default' => Manager::STATE_ACTIVE,
		] );

		if ( ! $experiments_manager->is_feature_active( $name ) ) {
			return;
		}

		$this->add_component( $name, new Form_Submissions_Component() );
	}

	/**
	 * Module constructor.
	 */
	public function __construct() {
		parent::__construct();

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
		add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls' ] );
		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ] );

		$this->add_component( 'recaptcha', new Classes\Recaptcha_Handler() );
		$this->add_component( 'recaptcha_v3', new Classes\Recaptcha_V3_Handler() );
		$this->add_component( 'honeypot', new Classes\Honeypot_Handler() );

		$this->register_submissions_component();

		// Initialize registrars.
		$this->actions_registrar = new Form_Actions_Registrar();
		$this->fields_registrar = new Form_Fields_Registrar();

		// Add Actions as components, that runs manually in the Ajax_Handler

		// Activity Log
		if ( function_exists( 'aal_insert_log' ) ) {
			$this->add_component( 'activity_log', new Actions\Activity_Log() );
		}

		// Contact Form to Database
		if ( function_exists( 'CF7DBPlugin_init' ) ) {
			$this->add_component( 'cf7db', new Actions\CF7DB() );
		}

		// Ajax Handler
		if ( Classes\Ajax_Handler::is_form_submitted() ) {
			$this->add_component( 'ajax_handler', new Classes\Ajax_Handler() );

			/**
			 * Elementor form submitted.
			 *
			 * Fires when the form is submitted.
			 *
			 * @since 2.0.0
			 *
			 * @param Module $this An instance of the form module.
			 */
			do_action( 'elementor_pro/forms/form_submitted', $this );
		}
	}
}
PK!�F0l	l	#modules/forms/fields/acceptance.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Acceptance extends Field_Base {

	public function get_type() {
		return 'acceptance';
	}

	public function get_name() {
		return esc_html__( 'Acceptance', 'elementor-pro' );
	}

	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'acceptance_text' => [
				'name' => 'acceptance_text',
				'label' => esc_html__( 'Acceptance Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'checked_by_default' => [
				'name' => 'checked_by_default',
				'label' => esc_html__( 'Checked by Default', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );
		$widget->update_control( 'form_fields', $control_data );
	}

	public function render( $item, $item_index, $form ) {
		$label = '';
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-acceptance-field' );
		$form->add_render_attribute( 'input' . $item_index, 'type', 'checkbox', true );

		if ( ! empty( $item['acceptance_text'] ) ) {
			$label = '<label for="' . $form->get_attribute_id( $item ) . '">' . $item['acceptance_text'] . '</label>';
		}

		if ( ! empty( $item['checked_by_default'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'checked', 'checked' );
		}

		?>
		<div class="elementor-field-subgroup">
			<span class="elementor-field-option">
				<input <?php $form->print_render_attribute_string( 'input' . $item_index ); ?>>
				<?php // PHPCS - the variables $label is safe.
				echo $label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
			</span>
		</div>
		<?php
	}
}
PK!%�i#modules/forms/fields/field-base.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Field_Base {
	public $depended_scripts = [];
	public $depended_styles = [];

	abstract public function get_type();

	abstract public function get_name();

	/**
	 * Get the field ID.
	 *
	 * TODO: Make it an abstract function that will replace `get_type()`.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	public function get_id() {
		return $this->get_type();
	}

	abstract public function render( $item, $item_index, $form );

	public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {}

	public function process_field( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {}

	public function add_assets_depends( $form ) {
		foreach ( $this->depended_scripts as $script ) {
			$form->add_script_depends( $script );
		}

		foreach ( $this->depended_styles as $style ) {
			$form->add_style_depends( $style );
		}
	}

	public function add_preview_depends() {
		foreach ( $this->depended_scripts as $script ) {
			wp_enqueue_script( $script );
		}

		foreach ( $this->depended_styles as $style ) {
			wp_enqueue_style( $style );
		}
	}

	public function add_field_type( $field_types ) {
		if ( ! in_array( $this->get_type(), $field_types ) ) {
			$field_types[ $this->get_type() ] = $this->get_name();
		}

		return $field_types;
	}

	public function field_render( $item, $item_index, $form ) {
		$this->add_assets_depends( $form );
		$this->render( $item, $item_index, $form );
	}

	public function sanitize_field( $value, $field ) {
		return sanitize_text_field( $value );
	}

	public function inject_field_controls( $array, $controls_to_inject ) {
		$keys = array_keys( $array );
		$key_index = array_search( 'required', $keys ) + 1;

		return array_merge( array_slice( $array, 0, $key_index, true ),
			$controls_to_inject,
			array_slice( $array, $key_index, null, true )
		);
	}

	public function __construct() {
		$field_type = $this->get_type();
		add_action( "elementor_pro/forms/render_field/{$field_type}", [ $this, 'field_render' ], 10, 3 );
		add_action( "elementor_pro/forms/validation/{$field_type}", [ $this, 'validation' ], 10, 3 );
		add_action( "elementor_pro/forms/process/{$field_type}", [ $this, 'process_field' ], 10, 3 );
		add_filter( 'elementor_pro/forms/field_types', [ $this, 'add_field_type' ] );
		add_filter( "elementor_pro/forms/sanitize/{$field_type}", [ $this, 'sanitize_field' ], 10, 2 );
		add_action( 'elementor/preview/enqueue_scripts', [ $this, 'add_preview_depends' ] );
		if ( method_exists( $this, 'update_controls' ) ) {
			add_action( 'elementor/element/form/section_form_fields/before_section_end', [ $this, 'update_controls' ] );
		}
	}
}
PK!}ζ7�7modules/forms/fields/upload.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use Elementor\Widget_Base;
use ElementorPro\Modules\Forms\Classes;
use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Widgets\Form;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Upload extends Field_Base {

	private $fixed_files_indices = false;

	public function get_type() {
		return 'upload';
	}

	public function get_name() {
		return esc_html__( 'File Upload', 'elementor-pro' );
	}

	/**
	 * @param Widget_Base $widget
	 */
	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'file_sizes' => [
				'name' => 'file_sizes',
				'label' => esc_html__( 'Max. File Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'options' => $this->get_upload_file_size_options(),
				'description' => esc_html__( 'If you need to increase max upload size please contact your hosting.', 'elementor-pro' ),
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'file_types' => [
				'name' => 'file_types',
				'label' => esc_html__( 'Allowed File Types', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'description' => esc_html__( 'Enter the allowed file types, separated by a comma (jpg, gif, pdf, etc).', 'elementor-pro' ),
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'allow_multiple_upload' => [
				'name' => 'allow_multiple_upload',
				'label' => esc_html__( 'Multiple Files', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'max_files' => [
				'name' => 'max_files',
				'label' => esc_html__( 'Max. Files', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'condition' => [
					'field_type' => $this->get_type(),
					'allow_multiple_upload' => 'yes',
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );
		$widget->update_control( 'form_fields', $control_data );
	}

	/**
	 * @param      $item
	 * @param      $item_index
	 * @param Form $form
	 */
	public function render( $item, $item_index, $form ) {
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-upload-field' );
		$form->add_render_attribute( 'input' . $item_index, 'type', 'file', true );

		if ( ! empty( $item['allow_multiple_upload'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'multiple', 'multiple' );
			$form->add_render_attribute( 'input' . $item_index, 'name', $form->get_attribute_name( $item ) . '[]', true );
		}

		if ( ! empty( $item['file_sizes'] ) ) {
			$form->add_render_attribute(
				'input' . $item_index,
				[
					'data-maxsize' => $item['file_sizes'],  //MB
					'data-maxsize-message' => esc_html__( 'This file exceeds the maximum allowed size.', 'elementor-pro' ),
				]
			);
		}
		?>
		<input <?php $form->print_render_attribute_string( 'input' . $item_index ); ?>>

		<?php
	}

	/**
	 * Fix multiple files upload indices in global $_FILES array
	 */
	private function fix_file_indices() {
		if ( $this->fixed_files_indices ) {
			return;
		}
		// a mapping of $_FILES indices for validity checking
		$names = [
			'name',
			'type',
			'tmp_name',
			'error',
			'size',
		];
		$files = $_FILES['form_fields'];
		// iterate over each uploaded file
		foreach ( $files as $key => $part ) {
			$key = (string) $key;
			if ( in_array( $key, $names ) && is_array( $part ) ) {
				foreach ( $part as $position => $value ) {
					if ( is_array( $value ) ) {
						foreach ( $value as $index => $inner_val ) {
							$files[ $position ][ $index ][ $key ] = $inner_val;
						}
					} else {
						$files[ $position ][0][ $key ] = $value;
					}
				}
				// remove old key reference
				unset( $files[ $key ] );
			}
		}
		$_FILES['form_fields'] = $files;
		$this->fixed_files_indices = true;
	}

	/**
	 * validate uploaded file size against allowed file size
	 *
	 * @param array $field
	 * @param       $file
	 *
	 * @return bool
	 */
	private function is_file_size_valid( $field, $file ) {
		$allowed_size = ( ! empty( $field['file_sizes'] ) ) ? $field['file_sizes'] : wp_max_upload_size() / pow( 1024, 2 );
		// File size validation
		$file_size_meta = $allowed_size * pow( 1024, 2 );
		$upload_file_size = $file['size'];

		return ( $upload_file_size < $file_size_meta );
	}

	/**
	 * validates uploaded file type against allowed file types
	 *
	 * @param array $field
	 * @param       $file
	 *
	 * @return bool
	 */
	private function is_file_type_valid( $field, $file ) {
		// File type validation
		if ( empty( $field['file_types'] ) ) {
			$field['file_types'] = 'jpg,jpeg,png,gif,pdf,doc,docx,ppt,pptx,odt,avi,ogg,m4a,mov,mp3,mp4,mpg,wav,wmv';
		}

		$file_extension = pathinfo( $file['name'], PATHINFO_EXTENSION );
		$file_types_meta = explode( ',', $field['file_types'] );
		$file_types_meta = array_map( 'trim', $file_types_meta );

		$file_types_meta = array_map( 'strtolower', $file_types_meta );
		$file_extension = strtolower( $file_extension );

		return ( in_array( $file_extension, $file_types_meta ) && ! in_array( $file_extension, $this->get_blacklist_file_ext() ) );
	}

	/**
	 * a set of black listed file extensions
	 *
	 * @return array
	 */
	private function get_blacklist_file_ext() {
		static $blacklist = false;
		if ( ! $blacklist ) {
			$blacklist = [ 'php', 'php3', 'php4', 'php5', 'php6', 'phps', 'php7', 'phtml', 'shtml', 'pht', 'swf', 'html', 'asp', 'aspx', 'cmd', 'csh', 'bat', 'htm', 'hta', 'jar', 'exe', 'com', 'js', 'lnk', 'htaccess', 'htpasswd', 'phtml', 'ps1', 'ps2', 'py', 'rb', 'tmp', 'cgi' ];

			/**
			 * Forms file types black list.
			 *
			 * Filters the black list of  file types that won’t be uploaded using the forms.
			 *
			 * @since 1.0.0
			 *
			 * @param array $blacklist A black list of file types.
			 */
			$blacklist = apply_filters( 'elementor_pro/forms/filetypes/blacklist', $blacklist );
		}

		return $blacklist;
	}

	/**
	 * validate uploaded file field
	 *
	 * @param array                $field
	 * @param Classes\Form_Record  $record
	 * @param Classes\Ajax_Handler $ajax_handler
	 */
	public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {
		static $upload_errors = false;

		if ( ! $upload_errors ) {
			$upload_errors = [
				UPLOAD_ERR_OK => esc_html__( 'There is no error, the file uploaded with success.', 'elementor-pro' ),
				/* translators: 1: upload_max_filesize, 2: php.ini */
				UPLOAD_ERR_INI_SIZE => sprintf( esc_html__( 'The uploaded file exceeds the %1$s directive in %2$s.', 'elementor-pro' ), 'upload_max_filesize', 'php.ini' ),
				/* translators: %s: MAX_FILE_SIZE */
				UPLOAD_ERR_FORM_SIZE => sprintf( esc_html__( 'The uploaded file exceeds the %s directive that was specified in the HTML form.', 'elementor-pro' ), 'MAX_FILE_SIZE' ),
				UPLOAD_ERR_PARTIAL => esc_html__( 'The uploaded file was only partially uploaded.', 'elementor-pro' ),
				UPLOAD_ERR_NO_FILE => esc_html__( 'No file was uploaded.', 'elementor-pro' ),
				UPLOAD_ERR_NO_TMP_DIR => esc_html__( 'Missing a temporary folder.', 'elementor-pro' ),
				UPLOAD_ERR_CANT_WRITE => esc_html__( 'Failed to write file to disk.', 'elementor-pro' ),
				/* translators: %s: phpinfo() */
				UPLOAD_ERR_EXTENSION => sprintf( esc_html__( 'A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with %s may help.', 'elementor-pro' ), 'phpinfo()' ),
			];
			$this->fix_file_indices();
		}

		$id = $field['id'];

		if ( ! empty( $field['max_files'] ) ) {
			if ( count( $_FILES['form_fields'][ $id ] ) > $field['max_files'] ) {
				$error_message = sprintf(
					/* translators: %d: The number of allowed files. */
					_n( 'You can upload only %d file.', 'You can upload up to %d files.', intval( $field['max_files'] ), 'elementor-pro' ),
					intval( $field['max_files'] )
				);
				$ajax_handler->add_error( $id, $error_message );

				return;
			}
		}

		foreach ( $_FILES['form_fields'][ $id ] as $index => $file ) {
			// not uploaded
			if ( ! $field['required'] && UPLOAD_ERR_NO_FILE === $file['error'] ) {
				return;
			}

			// is the file required and missing?
			if ( $field['required'] && UPLOAD_ERR_NO_FILE === $file['error'] ) {
				$ajax_handler->add_error( $id, $upload_errors[ $file['error'] ] );

				return;
			}

			// Has any error with upload the file?
			if ( $file['error'] > UPLOAD_ERR_OK ) {
				$ajax_handler->add_error( $id, $upload_errors[ $file['error'] ] );

				return;
			}

			// valid file type?
			if ( ! $this->is_file_type_valid( $field, $file ) ) {
				$ajax_handler->add_error( $id, esc_html__( 'This file type is not allowed.', 'elementor-pro' ) );
			}

			// allowed file size?
			if ( ! $this->is_file_size_valid( $field, $file ) ) {
				$ajax_handler->add_error( $id, esc_html__( 'This file exceeds the maximum allowed size.', 'elementor-pro' ) );
			}
		}
	}

	/**
	 * Gets the path to uploaded file.
	 *
	 * @return string
	 */
	private function get_upload_dir() {
		$wp_upload_dir = wp_upload_dir();
		$path = $wp_upload_dir['basedir'] . '/elementor/forms';

		/**
		 * Upload file path.
		 *
		 * Filters the path to a file uploaded using Elementor forms.
		 *
		 * @since 1.0.0
		 *
		 * @param string $url File URL.
		 */
		$path = apply_filters( 'elementor_pro/forms/upload_path', $path );

		return $path;
	}

	/**
	 * Gets the URL to uploaded file.
	 *
	 * @param $file_name
	 *
	 * @return string
	 */
	private function get_file_url( $file_name ) {
		$wp_upload_dir = wp_upload_dir();
		$url = $wp_upload_dir['baseurl'] . '/elementor/forms/' . $file_name;

		/**
		 * Upload file URL.
		 *
		 * Filters the URL to a file uploaded using Elementor forms.
		 *
		 * @since 1.0.0
		 *
		 * @param string $url       File URL.
		 * @param string $file_name File name.
		 */
		$url = apply_filters( 'elementor_pro/forms/upload_url', $url, $file_name );

		return $url;
	}

	/**
	 * This function returns the uploads folder after making sure
	 * it is created and has protection files
	 * @return string
	 */
	private function get_ensure_upload_dir() {
		$path = $this->get_upload_dir();
		if ( file_exists( $path . '/index.php' ) ) {
			return $path;
		}

		wp_mkdir_p( $path );

		$files = [
			[
				'file' => 'index.php',
				'content' => [
					'<?php',
					'// Silence is golden.',
				],
			],
			[
				'file' => '.htaccess',
				'content' => [
					'Options -Indexes',
					'<ifModule mod_headers.c>',
					'	<Files *.*>',
					'       Header set Content-Disposition attachment',
					'	</Files>',
					'</IfModule>',
				],
			],
		];

		foreach ( $files as $file ) {
			if ( ! file_exists( trailingslashit( $path ) . $file['file'] ) ) {
				$content = implode( PHP_EOL, $file['content'] );
				@ file_put_contents( trailingslashit( $path ) . $file['file'], $content );
			}
		}

		return $path;
	}

	/**
	 * creates array of upload sizes based on server limits
	 * to use in the file_sizes control
	 * @return array
	 */
	private function get_upload_file_size_options() {
		$max_file_size = wp_max_upload_size() / pow( 1024, 2 ); //MB

		$sizes = [];

		for ( $file_size = 1; $file_size <= $max_file_size; $file_size++ ) {
			$sizes[ $file_size ] = $file_size . 'MB';
		}

		return $sizes;
	}

	/**
	 * process file and move it to uploads directory
	 *
	 * @param array                $field
	 * @param Classes\Form_Record  $record
	 * @param Classes\Ajax_Handler $ajax_handler
	 */
	public function process_field( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {
		$id = $field['id'];
		foreach ( $_FILES['form_fields'][ $id ] as $index => $file ) {
			if ( UPLOAD_ERR_NO_FILE === $file['error'] ) {
				continue;
			}
			$uploads_dir = $this->get_ensure_upload_dir();
			$file_extension = pathinfo( $file['name'], PATHINFO_EXTENSION );
			$filename = uniqid() . '.' . $file_extension;
			$filename = wp_unique_filename( $uploads_dir, $filename );
			$new_file = trailingslashit( $uploads_dir ) . $filename;
			if ( is_dir( $uploads_dir ) && is_writable( $uploads_dir ) ) {
				$move_new_file = @ move_uploaded_file( $file['tmp_name'], $new_file );
				if ( false !== $move_new_file ) {
					// Set correct file permissions.
					$perms = 0644;
					@ chmod( $new_file, $perms );
					$record->add_file( $id, $index,
						[
							'path' => $new_file,
							'url' => $this->get_file_url( $filename ),
						]
					);
				} else {
					$ajax_handler->add_error( $id, esc_html__( 'There was an error while trying to upload your file.', 'elementor-pro' ) );
				}
			} else {
				$ajax_handler->add_admin_error_message( esc_html__( 'Upload directory is not writable or does not exist.', 'elementor-pro' ) );
			}
		}
	}

	/**
	 * Used to set the upload filed values with
	 * value => file url
	 * raw_value => file path
	 *
	 * @param Classes\Form_Record  $record
	 * @param Classes\Ajax_Handler $ajax_handler
	 */
	public function set_file_fields_values( Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {
		$files = $record->get( 'files' );
		if ( empty( $files ) ) {
			return;
		}
		foreach ( $files as $id => $files_array ) {
			$record->update_field( $id, 'value', implode( ' , ', $files_array['url'] ) );
			$record->update_field( $id, 'raw_value', implode( ' , ', $files_array['path'] ) );
		}
	}

	public function __construct() {
		parent::__construct();
		add_action( 'elementor_pro/forms/process', [ $this, 'set_file_fields_values' ], 10, 2 );
	}
}
PK!*
+Ǹ�modules/forms/fields/tel.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Tel extends Field_Base {

	public function get_type() {
		return 'tel';
	}

	public function get_name() {
		return esc_html__( 'Tel', 'elementor-pro' );
	}

	public function render( $item, $item_index, $form ) {
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual' );
		$form->add_render_attribute( 'input' . $item_index, 'pattern', '[0-9()#&+*-=.]+' );
		$form->add_render_attribute( 'input' . $item_index, 'title', esc_html__( 'Only numbers and phone characters (#, -, *, etc) are accepted.', 'elementor-pro' ) );
		?>
		<input size="1" <?php $form->print_render_attribute_string( 'input' . $item_index ); ?>>

		<?php
	}

	public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {
		if ( empty( $field['value'] ) ) {
			return;
		}
		if ( preg_match( '/^[0-9()#&+*-=.]+$/', $field['value'] ) !== 1 ) {
			$ajax_handler->add_error( $field['id'], esc_html__( 'Only numbers and phone characters (#, -, *, etc) are accepted.', 'elementor-pro' ) );
		}
	}
}
PK!y�6
6
modules/forms/fields/time.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use ElementorPro\Modules\Forms\Classes;
use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Time extends Field_Base {

	public $depended_scripts = [
		'flatpickr',
	];

	public $depended_styles = [
		'flatpickr',
	];

	public function get_type() {
		return 'time';
	}

	public function get_name() {
		return esc_html__( 'Time', 'elementor-pro' );
	}

	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'use_native_time' => [
				'name' => 'use_native_time',
				'label' => esc_html__( 'Native HTML5', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		foreach ( $control_data['fields'] as $index => $field ) {
			if ( 'placeholder' !== $field['name'] ) {
				continue;
			}
			foreach ( $field['conditions']['terms'] as $condition_index => $terms ) {
				if ( ! isset( $terms['name'] ) || 'field_type' !== $terms['name'] || ! isset( $terms['operator'] ) || 'in' !== $terms['operator'] ) {
					continue;
				}
				$control_data['fields'][ $index ]['conditions']['terms'][ $condition_index ]['value'][] = $this->get_type();
				break;
			}
			break;
		}

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );

		$widget->update_control( 'form_fields', $control_data );
	}

	public function render( $item, $item_index, $form ) {
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual elementor-time-field' );
		if ( isset( $item['use_native_time'] ) && 'yes' === $item['use_native_time'] ) {
			$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-use-native' );
		}
		?>
		<input <?php $form->print_render_attribute_string( 'input' . $item_index ); ?>>
		<?php
	}

	public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {
		if ( empty( $field['value'] ) ) {
			return;
		}

		if ( preg_match( '/^(([0-1][0-9])|(2[0-3])):[0-5][0-9]$/', $field['value'] ) !== 1 ) {
			$ajax_handler->add_error( $field['id'], esc_html__( 'Invalid Time, Time should be in HH:MM format!', 'elementor-pro' ) );
		}
	}
}
PK!���}�
�
modules/forms/fields/number.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use Elementor\Widget_Base;
use ElementorPro\Modules\Forms\Classes;
use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Number extends Field_Base {

	public function get_type() {
		return 'number';
	}

	public function get_name() {
		return esc_html__( 'Number', 'elementor-pro' );
	}

	public function render( $item, $item_index, $form ) {
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual' );

		if ( isset( $item['field_min'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'min', esc_attr( $item['field_min'] ) );
		}
		if ( isset( $item['field_max'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'max', esc_attr( $item['field_max'] ) );
		}

		?>
			<input <?php $form->print_render_attribute_string( 'input' . $item_index ); ?> >
		<?php
	}

	/**
	 * @param Widget_Base $widget
	 */
	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'field_min' => [
				'name' => 'field_min',
				'label' => esc_html__( 'Min. Value', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'field_max' => [
				'name' => 'field_max',
				'label' => esc_html__( 'Max. Value', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );
		$widget->update_control( 'form_fields', $control_data );
	}

	public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {

		if ( ! empty( $field['field_max'] ) && $field['field_max'] < (int) $field['value'] ) {
			$ajax_handler->add_error( $field['id'], sprintf( esc_html__( 'The value must be less than or equal to %s', 'elementor-pro' ), $field['field_max'] ) );
		}

		if ( ! empty( $field['field_min'] ) && $field['field_min'] > (int) $field['value'] ) {
			$ajax_handler->add_error( $field['id'], sprintf( esc_html__( 'The value must be greater than or equal %s', 'elementor-pro' ), $field['field_min'] ) );
		}
	}

	public function sanitize_field( $value, $field ) {
		return intval( $value );
	}
}
PK!���W
W
modules/forms/fields/date.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Date extends Field_Base {
	public $depended_scripts = [
		'flatpickr',
	];

	public $depended_styles = [
		'flatpickr',
	];

	public function get_type() {
		return 'date';
	}

	public function get_name() {
		return esc_html__( 'Date', 'elementor-pro' );
	}

	public function render( $item, $item_index, $form ) {
		$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual elementor-date-field' );
		$form->add_render_attribute( 'input' . $item_index, 'pattern', '[0-9]{4}-[0-9]{2}-[0-9]{2}' );
		if ( isset( $item['use_native_date'] ) && 'yes' === $item['use_native_date'] ) {
			$form->add_render_attribute( 'input' . $item_index, 'class', 'elementor-use-native' );
		}

		if ( ! empty( $item['min_date'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'min', esc_attr( $item['min_date'] ) );
		}

		if ( ! empty( $item['max_date'] ) ) {
			$form->add_render_attribute( 'input' . $item_index, 'max', esc_attr( $item['max_date'] ) );
		}
		?>

		<input <?php $form->print_render_attribute_string( 'input' . $item_index ); ?>>
		<?php
	}

	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'min_date' => [
				'name' => 'min_date',
				'label' => esc_html__( 'Min. Date', 'elementor-pro' ),
				'type' => Controls_Manager::DATE_TIME,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'label_block' => false,
				'picker_options' => [
					'enableTime' => false,
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'max_date' => [
				'name' => 'max_date',
				'label' => esc_html__( 'Max. Date', 'elementor-pro' ),
				'type' => Controls_Manager::DATE_TIME,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'label_block' => false,
				'picker_options' => [
					'enableTime' => false,
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'use_native_date' => [
				'name' => 'use_native_date',
				'label' => esc_html__( 'Native HTML5', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		foreach ( $control_data['fields'] as $index => $field ) {
			if ( 'placeholder' !== $field['name'] ) {
				continue;
			}
			foreach ( $field['conditions']['terms'] as $condition_index => $terms ) {
				if ( ! isset( $terms['name'] ) || 'field_type' !== $terms['name'] || ! isset( $terms['operator'] ) || 'in' !== $terms['operator'] ) {
					continue;
				}
				$control_data['fields'][ $index ]['conditions']['terms'][ $condition_index ]['value'][] = $this->get_type();
				break;
			}
			break;
		}

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );
		$widget->update_control( 'form_fields', $control_data );
	}
}
PK!g����
�
modules/forms/fields/step.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Fields;

use Elementor\Icons_Manager;
use Elementor\Widget_Base;
use Elementor\Controls_Manager;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Step extends Field_Base {

	public function get_type() {
		return 'step';
	}

	public function get_name() {
		return esc_html__( 'Step', 'elementor-pro' );
	}

	public function render( $item, $item_index, $form ) {
		$font_icon = '';

		if ( Plugin::elementor()->experiments->is_feature_active( 'e_font_icon_svg' ) && $item['selected_icon']['value'] ) {
			if ( 'svg' === $item['selected_icon']['library'] ) {
				$font_icon = Icons_Manager::render_uploaded_svg_icon( $item['selected_icon']['value'] );
			} else {
				$font_icon = Icons_Manager::render_font_icon( $item['selected_icon'] );
			}
		}

		$form->add_render_attribute( 'step' . $item_index, [
			'class' => 'e-field-step elementor-hidden',
			'data-label' => $item['field_label'],
			'data-previousButton' => $item['previous_button'],
			'data-nextButton' => $item['next_button'],
			'data-iconUrl' => 'svg' === $item['selected_icon']['library'] && $item['selected_icon']['value'] ? $item['selected_icon']['value']['url'] : '',
			'data-iconLibrary' => 'svg' !== $item['selected_icon']['library'] && $item['selected_icon']['value'] ? $item['selected_icon']['value'] : '',
			'data-icon' => $font_icon,
		] );

		?>
		<div <?php $form->print_render_attribute_string( 'step' . $item_index ); ?> ></div>

		<?php
	}

	/**
	 * @param Widget_Base $widget
	 */
	public function update_controls( $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		$field_controls = [
			'previous_button' => [
				'name' => 'previous_button',
				'label' => esc_html__( 'Previous Button', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'next_button' => [
				'name' => 'next_button',
				'label' => esc_html__( 'Next Button', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
			'selected_icon' => [
				'name' => 'selected_icon',
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'fa4compatibility' => 'icon',
				'description' => esc_html__( 'Visible only if selected step type contains "Icon"', 'elementor-pro' ),
				'default' => [
					'value' => 'fas fa-star',
					'library' => 'fa-solid',
				],
				'recommended' => [
					'fa-solid' => [
						'chevron-down',
						'angle-down',
						'angle-double-down',
						'caret-down',
						'caret-square-down',
					],
					'fa-regular' => [
						'caret-square-down',
					],
				],
				'skin' => 'inline',
				'label_block' => false,
				'condition' => [
					'field_type' => $this->get_type(),
				],
				'tab' => 'content',
				'inner_tab' => 'form_fields_content_tab',
				'tabs_wrapper' => 'form_fields_tabs',
			],
		];

		$control_data['fields'] = $this->inject_field_controls( $control_data['fields'], $field_controls );
		$widget->update_control( 'form_fields', $control_data );
	}
}
PK!!modules/forms/data/controller.phpnu�[���PK!�zv�BB0modules/forms/classes/activecampaign-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Activecampaign_Handler {

	private $rest_client = null;

	private $api_key = '';

	public function __construct( $api_key, $base_url ) {
		if ( empty( $api_key ) ) {
			throw new \Exception( 'Invalid API key' );
		}

		if ( empty( $base_url ) ) {
			throw new \Exception( 'Invalid API key' );
		}

		$this->init_rest_client( $api_key, $base_url );

		if ( ! $this->is_valid_api_key() ) {
			throw new \Exception( 'Invalid API key or URL' );
		}
	}

	private function init_rest_client( $api_key, $base_url ) {
		$this->api_key = $api_key;
		$this->rest_client = new Rest_Client( trailingslashit( $base_url ) . 'admin/api.php' );
	}

	/**
	 * validate api key
	 *
	 * @return bool
	 * @throws \Exception
	 */
	private function is_valid_api_key() {
		$lists = $this->get_lists();

		if ( ! empty( $lists ) ) {
			return true;
		}

		$this->api_key = '';

		return false;
	}

	/**
	 * get ActiveCampaign lists associated with API key
	 * @return array
	 * @throws \Exception
	 */
	public function get_lists() {
		$results = $this->rest_client->get( '?api_action=list_list', [
			'api_key' => $this->api_key,
			'ids' => 'all',
			'api_output' => 'json',
		] );

		$lists = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $results['body'] ) ) {
			foreach ( $results['body'] as $index => $list ) {
				if ( ! is_array( $list ) ) {
					continue;
				}

				$lists[ $list['id'] ] = $list['name'];
			}
		}

		$return_array = [
			'lists' => $lists,
			'fields' => $this->get_fields(),
		];

		return $return_array;
	}

	/**
	 * get ActiveCampaign custom fields associated with API key
	 * @return array
	 * @throws \Exception
	 */
	private function get_fields() {
		$results = $this->rest_client->get( '?api_action=list_field_view', [
			'api_key' => $this->api_key,
			'ids' => 'all',
			'api_output' => 'json',
		] );

		$fields = [];

		if ( ! empty( $results['body'] ) ) {
			foreach ( $results['body'] as $index => $field ) {
				if ( ! is_array( $field ) ) {
					continue;
				}
				$fields[] = [
					'remote_label' => $field['title'],
					'remote_type' => $this->normalize_type( $field['type'] ),
					'remote_id' => 'field[' . $field['id'] . ',0]',
					'remote_required' => (bool) $field['isrequired'],
				];
			}
		}

		return $fields;
	}

	private function normalize_type( $type ) {
		static $types = [
			'text' => 'text',
			'number' => 'number',
			'address' => 'text',
			'phone' => 'text',
			'date' => 'text',
			'url' => 'url',
			'imageurl' => 'url',
			'radio' => 'radio',
			'dropdown' => 'select',
			'birthday' => 'text',
			'zip' => 'text',
		];

		return $types[ $type ];
	}

	/**
	 * create contact at Activecampaign via api
	 *
	 * @param array $subscriber_data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function create_subscriber( $subscriber_data = [] ) {
		$end_point = '?api_action=contact_sync&api_key=' . $this->api_key . '&api_output=json';

		return $this->rest_client->request( 'POST', $end_point, $subscriber_data );
	}
}
PK!���_�
�
*modules/forms/classes/honeypot-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use Elementor\Widget_Base;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Honeypot field
 */
class Honeypot_Handler {

	public function add_field_type( $field_types ) {
		$field_types['honeypot'] = esc_html__( 'Honeypot', 'elementor-pro' );

		return $field_types;
	}

	public function hide_label( $item, $item_index, $widget ) {
		if ( 'honeypot' === $item['field_type'] ) {
			$widget->set_render_attribute( 'field-group' . $item_index, 'class', 'elementor-field-type-text' );
			$item['field_label'] = false;
		}

		return $item;
	}

	/**
	 * @param string      $item
	 * @param integer     $item_index
	 * @param Widget_Base $widget
	 */
	public function render_field( $item, $item_index, $widget ) {
		$widget->set_render_attribute( 'input' . $item_index, 'type', 'text' );
		$widget->add_render_attribute( 'input' . $item_index, 'style', 'display:none !important;' );

		echo '<input size="1" ';
		$widget->print_render_attribute_string( 'input' . $item_index );
		echo '>';
	}

	/**
	 * @param Form_Record  $record
	 * @param Ajax_Handler $ajax_handler
	 */
	public function validation( $record, $ajax_handler ) {
		$fields = $record->get_field( [
			'type' => 'honeypot',
		] );

		if ( empty( $fields ) ) {
			return;
		}

		$field = current( $fields );

		if ( ! empty( $field['value'] ) ) {
			$ajax_handler->add_error( $field['id'], esc_html__( 'Invalid Form.', 'elementor-pro' ) );
		}

		// If success - remove the field form list (don't send it in emails and etc )
		$record->remove_field( $field['id'] );
	}

	public function update_controls( Widget_Base $widget ) {
		$elementor = Plugin::elementor();

		$control_data = $elementor->controls_manager->get_control_from_stack( $widget->get_unique_name(), 'form_fields' );

		if ( is_wp_error( $control_data ) ) {
			return;
		}

		foreach ( $control_data['fields'] as $index => $field ) {
			if ( 'required' === $field['name'] || 'width' === $field['name'] ) {
				$control_data['fields'][ $index ]['conditions']['terms'][] = [
					'name' => 'field_type',
					'operator' => '!in',
					'value' => [
						'honeypot',
					],
				];
			}
		}

		$widget->update_control( 'form_fields', $control_data );
	}

	public function __construct() {
		add_filter( 'elementor_pro/forms/field_types', [ $this, 'add_field_type' ] );
		add_action( 'elementor_pro/forms/render/item', [ $this, 'hide_label' ], 10, 3 );
		add_action( 'elementor_pro/forms/render_field/honeypot', [ $this, 'render_field' ], 10, 3 );
		add_action( 'elementor_pro/forms/validation', [ $this, 'validation' ], 10, 2 );
		add_action( 'elementor/element/form/section_form_fields/before_section_end', [ $this, 'update_controls' ] );
	}
}
PK!�|<�,,%modules/forms/classes/action-base.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use ElementorPro\Modules\Forms\Widgets\Form;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Action_Base {

	abstract public function get_name();

	abstract public function get_label();

	/**
	 * Get the action ID.
	 *
	 * TODO: Make it an abstract function that will replace `get_name()`.
	 *
	 * @since 3.5.0
	 *
	 * @return string
	 */
	public function get_id() {
		return $this->get_name();
	}

	/**
	 * @param Form_Record  $record
	 * @param Ajax_Handler $ajax_handler
	 */
	abstract public function run( $record, $ajax_handler );

	/**
	 * @param Form $form
	 */
	abstract public function register_settings_section( $form );

	/**
	 * @param array $element
	 */
	abstract public function on_export( $element );
}
PK!/�<N$N$%modules/forms/classes/form-record.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Form_Record {
	protected $sent_data;
	protected $fields;
	protected $form_type;
	protected $form_settings;
	protected $files = [];
	protected $meta = [];

	public function get_formatted_data( $with_meta = false ) {
		$formatted = [];
		$no_label = esc_html__( 'No Label', 'elementor-pro' );
		$fields = $this->fields;

		if ( $with_meta ) {
			$fields = array_merge( $fields, $this->meta );
		}

		foreach ( $fields as $key => $field ) {
			if ( empty( $field['title'] ) ) {
				$formatted[ $no_label . ' ' . $key ] = $field['value'];
			} else {
				$formatted[ $field['title'] ] = $field['value'];
			}
		}

		return $formatted;
	}

	/**
	 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
	 *
	 * @return bool
	 */
	public function validate( $ajax_handler ) {
		foreach ( $this->fields as $id => $field ) {
			$field_type = $field['type'];
			if ( ! empty( $field['required'] ) && '' === $field['value'] && 'upload' !== $field_type ) {
				$ajax_handler->add_error( $id, Ajax_Handler::get_default_message( Ajax_Handler::FIELD_REQUIRED, $this->form_settings ) );
			}

			/**
			 * Elementor form field validation.
			 *
			 * Fires when a single form field is being validated.
			 *
			 * It allows developers to validate individual field types.
			 *
			 * The dynamic portion of the hook name, `$field_type`, refers to the field type.
			 *
			 * @since 2.0.0
			 *
			 * @param array        $field        Form field.
			 * @param Form_Record  $this         An instance of the form record.
			 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
			 */
			do_action( "elementor_pro/forms/validation/{$field_type}", $field, $this, $ajax_handler );
		}

		/**
		 * Elementor form validation.
		 *
		 * Fires when form fields are being validated.
		 *
		 * @since 2.0.0
		 *
		 * @param Form_Record  $this         An instance of the form record.
		 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
		 */
		do_action( 'elementor_pro/forms/validation', $this, $ajax_handler );

		return empty( $ajax_handler->errors );
	}

	/**
	 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
	 *
	 */
	public function process_fields( $ajax_handler ) {
		foreach ( $this->fields as $id => $field ) {
			$field_type = $field['type'];

			/**
			 * Elementor form field process.
			 *
			 * Fires when a single form field is being processed.
			 *
			 * It allows developers to process individual field types.
			 *
			 * The dynamic portion of the hook name, `$field_type`, refers to the field type.
			 *
			 * @since 2.0.0
			 *
			 * @param array        $field        Form field.
			 * @param Form_Record  $this         An instance of the form record.
			 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
			 */
			do_action( "elementor_pro/forms/process/{$field_type}", $field, $this, $ajax_handler );
		}

		/**
		 * Elementor form process.
		 *
		 * Fires when form fields are being processed.
		 *
		 * @since 2.0.0
		 *
		 * @param Form_Record  $this         An instance of the form record.
		 * @param Ajax_Handler $ajax_handler An instance of the ajax handler.
		 */
		do_action( 'elementor_pro/forms/process', $this, $ajax_handler );
	}

	public function get( $property ) {
		if ( isset( $this->{$property} ) ) {
			return $this->{$property};
		}

		return null;
	}

	public function set( $property, $value ) {
		$this->{$property} = $value;
	}

	public function get_form_settings( $setting ) {
		if ( isset( $this->form_settings[ $setting ] ) ) {
			return $this->form_settings[ $setting ];
		}

		return null;
	}

	public function get_field( $args ) {
		return wp_list_filter( $this->fields, $args );
	}

	public function remove_field( $id ) {
		unset( $this->fields[ $id ] );
	}

	public function update_field( $field_id, $property, $value ) {
		if ( ! isset( $this->fields[ $field_id ] ) || ! isset( $this->fields[ $field_id ][ $property ] ) ) {
			return;
		}
		$this->fields[ $field_id ][ $property ] = $value;
	}

	public function get_form_meta( $meta_keys = [] ) {
		$result = [];

		foreach ( $meta_keys as $metadata_type ) {
			switch ( $metadata_type ) {
				case 'date':
					$result['date'] = [
						'title' => esc_html__( 'Date', 'elementor-pro' ),
						'value' => date_i18n( get_option( 'date_format' ) ),
					];
					break;

				case 'time':
					$result['time'] = [
						'title' => esc_html__( 'Time', 'elementor-pro' ),
						'value' => date_i18n( get_option( 'time_format' ) ),
					];
					break;

				case 'page_url':
					$result['page_url'] = [
						'title' => esc_html__( 'Page URL', 'elementor-pro' ),
						'value' => esc_url_raw( $_POST['referrer'] ), // phpcs:ignore WordPress.Security.NonceVerification.Missing
					];
					break;

				case 'page_title':
					$result['page_title'] = [
						'title' => esc_html__( 'Page Title', 'elementor-pro' ),
						'value' => sanitize_text_field( $_POST['referer_title'] ), // phpcs:ignore WordPress.Security.NonceVerification.Missing
					];
					break;

				case 'user_agent':
					$result['user_agent'] = [
						'title' => esc_html__( 'User Agent', 'elementor-pro' ),
						'value' => sanitize_textarea_field( $_SERVER['HTTP_USER_AGENT'] ),
					];
					break;

				case 'remote_ip':
					$result['remote_ip'] = [
						'title' => esc_html__( 'Remote IP', 'elementor-pro' ),
						'value' => Utils::get_client_ip(),
					];
					break;
				case 'credit':
					$result['credit'] = [
						'title' => esc_html__( 'Powered by', 'elementor-pro' ),
						'value' => esc_html__( 'Elementor', 'elementor-pro' ),
					];
					break;
			}
		}

		return $result;
	}

	private function set_meta() {
		$form_metadata = $this->form_settings['form_metadata'];

		if ( empty( $form_metadata ) ) {
			return;
		}

		$this->meta = $this->get_form_meta( $form_metadata );
	}

	private function set_fields() {
		foreach ( $this->form_settings['form_fields'] as $form_field ) {
			$field = [
				'id' => $form_field['custom_id'],
				'type' => $form_field['field_type'],
				'title' => $form_field['field_label'],
				'value' => '',
				'raw_value' => '',
				'required' => ! empty( $form_field['required'] ),
			];

			if ( 'upload' === $field['type'] ) {
				$field['file_sizes'] = isset( $form_field['file_sizes'] ) ? $form_field['file_sizes'] : '';
				$field['file_types'] = isset( $form_field['file_types'] ) ? $form_field['file_types'] : '';
				$field['max_files'] = isset( $form_field['max_files'] ) ? $form_field['max_files'] : '';
			}

			if ( isset( $this->sent_data[ $form_field['custom_id'] ] ) ) {
				$field['raw_value'] = $this->sent_data[ $form_field['custom_id'] ];

				$value = $field['raw_value'];

				if ( is_array( $value ) ) {
					$value = implode( ', ', $value );
				}

				$field['value'] = $this->sanitize_field( $field, $value );
			}
			$this->fields[ $form_field['custom_id'] ] = $field;
		}
	}

	private function sanitize_field( $field, $value ) {
		$field_type = $field['type'];
		switch ( $field_type ) {
			case 'text':
			case 'password':
			case 'hidden':
			case 'search':
			case 'checkbox':
			case 'radio':
			case 'select':
				$value = sanitize_text_field( $value );
				break;
			case 'url':
				$value = esc_url_raw( $value );
				break;
			case 'textarea':
				$value = sanitize_textarea_field( $value );
				break;
			case 'email':
				$value = sanitize_email( $value );
				break;
			default:
				/**
				 * Sanitize field value.
				 *
				 * Filters the value of the form field for sanitization purpose.
				 *
				 * The dynamic portion of the hook name, `$field_type`, refers to the field type.
				 *
				 * @since 1.0.0
				 *
				 * @param string $value The field value.
				 * @param array  $field The field array.
				 */
				$value = apply_filters( "elementor_pro/forms/sanitize/{$field_type}", $value, $field );
		}

		return $value;
	}

	public function replace_setting_shortcodes( $setting, $urlencode = false ) {
		// Shortcode can be `[field id="fds21fd"]` or `[field title="Email" id="fds21fd"]`, multiple shortcodes are allowed
		return preg_replace_callback( '/(\[field[^]]*id="(\w+)"[^]]*\])/', function( $matches ) use ( $urlencode ) {
			$value = '';

			if ( isset( $this->fields[ $matches[2] ] ) ) {
				$value = $this->fields[ $matches[2] ]['value'];
			}

			if ( $urlencode ) {
				$value = urlencode( $value );
			}
			return $value;
		}, $setting );
	}

	public function add_file( $id, $index, $filename ) {
		if ( ! isset( $this->files[ $id ] ) || ! is_array( $this->files[ $id ] ) ) {
			$this->files[ $id ] = [
				'url' => [],
				'path' => [],
			];
		}
		$this->files[ $id ]['url'][ $index ] = $filename['url'];
		$this->files[ $id ]['path'][ $index ] = $filename['path'];
	}

	public function has_field_type( $type ) {
		foreach ( $this->fields as $id => $field ) {
			if ( $type === $field['field_type'] ) {
				return true;
			}
		}

		return false;
	}

	public function __construct( $sent_data, $form ) {
		$this->form_type = $form['widgetType'];
		$this->form_settings = $form['settings'];
		$this->sent_data = stripslashes_deep( $sent_data );

		$this->set_fields();
		$this->set_meta();
	}
}
PK!�ER�44.modules/forms/classes/recaptcha-v3-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use Elementor\Settings;
use Elementor\Widget_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Integration with Google reCAPTCHA
 */
class Recaptcha_V3_Handler extends Recaptcha_Handler {

	const OPTION_NAME_V3_SITE_KEY = 'elementor_pro_recaptcha_v3_site_key';
	const OPTION_NAME_V3_SECRET_KEY = 'elementor_pro_recaptcha_v3_secret_key';
	const OPTION_NAME_RECAPTCHA_THRESHOLD = 'elementor_pro_recaptcha_v3_threshold';
	const V3 = 'v3';
	const V3_DEFAULT_THRESHOLD = 0.5;
	const V3_DEFAULT_ACTION = 'Form';

	protected static function get_recaptcha_name() {
		return 'recaptcha_v3';
	}

	public static function get_site_key() {
		return get_option( self::OPTION_NAME_V3_SITE_KEY );
	}

	public static function get_secret_key() {
		return get_option( self::OPTION_NAME_V3_SECRET_KEY );
	}

	public static function get_recaptcha_type() {
		return self::V3;
	}

	public static function get_recaptcha_threshold() {
		$threshold = get_option( self::OPTION_NAME_RECAPTCHA_THRESHOLD, self::V3_DEFAULT_THRESHOLD );
		if ( 0 > $threshold || 1 < $threshold ) {
			return self::V3_DEFAULT_THRESHOLD;
		}
		return $threshold;
	}

	public static function is_enabled() {
		return static::get_site_key() && static::get_secret_key();
	}

	public static function get_setup_message() {
		return esc_html__( 'To use reCAPTCHA V3, you need to add the API Key and complete the setup process in Dashboard > Elementor > Settings > Integrations > reCAPTCHA V3.', 'elementor-pro' );
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'recaptcha_v3', [
			'label' => esc_html__( 'reCAPTCHA V3', 'elementor-pro' ),
			'callback' => function() {
				echo sprintf(
					/* translators: 1: Link open tag, 2: Link closing tag. */
					esc_html__( '%1$sreCAPTCHA V3%2$s is a free service by Google that protects your website from spam and abuse. It does this while letting your valid users pass through with ease.', 'elementor-pro' ),
					'<a href="https://www.google.com/recaptcha/intro/v3.html" target="_blank">',
					'</a>'
				);
			},
			'fields' => [
				'pro_recaptcha_v3_site_key' => [
					'label' => esc_html__( 'Site Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
					],
				],
				'pro_recaptcha_v3_secret_key' => [
					'label' => esc_html__( 'Secret Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
					],
				],
				'pro_recaptcha_v3_threshold' => [
					'label' => esc_html__( 'Score Threshold', 'elementor-pro' ),
					'field_args' => [
						'attributes' => [
							'min' => 0,
							'max' => 1,
							'placeholder' => '0.5',
							'step' => '0.1',
						],
						'std' => 0.5,
						'type' => 'number',
						'desc' => esc_html__( 'Score threshold should be a value between 0 and 1, default: 0.5', 'elementor-pro' ),
					],
				],
			],
		] );
	}

	/**
	 * @param $item
	 * @param $item_index
	 * @param $widget Widget_Base
	 */
	protected function add_version_specific_render_attributes( $item, $item_index, $widget ) {
		$recaptcha_name = static::get_recaptcha_name();
		$widget->add_render_attribute( $recaptcha_name . $item_index, [
			'data-action' => self::V3_DEFAULT_ACTION,
			'data-badge' => $item['recaptcha_badge'],
			'data-size' => 'invisible',
		] );
	}

	/**
	 * @param Ajax_Handler $ajax_handler
	 * @param $field
	 * @param $message
	 */
	protected function add_error( $ajax_handler, $field, $message ) {
		parent::add_error( $ajax_handler, $field, $message );
		$ajax_handler->add_error_message( esc_html__( 'reCAPTCHA V3 validation failed, suspected as abusive usage', 'elementor-pro' ) );
	}

	protected function validate_result( $result, $field ) {
		$action = self::V3_DEFAULT_ACTION;
		$action_ok = ! isset( $result['action'] ) ? true : $action === $result['action'];
		return $action_ok && ( $result['score'] > self::get_recaptcha_threshold() );
	}

	public function add_field_type( $field_types ) {
		$field_types['recaptcha_v3'] = esc_html__( 'reCAPTCHA V3', 'elementor-pro' );

		return $field_types;
	}

	/**
	 * @param $item
	 * @param $item_index
	 * @param Widget_Base $widget
	 *
	 * @return $item
	 */
	public function filter_recaptcha_item( $item, $item_index, $widget ) {
		$widget->add_render_attribute( 'field-group' . $item_index, 'class', [
			self::get_recaptcha_name() . '-' . $item['recaptcha_badge'],
		] );

		return $item;
	}

	public function __construct() {
		parent::__construct();
		add_filter( 'elementor_pro/forms/render/item/' . self::get_recaptcha_name(), [ $this, 'filter_recaptcha_item' ], 10, 3 );
	}
}
PK!ܚs&�	�	*modules/forms/classes/integration-base.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use Elementor\Controls_Manager;
use Elementor\Repeater;
use Elementor\Settings;
use ElementorPro\Modules\Forms\Controls\Fields_Map;
use ElementorPro\Modules\Forms\Widgets\Form;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Integration_Base extends Action_Base {

	public function handle_panel_request( array $data ) {}

	public static function global_api_control( $widget, $api_key = '', $label = '', $condition = [], $id = '' ) {
		if ( empty( $api_key ) ) {
			$html = sprintf(
				/* translators: 1: Integration label, 2: Link open tag, 3: Link closing tag. */
				esc_html__( 'Set your %1$s in the %2$sIntegrations Settings%3$s.', 'elementor-pro' ),
				$label,
				sprintf( '<a href="%s" target="_blank">', Settings::get_url() . '#tab-integrations' ),
				'</a>'
			);
			$content_classes = 'elementor-panel-alert elementor-panel-alert-warning';
		} else {
			$html = sprintf(
				/* translators: 1: Integration label, 2: Link open tag, 3: Link closing tag. */
				esc_html__( 'You are using %1$s set in the %2$sIntegrations Settings%3$s.', 'elementor-pro' ),
				$label,
				sprintf( '<a href="%s" target="_blank">', Settings::get_url() . '#tab-integrations' ),
				'</a>'
			);
			$content_classes = 'elementor-panel-alert elementor-panel-alert-info';
		}

		/* translators: %s: Integration label */
		$html .= ' ' . sprintf( esc_html__( 'You can also set a different %s by choosing "Custom".', 'elementor-pro' ), $label );

		$widget->add_control(
			$id . '_api_key_msg',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => $html,
				'content_classes' => $content_classes,
				'condition' => $condition,
			]
		);
	}

	protected function get_fields_map_control_options() {
		return [];
	}

	final protected function register_fields_map_control( Form $form ) {
		$repeater = new Repeater();

		$repeater->add_control( 'remote_id', [ 'type' => Controls_Manager::HIDDEN ] );

		$repeater->add_control( 'local_id', [ 'type' => Controls_Manager::SELECT ] );

		$fields_map_control_options = [
			'label' => esc_html__( 'Field Mapping', 'elementor-pro' ),
			'type' => Fields_Map::CONTROL_TYPE,
			'separator' => 'before',
			'fields' => $repeater->get_controls(),
		];

		$fields_map_control_options = array_merge( $fields_map_control_options, $this->get_fields_map_control_options() );

		$form->add_control( $this->get_name() . '_fields_map', $fields_map_control_options );
	}
}
PK!�2Y*m
m
,modules/forms/classes/convertkit-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Convertkit_Handler {
	/*
	 * @var Rest_Client
	 */
	private $rest_client = null;
	private $api_key = '';

	/**
	 * Convertkit_Handler constructor.
	 *
	 * @param $api_key
	 *
	 * @throws \Exception
	 */
	public function __construct( $api_key ) {
		if ( empty( $api_key ) ) {
			throw new \Exception( 'Invalid API Key' );
		}

		$this->init_rest_client( $api_key );

		if ( ! $this->is_valid_api_key() ) {
			throw new \Exception( 'Invalid API Key' );
		}
	}

	private function init_rest_client( $api_key ) {
		$this->api_key = $api_key;
		$this->rest_client = new Rest_Client( 'https://api.convertkit.com/v3/' );
	}

	/**
	 * validate api key
	 *
	 * @return bool
	 * @throws \Exception
	 */
	private function is_valid_api_key() {
		$forms = $this->get_forms();
		if ( ! empty( $forms ) ) {
			return true;
		}
		$this->api_key = '';

		return false;
	}

	public function get_forms_and_tags() {
		$forms = $this->get_forms();
		$tags = $this->get_tags();

		return [
			'data' => [
				'forms' => $forms['forms'],
				'tags' => $tags['tags'],
			],
		];
	}

	/**
	 * get GetResponse lists associated with API key
	 * @return array
	 * @throws \Exception
	 */
	public function get_forms() {
		$results = $this->rest_client->get( 'forms/?api_key=' . $this->api_key );

		$forms = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $results['body']['forms'] ) ) {
			foreach ( $results['body']['forms'] as $index => $form ) {
				if ( ! is_array( $form ) ) {
					continue;
				}
				$forms[ $form['id'] ] = $form['name'];
			}
		}

		$return_array = [
			'forms' => $forms,
		];

		return $return_array;
	}

	public function get_tags() {
		$results = $this->rest_client->get( 'tags/?api_key=' . $this->api_key );

		$tags = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $results['body']['tags'] ) ) {
			foreach ( $results['body']['tags'] as $index => $tag ) {
				if ( ! is_array( $tag ) ) {
					continue;
				}
				$tags[ $tag['id'] ] = $tag['name'];
			}
		}

		$return_array = [
			'tags' => $tags,
		];

		return $return_array;
	}

	/**
	 * create contact at ConvertKit via api
	 *
	 * @param array $subscriber_data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function create_subscriber( $form_id, $subscriber_data = [] ) {
		$endpoint = sprintf( 'forms/' . $form_id . '/subscribe?api_key=%s', $this->api_key );
		$this->rest_client->add_headers( 'Content-Type', 'application/json' );

		return $this->rest_client->post( $endpoint, $subscriber_data );
	}
}
PK!`<<�-modules/forms/classes/getresponse-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Getresponse_Handler {
	public $rest_client = null;
	private $api_key = '';

	public function __construct( $api_key ) {
		if ( empty( $api_key ) ) {
			throw new \Exception( 'Invalid API key' );
		}

		$this->init_rest_client( $api_key );

		if ( ! $this->is_valid_api_key() ) {
			throw new \Exception( 'Invalid API key' );
		}
	}

	private function init_rest_client( $api_key ) {
		$this->api_key = $api_key;
		$this->rest_client = new Rest_Client( 'https://api.getresponse.com/v3/' );
		$this->rest_client->add_headers( [
			'X-Auth-Token' => 'api-key ' . $api_key,
			'Content-Type' => 'application/json',
		] );
	}

	/**
	 * validate api key
	 *
	 * @return bool
	 * @throws \Exception
	 */
	private function is_valid_api_key() {
		$lists = $this->get_lists();
		if ( ! empty( $lists ) ) {
			return true;
		}
		$this->api_key = '';

		return false;
	}

	/**
	 * get GetResponse lists associated with API key
	 * @return array
	 * @throws \Exception
	 */
	public function get_lists() {
		$results = $this->rest_client->get( 'campaigns' );

		$lists = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $results['body'] ) ) {
			foreach ( $results['body'] as $index => $list ) {
				if ( ! is_array( $list ) ) {
					continue;
				}
				$lists[ $list['campaignId'] ] = $list['name'];
			}
		}

		$return_array = [
			'lists' => $lists,
		];

		return $return_array;
	}

	public function get_fields() {
		$results = $this->rest_client->get( 'custom-fields' );

		$fields = [
			[
				'remote_label' => esc_html__( 'Email', 'elementor-pro' ),
				'remote_type' => 'email',
				'remote_id' => 'email',
				'remote_required' => true,
			],
			[
				'remote_label' => esc_html__( 'Name', 'elementor-pro' ),
				'remote_type' => 'text',
				'remote_id' => 'name',
				'remote_required' => false,
			],
		];

		if ( ! empty( $results['body'] ) ) {
			foreach ( $results['body'] as $field ) {
				$fields[] = [
					'remote_label' => $field['name'],
					'remote_type' => $this->normalize_type( $field['type'] ),
					'remote_id' => $field['customFieldId'],
					'remote_required' => false,
				];
			}
		}

		$return_array = [
			'fields' => $fields,
		];

		return $return_array;
	}

	private function normalize_type( $type ) {
		static $types = [
			'text' => 'text',
			'number' => 'number',
			'address' => 'text',
			'phone' => 'text',
			'date' => 'text',
			'url' => 'url',
			'imageurl' => 'url',
			'radio' => 'radio',
			'dropdown' => 'select',
			'single_select' => 'select',
			'textarea' => 'text',
			'birthday' => 'text',
			'zip' => 'text',
			'country' => 'text',
			'gender' => 'text',
		];

		return $types[ $type ];
	}

	/**
	 * create contact at GetResponse via api
	 *
	 * @param array $subscriber_data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function create_subscriber( $subscriber_data = [] ) {
		return $this->rest_client->request( 'POST', 'contacts', wp_json_encode( $subscriber_data ), 202 );
	}
}
PK!R��EE#modules/forms/classes/form-base.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Modules\Forms\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Form_Base extends Base_Widget {

	public function on_export( $element ) {
		/** @var \ElementorPro\Modules\Forms\Classes\Action_Base[] $actions */
		$actions = Module::instance()->actions_registrar->get();

		foreach ( $actions as $action ) {
			$new_element_data = $action->on_export( $element );
			if ( null !== $new_element_data ) {
				$element = $new_element_data;
			}
		}

		return $element;
	}

	public static function get_button_sizes() {
		return [
			'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
			'sm' => esc_html__( 'Small', 'elementor-pro' ),
			'md' => esc_html__( 'Medium', 'elementor-pro' ),
			'lg' => esc_html__( 'Large', 'elementor-pro' ),
			'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
		];
	}

	protected function make_textarea_field( $item, $item_index ) {
		$this->add_render_attribute( 'textarea' . $item_index, [
			'class' => [
				'elementor-field-textual',
				'elementor-field',
				esc_attr( $item['css_classes'] ),
				'elementor-size-' . $item['input_size'],
			],
			'name' => $this->get_attribute_name( $item ),
			'id' => $this->get_attribute_id( $item ),
			'rows' => $item['rows'],
		] );

		if ( $item['placeholder'] ) {
			$this->add_render_attribute( 'textarea' . $item_index, 'placeholder', $item['placeholder'] );
		}

		if ( $item['required'] ) {
			$this->add_required_attribute( 'textarea' . $item_index );
		}

		$value = empty( $item['field_value'] ) ? '' : $item['field_value'];

		return '<textarea ' . $this->get_render_attribute_string( 'textarea' . $item_index ) . '>' . $value . '</textarea>';
	}

	protected function make_select_field( $item, $i ) {
		$this->add_render_attribute(
			[
				'select-wrapper' . $i => [
					'class' => [
						'elementor-field',
						'elementor-select-wrapper',
						esc_attr( $item['css_classes'] ),
					],
				],
				'select' . $i => [
					'name' => $this->get_attribute_name( $item ) . ( ! empty( $item['allow_multiple'] ) ? '[]' : '' ),
					'id' => $this->get_attribute_id( $item ),
					'class' => [
						'elementor-field-textual',
						'elementor-size-' . $item['input_size'],
					],
				],
			]
		);

		if ( $item['required'] ) {
			$this->add_required_attribute( 'select' . $i );
		}

		if ( $item['allow_multiple'] ) {
			$this->add_render_attribute( 'select' . $i, 'multiple' );
			if ( ! empty( $item['select_size'] ) ) {
				$this->add_render_attribute( 'select' . $i, 'size', $item['select_size'] );
			}
		}

		$options = preg_split( "/\\r\\n|\\r|\\n/", $item['field_options'] );

		if ( ! $options ) {
			return '';
		}

		ob_start();
		?>
		<div <?php $this->print_render_attribute_string( 'select-wrapper' . $i ); ?>>
			<select <?php $this->print_render_attribute_string( 'select' . $i ); ?>>
				<?php
				foreach ( $options as $key => $option ) {
					$option_id = $item['custom_id'] . $key;
					$option_value = esc_attr( $option );
					$option_label = esc_html( $option );

					if ( false !== strpos( $option, '|' ) ) {
						list( $label, $value ) = explode( '|', $option );
						$option_value = esc_attr( $value );
						$option_label = esc_html( $label );
					}

					$this->add_render_attribute( $option_id, 'value', $option_value );

					// Support multiple selected values
					if ( ! empty( $item['field_value'] ) && in_array( $option_value, explode( ',', $item['field_value'] ) ) ) {
						$this->add_render_attribute( $option_id, 'selected', 'selected' );
					} ?>
					<option <?php $this->print_render_attribute_string( $option_id ); ?>><?php
						// PHPCS - $option_label is already escaped
						echo $option_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></option>
				<?php } ?>
			</select>
		</div>
		<?php

		$select = ob_get_clean();
		return $select;
	}

	protected function make_radio_checkbox_field( $item, $item_index, $type ) {
		$options = preg_split( "/\\r\\n|\\r|\\n/", $item['field_options'] );
		$html = '';
		if ( $options ) {
			$html .= '<div class="elementor-field-subgroup ' . esc_attr( $item['css_classes'] ) . ' ' . $item['inline_list'] . '">';
			foreach ( $options as $key => $option ) {
				$element_id = $item['custom_id'] . $key;
				$html_id = $this->get_attribute_id( $item ) . '-' . $key;
				$option_label = $option;
				$option_value = $option;
				if ( false !== strpos( $option, '|' ) ) {
					list( $option_label, $option_value ) = explode( '|', $option );
				}

				$this->add_render_attribute(
					$element_id,
					[
						'type' => $type,
						'value' => $option_value,
						'id' => $html_id,
						'name' => $this->get_attribute_name( $item ) . ( ( 'checkbox' === $type && count( $options ) > 1 ) ? '[]' : '' ),
					]
				);

				if ( ! empty( $item['field_value'] ) && $option_value === $item['field_value'] ) {
					$this->add_render_attribute( $element_id, 'checked', 'checked' );
				}

				if ( $item['required'] && 'radio' === $type ) {
					$this->add_required_attribute( $element_id );
				}

				$html .= '<span class="elementor-field-option"><input ' . $this->get_render_attribute_string( $element_id ) . '> <label for="' . $html_id . '">' . $option_label . '</label></span>';
			}
			$html .= '</div>';
		}

		return $html;
	}

	protected function form_fields_render_attributes( $i, $instance, $item ) {
		$this->add_render_attribute(
			[
				'field-group' . $i => [
					'class' => [
						'elementor-field-type-' . $item['field_type'],
						'elementor-field-group',
						'elementor-column',
						'elementor-field-group-' . $item['custom_id'],
					],
				],
				'input' . $i => [
					'type' => $item['field_type'],
					'name' => $this->get_attribute_name( $item ),
					'id' => $this->get_attribute_id( $item ),
					'class' => [
						'elementor-field',
						'elementor-size-' . $item['input_size'],
						empty( $item['css_classes'] ) ? '' : esc_attr( $item['css_classes'] ),
					],
				],
				'label' . $i => [
					'for' => $this->get_attribute_id( $item ),
					'class' => 'elementor-field-label',
				],
			]
		);

		if ( empty( $item['width'] ) ) {
			$item['width'] = '100';
		}

		$this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-col-' . $item['width'] );

		if ( ! empty( $item['width_tablet'] ) ) {
			$this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-md-' . $item['width_tablet'] );
		}

		if ( $item['allow_multiple'] ) {
			$this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-field-type-' . $item['field_type'] . '-multiple' );
		}

		if ( ! empty( $item['width_mobile'] ) ) {
			$this->add_render_attribute( 'field-group' . $i, 'class', 'elementor-sm-' . $item['width_mobile'] );
		}

		// Allow zero as placeholder.
		if ( ! Utils::is_empty( $item['placeholder'] ) ) {
			$this->add_render_attribute( 'input' . $i, 'placeholder', $item['placeholder'] );
		}

		if ( ! empty( $item['field_value'] ) ) {
			$this->add_render_attribute( 'input' . $i, 'value', $item['field_value'] );
		}

		if ( ! $instance['show_labels'] ) {
			$this->add_render_attribute( 'label' . $i, 'class', 'elementor-screen-only' );
		}

		if ( ! empty( $item['required'] ) ) {
			$class = 'elementor-field-required';
			if ( ! empty( $instance['mark_required'] ) ) {
				$class .= ' elementor-mark-required';
			}
			$this->add_render_attribute( 'field-group' . $i, 'class', $class );
			$this->add_required_attribute( 'input' . $i );
		}
	}

	public function render_plain_content() {}

	public function get_attribute_name( $item ) {
		return "form_fields[{$item['custom_id']}]";
	}

	public function get_attribute_id( $item ) {
		return 'form-field-' . $item['custom_id'];
	}

	private function add_required_attribute( $element ) {
		$this->add_render_attribute( $element, 'required', 'required' );
		$this->add_render_attribute( $element, 'aria-required', 'true' );
	}
}
PK!�x؆@@+modules/forms/classes/mailchimp-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Mailchimp_Handler {

	private $api_base_url = '';
	private $api_key = '';
	private $api_request_args = [];

	/**
	 * Mailchimp_Handler constructor.
	 *
	 * @param $api_key
	 *
	 * @throws \Exception
	 */
	public function __construct( $api_key ) {
		if ( empty( $api_key ) ) {
			throw new \Exception( 'Invalid API key' );
		}

		// The API key is in format XXXXXXXXXXXXXXXXXXXX-us2 where us2 is the server sub domain for this account
		$key_parts = explode( '-', $api_key );
		if ( empty( $key_parts[1] ) || 0 !== strpos( $key_parts[1], 'us' ) ) {
			throw new \Exception( 'Invalid API key' );
		}

		$this->api_key = $api_key;
		$this->api_base_url = 'https://' . $key_parts[1] . '.api.mailchimp.com/3.0/';
		$this->api_request_args = [
			'headers' => [
				'Authorization' => 'Basic ' . base64_encode( 'user:' . $this->api_key ),
			],
		];
	}

	public function query( $end_point ) {
		$response = wp_remote_get( $this->api_base_url . $end_point, $this->api_request_args );

		if ( is_wp_error( $response ) || 200 != (int) wp_remote_retrieve_response_code( $response ) ) {
			throw new \Exception( 'Mailchimp Error' );
		}

		$body = json_decode( wp_remote_retrieve_body( $response ), true );

		if ( ! is_array( $body ) ) {
			throw new \Exception( 'Mailchimp Error' );
		}

		return $body;
	}

	public function post( $end_point, $data, $request_args = [] ) {
		$this->api_request_args += $request_args;
		$this->api_request_args['headers']['Content-Type'] = 'application/json; charset=utf-8';
		$this->api_request_args['body'] = wp_json_encode( $data );
		$response = wp_remote_post( $this->api_base_url . $end_point, $this->api_request_args );

		if ( is_wp_error( $response ) ) {
			throw new \Exception( 'Mailchimp Error' );
		}

		$body = json_decode( wp_remote_retrieve_body( $response ), true );
		$code = (int) wp_remote_retrieve_response_code( $response );

		// Throw an exception if there is no response body.
		// NOTE: HTTP 204 doesn't have a body.
		if ( 204 !== $code && ! is_array( $body ) ) {
			throw new \Exception( 'Mailchimp Error' );
		}

		return [
			'code' => $code,
			'body' => $body,
		];
	}

	public function get_lists() {
		$results = $this->query( 'lists?count=999' );

		$lists = [
			'' => 'Select...',
		];

		if ( ! empty( $results['lists'] ) ) {
			foreach ( $results['lists'] as $list ) {
				$lists[ $list['id'] ] = $list['name'];
			}
		}

		$return_array = [
			'lists' => $lists,
		];

		return $return_array;
	}

	public function get_groups( $list_id ) {
		$results = $this->query( 'lists/' . $list_id . '/interest-categories?count=999' );
		$groups = [];

		if ( ! empty( $results['categories'] ) ) {
			foreach ( $results['categories'] as $category ) {
				$interests_results = $this->query( 'lists/' . $list_id . '/interest-categories/' . $category['id'] . '/interests?count=999' );

				foreach ( $interests_results['interests'] as $interest ) {
					$groups[ $interest['id'] ] = $category['title'] . ' - ' . $interest['name'];
				}
			}
		}

		$return_array = [
			'groups' => $groups,
		];

		return $return_array;
	}

	public function get_fields( $list_id ) {
		$results = $this->query( 'lists/' . $list_id . '/merge-fields?count=999' );

		$fields = [
			[
				'remote_label' => 'Email',
				'remote_type' => 'email',
				'remote_id' => 'email',
				'remote_required' => true,
			],
		];

		if ( ! empty( $results['merge_fields'] ) ) {
			foreach ( $results['merge_fields'] as $field ) {
				$fields[] = [
					'remote_label' => $field['name'],
					'remote_type' => $this->normalize_type( $field['type'] ),
					'remote_id' => $field['tag'],
					'remote_required' => $field['required'],
				];
			}
		}

		$return_array = [
			'fields' => $fields,
		];

		return $return_array;
	}

	public function get_list_details( $list_id ) {
		$groups = $this->get_groups( $list_id );
		$fields = $this->get_fields( $list_id );

		return [
			'list_details' => $groups + $fields,
		];
	}

	private function normalize_type( $type ) {
		static $types = [
			'text' => 'text',
			'number' => 'number',
			'address' => 'text',
			'phone' => 'text',
			'date' => 'text',
			'url' => 'url',
			'imageurl' => 'url',
			'radio' => 'radio',
			'dropdown' => 'select',
			'birthday' => 'text',
			'zip' => 'text',
		];

		return $types[ $type ];
	}
}
PK!b0L_6#6#+modules/forms/classes/recaptcha-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use Elementor\Settings;
use Elementor\Widget_Base;
use ElementorPro\Core\Utils;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Integration with Google reCAPTCHA
 */
class Recaptcha_Handler {

	const OPTION_NAME_SITE_KEY = 'elementor_pro_recaptcha_site_key';

	const OPTION_NAME_SECRET_KEY = 'elementor_pro_recaptcha_secret_key';

	const OPTION_NAME_RECAPTCHA_THRESHOLD = 'elementor_pro_recaptcha_threshold';

	const V2_CHECKBOX = 'v2_checkbox';

	protected static function get_recaptcha_name() {
		return 'recaptcha';
	}

	public static function get_site_key() {
		return get_option( self::OPTION_NAME_SITE_KEY );
	}

	public static function get_secret_key() {
		return get_option( self::OPTION_NAME_SECRET_KEY );
	}

	public static function get_recaptcha_type() {
		return self::V2_CHECKBOX;
	}

	public static function is_enabled() {
		return static::get_site_key() && static::get_secret_key();
	}

	public static function get_setup_message() {
		return esc_html__( 'To use reCAPTCHA, you need to add the API Key and complete the setup process in Dashboard > Elementor > Settings > Integrations > reCAPTCHA.', 'elementor-pro' );
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, static::get_recaptcha_name(), [
			'label' => esc_html__( 'reCAPTCHA', 'elementor-pro' ),
			'callback' => function () {
				echo sprintf(
					/* translators: 1: Link open tag, 2: Link closing tag. */
					esc_html__( '%1$sreCAPTCHA%2$s is a free service by Google that protects your website from spam and abuse. It does this while letting your valid users pass through with ease.', 'elementor-pro' ),
					'<a href="https://www.google.com/recaptcha/" target="_blank">',
					'</a>'
				);
			},
			'fields' => [
				'pro_recaptcha_site_key' => [
					'label' => esc_html__( 'Site Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
					],
				],
				'pro_recaptcha_secret_key' => [
					'label' => esc_html__( 'Secret Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
					],
				],
			],
		] );
	}

	public function localize_settings( $settings ) {
		$settings = array_replace_recursive( $settings, [
			'forms' => [
				static::get_recaptcha_name() => [
					'enabled' => static::is_enabled(),
					'type' => static::get_recaptcha_type(),
					'site_key' => static::get_site_key(),
					'setup_message' => static::get_setup_message(),
				],
			],
		] );

		return $settings;
	}

	protected static function get_script_render_param() {
		return 'explicit';
	}

	protected static function get_script_name() {
		return 'elementor-' . static::get_recaptcha_name() . '-api';
	}

	public function register_scripts() {
		$script_name = static::get_script_name();
		$src = 'https://www.google.com/recaptcha/api.js?render=explicit';
		wp_register_script( $script_name, $src, [], ELEMENTOR_PRO_VERSION, true );
	}

	public function enqueue_scripts() {
		if ( Plugin::elementor()->preview->is_preview_mode() ) {
			return;
		}
		$script_name = static::get_script_name();
		wp_enqueue_script( $script_name );
	}

	/**
	 * @param Form_Record  $record
	 * @param Ajax_Handler $ajax_handler
	 */
	public function validation( $record, $ajax_handler ) {
		$fields = $record->get_field( [
			'type' => static::get_recaptcha_name(),
		] );

		if ( empty( $fields ) ) {
			return;
		}

		$field = current( $fields );

		if ( empty( $_POST['g-recaptcha-response'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
			$ajax_handler->add_error( $field['id'], esc_html__( 'The Captcha field cannot be blank. Please enter a value.', 'elementor-pro' ) );

			return;
		}

		$recaptcha_errors = [
			'missing-input-secret' => esc_html__( 'The secret parameter is missing.', 'elementor-pro' ),
			'invalid-input-secret' => esc_html__( 'The secret parameter is invalid or malformed.', 'elementor-pro' ),
			'missing-input-response' => esc_html__( 'The response parameter is missing.', 'elementor-pro' ),
			'invalid-input-response' => esc_html__( 'The response parameter is invalid or malformed.', 'elementor-pro' ),
		];

		// PHPCS - response protected by recaptcha secret
		$recaptcha_response = $_POST['g-recaptcha-response']; // phpcs:ignore WordPress.Security.NonceVerification.Missing
		$recaptcha_secret = static::get_secret_key();
		$client_ip = Utils::get_client_ip();

		$request = [
			'body' => [
				'secret' => $recaptcha_secret,
				'response' => $recaptcha_response,
				'remoteip' => $client_ip,
			],
		];

		$response = wp_remote_post( 'https://www.google.com/recaptcha/api/siteverify', $request );

		$response_code = wp_remote_retrieve_response_code( $response );

		if ( 200 !== (int) $response_code ) {
			/* translators: %d: Response code. */
			$ajax_handler->add_error( $field['id'], sprintf( esc_html__( 'Can not connect to the reCAPTCHA server (%d).', 'elementor-pro' ), $response_code ) );

			return;
		}

		$body = wp_remote_retrieve_body( $response );

		$result = json_decode( $body, true );

		if ( ! $this->validate_result( $result, $field ) ) {
			$message = esc_html__( 'Invalid Form - reCAPTCHA validation failed', 'elementor-pro' );

			if ( isset( $result['error-codes'] ) ) {
				$result_errors = array_flip( $result['error-codes'] );

				foreach ( $recaptcha_errors as $error_key => $error_desc ) {
					if ( isset( $result_errors[ $error_key ] ) ) {
						$message = $recaptcha_errors[ $error_key ];
						break;
					}
				}
			}

			$this->add_error( $ajax_handler, $field, $message );

		}

		// If success - remove the field form list (don't send it in emails and etc )
		$record->remove_field( $field['id'] );

	}

	/**
	 * @param Ajax_Handler $ajax_handler
	 * @param $field
	 * @param $message
	 */
	protected function add_error( $ajax_handler, $field, $message ) {
		$ajax_handler->add_error( $field['id'], $message );
	}

	protected function validate_result( $result, $field ) {
		if ( ! $result['success'] ) {
			return false;
		}

		return true;
	}

	/**
	 * @param $item
	 * @param $item_index
	 * @param $widget Widget_Base
	 */
	public function render_field( $item, $item_index, $widget ) {
		$recaptcha_html = '<div class="elementor-field" id="form-field-' . $item['custom_id'] . '">';

		$recaptcha_name = static::get_recaptcha_name();

		if ( static::is_enabled() ) {
			$this->enqueue_scripts();
			$this->add_render_attributes( $item, $item_index, $widget );
			$recaptcha_html .= '<div ' . $widget->get_render_attribute_string( $recaptcha_name . $item_index ) . '></div>';
		} elseif ( current_user_can( 'manage_options' ) ) {
			$recaptcha_html .= '<div class="elementor-alert elementor-alert-info">';
			$recaptcha_html .= static::get_setup_message();
			$recaptcha_html .= '</div>';
		}

		$recaptcha_html .= '</div>';

		// PHPCS - It's all escaped
		echo $recaptcha_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
	}

	/**
	 * @param $item
	 * @param $item_index
	 * @param $widget Widget_Base
	 */
	protected function add_render_attributes( $item, $item_index, $widget ) {
		$recaptcha_name = static::get_recaptcha_name();

		$widget->add_render_attribute( [
			$recaptcha_name . $item_index => [
				'class' => 'elementor-g-recaptcha',
				'data-sitekey' => static::get_site_key(),
				'data-type' => static::get_recaptcha_type(),
			],
		] );

		$this->add_version_specific_render_attributes( $item, $item_index, $widget );
	}

	/**
	 * @param $item
	 * @param $item_index
	 * @param $widget Widget_Base
	 */
	protected function add_version_specific_render_attributes( $item, $item_index, $widget ) {
		$recaptcha_name = static::get_recaptcha_name();
		$widget->add_render_attribute( $recaptcha_name . $item_index, [
			'data-theme' => $item['recaptcha_style'],
			'data-size' => $item['recaptcha_size'],
		] );
	}

	public function add_field_type( $field_types ) {
		$field_types['recaptcha'] = esc_html__( 'reCAPTCHA', 'elementor-pro' );

		return $field_types;
	}

	public function filter_field_item( $item ) {
		if ( static::get_recaptcha_name() === $item['field_type'] ) {
			$item['field_label'] = false;
		}

		return $item;
	}

	public function __construct() {
		$this->register_scripts();

		add_filter( 'elementor_pro/forms/field_types', [ $this, 'add_field_type' ] );
		add_action( 'elementor_pro/forms/render_field/' . static::get_recaptcha_name(), [ $this, 'render_field' ], 10, 3 );
		add_filter( 'elementor_pro/forms/render/item', [ $this, 'filter_field_item' ] );
		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );

		if ( static::is_enabled() ) {
			add_action( 'elementor_pro/forms/validation', [ $this, 'validation' ], 10, 2 );
			add_action( 'elementor/preview/enqueue_scripts', [ $this, 'enqueue_scripts' ] );
		}

		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ] );
		}
	}
}
PK!��N<��%modules/forms/classes/rest-client.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Rest_Client {

	private $api_base_url = '';
	private $user_agent = 'Elementor Forms (elementor.com)';
	public $request_cache = [];
	private $headers = [];
	private $request_args = [];

	public function __construct( $rest_base_url ) {
		$this->api_base_url = $rest_base_url;
		//setup defaults
		$this->set_request_arg( 'timeout', 30 )
			 ->set_request_arg( 'sslverify', false )
			 ->add_headers( 'User-Agent', $this->user_agent );

		/**
		 * Elementor form Rest Client Init
		 *
		 * Fires on client init
		 *
		 * @since 2.4.0
		 *
		 * @param Rest_Client $this
		 */
		do_action( 'elementor-pro/forms/rest_client/init', $this );

		return $this;
	}

	/**
	 * set base url
	 * @param string $url
	 */
	public function set_base_url( $url ) {
		$this->api_base_url = $url;
	}

	/**
	 * get base url
	 * @return string
	 */
	public function get_base_url() {
		return $this->api_base_url;
	}

	/**
	 * @param $key
	 * @param $value
	 *
	 * @return $this
	 */
	public function add_headers( $key, $value = null ) {
		if ( ! is_array( $key ) ) {
			$this->headers[ $key ] = $value;

			return $this;
		}
		foreach ( $key as $header => $header_value ) {
			$this->headers[ $header ] = $header_value;
		}

		return $this;
	}

	/**
	 * @param string $name
	 * @param null   $value
	 *
	 * @return $this
	 */
	public function set_request_arg( $name = '', $value = null ) {
		$this->request_args[ $name ] = $value;

		return $this;
	}

	/**
	 * @uses request
	 *
	 * @param string $endpoint
	 * @param null   $data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function post( $endpoint = '', $data = null ) {
		$request_body = wp_json_encode( $data );

		return $this->request( 'POST', $endpoint, $request_body );
	}

	/**
	 * @uses request
	 *
	 * @param string $endpoint
	 * @param null   $data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function get( $endpoint = '', $data = null ) {
		return $this->request( 'GET', $endpoint, $data );
	}

	/**
	 * @param string $method
	 * @param string $endpoint
	 * @param null   $request_body
	 * @param int    $valid_response_code
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function request( $method = 'GET', $endpoint = '', $request_body = null, $valid_response_code = 200 ) {
		$request_url = $this->api_base_url . $endpoint;
		$base_args = [
			'method' => $method,
			'headers' => $this->headers,
		];
		$api_request_args = array_merge( $base_args, $this->request_args );
		if ( null !== $request_body ) {
			if ( in_array( $method, [ 'POST', 'PUT' ] ) ) {
				$api_request_args['body'] = $request_body;
			} else {
				$request_url = add_query_arg( $request_body, $request_url );
			}
		}

		$cache_key = md5( $method . $endpoint . json_encode( $api_request_args ) );
		if ( isset( $this->request_cache[ $cache_key ] ) && isset( $this->request_cache[ $cache_key ]['parsed'] ) ) {
			$this->request_cache[ $cache_key ]['parsed'];
		}

		$response = wp_remote_request( $request_url, $api_request_args );
		$response_code = (int) wp_remote_retrieve_response_code( $response );

		$this->request_cache[ $cache_key ]['raw'] = $response;

		if ( is_wp_error( $response ) || $valid_response_code !== $response_code ) {
			throw new \Exception( 'Rest Client Error: response code ' . $response_code );
		}

		$response_body = json_decode( wp_remote_retrieve_body( $response ), true );

		if ( ! is_array( $response_body ) ) {
			throw new \Exception( 'Rest Client Error: unexpected response type' );
		}

		$return = [
			'code' => $response_code,
			'body' => $response_body,
		];
		$this->request_cache[ $cache_key ]['parsed'] = $return;

		return $return;
	}
}
PK!�B�L

&modules/forms/classes/drip-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Drip_Handler {
	private $rest_client = null;
	private $api_token = '';

	/**
	 * Drip_Handler constructor.
	 *
	 * @param $api_token
	 *
	 * @throws \Exception
	 */
	public function __construct( $api_token ) {
		if ( empty( $api_token ) ) {
			throw new \Exception( 'Invalid API key' );
		}
		$this->init_rest_client( $api_token );
		if ( ! $this->is_valid_api_token() ) {
			throw new \Exception( 'Invalid API key' );
		}
	}

	private function init_rest_client( $api_token ) {
		$this->api_token = $api_token;
		$this->rest_client = new Rest_Client( 'https://api.getdrip.com/v2/' );
		$this->rest_client->add_headers( [
			'Authorization' => 'Basic ' . base64_encode( $this->api_token ),
			'Content-Type' => 'application/vnd.api+json',
		] );
	}

	/**
	 * validate api token
	 *
	 * @return bool
	 * @throws \Exception
	 */
	private function is_valid_api_token() {
		$accounts = $this->get_accounts();
		if ( ! empty( $accounts ) ) {
			return true;
		}
		$this->api_token = '';

		return false;
	}

	/**
	 * get drip accounts associated with API token
	 * @return array
	 * @throws \Exception
	 */
	public function get_accounts() {
		$results = $this->rest_client->get( 'accounts' );

		$accounts = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( ! empty( $results['body']['accounts'] ) ) {
			foreach ( $results['body']['accounts'] as $index => $account ) {
				$accounts[ $account['id'] ] = $account['name'];
			}
		}

		$return_array = [
			'accounts' => $accounts,
		];

		return $return_array;
	}

	/**
	 * create subscriber at drip via api
	 *
	 * @param string $account_id
	 * @param array  $subscriber_data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function create_subscriber( $account_id = '', $subscriber_data = [] ) {
		$end_point = sprintf( '%s/subscribers/', $account_id );

		return $this->rest_client->post( $end_point, [ 'subscribers' => [ $subscriber_data ] ] );
	}
}
PK!v<̰!�!&modules/forms/classes/ajax-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

use ElementorPro\Modules\Forms\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Ajax_Handler {

	public $is_success = true;
	public $messages = [
		'success' => [],
		'error' => [],
		'admin_error' => [],
	];
	public $data = [];
	public $errors = [];

	private $current_form;

	const SUCCESS = 'success';
	const ERROR = 'error';
	const FIELD_REQUIRED = 'required_field';
	const INVALID_FORM = 'invalid_form';
	const SERVER_ERROR = 'server_error';
	const SUBSCRIBER_ALREADY_EXISTS = 'subscriber_already_exists';

	public static function is_form_submitted() {
		// PHPCS - No nonce is required, all visitors may send the form.
		return wp_doing_ajax() && isset( $_POST['action'] ) && 'elementor_pro_forms_send_form' === $_POST['action']; // phpcs:ignore WordPress.Security.NonceVerification.Missing
	}

	public static function get_default_messages() {
		return [
			self::SUCCESS => esc_html__( 'The form was sent successfully.', 'elementor-pro' ),
			self::ERROR => esc_html__( 'An error occurred.', 'elementor-pro' ),
			self::FIELD_REQUIRED => esc_html__( 'This field is required.', 'elementor-pro' ),
			self::INVALID_FORM => esc_html__( 'There\'s something wrong. The form is invalid.', 'elementor-pro' ),
			self::SERVER_ERROR => esc_html__( 'Server error. Form not sent.', 'elementor-pro' ),
			self::SUBSCRIBER_ALREADY_EXISTS => esc_html__( 'Subscriber already exists.', 'elementor-pro' ),
		];
	}

	public static function get_default_message( $id, $settings ) {
		if ( ! empty( $settings['custom_messages'] ) ) {
			$field_id = $id . '_message';
			if ( isset( $settings[ $field_id ] ) ) {
				return $settings[ $field_id ];
			}
		}

		$default_messages = self::get_default_messages();

		return isset( $default_messages[ $id ] ) ? $default_messages[ $id ] : esc_html__( 'Unknown', 'elementor-pro' );
	}

	public function ajax_send_form() {
		$post_data = $_POST; // phpcs:ignore WordPress.Security.NonceVerification.Missing
		// $post_id that holds the form settings.
		$post_id = $post_data['post_id'];

		// $queried_id the post for dynamic values data.
		if ( isset( $post_data['queried_id'] ) ) {
			$queried_id = $post_data['queried_id'];
		} else {
			$queried_id = $post_id;
		}

		// Make the post as global post for dynamic values.
		Plugin::elementor()->db->switch_to_post( $queried_id );

		$form_id = $post_data['form_id'];

		$elementor = Plugin::elementor();
		$document = $elementor->documents->get( $post_id );
		$form = null;
		$template_id = null;

		if ( $document ) {
			$form = Module::find_element_recursive( $document->get_elements_data(), $form_id );
		}

		if ( ! empty( $form['templateID'] ) ) {
			$template = Plugin::elementor()->documents->get( $form['templateID'] );

			if ( ! $template ) {
				return false;
			}

			$template_id = $template->get_id();
			$form = $template->get_elements_data()[0];
		}

		if ( empty( $form ) ) {
			$this
				->add_error_message( self::get_default_message( self::INVALID_FORM, [] ) )
				->send();
		}

		// restore default values
		$widget = $elementor->elements_manager->create_element_instance( $form );
		$form['settings'] = $widget->get_settings_for_display();
		$form['settings']['id'] = $form_id;
		$form['settings']['form_post_id'] = $template_id ? $template_id : $post_id;

		// TODO: Should be removed if there is an ability to edit "global widgets"
		$form['settings']['edit_post_id'] = $post_id;

		$this->current_form = $form;

		if ( empty( $form['settings']['form_fields'] ) ) {
			$this
				->add_error_message( self::get_default_message( self::INVALID_FORM, $form['settings'] ) )
				->send();
		}

		$record = new Form_Record( $post_data['form_fields'], $form );

		if ( ! $record->validate( $this ) ) {
			$this
				->add_error( $record->get( 'errors' ) )
				->add_error_message( self::get_default_message( self::ERROR, $form['settings'] ) )
				->send();
		}

		$record->process_fields( $this );
		//check for process errors
		if ( ! empty( $this->errors ) ) {
			$this->send();
		}

		$module = Module::instance();

		$actions = $module->actions_registrar->get();
		$errors = array_merge( $this->messages['error'], $this->messages['admin_error'] );

		/**
		 * Filters the record before it sent to actions after submit.
		 *
		 * @since 3.3.0
		 *
		 * @param Form_Record $record The form record.
		 * @param Ajax_Handler $this The class that handle the submission of the record
		 */
		$record = apply_filters( 'elementor_pro/forms/record/actions_before', $record, $this );

		foreach ( $actions as $action ) {
			if ( ! in_array( $action->get_name(), $form['settings']['submit_actions'], true ) ) {
				continue;
			}

			$exception = null;

			try {
				$action->run( $record, $this );

				$this->handle_bc_errors( $errors );
			} catch ( \Exception $e ) {
				$exception = $e;

				// Add an admin error.
				if ( ! in_array( $exception->getMessage(), $this->messages['admin_error'], true ) ) {
					$this->add_admin_error_message( "{$action->get_label()} {$exception->getMessage()}" );
				}

				// Add a user error.
				$this->add_error_message( $this->get_default_message( self::ERROR, $this->current_form['settings'] ) );
			}

			$errors = array_merge( $this->messages['error'], $this->messages['admin_error'] );

			do_action( 'elementor_pro/forms/actions/after_run', $action, $exception );
		}

		$activity_log = $module->get_component( 'activity_log' );
		if ( $activity_log ) {
			$activity_log->run( $record, $this );
		}

		$cf7db = $module->get_component( 'cf7db' );
		if ( $cf7db ) {
			$cf7db->run( $record, $this );
		}

		/**
		 * New Elementor form record.
		 *
		 * Fires before a new form record is send by ajax.
		 *
		 * @since 1.0.0
		 *
		 * @param Form_Record  $record An instance of the form record.
		 * @param Ajax_Handler $this   An instance of the ajax handler.
		 */
		do_action( 'elementor_pro/forms/new_record', $record, $this );

		$this->send();
	}

	public function add_success_message( $message ) {
		$this->messages['success'][] = $message;

		return $this;
	}

	public function add_response_data( $key, $data ) {
		$this->data[ $key ] = $data;

		return $this;
	}

	public function add_error_message( $message ) {
		$this->messages['error'][] = $message;
		$this->set_success( false );

		return $this;
	}

	public function add_error( $field, $message = '' ) {
		if ( is_array( $field ) ) {
			$this->errors += $field;
		} else {
			$this->errors[ $field ] = $message;
		}

		$this->set_success( false );

		return $this;
	}

	public function add_admin_error_message( $message ) {
		$this->messages['admin_error'][] = $message;
		$this->set_success( false );

		return $this;
	}

	public function set_success( $bool ) {
		$this->is_success = $bool;

		return $this;
	}

	public function send() {
		if ( $this->is_success ) {
			wp_send_json_success( [
				'message' => $this->get_default_message( self::SUCCESS, $this->current_form['settings'] ),
				'data' => $this->data,
			] );
		}

		if ( empty( $this->messages['error'] ) && ! empty( $this->errors ) ) {
			$this->add_error_message( $this->get_default_message( self::INVALID_FORM, $this->current_form['settings'] ) );
		}

		$error_msg = implode( '<br>', $this->messages['error'] );
		if ( current_user_can( 'edit_post', $_POST['post_id'] ) && ! empty( $this->messages['admin_error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
			$this->add_admin_error_message( esc_html__( 'This Message is not visible for site visitors.', 'elementor-pro' ) );
			$error_msg .= '<div class="elementor-forms-admin-errors">' . implode( '<br>', $this->messages['admin_error'] ) . '</div>';
		}

		wp_send_json_error( [
			'message' => $error_msg,
			'errors' => $this->errors,
			'data' => $this->data,
		] );
	}

	public function get_current_form() {
		return $this->current_form;
	}

	/**
	 * BC: checks if the current action add some errors to the errors array
	 * if it add an error the "run" method treat it as a failed action.
	 *
	 * @param $errors
	 *
	 * @throws \Exception
	 */
	private function handle_bc_errors( $errors ) {
		$current_errors = array_merge( $this->messages['error'], $this->messages['admin_error'] );
		$errors_diff = array_diff( $current_errors, $errors );

		if ( count( $errors_diff ) > 0 ) {
			throw new \Exception( implode( ', ', $errors_diff ) );
		}
	}

	public function __construct() {
		add_action( 'wp_ajax_elementor_pro_forms_send_form', [ $this, 'ajax_send_form' ] );
		add_action( 'wp_ajax_nopriv_elementor_pro_forms_send_form', [ $this, 'ajax_send_form' ] );
	}
}
PK!O���:
:
,modules/forms/classes/mailerlite-handler.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Classes;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Mailerlite_Handler {
	/**
	 * @var Rest_Client
	 */
	private $rest_client = null;
	private $api_key = '';

	/**
	 * Mailerlite_Handler constructor.
	 *
	 * @param $api_key
	 *
	 * @throws \Exception
	 */
	public function __construct( $api_key ) {
		if ( empty( $api_key ) ) {
			throw new \Exception( 'Invalid API key' );
		}
		$this->init_rest_client( $api_key );
		if ( ! $this->is_valid_api_key() ) {
			throw new \Exception( 'Invalid API key' );
		}
	}

	private function init_rest_client( $api_key ) {
		$this->api_key = $api_key;
		$this->rest_client = new Rest_Client( 'https://api.mailerlite.com/api/v2/' );
		$this->rest_client->add_headers( [
			'X-MailerLite-ApiKey' => $api_key,
			'Content-Type' => 'application/json',
		] );
	}

	/**
	 * validate api key
	 *
	 * @return bool
	 * @throws \Exception
	 */
	private function is_valid_api_key() {
		$groups = $this->rest_client->get( 'groups' );
		if ( ! empty( $groups ) ) {
			return true;
		}
		$this->api_key = '';

		return false;
	}

	/**
	 * get MailerLite groups associated with API key
	 * @return array
	 * @throws \Exception
	 */
	public function get_groups() {
		$results = $this->rest_client->get( 'groups' );

		$groups = [
			'' => esc_html__( 'Select...', 'elementor-pro' ),
		];

		if ( 200 === $results['code'] ) {
			foreach ( $results['body'] as $index => $group ) {
				$groups[ $group['id'] ] = $group['name'];
			}
		}

		$return_array = [
			'groups' => $groups,
			'fields' => $this->get_fields(),
		];

		return $return_array;
	}

	/**
	 * get MailerLite fields associated with API key
	 * @return array
	 * @throws \Exception
	 */
	public function get_fields() {
		$results = $this->rest_client->get( 'fields' );

		$fields = [];
		if ( ! empty( $results['body'] ) ) {
			foreach ( $results['body'] as $index => $field ) {
				if ( ! is_array( $field ) || empty( $field['date_updated'] ) ) {
					continue;
				}
				$fields[] = [
					'remote_label' => $field['title'],
					'remote_type' => strtolower( $field['type'] ),
					'remote_id' => $field['key'],
					'remote_required' => false,
				];
			}
		}

		return $fields;
	}

	/**
	 * create subscriber at drip via api
	 *
	 * @param string $group
	 * @param array  $subscriber_data
	 *
	 * @return array|mixed
	 * @throws \Exception
	 */
	public function create_subscriber( $group = '', $subscriber_data = [] ) {
		$end_point = sprintf( 'groups/%s/subscribers', $group );

		return $this->rest_client->post( $end_point, $subscriber_data );
	}
}
PK!��qe	e	3modules/forms/registrars/form-actions-registrar.phpnu�[���<?php

namespace ElementorPro\Modules\Forms\Registrars;

use ElementorPro\Core\Utils\Registrar;
use ElementorPro\Modules\Forms\Actions;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Basic form actions registration manager.
 */
class Form_Actions_Registrar extends Registrar {

	/**
	 * Form_Actions_Registrar constructor.
	 *
	 * @return void
	 */
	public function __construct() {
		parent::__construct();

		$this->init();
	}

	/**
	 * Initialize the default fields.
	 *
	 * @return void
	 */
	public function init() {
		// Register the actions handlers using a hook since some actions need to be registered before those actions (e.g: save-to-database).
		add_action( 'elementor_pro/forms/actions/register', function ( Form_Actions_Registrar $actions_registrar ) {
			$actions_registrar->register( new Actions\Email() );
			$actions_registrar->register( new Actions\Email2() );
			$actions_registrar->register( new Actions\Redirect() );
			$actions_registrar->register( new Actions\Webhook() );
			$actions_registrar->register( new Actions\Mailchimp() );
			$actions_registrar->register( new Actions\Drip() );
			$actions_registrar->register( new Actions\Activecampaign() );
			$actions_registrar->register( new Actions\Getresponse() );
			$actions_registrar->register( new Actions\Convertkit() );
			$actions_registrar->register( new Actions\Mailerlite() );
			$actions_registrar->register( new Actions\Slack() );
			$actions_registrar->register( new Actions\Discord() );
		} );

		/**
		 * Deprecated actions registration hook.
		 *
		 * @deprecated 3.5.0
		 */
		Plugin::elementor()->modules_manager->get_modules( 'dev-tools' )->deprecation->do_deprecated_action(
			'elementor_pro/forms/register_action',
			[ $this ],
			'3.5.0',
			'elementor_pro/forms/actions/register'
		);

		/**
		 * Elementor Pro form actions registration.
		 * Passes the Actions_Registrar as a parameter in order to register new actions using `$registrar->register()`.
		 *
		 * @since 3.5.0
		 *
		 * @param Form_Actions_Registrar $this An instance of form actions registrar.
		 */
		do_action( 'elementor_pro/forms/actions/register', $this );

		// MailPoet
		if ( class_exists( '\WYSIJA' ) ) {
			$this->register( new Actions\Mailpoet() );
		}

		// MailPoet
		if ( class_exists( '\MailPoet\API\API' ) ) {
			$this->register( new Actions\Mailpoet3() );
		}
	}
}
PK!,d4}JJ2modules/forms/registrars/form-fields-registrar.phpnu�[���<?php

namespace ElementorPro\Modules\Forms\Registrars;

use ElementorPro\Core\Utils\Registrar;
use ElementorPro\Modules\Forms\Fields;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Basic form fields registration manager.
 */
class Form_Fields_Registrar extends Registrar {

	/**
	 * Form_Fields_Registrar constructor.
	 *
	 * @return void
	 */
	public function __construct() {
		parent::__construct();

		$this->init();
	}

	/**
	 * Initialize the default fields.
	 *
	 * @return void
	 */
	public function init() {
		$this->register( new Fields\Time() );
		$this->register( new Fields\Date() );
		$this->register( new Fields\Tel() );
		$this->register( new Fields\Number() );
		$this->register( new Fields\Acceptance() );
		$this->register( new Fields\Upload() );
		$this->register( new Fields\Step() );

		/**
		 * Elementor Pro form fields registration.
		 * Passes the Fields_Registrar as a parameter in order to register new fields using `$registrar->register()`.
		 *
		 * @since 3.5.0
		 */
		do_action( 'elementor_pro/forms/fields/register', $this );
	}
}
PK!�*���"modules/forms/actions/mailpoet.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Mailpoet extends Integration_Base {

	public function get_name() {
		return 'mailpoet';
	}

	public function get_label() {
		return 'MailPoet';
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_mailpoet',
			[
				'label' => esc_html__( 'MailPoet', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		/** @var \WYSIJA_model_list $model_list */
		$model_list = \WYSIJA::get( 'list', 'model' );
		$mailpoet_lists = $model_list->get( [ 'name', 'list_id' ], [ 'is_enabled' => 1 ] );
		$options = [];

		foreach ( $mailpoet_lists as $list ) {
			$options[ $list['list_id'] ] = $list['name'];
		}

		$widget->add_control(
			'mailpoet_lists',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'label_block' => true,
				'options' => $options,
				'render_type' => 'none',
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset( $element['mailpoet_lists'] );

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$subscriber = $this->map_fields( $record );

		/** @var \WYSIJA_help_user $helper_user */
		$helper_user = \WYSIJA::get( 'user', 'helper' );
		$helper_user->addSubscriber( $subscriber );
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( $record ) {
		$settings = $record->get( 'form_settings' );
		$fields = $record->get( 'fields' );

		$subscriber = [
			'user' => [
				'email' => '',
			],
			'user_list' => [ 'list_ids' => (array) $settings['mailpoet_lists'] ],
		];

		foreach ( $settings['mailpoet_fields_map'] as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			if ( 'email' === $map_item['remote_id'] ) {
				$subscriber['user']['email'] = $value;
			} else {
				$subscriber['user'][ $map_item['remote_id'] ] = $value;
			}
		}

		return $subscriber;
	}

	protected function get_fields_map_control_options() {
		return [
			'default' => [
				[
					'remote_id' => 'firstname',
					'remote_label' => esc_html__( 'First Name', 'elementor-pro' ),
					'remote_type' => 'text',
				],
				[
					'remote_id' => 'lastname',
					'remote_label' => esc_html__( 'Last Name', 'elementor-pro' ),
					'remote_type' => 'text',
				],
				[
					'remote_id' => 'email',
					'remote_label' => esc_html__( 'Email', 'elementor-pro' ),
					'remote_type' => 'email',
					'remote_required' => true,
				],
			],
			'condition' => [
				'mailpoet_lists!' => '',
			],
		];
	}
}
PK!P)ʍJJ$modules/forms/actions/convertkit.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use ElementorPro\Modules\Forms\Classes\Convertkit_Handler;
use ElementorPro\Core\Utils;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Convertkit extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_convertkit_api_key';

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY );
	}

	public function get_name() {
		return 'convertkit';
	}

	public function get_label() {
		return esc_html__( 'ConvertKit', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_convertkit',
			[
				'label' => esc_html__( 'ConvertKit', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'ConvertKit API key',
			[
				'convertkit_api_key_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'convertkit_api_key_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'convertkit_custom_api_key',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Use this field to set a custom API Key for the current form', 'elementor-pro' ),
				'condition' => [
					'convertkit_api_key_source' => 'custom',
				],
			]
		);

		$widget->add_control(
			'convertkit_form',
			[
				'label' => esc_html__( 'Form', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'convertkit_custom_api_key',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'convertkit_api_key_source',
							'operator' => '=',
							'value' => 'default',
						],
					],
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->add_control(
			'convertkit_tags',
			[
				'label' => esc_html__( 'Tags', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'options' => [],
				'multiple' => true,
				'render_type' => 'none',
				'label_block' => true,
				'condition' => [
					'convertkit_form!' => '',
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['convertkit_api_key_source'],
			$element['settings']['convertkit_custom_api_key'],
			$element['settings']['convertkit_form'],
			$element['settings']['convertkit_fields_map']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->create_subscriber_object( $record );

		if ( ! $subscriber ) {
			throw new \Exception( esc_html__( 'Integration requires an email field', 'elementor-pro' ) );
		}

		if ( 'default' === $form_settings['convertkit_api_key_source'] ) {
			$api_key = $this->get_global_api_key();
		} else {
			$api_key = $form_settings['convertkit_custom_api_key'];
		}

		if ( '' !== $form_settings['convertkit_tags'] ) {
			$subscriber['tags'] = $form_settings['convertkit_tags'];
		}

		$handler = new ConvertKit_Handler( $api_key );
		$handler->create_subscriber( $form_settings['convertkit_form'], $subscriber );
	}

	/**
	 * Create subscriber array from submitted data and form settings
	 * returns a subscriber array or false on error
	 *
	 * @param Form_Record $record
	 *
	 * @return array|bool
	 */
	private function create_subscriber_object( Form_Record $record ) {
		$subscriber = $this->map_fields( $record );

		if ( ! isset( $subscriber['email'] ) ) {
			return false;
		}

		$subscriber['ipAddress'] = Utils::get_client_ip();

		return $subscriber;
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( Form_Record $record ) {
		$subscriber = [];
		$fields = $record->get( 'fields' );

		// Other form has a field mapping
		foreach ( $record->get_form_settings( 'convertkit_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			if ( in_array( $map_item['remote_id'], [ 'first_name', 'email' ] ) ) {
				$subscriber[ $map_item['remote_id'] ] = $value;
				continue;
			}
		}

		return $subscriber;
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['api_key'] ) && 'default' === $data['api_key'] ) {
			$api_key = $this->get_global_api_key();
		} elseif ( ! empty( $data['custom_api_key'] ) ) {
			$api_key = $data['custom_api_key'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_key` is required', 400 );
		}

		$handler = new Convertkit_Handler( $api_key );

		return $handler->get_forms_and_tags();
	}

	public function ajax_validate_api_token() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) ) {
			wp_send_json_error();
		}
		try {
			new Convertkit_Handler( $_POST['api_key'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'convertkit', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'ConvertKit', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="https://app.convertkit.com/account/edit" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_convertkit_api_key_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_token' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'convertkit_form!' => '',
			],
		];
	}
}
PK!�����modules/forms/actions/slack.phpnu�[���<?php

namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Action_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Slack extends Action_Base {

	public function get_name() {
		return 'slack';
	}

	public function get_label() {
		return esc_html__( 'Slack', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_slack',
			[
				'label' => esc_html__( 'Slack', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'slack_webhook',
			[
				'label' => esc_html__( 'Webhook URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => 'https://hooks.slack.com/services/',
				'label_block' => true,
				'separator' => 'before',
				'description' => esc_html__( 'Enter the webhook URL that will receive the form\'s submitted data.', 'elementor-pro' ) . ' ' . sprintf( '<a href="%s" target="_blank">%s</a>.', 'https://slack.com/apps/A0F7XDUAZ-incoming-webhooks/', esc_html__( 'Click here for Instructions', 'elementor-pro' ) ),
				'render_type' => 'none',
				'classes' => 'elementor-control-direction-ltr',
			]
		);

		$widget->add_control(
			'slack_channel',
			[
				'label' => esc_html__( 'Channel', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'slack_username',
			[
				'label' => esc_html__( 'Username', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'slack_pretext',
			[
				'label' => esc_html__( 'Pre Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'slack_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'slack_text',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'slack_add_fields',
			[
				'label' => esc_html__( 'Form Data', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$widget->add_control(
			'slack_add_ts',
			[
				'label' => esc_html__( 'Timestamp', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$widget->add_control(
			'slack_webhook_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'alpha' => false,
				'default' => '#D30C5C',
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['slack_add_ts'],
			$element['slack_add_fields'],
			$element['slack_webhook_color'],
			$element['slack_text'],
			$element['slack_pretext'],
			$element['slack_title'],
			$element['slack_username'],
			$element['slack_webhook'],
			$element['slack_channel']
		);
	}

	public function run( $record, $ajax_handler ) {
		$settings = $record->get( 'form_settings' );

		if ( empty( $settings['slack_webhook'] ) || false === strpos( $settings['slack_webhook'], 'https://hooks.slack.com/services/' ) ) {
			return;
		}

		// Build slack webhook data
		$webhook_data = [
			'username' => isset( $settings['slack_username'] ) ? $settings['slack_username'] : '',
		];

		if ( ! empty( $settings['slack_channel'] ) ) {
			$webhook_data['channel'] = $settings['slack_channel'];
		}

		$attachment = [
			'text' => esc_html__( 'A new Form Submission has been received', 'elementor-pro' ),
			'title' => esc_html__( 'A new Submission', 'elementor-pro' ),
			'color' => isset( $settings['slack_webhook_color'] ) ? $settings['slack_webhook_color'] : '#D30C5C',
			// PHPCS - No nonce is required for title_link.
			'title_link' => esc_url( isset( $_POST['referrer'] ) ? $_POST['referrer'] : site_url() ), // phpcs:ignore WordPress.Security.NonceVerification.Missing
		];

		if ( ! empty( $settings['slack_title'] ) ) {
			$attachment['title'] = $settings['slack_title'];
		}

		if ( ! empty( $settings['slack_text'] ) ) {
			$attachment['text'] = $settings['slack_text'];
		}

		if ( ! empty( $settings['slack_pretext'] ) ) {
			$attachment['pretext'] = $settings['slack_pretext'];
		}

		if ( ! empty( $settings['slack_add_fields'] ) && 'yes' === $settings['slack_add_fields'] ) {
			// prepare Form Data
			$raw_fields = $record->get( 'fields' );
			$fields = [];
			foreach ( $raw_fields as $id => $field ) {
				$fields[] = [
					'title' => $field['title'] ? $field['title'] : $id,
					'value' => $field['value'],
					'short' => false,
				];
			}

			$attachment['fields'] = $fields;
		}

		if ( ! empty( $settings['slack_add_ts'] ) && 'yes' === $settings['slack_add_ts'] ) {
			$attachment = array_merge( $attachment, [
				'footer' => sprintf( esc_html__( 'Powered by %s', 'elementor-pro' ), 'Elementor' ),
				'footer_icon' => is_ssl() ? ELEMENTOR_ASSETS_URL . 'images/logo-icon.png' : null,
				'ts' => time(),
			] );
		}

		$webhook_data['attachments'] = [ $attachment ];

		$webhook_data = apply_filters( 'elementor_pro/forms/slack/webhook_args', $webhook_data );

		$response = wp_remote_post( $settings['slack_webhook'], [
			'headers' => [
				'Content-Type' => 'application/json',
			],
			'body' => wp_json_encode( $webhook_data ),
		] );

		if ( 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
			throw new \Exception( esc_html__( 'Webhook Error', 'elementor-pro' ) );
		}
	}
}
PK!�Q,}�
�
#modules/forms/actions/mailpoet3.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use MailPoet\API\API;
use MailPoet\Models\Subscriber;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
};

class Mailpoet3 extends Integration_Base {

	public function get_name() {
		return 'mailpoet3';
	}

	public function get_label() {
		return 'MailPoet 3';
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_mailpoet3',
			[
				'label' => esc_html__( 'MailPoet 3', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$mailpoet3_lists = API::MP( 'v1' )->getLists();
		$options = [];

		foreach ( $mailpoet3_lists as $list ) {
			$options[ $list['id'] ] = $list['name'];
		}

		$widget->add_control(
			'mailpoet3_lists',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'label_block' => true,
				'options' => $options,
				'render_type' => 'none',
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset( $element['mailpoet3_lists'] );

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$settings = $record->get( 'form_settings' );
		$subscriber = $this->map_fields( $record );

		$existing_subscriber = false;

		try {
			API::MP( 'v1' )->addSubscriber( $subscriber, (array) $settings['mailpoet3_lists'] );
			$existing_subscriber = false;
		} catch ( \Exception $exception ) {
			$error_string = esc_html__( 'This subscriber already exists.', 'mailpoet' ); // phpcs:ignore WordPress.WP.I18n

			if ( $error_string === $exception->getMessage() ) {
				$existing_subscriber = true;
			} else {
				throw $exception;
			}
		}

		if ( $existing_subscriber ) {
			API::MP( 'v1' )->subscribeToLists( $subscriber['email'], (array) $settings['mailpoet3_lists'] );
		}
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( $record ) {
		$settings = $record->get( 'form_settings' );
		$fields = $record->get( 'fields' );

		$subscriber = [];

		foreach ( $settings['mailpoet3_fields_map'] as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$subscriber[ $map_item['remote_id'] ] = $fields[ $map_item['local_id'] ]['value'];
		}

		return $subscriber;
	}

	protected function get_fields_map_control_options() {
		$mailpoet_fields = [
			[
				'remote_id' => 'first_name',
				'remote_label' => esc_html__( 'First Name', 'elementor-pro' ),
				'remote_type' => 'text',
			],
			[
				'remote_id' => 'last_name',
				'remote_label' => esc_html__( 'Last Name', 'elementor-pro' ),
				'remote_type' => 'text',
			],
			[
				'remote_id' => 'email',
				'remote_label' => esc_html__( 'Email', 'elementor-pro' ),
				'remote_type' => 'email',
				'remote_required' => true,
			],
		];

		$fields = API::MP( 'v1' )->getSubscriberFields();

		if ( ! empty( $fields ) && is_array( $fields ) ) {
			foreach ( $fields as $index => $remote ) {
				if ( in_array( $remote['id'], [ 'first_name', 'last_name', 'email' ] ) ) {
					continue;
				}
				$mailpoet_fields[] = [
					'remote_id' => $remote['id'],
					'remote_label' => $remote['name'],
					'remote_type' => 'text',
				];
			}
		}

		return [
			'default' => $mailpoet_fields,
			'condition' => [
				'mailpoet3_lists!' => '',
			],
		];
	}
}
PK!/~�3��!modules/forms/actions/webhook.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Action_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Webhook extends Action_Base {

	public function get_name() {
		return 'webhook';
	}

	public function get_label() {
		return esc_html__( 'Webhook', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_webhook',
			[
				'label' => esc_html__( 'Webhook', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'webhooks',
			[
				'label' => esc_html__( 'Webhook URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'https://your-webhook-url.com', 'elementor-pro' ),
				'label_block' => true,
				'separator' => 'before',
				'description' => esc_html__( 'Enter the integration URL (like Zapier) that will receive the form\'s submitted data.', 'elementor-pro' ),
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			'webhooks_advanced_data',
			[
				'label' => esc_html__( 'Advanced Data', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'no',
				'render_type' => 'none',
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {}

	public function run( $record, $ajax_handler ) {
		$settings = $record->get( 'form_settings' );

		if ( empty( $settings['webhooks'] ) ) {
			return;
		}

		if ( isset( $settings['webhooks_advanced_data'] ) && 'yes' === $settings['webhooks_advanced_data'] ) {
			$body['form'] = [
				'id' => $settings['id'],
				'name' => $settings['form_name'],
			];

			$body['fields'] = $record->get( 'fields' );
			$body['meta'] = $record->get( 'meta' );
		} else {
			$body = $record->get_formatted_data( true );
			$body['form_id'] = $settings['id'];
			$body['form_name'] = $settings['form_name'];
		}

		$args = [
			'body' => $body,
		];

		/**
		 * Forms webhook request arguments.
		 *
		 * Filters the request arguments delivered by the form webhook when executing
		 * an ajax request.
		 *
		 * @since 1.0.0
		 *
		 * @param array       $args   Webhook request arguments.
		 * @param Form_Record $record An instance of the form record.
		 */
		$args = apply_filters( 'elementor_pro/forms/webhooks/request_args', $args, $record );

		$response = wp_remote_post( $settings['webhooks'], $args );

		/**
		 * Elementor form webhook response.
		 *
		 * Fires when the webhook response is retrieved.
		 *
		 * @since 1.0.0
		 *
		 * @param \WP_Error|array $response The response or WP_Error on failure.
		 * @param Form_Record     $record   An instance of the form record.
		 */
		do_action( 'elementor_pro/forms/webhooks/response', $response, $record );

		if ( 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
			throw new \Exception( esc_html__( 'Webhook Error', 'elementor-pro' ) );
		}
	}
}
PK!M\]b2b2#modules/forms/actions/mailchimp.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Ajax_Handler;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use ElementorPro\Modules\Forms\Classes\Mailchimp_Handler;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Mailchimp extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_mailchimp_api_key';

	/**
	 * @var string - Mailchimp API key.
	 */
	private $api_key;

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY );
	}

	public function get_name() {
		return 'mailchimp';
	}

	public function get_label() {
		return esc_html__( 'MailChimp', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_mailchimp',
			[
				'label' => esc_html__( 'MailChimp', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'MailChimp API Key',
			[
				'mailchimp_api_key_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'mailchimp_api_key_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'mailchimp_api_key',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'mailchimp_api_key_source' => 'custom',
				],
				'description' => esc_html__( 'Use this field to set a custom API Key for the current form', 'elementor-pro' ),
			]
		);

		$widget->add_control(
			'mailchimp_list',
			[
				'label' => esc_html__( 'Audience', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'mailchimp_api_key',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'mailchimp_api_key_source',
							'operator' => '=',
							'value' => 'default',
						],
					],
				],
			]
		);

		$widget->add_control(
			'mailchimp_groups',
			[
				'label' => esc_html__( 'Groups', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'options' => [],
				'label_block' => true,
				'multiple' => true,
				'render_type' => 'none',
				'condition' => [
					'mailchimp_list!' => '',
				],
			]
		);

		$widget->add_control(
			'mailchimp_tags',
			[
				'label' => esc_html__( 'Tags', 'elementor-pro' ),
				'description' => esc_html__( 'Add comma separated tags', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'render_type' => 'none',
				'condition' => [
					'mailchimp_list!' => '',
				],
			]
		);

		$widget->add_control(
			'mailchimp_double_opt_in',
			[
				'label' => esc_html__( 'Double Opt-In', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'condition' => [
					'mailchimp_list!' => '',
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['mailchimp_api_key_source'],
			$element['settings']['mailchimp_api_key'],
			$element['settings']['mailchimp_list'],
			$element['settings']['mailchimp_groups'],
			$element['settings']['mailchimp_fields_map']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );

		if ( 'default' === $form_settings['mailchimp_api_key_source'] ) {
			$this->api_key = $this->get_global_api_key();
		} else {
			$this->api_key = $form_settings['mailchimp_api_key'];
		}

		// Data from the form in the frontend.
		$subscriber_data = $this->map_fields( $record );

		// Create or update a subscriber.
		$subscriber = $this->create_or_update_subscriber( $subscriber_data, $form_settings );

		// Parse the Mailchimp tags.
		$tags = $this->parse_tags( $form_settings['mailchimp_tags'] );

		// Set the subscriber tags only if he doesn't have them already.
		if ( ! $this->subscriber_has_tags( $subscriber, $tags ) ) {
			$this->set_subscriber_tags( $subscriber, $tags );
		}
	}

	/**
	 * @param string $tags - List of comma separated tags from the forms settings ( i.e. 'tag-1, tag-2' ).
	 *
	 * @return array|string[] - Array of tags that were extracted from the input ( i.e. [ 'tag-1', 'tag-2' ] ).
	 */
	private function parse_tags( $tags ) {
		$parsed_tags = [];

		if ( ! empty( $tags ) ) {
			$parsed_tags = explode( ',', trim( $tags ) );

			// Remove empty tags.
			$parsed_tags = array_filter( $parsed_tags );

			// Trim tags.
			$parsed_tags = array_map( 'trim', $parsed_tags );
		}

		return $parsed_tags;
	}

	/**
	 * Determine if a subscriber has specific tags, and ONLY those tags.
	 *
	 * @param array $subscriber - Subscriber data from an API response.
	 * @param array $tags - List of tags to check ( i.e. [ 'tag-1', 'tag-2' ] ).
	 *
	 * @return bool
	 */
	private function subscriber_has_tags( array $subscriber, array $tags ) {
		// Extract current tags.
		$subscriber_tags = [];

		foreach ( $subscriber['tags'] as $tag ) {
			$subscriber_tags[] = $tag['name'];
		}

		return array_diff( $tags, $subscriber_tags ) === array_diff( $subscriber_tags, $tags );
	}

	/**
	 * Set Mailchimp subscriber tags.
	 *
	 * @param array $subscriber - Subscriber data from a create/update request.
	 * @param array $tags - List of tags to set.
	 *
	 * @return void
	 */
	private function set_subscriber_tags( array $subscriber, array $tags ) {
		// Build the request tags.
		$request_tags = [];

		// Set current tags to active.
		foreach ( $subscriber['tags'] as $tag ) {
			$request_tags[] = [
				'name' => $tag['name'],
				'status' => 'active',
			];
		}

		// Set new tags to active.
		foreach ( $tags as $tag ) {
			$request_tags[] = [
				'name' => $tag,
				'status' => 'active',
			];
		}

		// Send the API request.
		$endpoint = sprintf( 'lists/%s/members/%s/tags', $subscriber['list_id'], md5( strtolower( $subscriber['email_address'] ) ) );
		$args = [
			'tags' => $request_tags,
		];

		$handler = new Mailchimp_Handler( $this->api_key );
		$response = $handler->post( $endpoint, $args );

		if ( 204 !== $response['code'] ) {
			$error = ! empty( $response['body']['detail'] ) ? $response['body']['detail'] : '';
			$code = $response['code'];

			throw new \Exception( "HTTP {$code} - {$error}" );
		}
	}

	/**
	 * Get Mailchimp subscriber data.
	 *
	 * @param string $list - Mailchimp List ID.
	 * @param string $email_hash - Subscriber's email hash (lowercase + MD5).
	 *
	 * @return array|null
	 */
	private function get_subscriber_data( $list, $email_hash ) {
		$handler = new Mailchimp_Handler( $this->api_key );
		$end_point = sprintf( 'lists/%s/members/%s', $list, $email_hash );

		try {
			return $handler->query( $end_point );
		} catch ( \Exception $e ) {
			return null;
		}
	}

	/**
	 * Set Mailchimp subscriber data.
	 *
	 * @param string $list - Mailchimp List ID.
	 * @param string $email_hash - Subscriber's email hash (lowercase + MD5).
	 * @param array $data - New subscriber data to set.
	 *
	 * @return array
	 */
	private function set_subscriber_data( $list, $email_hash, $data ) {
		$handler = new Mailchimp_Handler( $this->api_key );

		$end_point = sprintf( 'lists/%s/members/%s', $list, $email_hash );

		$response = $handler->post( $end_point, $data, [
			'method' => 'PUT', // Add or Update
		] );

		if ( 200 !== $response['code'] ) {
			$error = ! empty( $response['body']['detail'] ) ? $response['body']['detail'] : '';
			$code = $response['code'];

			throw new \Exception( "HTTP {$code} - {$error}" );
		}

		return $response['body'];
	}

	/**
	 * Create or update a Mailchimp subscriber.
	 *
	 * @param array $subscriber - Subscriber data from the form in the frontend.
	 * @param array $form_settings - Settings from the editor.
	 *
	 * @return array - An array that contains the newly created subscriber's data.
	 */
	private function create_or_update_subscriber( array $subscriber, array $form_settings ) {
		if ( ! empty( $form_settings['mailchimp_groups'] ) ) {
			$subscriber['interests'] = [];
		}

		if ( is_array( $form_settings['mailchimp_groups'] ) ) {
			foreach ( $form_settings['mailchimp_groups'] as $mailchimp_group ) {
				$subscriber['interests'][ $mailchimp_group ] = true;
			}
		}

		if ( ! empty( $form_settings['mailchimp_tags'] ) ) {
			$subscriber['tags'] = explode( ',', trim( $form_settings['mailchimp_tags'] ) );
		}

		$list = $form_settings['mailchimp_list'];
		$email_hash = md5( strtolower( $subscriber['email_address'] ) );
		$double_opt_in = ( 'yes' === $form_settings['mailchimp_double_opt_in'] );

		$subscriber['status_if_new'] = $double_opt_in ? 'pending' : 'subscribed';

		if ( $double_opt_in ) {
			$subscriber_data = $this->get_subscriber_data( $list, $email_hash );

			// Change the current status only if the user isn't subscribed already.
			if ( $subscriber_data && 'subscribed' !== $subscriber_data['status'] ) {
				$subscriber['status'] = 'pending';
			}
		} else {
			$subscriber['status'] = 'subscribed';
		}

		return $this->set_subscriber_data( $list, $email_hash, $subscriber );
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( $record ) {
		$subscriber = [];
		$fields = $record->get( 'fields' );

		// Other form has a field mapping
		foreach ( $record->get_form_settings( 'mailchimp_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			if ( 'email' === $map_item['remote_id'] ) {
				$subscriber['email_address'] = $value;
			} else {
				$subscriber['merge_fields'][ $map_item['remote_id'] ] = $value;
			}
		}

		return $subscriber;
	}

	public function ajax_validate_api_token() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) ) {
			wp_send_json_error();
		}
		try {
			new Mailchimp_Handler( $_POST['api_key'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['use_global_api_key'] ) && 'default' === $data['use_global_api_key'] ) {
			$api_key = $this->get_global_api_key();
		} elseif ( ! empty( $data['api_key'] ) ) {
			$api_key = $data['api_key'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_key` is required', 400 );
		}

		$handler = new Mailchimp_Handler( $api_key );

		switch ( $data['mailchimp_action'] ) {
			case 'lists':
				return $handler->get_lists();

			case 'fields':
				return $handler->get_fields( $data['mailchimp_list'] );

			case 'groups':
				return $handler->get_groups( $data['mailchimp_list'] );

			default:
				return $handler->get_list_details( $data['mailchimp_list'] );
		}
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'mailchimp', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'MailChimp', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="https://kb.mailchimp.com/integrations/api-integrations/about-api-keys" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_mailchimp_api_key_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 14 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_token' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'mailchimp_list!' => '',
			],
		];
	}
}
PK!Ѐ�'�#�#(modules/forms/actions/activecampaign.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use Elementor\Settings;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use ElementorPro\Modules\Forms\Classes;
use ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Activecampaign extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_activecampaign_api_key';
	const OPTION_NAME_API_URL = 'pro_activecampaign_api_url';

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY, '' );
	}

	private function get_global_api_url() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_URL, '' );
	}

	public function get_name() {
		return 'activecampaign';
	}

	public function get_label() {
		return esc_html__( 'ActiveCampaign', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_activecampaign',
			[
				'label' => esc_html__( 'ActiveCampaign', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'ActiveCampaign API credentials',
			[
				'activecampaign_api_credentials_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'activecampaign_api_credentials_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'activecampaign_api_key',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Use this field to set a custom API Key for the current form', 'elementor-pro' ),
				'condition' => [
					'activecampaign_api_credentials_source' => 'custom',
				],
			]
		);

		$widget->add_control(
			'activecampaign_api_url',
			[
				'label' => esc_html__( 'API URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Use this field to set a custom API URL for the current form', 'elementor-pro' ),
				'condition' => [
					'activecampaign_api_credentials_source' => 'custom',
				],
			]
		);

		$widget->add_control(
			'activecampaign_list',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'activecampaign_api_credentials_source',
							'operator' => '=',
							'value' => 'default',
						],
						[
							'relation' => 'and',
							'terms' => [
								[
									'name' => 'activecampaign_api_url',
									'operator' => '!==',
									'value' => '',
								],
								[
									'name' => 'activecampaign_api_key',
									'operator' => '!==',
									'value' => '',
								],
							],
						],
					],
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->add_control(
			'activecampaign_tags',
			[
				'label' => esc_html__( 'Tags', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Add as many tags as you want, comma separated.', 'elementor-pro' ),
				'condition' => [
					'activecampaign_list!' => '',
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['activecampaign_api_credentials_source'],
			$element['settings']['activecampaign_api_key'],
			$element['settings']['activecampaign_api_url'],
			$element['settings']['activecampaign_list'],
			$element['settings']['activecampaign_fields_map'],
			$element['settings']['activecampaign_tags']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->create_subscriber_object( $record );

		if ( ! $subscriber ) {
			throw new \Exception( esc_html__( 'Integration requires an email field and a selected list', 'elementor-pro' ) );
		}

		if ( 'default' === $form_settings['activecampaign_api_credentials_source'] ) {
			$api_key = $this->get_global_api_key();
			$api_url = $this->get_global_api_url();
		} else {
			$api_key = $form_settings['activecampaign_api_key'];
			$api_url = $form_settings['activecampaign_api_url'];
		}

		$handler = new Classes\Activecampaign_Handler( $api_key, $api_url );
		$handler->create_subscriber( $subscriber );
	}

	/**
	 * Create subscriber array from submitted data and form settings
	 * returns a subscriber array or false on error
	 *
	 * @param Form_Record $record
	 *
	 * @return array|bool
	 */
	private function create_subscriber_object( Form_Record $record ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->map_fields( $record );

		if ( ! isset( $subscriber['email'] ) ) {
			return false;
		}

		if ( ! isset( $form_settings['activecampaign_list'] ) ) {
			return false;
		}

		$subscriber['ip4'] = Utils::get_client_ip();
		$list_id = $form_settings['activecampaign_list'];
		$subscriber[ 'p[' . $list_id . ']' ] = $list_id;

		if ( isset( $form_settings['activecampaign_tags'] ) && ! empty( $form_settings['activecampaign_tags'] ) ) {
			$subscriber['tags'] = $form_settings['activecampaign_tags'];
		}

		if ( isset( $form_settings['form_id'] ) && ! empty( $form_settings['form_id'] ) ) {
			$subscriber['form'] = $form_settings['form_id'];
		}

		return $subscriber;
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( Form_Record $record ) {
		$subscriber = [];
		$fields = $record->get( 'fields' );

		// Other form has a field mapping
		foreach ( $record->get_form_settings( 'activecampaign_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			$subscriber[ $map_item['remote_id'] ] = $value;
		}

		return $subscriber;
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['api_cred'] ) && 'default' === $data['api_cred'] ) {
			$api_key = $this->get_global_api_key();
			$api_url = $this->get_global_api_url();
		} elseif ( ! empty( $data['api_key'] ) && ! empty( $data['api_url'] ) ) {
			$api_key = $data['api_key'];
			$api_url = $data['api_url'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_key` is required', 400 );
		}

		if ( empty( $api_url ) ) {
			throw new \Exception( '`api_url` is required', 400 );
		}

		$handler = new Classes\Activecampaign_Handler( $api_key, $api_url );

		return $handler->get_lists();
	}

	public function ajax_validate_api_token() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) || ! isset( $_POST['api_url'] ) ) {
			wp_send_json_error();
		}
		try {
			new Classes\Activecampaign_Handler( $_POST['api_key'], $_POST['api_url'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'activecampign', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'ActiveCampaign', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
					],
				],
				self::OPTION_NAME_API_URL => [
					'label' => esc_html__( 'API URL', 'elementor-pro' ),
					'field_args' => [
						'type' => 'url',
						/* translators: 1: Link open tag, 2: Link closing tag. */
						'desc' => sprintf(
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="https://help.activecampaign.com/hc/en-us/articles/207317590-Getting-started-with-the-API" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_activecampaign_api_key_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_token' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'activecampaign_list!' => '',
			],
		];
	}
}
PK!��!��&modules/forms/actions/activity-log.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use ElementorPro\Modules\Forms\Classes\Action_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Integration with Activity Log
 */
class Activity_Log extends Action_Base {

	public function get_name() {
		return 'activity-log';
	}

	public function get_label() {
		return 'Activity Log';
	}

	public function register_settings_section( $widget ) {}

	public function on_export( $element ) {}

	public function aal_init_roles( $roles ) {
		$roles['manage_options'][] = 'Elementor Forms';

		return $roles;
	}

	public function run( $record, $ajax_handler ) {
		aal_insert_log(
			[
				'action' => 'New Record',
				'object_type' => 'Elementor Forms',
				'object_id' => $record->get_form_settings( 'id' ),
				'object_name' => $record->get_form_settings( 'form_name' ),
			]
		);
	}

	public function __construct() {
		add_filter( 'aal_init_roles', [ $this, 'aal_init_roles' ] );
	}
}
PK!��
�!modules/forms/actions/discord.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Action_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Discord extends Action_Base {

	public function get_name() {
		return 'discord';
	}

	public function get_label() {
		return esc_html__( 'Discord', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_discord',
			[
				'label' => esc_html__( 'Discord', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'discord_webhook',
			[
				'label' => esc_html__( 'Webhook URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => 'https://discordapp.com/api/webhooks/',
				'label_block' => true,
				'separator' => 'before',
				'description' => esc_html__( 'Enter the webhook URL that will receive the form\'s submitted data.', 'elementor-pro' ) . ' ' . sprintf( '<a href="%s" target="_blank">%s</a>.', 'https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks', esc_html__( 'Click here for Instructions', 'elementor-pro' ) ),
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			'discord_username',
			[
				'label' => esc_html__( 'Username', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'discord_avatar_url',
			[
				'label' => esc_html__( 'Avatar URL', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'discord_title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'discord_content',
			[
				'label' => esc_html__( 'Description', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
			]
		);

		$widget->add_control(
			'discord_form_data',
			[
				'label' => esc_html__( 'Form Data', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$widget->add_control(
			'discord_ts',
			[
				'label' => esc_html__( 'Timestamp', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
			]
		);

		$widget->add_control(
			'discord_webhook_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'alpha' => false,
				'default' => '#D30C5C',
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['discord_avatar_url'],
			$element['discord_content'],
			$element['discord_webhook_color'],
			$element['discord_username'],
			$element['discord_form_data'],
			$element['discord_ts'],
			$element['discord_title'],
			$element['discord_webhook']
		);
	}

	public function run( $record, $ajax_handler ) {
		$settings = $record->get( 'form_settings' );

		if ( empty( $settings['discord_webhook'] ) || false === strpos( $settings['discord_webhook'], 'https://discordapp.com/api/webhooks/' ) ) {
			return;
		}

		// PHPCS - The form is a visitor action and doesn't require a nonce.
		$page_url = isset( $_POST['referrer'] ) ? esc_url( $_POST['referrer'] ) : site_url(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
		$color = isset( $settings['discord_webhook_color'] ) ? hexdec( ltrim( $settings['discord_webhook_color'], '#' ) ) : hexdec( '9c0244' );

		// Build discord  webhook data
		$embeds = [
			'title' => isset( $settings['discord_title'] ) ? $settings['discord_title'] : esc_html__( 'A new Submission', 'elementor-pro' ),
			'description' => isset( $settings['discord_content'] ) ? $settings['discord_content'] : esc_html__( 'A new Form Submission has been received', 'elementor-pro' ),
			'author' => [
				'name'     => isset( $settings['discord_username'] ) ? $settings['discord_username'] : esc_html__( 'Elementor Forms', 'elementor-pro' ),
				'url'      => $page_url,
				'icon_url' => isset( $settings['discord_avatar_url'] ) ? $settings['discord_avatar_url'] : null,
			],
			'url' => $page_url,
			'color' => $color,
		];

		if ( ! empty( $settings['discord_form_data'] ) && 'yes' === $settings['discord_form_data'] ) {
			// prepare Form Data
			$raw_fields = $record->get( 'fields' );
			$fields = [];
			foreach ( $raw_fields as $id => $field ) {
				$fields[] = [
					'name'   => $id,
					'value'  => $field['value'],
					'inline' => false,
				];
			}

			$embeds['fields'] = array_values( $fields );
		}

		if ( ! empty( $settings['discord_ts'] ) && 'yes' === $settings['discord_ts'] ) {
			$embeds['timestamp'] = gmdate( \DateTime::ISO8601 );
			$embeds['footer'] = [
				'text' => sprintf( esc_html__( 'Powered by %s', 'elementor-pro' ), 'Elementor' ),
				'icon_url' => is_ssl() ? ELEMENTOR_ASSETS_URL . 'images/logo-icon.png' : null,
			];
		}

		$webhook_data = [
			'embeds' => array_values( [ $embeds ] ),
		];

		$webhook_data = apply_filters( 'elementor_pro/forms/discord/webhook_args', $webhook_data );

		$response = wp_remote_post( $settings['discord_webhook'], [
			'body' => wp_json_encode( $webhook_data ),
			'headers' => [ 'Content-Type' => 'application/json; charset=utf-8' ],
		]);

		if ( 204 !== (int) wp_remote_retrieve_response_code( $response ) ) {
			throw new \Exception( esc_html__( 'Webhook Error', 'elementor-pro' ) );
		}
	}
}
PK!͒�{��"modules/forms/actions/redirect.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use Elementor\Modules\DynamicTags\Module as TagsModule;
use ElementorPro\Modules\Forms\Classes\Action_Base;


if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Redirect extends Action_Base {

	public function get_name() {
		return 'redirect';
	}

	public function get_label() {
		return esc_html__( 'Redirect', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_redirect',
			[
				'label' => esc_html__( 'Redirect', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'redirect_to',
			[
				'label' => esc_html__( 'Redirect To', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::POST_META_CATEGORY,
						TagsModule::TEXT_CATEGORY,
						TagsModule::URL_CATEGORY,
					],
				],
				'label_block' => true,
				'render_type' => 'none',
				'classes' => 'elementor-control-direction-ltr',
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['redirect_to']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$redirect_to = $record->get_form_settings( 'redirect_to' );

		$redirect_to = $record->replace_setting_shortcodes( $redirect_to, true );

		if ( ! empty( $redirect_to ) && filter_var( $redirect_to, FILTER_VALIDATE_URL ) ) {
			$ajax_handler->add_response_data( 'redirect_url', $redirect_to );
		}
	}
}
PK!����(�(modules/forms/actions/email.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\Forms\Classes\Ajax_Handler;
use ElementorPro\Modules\Forms\Classes\Action_Base;
use ElementorPro\Modules\Forms\Classes\Form_Record;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Email extends Action_Base {

	public function get_name() {
		return 'email';
	}

	public function get_label() {
		return esc_html__( 'Email', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			$this->get_control_id( 'section_email' ),
			[
				'label' => $this->get_label(),
				'tab' => Controls_Manager::TAB_CONTENT,
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_to' ),
			[
				'label' => esc_html__( 'To', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => get_option( 'admin_email' ),
				'placeholder' => get_option( 'admin_email' ),
				'label_block' => true,
				'title' => esc_html__( 'Separate emails with commas', 'elementor-pro' ),
				'render_type' => 'none',
			]
		);

		/* translators: %s: Site title. */
		$default_message = sprintf( esc_html__( 'New message from "%s"', 'elementor-pro' ), get_option( 'blogname' ) );

		$widget->add_control(
			$this->get_control_id( 'email_subject' ),
			[
				'label' => esc_html__( 'Subject', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $default_message,
				'placeholder' => $default_message,
				'label_block' => true,
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_content' ),
			[
				'label' => esc_html__( 'Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => '[all-fields]',
				'placeholder' => '[all-fields]',
				'description' => sprintf( esc_html__( 'By default, all form fields are sent via %s shortcode. To customize sent fields, copy the shortcode that appears inside each field and paste it above.', 'elementor-pro' ), '<code>[all-fields]</code>' ),
				'render_type' => 'none',
			]
		);

		$site_domain = Utils::get_site_domain();

		$widget->add_control(
			$this->get_control_id( 'email_from' ),
			[
				'label' => esc_html__( 'From Email', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => 'email@' . $site_domain,
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_from_name' ),
			[
				'label' => esc_html__( 'From Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => get_bloginfo( 'name' ),
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_reply_to' ),
			[
				'label' => esc_html__( 'Reply-To', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => '',
				],
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_to_cc' ),
			[
				'label' => esc_html__( 'Cc', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'title' => esc_html__( 'Separate emails with commas', 'elementor-pro' ),
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_to_bcc' ),
			[
				'label' => esc_html__( 'Bcc', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'title' => esc_html__( 'Separate emails with commas', 'elementor-pro' ),
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'form_metadata' ),
			[
				'label' => esc_html__( 'Meta Data', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'label_block' => true,
				'separator' => 'before',
				'default' => [
					'date',
					'time',
					'page_url',
					'user_agent',
					'remote_ip',
					'credit',
				],
				'options' => [
					'date' => esc_html__( 'Date', 'elementor-pro' ),
					'time' => esc_html__( 'Time', 'elementor-pro' ),
					'page_url' => esc_html__( 'Page URL', 'elementor-pro' ),
					'user_agent' => esc_html__( 'User Agent', 'elementor-pro' ),
					'remote_ip' => esc_html__( 'Remote IP', 'elementor-pro' ),
					'credit' => esc_html__( 'Credit', 'elementor-pro' ),
				],
				'render_type' => 'none',
			]
		);

		$widget->add_control(
			$this->get_control_id( 'email_content_type' ),
			[
				'label' => esc_html__( 'Send As', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'html',
				'render_type' => 'none',
				'options' => [
					'html' => esc_html__( 'HTML', 'elementor-pro' ),
					'plain' => esc_html__( 'Plain', 'elementor-pro' ),
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		$controls_to_unset = [
			'email_to',
			'email_from',
			'email_from_name',
			'email_subject',
			'email_reply_to',
			'email_to_cc',
			'email_to_bcc',
		];

		foreach ( $controls_to_unset as $base_id ) {
			$control_id = $this->get_control_id( $base_id );
			unset( $element['settings'][ $control_id ] );
		}

		return $element;
	}

	/**
	 * @param \ElementorPro\Modules\Forms\Classes\Form_Record  $record
	 * @param \ElementorPro\Modules\Forms\Classes\Ajax_Handler $ajax_handler
	 */
	public function run( $record, $ajax_handler ) {
		$settings = $record->get( 'form_settings' );
		$send_html = 'plain' !== $settings[ $this->get_control_id( 'email_content_type' ) ];
		$line_break = $send_html ? '<br>' : "\n";

		$fields = [
			'email_to' => get_option( 'admin_email' ),
			/* translators: %s: Site title. */
			'email_subject' => sprintf( esc_html__( 'New message from "%s"', 'elementor-pro' ), get_bloginfo( 'name' ) ),
			'email_content' => '[all-fields]',
			'email_from_name' => get_bloginfo( 'name' ),
			'email_from' => get_bloginfo( 'admin_email' ),
			'email_reply_to' => 'noreply@' . Utils::get_site_domain(),
			'email_to_cc' => '',
			'email_to_bcc' => '',
		];

		foreach ( $fields as $key => $default ) {
			$setting = trim( $settings[ $this->get_control_id( $key ) ] );
			$setting = $record->replace_setting_shortcodes( $setting );
			if ( ! empty( $setting ) ) {
				$fields[ $key ] = $setting;
			}
		}

		$email_reply_to = $this->get_reply_to( $record, $fields );

		$fields['email_content'] = $this->replace_content_shortcodes( $fields['email_content'], $record, $line_break );

		$email_meta = '';

		$form_metadata_settings = $settings[ $this->get_control_id( 'form_metadata' ) ];

		foreach ( $record->get( 'meta' ) as $id => $field ) {
			if ( in_array( $id, $form_metadata_settings ) ) {
				$email_meta .= $this->field_formatted( $field ) . $line_break;
			}
		}

		if ( ! empty( $email_meta ) ) {
			$fields['email_content'] .= $line_break . '---' . $line_break . $line_break . $email_meta;
		}

		$headers = sprintf( 'From: %s <%s>' . "\r\n", $fields['email_from_name'], $fields['email_from'] );
		$headers .= sprintf( 'Reply-To: %s' . "\r\n", $email_reply_to );

		if ( $send_html ) {
			$headers .= 'Content-Type: text/html; charset=UTF-8' . "\r\n";
		}

		$cc_header = '';
		if ( ! empty( $fields['email_to_cc'] ) ) {
			$cc_header = 'Cc: ' . $fields['email_to_cc'] . "\r\n";
		}

		/**
		 * Email headers.
		 *
		 * Filters the additional headers sent when the form send an email.
		 *
		 * @since 1.0.0
		 *
		 * @param string|array $headers Additional headers.
		 */
		$headers = apply_filters( 'elementor_pro/forms/wp_mail_headers', $headers );

		/**
		 * Email content.
		 *
		 * Filters the content of the email sent by the form.
		 *
		 * @since 1.0.0
		 *
		 * @param string $email_content Email content.
		 */
		$fields['email_content'] = apply_filters( 'elementor_pro/forms/wp_mail_message', $fields['email_content'] );

		$email_sent = wp_mail( $fields['email_to'], $fields['email_subject'], $fields['email_content'], $headers . $cc_header );

		if ( ! empty( $fields['email_to_bcc'] ) ) {
			$bcc_emails = explode( ',', $fields['email_to_bcc'] );
			foreach ( $bcc_emails as $bcc_email ) {
				wp_mail( trim( $bcc_email ), $fields['email_subject'], $fields['email_content'], $headers );
			}
		}

		/**
		 * Elementor form mail sent.
		 *
		 * Fires when an email was sent successfully.
		 *
		 * @since 1.0.0
		 *
		 * @param array       $settings Form settings.
		 * @param Form_Record $record   An instance of the form record.
		 */
		do_action( 'elementor_pro/forms/mail_sent', $settings, $record );

		if ( ! $email_sent ) {
			$message = Ajax_Handler::get_default_message( Ajax_Handler::SERVER_ERROR, $settings );

			$ajax_handler->add_error_message( $message );

			throw new \Exception( $message );
		}
	}

	private function field_formatted( $field ) {
		$formatted = '';
		if ( ! empty( $field['title'] ) ) {
			$formatted = sprintf( '%s: %s', $field['title'], $field['value'] );
		} elseif ( ! empty( $field['value'] ) ) {
			$formatted = sprintf( '%s', $field['value'] );
		}

		return $formatted;
	}

	// Allow overwrite the control_id with a prefix, @see Email2
	protected function get_control_id( $control_id ) {
		return $control_id;
	}

	protected function get_reply_to( $record, $fields ) {
		$email_reply_to  = '';

		if ( ! empty( $fields['email_reply_to'] ) ) {
			$sent_data = $record->get( 'sent_data' );
			foreach ( $record->get( 'fields' ) as $field_index => $field ) {
				if ( $field_index === $fields['email_reply_to'] && ! empty( $sent_data[ $field_index ] ) && is_email( $sent_data[ $field_index ] ) ) {
					$email_reply_to = $sent_data[ $field_index ];
					break;
				}
			}
		}

		return $email_reply_to;
	}

	/**
	 * @param string      $email_content
	 * @param Form_Record $record
	 *
	 * @return string
	 */
	private function replace_content_shortcodes( $email_content, $record, $line_break ) {
		$email_content = do_shortcode( $email_content );
		$all_fields_shortcode = '[all-fields]';

		if ( false !== strpos( $email_content, $all_fields_shortcode ) ) {
			$text = '';
			foreach ( $record->get( 'fields' ) as $field ) {
				$formatted = $this->field_formatted( $field );
				if ( ( 'textarea' === $field['type'] ) && ( '<br>' === $line_break ) ) {
					$formatted = str_replace( [ "\r\n", "\n", "\r" ], '<br />', $formatted );
				}
				$text .= $formatted . $line_break;
			}

			$email_content = str_replace( $all_fields_shortcode, $text, $email_content );

		}

		return $email_content;
	}
}
PK!X{�""modules/forms/actions/drip.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use Elementor\Settings;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use ElementorPro\Modules\Forms\Classes\Drip_Handler;
use ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Drip extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_drip_api_token';

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY );
	}

	public function get_name() {
		return 'drip';
	}

	public function get_label() {
		return esc_html__( 'Drip', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_drip',
			[
				'label' => esc_html__( 'Drip', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'Drip API Token',
			[
				'drip_api_token_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'drip_api_token_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'drip_custom_api_token',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'drip_api_token_source' => 'custom',
				],
				'description' => esc_html__( 'Use this field to set a custom API key for the current form', 'elementor-pro' ),
			]
		);

		$widget->add_control(
			'drip_account',
			[
				'label' => esc_html__( 'Account', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'drip_custom_api_token',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'drip_api_token_source',
							'operator' => '=',
							'value' => 'default',
						],
					],
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->add_control(
			'drip_custom_field_heading',
			[
				'label' => esc_html__( 'Send Additional Data to Drip', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'condition' => [
					'drip_account!' => '',
				],
			]
		);

		$widget->add_control(
			'drip_custom_fields',
			[
				'label' => esc_html__( 'Form Fields', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'no',
				'description' => esc_html__( 'Send all form fields to drip as custom fields', 'elementor-pro' ),
				'condition' => [
					'drip_account!' => '',
				],
			]
		);

		$widget->add_control(
			'tags',
			[
				'label' => esc_html__( 'Tags', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Add as many tags as you want, comma separated.', 'elementor-pro' ),
				'condition' => [
					'drip_account!' => '',
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['drip_api_token_source'],
			$element['settings']['drip_custom_api_token'],
			$element['settings']['drip_account'],
			$element['settings']['drip_fields_map'],
			$element['settings']['tags'],
			$element['settings']['drip_custom_fields']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->create_subscriber_object( $record );

		if ( ! $subscriber ) {
			throw new \Exception( esc_html__( 'Integration requires an email field', 'elementor-pro' ) );
		}

		if ( 'default' === $form_settings['drip_api_token_source'] ) {
			$api_key = $this->get_global_api_key();
		} else {
			$api_key = $form_settings['drip_custom_api_token'];
		}

		$handler = new Drip_Handler( $api_key );
		$handler->create_subscriber( $form_settings['drip_account'], $subscriber );
	}

	/**
	 * Create subscriber array from submitted data and form settings
	 * returns a subscriber array or false on error
	 *
	 * @param Form_Record $record
	 *
	 * @return array|bool
	 */
	private function create_subscriber_object( Form_Record $record ) {
		$form_settings = $record->get( 'form_settings' );
		$email = $this->map_email_field( $record );

		if ( ! $email ) {
			return false;
		}
		$subscriber = [
			'ip_address' => Utils::get_client_ip(),
			'email' => $email,
		];

		if ( isset( $form_settings['tags'] ) && ! empty( $form_settings['tags'] ) ) {
			$tags = $record->replace_setting_shortcodes( $form_settings['tags'] );

			$subscriber['tags'] = explode( ',', $tags );
		}

		$custom_fields = [];
		if ( isset( $form_settings['drip_custom_fields'] ) && 'yes' === $form_settings['drip_custom_fields'] ) {
			$custom_fields = $this->get_drip_custom_fields( $record );
		}

		$subscriber['custom_fields'] = $custom_fields;

		return $subscriber;
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function get_drip_custom_fields( Form_Record $record ) {
		$local_email_id = '';
		foreach ( $record->get_form_settings( 'drip_fields_map' ) as $map_item ) {
			if ( 'email' === $map_item['remote_id'] ) {
				$local_email_id = $map_item['local_id'];
			}
		}
		$custom_fields = [];
		foreach ( $record->get( 'fields' ) as $id => $field ) {
			if ( $local_email_id === $id ) {
				continue;
			}
			$custom_fields[ $id ] = $field['value'];
		}

		return $custom_fields;
	}

	/**
	 * extracts Email field from form based on mapping
	 * returns email address or false if missing
	 *
	 * @param Form_Record $record
	 *
	 * @return bool
	 */
	private function map_email_field( Form_Record $record ) {
		$fields = $record->get( 'fields' );
		foreach ( $record->get_form_settings( 'drip_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			if ( 'email' === $map_item['remote_id'] ) {
				return $value;
			}
		}

		return false;
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['api_token'] ) && 'default' === $data['api_token'] ) {
			$api_key = $this->get_global_api_key();
		} elseif ( ! empty( $data['custom_api_token'] ) ) {
			$api_key = $data['custom_api_token'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_token` is required', 400 );
		}

		$handler = new Drip_Handler( $api_key );

		return $handler->get_accounts();
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'drip', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'Drip', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="http://kb.getdrip.com/general/where-can-i-find-my-api-token/" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_drip_api_token_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	/**
	 *
	 */
	public function ajax_validate_api_token() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) ) {
			wp_send_json_error();
		}
		try {
			new Drip_Handler( $_POST['api_key'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_token' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'drip_account!' => '',
			],
		];
	}
}
PK!��^��$modules/forms/actions/mailerlite.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use Elementor\Settings;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Mailerlite_Handler;
use ElementorPro\Modules\Forms\Classes\Integration_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Mailerlite extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_mailerlite_api_key';

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY );
	}

	public function get_name() {
		return 'mailerlite';
	}

	public function get_label() {
		return esc_html__( 'MailerLite', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_mailerlite',
			[
				'label' => esc_html__( 'MailerLite', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'MailerLite API Key',
			[
				'mailerlite_api_key_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'mailerlite_api_key_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'mailerlite_custom_api_key',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'condition' => [
					'mailerlite_api_key_source' => 'custom',
				],
				'description' => esc_html__( 'Use this field to set a custom API Key for the current form', 'elementor-pro' ),
			]
		);

		$widget->add_control(
			'mailerlite_group',
			[
				'label' => esc_html__( 'Group', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'mailerlite_custom_api_key',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'mailerlite_api_key_source',
							'operator' => '=',
							'value' => 'default',
						],
					],
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->add_control(
			'allow_resubscribe',
			[
				'label' => esc_html__( 'Allow Resubscribe', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'condition' => [
					'mailerlite_group!' => '',
				],
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['mailerlite_api_key_source'],
			$element['settings']['mailerlite_custom_api_key'],
			$element['settings']['mailerlite_group'],
			$element['settings']['mailerlite_fields_map']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->create_subscriber_object( $record );

		if ( ! $subscriber ) {
			new \Exception( esc_html__( 'Integration requires an email field', 'elementor-pro' ) );
		}

		if ( 'default' === $form_settings['mailerlite_api_key_source'] ) {
			$api_key = $this->get_global_api_key();
		} else {
			$api_key = $form_settings['mailerlite_custom_api_key'];
		}

		$handler = new Mailerlite_Handler( $api_key );
		$handler->create_subscriber( $form_settings['mailerlite_group'], $subscriber );
	}

	/**
	 * Create subscriber array from submitted data and form settings
	 * returns a subscriber array or false on error
	 *
	 * @param Form_Record $record
	 *
	 * @return array|bool
	 */
	private function create_subscriber_object( Form_Record $record ) {
		$email = $this->get_mapped_field( $record, 'email' );

		if ( ! $email ) {
			return false;
		}

		$subscriber = [
			'email' => $email,
			'name' => $this->get_mapped_field( $record, 'name' ),
		];

		$subscriber['fields'] = $this->get_mailerlite_custom_fields( $record );

		// Allow re-subscribe
		$allow_resubscribe = $record->get_form_settings( 'allow_resubscribe' );
		if ( ! empty( $allow_resubscribe ) && 'yes' === $allow_resubscribe ) {
			$subscriber['resubscribe'] = true;
		}

		return $subscriber;
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function get_mailerlite_custom_fields( Form_Record $record ) {
		$custom_fields = [];
		$form_fields = $record->get( 'fields' );
		$field_mapping = $record->get_form_settings( 'mailerlite_fields_map' );
		foreach ( $field_mapping as $map_item ) {
			if ( in_array( $map_item['remote_id'], [ 'email', 'name' ] ) ) {
				continue;
			}

			if ( empty( $map_item['local_id'] ) ) {
				continue;
			}

			foreach ( $form_fields as $id => $field ) {
				if ( $id !== $map_item['local_id'] ) {
					continue;
				}
				$custom_fields[ $map_item['remote_id'] ] = $field['value'];
			}
		}

		return $custom_fields;
	}

	private function get_mapped_field( Form_Record $record, $field_id ) {
		$fields = $record->get( 'fields' );
		foreach ( $record->get_form_settings( 'mailerlite_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			if ( $field_id === $map_item['remote_id'] ) {
				return $fields[ $map_item['local_id'] ]['value'];
			}
		}

		return '';
	}

	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['api_key'] ) && 'default' === $data['api_key'] ) {
			$api_key = $this->get_global_api_key();
		} elseif ( ! empty( $data['custom_api_key'] ) ) {
			$api_key = $data['custom_api_key'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_key` is required', 400 );
		}

		$handler = new Mailerlite_Handler( $api_key );
		if ( 'groups' === $data['mailerlite_action'] ) {
			return $handler->get_groups();
		}
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'mailerlite', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'MailerLite', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="https://help.mailerlite.com/article/show/35040-where-can-i-find-the-api-key" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_mailerlite_api_key_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	public function ajax_validate_api_key() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) ) {
			wp_send_json_error();
		}
		try {
			new Mailerlite_Handler( $_POST['api_key'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_key' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'mailerlite_group!' => '',
			],
		];
	}
}
PK!�ȶy��modules/forms/actions/cf7db.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use ElementorPro\Modules\Forms\Classes\Action_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class CF7DB extends Action_Base {

	public function get_name() {
		return 'cf7db';
	}

	public function get_label() {
		return 'Contact Form to Database';
	}

	public function register_settings_section( $widget ) {}

	public function on_export( $element ) {}

	public function run( $record, $ajax_handler ) {
		$data = (object) [
			'title' => $record->get_form_settings( 'form_name' ),
			'posted_data' => $record->get_formatted_data( true ),
		];

		// Call hook to submit data
		do_action_ref_array( 'cfdb_submit', [ $data ] );
	}
}
PK!s��� modules/forms/actions/email2.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Email2 extends Email {

	public function get_name() {
		return 'email2';
	}

	public function get_label() {
		return esc_html__( 'Email 2', 'elementor-pro' );
	}

	protected function get_control_id( $control_id ) {
		return $control_id . '_2';
	}

	protected function get_reply_to( $record, $fields ) {
		return isset( $fields['email_reply_to'] ) ? $fields['email_reply_to'] : '';
	}

	public function register_settings_section( $widget ) {
		parent::register_settings_section( $widget );

		$admin_email = get_option( 'admin_email' );

		$widget->update_control(
			$this->get_control_id( 'email_reply_to' ),
			[
				'type' => Controls_Manager::TEXT,
				'default' => $admin_email,
				'placeholder' => $admin_email,
			]
		);

		$widget->update_control(
			$this->get_control_id( 'form_metadata' ),
			[
				'default' => [],
			]
		);
	}
}
PK!w2R/"/"%modules/forms/actions/getresponse.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Actions;

use Elementor\Controls_Manager;
use ElementorPro\Modules\Forms\Classes\Form_Record;
use ElementorPro\Modules\Forms\Classes\Integration_Base;
use ElementorPro\Modules\Forms\Classes\Getresponse_Handler;
use ElementorPro\Core\Utils;
use Elementor\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Getresponse extends Integration_Base {

	const OPTION_NAME_API_KEY = 'pro_getresponse_api_key';

	private function get_global_api_key() {
		return get_option( 'elementor_' . self::OPTION_NAME_API_KEY, '' );
	}

	public function get_name() {
		return 'getresponse';
	}

	public function get_label() {
		return esc_html__( 'GetResponse', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_getresponse',
			[
				'label' => esc_html__( 'GetResponse', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		self::global_api_control(
			$widget,
			$this->get_global_api_key(),
			'GetResponse API key',
			[
				'getresponse_api_key_source' => 'default',
			],
			$this->get_name()
		);

		$widget->add_control(
			'getresponse_api_key_source',
			[
				'label' => esc_html__( 'API Key', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'label_block' => false,
				'options' => [
					'default' => 'Default',
					'custom' => 'Custom',
				],
				'default' => 'default',
			]
		);

		$widget->add_control(
			'getresponse_custom_api_key',
			[
				'label' => esc_html__( 'Custom API Key', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Use this field to set a custom API Key for the current form', 'elementor-pro' ),
				'condition' => [
					'getresponse_api_key_source' => 'custom',
				],
			]
		);

		$widget->add_control(
			'getresponse_list',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [],
				'render_type' => 'none',
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'getresponse_custom_api_key',
							'operator' => '!==',
							'value' => '',
						],
						[
							'name' => 'getresponse_api_key_source',
							'operator' => '=',
							'value' => 'default',
						],
					],
				],
			]
		);

		$widget->add_control(
			'getresponse_dayofcycle',
			[
				'label' => esc_html__( 'Day Of Cycle', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'min' => 0,
				'condition' => [
					'getresponse_list!' => '',
				],
			]
		);

		$this->register_fields_map_control( $widget );

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		unset(
			$element['settings']['getresponse_api_key_source'],
			$element['settings']['getresponse_custom_api_key'],
			$element['settings']['getresponse_list'],
			$element['settings']['getresponse_fields_map']
		);

		return $element;
	}

	public function run( $record, $ajax_handler ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->create_subscriber_object( $record );

		if ( ! $subscriber ) {
			throw new \Exception( esc_html__( 'Integration requires an email field', 'elementor-pro' ) );
		}

		if ( 'default' === $form_settings['getresponse_api_key_source'] ) {
			$api_key = $this->get_global_api_key();
		} else {
			$api_key = $form_settings['getresponse_custom_api_key'];
		}

		try {
			$handler = new Getresponse_Handler( $api_key );
			$handler->create_subscriber( $subscriber );
		} catch ( \Exception $exception ) {
			foreach ( (array) $handler->rest_client->request_cache as $response ) {
				if ( isset( $response['parsed'] ) || ! isset( $response['raw'] ) || ! isset( $response['raw']['response'] ) || ! isset( $response['raw']['response']['code'] ) ) {
					continue;
				}
				if ( ! in_array( $response['raw']['response']['code'], [ 200, 202, 409 ] ) ) {
					throw new \Exception( $exception->getMessage() );
				}
			}
		}
	}

	/**
	 * Create subscriber array from submitted data and form settings
	 * returns a subscriber array or false on error
	 *
	 * @param Form_Record $record
	 *
	 * @return array|bool
	 */
	private function create_subscriber_object( Form_Record $record ) {
		$form_settings = $record->get( 'form_settings' );
		$subscriber = $this->map_fields( $record );

		if ( ! isset( $subscriber['email'] ) ) {
			return false;
		}

		if ( isset( $form_settings['getresponse_dayofcycle'] ) ) {
			$subscriber['dayOfCycle'] = intval( $form_settings['getresponse_dayofcycle'] );
		}
		$subscriber['ipAddress'] = Utils::get_client_ip();
		$subscriber['campaign'] = [ 'campaignId' => $form_settings['getresponse_list'] ];

		return $subscriber;
	}


	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function get_getresponse_custom_fields( Form_Record $record ) {
		$local_email_id = '';
		$local_name_id = '';
		foreach ( $record->get_form_settings( 'getresponse_fields_map' ) as $map_item ) {
			if ( 'email' === $map_item['remote_id'] ) {
				$local_email_id = $map_item['local_id'];
			}
			if ( 'name' === $map_item['remote_id'] ) {
				$local_name_id = $map_item['local_id'];
			}
		}
		$custom_fields = [];
		foreach ( $record->get( 'fields' ) as $id => $field ) {
			if ( in_array( $id, [ $local_email_id, $local_name_id ] ) ) {
				continue;
			}
			$custom_fields[ $id ] = $field['value'];
		}

		return $custom_fields;
	}

	/**
	 * @param Form_Record $record
	 *
	 * @return array
	 */
	private function map_fields( Form_Record $record ) {
		$subscriber = [];
		$custom_fields = [];
		$fields = $record->get( 'fields' );

		// Other form has a field mapping
		foreach ( $record->get_form_settings( 'getresponse_fields_map' ) as $map_item ) {
			if ( empty( $fields[ $map_item['local_id'] ]['value'] ) ) {
				continue;
			}

			$value = $fields[ $map_item['local_id'] ]['value'];
			if ( in_array( $map_item['remote_id'], [ 'name', 'email' ] ) ) {
				$subscriber[ $map_item['remote_id'] ] = $value;
				continue;
			}

			$custom_fields[] = [
				'customFieldId' => $map_item['remote_id'],
				'value' => [ $value ],
			];
		}
		$subscriber['customFieldValues'] = $custom_fields;

		return $subscriber;
	}

	/**
	 * @param array $data
	 *
	 * @return array
	 * @throws \Exception
	 */
	public function handle_panel_request( array $data ) {
		if ( ! empty( $data['api_key'] ) && 'default' === $data['api_key'] ) {
			$api_key = $this->get_global_api_key();
		} elseif ( ! empty( $data['custom_api_key'] ) ) {
			$api_key = $data['custom_api_key'];
		}

		if ( empty( $api_key ) ) {
			throw new \Exception( '`api_key` is required', 400 );
		}

		$handler = new Getresponse_Handler( $api_key );

		if ( 'lists' === $data['getresponse_action'] ) {
			return $handler->get_lists();
		}

		return $handler->get_fields();
	}

	public function ajax_validate_api_token() {
		check_ajax_referer( self::OPTION_NAME_API_KEY, '_nonce' );
		if ( ! isset( $_POST['api_key'] ) ) {
			wp_send_json_error();
		}
		try {
			new Getresponse_Handler( $_POST['api_key'] );
		} catch ( \Exception $exception ) {
			wp_send_json_error();
		}
		wp_send_json_success();
	}

	public function register_admin_fields( Settings $settings ) {
		$settings->add_section( Settings::TAB_INTEGRATIONS, 'getresponse', [
			'callback' => function() {
				echo '<hr><h2>' . esc_html__( 'GetResponse', 'elementor-pro' ) . '</h2>';
			},
			'fields' => [
				self::OPTION_NAME_API_KEY => [
					'label' => esc_html__( 'API Key', 'elementor-pro' ),
					'field_args' => [
						'type' => 'text',
						'desc' => sprintf(
							/* translators: 1: Link open tag, 2: Link closing tag. */
							esc_html__( 'To integrate with our forms you need an %1$sAPI Key%2$s.', 'elementor-pro' ),
							'<a href="https://www.getresponse.com" target="_blank">',
							'</a>'
						),
					],
				],
				'validate_api_data' => [
					'field_args' => [
						'type' => 'raw_html',
						'html' => sprintf( '<button data-action="%s" data-nonce="%s" class="button elementor-button-spinner" id="elementor_pro_getresponse_api_key_button">%s</button>', self::OPTION_NAME_API_KEY . '_validate', wp_create_nonce( self::OPTION_NAME_API_KEY ), esc_html__( 'Validate API Key', 'elementor-pro' ) ),
					],
				],
			],
		] );
	}

	public function __construct() {
		if ( is_admin() ) {
			add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 15 );
		}
		add_action( 'wp_ajax_' . self::OPTION_NAME_API_KEY . '_validate', [ $this, 'ajax_validate_api_token' ] );
	}

	protected function get_fields_map_control_options() {
		return [
			'condition' => [
				'getresponse_list!' => '',
			],
		];
	}
}
PK!)Oђ��+modules/forms/submissions/personal-data.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions;

use Elementor\Core\Utils\Collection;
use Elementor\Core\Base\Base_Object;
use ElementorPro\Modules\Forms\Submissions\Database\Query;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Personal_Data extends Base_Object {
	const WP_KEY = 'elementor-form-submissions';

	/**
	 * @return string
	 */
	private function get_title() {
		return esc_html__( 'Elementor Submissions', 'elementor-pro' );
	}

	/**
	 * @return string
	 */
	private function get_key() {
		return self::WP_KEY;
	}

	/**
	 * Export all the submissions related to specific email.
	 *
	 * WordPress send always an email even if the user choose to erase by username.
	 *
	 * @param $email
	 *
	 * @return array
	 */
	private function export_data( $email ) {
		$data = Query::get_instance()
			->get_submissions_by_email( $email, true )
			->map(function ( $submission ) {
				$submission_data = ( new Collection( $submission->values ) )
					->map( function ( $value ) {
						return [
							'name' => $value->key,
							'value' => $value->value,
						];
					} )
					->merge([
						[
							'name' => esc_html__( 'User IP', 'elementor-pro' ),
							'value' => $submission->user_ip,
						],
						[
							'name' => esc_html__( 'Referer', 'elementor-pro' ),
							'value' => $submission->referer,
						],
						[
							'name' => esc_html__( 'User Agent', 'elementor-pro' ),
							'value' => $submission->user_agent,
						],
						[
							'name' => esc_html__( 'Created At', 'elementor-pro' ),
							'value' => $submission->created_at,
						],
						[
							'name' => esc_html__( 'Created At GMT', 'elementor-pro' ),
							'value' => $submission->created_at_gmt,
						],
						[
							'name' => esc_html__( 'Updated At', 'elementor-pro' ),
							'value' => $submission->updated_at,
						],
						[
							'name' => esc_html__( 'Updated At GMT', 'elementor-pro' ),
							'value' => $submission->updated_at_gmt,
						],
					])
					->all();

				return [
					'group_id' => $this->get_key(),
					'group_label' => $this->get_title(),
					'item_id' => "{$this->get_key()}-{$submission->id}",
					'data' => $submission_data,
				];
			})
			->all();

		return [
			'data' => $data,
			'done' => true,
		];
	}

	/**
	 * Erase all the submissions related to specific email.
	 *
	 * WordPress send always an email even if the user choose to erase by username.
	 *
	 * @param $email
	 *
	 * @return array
	 */
	private function erase_data( $email ) {
		$query = Query::get_instance();

		$submissions = $query->get_submissions_by_email( $email, true );

		$affected = 0;
		$failed = 0;

		foreach ( $submissions as $submission ) {
			$affected_rows = $query->delete_submission( $submission->id );

			if ( false === $affected_rows ) {
				$failed++;
			} else {
				$affected += $affected_rows;
			}
		}

		return [
			'items_removed' => count( $submissions ) === $affected,
			'items_retained' => $failed > 0,
			'messages' => [],
			'done' => true,
		];
	}

	/**
	 * Add exporter to the list of exporters
	 *
	 * @param $exporters
	 *
	 * @return mixed
	 */
	private function add_exporter( $exporters ) {
		$exporters[ $this->get_key() ] = [
			'exporter_friendly_name' => $this->get_title(),
			'callback' => function ( $email ) {
				return $this->export_data( $email );
			},
		];

		return $exporters;
	}

	/**
	 * Add eraser to the list of erasers.
	 *
	 * @param $erasers
	 *
	 * @return array[]
	 */
	private function add_eraser( $erasers ) {
		return $erasers + [
			$this->get_key() => [
				'eraser_friendly_name' => $this->get_title(),
				'callback' => function ( $email ) {
					return $this->erase_data( $email );
				},
			],
		];
	}

	/**
	 * Personal_Data constructor.
	 */
	public function __construct() {
		add_filter( 'wp_privacy_personal_data_exporters', function ( $exporters ) {
			return $this->add_exporter( $exporters );
		} );

		add_filter( 'wp_privacy_personal_data_erasers', function ( $exporters ) {
			return $this->add_eraser( $exporters );
		} );
	}
}
PK!#�§��4modules/forms/submissions/data/endpoints/referer.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Endpoints;

use Elementor\Data\Base\Endpoint;
use ElementorPro\Modules\Forms\Submissions\Database\Query;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Referer extends Endpoint {
	public function get_name() {
		return 'referer';
	}

	protected function register() {
		$this->register_route(
			'',
			\WP_REST_Server::READABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::READABLE, $request, true );
			},
			[
				'context' => [
					'description' => 'Scope under which the request is made, determines fields present in response. (only "options" available for now)',
					'type' => 'string',
					'enum' => [
						'options',
					],
					'default' => 'options',
					'required' => false,
				],
				'search' => [
					'description' => 'Limit results to those matching a string.',
					'type' => 'string',
					'required' => false,
					'additionalProperties' => [
						'context' => 'filter',
					],
				],
				'value' => [
					'description' => 'Limit results specific referer.',
					'type' => 'string',
					'required' => false,
					'additionalProperties' => [
						'context' => 'filter',
					],
				],
			]
		);
	}

	public function get_items( $request ) {
		$referrers = Query::get_instance()->get_referrers(
			$request->get_param( 'search' ),
			$request->get_param( 'value' )
		);

		// For now return only as "options"
		return [
			'data' => $referrers->map(function ( $referer ) {
				return [
					'label' => $referer['referer_title'],
					'value' => $referer['referer'],
				];
			})->values(),
			'meta' => [],
		];
	}
}
PK!�l�'_
_
2modules/forms/submissions/data/endpoints/index.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Endpoints;

use Elementor\Data\Base\Endpoint;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Index extends Endpoint {
	public function get_name() {
		return 'index';
	}

	protected function register() {
		$this->register_route(
			'',
			\WP_REST_Server::READABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::READABLE, $request, true );
			},
			$this->controller->get_collection_params()
		);

		$this->register_route(
			'(?P<id>[\d]+)/',
			\WP_REST_Server::READABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::READABLE, $request );
			},
			[
				'id' => [
					'description' => 'Unique identifier for the object.',
					'type' => 'string',
					'required' => true,
				],
			]
		);

		$this->register_route(
			'(?P<id>[\d]+)/',
			\WP_REST_Server::DELETABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::DELETABLE, $request );
			},
			[
				'id' => [
					'description' => 'Unique identifier for the object.',
					'type' => 'string',
					'required' => true,
				],
				'force' => [
					'description' => 'Delete the object permanently.',
					'type' => 'boolean',
					'required' => false,
				],
			]
		);

		$this->register_route(
			'',
			\WP_REST_Server::DELETABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::DELETABLE, $request, true );
			},
			[
				'ids' => [
					'description' => 'Unique identifiers for the objects.',
					'type' => 'array',
					'items' => [
						'type' => 'integer',
					],
					'validate_callback' => function ( $param ) {
						return ! empty( $param );
					},
					'required'    => true,
				],
				'force' => [
					'description' => 'Delete the object permanently.',
					'type' => 'boolean',
					'required' => false,
				],
			]
		);

		$this->register_route(
			'(?P<id>[\d]+)/',
			\WP_REST_Server::EDITABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::EDITABLE, $request );
			},
			[
				'id' => [
					'description' => 'Unique identifier for the object.',
					'type' => 'string',
					'required' => true,
				],
				'is_read' => [
					'description' => 'mark whether the submission was read or not',
					'type' => 'boolean',
					'required' => false,
				],
				'values' => [
					'description' => 'Form field values, receive an array, the key should be the form field id and the value should be the value.',
					'type' => 'object',
					'required' => false,
					'sanitize_callback' => function ( $values ) {
						$result = [];

						foreach ( $values as $key => $value ) {
							$result[ $key ] = sanitize_text_field( $value );
						}

						return $result;
					},
				],
			]
		);

		$this->register_route(
			'',
			\WP_REST_Server::EDITABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::EDITABLE, $request, true );
			},
			[
				'ids' => [
					'description' => 'Unique identifiers for the objects.',
					'type' => 'array',
					'items' => [
						'type' => 'integer',
					],
					'validate_callback' => function ( $param ) {
						return ! empty( $param );
					},
					'required'    => true,
				],
				'is_read' => [
					'description' => 'mark whether the submission was read or not',
					'type' => 'boolean',
					'required' => false,
				],
			]
		);
	}
}
PK!h�>8modules/forms/submissions/data/endpoints/forms-index.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Endpoints;

use Elementor\Data\Base\Endpoint;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Forms_Index extends Endpoint {
	public function get_name() {
		return 'index';
	}

	protected function register() {
		$this->register_route(
			'',
			\WP_REST_Server::READABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::READABLE, $request, true );
			},
			[
				'context' => [
					'description' => 'Scope under which the request is made, determines fields present in response. (only "options" available for now)',
					'type' => 'string',
					'enum' => [
						'options',
					],
					'default' => 'options',
					'required' => false,
				],
			]
		);
	}
}
PK!�:�+
+
3modules/forms/submissions/data/endpoints/export.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Endpoints;

use Elementor\Data\Base\Endpoint;
use Elementor\Core\Utils\Collection;
use ElementorPro\Modules\Forms\Submissions\Export\CSV_Export;
use ElementorPro\Modules\Forms\Submissions\Database\Query;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * This logic should be under index.php::get_items method, but for now
 * the Data JS API does not support sending Headers like `Accept: text/csv`.
 */
class Export extends Endpoint {
	const EXPORT_BY_IDS = 'ids';
	const EXPORT_BY_FILTER = 'filter';

	public function get_name() {
		return 'export';
	}

	protected function register() {
		$this->register_route(
			'',
			\WP_REST_Server::READABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::READABLE, $request, true );
			},
			array_merge( $this->controller->get_collection_params(), [
				'ids' => [
					'description' => 'Unique identifiers for the objects.',
					'type' => 'array',
					'items' => [
						'type' => 'integer',
					],
					'required' => false,
					'additionalProperties' => [
						'context' => 'filter',
					],
				],
				'format' => [
					'description' => 'The format of the export (for now only csv).',
					'types' => 'string',
					'enum' => [
						'csv',
					],
					'default' => 'csv',
					'required' => false,
				],
				'per_page' => [
					'description' => 'Maximum number of items to be returned in result set.',
					'type' => 'integer',
					'default' => 10,
					'minimum' => 1,
					'maximum' => 10000,
					'sanitize_callback' => 'absint',
					'validate_callback' => 'rest_validate_request_arg',
				],
			] )
		);
	}

	/**
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function get_items( $request ) {
		wp_raise_memory_limit( 'admin' );

		$submissions = new Collection(
			$this->get_submissions_by_filter( $request )
		);

		if ( 0 === $submissions->count() ) {
			return new \WP_Error(
				'nothing_to_export',
				__( 'There is nothing to export.', 'elementor-pro' ),
				[ 'status' => 400 ]
			);
		}

		$response = $submissions
			->group_by( 'element_id' )
			->map( function ( array $submissions_by_form ) {
				$exporter = new CSV_Export(
					new Collection( $submissions_by_form )
				);

				return $exporter->prepare_for_json_response();
			} );

		return new \WP_REST_Response([
			'data' => $response->values(),
		] );
	}

	/**
	 * Get submissions by filter.
	 *
	 * @param $request
	 *
	 * @return array|mixed
	 */
	private function get_submissions_by_filter( $request ) {
		$args = $request->get_attributes()['args'];

		$filters = ( new Collection( $request->get_query_params() ) )
			->filter(function ( $value, $key ) use ( $args ) {
				return isset( $args[ $key ]['additionalProperties']['context'] ) &&
					'filter' === $args[ $key ]['additionalProperties']['context'];
			})
			->map( function ( $value ) use ( $request ) {
				return [ 'value' => $value ];
			} )
			->all();

		return Query::get_instance()->get_submissions(
			[
				'page' => $request->get_param( 'page' ),
				'per_page' => $request->get_param( 'per_page' ),
				'filters' => $filters,
				'order' => [
					'order' => $request->get_param( 'order' ),
					'by' => $request->get_param( 'order_by' ),
				],
				'with_meta' => true,
			]
		)['data'];
	}
}
PK!L�o�
�
4modules/forms/submissions/data/endpoints/restore.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Endpoints;

use ElementorPro\Modules\Forms\Submissions\Database\Query;
use Elementor\Data\Base\Endpoint;
use ElementorPro\Modules\Forms\Submissions\Data\Responses\Query_Failed_Response;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Restore extends Endpoint {
	/**
	 * @var Query
	 */
	private $query;

	public function get_name() {
		return 'restore';
	}

	/**
	 * Restore a single trashed submission.
	 *
	 * @param string           $id
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function update_item( $id, $request ) {
		return $this->restore(
			[ $request->get_param( 'id' ) ]
		);
	}

	/**
	 * Restore multiple trashed submissions.
	 *
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function update_items( $request ) {
		return $this->restore(
			$request->get_param( 'ids' )
		);
	}

	protected function register() {
		$this->register_route(
			'/(?P<id>[\d]+)/',
			\WP_REST_Server::EDITABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::EDITABLE, $request );
			},
			[
				'id' => [
					'description' => 'Unique identifier for the object.',
					'type'        => 'string',
					'required'    => true,
				],
			]
		);

		$this->register_route(
			'',
			\WP_REST_Server::EDITABLE,
			function ( $request ) {
				return $this->base_callback( \WP_REST_Server::EDITABLE, $request, true );
			},
			[
				'ids' => [
					'description' => 'Unique identifiers for the objects.',
					'type' => 'array',
					'items' => [
						'type' => 'integer',
					],
					'validate_callback' => function ( $param ) {
						return ! empty( $param );
					},
					'required'    => true,
				],
			]
		);
	}

	/**
	 * Restore on or more submissions.
	 *
	 * @param array $ids
	 *
	 * @return Query_Failed_Response|\WP_Error|\WP_REST_Response
	 */
	private function restore( array $ids ) {
		$affected = 0;
		$failed = 0;

		foreach ( $ids as $id ) {
			$affected_rows = $this->query->restore( $id );

			if ( false === $affected_rows ) {
				$failed++;
			} else {
				$affected += $affected_rows;
			}
		}

		if ( count( $ids ) === $failed ) {
			return new Query_Failed_Response(
				$this->query->get_last_error()
			);
		}

		if ( 1 === count( $ids ) && 0 === $affected ) {
			return new \WP_Error(
				'rest_not_found',
				__( 'Submission not found or not in trash.', 'elementor-pro' ),
				[ 'status' => 404 ]
			);
		}

		return new \WP_REST_Response( [
			'data' => [],
			'meta' => [
				'affected' => $affected,
				'failed' => $failed,
			],
		], 200 );
	}

	public function __construct( $controller ) {
		$this->query = Query::get_instance();

		parent::__construct( $controller );
	}
}
PK!�\�$�$-modules/forms/submissions/data/controller.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data;

use Elementor\Core\Utils\Collection;
use Elementor\Data\Base\Controller as Controller_Base;
use ElementorPro\Modules\Forms\Submissions\Database\Query;
use ElementorPro\Modules\Forms\Submissions\Data\Responses\Query_Failed_Response;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Controller extends Controller_Base {
	/**
	 * @var \ElementorPro\Modules\Forms\Submissions\Database\Query
	 */
	private $query;

	public function get_name() {
		return 'form-submissions';
	}

	/**
	 * Get collection params by 'additionalProperties' context.
	 *
	 * TODO Should move to base after merge with 'Sub controllers & Sub endpoints'.
	 *
	 * @param string $context
	 *
	 * @return array
	 */
	private function get_collection_params_by_additional_props_context( $context ) {
		$result = [];

		$collection_params = $this->get_collection_params();

		foreach ( $collection_params as $collection_param_key => $collection_param ) {
			if ( isset( $collection_param['additionalProperties']['context'] ) && $context === $collection_param['additionalProperties']['context'] ) {
				$result[ $collection_param_key ] = $collection_param;
			}
		}

		return $result;
	}

	public function get_collection_params() {
		$default_collection_params = parent::get_collection_params();

		return array_merge( $default_collection_params, [
			'page' => [
				'description' => 'Current page of the collection.',
				'type' => 'integer',
				'default' => 1,
				'minimum' => 1,
				'required' => false,
			],
			'per_page' => [
				'description' => 'Maximum number of items to be returned in result set.',
				'type' => 'integer',
				'default' => 50,
				'minimum' => 1,
				'maximum' => 100,
				'required' => false,
			],
			'order' => [
				'description' => 'Order sort attribute ascending or descending.',
				'type' => 'string',
				'default' => 'desc',
				'enum' => [
					'asc',
					'desc',
				],
				'required' => false,
			],
			'order_by' => [
				'description' => 'Sort collection by object attribute.',
				'type' => 'string',
				'default' => 'created_at',
				'enum' => [
					'created_at',
					'id',
					'main_meta_id',
				],
				'required' => false,
			],
			'status' => [
				'description' => 'Limit result set to submissions assigned one or more statuses.',
				'type' => 'string',
				'default' => 'all',
				'enum' => [
					'all',
					'unread',
					'read',
					'trash',
				],
				'additionalProperties' => [
					'context' => 'filter',
					'options' => [
						'type' => 'enum',
						'labels' => [
							'all' => esc_html__( 'All', 'elementor-pro' ),
							'unread' => esc_html__( 'Unread', 'elementor-pro' ),
							'read' => esc_html__( 'Read', 'elementor-pro' ),
							'trash' => esc_html__( 'Trash', 'elementor-pro' ),
						],
					],
				],
				'required' => false,
			],
			'search' => [
				'description' => 'Limit results to those matching a string.',
				'type' => 'string',
				'required' => false,
				'additionalProperties' => [
					'context' => 'filter',
				],
			],
			'form' => [
				'description' => 'Limit result set to submissions assigned to specific forms. The form id should follow this pattern {post_id}_{element_id} e.g: 10_476d0ce',
				'type' => 'string',
				'required' => false,
				'additionalProperties' => [
					'context' => 'filter',
					'options' => [
						'type' => 'resource',
						'command' => 'forms/index',
						'args' => [ 'context' => 'options' ],
					],
				],
			],
			'referer' => [
				'description' => 'Limit result set to submissions assigned to specific referer.',
				'type' => 'string',
				'required' => false,
				'additionalProperties' => [
					'context' => 'filter',
					'options' => [
						'type' => 'resource',
						'command' => 'form-submissions/referer',
						'args' => [ 'context' => 'options' ],
					],
				],
			],
			'after' => [
				'description' => 'Limit response to submissions sent after a given ISO8601 compliant date.',
				'type' => 'string',
				'format' => 'date',
				'required' => false,
				'additionalProperties' => [
					'context' => 'filter',
				],
			],
			'before' => [
				'description' => 'Limit response to submissions sent before a given ISO8601 compliant date.',
				'type' => 'string',
				'format' => 'date',
				'required' => false,
				'additionalProperties' => [
					'context' => 'filter',
				],
			],
		] );
	}

	public function get_items( $request ) {
		$filters = [];

		// Get & set filters with values.
		foreach ( $this->get_collection_params_by_additional_props_context( 'filter' ) as $collection_param_name => $collection_param_values ) {
			$request_filter_value = $request->get_param( $collection_param_name );

			if ( null !== $request_filter_value ) {
				$collection_param_values['value'] = $request_filter_value;

				$filters[ $collection_param_name ] = $collection_param_values;
			}
		}

		$result = $this->query->get_submissions( [
			'page' => $request->get_param( 'page' ),
			'per_page' => $request->get_param( 'per_page' ),
			'filters' => $filters,
			'order' => [
				'order' => $request->get_param( 'order' ),
				'by' => $request->get_param( 'order_by' ),
			],
		] );

		$result['meta']['count'] = $this->query
			->count_submissions_by_status( $filters )
			->all();

		return $result;
	}

	public function get_item( $request ) {
		return $this->query->get_submission( (int) $request->get_param( 'id' ) );
	}

	/**
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function delete_items( $request ) {
		return $this->delete(
			$request->get_param( 'ids' ),
			$request->get_param( 'force' )
		);
	}

	/**
	 * Delete single submission
	 *
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function delete_item( $request ) {
		return $this->delete(
			[ $request->get_param( 'id' ) ],
			$request->get_param( 'force' )
		);
	}

	/**
	 * Update a single submission.
	 *
	 * @param \WP_REST_Request $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function update_item( $request ) {
		return $this->update(
			[ (int) $request->get_param( 'id' ) ],
			$request
		);
	}

	/**
	 * Update multiple submissions.
	 *
	 * @param $request
	 *
	 * @return \WP_Error|\WP_REST_Response
	 */
	public function update_items( $request ) {
		return $this->update(
			$request->get_param( 'ids' ),
			$request
		);
	}

	public function get_permission_callback( $request ) {
		return current_user_can( 'manage_options' );
	}

	public function register_endpoints() {
		$this->register_endpoint( Endpoints\Restore::class );
		$this->register_endpoint( Endpoints\Export::class );
		$this->register_endpoint( Endpoints\Referer::class );
	}

	protected function register_internal_endpoints() {
		// Register as internal to remove the default endpoint generated by the base controller.
		$this->register_endpoint( Endpoints\Index::class );
	}

	protected function register() {
		parent::register();

		$this->query = Query::get_instance();
	}

	/**
	 * Delete one or more submissions.
	 *
	 * @param array $ids
	 * @param false $force
	 *
	 * @return Query_Failed_Response|\WP_Error|\WP_REST_Response
	 */
	private function delete( array $ids, $force = false ) {
		$affected = 0;
		$failed = 0;

		foreach ( $ids as $id ) {
			if ( $force ) {
				$affected_rows = $this->query->delete_submission( $id );
			} else {
				$affected_rows = $this->query->move_to_trash_submission( $id );
			}

			if ( false === $affected_rows ) {
				$failed++;
			} else {
				$affected += $affected_rows;
			}
		}

		if ( count( $ids ) === $failed ) {
			return new Query_Failed_Response(
				$this->query->get_last_error()
			);
		}

		if ( 1 === count( $ids ) && 0 === $affected ) {
			return new \WP_Error(
				'rest_not_found',
				__( 'Submission not found.', 'elementor-pro' ),
				[ 'status' => 404 ]
			);
		}

		return new \WP_REST_Response( [
			'data' => [],
			'meta' => [
				'affected' => $affected,
				'failed' => $failed,
			],
		], 200 );
	}

	/**
	 * Update one or more submissions.
	 *
	 * @param array            $ids
	 * @param \WP_REST_Request $request
	 *
	 * @return Query_Failed_Response|\WP_Error|\WP_REST_Response
	 */
	private function update( array $ids, \WP_REST_Request $request ) {
		$allowed_args = ( new Collection( $request->get_attributes()['args'] ) )
			->except( [ 'id', 'ids', 'values' ] )
			->keys();

		$data = ( new Collection( $request->get_body_params() ) )
			->only( $allowed_args )
			->all();

		$values = $request->get_param( 'values' );

		$affected = 0;
		$failed = 0;

		foreach ( $ids as $id ) {
			$affected_rows = $this->query->update_submission( $id, $data, $values );

			if ( false === $affected_rows ) {
				$failed++;
			} else {
				$affected += $affected_rows;
			}
		}

		if ( count( $ids ) === $failed ) {
			return new Query_Failed_Response(
				$this->query->get_last_error()
			);
		}

		if ( 1 === count( $ids ) ) {
			if ( 0 === $affected ) {
				return new \WP_Error(
					'rest_not_found',
					__( 'Submission not found.', 'elementor-pro' ),
					[ 'status' => 404 ]
				);
			}

			return new \WP_REST_Response( $this->query->get_submission( $ids[0] ) );
		}

		return new \WP_REST_Response( [
			'data' => [],
			'meta' => [
				'affected' => $affected,
				'failed' => $failed,
			],
		], 200 );
	}
}
PK!�t��3modules/forms/submissions/data/forms-controller.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data;

use Elementor\Data\Base\Controller as Controller_Base;
use ElementorPro\Modules\Forms\Submissions\Database\Entities\Form_Snapshot;
use ElementorPro\Modules\Forms\Submissions\Database\Repositories\Form_Snapshot_Repository;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Forms_Controller extends Controller_Base {
	public function get_name() {
		return 'forms';
	}

	public function get_items( $request ) {
		$forms = Form_Snapshot_Repository::instance()->all();

		// For now return only as "options"
		return [
			'data' => $forms->map(function ( Form_Snapshot $form ) {
				return [
					'label' => $form->get_label(),
					'value' => $form->get_key(),
				];
			})->values(),
			'meta' => [],
		];
	}

	public function register_endpoints() {
		//
	}

	protected function register_internal_endpoints() {
		// Register as internal to remove the default endpoint generated by the base controller.
		$this->register_endpoint( Endpoints\Forms_Index::class );
	}

	public function get_permission_callback( $request ) {
		return current_user_can( 'manage_options' );
	}
}
PK!j$��Bmodules/forms/submissions/data/responses/query-failed-response.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Data\Responses;

use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Query_Failed_Response  extends \WP_Error {
	public function __construct( $query_error_message, $message = null ) {
		if ( ! $message ) {
			$message = esc_html__( 'Something went wrong.', 'elementor-pro' );
		}

		$this->log_error( $query_error_message );

		parent::__construct(
			'rest_internal_error',
			$message,
			[ 'status' => 500 ]
		);
	}

	private function log_error( $query_error_message ) {
		Plugin::elementor()->logger->error( $query_error_message );
	}
}
PK!�)���
�
Lmodules/forms/submissions/database/repositories/form-snapshot-repository.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Repositories;

use Elementor\Core\Base\Base_Object;
use Elementor\Core\Utils\Collection;
use ElementorPro\Modules\Forms\Submissions\Database\Entities\Form_Snapshot;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Form_Snapshot_Repository extends Base_Object {
	// There are two underscore prefix to avoid duplicate the meta when the post will be published.
	const POST_META_KEY = '__elementor_forms_snapshot';

	/**
	 * @var static
	 */
	private static $instance = null;

	/**
	 * @var Collection
	 */
	private $cache;

	/**
	 * @return static
	 */
	public static function instance() {
		if ( null === static::$instance ) {
			static::$instance = new static();
		}

		return static::$instance;
	}

	/**
	 * Get specific form.
	 *
	 * @param      $post_id
	 * @param      $form_id
	 * @param bool $from_cache
	 *
	 * @return Form_Snapshot|null
	 */
	public function find( $post_id, $form_id, $from_cache = true ) {
		$key = Form_Snapshot::generate_key( $post_id, $form_id );

		if ( $from_cache && $this->cache->get( $key, false ) ) {
			return $this->cache->get( $key, false );
		}

		return $this->save_in_cache(
			$this->get_post_forms( $post_id )
		)->get( $key );
	}

	/**
	 * Get all the forms.
	 *
	 * @return Collection
	 */
	public function all() {
		global $wpdb;

		$result = $wpdb->get_results(
			$wpdb->prepare(
				"SELECT pm.meta_value, pm.post_id FROM {$wpdb->postmeta} pm WHERE pm.meta_key = %s",
				static::POST_META_KEY
			)
		);

		if ( ! $result ) {
			return new Collection( [] );
		}

		foreach ( $result as $post_forms ) {
			$this->save_in_cache(
				$this->parse_meta( $post_forms->meta_value, $post_forms->post_id )
			);
		}

		return $this->cache;
	}

	/**
	 * @param $post_id
	 * @param $form_id
	 * @param $data
	 *
	 * @return Form_Snapshot
	 */
	public function create_or_update( $post_id, $form_id, $data ) {
		$forms = $this->get_post_forms( $post_id )
			->filter( function ( Form_Snapshot $form ) use ( $form_id ) {
				return $form->id !== $form_id;
			} );

		$form = new Form_Snapshot( $post_id, $data + [ 'id' => $form_id ] );
		$forms[] = $form;

		update_post_meta(
			$post_id,
			self::POST_META_KEY,
			// Use `wp_slash` in order to avoid the unslashing during the `update_post_meta`
			wp_slash( wp_json_encode( $forms->values() ) )
		);

		$this->save_in_cache( $forms );

		return $form;
	}

	public function clear_cache() {
		$this->cache = new Collection( [] );
	}

	/**
	 * @param $post_id
	 *
	 * @return Collection
	 */
	private function get_post_forms( $post_id ) {
		$meta_value = get_post_meta( $post_id, self::POST_META_KEY, true );

		if ( ! $meta_value ) {
			return new Collection( [] );
		}

		return $this->parse_meta( $meta_value, $post_id );
	}

	/**
	 * Receive a meta value and transform it to an array of Form objects.
	 *
	 * @param $meta_value
	 * @param $post_id
	 *
	 * @return Collection
	 */
	private function parse_meta( $meta_value, $post_id ) {
		return ( new Collection( json_decode( $meta_value, true ) ) )
			->map( function ( $item ) use ( $post_id ) {
				return new Form_Snapshot( $post_id, $item );
			} );
	}

	/**
	 * @param $forms
	 *
	 * @return Collection
	 */
	private function save_in_cache( Collection $forms ) {
		/** @var Form_Snapshot $form */
		foreach ( $forms as $form ) {
			$this->cache[ $form->get_key() ] = $form;
		}

		return $this->cache;
	}

	/**
	 * Forms_Repository constructor.
	 */
	public function __construct() {
		$this->cache = new Collection( [] );
	}
}
PK!o��""=modules/forms/submissions/database/entities/form-snapshot.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Entities;

use Elementor\Core\Base\Base_Object;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * The Form_Snapshot is a snapshot of the form as it saved in the document data, on each submission creation it updates the snapshot to the current state of the form,
 * As a consequence the queries are quicker (filters, export, etc.) and in case the form itself removed from the document, the Form_Snapshot
 * remains and allows the user export and filter submissions as before.
 */
class Form_Snapshot extends Base_Object implements \JsonSerializable {
	/**
	 * @var string
	 */
	public $id;

	/**
	 * @var int
	 */
	public $post_id;

	/**
	 * @var string
	 */
	public $name;

	/**
	 * @var array {
	 *      @type string $id
	 *      @type string $type
	 *      @type string $label
	 * }
	 */
	public $fields = [];

	/**
	 * @param $post_id
	 * @param $form_id
	 *
	 * @return string
	 */
	public static function generate_key( $post_id, $form_id ) {
		return "{$post_id}_{$form_id}";

	}

	/**
	 * @return string
	 */
	public function get_key() {
		return static::generate_key( $this->post_id, $this->id );
	}

	/**
	 * @return string
	 */
	public function get_label() {
		return "{$this->name} ($this->id)";
	}

	/**
	 * Implement for the JsonSerializable method, will trigger when trying to json_encode this object.
	 *
	 * @return array
	 */
	public function jsonSerialize() {
		return [
			'id' => $this->id,
			'name' => $this->name,
			'fields' => $this->fields,
		];
	}


	/**
	 * Form constructor.
	 *
	 * @param $post_id
	 * @param $data
	 */
	public function __construct( $post_id, $data ) {
		$this->post_id = (int) $post_id;
		$this->id = $data['id'];
		$this->name = $data['name'];
		$this->fields = $data['fields'];
	}
}
PK!��}vWYWY,modules/forms/submissions/database/query.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database;

use Elementor\Core\Base\Base_Object;
use ElementorPro\Plugin;
use Elementor\Core\Utils\Collection;
use Exception;
use ElementorPro\Modules\Forms\Classes\Action_Base;
use ElementorPro\Modules\Forms\Submissions\Database\Repositories\Form_Snapshot_Repository;

class Query extends Base_Object {
	const STATUS_NEW = 'new';
	const STATUS_TRASH = 'trash';

	const ACTIONS_LOG_STATUS_SUCCESS = 'success';
	const ACTIONS_LOG_STATUS_FAILED = 'failed';

	const TYPE_SUBMISSION = 'submission';

	/**
	 * @var Query
	 */
	private static $instance = null;

	const E_SUBMISSIONS_ACTIONS_LOG = 'e_submissions_actions_log';
	const E_SUBMISSIONS_VALUES = 'e_submissions_values';
	const E_SUBMISSIONS = 'e_submissions';

	/**
	 * @var \wpdb
	 */
	private $wpdb;

	/**
	 * @var string
	 */
	private $table_submissions;

	/**
	 * @var string
	 */
	private $table_submissions_values;

	/**
	 * @var string
	 */
	private $table_submissions_actions_log;

	public static function get_instance() {
		if ( ! self::$instance ) {
			self::$instance = new Query();
		}

		return self::$instance;
	}

	public function get_submissions( $args = [] ) {
		$args = wp_parse_args( $args, [
			'page' => 1,
			'per_page' => 10,
			'filters' => [],
			'order' => [],
			'with_meta' => false,
			'with_form_fields' => false,
		] );

		$page = $args['page'];
		$per_page = $args['per_page'];
		$filters = $args['filters'];
		$order = $args['order'];
		$with_meta = $args['with_meta'];
		$with_form_fields = $args['with_form_fields'];

		$result = [
			'data' => [],
			'meta' => [],
		];

		$where_sql = $this->apply_filter( $filters );
		$order_sql = '';

		$total = (int) $this->wpdb->get_var("SELECT COUNT(*) FROM `{$this->get_table_submissions()}` t_submissions {$where_sql}" );// phpcs:ignore

		$last_page = 0 < $total && 0 < $per_page ? (int) ceil( $total / $per_page ) : 1;

		if ( $page > $last_page ) {
			$page = $last_page;
		}

		$offset = (int) ceil( ( $page - 1 ) * $per_page );

		$result['meta']['pagination'] = [
			'current_page' => $page,
			'per_page' => $per_page,
			'total' => $total,
			'last_page' => $last_page,
		];

		$this->handle_order( $order, $order_sql );

		$per_page = (int) $per_page;

		$q = "SELECT t_submissions.* FROM `{$this->get_table_submissions()}` t_submissions {$where_sql} {$order_sql} LIMIT ${per_page} OFFSET {$offset}";

		$submissions = $this->wpdb->get_results( $q );// phpcs:ignore

		$data = new Collection( [] );

		foreach ( $submissions as $current_submission ) {
			$data[] = $this->get_submission_body( $current_submission, $with_form_fields );
		}

		$submissions_meta = $this
			->get_submissions_meta( $data, ! $with_meta )
			->group_by( 'submission_id' );

		$result['data'] = $data
			->map( function ( $submission ) use ( $submissions_meta ) {
				$current_submission_meta = $submissions_meta->get( $submission['id'], [] );

				foreach ( $current_submission_meta as $meta ) {
					$extract_meta = $this->extract( $meta, [ 'id', 'key', 'value' ], [ 'id:int' ] );

					if ( $meta->id === $submission['main_meta_id'] ) {
						$submission['main'] = $extract_meta;
					}

					$submission['values'][] = $extract_meta;
				}

				return $submission;
			} )
			->all();

		return $result;
	}

	/**
	 * Get count by status.
	 *
	 * @param $filter
	 *
	 * @return Collection
	 */
	public function count_submissions_by_status( $filter = [] ) {
		// Should not filter by status.
		unset( $filter['status'] );

		$where_sql = $this->apply_filter( $filter );

		$trash_status = '"' . static::STATUS_TRASH . '"';

		$sql = "
			SELECT
				SUM(IF(`status` != {$trash_status}, 1, 0)) AS `all`,
				SUM(IF(`status` = {$trash_status}, 1, 0)) AS `trash`,
				SUM(IF(is_read = 1 AND `status` != {$trash_status}, 1, 0)) AS `read`,
				SUM(IF(is_read = 0 AND `status` != {$trash_status}, 1, 0)) AS `unread`
			FROM {$this->get_table_submissions()} AS `t_submissions` {$where_sql};
		";

		$sql_result = $this->wpdb->get_row( $sql, ARRAY_A ); // phpcs:ignore

		$result = new Collection( [
			'all' => 0,
			'trash' => 0,
			'read' => 0,
			'unread' => 0,
		] );

		if ( ! $sql_result ) {
			return $result;
		}

		return $result->map( function ( $count, $key ) use ( $sql_result ) {
			if ( ! isset( $sql_result[ $key ] ) ) {
				return $count;
			}

			return intval( $sql_result[ $key ] );
		} );
	}

	public function get_submissions_by_email( $email, $include_submission_values = false ) {
		$user = get_user_by( 'email', $email );
		$user_filter = '';

		if ( $user ) {
			$user_filter = $this->wpdb->prepare( 't_submissions.user_id = %s OR', $user->ID );
		}

		$query = "
			SELECT DISTINCT(t_submissions.id), t_submissions.*
			FROM `{$this->get_table_submissions()}` t_submissions
			INNER JOIN {$this->get_table_submissions_values()} t_submissions_meta
				ON t_submissions.id = t_submissions_meta.submission_id
			WHERE
				{$user_filter}
				t_submissions_meta.value = %s
			;
		";

		$data = $this->wpdb->get_results(
			$this->wpdb->prepare( $query, $email ) // phpcs:ignore
		);

		if ( ! $data ) {
			return new Collection( [] );
		}

		$data = new Collection( $data );

		if ( $include_submission_values ) {
			$submissions_meta = $this->get_submissions_meta( $data )
				->group_by( 'submission_id' );

			$data->map( function ( $submission ) use ( $submissions_meta ) {
				$submission->values = $submissions_meta->get( $submission->id, [] );

				return $submission;
			} );
		}

		return $data;
	}

	/**
	 * @param int $delete_timestamp
	 *
	 * @return array
	 */
	public function get_trashed_submission_ids_to_delete( $delete_timestamp ) {
		$date = gmdate( 'Y-m-d H:i:s', $delete_timestamp );

		$sql = "
			SELECT s.id FROM `{$this->get_table_submissions()}` s
			WHERE s.status = %s AND s.updated_at_gmt < %s;
		";

		return $this->wpdb->get_col(
			$this->wpdb->prepare( $sql, static::STATUS_TRASH, $date ) // phpcs:ignore
		);
	}

	public function get_submission( $id ) {
		$result = [
			'data' => [],
			'meta' => [],
		];

		$q = "SELECT * FROM `{$this->get_table_submissions()}` WHERE id=%d";
		$submission = $this->wpdb->get_row( $this->wpdb->prepare( $q, [ $id ] ) );// phpcs:ignore

		if ( ! $submission ) {
			return null;
		}

		$result['data'] = $this->get_submission_body( $submission, true );

		$current_submission_meta = $this->get_submissions_meta( $submission, false )->all();

		foreach ( $current_submission_meta as $meta ) {
			$extract_meta = $this->extract( $meta, [ 'id', 'key', 'value' ], [ 'id:int' ] );

			if ( $meta->id === $result['data']['main_meta_id'] ) {
				$result['data']['main'] = $extract_meta;
			}

			$result['data']['values'][] = $extract_meta;
		}

		$result['data']['form_actions_log'] = ( new Collection( $this->get_submissions_actions_log( $id ) ) )
			->map( function ( $value ) {
				return $this->extract(
					$value,
					[ 'id', 'action_name', 'action_label', 'status', 'log', 'created_at', 'updated_at' ],
					[ 'id:int', 'name', 'label' ]
				);
			} )
			->all();

		return $result;
	}

	public function get_referrers( $search = '', $value = '' ) {
		$where = '';

		if ( $search ) {
			$search = '%' . $this->wpdb->esc_like( $search ) . '%';

			$where = " AND s.referer_title LIKE '{$search}'";
		}

		if ( $value ) {
			$where = $this->wpdb->prepare( ' AND s.referer = %s', $value ); // phpcs:ignore
		}

		$where = 'WHERE 1=1' . $where;

		$query = "
			SELECT DISTINCT (s.referer), s.referer_title
			FROM {$this->get_table_submissions()} s
			{$where};
		";

		$result = $this->wpdb->get_results( $query, ARRAY_A ); // phpcs:ignore

		if ( ! $result ) {
			return new Collection( [] );
		}

		return new Collection( $result );
	}

	/**
	 * @param       $submissions
	 * @param false $only_main
	 *
	 * @return Collection
	 */
	public function get_submissions_meta( $submissions, $only_main = false ) {
		if ( ! ( $submissions instanceof Collection ) ) {
			$submissions = new Collection(
				is_array( $submissions ) ? $submissions : [ $submissions ]
			);
		}

		if ( $submissions->is_empty() ) {
			return new Collection( [] );
		}

		if ( $only_main ) {
			$column = 'id';
			$ids = $submissions->pluck( 'main_meta_id' );
		} else {
			$column = 'submission_id';
			$ids = $submissions->pluck( 'id' );
		}

		$placeholders = $ids->map( function () {
			return '%d';
		} )->implode( ',' );

		$q = "SELECT * FROM `{$this->get_table_submissions_values()}` WHERE `{$column}` IN ({$placeholders})";

		$result = $this->wpdb->get_results( $this->wpdb->prepare( $q, $ids->all() ) ); // phpcs:ignore

		if ( ! $result ) {
			return new Collection( [] );
		}

		return new Collection( $result );
	}

	/**
	 * @param $post_id
	 * @param $element_id
	 *
	 * @return Collection
	 */
	public function get_submissions_value_keys( $post_id, $element_id ) {
		$sql = "
			SELECT DISTINCT(wesv.`key`)
			FROM {$this->get_table_submissions_values()} wesv
			INNER JOIN {$this->get_table_submissions()} wes
				ON wes.id = wesv.submission_id
			WHERE wes.post_id = %s AND wes.element_id = %s;
		";

		$result = $this->wpdb->get_col( $this->wpdb->prepare( $sql, $post_id, $element_id ) ); // phpcs:ignore

		if ( ! $result ) {
			return new Collection( [] );
		}

		return new Collection( $result );
	}

	/**
	 * @param $submission_id
	 *
	 * @return array|null
	 */
	public function get_submissions_actions_log( $submission_id ) {
		$query = "SELECT * FROM `{$this->get_table_form_actions_log()}` WHERE `submission_id` = %d;";

		return $this->wpdb->get_results(
			$this->wpdb->prepare( $query, (int) $submission_id ), // phpcs:ignore
			ARRAY_A
		);
	}

	/**
	 * Add submission.
	 *
	 * @param array $submission_data
	 * @param array $fields_data
	 *
	 * @return int id or 0
	 */
	public function add_submission( array $submission_data, array $fields_data ) {
		global $wpdb;

		$result = 0;

		$submission_data = $this->get_new_submission_initial_data( $submission_data );

		try {
			$wpdb->query( 'START TRANSACTION' );

			$submission_success = $wpdb->insert( $this->get_table_submissions(), $submission_data );

			if ( ! $submission_success ) {
				throw new Exception( $wpdb->last_error );
			}

			$submission_id = $wpdb->insert_id;

			// Meta's keys/values.
			$main_meta_id = 0;
			$first_submissions_meta_id = 0;
			foreach ( $fields_data as $field ) {
				$wpdb->insert( $this->get_table_submissions_values(), [
					'submission_id' => $submission_id,
					'key' => $field['id'],
					'value' => $field['value'],
				] );

				if ( ! $first_submissions_meta_id ) {
					$first_submissions_meta_id = $wpdb->insert_id;
				}

				if ( 0 === $main_meta_id && 'email' === $field['type'] ) {
					$main_meta_id = $wpdb->insert_id;
				}
			}

			// If `$main_meta_id` not determined.
			if ( ! $main_meta_id ) {
				$main_meta_id = $first_submissions_meta_id;
			}

			// Update main_meta_id.
			$wpdb->update( $this->get_table_submissions(),
				[
					'main_meta_id' => $main_meta_id,
				],
				[
					'id' => $submission_id,
				]
			);

			$wpdb->query( 'COMMIT' );

			$result = $submission_id;
		} catch ( Exception $e ) {
			$wpdb->query( 'ROLLBACK' );

			Plugin::elementor()->logger->get_logger()->error( 'Save submission failed, db error: ' . $e->getMessage() );
		}

		return $result;
	}

	/**
	 * @param       $submission_id
	 * @param array $data
	 * @param array $values
	 *
	 * @return bool|int affected rows
	 */
	public function update_submission( $submission_id, array $data, $values = [] ) {
		if ( $values ) {
			foreach ( $values as $key => $value ) {
				$this->wpdb->update(
					$this->get_table_submissions_values(),
					[ 'value' => $value ],
					[
						'submission_id' => $submission_id,
						'key' => $key,
					]
				);
			}
		}

		$data['updated_at_gmt'] = current_time( 'mysql', true );
		$data['updated_at'] = get_date_from_gmt( $data['updated_at_gmt'] );

		return $this->wpdb->update(
			$this->get_table_submissions(),
			$data,
			[ 'id' => $submission_id ]
		);
	}

	/**
	 * Move single submission to trash
	 *
	 * @param $id
	 *
	 * @return bool|int number of affected rows or false if failed
	 */
	public function move_to_trash_submission( $id ) {
		return $this->update_submission(
			$id,
			[ 'status' => static::STATUS_TRASH ]
		);
	}

	/**
	 * Delete a single submission.
	 *
	 * @param $id
	 *
	 * @return bool|int number of affected rows or false if failed
	 */
	public function delete_submission( $id ) {
		$this->wpdb->delete(
			$this->get_table_submissions_values(),
			[ 'submission_id' => $id ]
		);

		$this->wpdb->delete(
			$this->get_table_form_actions_log(),
			[ 'submission_id' => $id ]
		);

		return $this->wpdb->delete(
			$this->get_table_submissions(),
			[ 'id' => $id ]
		);
	}

	/**
	 * Restore a single submission.
	 *
	 * @param $id
	 *
	 * @return bool|int number of affected rows or false if failed
	 */
	public function restore( $id ) {
		return $this->wpdb->update(
			$this->get_table_submissions(),
			[ 'status' => self::STATUS_NEW ],
			[ 'id' => $id ]
		);
	}

	/**
	 * @param $submission_id
	 * @param Action_Base $action Should be class based on ActionBase (do not type hint to support third party plugins)
	 * @param $status
	 * @param null $log_message
	 *
	 * @return bool|int
	 */
	public function add_action_log( $submission_id, $action, $status, $log_message = null ) {
		$current_datetime_gmt = current_time( 'mysql', true );
		$current_datetime = get_date_from_gmt( $current_datetime_gmt );

		return $this->wpdb->insert(
			$this->get_table_form_actions_log(),
			[
				'submission_id' => $submission_id,
				'action_name' => $action->get_name(),
				'action_label' => $action->get_label(),
				'status' => $status,
				'log' => $log_message,
				'created_at_gmt' => $current_datetime_gmt,
				'updated_at_gmt' => $current_datetime_gmt,
				'created_at' => $current_datetime,
				'updated_at' => $current_datetime,
			]
		);
	}

	public function get_last_error() {
		$this->wpdb->last_error;
	}

	public function get_table_submissions() {
		return $this->table_submissions;
	}

	public function get_table_submissions_values() {
		return $this->table_submissions_values;
	}

	public function get_table_form_actions_log() {
		return $this->table_submissions_actions_log;
	}

	/**
	 * Extract data from `$target` by selected `$keys`.
	 * `$as` used to convert extracted data with different keys.
	 * `$as` support converting to types. using ':' after the key name.
	 *
	 * Example: `$target = [ 'someId' => '5' ];`
	 * `$keys = [ 'someId' ]`
	 * `$as = [ 'id:int' ]`
	 * Output will be `[ 'id' => 5 ];`
	 *
	 * @param array|\stdClass $target
	 * @param array $keys
	 * @param array $as
	 *
	 * @return array
	 */
	private function extract( $target, $keys, $as = [] ) {
		$result = [];

		$as_types = [];
		$as_count = 0;

		if ( is_object( $target ) ) {
			$target = (array) $target;
		}

		foreach ( $as as $key => $as_item ) {
			$exploded = explode( ':', $as_item );

			if ( count( $exploded ) > 1 ) {
				$as_types [] = $exploded[1];
				$as[ $key ] = $exploded[0];
			}
		}

		foreach ( $keys as $key ) {
			if ( isset( $target[ $key ] ) ) {
				if ( isset( $as[ $as_count ] ) ) {
					$value = $target[ $key ];
					if ( isset( $as_types[ $as_count ] ) ) {
						settype( $value, $as_types[ $as_count ] );
					}
					$result[ $as[ $as_count ] ] = $value;
				} else {
					$result[ $key ] = $target[ $key ];
				}
			}
			++$as_count;
		}

		return $result;
	}

	private function handle_and_for_where_query( &$target_where_query ) {
		if ( $target_where_query ) {
			$target_where_query .= ' AND ';
		}
	}

	private function filter_after_and_before( $filters, &$target_where_query ) {
		// Filters 'after' & 'before' known in advance, and could handled systematically.
		if ( isset( $filters['after'] ) || isset( $filters['before'] ) ) {
			$this->handle_and_for_where_query( $target_where_query );

			// TODO: This logic applies only for 'date' format not 'date-time' format.
			$after = '0000-01-01 00:00:00';
			$before = '9999-12-31 23:59:59';

			if ( isset( $filters['after'] ) ) {
				$after = $filters['after']['value'] . ' 00:00:00';
			}

			if ( isset( $filters['before'] ) ) {
				$before = $filters['before']['value'] . ' 23:59:59';
			}

			$after = get_gmt_from_date( $after );
			$before = get_gmt_from_date( $before );

			$target_where_query .= $this->wpdb->prepare( 'created_at_gmt BETWEEN %s and %s', [ $after, $before ] );
		}
	}

	private function filter_status( $filters, &$target_where_query ) {
		if ( isset( $filters['status'] ) ) {
			$this->handle_and_for_where_query( $target_where_query );

			switch ( $filters['status']['value'] ) {
				case 'all':
					$target_where_query .= 'status != \'' . self::STATUS_TRASH . '\'';
					break;
				case 'unread':
					$target_where_query .= 'status = \'' . self::STATUS_NEW . '\' AND is_read = 0';
					break;
				case 'read':
					$target_where_query .= 'status = \'' . self::STATUS_NEW . '\' AND is_read > 0';
					break;
				case 'trash':
					$target_where_query .= 'status = \'' . self::STATUS_TRASH . '\'';
					break;
			}
		}
	}

	private function filter_ids( $filters, &$target_where_query ) {
		if ( ! isset( $filters['ids'] ) || empty( $filters['ids'] ) ) {
			return;
		}

		$this->handle_and_for_where_query( $target_where_query );

		$ids_collection = new Collection( $filters['ids']['value'] );

		$placeholder = $ids_collection->map( function () {
			return '%d';
		} )->implode( ', ' );

		$target_where_query .= $this->wpdb->prepare( "`id` IN ({$placeholder})", $ids_collection->all() ); // phpcs:ignore
	}

	private function filter_search( $filters, &$target_where_query ) {
		if ( isset( $filters['search'] ) ) {
			$this->handle_and_for_where_query( $target_where_query );

			$like = '%' . $this->wpdb->esc_like( $filters['search']['value'] ) . '%';
			$meta_table_name = $this->get_table_submissions_values();

			$target_where_query .= "(
				(
					SELECT GROUP_CONCAT({$meta_table_name}.value)
					FROM `{$meta_table_name}`
					WHERE {$meta_table_name}.submission_id = t_submissions.id
					GROUP BY {$meta_table_name}.submission_id
				) LIKE '{$like}' OR
				t_submissions.id LIKE '{$like}'
			)";
		}
	}

	/**
	 * Filter bu element_id and post_id
	 *
	 * @param $filters
	 * @param $target_where_query
	 */
	private function filter_by_form( $filters, &$target_where_query ) {
		if ( ! isset( $filters['form']['value'] ) ) {
			return;
		}

		$this->handle_and_for_where_query( $target_where_query );

		list( $post_id, $form_id ) = explode( '_', $filters['form']['value'] );

		$target_where_query .= $this->wpdb->prepare(
			'post_id = %d AND element_id = %s',
			$post_id,
			$form_id
		);
	}

	/**
	 * @param $filters
	 * @param $target_where_query
	 */
	private function filter_by_referer( $filters, &$target_where_query ) {
		if ( ! isset( $filters['referer']['value'] ) ) {
			return;
		}

		$this->handle_and_for_where_query( $target_where_query );

		$target_where_query .= $this->wpdb->prepare(
			'referer = %s',
			$filters['referer']['value']
		);
	}

	private function handle_order( $order, &$target_order_query ) {
		if ( ! empty( $order ) ) {
			$order['by'] = esc_sql( $order['by'] );
			$order['order'] = strtoupper( $order['order'] );

			if ( ! in_array( $order['order'], [ 'ASC', 'DESC' ], true ) ) {
				$order['order'] = 'ASC';
			}

			$target_order_query = 'ORDER BY ' . $order['by'] . ' ' . $order['order'];
		}
	}

	/**
	 * @param \stdClass $submission
	 * @param bool      $with_form_fields
	 *
	 * @return array
	 */
	private function get_submission_body( $submission, $with_form_fields = false ) {
		$id = (int) $submission->id;

		$result = [
			'id' => $id,
		];

		$result['post'] = $this->extract( $submission, [ 'post_id' ], [ 'id:int' ] );
		$result['form'] = $this->extract( $submission, [ 'form_name', 'element_id' ], [ 'name' ] );

		$edit_post_id = $submission->post_id;

		// TODO: Should be removed if there is an ability to edit "global widgets"
		$meta = json_decode( $submission->meta, true );

		if ( isset( $meta['edit_post_id'] ) ) {
			$edit_post_id = $meta['edit_post_id'];
		}

		$document = Plugin::elementor()->documents->get( $edit_post_id );

		if ( $document ) {
			$result['post']['edit_url'] = $document->get_edit_url();
		}

		if ( $with_form_fields ) {
			$form = Form_Snapshot_Repository::instance()
				->find( $submission->post_id, $submission->element_id );

			if ( $form ) {
				$result['form']['fields'] = $form->fields;
			}
		}

		$user = get_user_by( 'id', $submission->user_id );

		$result['actions_count'] = (int) $submission->actions_count;
		$result['actions_succeeded_count'] = (int) $submission->actions_succeeded_count;
		$result['referer'] = $submission->referer;
		$result['referer_title'] = $submission->referer_title;
		$result['element_id'] = $submission->element_id;
		$result['main_meta_id'] = $submission->main_meta_id;
		$result['user_id'] = $submission->user_id;
		$result['user_agent'] = $submission->user_agent;
		$result['user_ip'] = $submission->user_ip;
		$result['user_name'] = $user ? $user->display_name : null;

		$result['created_at_gmt'] = $submission->created_at_gmt;
		$result['updated_at_gmt'] = $submission->updated_at_gmt;

		// Return the the dates according to WP current selected timezone.
		$result['created_at'] = get_date_from_gmt( $submission->created_at_gmt );
		$result['updated_at'] = get_date_from_gmt( $submission->updated_at_gmt );

		$result['status'] = $submission->status;
		$result['is_read'] = (bool) $submission->is_read;

		return $result;
	}

	private function get_new_submission_initial_data( array $submission_data ) {
		$current_datetime_gmt = current_time( 'mysql', true );
		$current_datetime = get_date_from_gmt( $current_datetime_gmt );

		$submission_data['hash_id'] = wp_generate_uuid4();

		$submission_data = array_merge( [
			'created_at_gmt' => $current_datetime_gmt,
			'updated_at_gmt' => $current_datetime_gmt,
			'created_at' => $current_datetime,
			'updated_at' => $current_datetime,
			'type' => self::TYPE_SUBMISSION,
			'status' => self::STATUS_NEW,
		], $submission_data );

		return $submission_data;
	}

	private function apply_filter( array $filter ) {
		$where_sql = '';

		$this->filter_after_and_before( $filter, $where_sql );
		$this->filter_status( $filter, $where_sql );
		$this->filter_search( $filter, $where_sql );
		$this->filter_by_form( $filter, $where_sql );
		$this->filter_ids( $filter, $where_sql );
		$this->filter_by_referer( $filter, $where_sql );

		if ( ! $where_sql ) {
			return '';
		}

		return 'WHERE ' . $where_sql;
	}

	public function __construct() {
		global $wpdb;

		$this->wpdb = $wpdb;

		$this->table_submissions = $wpdb->prefix . self::E_SUBMISSIONS;
		$this->table_submissions_values = $wpdb->prefix . self::E_SUBMISSIONS_VALUES;
		$this->table_submissions_actions_log = $wpdb->prefix . self::E_SUBMISSIONS_ACTIONS_LOG;
	}
}
PK!��l77@modules/forms/submissions/database/migrations/base-migration.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Migrations;

use Elementor\Core\Base\Base_Object;
use ElementorPro\Modules\Forms\Submissions\Database\Query;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Base_Migration extends Base_Object {
	/*
	 * Ref: wp-admin/includes/schema.php::wp_get_db_schema
	 *
	 * Indexes have a maximum size of 767 bytes. Historically, we haven't need to be concerned about that.
	 * As of 4.2, however, we moved to utf8mb4, which uses 4 bytes per character. This means that an index which
	 * used to have room for floor(767/3) = 255 characters, now only has room for floor(767/4) = 191 characters.
	 */
	const MAX_INDEX_LENGTH = 191;

	/**
	 * @var \wpdb
	 */
	protected $wpdb;

	/**
	 * @var Query
	 */
	protected $query;

	/**
	 * Base_Migration constructor.
	 *
	 * @param \wpdb $wpdb
	 */
	public function __construct( \wpdb $wpdb ) {
		$this->wpdb = $wpdb;
		$this->query = Query::get_instance();
	}

	/**
	 * Run migration.
	 *
	 * @return void
	 */
	abstract public function run();
}
PK!MI�9ff?modules/forms/submissions/database/migrations/referer-extra.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Migrations;

class Referer_Extra extends Base_Migration {
	public function run() {
		$max_index_length = static::MAX_INDEX_LENGTH;

		// phpcs:disable
		$this->wpdb->query("
			ALTER TABLE `{$this->query->get_table_submissions()}`
			ADD COLUMN `referer_title` varchar(300) null AFTER `referer`;
		");

		$this->wpdb->query("
			ALTER TABLE `{$this->query->get_table_submissions()}`
			ADD INDEX `referer_index` (`referer`({$max_index_length})),
			ADD INDEX `referer_title_index` (`referer_title`({$max_index_length}));
		");
		// phpcs:enable
	}
}
PK!�Cz�!!=modules/forms/submissions/database/migrations/fix-indexes.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Migrations;

use Elementor\Core\Utils\Collection;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Fix_Indexes extends Base_Migration {
	/**
	 * In the previous migrations some databases had problems with the indexes.
	 * this migration checks if user's tables are filled with required indexes, if not it creates them.
	 */
	public function run() {
		$indexes = $this->get_indexes();

		foreach ( $indexes as $table => $table_indexes ) {
			$existing_indexes = $this->get_existed_indexes_of( $table );

			// Protect from database errors (for example: table do not exists somehow).
			if ( null === $existing_indexes ) {
				continue;
			}

			$indexes_query = $table_indexes->except( $existing_indexes )->implode( ',' );

			$this->wpdb->query( "ALTER TABLE `{$table}` {$indexes_query};" ); // phpcs:ignore
		}
	}

	/**
	 * Get the user exited indexes
	 *
	 * @param $table_name
	 *
	 * @return array|null
	 */
	private function get_existed_indexes_of( $table_name ) {
		$result = $this->wpdb->get_results( "SHOW INDEX FROM {$table_name};", ARRAY_A ); // phpcs:ignore

		if ( false === $result ) {
			return null;
		}

		return ( new Collection( $result ) )
			->map( function ( $row ) {
				if ( ! isset( $row['Key_name'] ) ) {
					return null;
				}

				return $row['Key_name'];
			} )
			->filter()
			->values();
	}

	/**
	 * Get all the database indexes.
	 *
	 * @return Collection[]
	 */
	private function get_indexes() {
		$max_index_length = static::MAX_INDEX_LENGTH;

		return [
			$this->query->get_table_submissions() => new Collection( [
				'main_meta_id_index' => 'ADD INDEX `main_meta_id_index` (`main_meta_id`)',
				'hash_id_unique_index' => "ADD UNIQUE INDEX `hash_id_unique_index` (`hash_id` ({$max_index_length}))",
				'hash_id_index' => "ADD INDEX `hash_id_index` (`hash_id` ({$max_index_length}))",
				'type_index' => "ADD INDEX `type_index` (`type` ({$max_index_length}))",
				'post_id_index' => 'ADD INDEX `post_id_index` (`post_id`)',
				'element_id_index' => "ADD INDEX `element_id_index` (`element_id` ({$max_index_length}))",
				'campaign_id_index' => 'ADD INDEX `campaign_id_index` (`campaign_id`)',
				'user_id_index' => 'ADD INDEX `user_id_index` (`user_id`)',
				'user_ip_index' => 'ADD INDEX `user_ip_index` (`user_ip`)',
				'status_index' => 'ADD INDEX `status_index` (`status`)',
				'is_read_index' => 'ADD INDEX `is_read_index` (`is_read`)',
				'created_at_gmt_index' => 'ADD INDEX `created_at_gmt_index` (`created_at_gmt`)',
				'updated_at_gmt_index' => 'ADD INDEX `updated_at_gmt_index` (`updated_at_gmt`)',
				'created_at_index' => 'ADD INDEX `created_at_index` (`created_at`)',
				'updated_at_index' => 'ADD INDEX `updated_at_index` (`updated_at`)',
				'referer_index' => "ADD INDEX `referer_index` (`referer` ({$max_index_length}))",
				'referer_title_index' => "ADD INDEX `referer_title_index` (`referer_title` ({$max_index_length}))",
			] ),
			$this->query->get_table_submissions_values() => new Collection( [
				'submission_id_index' => 'ADD INDEX `submission_id_index` (`submission_id`)',
				'key_index' => "ADD INDEX `key_index` (`key` ({$max_index_length}))",
			] ),
			$this->query->get_table_form_actions_log() => new Collection( [
				'submission_id_index' => 'ADD INDEX `submission_id_index` (`submission_id`)',
				'action_name_index' => "ADD INDEX `action_name_index` (`action_name` ({$max_index_length}))",
				'status_index' => 'ADD INDEX `status_index` (`status`)',
				'created_at_gmt_index' => 'ADD INDEX `created_at_gmt_index` (`created_at_gmt`)',
				'updated_at_gmt_index' => 'ADD INDEX `updated_at_gmt_index` (`updated_at_gmt`)',
				'created_at_index' => 'ADD INDEX `created_at_index` (`created_at`)',
				'updated_at_index' => 'ADD INDEX `updated_at_index` (`updated_at`)',
			] ),
		];
	}
}
PK!i�U�pp9modules/forms/submissions/database/migrations/initial.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database\Migrations;

class Initial extends Base_Migration {
	public function run() {
		$this->create_tables();
		$this->add_indexes();
	}

	private function create_tables() {
		$charset_collate = $this->wpdb->get_charset_collate();

		$e_submission_table = "CREATE TABLE `{$this->query->get_table_submissions()}` (
			id bigint(20) unsigned auto_increment primary key,
			type varchar(60) null,
			hash_id varchar(60) not null,
			main_meta_id bigint(20) unsigned not null comment 'Id of main field. to represent the main meta field',
			post_id bigint(20) unsigned not null,
			referer varchar(500) not null,
			element_id varchar(20) not null,
			form_name varchar(60) not null,
			campaign_id bigint(20) unsigned not null,
			user_id bigint(20) unsigned null,
			user_ip varchar(46) not null,
			user_agent text not null,
			actions_count INT DEFAULT 0,
			actions_succeeded_count INT DEFAULT 0,
			status varchar(20) not null,
			is_read tinyint(1) default 0 not null,
			meta text null,
			created_at_gmt datetime not null,
			updated_at_gmt datetime not null,
			created_at datetime not null,
			updated_at datetime not null
		) {$charset_collate};";

		$e_submission_values_table = "CREATE TABLE `{$this->query->get_table_submissions_values()}` (
			id bigint(20) unsigned auto_increment primary key,
			submission_id bigint(20) unsigned not null default 0,
			`key` varchar(60) null,
			value longtext null
		) {$charset_collate};";

		$e_submission_actions_log_table = "CREATE TABLE `{$this->query->get_table_form_actions_log()}` (
			id bigint(20) unsigned auto_increment primary key,
			submission_id bigint(20) unsigned not null,
			action_name varchar(60) not null,
			action_label varchar(60) null,
			status varchar(20) not null,
			log text null,
			created_at_gmt datetime not null,
			updated_at_gmt datetime not null,
			created_at datetime not null,
			updated_at datetime not null
		) {$charset_collate};";

		require_once ABSPATH . 'wp-admin/includes/upgrade.php';

		dbDelta( $e_submission_table . $e_submission_values_table . $e_submission_actions_log_table );
	}

	private function add_indexes() {
		// phpcs:disable
		$this->wpdb->query( "ALTER TABLE `{$this->query->get_table_submissions()}`
    		ADD INDEX `main_meta_id_index` (`main_meta_id`),
    		ADD UNIQUE INDEX `hash_id_unique_index` (`hash_id`),
    		ADD INDEX `hash_id_index` (`hash_id`),
    		ADD INDEX `type_index` (`type`),
    		ADD INDEX `post_id_index` (`post_id`),
    		ADD INDEX `element_id_index` (`element_id`),
    		ADD INDEX `campaign_id_index` (`campaign_id`),
    		ADD INDEX `user_id_index` (`user_id`),
    		ADD INDEX `user_ip_index` (`user_ip`),
    		ADD INDEX `status_index` (`status`),
    		ADD INDEX `is_read_index` (`is_read`),
    		ADD INDEX `created_at_gmt_index` (`created_at_gmt`),
    		ADD INDEX `updated_at_gmt_index` (`updated_at_gmt`),
    		ADD INDEX `created_at_index` (`created_at`),
    		ADD INDEX `updated_at_index` (`updated_at`)
		" );

		$this->wpdb->query( "ALTER TABLE `{$this->query->get_table_submissions_values()}`
    		ADD INDEX `submission_id_index` (`submission_id`),
    		ADD INDEX `key_index` (`key`)
		" );

		$this->wpdb->query( "ALTER TABLE `{$this->query->get_table_form_actions_log()}`
    		ADD INDEX `submission_id_index` (`submission_id`),
    		ADD INDEX `action_name_index` (`action_name`),
    		ADD INDEX `status_index` (`status`),
    		ADD INDEX `created_at_gmt_index` (`created_at_gmt`),
    		ADD INDEX `updated_at_gmt_index` (`updated_at_gmt`),
    		ADD INDEX `created_at_index` (`created_at`),
    		ADD INDEX `updated_at_index` (`updated_at`)
		" );
		// phpcs:enable
	}
}
PK!a��kEE0modules/forms/submissions/database/migration.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Database;

use Elementor\Core\Base\Base_Object;
use Elementor\Core\Utils\Collection;

class Migration extends Base_Object {
	const OPTION_DB_VERSION = 'elementor_submissions_db_version';

	// This version must be updated when new migration created.
	const CURRENT_DB_VERSION = 5;

	private static $migrations = [
		1 => Migrations\Initial::class,
		// It jumps from version 1 to 4 because some users already migrated the DB when the migrations system worked with the Elementor Pro version
		// when the int value of the version "3.2.0" was 3.
		4 => Migrations\Referer_Extra::class,
		5 => Migrations\Fix_Indexes::class,
	];

	/**
	 * Checks if there is a need to run migrations.
	 */
	public static function install() {
		$installed_version = intval( get_option( self::OPTION_DB_VERSION ) );

		// Up to date. Nothing to do.
		if ( static::CURRENT_DB_VERSION <= $installed_version ) {
			return;
		}

		global $wpdb;

		( new Collection( static::$migrations ) )
			->filter( function ( $_, $version ) use ( $installed_version ) {
				// Filter all the migrations that already done.
				return $version > $installed_version;
			} )
			->map( function ( $migration_class_name, $version ) use ( $wpdb ) {
				/** @var Migrations\Base_Migration $migration */
				$migration = new $migration_class_name( $wpdb );
				$migration->run();

				// In case some migration failed it updates version every migration.
				update_option( static::OPTION_DB_VERSION, $version );
			} );

		update_option( static::OPTION_DB_VERSION, self::CURRENT_DB_VERSION );
	}
}
PK!�"Ƭ�'modules/forms/submissions/component.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions;

use Elementor\Settings;
use ElementorPro\Modules\Forms\Registrars\Form_Actions_Registrar;
use ElementorPro\Plugin;
use ElementorPro\Base\Module_Base;
use ElementorPro\Modules\Forms\Submissions\Database\Query;
use ElementorPro\Modules\Forms\Submissions\Data\Controller;
use ElementorPro\Modules\Forms\Submissions\Database\Migration;
use ElementorPro\Modules\Forms\Submissions\Data\Forms_Controller;
use ElementorPro\Modules\Forms\Submissions\Actions\Save_To_Database;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Component extends Module_Base {
	const NAME = 'form-submissions';
	const PAGE_ID = 'e-form-submissions';

	/**
	 * @return string
	 */
	public function get_name() {
		return static::NAME;
	}

	/**
	 * @return string
	 */
	public function get_assets_base_url() {
		return ELEMENTOR_PRO_URL;
	}

	/**
	 * Check if the current admin page is the component page.
	 *
	 * @return bool
	 */
	private function is_current() {
		// Nonce verification not required here.
		// phpcs:ignore WordPress.Security.NonceVerification.Recommended
		return ( ! empty( $_GET['page'] ) && self::PAGE_ID === $_GET['page'] );
	}

	/**
	 * Register admin menu
	 */
	private function register_admin_menu() {
		$title = $this->get_title();

		add_submenu_page(
			Settings::PAGE_ID,
			$title,
			$title,
			'manage_options',
			self::PAGE_ID,
			function () {
				?>
					<div class="wrap">
						<h1 class="wp-heading-inline"><?php echo esc_html__( 'Submissions', 'elementor-pro' ); ?></h1>
						<hr class="wp-header-end">
						<div id="e-form-submissions"></div>
					</div>
				<?php
			}
		);
	}

	/**
	 * Enqueue admin scripts
	 */
	private function enqueue_scripts() {
		wp_register_style(
			'select2',
			$this->get_css_assets_url( 'e-select2', '../elementor/assets/lib/e-select2/css/' ),
			[],
			'4.0.6-rc.1'
		);

		wp_enqueue_style(
			'elementor-app-base',
			$this->get_css_assets_url( 'modules/forms/submissions/admin', null, 'default', true ),
			[ 'select2' ],
			ELEMENTOR_PRO_VERSION
		);

		wp_register_script(
			'select2',
			$this->get_js_assets_url( 'e-select2.full', '../elementor/assets/lib/e-select2/js/' ),
			[
				'jquery',
			],
			'4.0.6-rc.1',
			true
		);

		wp_enqueue_script(
			'form-submission-admin',
			$this->get_js_assets_url( 'form-submission-admin' ),
			[
				'select2',
				'wp-url',
				'wp-i18n',
				'wp-date',
				'react',
				'react-dom',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		$is_trash_enabled = (int) ( EMPTY_TRASH_DAYS !== 0 );

		wp_add_inline_script(
			'form-submission-admin',
			"window.elementorSubmissionsConfig = { isTrashEnabled: {$is_trash_enabled} };",
			'before'
		);

		wp_set_script_translations( 'form-submission-admin', 'elementor-pro' );
	}

	private function scheduled_submissions_delete() {
		$query = Query::get_instance();
		$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );

		$ids = $query->get_trashed_submission_ids_to_delete( $delete_timestamp );

		foreach ( $ids as $id ) {
			$query->delete_submission( $id );
		}
	}

	private function get_title() {
		return esc_html__( 'Submissions', 'elementor-pro' );
	}

	/**
	 * Component constructor.
	 */
	public function __construct() {
		parent::__construct();

		Plugin::elementor()->data_manager->register_controller( Controller::class );
		Plugin::elementor()->data_manager->register_controller( Forms_Controller::class );

		new Personal_Data();

		add_action( 'admin_init', function () {
			Migration::install();
		} );

		add_action( 'elementor_pro/forms/actions/register', function ( Form_Actions_Registrar $actions_registrar ) {
			$actions_registrar->register( new Save_To_Database() );
		}, 0 /* Before all the actions */ );

		add_filter( 'elementor_pro/forms/default_submit_actions', function ( $actions ) {
			return array_merge( $actions, [ 'save-to-database' ] );
		} );

		add_action( 'wp_scheduled_delete', function () {
			$this->scheduled_submissions_delete();
		} );

		add_action( 'admin_menu', function () {
			$this->register_admin_menu();
		}, 21 /* after Elementor page */ );

		if ( $this->is_current() ) {
			add_action( 'admin_enqueue_scripts', function () {
				$this->enqueue_scripts();
			} );
		}
	}
}
PK!������/modules/forms/submissions/export/csv-export.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Export;

use Elementor\Core\Base\Base_Object;
use Elementor\Core\Utils\Collection;
use ElementorPro\Modules\Forms\Submissions\Database\Entities\Form_Snapshot;
use ElementorPro\Modules\Forms\Submissions\Database\Query;
use ElementorPro\Modules\Forms\Submissions\Database\Repositories\Form_Snapshot_Repository;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class CSV_Export extends Base_Object {
	/**
	 * @var Collection
	 */
	private $submissions;

	/**
	 * @var integer
	 */
	private $post_id;

	/**
	 * @var string
	 */
	private $element_id;

	/**
	 * @var Form_Snapshot|null
	 */
	private $form;

	/**
	 * @var Collection
	 */
	private $values_keys;

	/**
	 * Csv_Export constructor.
	 *
	 * Csv_Export constructor.
	 *
	 * @param Collection $submissions
	 */
	public function __construct( Collection $submissions ) {
		$this->submissions = $submissions;

		$first_submission = $this->submissions->first();

		$this->values_keys = new Collection( [] );
		$this->post_id = $first_submission['post']['id'];
		$this->element_id = $first_submission['element_id'];

		$this->form = Form_Snapshot_Repository::instance()->find(
			$this->post_id,
			$this->element_id
		);
	}

	/**
	 * @return array
	 */
	public function prepare_for_json_response() {
		$this->values_keys = Query::get_instance()->get_submissions_value_keys(
			$this->post_id,
			$this->element_id
		);

		$headers = $this->get_headers();
		$rows = $this->get_rows();

		return [
			'id' => $this->element_id,
			'content' => array_merge( $headers, $rows ),
			'mimetype' => 'text/csv;charset=UTF-8',
			'extension' => 'csv',
			'form_label' => $this->form ? $this->form->get_label() : "({$this->element_id})",
		];
	}

	/**
	 * @return array
	 */
	private function get_headers() {
		$base_headers = [
			'1_form_name' => esc_html__( 'Form Name (ID)', 'elementor-pro' ),
			'2_id' => esc_html__( 'Submission ID', 'elementor-pro' ),
			'3_created_at' => esc_html__( 'Created At', 'elementor-pro' ),
			'4_user_id' => esc_html__( 'User ID', 'elementor-pro' ),
			'5_user_agent' => esc_html__( 'User Agent', 'elementor-pro' ),
			'6_user_ip' => esc_html__( 'User IP', 'elementor-pro' ),
			'7_referrer' => esc_html__( 'Referrer', 'elementor-pro' ),
		];

		$labels_dictionary = $this->get_form_labels_dictionary();

		$headers = $this->values_keys
			->map_with_keys( function ( $key ) use ( $labels_dictionary ) {
				return [
					// JSON_UNESCAPED_UNICODE - for supporting non english chars.
					$key => wp_json_encode( isset( $labels_dictionary[ $key ] ) ? $labels_dictionary[ $key ] : $key, JSON_UNESCAPED_UNICODE ),
				];
			} )
			->merge( $base_headers )
			->all();

		ksort( $headers );

		return [ implode( ',', $headers ) ];
	}

	/**
	 * @return array
	 */
	private function get_rows() {
		return $this->submissions->map( function ( $submission ) {
			$base_values = [
				'1_form_name' => wp_json_encode(
					$this->form ? $this->form->get_label() : "({$this->element_id})"
				),
				'2_id' => wp_json_encode( $submission['id'] ),
				'3_created_at' => wp_json_encode( $submission['created_at'] ),
				'4_user_id' => wp_json_encode( $submission['user_id'] ),
				// JSON_UNESCAPED_SLASHES - Should not escape the user agent e.g: 'Mozilla/5.0 ...'
				'5_user_agent' => wp_json_encode( $submission['user_agent'], JSON_UNESCAPED_SLASHES ),
				'6_user_ip' => wp_json_encode( $submission['user_ip'] ),
				// JSON_UNESCAPED_SLASHES - should not escape the url slashes e.g: 'https://local.test/'
				'7_referrer' => wp_json_encode( $submission['referer'], JSON_UNESCAPED_SLASHES ),
			];

			$values_dictionary = $this->get_values_dictionary( $submission['values'] );

			$row = $this->values_keys
				->map_with_keys( function ( $key ) use ( $values_dictionary ) {
					return [
						// JSON_UNESCAPED_UNICODE - for supporting non english chars.
						$key => wp_json_encode( isset( $values_dictionary[ $key ] ) ? $values_dictionary[ $key ] : '', JSON_UNESCAPED_UNICODE ),
					];
				} )
				->merge( $base_values )
				->all();

			ksort( $row );

			return implode( ',', $row );
		} )->all();
	}

	/**
	 * Create a dictionary from the field id and label.
	 *
	 * @return array
	 */
	private function get_form_labels_dictionary() {
		if ( ! $this->form ) {
			return [];
		}

		$dictionary = [];

		foreach ( $this->form->fields as $field ) {
			$dictionary[ $field['id'] ] = $field['label'];
		}

		return $dictionary;
	}

	/**
	 * Create a dictionary from the value record key and value.
	 *
	 * @param array $values
	 *
	 * @return array
	 */
	private function get_values_dictionary( $values ) {
		if ( ! $values ) {
			return [];
		}

		$dictionary = [];

		foreach ( $values as $value ) {
			$dictionary[ $value['key'] ] = $value['value'];
		}

		return $dictionary;
	}
}
PK!�
����6modules/forms/submissions/actions/save-to-database.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Submissions\Actions;

use Elementor\Controls_Manager;
use Elementor\Core\Utils\Collection;
use ElementorPro\Plugin;
use ElementorPro\Modules\Forms\Widgets\Form;
use ElementorPro\Modules\Forms\Classes\Action_Base;
use ElementorPro\Modules\Forms\Submissions\Component;
use ElementorPro\Modules\Forms\Submissions\Database\Query;
use ElementorPro\Modules\Forms\Submissions\Database\Repositories\Form_Snapshot_Repository;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Save_To_Database extends Action_Base {
	private $submission_id;

	private $actions_succeeded_count = 0;

	public function get_name() {
		return 'save-to-database';
	}

	public function get_label() {
		return esc_html__( 'Collect Submissions', 'elementor-pro' );
	}

	public function register_settings_section( $widget ) {
		$widget->start_controls_section(
			'section_submissions',
			[
				'label' => esc_html__( 'Collect Submissions', 'elementor-pro' ),
				'condition' => [
					'submit_actions' => $this->get_name(),
				],
			]
		);

		$widget->add_control(
			'submissions_action_message',
			[
				'type' => Controls_Manager::RAW_HTML,
				'raw' => sprintf(
					__(
						'Collected Submissions will be saved to Elementor > <a href="%s" target="_blank" rel="noreferrer">Submissions</a>',
						'elementor-pro'
					),
					self_admin_url( 'admin.php?page=' . Component::PAGE_ID )
				),
				'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
			]
		);

		$widget->end_controls_section();
	}

	public function on_export( $element ) {
		// This action does not have to do nothing on export.
	}

	/**
	 * @param \ElementorPro\Modules\Forms\Classes\Form_Record  $record
	 * @param \ElementorPro\Modules\Forms\Classes\Ajax_Handler $ajax_handler
	 */
	public function run( $record, $ajax_handler ) {
		$meta = $record->get_form_meta( [ 'page_url', 'page_title', 'user_agent', 'remote_ip' ] );

		$actions_count = ( new Collection( $record->get_form_settings( 'submit_actions' ) ) )
			->filter(function ( $value ) {
				return $value !== $this->get_name();
			})
			->count();

		$post_id = $record->get_form_settings( 'form_post_id' );
		$element_id = $ajax_handler->get_current_form()['id'];
		$form_name = $record->get_form_settings( 'form_name' );

		$this->submission_id = Query::get_instance()->add_submission( [
			'main_meta_id' => 0,
			'post_id' => $post_id,
			'referer' => remove_query_arg(
				[ 'preview_id', 'preview_nonce', 'preview' ],
				$meta['page_url']['value']
			),
			'referer_title' => $meta['page_title']['value'],
			'element_id' => $element_id,
			'form_name' => $form_name,
			'campaign_id' => 0,
			'user_id' => get_current_user_id(),
			'user_ip' => $meta['remote_ip']['value'],
			'user_agent' => $meta['user_agent']['value'],
			'actions_count' => $actions_count,
			'actions_succeeded_count' => 0,
			'meta' => wp_json_encode( [
				// TODO: Should be removed if there is an ability to edit "global widgets"
				'edit_post_id' => $record->get_form_settings( 'edit_post_id' ),
			] ),
		], $record->get_field( null ) );

		/** @var Form $form_instance */
		$form_instance = Plugin::elementor()->elements_manager->create_element_instance( $ajax_handler->get_current_form() );
		$fields = $record->get_form_settings( 'form_fields' );

		// When created new submission, it should also update or create
		// a form snapshot to save to new state of the form in case the form changed or will
		// be deleted later.
		Form_Snapshot_Repository::instance()
			->create_or_update( $post_id, $element_id, [
				'name' => $form_name,
				'fields' => array_map( function ( $field, $index ) use ( $form_instance ) {
					// Apply filters to demonstrate the same behavior as the render behavior. (adding select fields dynamically, etc.)
					// Ref: modules/forms/widgets/form.php:2116
					$field = apply_filters( 'elementor_pro/forms/render/item', $field, $index, $form_instance );
					$field = apply_filters( "elementor_pro/forms/render/item/{$field['field_type']}", $field, $index, $form_instance );

					$mapped_field = [
						'id' => $field['custom_id'],
						'type' => $field['field_type'],
						'label' => $field['field_label'],
					];

					if ( isset( $field['field_options'] ) ) {
						$mapped_field['options'] = explode( PHP_EOL, $field['field_options'] );
					}

					if ( isset( $field['allow_multiple'] ) ) {
						$mapped_field['is_multiple'] = 'true' === $field['allow_multiple'];
					}

					return $mapped_field;
				}, $fields, array_keys( $fields ) ),
			] );
	}

	/**
	 * It listen for all the form actions and log the result into the database.
	 *
	 * @param Action_Base     $action Should be class based on ActionBase (do not type hint to support third party plugins)
	 * @param \Exception|null $exception
	 */
	private function save_action_log( $action, \Exception $exception = null ) {
		if ( ! $this->submission_id || $action->get_name() === $this->get_name() ) {
			return;
		}

		$query = Query::get_instance();
		$error_message = null;

		if ( $exception ) {
			$error_message = $exception->getMessage();

			$status = Query::ACTIONS_LOG_STATUS_FAILED;
		} else {
			$this->actions_succeeded_count += 1;

			$query->update_submission( $this->submission_id, [
				'actions_succeeded_count' => $this->actions_succeeded_count,
			] );

			$status = Query::ACTIONS_LOG_STATUS_SUCCESS;
		}

		$query->add_action_log(
			$this->submission_id,
			$action,
			$status,
			$error_message
		);
	}

	/**
	 * Save_To_Database constructor.
	 */
	public function __construct() {
		add_action( 'elementor_pro/forms/actions/after_run', function ( Action_Base $action, \Exception $exception = null ) {
			$this->save_action_log( $action, $exception );
		}, 10, 2 );
	}
}
PK!T3�;sosomodules/forms/widgets/login.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Background;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Login extends Base_Widget {

	public function get_name() {
		return 'login';
	}

	public function get_title() {
		return esc_html__( 'Login', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-lock-user';
	}

	public function get_keywords() {
		return [ 'login', 'user', 'form' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_fields_content',
			[
				'label' => esc_html__( 'Form Fields', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_labels',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'input_size',
			[
				'label' => esc_html__( 'Input Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
				'default' => 'sm',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_button_content',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Text', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Log In', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
				'default' => 'sm',
			]
		);

		$this->add_responsive_control(
			'align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'stretch' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'prefix_class' => 'elementor%s-button-align-',
				'default' => '',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_login_content',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'redirect_after_login',
			[
				'label' => esc_html__( 'Redirect After Login', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'redirect_url',
			[
				'type' => Controls_Manager::URL,
				'show_label' => false,
				'options' => false,
				'separator' => false,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'description' => esc_html__( 'Note: Because of security reasons, you can ONLY use your current domain here.', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'redirect_after_login' => 'yes',
				],
			]
		);

		$this->add_control(
			'redirect_after_logout',
			[
				'label' => esc_html__( 'Redirect After Logout', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'redirect_logout_url',
			[
				'type' => Controls_Manager::URL,
				'show_label' => false,
				'options' => false,
				'separator' => false,
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'description' => esc_html__( 'Note: Because of security reasons, you can ONLY use your current domain here.', 'elementor-pro' ),
				'dynamic' => [
					'active' => true,
				],
				'condition' => [
					'redirect_after_logout' => 'yes',
				],
			]
		);

		$this->add_control(
			'show_lost_password',
			[
				'label' => esc_html__( 'Lost your password?', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		if ( get_option( 'users_can_register' ) ) {
			$this->add_control(
				'show_register',
				[
					'label' => esc_html__( 'Register', 'elementor-pro' ),
					'type' => Controls_Manager::SWITCHER,
					'default' => 'yes',
					'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
					'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				]
			);
		}

		$this->add_control(
			'show_remember_me',
			[
				'label' => esc_html__( 'Remember Me', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'show_logged_in_message',
			[
				'label' => esc_html__( 'Logged in Message', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'custom_labels',
			[
				'label' => esc_html__( 'Custom Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
			]
		);

		$this->add_control(
			'user_label',
			[
				'label' => esc_html__( 'Username Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Username or Email Address', 'elementor-pro' ),
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'show_labels',
							'operator' => '===',
							'value' => 'yes',
						],
						[
							'name' => 'custom_labels',
							'operator' => '===',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$this->add_control(
			'user_placeholder',
			[
				'label' => esc_html__( 'Username Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Username or Email Address', 'elementor-pro' ),
				'condition' => [
					'custom_labels' => 'yes',
				],
			]
		);

		$this->add_control(
			'password_label',
			[
				'label' => esc_html__( 'Password Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Password', 'elementor-pro' ),
				'conditions' => [
					'relation' => 'or',
					'terms' => [
						[
							'name' => 'show_labels',
							'operator' => '===',
							'value' => 'yes',
						],
						[
							'name' => 'custom_labels',
							'operator' => '===',
							'value' => 'yes',
						],
					],
				],
			]
		);

		$this->add_control(
			'password_placeholder',
			[
				'label' => esc_html__( 'Password Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Password', 'elementor-pro' ),
				'condition' => [
					'custom_labels' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style',
			[
				'label' => esc_html__( 'Form', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => '10',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-form-fields-wrapper' => 'margin-bottom: -{{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'links_color',
			[
				'label' => esc_html__( 'Links Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group > a' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_control(
			'links_hover_color',
			[
				'label' => esc_html__( 'Links Hover Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group > a:hover' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_labels',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'show_labels!' => '',
				],
			]
		);

		$this->add_control(
			'label_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => '0',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'body {{WRAPPER}} .elementor-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};',
					// for the label position = above option
				],
			]
		);

		$this->add_control(
			'label_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-form-fields-wrapper label' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'label_typography',
				'selector' => '{{WRAPPER}} .elementor-form-fields-wrapper label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_field_style',
			[
				'label' => esc_html__( 'Fields', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'field_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'field_typography',
				'selector' => '{{WRAPPER}} .elementor-field-group .elementor-field, {{WRAPPER}} .elementor-field-subgroup label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'field_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field:not(.elementor-select-wrapper)' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'background-color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'field_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field:not(.elementor-select-wrapper)' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper::before' => 'color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'field_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'placeholder' => '1',
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field:not(.elementor-select-wrapper)' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'field_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field:not(.elementor-select-wrapper)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-button',
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-button',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
					'color' => [
						'global' => [
							'default' => Global_Colors::COLOR_ACCENT,
						],
					],
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(), [
				'name' => 'button_border',
				'selector' => '{{WRAPPER}} .elementor-button',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-button:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Background::get_type(),
			[
				'name' => 'button_background_hover',
				'types' => [ 'classic', 'gradient' ],
				'exclude' => [ 'image' ],
				'selector' => '{{WRAPPER}} .elementor-button:hover',
				'fields_options' => [
					'background' => [
						'default' => 'classic',
					],
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-button:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'button_hover_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_style_message',
			[
				'label' => esc_html__( 'Logged in Message', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'message_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-widget-container .elementor-login__logged-in-message' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'message_typography',
				'selector' => '{{WRAPPER}} .elementor-widget-container .elementor-login__logged-in-message',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

	}

	private function form_fields_render_attributes() {
		$settings = $this->get_settings();

		if ( ! empty( $settings['button_size'] ) ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['button_size'] );
		}

		if ( $settings['button_hover_animation'] ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $settings['button_hover_animation'] );
		}

		$this->add_render_attribute(
			[
				'wrapper' => [
					'class' => [
						'elementor-form-fields-wrapper',
					],
				],
				'field-group' => [
					'class' => [
						'elementor-field-type-text',
						'elementor-field-group',
						'elementor-column',
						'elementor-col-100',
					],
				],
				'submit-group' => [
					'class' => [
						'elementor-field-group',
						'elementor-column',
						'elementor-field-type-submit',
						'elementor-col-100',
					],
				],

				'button' => [
					'class' => [
						'elementor-button',
					],
					'name' => 'wp-submit',
				],
				'user_label' => [
					'for' => 'user',
				],
				'user_input' => [
					'type' => 'text',
					'name' => 'log',
					'id' => 'user',
					'placeholder' => $settings['user_placeholder'],
					'class' => [
						'elementor-field',
						'elementor-field-textual',
						'elementor-size-' . $settings['input_size'],
					],
				],
				'password_label' => [
					'for' => 'password',
				],
				'password_input' => [
					'type' => 'password',
					'name' => 'pwd',
					'id' => 'password',
					'placeholder' => $settings['password_placeholder'],
					'class' => [
						'elementor-field',
						'elementor-field-textual',
						'elementor-size-' . $settings['input_size'],
					],
				],
				//TODO: add unique ID
				'label_user' => [
					'for' => 'user',
					'class' => 'elementor-field-label',
				],

				'label_password' => [
					'for' => 'password',
					'class' => 'elementor-field-label',
				],
			]
		);

		if ( ! $settings['show_labels'] ) {
			$this->add_render_attribute( 'label', 'class', 'elementor-screen-only' );
		}

		$this->add_render_attribute( 'field-group', 'class', 'elementor-field-required' )
			 ->add_render_attribute( 'input', 'required', true )
			 ->add_render_attribute( 'input', 'aria-required', 'true' );

	}

	protected function render() {
		$settings = $this->get_settings_for_display();
		$current_url = remove_query_arg( 'fake_arg' );
		$logout_redirect = $current_url;

		if ( 'yes' === $settings['redirect_after_login'] && ! empty( $settings['redirect_url']['url'] ) ) {
			$redirect_url = $settings['redirect_url']['url'];
		} else {
			$redirect_url = $current_url;
		}

		if ( 'yes' === $settings['redirect_after_logout'] && ! empty( $settings['redirect_logout_url']['url'] ) ) {
			$logout_redirect = $settings['redirect_logout_url']['url'];
		}

		if ( is_user_logged_in() && ! Plugin::elementor()->editor->is_edit_mode() ) {
			if ( 'yes' === $settings['show_logged_in_message'] ) {
				$current_user = wp_get_current_user();

				// PHPCS - `sprintf` is safe.
				echo '<div class="elementor-login elementor-login__logged-in-message">' .
					sprintf(
						/* translators: 1: User display name, 2: Link open tag, 3: Link closing tag. */
						esc_html__( 'You are Logged in as %1$s (%2$sLogout%3$s)', 'elementor-pro' ),
						wp_kses_post( $current_user->display_name ),
						sprintf( '<a href="%s" target="_blank">', esc_url( wp_logout_url( $logout_redirect ) ) ),
						'</a>'
					) .
					'</div>';
			}

			return;
		}

		$this->form_fields_render_attributes();
		?>
		<form class="elementor-login elementor-form" method="post" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>">
			<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_url ); ?>">
			<div <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
				<div <?php $this->print_render_attribute_string( 'field-group' ); ?>>
					<?php

					if ( $settings['show_labels'] ) {
						echo '<label ';
						$this->print_render_attribute_string( 'user_label' );
						echo '>';

						$this->print_unescaped_setting( 'user_label' );
						echo '</label>';
					}
					?>
					<input size="1" <?php $this->print_render_attribute_string( 'user_input' ); ?>>
				</div>
				<div <?php $this->print_render_attribute_string( 'field-group' ); ?>>
					<?php
					if ( $settings['show_labels'] ) :
						echo '<label ';
						$this->print_render_attribute_string( 'password_label' );
						echo '>';

						$this->print_unescaped_setting( 'password_label' );
						echo '</label>';
					endif;
					?>
					<input size="1" <?php $this->print_render_attribute_string( 'password_input' ); ?>>
				</div>

				<?php if ( 'yes' === $settings['show_remember_me'] ) : ?>
					<div class="elementor-field-type-checkbox elementor-field-group elementor-column elementor-col-100 elementor-remember-me">
						<label for="elementor-login-remember-me">
							<input type="checkbox" id="elementor-login-remember-me" name="rememberme" value="forever">
							<?php echo esc_html__( 'Remember Me', 'elementor-pro' ); ?>
						</label>
					</div>
				<?php endif; ?>

				<div <?php $this->print_render_attribute_string( 'submit-group' ); ?>>
					<button type="submit" <?php $this->print_render_attribute_string( 'button' ); ?>>
							<?php if ( ! empty( $settings['button_text'] ) ) : ?>
								<span class="elementor-button-text"><?php $this->print_unescaped_setting( 'button_text' ); ?></span>
							<?php endif; ?>
					</button>
				</div>

				<?php
				$show_lost_password = 'yes' === $settings['show_lost_password'];
				$show_register = get_option( 'users_can_register' ) && 'yes' === $settings['show_register'];

				if ( $show_lost_password || $show_register ) : ?>
					<div class="elementor-field-group elementor-column elementor-col-100">
						<?php if ( $show_lost_password ) : ?>
							<?php // PHPCS - `wp_lostpassword_url` is safe. ?>
							<a class="elementor-lost-password" href="<?php echo wp_lostpassword_url( $redirect_url ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
								<?php echo esc_html__( 'Lost your password?', 'elementor-pro' ); ?>
							</a>
						<?php endif; ?>

						<?php if ( $show_register ) : ?>
							<?php if ( $show_lost_password ) : ?>
								<span class="elementor-login-separator"> | </span>
							<?php endif; ?>
							<?php // PHPCS - `wp_registration_url` is safe. ?>
							<a class="elementor-register" href="<?php echo wp_registration_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
								<?php echo esc_html__( 'Register', 'elementor-pro' ); ?>
							</a>
						<?php endif; ?>
					</div>
				<?php endif; ?>
			</div>
		</form>
		<?php
	}

	/**
	 * Render Login Form output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<div class="elementor-login elementor-form">
			<div class="elementor-form-fields-wrapper">
				<#
					fieldGroupClasses = 'elementor-field-group elementor-column elementor-col-100 elementor-field-type-text';
				#>
				<div class="{{ fieldGroupClasses }}">
					<# if ( settings.show_labels ) { #>
						<label class="elementor-field-label" for="user" >{{{ settings.user_label }}}</label>
						<# } #>
							<input size="1" type="text" id="user" placeholder="{{ settings.user_placeholder }}" class="elementor-field elementor-field-textual elementor-size-{{ settings.input_size }}" />
				</div>
				<div class="{{ fieldGroupClasses }}">
					<# if ( settings.show_labels ) { #>
						<label class="elementor-field-label" for="password" >{{{ settings.password_label }}}</label>
						<# } #>
							<input size="1" type="password" id="password" placeholder="{{ settings.password_placeholder }}" class="elementor-field elementor-field-textual elementor-size-{{ settings.input_size }}" />
				</div>

				<# if ( settings.show_remember_me ) { #>
					<div class="elementor-field-type-checkbox elementor-field-group elementor-column elementor-col-100 elementor-remember-me">
						<label for="elementor-login-remember-me">
							<input type="checkbox" id="elementor-login-remember-me" name="rememberme" value="forever">
							<?php // PHPCS - `esc_html__` is safe. ?>
							<?php echo esc_html__( 'Remember Me', 'elementor-pro' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
						</label>
					</div>
				<# } #>

				<div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100">
					<button type="submit" class="elementor-button elementor-size-{{ settings.button_size }}">
						<# if ( settings.button_text ) { #>
							<span class="elementor-button-text">{{ settings.button_text }}</span>
						<# } #>
					</button>
				</div>

				<# if ( settings.show_lost_password || settings.show_register ) { #>
					<div class="elementor-field-group elementor-column elementor-col-100">
						<# if ( settings.show_lost_password ) { #>
						<?php // PHPCS - `wp_lostpassword_url` is safe. ?>
						<a class="elementor-lost-password" href="<?php echo wp_lostpassword_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
								<?php echo esc_html__( 'Lost your password?', 'elementor-pro' ); ?>
							</a>
						<# } #>

						<?php if ( get_option( 'users_can_register' ) ) { ?>
							<# if ( settings.show_register ) { #>
								<# if ( settings.show_lost_password ) { #>
									<span class="elementor-login-separator"> | </span>
								<# } #>
							<?php // PHPCS - `wp_registration_url` is safe. ?>
							<a class="elementor-register" href="<?php echo wp_registration_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>">
									<?php echo esc_html__( 'Register', 'elementor-pro' ); ?>
								</a>
							<# } #>
						<?php } ?>
					</div>
				<# } #>
			</div>
		</div>
		<?php
	}

	public function render_plain_content() {}

	public function get_group_name() {
		return 'forms';
	}
}
PK!�uR�modules/forms/widgets/form.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Repeater;
use ElementorPro\Core\Utils;
use ElementorPro\Modules\Forms\Classes\Ajax_Handler;
use ElementorPro\Modules\Forms\Classes\Form_Base;
use ElementorPro\Modules\Forms\Controls\Fields_Repeater;
use ElementorPro\Modules\Forms\Module;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Form extends Form_Base {

	public function get_name() {
		return 'form';
	}

	public function get_title() {
		return esc_html__( 'Form', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-form-horizontal';
	}

	public function get_keywords() {
		return [ 'form', 'forms', 'field', 'button', 'mailchimp', 'drip', 'mailpoet', 'convertkit', 'getresponse', 'recaptcha', 'zapier', 'webhook', 'activecampaign', 'slack', 'discord', 'mailerlite' ];
	}

	protected function register_controls() {
		$repeater = new Repeater();

		$field_types = [
			'text' => esc_html__( 'Text', 'elementor-pro' ),
			'email' => esc_html__( 'Email', 'elementor-pro' ),
			'textarea' => esc_html__( 'Textarea', 'elementor-pro' ),
			'url' => esc_html__( 'URL', 'elementor-pro' ),
			'tel' => esc_html__( 'Tel', 'elementor-pro' ),
			'radio' => esc_html__( 'Radio', 'elementor-pro' ),
			'select' => esc_html__( 'Select', 'elementor-pro' ),
			'checkbox' => esc_html__( 'Checkbox', 'elementor-pro' ),
			'acceptance' => esc_html__( 'Acceptance', 'elementor-pro' ),
			'number' => esc_html__( 'Number', 'elementor-pro' ),
			'date' => esc_html__( 'Date', 'elementor-pro' ),
			'time' => esc_html__( 'Time', 'elementor-pro' ),
			'upload' => esc_html__( 'File Upload', 'elementor-pro' ),
			'password' => esc_html__( 'Password', 'elementor-pro' ),
			'html' => esc_html__( 'HTML', 'elementor-pro' ),
			'hidden' => esc_html__( 'Hidden', 'elementor-pro' ),
		];

		/**
		 * Forms field types.
		 *
		 * Filters the list of field types displayed in the form `field_type` control.
		 *
		 * @since 1.0.0
		 *
		 * @param array $field_types Field types.
		 */
		$field_types = apply_filters( 'elementor_pro/forms/field_types', $field_types );

		$repeater->start_controls_tabs( 'form_fields_tabs' );

		$repeater->start_controls_tab( 'form_fields_content_tab', [
			'label' => esc_html__( 'Content', 'elementor-pro' ),
		] );

		$repeater->add_control(
			'field_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => $field_types,
				'default' => 'text',
			]
		);

		$repeater->add_control(
			'field_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
			]
		);

		$repeater->add_control(
			'placeholder',
			[
				'label' => esc_html__( 'Placeholder', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => 'in',
							'value' => [
								'tel',
								'text',
								'email',
								'textarea',
								'number',
								'url',
								'password',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'required',
			[
				'label' => esc_html__( 'Required', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'default' => '',
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => '!in',
							'value' => [
								'checkbox',
								'recaptcha',
								'recaptcha_v3',
								'hidden',
								'html',
								'step',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'field_options',
			[
				'label' => esc_html__( 'Options', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'default' => '',
				'description' => esc_html__( 'Enter each option in a separate line. To differentiate between label and value, separate them with a pipe char ("|"). For example: First Name|f_name', 'elementor-pro' ),
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => 'in',
							'value' => [
								'select',
								'checkbox',
								'radio',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'allow_multiple',
			[
				'label' => esc_html__( 'Multiple Selection', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'true',
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'select',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'select_size',
			[
				'label' => esc_html__( 'Rows', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'min' => 2,
				'step' => 1,
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'select',
						],
						[
							'name' => 'allow_multiple',
							'value' => 'true',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'inline_list',
			[
				'label' => esc_html__( 'Inline List', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'elementor-subgroup-inline',
				'default' => '',
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => 'in',
							'value' => [
								'checkbox',
								'radio',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'field_html',
			[
				'label' => esc_html__( 'HTML', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'dynamic' => [
					'active' => true,
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'html',
						],
					],
				],
			]
		);

		$repeater->add_responsive_control(
			'width',
			[
				'label' => esc_html__( 'Column Width', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					'100' => '100%',
					'80' => '80%',
					'75' => '75%',
					'70' => '70%',
					'66' => '66%',
					'60' => '60%',
					'50' => '50%',
					'40' => '40%',
					'33' => '33%',
					'30' => '30%',
					'25' => '25%',
					'20' => '20%',
				],
				'default' => '100',
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => '!in',
							'value' => [
								'hidden',
								'recaptcha',
								'recaptcha_v3',
								'step',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'rows',
			[
				'label' => esc_html__( 'Rows', 'elementor-pro' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 4,
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'textarea',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'recaptcha_size', [
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'normal',
				'options' => [
					'normal' => esc_html__( 'Normal', 'elementor-pro' ),
					'compact' => esc_html__( 'Compact', 'elementor-pro' ),
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'recaptcha',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'recaptcha_style',
			[
				'label' => esc_html__( 'Style', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'light',
				'options' => [
					'light' => esc_html__( 'Light', 'elementor-pro' ),
					'dark' => esc_html__( 'Dark', 'elementor-pro' ),
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'recaptcha',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'recaptcha_badge', [
				'label' => esc_html__( 'Badge', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'bottomright',
				'options' => [
					'bottomright' => esc_html__( 'Bottom Right', 'elementor-pro' ),
					'bottomleft' => esc_html__( 'Bottom Left', 'elementor-pro' ),
					'inline' => esc_html__( 'Inline', 'elementor-pro' ),
				],
				'description' => esc_html__( 'To view the validation badge, switch to preview mode', 'elementor-pro' ),
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'value' => 'recaptcha_v3',
						],
					],
				],
			]
		);

		$repeater->add_control(
			'css_classes',
			[
				'label' => esc_html__( 'CSS Classes', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'default' => '',
				'title' => esc_html__( 'Add your custom class WITHOUT the dot. e.g: my-class', 'elementor-pro' ),
			]
		);

		$repeater->end_controls_tab();

		$repeater->start_controls_tab(
			'form_fields_advanced_tab',
			[
				'label' => esc_html__( 'Advanced', 'elementor-pro' ),
				'condition' => [
					'field_type!' => 'html',
				],
			]
		);

		$repeater->add_control(
			'field_value',
			[
				'label' => esc_html__( 'Default Value', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'dynamic' => [
					'active' => true,
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'field_type',
							'operator' => 'in',
							'value' => [
								'text',
								'email',
								'textarea',
								'url',
								'tel',
								'radio',
								'select',
								'number',
								'date',
								'time',
								'hidden',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'custom_id',
			[
				'label' => esc_html__( 'ID', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere in this form. This field allows `A-z 0-9` & underscore chars without spaces.', 'elementor-pro' ),
				'render_type' => 'none',
				'required' => true,
			]
		);

		$shortcode_template = '{{ view.container.settings.get( \'custom_id\' ) }}';
		$repeater->add_control(
			'shortcode',
			[
				'label' => esc_html__( 'Shortcode', 'elementor-pro' ),
				'type' => Controls_Manager::RAW_HTML,
				'classes' => 'forms-field-shortcode',
				'raw' => '<input class="elementor-form-field-shortcode" value=\'[field id="' . $shortcode_template . '"]\' readonly />',
			]
		);

		$repeater->end_controls_tab();

		$repeater->end_controls_tabs();

		$this->start_controls_section(
			'section_form_fields',
			[
				'label' => esc_html__( 'Form Fields', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'form_name',
			[
				'label' => esc_html__( 'Form Name', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'New Form', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Form Name', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'form_fields',
			[
				'type' => Fields_Repeater::CONTROL_TYPE,
				'fields' => $repeater->get_controls(),
				'default' => [
					[
						'custom_id' => 'name',
						'field_type' => 'text',
						'field_label' => esc_html__( 'Name', 'elementor-pro' ),
						'placeholder' => esc_html__( 'Name', 'elementor-pro' ),
						'width' => '100',
					],
					[
						'custom_id' => 'email',
						'field_type' => 'email',
						'required' => 'true',
						'field_label' => esc_html__( 'Email', 'elementor-pro' ),
						'placeholder' => esc_html__( 'Email', 'elementor-pro' ),
						'width' => '100',
					],
					[
						'custom_id' => 'message',
						'field_type' => 'textarea',
						'field_label' => esc_html__( 'Message', 'elementor-pro' ),
						'placeholder' => esc_html__( 'Message', 'elementor-pro' ),
						'width' => '100',
					],
				],
				'title_field' => '{{{ field_label }}}',
			]
		);

		$this->add_control(
			'input_size',
			[
				'label' => esc_html__( 'Input Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'xs' => esc_html__( 'Extra Small', 'elementor-pro' ),
					'sm' => esc_html__( 'Small', 'elementor-pro' ),
					'md' => esc_html__( 'Medium', 'elementor-pro' ),
					'lg' => esc_html__( 'Large', 'elementor-pro' ),
					'xl' => esc_html__( 'Extra Large', 'elementor-pro' ),
				],
				'default' => 'sm',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'show_labels',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'return_value' => 'true',
				'default' => 'true',
				'separator' => 'before',
			]
		);

		$this->add_control(
			'mark_required',
			[
				'label' => esc_html__( 'Required Mark', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'Show', 'elementor-pro' ),
				'label_off' => esc_html__( 'Hide', 'elementor-pro' ),
				'default' => '',
				'condition' => [
					'show_labels!' => '',
				],
			]
		);

		$this->add_control(
			'label_position',
			[
				'label' => esc_html__( 'Label Position', 'elementor-pro' ),
				'type' => Controls_Manager::HIDDEN,
				'options' => [
					'above' => esc_html__( 'Above', 'elementor-pro' ),
					'inline' => esc_html__( 'Inline', 'elementor-pro' ),
				],
				'default' => 'above',
				'condition' => [
					'show_labels!' => '',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_buttons',
			[
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'sm',
				'options' => self::get_button_sizes(),
			]
		);

		$this->add_responsive_control(
			'button_width',
			[
				'label' => esc_html__( 'Column Width', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'' => esc_html__( 'Default', 'elementor-pro' ),
					'100' => '100%',
					'80' => '80%',
					'75' => '75%',
					'70' => '70%',
					'66' => '66%',
					'60' => '60%',
					'50' => '50%',
					'40' => '40%',
					'33' => '33%',
					'30' => '30%',
					'25' => '25%',
					'20' => '20%',
				],
				'default' => '100',
				'frontend_available' => true,
			]
		);

		$this->add_responsive_control(
			'button_align',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'start' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'end' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
					'stretch' => [
						'title' => esc_html__( 'Justified', 'elementor-pro' ),
						'icon' => 'eicon-text-align-justify',
					],
				],
				'default' => 'stretch',
				'prefix_class' => 'elementor%s-button-align-',
			]
		);

		$this->add_control(
			'heading_steps_buttons',
			[
				'label' => esc_html__( 'Step Buttons', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'step_next_label',
			[
				'label' => esc_html__( 'Next', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'frontend_available' => true,
				'render_type' => 'none',
				'default' => esc_html__( 'Next', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Next', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'step_previous_label',
			[
				'label' => esc_html__( 'Previous', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'frontend_available' => true,
				'render_type' => 'none',
				'default' => esc_html__( 'Previous', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Previous', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_submit_button',
			[
				'label' => esc_html__( 'Submit Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'button_text',
			[
				'label' => esc_html__( 'Submit', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Send', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Send', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'selected_button_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'skin' => 'inline',
				'label_block' => false,
			]
		);

		$this->add_control(
			'button_icon_align',
			[
				'label' => esc_html__( 'Icon Position', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'left',
				'options' => [
					'left' => esc_html__( 'Before', 'elementor-pro' ),
					'right' => esc_html__( 'After', 'elementor-pro' ),
				],
				'condition' => [
					'selected_button_icon[value]!' => '',
				],
			]
		);

		$this->add_control(
			'button_icon_indent',
			[
				'label' => esc_html__( 'Icon Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'max' => 50,
					],
				],
				'condition' => [
					'selected_button_icon[value]!' => '',
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-button .elementor-align-icon-right' => 'margin-left: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-button .elementor-align-icon-left' => 'margin-right: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'button_css_id',
			[
				'label' => esc_html__( 'Button ID', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'title' => esc_html__( 'Add your custom id WITHOUT the Pound key. e.g: my-id', 'elementor-pro' ),
				'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'elementor-pro' ),
				'separator' => 'before',

			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_integration',
			[
				'label' => esc_html__( 'Actions After Submit', 'elementor-pro' ),
			]
		);

		$actions = Module::instance()->actions_registrar->get();

		$actions_options = [];

		foreach ( $actions as $action ) {
			$actions_options[ $action->get_name() ] = $action->get_label();
		}

		$this->add_control(
			'submit_actions',
			[
				'label' => esc_html__( 'Add Action', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'options' => $actions_options,
				'render_type' => 'none',
				'label_block' => true,
				'default' => apply_filters( 'elementor_pro/forms/default_submit_actions', [
					'email',
				] ),
				'description' => esc_html__( 'Add actions that will be performed after a visitor submits the form (e.g. send an email notification). Choosing an action will add its setting below.', 'elementor-pro' ),
			]
		);

		$this->end_controls_section();

		foreach ( $actions as $action ) {
			$action->register_settings_section( $this );
		}

		// Steps settings.
		$this->start_controls_section(
			'section_steps_settings',
			[
				'label' => esc_html__( 'Steps Settings', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'step_type',
			[
				'label' => esc_html__( 'Type', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'frontend_available' => true,
				'render_type' => 'none',
				'options' => [
					'none' => 'None',
					'text' => 'Text',
					'icon' => 'Icon',
					'number' => 'Number',
					'progress_bar' => 'Progress Bar',
					'number_text' => 'Number & Text',
					'icon_text' => 'Icon & Text',
				],
				'default' => 'number_text',
			]
		);

		$this->add_control(
			'step_icon_shape',
			[
				'label' => esc_html__( 'Shape', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'frontend_available' => true,
				'render_type' => 'none',
				'options' => [
					'circle' => 'Circle',
					'square' => 'Square',
					'rounded' => 'Rounded',
					'none' => 'None',
				],
				'default' => 'circle',
				'conditions' => [
					'terms' => [
						[
							'name' => 'step_type',
							'operator' => '!in',
							'value' => [
								'progress_bar',
								'text',
							],
						],
					],
				],
			]
		);

		$repeater->add_control(
			'display_percentage',
			[
				'label' => esc_html__( 'Display Percentage', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'frontend_available' => true,
				'render_type' => 'none',
				'return_value' => 'true',
				'default' => '',
				'condition' => [
					'step_type' => 'progress_bar',
				],
			]
		);

		// End of steps settings.
		$this->end_controls_section();

		$this->start_controls_section(
			'section_form_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_CONTENT,
			]
		);

		$this->add_control(
			'form_id',
			[
				'label' => esc_html__( 'Form ID', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => 'new_form_id',
				'description' => esc_html__( 'Please make sure the ID is unique and not used elsewhere on the page this form is displayed. This field allows `A-z 0-9` & underscore chars without spaces.', 'elementor-pro' ),
				'separator' => 'after',
			]
		);

		$this->add_control(
			'custom_messages',
			[
				'label' => esc_html__( 'Custom Messages', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => '',
				'separator' => 'before',
				'render_type' => 'none',
			]
		);

		$default_messages = Ajax_Handler::get_default_messages();

		$this->add_control(
			'success_message',
			[
				'label' => esc_html__( 'Success Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $default_messages[ Ajax_Handler::SUCCESS ],
				'placeholder' => $default_messages[ Ajax_Handler::SUCCESS ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
				'render_type' => 'none',
			]
		);

		$this->add_control(
			'error_message',
			[
				'label' => esc_html__( 'Error Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $default_messages[ Ajax_Handler::ERROR ],
				'placeholder' => $default_messages[ Ajax_Handler::ERROR ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
				'render_type' => 'none',
			]
		);

		$this->add_control(
			'required_field_message',
			[
				'label' => esc_html__( 'Required Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $default_messages[ Ajax_Handler::FIELD_REQUIRED ],
				'placeholder' => $default_messages[ Ajax_Handler::FIELD_REQUIRED ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
				'render_type' => 'none',
			]
		);

		$this->add_control(
			'invalid_message',
			[
				'label' => esc_html__( 'Invalid Message', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => $default_messages[ Ajax_Handler::INVALID_FORM ],
				'placeholder' => $default_messages[ Ajax_Handler::INVALID_FORM ],
				'label_block' => true,
				'condition' => [
					'custom_messages!' => '',
				],
				'render_type' => 'none',
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_form_style',
			[
				'label' => esc_html__( 'Form', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'column_gap',
			[
				'label' => esc_html__( 'Columns Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group' => 'padding-right: calc( {{SIZE}}{{UNIT}}/2 ); padding-left: calc( {{SIZE}}{{UNIT}}/2 );',
					'{{WRAPPER}} .elementor-form-fields-wrapper' => 'margin-left: calc( -{{SIZE}}{{UNIT}}/2 ); margin-right: calc( -{{SIZE}}{{UNIT}}/2 );',
				],
			]
		);

		$this->add_control(
			'row_gap',
			[
				'label' => esc_html__( 'Rows Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group' => 'margin-bottom: {{SIZE}}{{UNIT}};',
					'{{WRAPPER}} .elementor-field-group.recaptcha_v3-bottomleft, {{WRAPPER}} .elementor-field-group.recaptcha_v3-bottomright' => 'margin-bottom: 0;',
					'{{WRAPPER}} .elementor-form-fields-wrapper' => 'margin-bottom: -{{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'heading_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'label_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'body.rtl {{WRAPPER}} .elementor-labels-inline .elementor-field-group > label' => 'padding-left: {{SIZE}}{{UNIT}};',
					// for the label position = inline option
					'body:not(.rtl) {{WRAPPER}} .elementor-labels-inline .elementor-field-group > label' => 'padding-right: {{SIZE}}{{UNIT}};',
					// for the label position = inline option
					'body {{WRAPPER}} .elementor-labels-above .elementor-field-group > label' => 'padding-bottom: {{SIZE}}{{UNIT}};',
					// for the label position = above option
				],
			]
		);

		$this->add_control(
			'label_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group > label, {{WRAPPER}} .elementor-field-subgroup label' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_control(
			'mark_required_color',
			[
				'label' => esc_html__( 'Mark Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .elementor-mark-required .elementor-field-label:after' => 'color: {{COLOR}};',
				],
				'condition' => [
					'mark_required' => 'yes',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'label_typography',
				'selector' => '{{WRAPPER}} .elementor-field-group > label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'heading_html',
			[
				'label' => esc_html__( 'HTML Field', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'html_spacing',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 60,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-type-html' => 'padding-bottom: {{SIZE}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'html_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-type-html' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'html_typography',
				'selector' => '{{WRAPPER}} .elementor-field-type-html',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_field_style',
			[
				'label' => esc_html__( 'Field', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'field_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group .elementor-field' => 'color: {{VALUE}};',
				],
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'field_typography',
				'selector' => '{{WRAPPER}} .elementor-field-group .elementor-field, {{WRAPPER}} .elementor-field-subgroup label',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'field_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper)' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'background-color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'field_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper)' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper::before' => 'color: {{VALUE}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'field_border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'placeholder' => '1',
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper)' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->add_control(
			'field_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-field-group:not(.elementor-field-type-upload) .elementor-field:not(.elementor-select-wrapper)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
					'{{WRAPPER}} .elementor-field-group .elementor-select-wrapper select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_button_style',
			[
				'label' => esc_html__( 'Buttons', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .elementor-button',
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(), [
				'name' => 'button_border',
				'selector' => '{{WRAPPER}} .elementor-button',
				'exclude' => [
					'color',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_next_submit_button',
			[
				'label' => esc_html__( 'Next & Submit Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"] svg *' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'heading_previous_button',
			[
				'label' => esc_html__( 'Previous Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'previous_button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'previous_button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'previous_button_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'button_border_border!' => '',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'heading_next_submit_button_hover',
			[
				'label' => esc_html__( 'Next & Submit Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'button_background_hover_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'background-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]:hover svg *' => 'fill: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'button_hover_border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-next:hover' => 'border-color: {{VALUE}};',
					'{{WRAPPER}} .elementor-button[type="submit"]:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'heading_previous_button_hover',
			[
				'label' => esc_html__( 'Previous Button', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
			]
		);

		$this->add_control(
			'previous_button_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous:hover' => 'background-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'previous_button_text_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous:hover' => 'color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'previous_button_border_color_hover',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}} .e-form__buttons__wrapper__button-previous:hover' => 'border-color: {{VALUE}};',
				],
				'condition' => [
					'button_border_border!' => '',
				],
			]
		);

		$this->add_control(
			'button_hover_animation',
			[
				'label' => esc_html__( 'Animation', 'elementor-pro' ),
				'type' => Controls_Manager::HOVER_ANIMATION,
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
				'separator' => 'before',
			]
		);

		$this->add_control(
			'button_text_padding',
			[
				'label' => esc_html__( 'Text Padding', 'elementor-pro' ),
				'type' => Controls_Manager::DIMENSIONS,
				'size_units' => [ 'px', 'em', '%' ],
				'selectors' => [
					'{{WRAPPER}} .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_messages_style',
			[
				'label' => esc_html__( 'Messages', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'message_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
				'selector' => '{{WRAPPER}} .elementor-message',
			]
		);

		$this->add_control(
			'success_message_color',
			[
				'label' => esc_html__( 'Success Message Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-message.elementor-message-success' => 'color: {{COLOR}};',
				],
			]
		);

		$this->add_control(
			'error_message_color',
			[
				'label' => esc_html__( 'Error Message Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-message.elementor-message-danger' => 'color: {{COLOR}};',
				],
			]
		);

		$this->add_control(
			'inline_message_color',
			[
				'label' => esc_html__( 'Inline Message Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-message.elementor-help-inline' => 'color: {{COLOR}};',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_steps_style',
			[
				'label' => esc_html__( 'Steps', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'steps_typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .e-form__indicators__indicator, {{WRAPPER}} .e-form__indicators__indicator__label',
				'conditions' => [
					'terms' => [
						[
							'name' => 'step_type',
							'operator' => '!in',
							'value' => [
								'icon',
								'progress_bar',
							],
						],
					],
				],
			]
		);

		$this->add_responsive_control(
			'steps_gap',
			[
				'label' => esc_html__( 'Spacing', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 20,
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicators-spacing: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'steps_icon_size',
			[
				'label' => esc_html__( 'Icon Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 15,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px' ],
				'conditions' => [
					'terms' => [
						[
							'name' => 'step_type',
							'operator' => 'in',
							'value' => [
								'icon',
								'icon_text',
							],
						],
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-icon-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'steps_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 30,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px' ],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-padding: {{SIZE}}{{UNIT}}',
				],
				'conditions' => [
					'terms' => [
						[
							'name' => 'step_type',
							'operator' => '!in',
							'value' => [
								'text',
								'progress_bar',
							],
						],
					],
				],
			]
		);

		$this->start_controls_tabs( 'steps_state', [
			'condition' => [
				'step_type!' => 'progress_bar',
			],
		] );

		$this->start_controls_tab(
			'tab_steps_state_inactive',
			[
				'label' => esc_html__( 'Inactive', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'step_inactive_primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-inactive-primary-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'step_inactive_secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-inactive-secondary-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_steps_state_active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'step_active_primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-active-primary-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'step_active_secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-active-secondary-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_steps_state_completed',
			[
				'label' => esc_html__( 'Completed', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'step_completed_primary_color',
			[
				'label' => esc_html__( 'Primary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-completed-primary-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'step_completed_secondary_color',
			[
				'label' => esc_html__( 'Secondary Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '#ffffff',
				'condition' => [
					'step_icon_shape!' => 'none',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-completed-secondary-color: {{VALUE}};',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'step_divider_width',
			[
				'label' => esc_html__( 'Divider Width', 'elementor-pro' ),
				'separator' => 'before',
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 1,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px' ],
				'condition' => [
					'step_type!' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-divider-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'step_divider_gap',
			[
				'label' => esc_html__( 'Divider Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 10,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px', '%' ],
				'condition' => [
					'step_type!' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-divider-gap: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'step_progress_bar_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'condition' => [
					'step_type' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-progress-color: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'step_progress_bar_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => [
					'step_type' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-progress-background-color: {{VALUE}};',
				],
			]
		);

		$this->add_responsive_control(
			'step_progress_bar_height',
			[
				'label' => esc_html__( 'Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 20,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px' ],
				'condition' => [
					'step_type' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-progress-height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'step_progress_bar_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 0,
					'unit' => 'px',
				],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 100,
					],
				],
				'size_units' => [ 'px' ],
				'condition' => [
					'step_type' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-progress-border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'step_progress_bar_percentage_heading',
			[
				'label' => esc_html__( 'Percentage', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
				'condition' => [
					'step_type' => 'progress_bar',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'step_progress_bar_percentage__typography',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_ACCENT,
				],
				'selector' => '{{WRAPPER}} .e-form__indicators__indicator__progress__meter',
				'condition' => [
					'step_type' => 'progress_bar',
				],
			]
		);

		$this->add_control(
			'step_progress_bar_percentage_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'condition' => [
					'step_type' => 'progress_bar',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--e-form-steps-indicator-progress-meter-color: {{VALUE}};',
				],
			]
		);

		// End of steps style.
		$this->end_controls_section();

	}

	private function render_icon_with_fallback( $settings ) {
		$migrated = isset( $settings['__fa4_migrated']['selected_button_icon'] );
		$is_new = empty( $settings['button_icon'] ) && Icons_Manager::is_migration_allowed();

		if ( $is_new || $migrated ) {
			Icons_Manager::render_icon( $settings['selected_button_icon'], [ 'aria-hidden' => 'true' ] );
		} else {
			?><i class="<?php echo esc_attr( $settings['button_icon'] ); ?>" aria-hidden="true"></i><?php
		}
	}

	protected function render() {
		$instance = $this->get_settings_for_display();

		if ( ! Plugin::elementor()->editor->is_edit_mode() ) {
			/**
			 * Elementor form Pre render.
			 *
			 * Fires before the from is rendered in the frontend
			 *
			 * @since 2.4.0
			 *
			 * @param array $instance current form settings
			 * @param Form $this current form widget instance
			 */
			do_action( 'elementor-pro/forms/pre_render', $instance, $this );
		}

		$this->add_render_attribute(
			[
				'wrapper' => [
					'class' => [
						'elementor-form-fields-wrapper',
						'elementor-labels-' . $instance['label_position'],
					],
				],
				'submit-group' => [
					'class' => [
						'elementor-field-group',
						'elementor-column',
						'elementor-field-type-submit',
					],
				],
				'button' => [
					'class' => 'elementor-button',
				],
				'icon-align' => [
					'class' => [
						empty( $instance['button_icon_align'] ) ? '' :
							'elementor-align-icon-' . $instance['button_icon_align'],
						'elementor-button-icon',
					],
				],
			]
		);

		if ( empty( $instance['button_width'] ) ) {
			$instance['button_width'] = '100';
		}

		$this->add_render_attribute( 'submit-group', 'class', 'elementor-col-' . $instance['button_width'] . ' e-form__buttons' );

		if ( ! empty( $instance['button_width_tablet'] ) ) {
			$this->add_render_attribute( 'submit-group', 'class', 'elementor-md-' . $instance['button_width_tablet'] );
		}

		if ( ! empty( $instance['button_width_mobile'] ) ) {
			$this->add_render_attribute( 'submit-group', 'class', 'elementor-sm-' . $instance['button_width_mobile'] );
		}

		if ( ! empty( $instance['button_size'] ) ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-size-' . $instance['button_size'] );
		}

		if ( ! empty( $instance['button_type'] ) ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-button-' . $instance['button_type'] );
		}

		if ( $instance['button_hover_animation'] ) {
			$this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $instance['button_hover_animation'] );
		}

		if ( ! empty( $instance['form_id'] ) ) {
			$this->add_render_attribute( 'form', 'id', $instance['form_id'] );
		}

		if ( ! empty( $instance['form_name'] ) ) {
			$this->add_render_attribute( 'form', 'name', $instance['form_name'] );
		}

		if ( ! empty( $instance['button_css_id'] ) ) {
			$this->add_render_attribute( 'button', 'id', $instance['button_css_id'] );
		}

		$referer_title = trim( wp_title( '', false ) );

		if ( ! $referer_title && is_home() ) {
			$referer_title = get_option( 'blogname' );
		}

		?>
		<form class="elementor-form" method="post" <?php $this->print_render_attribute_string( 'form' ); ?>>
			<input type="hidden" name="post_id" value="<?php // PHPCS - the method Utils::get_current_post_id is safe.
				echo Utils::get_current_post_id(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>"/>
			<input type="hidden" name="form_id" value="<?php echo esc_attr( $this->get_id() ); ?>"/>
			<input type="hidden" name="referer_title" value="<?php echo esc_attr( $referer_title ); ?>" />

			<?php if ( is_singular() ) {
				// `queried_id` may be different from `post_id` on Single theme builder templates.
				?>
				<input type="hidden" name="queried_id" value="<?php echo get_the_ID(); ?>"/>
			<?php } ?>

			<div <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
				<?php
				foreach ( $instance['form_fields'] as $item_index => $item ) :
					$item['input_size'] = $instance['input_size'];
					$this->form_fields_render_attributes( $item_index, $instance, $item );

					$field_type = $item['field_type'];

					/**
					 * Render form field.
					 *
					 * Filters the field rendered by Elementor Forms.
					 *
					 * @since 1.0.0
					 *
					 * @param array $item       The field value.
					 * @param int   $item_index The field index.
					 * @param Form  $this       An instance of the form.
					 */
					$item = apply_filters( 'elementor_pro/forms/render/item', $item, $item_index, $this );

					/**
					 * Render form field.
					 *
					 * Filters the field rendered by Elementor Forms.
					 *
					 * The dynamic portion of the hook name, `$field_type`, refers to the field type.
					 *
					 * @since 1.0.0
					 *
					 * @param array $item       The field value.
					 * @param int   $item_index The field index.
					 * @param Form  $this       An instance of the form.
					 */
					$item = apply_filters( "elementor_pro/forms/render/item/{$field_type}", $item, $item_index, $this );

					$print_label = ! in_array( $item['field_type'], [ 'hidden', 'html', 'step' ], true );
					?>
				<div <?php $this->print_render_attribute_string( 'field-group' . $item_index ); ?>>
					<?php
					if ( $print_label && $item['field_label'] ) {
						?>
							<label <?php $this->print_render_attribute_string( 'label' . $item_index ); ?>>
								<?php // PHPCS - the variable $item['field_label'] is safe.
								echo $item['field_label']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
							</label>
						<?php
					}

					switch ( $item['field_type'] ) :
						case 'html':
							echo do_shortcode( $item['field_html'] );
							break;
						case 'textarea':
							// PHPCS - the method make_textarea_field is safe.
							echo $this->make_textarea_field( $item, $item_index ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							break;

						case 'select':
							// PHPCS - the method make_select_field is safe.
							echo $this->make_select_field( $item, $item_index ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							break;

						case 'radio':
						case 'checkbox':
							// PHPCS - the method make_radio_checkbox_field is safe.
							echo $this->make_radio_checkbox_field( $item, $item_index, $item['field_type'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
							break;
						case 'text':
						case 'email':
						case 'url':
						case 'password':
						case 'hidden':
						case 'search':
							$this->add_render_attribute( 'input' . $item_index, 'class', 'elementor-field-textual' );
							?>
								<input size="1" <?php $this->print_render_attribute_string( 'input' . $item_index ); ?>>
							<?php
							break;
						default:
							$field_type = $item['field_type'];

							/**
							 * Elementor form field render.
							 *
							 * Fires when a field is rendered.
							 *
							 * The dynamic portion of the hook name, `$field_type`, refers to the field type.
							 *
							 * @since 1.0.0
							 *
							 * @param array $item       The field value.
							 * @param int   $item_index The field index.
							 * @param Form  $this       An instance of the form.
							 */
							do_action( "elementor_pro/forms/render_field/{$field_type}", $item, $item_index, $this );
					endswitch;
					?>
				</div>
				<?php endforeach; ?>
				<div <?php $this->print_render_attribute_string( 'submit-group' ); ?>>
					<button type="submit" <?php $this->print_render_attribute_string( 'button' ); ?>>
						<span <?php $this->print_render_attribute_string( 'content-wrapper' ); ?>>
							<?php if ( ! empty( $instance['button_icon'] ) || ! empty( $instance['selected_button_icon'] ) ) : ?>
								<span <?php $this->print_render_attribute_string( 'icon-align' ); ?>>
									<?php $this->render_icon_with_fallback( $instance ); ?>
									<?php if ( empty( $instance['button_text'] ) ) : ?>
										<span class="elementor-screen-only"><?php echo esc_html__( 'Submit', 'elementor-pro' ); ?></span>
									<?php endif; ?>
								</span>
							<?php endif; ?>
							<?php if ( ! empty( $instance['button_text'] ) ) : ?>
								<span class="elementor-button-text"><?php $this->print_unescaped_setting( 'button_text' ); ?></span>
							<?php endif; ?>
						</span>
					</button>
				</div>
			</div>
		</form>
		<?php
	}

	/**
	 * Render Form widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<form class="elementor-form" id="{{settings.form_id}}" name="{{settings.form_name}}">
			<div class="elementor-form-fields-wrapper elementor-labels-{{settings.label_position}}">
				<#
					for ( var i in settings.form_fields ) {
						var item = settings.form_fields[ i ];
						item = elementor.hooks.applyFilters( 'elementor_pro/forms/content_template/item', item, i, settings );

						var options = item.field_options ? item.field_options.split( '\n' ) : [],
							itemClasses = _.escape( item.css_classes ),
							labelVisibility = '',
							placeholder = '',
							required = '',
							inputField = '',
							multiple = '',
							fieldGroupClasses = 'elementor-field-group elementor-column elementor-field-type-' + item.field_type,
							printLabel = settings.show_labels && ! [ 'hidden', 'html', 'step' ].includes( item.field_type );

						fieldGroupClasses += ' elementor-col-' + ( ( '' !== item.width ) ? item.width : '100' );

						if ( item.width_tablet ) {
							fieldGroupClasses += ' elementor-md-' + item.width_tablet;
						}

						if ( item.width_mobile ) {
							fieldGroupClasses += ' elementor-sm-' + item.width_mobile;
						}

						if ( item.required ) {
							required = 'required';
							fieldGroupClasses += ' elementor-field-required';

							if ( settings.mark_required ) {
								fieldGroupClasses += ' elementor-mark-required';
							}
						}

						if ( item.placeholder ) {
							placeholder = 'placeholder="' + _.escape( item.placeholder ) + '"';
						}

						if ( item.allow_multiple ) {
							multiple = ' multiple';
							fieldGroupClasses += ' elementor-field-type-' + item.field_type + '-multiple';
						}

						switch ( item.field_type ) {
							case 'step':
								inputField = `<div
									class="e-field-step elementor-hidden"
									data-label="${ item.field_label }"
									data-previousButton="${ item.previous_button || '' }"
									data-nextButton="${ item.next_button || '' }"
									data-iconUrl="${ 'svg' === item.selected_icon.library && item.selected_icon.value ? item.selected_icon.value.url : '' }"
									data-iconLibrary="${ 'svg' !== item.selected_icon.library && item.selected_icon.value ? item.selected_icon.value : '' }"></div>`;
								break;
							case 'html':
								inputField = item.field_html;
								break;

							case 'textarea':
								inputField = '<textarea class="elementor-field elementor-field-textual elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" rows="' + item.rows + '" ' + required + ' ' + placeholder + '>' + item.field_value + '</textarea>';
								break;

							case 'select':
								if ( options ) {
									var size = '';
									if ( item.allow_multiple && item.select_size ) {
										size = ' size="' + item.select_size + '"';
									}
									inputField = '<div class="elementor-field elementor-select-wrapper ' + itemClasses + '">';
									inputField += '<select class="elementor-field-textual elementor-size-' + settings.input_size + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + multiple + size + ' >';
									for ( var x in options ) {
										var option_value = options[ x ];
										var option_label = options[ x ];
										var option_id = 'form_field_option' + i + x;

										if ( options[ x ].indexOf( '|' ) > -1 ) {
											var label_value = options[ x ].split( '|' );
											option_label = label_value[0];
											option_value = label_value[1];
										}

										view.addRenderAttribute( option_id, 'value', option_value );
										if ( item.field_value.split( ',' ) .indexOf( option_value ) ) {
											view.addRenderAttribute( option_id, 'selected', 'selected' );
										}
										inputField += '<option ' + view.getRenderAttributeString( option_id ) + '>' + option_label + '</option>';
									}
									inputField += '</select></div>';
								}
								break;

							case 'radio':
							case 'checkbox':
								if ( options ) {
									var multiple = '';

									if ( 'checkbox' === item.field_type && options.length > 1 ) {
										multiple = '[]';
									}

									inputField = '<div class="elementor-field-subgroup ' + itemClasses + ' ' + item.inline_list + '">';

									for ( var x in options ) {
										var option_value = options[ x ];
										var option_label = options[ x ];
										var option_id = 'form_field_' + item.field_type + i + x;
										if ( options[x].indexOf( '|' ) > -1 ) {
											var label_value = options[x].split( '|' );
											option_label = label_value[0];
											option_value = label_value[1];
										}

										view.addRenderAttribute( option_id, {
											value: option_value,
											type: item.field_type,
											id: 'form_field_' + i + '-' + x,
											name: 'form_field_' + i + multiple
										} );

										if ( option_value ===  item.field_value ) {
											view.addRenderAttribute( option_id, 'checked', 'checked' );
										}

										inputField += '<span class="elementor-field-option"><input ' + view.getRenderAttributeString( option_id ) + ' ' + required + '> ';
										inputField += '<label for="form_field_' + i + '-' + x + '">' + option_label + '</label></span>';

									}

									inputField += '</div>';
								}
								break;

							case 'text':
							case 'email':
							case 'url':
							case 'password':
							case 'number':
							case 'search':
								itemClasses = 'elementor-field-textual ' + itemClasses;
								inputField = '<input size="1" type="' + item.field_type + '" value="' + item.field_value + '" class="elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' ' + placeholder + ' >';
								break;
							default:
								inputField = elementor.hooks.applyFilters( 'elementor_pro/forms/content_template/field/' + item.field_type, '', item, i, settings );
						}

						if ( inputField ) {
							#>
							<div class="{{ fieldGroupClasses }}">

								<# if ( printLabel && item.field_label ) { #>
									<label class="elementor-field-label" for="form_field_{{ i }}" {{{ labelVisibility }}}>{{{ item.field_label }}}</label>
								<# } #>

								{{{ inputField }}}
							</div>
							<#
						}
					}


					var buttonClasses = 'elementor-field-group elementor-column elementor-field-type-submit e-form__buttons';

					buttonClasses += ' elementor-col-' + ( ( '' !== settings.button_width ) ? settings.button_width : '100' );

					if ( settings.button_width_tablet ) {
						buttonClasses += ' elementor-md-' + settings.button_width_tablet;
					}

					if ( settings.button_width_mobile ) {
						buttonClasses += ' elementor-sm-' + settings.button_width_mobile;
					}

					var iconHTML = elementor.helpers.renderIcon( view, settings.selected_button_icon, { 'aria-hidden': true }, 'i' , 'object' ),
						migrated = elementor.helpers.isIconMigrated( settings, 'selected_button_icon' );

					#>

					<div class="{{ buttonClasses }}">
						<button id="{{ settings.button_css_id }}" type="submit" class="elementor-button elementor-size-{{ settings.button_size }} elementor-button-{{ settings.button_type }} elementor-animation-{{ settings.button_hover_animation }}">
							<span>
								<# if ( settings.button_icon || settings.selected_button_icon ) { #>
									<span class="elementor-button-icon elementor-align-icon-{{ settings.button_icon_align }}">
										<# if ( iconHTML && iconHTML.rendered && ( ! settings.button_icon || migrated ) ) { #>
											{{{ iconHTML.value }}}
										<# } else { #>
											<i class="{{ settings.button_icon }}" aria-hidden="true"></i>
										<# } #>
										<span class="elementor-screen-only"><?php echo esc_html__( 'Submit', 'elementor-pro' ); ?></span>
									</span>
								<# } #>

								<# if ( settings.button_text ) { #>
									<span class="elementor-button-text">{{{ settings.button_text }}}</span>
								<# } #>
							</span>
						</button>
					</div>
			</div>
		</form>
		<?php
	}

	public function get_group_name() {
		return 'forms';
	}
}
PK!��@@*modules/forms/controls/fields-repeater.phpnu�[���<?php

namespace ElementorPro\Modules\Forms\Controls;

use Elementor\Control_Repeater;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Fields_Repeater extends Control_Repeater {

	const CONTROL_TYPE = 'form-fields-repeater';

	public function get_type() {
		return self::CONTROL_TYPE;
	}
}
PK!vf��hh%modules/forms/controls/fields-map.phpnu�[���<?php
namespace ElementorPro\Modules\Forms\Controls;

use Elementor\Control_Repeater;
use Elementor\Controls_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Class Fields_Map
 * @package ElementorPro\Modules\Forms\Controls
 *
 * each item needs the following properties:
 *   remote_id,
 *   remote_label
 *   remote_type
 *   remote_required
 *   local_id
 */
class Fields_Map extends Control_Repeater {

	const CONTROL_TYPE = 'fields_map';

	public function get_type() {
		return self::CONTROL_TYPE;
	}

	protected function get_default_settings() {
		return array_merge( parent::get_default_settings(), [
			'render_type' => 'none',
			'fields' => [
				[
					'name' => 'remote_id',
					'type' => Controls_Manager::HIDDEN,
				],
				[
					'name' => 'local_id',
					'type' => Controls_Manager::SELECT,
				],
			],
		] );
	}
}
PK!+���QGQG7modules/table-of-contents/widgets/table-of-contents.phpnu�[���<?php
namespace ElementorPro\Modules\TableOfContents\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Responsive\Responsive;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
use Elementor\Icons_Manager;
use Elementor\Utils;
use ElementorPro\Base\Base_Widget;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Table_Of_Contents extends Base_Widget {

	public function get_name() {
		return 'table-of-contents';
	}

	public function get_title() {
		return esc_html__( 'Table of Contents', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-table-of-contents';
	}

	public function get_categories() {
		return [ 'pro-elements', 'theme-elements-single' ];
	}

	public function get_keywords() {
		return [ 'toc' ];
	}

	/**
	 * Get Frontend Settings
	 *
	 * In the TOC widget, this implementation is used to pass a pre-rendered version of the icon to the front end,
	 * which is required in case the FontAwesome SVG experiment is active.
	 *
	 * @since 3.4.0
	 *
	 * @return array
	 */
	public function get_frontend_settings() {
		$frontend_settings = parent::get_frontend_settings();

		if ( Plugin::elementor()->experiments->is_feature_active( 'e_font_icon_svg' ) && ! empty( $frontend_settings['icon']['value'] ) ) {
			$frontend_settings['icon']['rendered_tag'] = Icons_Manager::render_font_icon( $frontend_settings['icon'] );
		}

		return $frontend_settings;
	}

	protected function register_controls() {
		$this->start_controls_section(
			'table_of_contents',
			[
				'label' => esc_html__( 'Table of Contents', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'title',
			[
				'label' => esc_html__( 'Title', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'label_block' => true,
				'default' => esc_html__( 'Table of Contents', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'html_tag',
			[
				'label' => esc_html__( 'HTML Tag', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
					'div' => 'div',
				],
				'default' => 'h4',
			]
		);

		$this->start_controls_tabs( 'include_exclude_tags', [ 'separator' => 'before' ] );

		$this->start_controls_tab( 'include',
			[
				'label' => esc_html__( 'Include', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'headings_by_tags',
			[
				'label' => esc_html__( 'Anchors By Tags', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT2,
				'multiple' => true,
				'default' => [ 'h2', 'h3', 'h4', 'h5', 'h6' ],
				'options' => [
					'h1' => 'H1',
					'h2' => 'H2',
					'h3' => 'H3',
					'h4' => 'H4',
					'h5' => 'H5',
					'h6' => 'H6',
				],
				'label_block' => true,
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'container',
			[
				'label' => esc_html__( 'Container', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'label_block' => true,
				'description' => esc_html__( 'This control confines the Table of Contents to heading elements under a specific container', 'elementor-pro' ),
				'frontend_available' => true,
			]
		);

		$this->end_controls_tab(); // include

		$this->start_controls_tab( 'exclude',
			[
				'label' => esc_html__( 'Exclude', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'exclude_headings_by_selector',
			[
				'label' => esc_html__( 'Anchors By Selector', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'description' => esc_html__( 'CSS selectors, in a comma-separated list', 'elementor-pro' ),
				'default' => [],
				'label_block' => true,
				'frontend_available' => true,
			]
		);

		$this->end_controls_tab(); // exclude

		$this->end_controls_tabs(); // include_exclude_tags

		$this->add_control(
			'marker_view',
			[
				'label' => esc_html__( 'Marker View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'numbers',
				'options' => [
					'numbers' => esc_html__( 'Numbers', 'elementor-pro' ),
					'bullets' => esc_html__( 'Bullets', 'elementor-pro' ),
				],
				'separator' => 'before',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'default' => [
					'value' => 'fas fa-circle',
					'library' => 'fa-solid',
				],
				'recommended' => [
					'fa-solid' => [
						'circle',
						'dot-circle',
						'square-full',
					],
					'fa-regular' => [
						'circle',
						'dot-circle',
						'square-full',
					],
				],
				'condition' => [
					'marker_view' => 'bullets',
				],
				'skin' => 'inline',
				'label_block' => false,
				'exclude_inline_options' => [ 'svg' ],
				'frontend_available' => true,
			]
		);

		$this->end_controls_section(); // table_of_contents

		$this->start_controls_section(
			'additional_options',
			[
				'label' => esc_html__( 'Additional Options', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'word_wrap',
			[
				'label' => esc_html__( 'Word Wrap', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'return_value' => 'ellipsis',
				'prefix_class' => 'elementor-toc--content-',
			]
		);

		$this->add_control(
			'minimize_box',
			[
				'label' => esc_html__( 'Minimize Box', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'expand_icon',
			[
				'label' => esc_html__( 'Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'default' => [
					'value' => 'fas fa-chevron-down',
					'library' => 'fa-solid',
				],
				'recommended' => [
					'fa-solid' => [
						'chevron-down',
						'angle-down',
						'angle-double-down',
						'caret-down',
						'caret-square-down',
					],
					'fa-regular' => [
						'caret-square-down',
					],
				],
				'skin' => 'inline',
				'label_block' => false,
				'condition' => [
					'minimize_box' => 'yes',
				],
			]
		);

		$this->add_control(
			'collapse_icon',
			[
				'label' => esc_html__( 'Minimize Icon', 'elementor-pro' ),
				'type' => Controls_Manager::ICONS,
				'default' => [
					'value' => 'fas fa-chevron-up',
					'library' => 'fa-solid',
				],
				'recommended' => [
					'fa-solid' => [
						'chevron-up',
						'angle-up',
						'angle-double-up',
						'caret-up',
						'caret-square-up',
					],
					'fa-regular' => [
						'caret-square-up',
					],
				],
				'skin' => 'inline',
				'label_block' => false,
				'condition' => [
					'minimize_box' => 'yes',
				],
			]
		);

		// TODO: For Pro 3.6.0, convert this to the breakpoints utility method introduced in core 3.5.0.
		$breakpoints = Plugin::elementor()->breakpoints->get_active_breakpoints();

		$minimized_on_options = [];

		foreach ( $breakpoints as $breakpoint_key => $breakpoint ) {
			// This feature is meant for mobile screens.
			if ( 'widescreen' === $breakpoint_key || 'laptop' === $breakpoint_key ) {
				continue;
			}

			$minimized_on_options[ $breakpoint_key ] = sprintf(
				/* translators: 1: `<` character, 2: Breakpoint value. */
				esc_html__( '%1$s (%2$s %3$dpx)', 'elementor-pro' ),
				$breakpoint->get_label(),
				'<',
				$breakpoint->get_value()
			);
		}

		$this->add_control(
			'minimized_on',
			[
				'label' => esc_html__( 'Minimized On', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'default' => 'tablet',
				'options' => $minimized_on_options,
				'prefix_class' => 'elementor-toc--minimized-on-',
				'condition' => [
					'minimize_box!' => '',
				],
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'hierarchical_view',
			[
				'label' => esc_html__( 'Hierarchical View', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'frontend_available' => true,
			]
		);

		$this->add_control(
			'collapse_subitems',
			[
				'label' => esc_html__( 'Collapse Subitems', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'description' => esc_html__( 'The "Collapse" option should only be used if the Table of Contents is made sticky', 'elementor-pro' ),
				'condition' => [
					'hierarchical_view' => 'yes',
				],
				'frontend_available' => true,
			]
		);

		$this->end_controls_section(); // settings

		$this->start_controls_section(
			'box_style',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'default' => '',
				'selectors' => [
					'{{WRAPPER}}' => '--box-background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'border_color',
			[
				'label' => esc_html__( 'Border Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--box-border-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'loader_color',
			[
				'label' => esc_html__( 'Loader Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					// Not using CSS var for BC, when not configured: the loader should get the color from the body tag.
					'{{WRAPPER}} .elementor-toc__spinner' => 'color: {{VALUE}}; fill: {{VALUE}};',
				],
			]
		);

		$this->add_control(
			'border_width',
			[
				'label' => esc_html__( 'Border Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--box-border-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--box-border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--box-padding: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'min_height',
			[
				'label' => esc_html__( 'Min Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'vh' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--box-min-height: {{SIZE}}{{UNIT}}',
				],
				'frontend_available' => true,
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_shadow',
				'selector' => '{{WRAPPER}}',
			]
		);

		$this->end_controls_section(); // box_style

		$this->start_controls_section(
			'header_style',
			[
				'label' => esc_html__( 'Header', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'header_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--header-background-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'header_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--header-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'header_typography',
				'selector' => '{{WRAPPER}} .elementor-toc__header, {{WRAPPER}} .elementor-toc__header-title',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
				],
			]
		);

		$this->add_control(
			'toggle_button_color',
			[
				'label' => esc_html__( 'Icon Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'condition' => [
					'minimize_box' => 'yes',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--toggle-button-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'header_separator_width',
			[
				'label' => esc_html__( 'Separator Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}}' => '--separator-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section(); // header_style

		$this->start_controls_section(
			'list_style',
			[
				'label' => esc_html__( 'List', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'max_height',
			[
				'label' => esc_html__( 'Max Height', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'vh' ],
				'range' => [
					'px' => [
						'min' => 0,
						'max' => 1000,
					],
				],
				'selectors' => [
					'{{WRAPPER}}' => '--toc-body-max-height: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'list_typography',
				'selector' => '{{WRAPPER}} .elementor-toc__list-item',
				'global' => [
					'default' => Global_Typography::TYPOGRAPHY_TEXT,
				],
			]
		);

		$this->add_control(
			'list_indent',
			[
				'label' => esc_html__( 'Indent', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'default' => [
					'unit' => 'em',
				],
				'selectors' => [
					'{{WRAPPER}}' => '--nested-list-indent: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->start_controls_tabs( 'item_text_style' );

		$this->start_controls_tab( 'normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'item_text_color_normal',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'item_text_underline_normal',
			[
				'label' => esc_html__( 'Underline', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-decoration: underline',
				],
			]
		);

		$this->end_controls_tab(); // normal

		$this->start_controls_tab( 'hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'item_text_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_ACCENT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-hover-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'item_text_underline_hover',
			[
				'label' => esc_html__( 'Underline', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-hover-decoration: underline',
				],
			]
		);

		$this->end_controls_tab(); // hover

		$this->start_controls_tab( 'active',
			[
				'label' => esc_html__( 'Active', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'item_text_color_active',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-active-color: {{VALUE}}',
				],
			]
		);

		$this->add_control(
			'item_text_underline_active',
			[
				'label' => esc_html__( 'Underline', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'selectors' => [
					'{{WRAPPER}}' => '--item-text-active-decoration: underline',
				],
			]
		);

		$this->end_controls_tab(); // active

		$this->end_controls_tabs(); // item_text_style

		$this->add_control(
			'heading_marker',
			[
				'label' => esc_html__( 'Marker', 'elementor-pro' ),
				'type' => Controls_Manager::HEADING,
				'separator' => 'before',
			]
		);

		$this->add_control(
			'marker_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}}' => '--marker-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'marker_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'size_units' => [ 'px', 'em' ],
				'selectors' => [
					'{{WRAPPER}}' => '--marker-size: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section(); // list_style
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		$this->add_render_attribute( 'body', 'class', 'elementor-toc__body' );

		if ( $settings['collapse_subitems'] ) {
			$this->add_render_attribute( 'body', 'class', 'elementor-toc__list-items--collapsible' );
		}

		$html_tag = Utils::validate_html_tag( $settings['html_tag'] );
		?>
		<div class="elementor-toc__header">
			<<?php Utils::print_validated_html_tag( $html_tag ); ?> class="elementor-toc__header-title">
				<?php $this->print_unescaped_setting( 'title' ); ?>
			</<?php Utils::print_validated_html_tag( $html_tag ); ?>>
			<?php if ( 'yes' === $settings['minimize_box'] ) : ?>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--expand"><?php Icons_Manager::render_icon( $settings['expand_icon'] ); ?></div>
				<div class="elementor-toc__toggle-button elementor-toc__toggle-button--collapse"><?php Icons_Manager::render_icon( $settings['collapse_icon'] ); ?></div>
			<?php endif; ?>
		</div>
		<div <?php $this->print_render_attribute_string( 'body' ); ?>>
			<div class="elementor-toc__spinner-container">
				<?php
					Icons_Manager::render_icon(
						[
							'library' => 'eicons',
							'value' => 'eicon-loading',
						],
						[
							'class' => [
								'elementor-toc__spinner',
								'eicon-animation-spin',
							],
							'aria-hidden' => 'true',
						]
					); ?>
			</div>
		</div>
		<?php
	}
}
PK!s%�$modules/table-of-contents/module.phpnu�[���<?php
namespace ElementorPro\Modules\TableOfContents;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function __construct() {
		parent::__construct();

		add_filter( 'elementor_pro/editor/localize_settings', [ $this, 'localize_settings' ] );
		add_filter( 'elementor_pro/frontend/localize_settings', [ $this, 'localize_settings' ] );
	}

	public function get_widgets() {
		return [
			'Table_Of_Contents',
		];
	}

	public function get_name() {
		return 'table-of-contents';
	}

	public function localize_settings( array $settings ) {
		$settings['i18n']['toc_no_headings_found'] = esc_html__( 'No headings were found on this page.', 'elementor-pro' );

		return $settings;
	}
}
PK!���=AAmodules/blockquote/module.phpnu�[���<?php
namespace ElementorPro\Modules\Blockquote;

use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends Module_Base {

	public function get_widgets() {
		return [
			'Blockquote',
		];
	}

	public function get_name() {
		return 'blockquote';
	}
}
PK!'�u(LdLd)modules/blockquote/widgets/blockquote.phpnu�[���<?php
namespace ElementorPro\Modules\Blockquote\Widgets;

use Elementor\Controls_Manager;
use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
use Elementor\Group_Control_Border;
use Elementor\Group_Control_Box_Shadow;
use Elementor\Group_Control_Typography;
use Elementor\Icons_Manager;
use Elementor\Modules\DynamicTags\Module as TagsModule;
use ElementorPro\Plugin;
use ElementorPro\Base\Base_Widget;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Blockquote extends Base_Widget {

	public function get_style_depends() {
		if ( Icons_Manager::is_migration_allowed() ) {
			return [ 'elementor-icons-fa-brands' ];
		}

		return [];
	}

	public function get_name() {
		return 'blockquote';
	}

	public function get_title() {
		return esc_html__( 'Blockquote', 'elementor-pro' );
	}

	public function get_icon() {
		return 'eicon-blockquote';
	}

	public function get_keywords() {
		return [ 'blockquote', 'quote', 'paragraph', 'testimonial', 'text', 'twitter', 'tweet' ];
	}

	protected function register_controls() {
		$this->start_controls_section(
			'section_blockquote_content',
			[
				'label' => esc_html__( 'Blockquote', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'blockquote_skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'border' => esc_html__( 'Border', 'elementor-pro' ),
					'quotation' => esc_html__( 'Quotation', 'elementor-pro' ),
					'boxed' => esc_html__( 'Boxed', 'elementor-pro' ),
					'clean' => esc_html__( 'Clean', 'elementor-pro' ),
				],
				'default' => 'border',
				'prefix_class' => 'elementor-blockquote--skin-',
			]
		);

		$this->add_control(
			'alignment',
			[
				'label' => esc_html__( 'Alignment', 'elementor-pro' ),
				'type' => Controls_Manager::CHOOSE,
				'options' => [
					'left' => [
						'title' => esc_html__( 'Left', 'elementor-pro' ),
						'icon' => 'eicon-text-align-left',
					],
					'center' => [
						'title' => esc_html__( 'Center', 'elementor-pro' ),
						'icon' => 'eicon-text-align-center',
					],
					'right' => [
						'title' => esc_html__( 'Right', 'elementor-pro' ),
						'icon' => 'eicon-text-align-right',
					],
				],
				'prefix_class' => 'elementor-blockquote--align-',
				'condition' => [
					'blockquote_skin!' => 'border',
				],
				'separator' => 'after',
			]
		);

		$this->add_control(
			'blockquote_content',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'type' => Controls_Manager::TEXTAREA,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'elementor-pro' ) . esc_html__( 'Lorem ipsum dolor sit amet consectetur adipiscing elit dolor', 'elementor-pro' ),
				'placeholder' => esc_html__( 'Enter your quote', 'elementor-pro' ),
				'rows' => 10,
			]
		);

		$this->add_control(
			'author_name',
			[
				'label' => esc_html__( 'Author', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'dynamic' => [
					'active' => true,
				],
				'default' => esc_html__( 'John Doe', 'elementor-pro' ),
				'separator' => 'after',
			]
		);

		$this->add_control(
			'tweet_button',
			[
				'label' => esc_html__( 'Tweet Button', 'elementor-pro' ),
				'type' => Controls_Manager::SWITCHER,
				'label_on' => esc_html__( 'On', 'elementor-pro' ),
				'label_off' => esc_html__( 'Off', 'elementor-pro' ),
				'default' => 'yes',
			]
		);

		$this->add_control(
			'tweet_button_view',
			[
				'label' => esc_html__( 'View', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'icon-text' => 'Icon & Text',
					'icon' => 'Icon',
					'text' => 'Text',
				],
				'prefix_class' => 'elementor-blockquote--button-view-',
				'default' => 'icon-text',
				'render_type' => 'template',
				'condition' => [
					'tweet_button' => 'yes',
				],
			]
		);

		$this->add_control(
			'tweet_button_skin',
			[
				'label' => esc_html__( 'Skin', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'classic' => 'Classic',
					'bubble' => 'Bubble',
					'link' => 'Link',
				],
				'default' => 'classic',
				'prefix_class' => 'elementor-blockquote--button-skin-',
				'condition' => [
					'tweet_button' => 'yes',
				],
			]
		);

		$this->add_control(
			'tweet_button_label',
			[
				'label' => esc_html__( 'Label', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'default' => esc_html__( 'Tweet', 'elementor-pro' ),
				'condition' => [
					'tweet_button' => 'yes',
					'tweet_button_view!' => 'icon',
				],
			]
		);

		$this->add_control(
			'user_name',
			[
				'label' => esc_html__( 'Username', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'placeholder' => '@username',
				'condition' => [
					'tweet_button' => 'yes',
				],
			]
		);

		$this->add_control(
			'url_type',
			[
				'label' => esc_html__( 'Target URL', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'current_page' => esc_html__( 'Current Page', 'elementor-pro' ),
					'none' => esc_html__( 'None', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'current_page',
				'condition' => [
					'tweet_button' => 'yes',
				],
			]
		);

		$this->add_control(
			'url',
			[
				'label' => esc_html__( 'Link', 'elementor-pro' ),
				'type' => Controls_Manager::TEXT,
				'input_type' => 'url',
				'dynamic' => [
					'active' => true,
					'categories' => [
						TagsModule::POST_META_CATEGORY,
						TagsModule::URL_CATEGORY,
					],
				],
				'placeholder' => esc_html__( 'https://your-link.com', 'elementor-pro' ),
				'label_block' => true,
				'condition' => [
					'url_type' => 'custom',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_content_style',
			[
				'label' => esc_html__( 'Content', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_control(
			'content_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_TEXT,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__content' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'content_typography',
				'selector' => '{{WRAPPER}} .elementor-blockquote__content',
			]
		);

		$this->add_responsive_control(
			'content_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__content +footer' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_control(
			'heading_author_style',
			[
				'type' => Controls_Manager::HEADING,
				'label' => esc_html__( 'Author', 'elementor-pro' ),
				'separator' => 'before',
			]
		);

		$this->add_control(
			'author_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'global' => [
					'default' => Global_Colors::COLOR_SECONDARY,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__author' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'author_typography',
				'selector' => '{{WRAPPER}} .elementor-blockquote__author',
			]
		);

		$this->add_responsive_control(
			'author_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'default' => [
					'size' => 20,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__author' => 'margin-bottom: {{SIZE}}{{UNIT}}',
				],
				'condition' => [
					'alignment' => 'center',
					'tweet_button' => 'yes',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_button_style',
			[
				'label' => esc_html__( 'Button', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
			]
		);

		$this->add_responsive_control(
			'button_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0.5,
						'max' => 2,
						'step' => 0.1,
					],
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button' => 'font-size: calc({{SIZE}}{{UNIT}} * 10);',
				],
			]
		);

		$this->add_control(
			'button_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
				'range' => [
					'em' => [
						'min' => 0,
						'max' => 5,
						'step' => 0.1,
					],
					'rem' => [
						'min' => 0,
						'max' => 5,
						'step' => 0.1,
					],
					'px' => [
						'min' => 0,
						'max' => 50,
						'step' => 1,
					],
					'%' => [
						'min' => 0,
						'max' => 100,
						'step' => 1,
					],
				],
				'size_units' => [ 'px', '%', 'em', 'rem' ],
			]
		);

		$this->add_control(
			'button_color_source',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::SELECT,
				'options' => [
					'official' => esc_html__( 'Official', 'elementor-pro' ),
					'custom' => esc_html__( 'Custom', 'elementor-pro' ),
				],
				'default' => 'official',
				'prefix_class' => 'elementor-blockquote--button-color-',
			]
		);

		$this->start_controls_tabs( 'tabs_button_style' );

		$this->start_controls_tab(
			'tab_button_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
				'condition' => [
					'button_color_source' => 'custom',
				],
			]
		);

		$this->add_control(
			'button_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button' => 'background-color: {{VALUE}}',
					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote__tweet-button:before, body {{WRAPPER}}.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before' => 'border-right-color: {{VALUE}}; border-left-color: transparent',
					'body.rtl {{WRAPPER}} .elementor-blockquote__tweet-button:before, body {{WRAPPER}}.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before' => 'border-left-color: {{VALUE}}; border-right-color: transparent',
				],
				'condition' => [
					'button_color_source' => 'custom',
					'tweet_button_skin!' => 'link',
				],
			]
		);

		$this->add_control(
			'button_text_color',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button' => 'color: {{VALUE}}',
					'{{WRAPPER}} .elementor-blockquote__tweet-button svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_button_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
				'condition' => [
					'button_color_source' => 'custom',
				],
			]
		);

		$this->add_control(
			'button_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button:hover' => 'background-color: {{VALUE}}',

					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote__tweet-button:hover:before, body {{WRAPPER}}.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before' => 'border-right-color: {{VALUE}}; border-left-color: transparent',

					'body.rtl {{WRAPPER}} .elementor-blockquote__tweet-button:before, body {{WRAPPER}}.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before' => 'border-left-color: {{VALUE}}; border-right-color: transparent',
				],
				'condition' => [
					'button_color_source' => 'custom',
					'tweet_button_skin!' => 'link',
				],
			]
		);

		$this->add_control(
			'button_text_color_hover',
			[
				'label' => esc_html__( 'Text Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__tweet-button:hover' => 'color: {{VALUE}}',
					'{{WRAPPER}} .elementor-blockquote__tweet-button:hover svg' => 'fill: {{VALUE}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$default_fonts = Plugin::elementor()->kits_manager->get_current_settings( 'default_generic_fonts' );

		if ( $default_fonts ) {
			$default_fonts = ', ' . $default_fonts;
		}

		$this->add_group_control(
			Group_Control_Typography::get_type(),
			[
				'name' => 'button_typography',
				'selector' => '{{WRAPPER}} .elementor-blockquote__tweet-button span, {{WRAPPER}} .elementor-blockquote__tweet-button i',
				'separator' => 'before',
				'fields_options' => [
					'font_family' => [
						'selectors' => [
							'{{WRAPPER}} .elementor-blockquote__tweet-button' => 'font-family: "{{VALUE}}"' . $default_fonts . ';',
						],
					],
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_border_style',
			[
				'label' => esc_html__( 'Border', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'blockquote_skin' => 'border',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_border_style' );

		$this->start_controls_tab(
			'tab_border_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'border_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_width',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote' => 'border-left-width: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-blockquote' => 'border-right-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote' => 'padding-left: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-blockquote' => 'padding-right: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_border_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'border_color_hover',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote:hover' => 'border-color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_width_hover',
			[
				'label' => esc_html__( 'Width', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote:hover' => 'border-left-width: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-blockquote:hover' => 'border-right-width: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_responsive_control(
			'border_gap_hover',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'body:not(.rtl) {{WRAPPER}} .elementor-blockquote:hover' => 'padding-left: {{SIZE}}{{UNIT}}',
					'body.rtl {{WRAPPER}} .elementor-blockquote:hover' => 'padding-right: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->add_responsive_control(
			'border_vertical_padding',
			[
				'label' => esc_html__( 'Vertical Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}}',
				],
				'separator' => 'before',
				'condition' => [
					'blockquote_skin' => 'border',
				],
			]
		);

		$this->end_controls_section();

		$this->start_controls_section(
			'section_box_style',
			[
				'label' => esc_html__( 'Box', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'blockquote_skin' => 'boxed',
				],
			]
		);

		$this->add_responsive_control(
			'box_padding',
			[
				'label' => esc_html__( 'Padding', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote' => 'padding: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->start_controls_tabs( 'tabs_box_style' );

		$this->start_controls_tab(
			'tab_box_normal',
			[
				'label' => esc_html__( 'Normal', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'box_background_color',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'box_border',
				'selector' => '{{WRAPPER}} .elementor-blockquote',
			]
		);

		$this->add_responsive_control(
			'box_border_radius',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_box_shadow',
				'exclude' => [
					'box_shadow_position',
				],
				'selector' => '{{WRAPPER}} .elementor-blockquote',
			]
		);

		$this->end_controls_tab();

		$this->start_controls_tab(
			'tab_box_hover',
			[
				'label' => esc_html__( 'Hover', 'elementor-pro' ),
			]
		);

		$this->add_control(
			'box_background_color_hover',
			[
				'label' => esc_html__( 'Background Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote:hover' => 'background-color: {{VALUE}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Border::get_type(),
			[
				'name' => 'box_border_hover',
				'selector' => '{{WRAPPER}} .elementor-blockquote:hover',
			]
		);

		$this->add_responsive_control(
			'box_border_radius_hover',
			[
				'label' => esc_html__( 'Border Radius', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote:hover' => 'border-radius: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->add_group_control(
			Group_Control_Box_Shadow::get_type(),
			[
				'name' => 'box_box_shadow_hover',
				'exclude' => [
					'box_shadow_position',
				],
				'selector' => '{{WRAPPER}} .elementor-blockquote:hover',
			]
		);

		$this->end_controls_tab();

		$this->end_controls_tabs();

		$this->end_controls_section();

		$this->start_controls_section(
			'section_quote_style',
			[
				'label' => esc_html__( 'Quote', 'elementor-pro' ),
				'tab' => Controls_Manager::TAB_STYLE,
				'condition' => [
					'blockquote_skin' => 'quotation',
				],
			]
		);

		$this->add_control(
			'quote_text_color',
			[
				'label' => esc_html__( 'Color', 'elementor-pro' ),
				'type' => Controls_Manager::COLOR,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote:before' => 'color: {{VALUE}}',
				],
			]
		);

		$this->add_responsive_control(
			'quote_size',
			[
				'label' => esc_html__( 'Size', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'range' => [
					'px' => [
						'min' => 0.5,
						'max' => 2,
						'step' => 0.1,
					],
				],
				'default' => [
					'size' => 1,
				],
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote:before' => 'font-size: calc({{SIZE}}{{UNIT}} * 100)',
				],
			]
		);

		$this->add_responsive_control(
			'quote_gap',
			[
				'label' => esc_html__( 'Gap', 'elementor-pro' ),
				'type' => Controls_Manager::SLIDER,
				'selectors' => [
					'{{WRAPPER}} .elementor-blockquote__content' => 'margin-top: {{SIZE}}{{UNIT}}',
				],
			]
		);

		$this->end_controls_section();
	}

	protected function render() {
		$settings = $this->get_settings_for_display();

		$tweet_button_view = $settings['tweet_button_view'];
		$share_link = 'https://twitter.com/intent/tweet';

		$text = rawurlencode( $settings['blockquote_content'] );

		if ( ! empty( $settings['author_name'] ) ) {
			$text .= ' — ' . $settings['author_name'];
		}

		$share_link = add_query_arg( 'text', $text, $share_link );

		if ( 'current_page' === $settings['url_type'] ) {
			$share_link = add_query_arg( 'url', rawurlencode( home_url() . add_query_arg( false, false ) ), $share_link );
		} elseif ( 'custom' === $settings['url_type'] ) {
			$share_link = add_query_arg( 'url', rawurlencode( $settings['url'] ), $share_link );
		}

		if ( ! empty( $settings['user_name'] ) ) {
			$user_name = $settings['user_name'];
			if ( '@' === substr( $user_name, 0, 1 ) ) {
				$user_name = substr( $user_name, 1 );
			}
			$share_link = add_query_arg( 'via', rawurlencode( $user_name ), $share_link );
		}

		$this->add_render_attribute( [
			'blockquote_content' => [ 'class' => 'elementor-blockquote__content' ],
			'author_name' => [ 'class' => 'elementor-blockquote__author' ],
			'tweet_button_label' => [ 'class' => 'elementor-blockquote__tweet-label' ],
		] );

		$this->add_inline_editing_attributes( 'blockquote_content' );
		$this->add_inline_editing_attributes( 'author_name', 'none' );
		$this->add_inline_editing_attributes( 'tweet_button_label', 'none' );
		?>
		<blockquote class="elementor-blockquote">
			<p <?php $this->print_render_attribute_string( 'blockquote_content' ); ?>>
				<?php $this->print_unescaped_setting( 'blockquote_content' ); ?>
			</p>
			<?php if ( ! empty( $settings['author_name'] ) || 'yes' === $settings['tweet_button'] ) : ?>
				<footer>
					<?php if ( ! empty( $settings['author_name'] ) ) : ?>
						<cite <?php $this->print_render_attribute_string( 'author_name' ); ?>><?php
							$this->print_unescaped_setting( 'author_name' );
						?></cite>
					<?php endif ?>
					<?php if ( 'yes' === $settings['tweet_button'] ) : ?>
						<a href="<?php echo esc_attr( $share_link ); ?>" class="elementor-blockquote__tweet-button" target="_blank">
							<?php if ( 'text' !== $tweet_button_view ) : ?>
								<?php
								$icon = [
									'value' => 'fab fa-twitter',
									'library' => 'fa-brands',
								];
								if ( ! Icons_Manager::is_migration_allowed() || ! Icons_Manager::render_icon( $icon, [ 'aria-hidden' => 'true' ] ) ) : ?>
									<i class="fa fa-twitter" aria-hidden="true"></i>
								<?php endif; ?>
								<?php if ( 'icon-text' !== $tweet_button_view ) : ?>
									<span class="elementor-screen-only"><?php esc_html_e( 'Tweet', 'elementor-pro' ); ?></span>
								<?php endif; ?>
							<?php endif; ?>
							<?php if ( 'icon-text' === $tweet_button_view || 'text' === $tweet_button_view ) : ?>
								<span <?php $this->print_render_attribute_string( 'tweet_button_label' ); ?>><?php
									$this->print_unescaped_setting( 'tweet_button_label' );
								?></span>
							<?php endif; ?>
						</a>
					<?php endif ?>
				</footer>
			<?php endif ?>
		</blockquote>
		<?php
	}

	/**
	 * Render Blockquote widget output in the editor.
	 *
	 * Written as a Backbone JavaScript template and used to generate the live preview.
	 *
	 * @since 2.9.0
	 * @access protected
	 */
	protected function content_template() {
		?>
		<#
			var tweetButtonView = settings.tweet_button_view;
			#>
			<blockquote class="elementor-blockquote">
				<p class="elementor-blockquote__content elementor-inline-editing" data-elementor-setting-key="blockquote_content">
					{{{ settings.blockquote_content }}}
				</p>
				<# if ( 'yes' === settings.tweet_button || settings.author_name ) { #>
					<footer>
						<# if ( settings.author_name ) { #>
							<cite class="elementor-blockquote__author elementor-inline-editing" data-elementor-setting-key="author_name" data-elementor-inline-editing-toolbar="none">{{{ settings.author_name }}}</cite>
						<# } #>
						<# if ( 'yes' === settings.tweet_button ) { #>
							<a href="#" class="elementor-blockquote__tweet-button">
								<# if ( 'text' !== tweetButtonView ) {
									// If FontAwesome migration has been done, load the FA5 version, otherwise load FA4
									if ( ! elementor.config.icons_update_needed ) { #>
										<i class="fab fa-twitter" aria-hidden="true"></i>
									<# } else { #>
										<i class="fa fa-twitter" aria-hidden="true"></i>
									<# } #>
									<# if ( 'icon-text' !== tweetButtonView ) { #>
										<span class="elementor-screen-only"><?php esc_html_e( 'Tweet', 'elementor-pro' ); ?></span>
									<# } #>
								<# } #>
								<# if ( 'icon-text' === tweetButtonView || 'text' === tweetButtonView ) { #>
									<span class="elementor-inline-editing elementor-blockquote__tweet-label" data-elementor-setting-key="tweet_button_label" data-elementor-inline-editing-toolbar="none">{{{ settings.tweet_button_label }}}</span>
								<# } #>
							</a>
						<# } #>
					</footer>
				<# } #>
			</blockquote>
		<?php
	}
}
PK!�AR��"modules/wp-cli/license-command.phpnu�[���<?php
namespace ElementorPro\Modules\WpCli;

use ElementorPro\License\Admin;
use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Elementor Page Builder Pro cli tools.
 */
class License_Command extends \WP_CLI_Command {

	/**
	 * Activate Elementor Pro License key.
	 *
	 * ## EXAMPLES
	 *
	 *  1. wp elementor-pro license activate <license-key>
	 *      - This will try activate your license key.
	 */
	public function activate( $args, $assoc_args ) {
		$license_key = $args[0];
		$data = API::activate_license( $args[0] );

		if ( is_wp_error( $data ) ) {
			\WP_CLI::error( sprintf( '%s (%s) ', $data->get_error_message(), $data->get_error_code() ) );
		}

		if ( API::STATUS_VALID !== $data['license'] ) {
			$errors = [
				'no_activations_left' => 'You have no more activations left.',
				'expired' => 'Your License Has Expired',
				'missing' => 'Your license is missing. Please check your key again.',
				'revoked' => 'Your license key has been cancelled',
				'key_mismatch' => 'Your license is invalid for this domain. Please check your key again.',
			];

			if ( isset( $errors[ $data['error'] ] ) ) {
				$error_msg = $errors[ $data['error'] ];
			} else {
				$error_msg = 'An error occurred. (' . $data['error'] . ')';
			}

			\WP_CLI::error( $error_msg );
		}

		Admin::set_license_key( $license_key );
		API::set_license_data( $data );

		\WP_CLI::success( 'The License has been activated successfully.' );
	}

	/**
	 * Deactivate Elementor Pro License key.
	 *
	 * ## EXAMPLES
	 *
	 *  1. wp elementor-pro license deactivate.
	 *      - This will deactivate your license key.
	 */
	public function deactivate() {
		Admin::deactivate();
		\WP_CLI::success( 'The License has been deactivated successfully.' );
	}
}
PK!����modules/wp-cli/module.phpnu�[���<?php
namespace ElementorPro\Modules\WpCli;

use Elementor\Core\Base\Module as BaseModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Module extends BaseModule {

	/**
	 * Get module name.
	 *
	 * @since  2.1.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'wp-cli';
	}

	public static function is_active() {
		return defined( 'WP_CLI' ) && WP_CLI;
	}

	/**
	 *
	 * @since  2.1.0
	 * @access public
	 */
	public function __construct() {
		\WP_CLI::add_command( 'elementor-pro license', '\ElementorPro\Modules\WpCli\License_Command' );
		\WP_CLI::add_command( 'elementor-pro update', '\ElementorPro\Modules\WpCli\Update' );
	}
}
PK!+�3ccmodules/wp-cli/update.phpnu�[���<?php
namespace ElementorPro\Modules\WpCli;

use Elementor\Modules\WpCli\Update as UpdateBase;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Elementor Page Builder Pro cli tools.
 */
class Update extends UpdateBase {

	protected function get_update_db_manager_class() {
		return '\ElementorPro\Core\Upgrade\Manager';
	}
}
PK!#�VG��license.txtnu�[���Copyright (C) 2016-2021 Elementor Ltd.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

ADDITIONAL TERMS per GNU GPL Section 7 The origin of the Program must not be misrepresented; you must not claim that you wrote the original Program. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original Program.
PK!y�҈ss3docs/modules/payments/classes/payment-button.php.mdnu�[���# Payment-Button.php
 
## Technical Description:

This is an abstract class that every payment button widget will inherit from.

Because every payment button is, after all, a button, this class inherits from `Widget_Button` 
in order to keep it as close as possible to the default button widget ( and of course to avoid unnecessary code duplications ).

This class is responsible for creating the universal sections && controls of the payment buttons.
In addition, it has some abstract functions to make sure that every payment button will work as it should.

## Attention Needed / Known Issues:

- Use the `register_account_section()` function in order to add the API controls for your payment provider. 
  
	See `widgets/paypal-button.php` for reference.


- Use the `register_sandbox_controls()` function if you need more sandbox controls than the default `sandbox_mode` switch.
  
	By default, they will be registered just after the switch.
  

- Use the `after_product_type()` function when you need to add something after the product type select-box. This is useful when you want to add a 
  note to the user.
  
  See `widgets/paypal-button.php` for reference. 


- The currencies list **defaults to PayPal's supported currencies**, so when you extend it, make sure that this list
  is also supported in the payment method you are using, or override it with the appropriate one.
  

- The `get_custom_message( $id )` returns a custom message that is set in the `Custom Messages` control under the `Additional Settings` section, and will default to
  the default errors messages that returned from `get_default_error_messages()`.
  
	You can override this function in order to extend the default custom messages. Don't forget to extend the `register_settings_section()` and `register_messages_style_section()` functions as well.


- You should use `is_sandbox()` to determine if it's on sandbox mode.
PK!���g	g	2docs/modules/payments/widgets/paypal-button.php.mdnu�[���# Paypal-Button.php

## Product Knowledge Base:

- [PayPal Legacy Button HTML Reference](https://developer.paypal.com/docs/paypal-payments-standard/integration-guide/html-reference-landing/)


- [PayPal API Reference](https://developer.paypal.com/docs/api/overview)

## Technical Description:

This class handles the PayPal button widget.

As of writing those lines, it only supports the **legacy** payments API of PayPal.

We planned on adding support for the `Payments API` using the [PHP](https://developer.paypal.com/docs/api/payments/v2/) || [JavaScript](https://developer.paypal.com/docs/checkout/) SDKs but 
unfortunately both of them where not suitable for our needs.

### JavaScript SDK ( AKA "Smart Buttons" ):

- The fast & easy-to-use option, but lack the support of button styling.


- Forces you to pass basic argument like `currency` or `locale` as a query parameter to the script ( [See here](https://developer.paypal.com/docs/checkout/reference/customize-sdk/) ).
  
	That means you are limited to a single currency type for each page.

### PHP SDK:
- You **can** style the button ( well, you use it with AJAX and you are not bounded to PayPal's style, so... ).
  

- PayPal created a nice [Checkout SDK](https://github.com/paypal/Checkout-PHP-SDK) which works well, but luckily for us, it doesn't support anything other than a simple checkout request. Hurray! 🎉
  
	We tried extending the SDK to at least support subscriptions, but creating a subscription in PayPal is complicated for the goal of a simple widget:
  
	You need to [create a Product](https://developer.paypal.com/docs/api/catalog-products/v1/#products_create), attach to 
  	[a Plan](https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create) and finally pass it to [a Subscription](https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_create).
  

#### They both also don't support donations, so we dropped this idea.


## Attention Needed / Known Issues:

- `get_numeric_setting( $key, $min )` retrieves a value by `key` from `get_settings()`, and return it as a numeric value, or defaults to `$min` if it's non-existent or invalid.


- `get_errors()` handles basic validations and returns an array of errors.


- `get_api_method()` && `render_legacy_form()` are leftovers from the time we tried using the `Payments API` and might be used in the future if PayPal will provide a simpler API.
PK!�%YK++-docs/modules/code-highlight/code-highlight.mdnu�[���## Product knowledge base

### Quick Links

* [PrismJS Website](https://prismjs.com/)
* [PrismJS Line Numbers Plugin](https://prismjs.com/plugins/line-numbers/)
* [PrismJS Line Height Plugin](https://prismjs.com/plugins/line-highlight/)
* [PrismJS Copy to Clipboard Plugin](https://prismjs.com/plugins/copy-to-clipboard/)

### Video
TBD: create a video tutorial

## Technical description

The widget allow users to add code block with the abilities to:
 * Add specific code language.
 * Add line numbers for evey code block line.
 * Add a copy to clipboard button.
 * Highlight specific code block lines. 
 * Break long code block lines to prevent a horizontal scroll.
 * Choose a specific theme for each code block.
 * Limit the height of the code block.
 * Change the font size of the code block

## Known issues / attention needed

### Style (CSS)

All the css files for the 6 themes and 3 plugins are local and combined to a single CSS file instead of using the CDN, in order to avoid too many requests.
Another reason is because we use custom classes to handle the selected themes and features (as line-numbers and such) when the code highlight is being used more than once in the same page.

There are 3 SCSS files that gets combined into a single file:
 * `line-highlight.scss` - Includes the style for the line highlight plugin. (ver 1.23.0)
 * `line-numbers.scss` - Includes the style for the line numbers plugin. (ver 1.23.0)
 * `main-style.scss` - Includes the rest of the styles needed for the themes and plugins:
 	* 6 themes: prism-twilight, prism-tomorrow, prism-solarizedlight, prism-okaidia, prism-dark, prism-solid. (ver 1.23.0)  
	  Each theme style is prefixed with a class specific for the theme (in order to support different themes for multiple code highlight instances on the same page).	* 1 plugin: "copy to clipboard" style prefixed with a class (to support copy functionality only if the user has enabled it). (ver 1.23.0)
	* Specific style for the word-wrap feature
 * `code-highlight.scss` - The file helps to minimize HTTP requests by combining all the SCSS files to a single CSS file.

There is a small CSS fix in `main-style.scss` which solves a conflict when highlighting lines while hiding line numbers.

### Functionality (JS)

All the scripts are requested from a CDN instead of using local files since we found it difficult to manage all the plugins to work properly when combined to a single local file.

There are 7 JS Files which we use from a CDN, the last 3 are added only if the user chose the functionality they responsible for:
  * `prismjs_core` - The minimum required code for the plugin functionality. (ver 1.23.0)
  * `prismjs_loader` Dynamically loading the language according to the user choice. (ver 1.23.0)
  * `prismjs_normalize` - Trimming all leading and trailing whitespace of every code block. (ver 1.23.0)
  * `prismjs_line_numbers` - Adding line numbers to the code block. (ver 1.23.0)
  * `prismjs_line_highlight` - Highlighting specific lines in code block. (ver 1.23.0)
  * `prismjs_toolbar` - Registering buttons (we use it for the copy to clipboard button). (ver 1.23.0)
  * `prismjs_copy_to_clipboard` - Adding the ability to copy the code block to the clipboard. (ver 1.23.0)

`handler.js` - For the “word wrap” feature to work, we use the `onElementChange` method to run the prism plugin again and adjust to the changes.

There is a plugin named `inline-color` that we had to remove since it only worked when we used the `PrismJS` plugin with all the languages included in the same file. That means one big file that includes the whole functionality of the plugin AND all the languages, which is a huge performance penalty. Instead, we use the prisms-loader plugin which dynamically loads the needed language when the user selects it and it means a smaller JS bundle.

### Functionality (PHP)
`code-highlight.php` - The language control is used to give the user a code language selection from the most popular code languages. We've added an `apply_filter` to the control in order to give the user more flexibility when choosing a code language.

We replaced the `typography` group control with just a `font-size` control since we didn’t manage to make the `line-height` work with the line numbers. This decision was made since most of the controls in the `typography` group control are not so useful in this case anyway.
PK!���x��'docs/modules/forms/submissions/index.mdnu�[���# Submissions

The "Submissions" component is responsible for saving form submissions records in the database. It should be some kind of log that saves the user input data + status about the other actions assigned to the specific form. There are 4 subjects that will be explained in this document: database, "save-to-database" action, REST API, and the admin page.

## Database

When the admin of the website enable 'submission' experiment the module immediately runs the database migrations (`modules/forms/submissions/database/migration.php`) which create 3 tables:

1. `e_submissions` - Holds the submission itself ( related_post, related_form, and some metadata ).
2. `e_submissions_values` - Each row has the field key, the input of the user, and the `submission_id`.
3. `e_submissions_action_log` - The table is a log that represents the other actions that run for the current submission (e.g, email, Mailchimp integration, etc.). Each row has a status, and a log message if exists.

## Save to Database Action

This is a regular form action that extends the Base Action of Elementor which does 3 things:
1. Creates a new submission in the `e_submissions` table and multiple rows in `e_submissions_values` based on the form fields.
2. Saves a snapshot of the current form fields - this will help us later for showing the submissions result in the admin page to export the form values as CSV.
3. Listens to the responses of all the other form actions and saves them in the `e_submissions_action_log` table (this is the reason why the "save-to-database" action must be the first action that runs).

## REST API

To show the admin all the submissions, the module introduces a few REST endpoints that return the submission data:
1. GET `/submissions` - which returns all the submissions without the values.
2. GET `/submissions/:id` - which returns a specific submission with its values.
3. GET `/forms` - which returns all the forms fields.

- There are more routes that are less important such as the "export" route and "referer" route.
- All those routes are available only for authenticated users that have the role of "admin".
- Those routes can be used outside the admin page.

## Admin 

The admin page is responsible for showing all the submissions to the admin of the website. The submissions can be sorted, filtered, and exported, and edited. The page itself is built with React to provide a better user experience and uses the REST API as the source of data. 

## Attention Needed

- The DB migration is an independent system and doesn't use Elementor's upgrade system.
- To create a new migration, just add a new class to the migrations folder and register it in the static prop `migrations` in `modules/forms/submissions/database/migration.php` + make sure to update the const `CURRENT_DB_VERSION` to the new version that you created.
- Please review other migration files to make sure we don't repeat some issues twice (like `max index length`, and `charset` for the tables).
- If you add some more data that belongs to a specific user, make sure to adjust `modules/forms/submissions/personal-data.php`. This class is responsible for exporting and removing the user-specific data, in order to get in line with the rules of GDPR, CCPA, etc.
PK!|�����data/base/controller.phpnu�[���<?php
namespace ElementorPro\Data\Base;

use Elementor\Data\Base\Controller as Controller_Base;

abstract class Controller extends Controller_Base {

	public function __construct() {
		parent::__construct();

		$this->namespace = 'elementor-pro/v1';
	}
}
PK!9q����base/base-widget-trait.phpnu�[���<?php
namespace ElementorPro\Base;

use ElementorPro\License\API as License_API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

trait Base_Widget_Trait {
	public function is_editable() {
		if ( License_API::is_license_active() ) {
			return true;
		}
		return License_API::is_license_expired() && ! License_API::is_licence_pro_trial();
	}

	public function get_categories() {
		return [ 'pro-elements' ];
	}

	public function get_widget_css_config( $widget_name ) {
		$direction = is_rtl() ? '-rtl' : '';

		$css_file_path = 'css/widget-' . $widget_name . $direction . '.min.css';

		return [
			'key' => $widget_name,
			'version' => ELEMENTOR_PRO_VERSION,
			'file_path' => ELEMENTOR_PRO_ASSETS_PATH . $css_file_path,
			'data' => [
				'file_url' => ELEMENTOR_PRO_ASSETS_URL . $css_file_path,
			],
		];
	}

	// TODO: Remove this method when the minimum core version is 3.3.1.
	public function get_css_config() {
		return $this->get_widget_css_config( $this->get_group_name() );
	}
}
PK!dK�LLbase/module-base.phpnu�[���<?php
namespace ElementorPro\Base;

use Elementor\Core\Base\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Module_Base extends Module {
	// This class was needed in the past and not being removed for future functionalities that might be needed for all classes that still extend it.
}
PK!����base/base-widget.phpnu�[���<?php
namespace ElementorPro\Base;

use Elementor\Widget_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

abstract class Base_Widget extends Widget_Base {

	use Base_Widget_Trait;
}
PK!z���,�,license/api.phpnu�[���<?php
namespace ElementorPro\License;

use Elementor\Core\Common\Modules\Connect\Module as ConnectModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class API {

	const PRODUCT_NAME = 'Elementor Pro';

	const STORE_URL = 'https://my.elementor.com/api/v1/licenses/';
	const RENEW_URL = 'https://go.elementor.com/renew/';

	// License Statuses
	const STATUS_VALID = 'valid';
	const STATUS_INVALID = 'invalid';
	const STATUS_EXPIRED = 'expired';
	const STATUS_SITE_INACTIVE = 'site_inactive';
	const STATUS_DISABLED = 'disabled';

	// Features
	const FEATURE_PRO_TRIAL = 'pro_trial';

	// Requests lock config.
	const REQUEST_LOCK_TTL = MINUTE_IN_SECONDS;
	const REQUEST_LOCK_OPTION_NAME = '_elementor_pro_api_requests_lock';

	const TRANSIENT_KEY_PREFIX = 'elementor_pro_remote_info_api_data_';

	/**
	 * @param array $body_args
	 *
	 * @return \stdClass|\WP_Error
	 */
	private static function remote_post( $body_args = [] ) {
		$body_args = wp_parse_args(
			$body_args,
			[
				'api_version' => ELEMENTOR_PRO_VERSION,
				'item_name' => self::PRODUCT_NAME,
				'site_lang' => get_bloginfo( 'language' ),
				'url' => home_url(),
			]
		);

		$response = wp_remote_post( self::STORE_URL, [
			'timeout' => 40,
			'body' => $body_args,
		] );

		if ( is_wp_error( $response ) ) {
			return $response;
		}

		$response_code = wp_remote_retrieve_response_code( $response );
		if ( 200 !== (int) $response_code ) {
			return new \WP_Error( $response_code, esc_html__( 'HTTP Error', 'elementor-pro' ) );
		}

		$data = json_decode( wp_remote_retrieve_body( $response ), true );
		if ( empty( $data ) || ! is_array( $data ) ) {
			return new \WP_Error( 'no_json', esc_html__( 'An error occurred, please try again', 'elementor-pro' ) );
		}

		return $data;
	}

	public static function activate_license( $license_key ) {
		$body_args = [
			'edd_action' => 'activate_license',
			'license' => $license_key,
		];

		$license_data = self::remote_post( $body_args );

		return $license_data;
	}

	public static function deactivate_license() {
		$body_args = [
			'edd_action' => 'deactivate_license',
			'license' => Admin::get_license_key(),
		];

		$license_data = self::remote_post( $body_args );

		return $license_data;
	}

	public static function set_transient( $cache_key, $value, $expiration = '+12 hours' ) {
		$data = [
			'timeout' => strtotime( $expiration, current_time( 'timestamp' ) ),
			'value' => json_encode( $value ),
		];

		update_option( $cache_key, $data, false );
	}

	private static function get_transient( $cache_key ) {
		$cache = get_option( $cache_key );

		if ( empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) {
			return false;
		}

		return json_decode( $cache['value'], true );
	}

	public static function set_license_data( $license_data, $expiration = null ) {
		$expiration = 'lifetime';
		if ( null === $expiration ) {
			$expiration = '+12 hours';

			self::set_transient( Admin::LICENSE_DATA_FALLBACK_OPTION_NAME, $license_data, '+24 hours' );
		}

		self::set_transient( Admin::LICENSE_DATA_OPTION_NAME, $license_data, $expiration );
	}

	/**
	 * Check if another request is in progress.
	 *
	 * @param string $name Request name
	 *
	 * @return bool
	 */
	public static function is_request_running( $name ) {
		$requests_lock = get_option( self::REQUEST_LOCK_OPTION_NAME, [] );
		if ( isset( $requests_lock[ $name ] ) ) {
			if ( $requests_lock[ $name ] > time() - self::REQUEST_LOCK_TTL ) {
				return true;
			}
		}

		$requests_lock[ $name ] = time();
		update_option( self::REQUEST_LOCK_OPTION_NAME, $requests_lock );

		return false;
	}

	public static function get_license_data( $force_request = false ) {
		$license_data_error = [
			'license' => 'valid',
			'payment_id' => '140',
			'license_limit' => '9999',
			'site_count' => '1',
			'activations_left' => '9999',
			'expires' => 'lifetime',
			'success' => true,
		];

		$license_key = Admin::get_license_key();
			return $license_data_error;
		$license_data = self::get_transient( Admin::LICENSE_DATA_OPTION_NAME );

		if ( false === $license_data || $force_request ) {
			$body_args = [
				'edd_action' => 'check_license',
				'license' => $license_key,
			];

			if ( self::is_request_running( 'get_license_data' ) ) {
				return $license_data_error;
			}

			$license_data = self::remote_post( $body_args );

			if ( is_wp_error( $license_data ) ) {
				$license_data = self::get_transient( Admin::LICENSE_DATA_FALLBACK_OPTION_NAME );
				if ( false === $license_data ) {
					$license_data = $license_data_error;
				}

				self::set_license_data( $license_data, '+30 minutes' );
			} else {
				self::set_license_data( $license_data );
			}
		}

		return $license_data;
	}

	public static function get_version( $force_update = true ) {
		$cache_key = self::TRANSIENT_KEY_PREFIX . ELEMENTOR_PRO_VERSION;

		$info_data = self::get_transient( $cache_key );

		if ( $force_update || false === $info_data ) {
			$updater = Admin::get_updater_instance();

			$translations = wp_get_installed_translations( 'plugins' );
			$plugin_translations = [];
			if ( isset( $translations[ $updater->plugin_slug ] ) ) {
				$plugin_translations = $translations[ $updater->plugin_slug ];
			}

			$locales = array_values( get_available_languages() );

			$body_args = [
				'edd_action' => 'get_version',
				'name' => $updater->plugin_name,
				'slug' => $updater->plugin_slug,
				'version' => $updater->plugin_version,
				'license' => Admin::get_license_key(),
				'translations' => wp_json_encode( $plugin_translations ),
				'locales' => wp_json_encode( $locales ),
				'beta' => 'yes' === get_option( 'elementor_beta', 'no' ),
			];

			if ( self::is_request_running( 'get_version' ) ) {
				return new \WP_Error( esc_html__( 'Another check is in progress.', 'elementor-pro' ) );
			}

			$info_data = self::remote_post( $body_args );

			self::set_transient( $cache_key, $info_data );
		}

		return $info_data;
	}

	/**
	 * @param $version
	 *
	 * @deprecated 2.7.0 Use `API::get_plugin_package_url()` method instead.
	 */
	public static function get_previous_package_url( $version ) {
		return self::get_plugin_package_url( $version );
	}

	public static function get_plugin_package_url( $version ) {
		$url = 'https://my.elementor.com/api/v1/pro-downloads/';

		$body_args = [
			'item_name' => self::PRODUCT_NAME,
			'version' => $version,
			'license' => Admin::get_license_key(),
			'url' => home_url(),
		];

		$response = wp_remote_post( $url, [
			'timeout' => 40,
			'body' => $body_args,
		] );

		if ( is_wp_error( $response ) ) {
			return $response;
		}

		$response_code = (int) wp_remote_retrieve_response_code( $response );
		$data = json_decode( wp_remote_retrieve_body( $response ), true );

		if ( 401 === $response_code ) {
			return new \WP_Error( $response_code, $data['message'] );
		}

		if ( 200 !== $response_code ) {
			return new \WP_Error( $response_code, esc_html__( 'HTTP Error', 'elementor-pro' ) );
		}

		$data = json_decode( wp_remote_retrieve_body( $response ), true );
		if ( empty( $data ) || ! is_array( $data ) ) {
			return new \WP_Error( 'no_json', esc_html__( 'An error occurred, please try again', 'elementor-pro' ) );
		}

		return $data['package_url'];
	}

	public static function get_previous_versions() {
		$url = 'https://my.elementor.com/api/v1/pro-downloads/';

		$body_args = [
			'version' => ELEMENTOR_PRO_VERSION,
			'license' => Admin::get_license_key(),
			'url' => home_url(),
		];

		$response = wp_remote_get( $url, [
			'timeout' => 40,
			'body' => $body_args,
		] );

		if ( is_wp_error( $response ) ) {
			return $response;
		}

		$response_code = (int) wp_remote_retrieve_response_code( $response );
		$data = json_decode( wp_remote_retrieve_body( $response ), true );

		if ( 401 === $response_code ) {
			return new \WP_Error( $response_code, $data['message'] );
		}

		if ( 200 !== $response_code ) {
			return new \WP_Error( $response_code, esc_html__( 'HTTP Error', 'elementor-pro' ) );
		}

		$data = json_decode( wp_remote_retrieve_body( $response ), true );
		if ( empty( $data ) || ! is_array( $data ) ) {
			return new \WP_Error( 'no_json', esc_html__( 'An error occurred, please try again', 'elementor-pro' ) );
		}

		return $data['versions'];
	}

	public static function get_errors() {
		return [
			'no_activations_left' => sprintf(
				/* translators: 1: Bold text Open Tag, 2: Bold text closing tag, 3: Link open tag, 4: Link closing tag. */
				esc_html__( '%1$sYou have no more activations left.%2$s %3$sPlease upgrade to a more advanced license%4$s (you\'ll only need to cover the difference).', 'elementor-pro' ),
				'<strong>',
				'</strong>',
				'<a href="https://go.elementor.com/upgrade/" target="_blank">',
				'</a>'
			),
			'expired' => sprintf(
			/* translators: 1: Bold text Open Tag, 2: Bold text closing tag, 3: Link open tag, 4: Link closing tag. */
				esc_html__( '%1$sYour License Has Expired.%2$s %3$sRenew your license today%4$s to keep getting feature updates, premium support and unlimited access to the template library.', 'elementor-pro' ),
				'<strong>',
				'</strong>',
				'<a href="https://go.elementor.com/renew/" target="_blank">',
				'</a>'
			),
			'missing' => esc_html__( 'Your license is missing. Please check your key again.', 'elementor-pro' ),
			'revoked' => sprintf(
				/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
				esc_html__( '%1$sYour license key has been cancelled%2$s (most likely due to a refund request). Please consider acquiring a new license.', 'elementor-pro' ),
				'<strong>',
				'</strong>'
			),
			'key_mismatch' => esc_html__( 'Your license is invalid for this domain. Please check your key again.', 'elementor-pro' ),
		];
	}

	public static function get_error_message( $error ) {
		$errors = self::get_errors();

		
		return '';
	}

	public static function is_license_active() {
		$license_data = self::get_license_data();

		return true;
	}

	public static function is_license_expired() {
		$license_data = self::get_license_data();

		return self::STATUS_EXPIRED === $license_data['license'];
	}

	public static function is_licence_pro_trial() {
		return self::is_licence_has_feature( self::FEATURE_PRO_TRIAL );
	}

	public static function is_licence_has_feature( $feature_name ) {
		$license_data = self::get_license_data();
	}

	public static function is_license_about_to_expire() {
			return false;
		if ( 'lifetime' === $license_data['expires'] ) {
			return false;
		}

		return time() > strtotime( '-28 days', strtotime( $license_data['expires'] ) );
	}

	/**
	 * @param string $library_type
	 *
	 * @return int
	 */
	public static function get_library_access_level() {
		$license_data = static::get_license_data();

		$access_level = ConnectModule::ACCESS_LEVEL_PRO;

		if ( static::is_license_active() ) {
			$access_level = ConnectModule::ACCESS_LEVEL_PRO;
		}

		// For BC: making sure that it returns the correct access_level even if "features" is not defined in the license data.
		if ( ! isset( $license_data['features'] ) || ! is_array( $license_data['features'] ) ) {
			return $access_level;
		}

		$library_access_level_prefix = 'template_access_level_';

		foreach ( $license_data['features'] as $feature ) {
			if ( strpos( $feature, $library_access_level_prefix ) !== 0 ) {
				continue;
			}

			$access_level = (int) str_replace( $library_access_level_prefix, '', $feature );
		}

		return $access_level;
	}
}
PK!fv�i44(license/notices/trial-expired-notice.phpnu�[���<?php
namespace ElementorPro\License\Notices;

use Elementor\Core\Admin\Notices\Base_Notice;
use ElementorPro\License\API as License_API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Trial_Expired_Notice extends Base_Notice {

	/**
	 * Notice ID.
	 */
	const ID = 'elementor_trial_expired_promote';

	/**
	 * @inheritDoc
	 */
	public function should_print() {
		return License_API::is_license_expired() && License_API::is_licence_pro_trial();
	}

	/**
	 * @inheritDoc
	 */
	public function get_config() {
		return [
			'id' => static::ID,
			'title' => esc_html__( 'Your trial has expired', 'elementor-pro' ),
			'description' => __( 'Want to continue using Pro to build your website? Choose the plan that\'s right for you!', 'elementor-pro' ),
			'button' => [
				'text' => esc_html__( 'Go Pro', 'elementor-pro' ),
				'url' => 'https://my.elementor.com/upgrade-subscription/?utm_source=wp-notification-banner&utm_medium=wp-dash&utm_campaign=pro-trial&utm_content=trial-expired',
				'new_tab' => true,
				'type' => 'cta',
			],
		];
	}
}
PK!��\.LL'license/notices/trial-period-notice.phpnu�[���<?php
namespace ElementorPro\License\Notices;

use Elementor\Core\Admin\Notices\Base_Notice;
use ElementorPro\License\API;
use ElementorPro\License\API as License_API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Trial_Period_Notice extends Base_Notice {

	/**
	 * Notice ID.
	 */
	const ID = 'elementor_trial_period_promote';

	/**
	 * @inheritDoc
	 */
	public function should_print() {
		return License_API::is_license_active() && License_API::is_licence_pro_trial();
	}

	/**
	 * @inheritDoc
	 */
	public function get_config() {
		$license_data = API::get_license_data();

		$title = sprintf(
		/* translators: %s: Days left to the trial */
			esc_html__( 'Your trial expires in %s', 'elementor-pro' ),
			human_time_diff(
				current_time( 'timestamp' ),
				strtotime( $license_data['expires'] )
			)
		);

		return [
			'id' => static::ID,
			'title' => $title,
			'description' => __( 'Find the plan that matches your needs and enjoy Pro widgets, templates, and support for a whole year.', 'elementor-pro' ),
			'button' => [
				'text' => esc_html__( 'Choose your plan', 'elementor-pro' ),
				'url' => 'https://my.elementor.com/upgrade-subscription/?utm_source=wp-notification-banner&utm_medium=wp-dash&utm_campaign=pro-trial&utm_content=trial-period',
				'new_tab' => true,
				'type' => 'cta',
			],
		];
	}
}
PK!�a��`�`license/admin.phpnu�[���<?php
namespace ElementorPro\License;

use Elementor\Core\Admin\Admin_Notices;
use Elementor\Settings;
use Elementor\Utils;
use ElementorPro\Core\Connect\Apps\Activate;
use ElementorPro\License\Notices\Trial_Expired_Notice;
use ElementorPro\License\Notices\Trial_Period_Notice;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Admin {

	const PAGE_ID = 'elementor-license';

	const LICENSE_KEY_OPTION_NAME = 'elementor_pro_license_key';
	const LICENSE_DATA_OPTION_NAME = '_elementor_pro_license_data';
	const LICENSE_DATA_FALLBACK_OPTION_NAME = self::LICENSE_DATA_OPTION_NAME . '_fallback';

	public static $updater = null;

	public static function get_errors_details() {
		$license_page_link = self::get_url();

		return [
			API::STATUS_EXPIRED => [
				'title' => esc_html__( 'Your License Has Expired', 'elementor-pro' ),
				'description' => sprintf(
					/* translators: 1: Link open tag, 2: Link closing tag. */
					esc_html__( '%1$sRenew your license today%2$s, to keep getting feature updates, premium support and unlimited access to the template library.', 'elementor-pro' ),
					sprintf( '<a href="%s" target="_blank">', API::RENEW_URL ),
					'</a>'
				),
				'button_text' => esc_html__( 'Renew License', 'elementor-pro' ),
				'button_url' => API::RENEW_URL,
			],
			API::STATUS_DISABLED => [
				'title' => esc_html__( 'Your License Is Inactive', 'elementor-pro' ),
				'description' => sprintf(
					/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
					esc_html__( '%1$sYour license key has been cancelled%2$s (most likely due to a refund request). Please consider acquiring a new license.', 'elementor-pro' ),
					'<strong>',
					'</strong>'
				),
				'button_text' => esc_html__( 'Activate License', 'elementor-pro' ),
				'button_url' => $license_page_link,
			],
			API::STATUS_INVALID => [
				'title' => esc_html__( 'License Invalid', 'elementor-pro' ),
				'description' => sprintf(
					/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
					esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL of your site (including HTTPS/SSL migration). Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
					'<strong>',
					'</strong>'
				),
				'button_text' => esc_html__( 'Reactivate License', 'elementor-pro' ),
				'button_url' => $license_page_link,
			],
			API::STATUS_SITE_INACTIVE => [
				'title' => esc_html__( 'License Mismatch', 'elementor-pro' ),
				'description' => sprintf(
					/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
					esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL. Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
					'<strong>',
					'</strong>'
				),
				'button_text' => esc_html__( 'Reactivate License', 'elementor-pro' ),
				'button_url' => $license_page_link,
			],
		];
	}

	public static function deactivate() {
		API::deactivate_license();

		delete_option( self::LICENSE_KEY_OPTION_NAME );
		delete_option( self::LICENSE_DATA_OPTION_NAME );
		delete_option( self::LICENSE_DATA_FALLBACK_OPTION_NAME );
	}

	private static function get_hidden_license_key() {
		$input_string = self::get_license_key();

		$start = 5;
		$length = mb_strlen( $input_string ) - $start - 5;

		$mask_string = preg_replace( '/\S/', 'X', $input_string );
		$mask_string = mb_substr( $mask_string, $start, $length );
		$input_string = substr_replace( $input_string, $mask_string, $start, $length );

		return $input_string;
	}

	public static function get_updater_instance() {
		if ( null === self::$updater ) {
			self::$updater = new Updater();
		}

		return self::$updater;
	}

	public static function get_license_key() {
		return 'activated';
	}

	public static function set_license_key( $license_key ) {
		return update_option( self::LICENSE_KEY_OPTION_NAME, 'activated' );
	}

	public function action_activate_license() {
		check_admin_referer( 'elementor-pro-license' );





		$license_key = 'activated';

		$data = API::activate_license( $license_key );



		if ( API::STATUS_VALID !== $data['license'] ) {
			$error_msg = API::get_error_message( $data['error'] );
			wp_die( wp_kses_post( $error_msg ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [
				'back_link' => true,
			] );
		}

		self::set_license_key( $license_key );
		API::set_license_data( $data );

		wp_safe_redirect( $_POST['_wp_http_referer'] );
		die;
	}

	public function action_deactivate_license() {
		check_admin_referer( 'elementor-pro-license' );

		$this->deactivate();

		wp_safe_redirect( $_POST['_wp_http_referer'] );
		die;
	}

	public function register_page() {
		$menu_text = esc_html__( 'License', 'elementor-pro' );

		add_submenu_page(
			Settings::PAGE_ID,
			$menu_text,
			$menu_text,
			'manage_options',
			self::PAGE_ID,
			[ $this, 'display_page' ]
		);
	}

	public static function get_url() {
		return admin_url( 'admin.php?page=' . self::PAGE_ID );
	}

	public function display_page() {
		$license_key = self::get_license_key();

		$is_manual_mode = ( isset( $_GET['mode'] ) && 'manually' === $_GET['mode'] );

		if ( $is_manual_mode ) {
			$this->render_manually_activation_widget( $license_key );
			return;
		}

		?>
		<div class="wrap elementor-admin-page-license">
			<h2 class="wp-heading-inline"><?php echo esc_html__( 'License Settings', 'elementor-pro' ); ?></h2>

			<form class="elementor-license-box" method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
				<?php wp_nonce_field( 'elementor-pro-license' ); ?>

				<?php if ( empty( $license_key ) ) : ?>

					<h3><?php echo esc_html__( 'Activate License', 'elementor-pro' ); ?></h3>

					<p><?php
						// PHPCS - It's already escaped.
						echo wp_kses_post( $this->get_activate_message() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					?></p>

					<div class="elementor-box-action">
						<a class="button button-primary" href="<?php echo esc_url( $this->get_connect_url() ); ?>">
							<?php echo esc_html__( 'Connect & Activate', 'elementor-pro' ); ?>
						</a>
					</div>
				<?php else :
					$license_data = API::get_license_data( true ); ?>
					<h3><?php echo esc_html__( 'Status', 'elementor-pro' ); ?>:
						<?php if ( API::STATUS_EXPIRED === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Expired', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_SITE_INACTIVE === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Mismatch', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_INVALID === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Invalid', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_DISABLED === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Disabled', 'elementor-pro' ); ?></span>
						<?php else : ?>
							<span style="color: #008000; font-style: italic;"><?php echo esc_html__( 'Active', 'elementor-pro' ); ?></span>
						<?php endif; ?>

						<small>
							<a class="button" href="https://go.elementor.com/my-account/">
								<?php echo esc_html__( 'My Account', 'elementor-pro' ); ?>
							</a>
						</small>
					</h3>

					<?php if ( API::STATUS_EXPIRED === $license_data['license'] ) : ?>
						<p class="e-row-divider-bottom elementor-admin-alert elementor-alert-danger">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag, 3: Link open tag, 4: Link closing tag. */
								esc_html__( '%1$sYour License Has Expired.%2$s %3$sRenew your license today%4$s to keep getting feature updates, premium support and unlimited access to the template library.', 'elementor-pro' ),
								'<strong>',
								'</strong>',
								'<a href="https://go.elementor.com/renew/" target="_blank">',
								'</a>'
							); ?>
						</p>
					<?php endif; ?>

					<?php if ( API::STATUS_SITE_INACTIVE === $license_data['license'] ) : ?>
						<p class="e-row-divider-bottom elementor-admin-alert elementor-alert-danger">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
								esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL of your site (including HTTPS/SSL migration). Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
								'<strong>',
								'</strong>'
							); ?>
						</p>
					<?php endif; ?>

					<?php if ( API::STATUS_INVALID === $license_data['license'] ) : ?>
						<p class="e-row-divider-bottom elementor-admin-alert elementor-alert-info">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
								esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL of your site (including HTTPS/SSL migration). Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
								'<strong>',
								'</strong>'
							); ?>
						</p>
					<?php endif; ?>

					<p class="e-row-stretch e-row-divider-bottom">
						<span>
						<?php
						$connected_user = $this->get_connected_account();

						if ( $connected_user ) :
							echo sprintf(
								esc_html__( 'You\'re connected as %s.', 'elementor-pro' ),
								'<strong>' . esc_attr( $this->get_connected_account() ) . '</strong>'
							);
						endif;
						?>

						<?php echo esc_html__( 'Want to activate this website by a different license?', 'elementor-pro' ); ?>
						</span>
						<a class="button button-primary" href="<?php echo esc_url( $this->get_switch_license_url() ); ?>">
							<?php echo esc_html__( 'Switch Account', 'elementor-pro' ); ?>
						</a>
					</p>

					<p class="e-row-stretch">
						<span><?php echo esc_html__( 'Want to deactivate the license for any reason?', 'elementor-pro' ); ?></span>
						<a class="button" href="<?php echo esc_url( $this->get_deactivate_url() ); ?>">
							<?php echo esc_html__( 'Disconnect', 'elementor-pro' ); ?>
						</a>
					</p>
				<?php endif; ?>
			</form>
		</div>
		<?php
	}

	private function is_block_editor_page() {
		$current_screen = get_current_screen();

		if ( method_exists( $current_screen, 'is_block_editor' ) && $current_screen->is_block_editor() ) {
			return true;
		}

		if ( function_exists( 'is_gutenberg_page' ) && is_gutenberg_page() ) {
			return true;
		}

		return false;
	}

	/**
	 * @deprecated 2.9.0 Use ElementorPro\License\API::is_license_about_to_expire() instead
	 *
	 * @return bool
	 */
	public function is_license_about_to_expire() {
		return Api::is_license_about_to_expire();
	}

	public function admin_license_details() {
		if ( ! current_user_can( 'manage_options' ) ) {
			return;
		}

		if ( $this->is_block_editor_page() ) {
			return;
		}

		$renew_url = API::RENEW_URL;

		$license_key = self::get_license_key();

		/**
		 * @var Admin_Notices $admin_notices
		 */
		$admin_notices = Plugin::elementor()->admin->get_component( 'admin-notices' );

		if ( empty( $license_key ) ) {
			$admin_notices->print_admin_notice( [
				'title' => esc_html__( 'Welcome to Elementor Pro!', 'elementor-pro' ),
				'description' => $this->get_activate_message(),
				'button' => [
					'text' => '<i class="dashicons dashicons-update" aria-hidden="true"></i>' . esc_html__( 'Connect & Activate', 'elementor-pro' ),
					'url' => $this->get_connect_url(),
				],
			] );

			return;
		}

		$license_data = API::get_license_data();
		if ( empty( $license_data['license'] ) ) {
			return;
		}

		// When the license with pro trial, the messages here are not relevant, pro trial messages will be shown instead.
		if ( API::is_licence_pro_trial() ) {
			return;
		}

		$errors = self::get_errors_details();

		if ( isset( $errors[ $license_data['license'] ] ) ) {
			$error_data = $errors[ $license_data['license'] ];

			$admin_notices->print_admin_notice( [
				'title' => $error_data['title'],
				'description' => $error_data['description'],
				'button' => [
					'text' => $error_data['button_text'],
					'url' => $error_data['button_url'],
				],
			] );

			return;
		}

		if ( API::is_license_active() ) {
			if ( API::is_license_about_to_expire() ) {
				$title = sprintf( esc_html__( 'Your License Will Expire in %s.', 'elementor-pro' ), human_time_diff( current_time( 'timestamp' ), strtotime( $license_data['expires'] ) ) );

				if ( isset( $license_data['renewal_discount'] ) && 0 < $license_data['renewal_discount'] ) {
					$description = sprintf(
						/* translators: 1: Link open tag, 2: Link closing tag, 3: Discount percent */
						esc_html__( '%1$sRenew your license today%2$s, and get an exclusive, time-limited %3$s discount.', 'elementor-pro' ),
						sprintf( '<a href="%s" target="_blank">', $renew_url ),
						'</a>',
						$license_data['renewal_discount'] . '%'
					);
				} else {
					$description = sprintf(
						/* translators: 1: Link open tag, 2: Link closing tag. */
						esc_html__( '%1$sRenew now and enjoy updates%2$s, support and Pro templates for another year.', 'elementor-pro' ),
						sprintf( '<a href="%s" target="_blank">', $renew_url ),
						'</a>'
					);
				}

				$admin_notices->print_admin_notice( [
					'title' => $title,
					'description' => $description,
					'button' => [
						'text' => esc_html__( 'Renew License', 'elementor-pro' ),
						'url' => $renew_url,
					],
				] );
			}
		}
	}

	public function filter_library_get_templates_args( $body_args ) {
		$license_key = self::get_license_key();

		if ( ! empty( $license_key ) ) {
			$body_args['license'] = $license_key;
			$body_args['url'] = home_url();
		}

		return $body_args;
	}

	public function handle_tracker_actions() {
		// Show tracker notice after 24 hours from Pro installed time.
		$is_need_to_show = ( $this->get_installed_time() < strtotime( '-24 hours' ) );

		$is_dismiss_notice = ( '1' === get_option( 'elementor_tracker_notice' ) );
		$is_dismiss_pro_notice = ( '1' === get_option( 'elementor_pro_tracker_notice' ) );

		if ( $is_need_to_show && $is_dismiss_notice && ! $is_dismiss_pro_notice ) {
			delete_option( 'elementor_tracker_notice' );
		}

		if ( ! isset( $_GET['elementor_tracker'] ) ) {
			return;
		}

		if ( 'opt_out' === $_GET['elementor_tracker'] ) {
			update_option( 'elementor_pro_tracker_notice', '1' );
		}
	}

	private function get_installed_time() {
		$installed_time = get_option( '_elementor_pro_installed_time' );

		if ( ! $installed_time ) {
			$installed_time = time();
			update_option( '_elementor_pro_installed_time', $installed_time );
		}

		return $installed_time;
	}

	public function plugin_action_links( $links ) {
		$license_key = self::get_license_key();

		if ( empty( $license_key ) ) {
			$links['active_license'] = sprintf( '<a href="%s" class="elementor-plugins-gopro">%s</a>', self::get_connect_url(), esc_html__( 'Connect & Activate', 'elementor-pro' ) );
		}

		return $links;
	}

	private function handle_dashboard_admin_widget() {
		add_action( 'elementor/admin/dashboard_overview_widget/after_version', function() {
			/* translators: %s: Elementor Pro version. */
			$label = sprintf( esc_html__( 'Elementor Pro v%s', 'elementor-pro' ), ELEMENTOR_PRO_VERSION );

			echo '<span class="e-overview__version">';
			Utils::print_unescaped_internal_string( $label );
			echo '</span>';
		} );

		add_filter( 'elementor/admin/dashboard_overview_widget/footer_actions', function( $additions_actions ) {
			unset( $additions_actions['go-pro'] );

			// Keep Visible to administrator role or for the Pro license owner, remove for non-owner lower-level user types.
			if ( ! current_user_can( 'manage_options' ) && isset( $additions_actions['find_an_expert'] ) ) {
				unset( $additions_actions['find_an_expert'] );
			}

			return $additions_actions;
		}, 550 );
	}

	public function add_finder_item( array $categories ) {
		$categories['settings']['items']['license'] = [
			'title' => esc_html__( 'License', 'elementor-pro' ),
			'url' => self::get_url(),
		];

		return $categories;
	}

	private function render_manually_activation_widget( $license_key ) {
		?>
		<div class="wrap elementor-admin-page-license">
			<h2><?php echo esc_html__( 'License Settings', 'elementor-pro' ); ?></h2>

			<form class="elementor-license-box" method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
				<?php wp_nonce_field( 'elementor-pro-license' ); ?>

				<h3>
					<?php echo esc_html__( 'Activate Manually', 'elementor-pro' ); ?>
					<?php if ( empty( $license_key ) ) : ?>
						<small>
							<a href="<?php echo esc_url( $this->get_connect_url() ); ?>" class="elementor-connect-link">
								<?php echo esc_html__( 'Connect & Activate', 'elementor-pro' ); ?>
							</a>
						</small>
					<?php endif; ?>
				</h3>

				<?php if ( empty( $license_key ) ) : ?>

					<p><?php echo esc_html__( 'Enter your license key here, to activate Elementor Pro, and get feature updates, premium support and unlimited access to the template library.', 'elementor-pro' ); ?></p>

					<ol>
						<li>
							<?php printf(
								/* translators: 1: Link open tag, 2: Link closing tag. */
								esc_html__( 'Log in to %1$syour account%2$s to get your license key.', 'elementor-pro' ),
								'<a href="https://go.elementor.com/my-license/" target="_blank">',
								'</a>'
							); ?>
						</li>
						<li>
							<?php printf(
								/* translators: 1: Link open tag, 2: Link closing tag. */
								esc_html__( 'If you don\'t yet have a license key, %1$sget Elementor Pro now%2$s.', 'elementor-pro' ),
								'<a href="https://go.elementor.com/pro-license/" target="_blank">',
								'</a>'
							); ?>
						</li>
						<li>
							<?php echo esc_html__( 'Copy the license key from your account and paste it below.', 'elementor-pro' ); ?>
						</li>
					</ol>

					<input type="hidden" name="action" value="elementor_pro_activate_license"/>

					<label for="elementor-pro-license-key"><?php echo esc_html__( 'Your License Key', 'elementor-pro' ); ?></label>

					<input id="elementor-pro-license-key" class="regular-text code" name="elementor_pro_license_key" type="text" value="" placeholder="<?php esc_attr_e( 'Please enter your license key here', 'elementor-pro' ); ?>"/>

					<input type="submit" class="button button-primary" value="<?php esc_attr_e( 'Activate', 'elementor-pro' ); ?>"/>

					<p class="description"><?php printf( esc_html__( 'Your license key should look something like this: %s', 'elementor-pro' ), '<code>fb351f05958872E193feb37a505a84be</code>' ); ?></p>

				<?php else :
					$license_data = API::get_license_data( true ); ?>
					<input type="hidden" name="action" value="elementor_pro_deactivate_license"/>

					<label for="elementor-pro-license-key"><?php echo esc_html__( 'Your License Key', 'elementor-pro' ); ?>:</label>

					<input id="elementor-pro-license-key" class="regular-text code" type="text" value="<?php echo esc_attr( self::get_hidden_license_key() ); ?>" disabled/>

					<input type="submit" class="button" value="<?php esc_attr_e( 'Deactivate', 'elementor-pro' ); ?>"/>

					<p>
						<?php echo esc_html__( 'Status', 'elementor-pro' ); ?>:
						<?php if ( API::STATUS_EXPIRED === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Expired', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_SITE_INACTIVE === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Mismatch', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_INVALID === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Invalid', 'elementor-pro' ); ?></span>
						<?php elseif ( API::STATUS_DISABLED === $license_data['license'] ) : ?>
							<span style="color: #ff0000; font-style: italic;"><?php echo esc_html__( 'Disabled', 'elementor-pro' ); ?></span>
						<?php else : ?>
							<span style="color: #008000; font-style: italic;"><?php echo esc_html__( 'Active', 'elementor-pro' ); ?></span>
						<?php endif; ?>
					</p>

					<?php if ( API::STATUS_EXPIRED === $license_data['license'] ) : ?>
						<p class="elementor-admin-alert elementor-alert-danger">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag, 3: Link open tag, 4: Link closing tag. */
								esc_html__( '%1$sYour License Has Expired.%2$s %3$sRenew your license today%4$s to keep getting feature updates, premium support and unlimited access to the template library.', 'elementor-pro' ),
								'<a href="https://go.elementor.com/renew/" target="_blank">',
								'</a>'
							); ?>
						</p>
					<?php endif; ?>

					<?php if ( API::STATUS_SITE_INACTIVE === $license_data['license'] ) : ?>
						<p class="elementor-admin-alert elementor-alert-danger">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
								esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL of your site (including HTTPS/SSL migration). Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
								'<strong>',
								'</strong>'
							); ?>
						</p>
					<?php endif; ?>

					<?php if ( API::STATUS_INVALID === $license_data['license'] ) : ?>
						<p class="elementor-admin-alert elementor-alert-info">
							<?php printf(
								/* translators: 1: Bold text Open Tag, 2: Bold text closing tag. */
								esc_html__( '%1$sYour license key doesn\'t match your current domain%2$s. This is most likely due to a change in the domain URL of your site (including HTTPS/SSL migration). Please deactivate the license and then reactivate it again.', 'elementor-pro' ),
								'<strong>',
								'</strong>'
							); ?>
						</p>
					<?php endif; ?>
				<?php endif; ?>
			</form>
		</div>
		<?php
	}

	public function on_deactivate_plugin( $plugin ) {
		if ( ELEMENTOR_PRO_PLUGIN_BASE !== $plugin ) {
			return;
		}

		wp_remote_post( 'https://my.elementor.com/api/v1/feedback-pro/', [
			'timeout' => 30,
			'body' => [
				'api_version' => ELEMENTOR_PRO_VERSION,
				'site_lang' => get_bloginfo( 'language' ),
			],
		] );
	}

	private function is_connected() {
		return $this->get_app()->is_connected();
	}

	public function get_connect_url( $params = [] ) {
		$action = $this->is_connected() ? 'activate_pro' : 'authorize';

		return $this->get_app()->get_admin_url( $action, $params );
	}

	private function get_switch_license_url() {
		return $this->get_app()->get_admin_url( 'switch_license' );
	}

	private function get_connected_account() {
		$user = $this->get_app()->get( 'user' );
		$email = '';
		if ( $user ) {
			$email = $user->email;
		}
		return $email;
	}

	private function get_deactivate_url() {
		return $this->get_app()->get_admin_url( 'deactivate' );
	}

	private function get_activate_message() {
		return esc_html__( 'Please activate your license to get feature updates, premium support and unlimited access to the template library.', 'elementor-pro' );
	}

	/**
	 * @return Activate
	 */
	private function get_app() {
		return Plugin::elementor()->common->get_component( 'connect' )->get_app( 'activate' );
	}

	public function __construct() {
		add_action( 'admin_menu', [ $this, 'register_page' ], 800 );
		add_action( 'admin_init', [ $this, 'handle_tracker_actions' ], 9 );
		add_action( 'admin_post_elementor_pro_activate_license', [ $this, 'action_activate_license' ] );
		add_action( 'admin_post_elementor_pro_deactivate_license', [ $this, 'action_deactivate_license' ] );

		add_action( 'admin_notices', [ $this, 'admin_license_details' ], 20 );

		add_filter( 'elementor/core/admin/notices', function( $notices ) {
			$notices[] = new Trial_Period_Notice();
			$notices[] = new Trial_Expired_Notice();

			return $notices;
		} );

		add_action( 'deactivate_plugin', [ $this, 'on_deactivate_plugin' ] );

		// Add the license key to Templates Library requests
		add_filter( 'elementor/api/get_templates/body_args', [ $this, 'filter_library_get_templates_args' ] );
		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_item' ] );
		add_filter( 'plugin_action_links_' . ELEMENTOR_PRO_PLUGIN_BASE, [ $this, 'plugin_action_links' ], 50 );

		$this->handle_dashboard_admin_widget();

		self::get_updater_instance();
	}
}
PK!��iY,,license/updater.phpnu�[���<?php
namespace ElementorPro\License;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Updater {

	public $plugin_version;
	public $plugin_name;
	public $plugin_slug;

	private $response_transient_key;

	public function __construct() {
		$this->plugin_version = ELEMENTOR_PRO_VERSION;
		$this->plugin_name = ELEMENTOR_PRO_PLUGIN_BASE;
		$this->plugin_slug = basename( ELEMENTOR_PRO__FILE__, '.php' );
		$this->response_transient_key = md5( sanitize_key( $this->plugin_name ) . 'response_transient' );

		$this->setup_hooks();
		$this->maybe_delete_transients();
	}

	private function setup_hooks() {
		add_filter( 'pre_set_site_transient_update_plugins', [ $this, 'check_update' ], 50 );
		add_action( 'delete_site_transient_update_plugins', [ $this, 'delete_transients' ] );
		add_filter( 'plugins_api', [ $this, 'plugins_api_filter' ], 10, 3 );

		remove_action( 'after_plugin_row_' . $this->plugin_name, 'wp_plugin_update_row' );
		add_action( 'after_plugin_row_' . $this->plugin_name, [ $this, 'show_update_notification' ], 10, 2 );

		add_action( 'update_option_WPLANG', function () {
			$this->clean_get_version_cache();
		} );

		add_action( 'upgrader_process_complete', function () {
			$this->clean_get_version_cache();
		} );
	}

	public function delete_transients() {
		$this->delete_transient( $this->response_transient_key );
	}

	private function maybe_delete_transients() {
		global $pagenow;

		if ( 'update-core.php' === $pagenow && isset( $_GET['force-check'] ) ) {
			$this->delete_transients();
		}
	}

	private function check_transient_data( $_transient_data ) {
		if ( ! is_object( $_transient_data ) ) {
			$_transient_data = new \stdClass();
		}

		if ( empty( $_transient_data->checked ) ) {
			return $_transient_data;
		}

		$version_info = API::get_version( false /* Use Cache */ );

		if ( is_wp_error( $version_info ) ) {
			return $_transient_data;
		}

		// include an unmodified $wp_version
		include( ABSPATH . WPINC . '/version.php' );

		if ( version_compare( $wp_version, $version_info['requires'], '<' ) ) {
			return $_transient_data;
		}

		if ( ! empty( $version_info['elementor_requires'] ) ) {
			if ( version_compare( ELEMENTOR_VERSION, $version_info['elementor_requires'], '<' ) ) {
				return $_transient_data;
			}
		}

		if ( version_compare( $this->plugin_version, $version_info['new_version'], '<' ) ) {
			$plugin_info = (object) $version_info;
			unset( $plugin_info->sections );

			$_transient_data->response[ $this->plugin_name ] = $plugin_info;
		}

		$_transient_data->last_checked = current_time( 'timestamp' );
		$_transient_data->checked[ $this->plugin_name ] = $this->plugin_version;

		if ( ! isset( $_transient_data->translations ) ) {
			$_transient_data->translations = [];
		}

		$_transient_data->translations = array_filter( $_transient_data->translations, function( $translation ) {
			return ( $translation['slug'] !== $this->plugin_slug );
		} );

		if ( ! empty( $version_info['translations'] ) ) {
			foreach ( $version_info['translations'] as $translation ) {
				$_transient_data->translations[] = [
					'type' => 'plugin',
					'slug' => $this->plugin_slug,
					'language' => $translation['language'],
					'version' => $version_info['new_version'],
					'updated' => $translation['updated'],
					'package' => $translation['package'],
					'autoupdate' => true,
				];
			}
		}

		return $_transient_data;
	}

	public function check_update( $_transient_data ) {
		global $pagenow;

		if ( ! is_object( $_transient_data ) ) {
			$_transient_data = new \stdClass();
		}

		if ( 'plugins.php' === $pagenow && is_multisite() ) {
			return $_transient_data;
		}

		return $this->check_transient_data( $_transient_data );
	}

	public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
		if ( 'plugin_information' !== $_action ) {
			return $_data;
		}

		if ( ! isset( $_args->slug ) || ( $_args->slug !== $this->plugin_slug ) ) {
			return $_data;
		}

		$cache_key = 'elementor_pro_api_request_' . substr( md5( serialize( $this->plugin_slug ) ), 0, 15 );

		$api_request_transient = get_site_transient( $cache_key );

		if ( empty( $api_request_transient ) ) {
			$api_response = API::get_version();

			if ( is_wp_error( $api_response ) ) {
				return $_data;
			}

			$api_request_transient = new \stdClass();

			$api_request_transient->name = 'Elementor Pro';
			$api_request_transient->slug = $this->plugin_slug;
			$api_request_transient->author = '<a href="https://elementor.com/">Elementor.com</a>';
			$api_request_transient->homepage = 'https://elementor.com/';
			$api_request_transient->requires = $api_response['requires'];
			$api_request_transient->tested = $api_response['tested'];

			$api_request_transient->version = $api_response['new_version'];
			$api_request_transient->last_updated = $api_response['last_updated'];
			$api_request_transient->download_link = $api_response['download_link'];
			$api_request_transient->banners = [
				'high' => 'https://ps.w.org/elementor/assets/banner-1544x500.png?rev=1494133',
				'low' => 'https://ps.w.org/elementor/assets/banner-1544x500.png?rev=1494133',
			];

			$api_request_transient->sections = unserialize( $api_response['sections'] );

			// Expires in 1 day
			set_site_transient( $cache_key, $api_request_transient, DAY_IN_SECONDS );
		}

		$_data = $api_request_transient;

		return $_data;
	}

	public function show_update_notification( $file, $plugin ) {
		if ( is_network_admin() ) {
			return;
		}

		if ( ! current_user_can( 'update_plugins' ) ) {
			return;
		}

		if ( ! is_multisite() ) {
			return;
		}

		if ( $this->plugin_name !== $file ) {
			return;
		}

		// Remove our filter on the site transient
		remove_filter( 'pre_set_site_transient_update_plugins', [ $this, 'check_update' ] );

		$update_cache = get_site_transient( 'update_plugins' );
		$update_cache = $this->check_transient_data( $update_cache );
		set_site_transient( 'update_plugins', $update_cache );

		// Restore our filter
		add_filter( 'pre_set_site_transient_update_plugins', [ $this, 'check_update' ] );
	}

	protected function get_transient( $cache_key ) {
		$cache_data = get_option( $cache_key );

		if ( empty( $cache_data['timeout'] ) || current_time( 'timestamp' ) > $cache_data['timeout'] ) {
			// Cache is expired.
			return false;
		}

		return $cache_data['value'];
	}

	protected function set_transient( $cache_key, $value, $expiration = 0 ) {
		if ( empty( $expiration ) ) {
			$expiration = strtotime( '+12 hours', current_time( 'timestamp' ) );
		}

		$data = [
			'timeout' => $expiration,
			'value' => $value,
		];

		update_option( $cache_key, $data, 'no' );
	}

	protected function delete_transient( $cache_key ) {
		delete_option( $cache_key );
	}

	private function clean_get_version_cache() {
		// Since `API::get_version` holds the old language.
		$cache_key = API::TRANSIENT_KEY_PREFIX . ELEMENTOR_PRO_VERSION;

		delete_option( $cache_key );
	}
}
PK!��S�*�*
plugin.phpnu�[���<?php
namespace ElementorPro;

use ElementorPro\Core\Admin\Admin;
use ElementorPro\Core\App\App;
use ElementorPro\Core\Connect;
use Elementor\Core\Responsive\Files\Frontend as FrontendFile;
use Elementor\Utils;
use ElementorPro\Core\Editor\Editor;
use ElementorPro\Core\Modules_Manager;
use ElementorPro\Core\Preview\Preview;
use ElementorPro\Core\Upgrade\Manager as UpgradeManager;
use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Main class plugin
 */
class Plugin {

	/**
	 * @var Plugin
	 */
	private static $_instance;

	/**
	 * @var Modules_Manager
	 */
	public $modules_manager;

	/**
	 * @var UpgradeManager
	 */
	public $upgrade;

	/**
	 * @var Editor
	 */
	public $editor;

	/**
	 * @var Preview
	 */
	public $preview;

	/**
	 * @var Admin
	 */
	public $admin;

	/**
	 * @var App
	 */
	public $app;

	/**
	 * @var License\Admin
	 */
	public $license_admin;

	private $classes_aliases = [
		'ElementorPro\Modules\PanelPostsControl\Module' => 'ElementorPro\Modules\QueryControl\Module',
		'ElementorPro\Modules\PanelPostsControl\Controls\Group_Control_Posts' => 'ElementorPro\Modules\QueryControl\Controls\Group_Control_Posts',
		'ElementorPro\Modules\PanelPostsControl\Controls\Query' => 'ElementorPro\Modules\QueryControl\Controls\Query',
	];

	/**
	 * Throw error on object clone
	 *
	 * The whole idea of the singleton design pattern is that there is a single
	 * object therefore, we don't want the object to be cloned.
	 *
	 * @since 1.0.0
	 * @return void
	 */
	public function __clone() {
		// Cloning instances of the class is forbidden
		_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'elementor-pro' ), '1.0.0' );
	}

	/**
	 * Disable unserializing of the class
	 *
	 * @since 1.0.0
	 * @return void
	 */
	public function __wakeup() {
		// Unserializing instances of the class is forbidden
		_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'elementor-pro' ), '1.0.0' );
	}

	/**
	 * @return \Elementor\Plugin
	 */

	public static function elementor() {
		return \Elementor\Plugin::$instance;
	}

	/**
	 * @return Plugin
	 */
	public static function instance() {
		if ( is_null( self::$_instance ) ) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}

	public function autoload( $class ) {
		if ( 0 !== strpos( $class, __NAMESPACE__ ) ) {
			return;
		}

		$has_class_alias = isset( $this->classes_aliases[ $class ] );

		// Backward Compatibility: Save old class name for set an alias after the new class is loaded
		if ( $has_class_alias ) {
			$class_alias_name = $this->classes_aliases[ $class ];
			$class_to_load = $class_alias_name;
		} else {
			$class_to_load = $class;
		}

		if ( ! class_exists( $class_to_load ) ) {
			$filename = strtolower(
				preg_replace(
					[ '/^' . __NAMESPACE__ . '\\\/', '/([a-z])([A-Z])/', '/_/', '/\\\/' ],
					[ '', '$1-$2', '-', DIRECTORY_SEPARATOR ],
					$class_to_load
				)
			);
			$filename = ELEMENTOR_PRO_PATH . $filename . '.php';

			if ( is_readable( $filename ) ) {
				include( $filename );
			}
		}

		if ( $has_class_alias ) {
			class_alias( $class_alias_name, $class );
		}
	}

	public function enqueue_styles() {
		$suffix = $this->get_assets_suffix();

		$direction_suffix = is_rtl() ? '-rtl' : '';

		$frontend_file_name_base = $this->is_optimized_css_mode() ? 'frontend-lite' : 'frontend';

		$frontend_file_name = $frontend_file_name_base . $direction_suffix . $suffix . '.css';

		$has_custom_file = self::elementor()->breakpoints->has_custom_breakpoints();

		if ( $has_custom_file ) {
			$frontend_file = new FrontendFile( 'custom-pro-' . $frontend_file_name, self::get_responsive_templates_path() . $frontend_file_name );

			$time = $frontend_file->get_meta( 'time' );

			if ( ! $time ) {
				$frontend_file->update();
			}

			$frontend_file_url = $frontend_file->get_url();
		} else {
			$frontend_file_url = ELEMENTOR_PRO_ASSETS_URL . 'css/' . $frontend_file_name;
		}

		wp_enqueue_style(
			'elementor-pro',
			$frontend_file_url,
			[],
			$has_custom_file ? null : ELEMENTOR_PRO_VERSION
		);
	}

	public function enqueue_frontend_scripts() {
		$suffix = $this->get_assets_suffix();

		wp_enqueue_script(
			'elementor-pro-frontend',
			ELEMENTOR_PRO_URL . 'assets/js/frontend' . $suffix . '.js',
			$this->get_frontend_depends(),
			ELEMENTOR_PRO_VERSION,
			true
		);

		if ( self::elementor()->experiments->is_feature_active( 'e_optimized_assets_loading' ) ) {
			wp_enqueue_script( 'pro-elements-handlers' );
		} else {
			wp_enqueue_script( 'pro-preloaded-elements-handlers' );
		}

		$locale_settings = [
			'ajaxurl' => admin_url( 'admin-ajax.php' ),
			'nonce' => wp_create_nonce( 'elementor-pro-frontend' ),
			'urls' => [
				'assets' => apply_filters( 'elementor_pro/frontend/assets_url', ELEMENTOR_PRO_ASSETS_URL ),
				'rest' => get_rest_url(),
			],
		];

		/**
		 * Localize frontend settings.
		 *
		 * Filters the frontend localized settings.
		 *
		 * @since 1.0.0
		 *
		 * @param array $locale_settings Localized settings.
		 */
		$locale_settings = apply_filters( 'elementor_pro/frontend/localize_settings', $locale_settings );

		Utils::print_js_config(
			'elementor-pro-frontend',
			'ElementorProFrontendConfig',
			$locale_settings
		);

		if ( $this->is_assets_loader_exist() ) {
			$this->register_assets();
		}
	}

	public function register_frontend_scripts() {
		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

		wp_register_script(
			'elementor-pro-webpack-runtime',
			ELEMENTOR_PRO_URL . 'assets/js/webpack-pro.runtime' . $suffix . '.js',
			[],
			ELEMENTOR_PRO_VERSION,
			true
		);

		wp_register_script(
			'pro-elements-handlers',
			ELEMENTOR_PRO_URL . 'assets/js/elements-handlers' . $suffix . '.js',
			[
				'elementor-frontend',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		wp_register_script(
			'pro-preloaded-elements-handlers',
			ELEMENTOR_PRO_URL . 'assets/js/preloaded-elements-handlers' . $suffix . '.js',
			[
				'elementor-frontend',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		wp_register_script(
			'smartmenus',
			ELEMENTOR_PRO_URL . 'assets/lib/smartmenus/jquery.smartmenus' . $suffix . '.js',
			[
				'jquery',
			],
			'1.0.1',
			true
		);

		if ( ! $this->is_assets_loader_exist() ) {
			wp_register_script(
				'elementor-sticky',
				ELEMENTOR_PRO_URL . 'assets/lib/sticky/jquery.sticky' . $suffix . '.js',
				[
					'jquery',
				],
				ELEMENTOR_PRO_VERSION,
				true
			);
		}
	}

	public function register_preview_scripts() {
		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';

		wp_enqueue_script(
			'elementor-pro-preview',
			ELEMENTOR_PRO_URL . 'assets/js/preview' . $suffix . '.js',
			[
				'elementor-frontend',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);
	}

	public function get_responsive_stylesheet_templates( $templates ) {
		$templates_paths = glob( $this->get_responsive_templates_path() . '*.css' );

		foreach ( $templates_paths as $template_path ) {
			$file_name = 'custom-pro-' . basename( $template_path );

			$templates[ $file_name ] = $template_path;
		}

		return $templates;
	}

	public function on_elementor_init() {
		$this->modules_manager = new Modules_Manager();

		/** TODO: BC for Elementor v2.4.0 */
		if ( class_exists( '\Elementor\Core\Upgrade\Manager' ) ) {
			$this->upgrade = UpgradeManager::instance();
		}

		/**
		 * Elementor Pro init.
		 *
		 * Fires on Elementor Pro init, after Elementor has finished loading but
		 * before any headers are sent.
		 *
		 * @since 1.0.0
		 */
		do_action( 'elementor_pro/init' );
	}

	/**
	 * @param \Elementor\Core\Base\Document $document
	 */
	public function on_document_save_version( $document ) {
		$document->update_meta( '_elementor_pro_version', ELEMENTOR_PRO_VERSION );
	}

	private function get_frontend_depends() {
		$frontend_depends = [
			'elementor-pro-webpack-runtime',
			'elementor-frontend-modules',
		];

		if ( ! $this->is_assets_loader_exist() ) {
			$frontend_depends[] = 'elementor-sticky';
		}

		return $frontend_depends;
	}

	private function get_responsive_templates_path() {
		return ELEMENTOR_PRO_ASSETS_PATH . 'css/templates/';
	}

	private function add_subscription_template_access_level_to_settings( $settings ) {
		// Core >= 3.2.0
		if ( isset( $settings['library_connect']['current_access_level'] ) ) {
			$settings['library_connect']['current_access_level'] = API::get_library_access_level();
		}

		return $settings;
	}

	private function setup_hooks() {
		add_action( 'elementor/init', [ $this, 'on_elementor_init' ] );

		add_action( 'elementor/frontend/before_register_scripts', [ $this, 'register_frontend_scripts' ] );
		add_action( 'elementor/preview/enqueue_scripts', [ $this, 'register_preview_scripts' ] );

		add_action( 'elementor/frontend/before_enqueue_scripts', [ $this, 'enqueue_frontend_scripts' ] );
		add_action( 'elementor/frontend/after_enqueue_styles', [ $this, 'enqueue_styles' ] );

		add_filter( 'elementor/core/responsive/get_stylesheet_templates', [ $this, 'get_responsive_stylesheet_templates' ] );
		add_action( 'elementor/document/save_version', [ $this, 'on_document_save_version' ] );

		add_filter( 'elementor/editor/localize_settings', function ( $settings ) {
			return $this->add_subscription_template_access_level_to_settings( $settings );
		}, 11 /** After Elementor Core (Library) */ );
	}

	private function is_optimized_css_mode() {
		$is_optimized_css_loading = self::elementor()->experiments->is_feature_active( 'e_optimized_css_loading' );

		return ! Utils::is_script_debug() && $is_optimized_css_loading && ! self::elementor()->preview->is_preview_mode();
	}

	private function get_assets() {
		$suffix = $this->get_assets_suffix();

		return [
			'scripts' => [
				'e-sticky' => [
					'src' => ELEMENTOR_PRO_URL . 'assets/lib/sticky/jquery.sticky' . $suffix . '.js',
					'version' => ELEMENTOR_PRO_VERSION,
					'dependencies' => [
						'jquery',
					],
				],
			],
		];
	}

	private function register_assets() {
		$assets = $this->get_assets();

		if ( $assets ) {
			self::elementor()->assets_loader->add_assets( $assets );
		}
	}

	private function is_assets_loader_exist() {
		return ! ! self::elementor()->assets_loader;
	}

	/**
	 * Plugin constructor.
	 */
	private function __construct() {
		spl_autoload_register( [ $this, 'autoload' ] );

		new Connect\Manager();

		$this->setup_hooks();

		$this->editor = new Editor();

		$this->preview = new Preview();

		$this->app = new App();

		if ( is_admin() ) {
			$this->admin = new Admin();
			$this->license_admin = new License\Admin();
		}
	}

	private function get_assets_suffix() {
		return defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
	}

	final public static function get_title() {
		return esc_html__( 'Elementor Pro', 'elementor-pro' );
	}
}

if ( ! defined( 'ELEMENTOR_PRO_TESTS' ) ) {
	// In tests we run the instance manually.
	Plugin::instance();
}
PK!��v'��
karma.conf.jsnu�[���const karmaCoreConfig = require( '../elementor/karma.conf' );

module.exports = function( config ) {
	karmaCoreConfig( config );

	// Set base path.
	config.basePath = __dirname + '/../elementor/';

	// Change qunit-tests to pro.
	Object.entries( config.files ).some( ( [ key, path ] ) => {
		if ( 'assets/js/qunit-tests.js' === path ) {
			config.files[ key ] = __dirname + '/' + path;
			return true;
		}
		return false;
	} );
};
PK!R��b����
changelog.txtnu�[���# Elementor Pro - by Elementor.com

#### 3.5.2 - 2021-11-28
* Tweak: Adjusted license mechanism to support trial period
* Fix: Updates made to Global Widgets do not reflect accordingly to linked widgets ([#16815](https://github.com/elementor/elementor/issues/16815))
* Fix: Hamburger toggle button doesn't change to “close” when menu is collapsed in Nav Menu widget when Inline Font Awesome experiment is active
* Fix: Global Widget cannot be unlinked

#### 3.5.1 - 2021-11-10
* Fix: Inline HTML elements appear as plain text in Animated Headline widget ([#16816](https://github.com/elementor/elementor/issues/16816))
* Fix: Dropdown items inherited values from Main Menu space between control in Nav Menu widget ([#16815]((https://github.com/elementor/elementor/issues/16815))
* Fix: Order Summary titles style controls not applying on various devices in Cart widget 
* Fix: Panel "Need Help" link is not correct in WooCommerce section in Site Settings

#### 3.5.0 - 2021-11-01

* New: WooCommerce Checkout widget - Fully customize the content and style of your checkout page ([#15282](https://github.com/elementor/elementor/issues/15282), [#15990](https://github.com/elementor/elementor/issues/15990), [#11014](https://github.com/elementor/elementor/issues/11014), [#13218](https://github.com/elementor/elementor/issues/13218), [#5383](https://github.com/elementor/elementor/issues/5383))
* New: WooCommerce Cart widget - Style your cart page the way you want with design flexibility ([#15282](https://github.com/elementor/elementor/issues/15282), [#11014](https://github.com/elementor/elementor/issues/11014), [#13218](https://github.com/elementor/elementor/issues/13218), [#5383](https://github.com/elementor/elementor/issues/5383))
* New: WooCommerce My Account widget - Create a custom design for your my account pages ([#11014](https://github.com/elementor/elementor/issues/11014), [#5383](https://github.com/elementor/elementor/issues/5383))
* New: Progress Tracker widget - Motivate your customers to keep reading your site content ([#16576](https://github.com/elementor/elementor/issues/16576))
* New: Meet WooCommerce Site Settings - Set your store pages within Elementor
* Experiment: Scroll Snap - Set the scene of every scroll ([#10752](https://github.com/elementor/elementor/issues/10752))
* Tweak: Changed infrastructure to prevent rendering bugs in Global Widget ([#16354](https://github.com/elementor/elementor/issues/16354))
* Tweak: Added the option to open submission in a new tab in Form Submissions ([#14967](https://github.com/elementor/elementor/issues/14967))
* Tweak: Added various responsive controls in Posts widget ([#1851](https://github.com/elementor/elementor/issues/1851))
* Tweak: Split Title and Price styling controls in Price List widget ([#7688](https://github.com/elementor/elementor/issues/7688))
* Tweak: Added various responsive capabilities to controls in Posts Archive widget
* Tweak: Adjusted Motion Effects module to support future feature
* Tweak: Changed admin notice content when Pro installed without Core installed
* Tweak: Cleanup in `wp_options` table
* Tweak: Changed Connect logic in Elementor top bar to simplify the connect process
* Tweak: Marked new Theme Builder as an Experiment and set to default for new sites
* Tweak: Enforced better security policies in various widgets and modules
* Tweak: Added load more button functionality to the Posts Archive widget
* Tweak: Renamed Elementor's responsive SCSS variables
* Tweak: Added dividers to horizontal layout in Nav Menu widget
* Tweak: Removed Google+ social network from Share Buttons widget
* Tweak: Convert usage of old Responsive class to use the new Breakpoints Manager
* Fix: jQuery in Heading doesn't work for not logged in users in Custom Code ([#14515](https://github.com/elementor/elementor/issues/14515), [#14266](https://github.com/elementor/elementor/issues/14266))
* Fix: Menu animation causing page horizontal scroll in Nav Menu widget ([#15184](https://github.com/elementor/elementor/issues/15184))
* Fix: Wrong function call in Table of Content & Post Excerpt widgets ([#16547](https://github.com/elementor/elementor/issues/16547))
* Fix: Slides to Scroll control can't be set to Default if Widescreen mode has a value in Testimonial Carousel widget
* Fix: Sticky offset not working properly when changing device mode
* Fix: UTF character issues when exporting CSV file in Form Submissions
* Fix: Load More functionality doesn't work when the Posts widget placed inside an Archive template
* Fix: UI glitches and editing issues in Video Playlist widget

#### 3.4.2 - 2021-10-12

* Fix: Icons color style conflicts when Font-Awesome Inline experiment is active in Share Buttons widget ([#16435](https://github.com/elementor/elementor/issues/16435))
* Fix: Mini Cart hides page content when closed in Menu Cart widget ([#16305](https://github.com/elementor/elementor/issues/16305))
* Fix: UI glitches in the Editor edit mode when inserting Post Content widget and Font-Awesome Inline experiment is active in Single Post template ([#16358](https://github.com/elementor/elementor/issues/16358))
* Fix: Slides per view controls disappeared from multiple breakpoints in Testimonial Carousel
* Fix: Product variations UI glitch in Menu Cart widget
* Fix: Buttons UI glitch on Safari browser in Menu Cart widget

#### 3.4.1 - 2021-09-01

* Fix: Sticky functionality is not working if the Additional Custom Breakpoints experiment is active ([#16186](https://github.com/elementor/elementor/issues/16186))
* Fix: Slideshow skin UI glitch in Media Carousel widget
* Fix: Product price typography weight control is not working as expected in Menu Cart widget

#### 3.4.0 - 2021-09-01
* Tweak: Added new Mini Cart layout type in Menu Cart widget ([#11312](https://github.com/elementor/elementor/issues/11312))
* Tweak: Added styling options for Cart, Products, and Cart buttons in Menu Cart widget ([#14952](https://github.com/elementor/elementor/issues/14952))
* Tweak: Added the ability to open cart automatically when an item is added in Menu Cart widget ([#14119](https://github.com/elementor/elementor/issues/14119))
* Tweak: Added the ability to remove an item from cart without reloading the page with an AJAX request ([#9531](https://github.com/elementor/elementor/issues/9531), [#10875](https://github.com/elementor/elementor/issues/10875), [#11309](https://github.com/elementor/elementor/issues/11309))
* Tweak: Added Load More AJAX functionality to Posts widget ([#12126](https://github.com/elementor/elementor/issues/12126), [#1284](https://github.com/elementor/elementor/issues/1284), [#14557](https://github.com/elementor/elementor/issues/14557))
* Tweak: Added Vimeo support to the Video Playlist widget ([#15319](https://github.com/elementor/elementor/issues/15319))
* Tweak: Improved asset loading performance by serving lighter JS files ([#8572](https://github.com/elementor/elementor/issues/8572))
* Tweak: Added query string to the URL only after the first video is played in Video Playlist widget ([#15348](https://github.com/elementor/elementor/issues/15348))
* Tweak: Added various layout options with more responsive controls and cart structure options in Menu Cart widget
* Tweak: Added the option to open the menu cart by click or hover in Menu Cart widget
* Tweak: Added the ability to choose a specific product to draw data from in WooCommerce Dynamic tags
* Tweak: Removed auto-scroll to the widget location when arriving from external URL in Video Playlist widget
* Tweak: Removed the Video Playlist widget from the Experiments list
* Tweak: Added descriptive error messages for MailChimp action after submit and on form submit in Forms widget
* Tweak: Added tooltip trigger None and Hover for link in Hotspot widget
* Tweak: Added responsive controls to Offset and Effects Offset in Sticky options
* Tweak: Added responsive control to Alignment in Testimonial Carousel widget
* Tweak: Adjusted Motion Effects module to support future feature
* Tweak: Added future compatibility to support better loading of `eicons` font
* Tweak: Changed Rename Part title and button color in Theme Builder
* Fix: Products don't appear on the cart while editing in Menu Cart widget ([#15451](https://github.com/elementor/elementor/issues/15451))
* Fix: Videos always start muted in the Video Playlist widget ([#15292](https://github.com/elementor/elementor/issues/15292))
* Fix: Unnecessary spacing if submenu indicator is set to None in Nav Menu widget ([#15365](https://github.com/elementor/elementor/issues/15365))
* Fix: MailChimp double opt-in feature doesn't work in Forms widget
* Fix: Fetching MailChimp groups field blocks the loading of the rest of the fields in the Form widget
* Fix: Missing field IDs causes forms not to be sent in Forms widget
* Fix: Full Content Skin is not working properly when inserted twice on the same page in Posts widget
* Fix: Avoid Duplicates option doesn't exclude manual selections in Posts widget
* Fix: Submenu indicator alignment issue in Nav menu widget
* Fix: Query control deprecated message appears when debug mode is defined
* Fix: Tweet Button icon incorrect color and size when the icon is rendered as SVG in Blockquote widget
* Fix: Video icon size is not changing on Active state in Video Playlist widget
* Fix: Header icon color is not working in Table Of Content widget
* Fix: Icons style glitches when Font Awesome Inline experiment is active in Video Playlist widget
* Fix: Bullet markers are not visible on preview mode when Font Awesome Inline experiment is active in Table of Content widget
* Fix: UI Glitch when Font-Awesome Inline experiment is active in Price Table widget
* Fix: Submenu Indicator appears larger when Font Awesome Inline experiment is active in Nav Menu widget
* Fix: Part name is deleted when clicking on the "Change" Button without changing the name in Theme Builder
* Fix: Redundant pagination queries in the Editor
* Deprecated: Remove all usages of `Elementor\Utils::get_create_new_post_url()`
* Deprecated: See all deprecations to this version in our [Developers Deprecations Post](https://developers.elementor.com/v3-4-planned-deprecations/)

#### 3.3.8 - 2021-08-23
* Fix: Products grid width issue when adjusting columns and rows in Products widget ([#16001](https://github.com/elementor/elementor/issues/16001))
* Fix: Font Awesome Inline experiment causes icons glitch in Price Table widget ([#16045](https://github.com/elementor/elementor/issues/16045))
* Fix: reCAPTCHA v3 `z-index` is lower than the Section's background color
* Fix: Style missing when Font Awesome inline experiment is active in Post Info widget
* Fix: Font Awesome icons were not loaded in Post Info widget
* Fix: Zero character can't be used as a placeholder in Number field in Form widget
* Fix: Carousels are not working properly in the Editor when Additional Custom Breakpoints experiment is active

#### 3.3.7 - 2021-08-15
* Tweak: Added support for Additional Custom Breakpoints in Nav Menu widget
* Tweak: Added support for Additional Custom breakpoints in Motion Effects
* Fix: Columns didn't respond to changes in Gallery widget if Additional Custom Breakpoints Experiment is active

#### 3.3.6 - 2021-08-10
* Tweak: Added support for future feature in Nav Menu widget
* Fix: WooCommerce responsive grid styles are not being reflected in Product Related widget ([#15857](https://github.com/elementor/elementor/issues/15857))
* Fix: WooCommerce responsive grid styles are not being reflected in Upsells widget ([#15857](https://github.com/elementor/elementor/issues/15857))
* Fix: WooCommerce responsive grid styles are not being reflected in Product Categories widget ([#15857](https://github.com/elementor/elementor/issues/15857))

#### 3.3.5 - 2021-08-01
* Fix: Responsive layout glitches in Products and Products Archive widgets ([#15773](https://github.com/elementor/elementor/issues/15773))
* Fix: reCAPTCHA V3 integration conflict with required fields validation in Forms widget

#### 3.3.4 - 2021-07-21
* Fix: Grid layout glitch in WooCommerce Products Archive widget ([#15718](https://github.com/elementor/elementor/issues/15718))

#### 3.3.3 - 2021-07-20
* Tweak: Added a descriptive message in Collect Submissions action after submit
* Tweak: Added future compatibility for Additional Custom Breakpoints for Pro widgets
* Fix: Some widget style breaks when Improved CSS Loading Experiment is active in certain cases ([#15632](https://github.com/elementor/elementor/issues/15632), [#15683](https://github.com/elementor/elementor/issues/15683), [#15660](https://github.com/elementor/elementor/issues/15660))
* Fix: Translation update keep appearing as available after install ([#14297](https://github.com/elementor/elementor/issues/14297))
* Fix: Wrong default icon color when using Font Awesome icons as inline SVG in Call to Action widget

#### 3.3.2 - 2021-07-13
* Tweak: Updated plugin description
* Fix: MailChimp tags in form widget replaced existing tags ([#11111](https://github.com/elementor/elementor/issues/11111))
* Fix: Clicking videos from the items list in edit mode doesn’t initiate videos properly
* Fix: User unauthorized message when activated but not connected in Kit Library
* Fix: Carousel widgets did not support additional custom breakpoint responsive values
* Fix: Tab border is overridden by the Section background color in Video Playlist widget
* Fix: Widgets style breaks when Improved CSS Load experiment is active in a Single Page template and Post Content widget

#### 3.3.1 - 2021-06-20
* Tweak: Added support for more Theme Builder display conditions in Export / Import experiment
* Tweak: Adjusted License page heading structure for future feature
* Tweak: Adjusted Font Awesome icon for allowing support for future feature
* Fix: `frontend.min.js` file size increased in Elementor Pro 3.3.0 ([#15278](https://github.com/elementor/elementor/issues/15278))
* Fix: Prevent conditions from being reset when object cache is enabled in site ([#13299](https://github.com/elementor/elementor/issues/13299))
* Fix: Custom Code publish modal responsiveness issues ([#14519](https://github.com/elementor/elementor/issues/14519))
* Fix: Populating fields with options programmatically doesn't appear in Submissions screen ([#10671](https://github.com/elementor/elementor/issues/10671))
* Fix: Large images are not shown on the Image Carousel widget when set via Toolset dynamic tag
* Fix: Enable inline editing to the inner content tabs in Video Playlist widget
* Fix: Clicking on the video list doesn't play videos properly in Video Playlist widget 
* Fix: Hide Play Icon control when Image overlay is toggled off in Video Playlist widget
* Fix: Removed extra space below the player when viewing from mobile view in Video Playlist widget
* Fix: Import button is not working properly in Theme Builder interface
* Fix: Preview Dynamic Content as control is not updating preview and throws an error in Popup Builder

#### 3.3.0 - 2021-06-08
* New: Video Playlist widget - Add Engaging Video Content to Your Website ([#11859](https://github.com/elementor/elementor/issues/11859), [#7803](https://github.com/elementor/elementor/issues/7803))
* New: Hotspot widget - Create Interactive Images With Contextually Relevant Information ([#7282](https://github.com/elementor/elementor/issues/7282), [#2768](https://github.com/elementor/elementor/issues/2768))
* Tweak: Accessibility improvements for sub-menus in Nav Menu widget ([#13859](https://github.com/elementor/elementor/issues/13859), [#13810](https://github.com/elementor/elementor/issues/13810))
* Tweak: MailChimp action after submit can now add new tags to existing subscribers in Forms widget ([#11111](https://github.com/elementor/elementor/issues/11111))
* Tweak: Added `elementor_pro/forms/record/actions_before` to filter the record before it sent to Actions After Submit in Forms widget ([#14261](https://github.com/elementor/elementor/issues/14261))
* Tweak: Yoast SEO breadcrumbs widget can be used in Elementor without the need of enabling them in Yoast setting
* Tweak: Added future support for widgets CSS conditional loading ([#10329](https://github.com/elementor/elementor/issues/10329), [#14229](https://github.com/elementor/elementor/issues/14229))
* Tweak: Added future support for Sticky JS library conditional loading
* Tweak: Added future support for Import / Export experiment
* Tweak: Preparations and fixes for Import Export Experiment in Pro version
* Tweak: Added gradient button capabilities to Login widget buttons
* Tweak: Added gradient button capabilities to Slides widget button
* Tweak: Added gradient button capabilities to Price Table widget button
* Tweak: Added gradient button capabilities to Flip Box widget button
* Tweak: Added Code Highlight widget Developers Documentation
* Tweak: Adjusted Submissions page for future updates
* Tweak: Added `em` and `%` units for padding control in Carousel widgets
* Tweak: Shorten currency name to currency symbol in PayPal button widget
* Fix: Custom Fonts URLs should be replaced when replace URL is triggered ([#7376](https://github.com/elementor/elementor/issues/7376), [#10382](https://github.com/elementor/elementor/issues/10382))
* Fix: The currency symbol size changed in the Price Table widget if enabling sale ([#13519](https://github.com/elementor/elementor/issues/13519))
* Fix: Nav Menu widget is not loading Font Awesome submenu icons ([#9907](https://github.com/elementor/elementor/issues/9907))
* Fix: Hamburger toggle is not working in Nav menu widget
* Fix: Activation bug for IDN domains
* Fix: Conditions modal responsive glitches in Custom Code
* Fix: Duplicated strings in Custom Code module
* Fix: Enable resize option for code input field in Custom Code
* Fix: “Save & Close “button in Custom Code's Conditions modal was not visible on small screen sizes
* Fix: Removing a column from a section in the navigator resulted in an empty section
* Fix: Recommend option is cut If the layout is not "Standard" in the Facebook Button widget
* Fix: Video item does not play without adding an image in Media Carousel widget
* Fix: `search-plus` icon missing from panel in Media Carousel widget
* Fix: UI hover state glitch in Media Carousel widget
* Fix: PHP notice was thrown when trying to import a kit without overrideConditions parameter in Kit Import flow
* Fix: Templates conditions not imported if there are no conflicts in Import Export Experiment
* Fix: Non english values are not encoded properly on Submissions export
* Fix: Theme Builder import is not working properly
* Fix: UI glitch when no global widgets were found in Editor Panel
* Deprecated: See all deprecations to this version in our [Developers Deprecations Post](https://developers.elementor.com/v3-3-planned-deprecations/)

#### 3.2.2 - 2021-05-05
* Tweak: Added support for Expert tier templates in Templates Library
* Tweak: Updated compatibility tag to support Elementor v3.2.x
* Tweak: Added compatibility for future Library improvements
* Fix: Toolset image dynamic field is not working with Gallery widget

#### 3.2.1 - 2021-03-21
* Tweak: Added strings context in PayPal button and Price Table widgets
* Tweak: Added support for future Import / Export Kit feature
* Fix: Submissions with over than 191 characters weren't indexed properly

#### 3.2.0 - 2021-03-14
* New: PayPal Button widget - Collect PayPal payments directly from your site
* Experiment: Submissions - Save all of your form submissions in one place ([#1686](https://github.com/elementor/elementor/issues/1686))
* Tweak: Added Stay In Column option to Inner Section element ([#7956](https://github.com/elementor/elementor/issues/7956))
* Tweak: Adjusted 'Max Height' control range in Table of Contents widget
* Tweak: Changed descriptive text in Create Custom Code screen
* Tweak: Added support for dynamic capabilities in Code Highlight widget
* Tweak: Added support for future load on demand for `share-link` library
* Tweak: Added support for future load on demand for `dialog` library in Popup
* Tweak: Allow overwriting the assets URL when using a mirror domain
* Fix: Animation was triggered multiple times when accessing the viewport in certain cases in Animated Headline widget ([#13951](https://github.com/elementor/elementor/issues/13951))
* Fix: Location is not being updated after a Custom Code snippet is published ([#13971](https://github.com/elementor/elementor/issues/13971))
* Fix: Custom Fonts CSS files were not updated after regenerating CSS files
* Fix: Conditions modal is not responsive in Custom Code
* Fix: Empty order buttons are displayed in Custom Fonts screen
* Fix: Typo in 'Reply To' Email action after submit placeholder in Forms widget
* Fix: Unnecessary Save Draft button in Custom Code
* Fix: RTL glitches in Custom Code
* Fix: Sanitized options in the editor to enforce better security policies
* Deprecated: See all deprecations to this version in our ([Developers Deprecations Post](https://developers.elementor.com/v3-2-planned-deprecations/))

#### 3.1.1 - 2021-02-23
* Tweak: Adjusted 'Max Height' control range in Table of Contents widget
* Fix: Popup event handler is undefined ([https://github.com/elementor/elementor/issues/11475](#11475), [https://github.com/elementor/elementor/issues/10690](#10690))
* Fix: Conditions modal is not responsive in Custom Code
* Fix: RTL glitches in Code Highlight widget
* Fix: Minor UI glitches in Code Highlight widget
* Fix: Users can't get Pro Developer Edition version updates

#### 3.1.0 - 2021-02-13
* New: Introducing Custom Code - Add custom code snippets to your site, including `head`, `body` start and `body` end
* New: Meet Code Highlight widget - showcase any syntax with highlighted UI ([#5815](https://github.com/elementor/elementor/issues/5815))
* Experiment: Improved Pro widgets performance by loading JS and Swiper assets conditionally in frontend ([#8572](https://github.com/elementor/elementor/issues/8572), [Developer Documentation](https://developers.elementor.com/experiment-optimized-asset-loading/))
* Tweak: Added Compatibility Tag support in Elementor Pro ([Developer Documentation](https://developers.elementor.com/compatibility-tag/))
* Tweak: Added Dynamic capabilities to Rotating Text animation in Animated Headline widget ([#4625](https://github.com/elementor/elementor/issues/4625), [#8569](https://github.com/elementor/elementor/issues/8569))
* Tweak: Added an option to set Selected color for Typing effect in Animated Headline widget ([#5403](https://github.com/elementor/elementor/issues/5403), [#7826](https://github.com/elementor/elementor/issues/7826))
* Tweak: Added animation Loop option for Animated Headline ([#9749](https://github.com/elementor/elementor/issues/9749), [#2457](https://github.com/elementor/elementor/issues/2457))
* Tweak: Added timing options for Animated Headline widget ([#4392](https://github.com/elementor/elementor/issues/4392))
* Tweak: Added dynamic capabilities for Testimonial Carousel widget ([#8569](https://github.com/elementor/elementor/issues/8569))
* Tweak: Added dynamic capabilities for Price Table widget ([#4242](https://github.com/elementor/elementor/issues/4242), [#8569](https://github.com/elementor/elementor/issues/8569))
* Tweak: Added Word Wrap control to Code Highlight widget ([#13577](https://github.com/elementor/elementor/issues/13577))
* Tweak: Upgraded Font Awesome Pro library to v5.15.1
* Tweak: Improved method of loading field mapping repeater in Form widget ([Developer Documentation](https://developers.elementor.com/how-to-add-a-repeater-control-to-elementor-add-on/))
* Tweak: Added "Show on Browsers" Popup Advanced Rule
* Tweak: Added real-time JS handling to prevent redundant renders in Slides widget and all Carousel widgets
* Tweak: Import scroll utility from core and remove it from Pro
* Tweak: Added alignment options for Post Excerpt widget ([#9757](https://github.com/elementor/elementor/issues/9757))
* Tweak: Changed alignment control to work with selectors in Share Buttons
* Tweak: Upgraded to Webpack 5, Grunt-Webpack 4 and TerserPlugin instead of UglifyJsPlugin
* Fix: Steps Divider is not vertically aligned in Multi Step Form widget ([#12569](https://github.com/elementor/elementor/issues/12569))
* Fix: Slides are playing in an infinite loop mode even when the option is disabled in Slides Widget ([#6726](https://github.com/elementor/elementor/issues/6726))
* Fix: Redundant spacing is added to Share Buttons widget
* Fix: Step buttons text is not updated without a page reload in Forms widget
* Fix: Overflow issue in certain animations in Animated Headline widget
* Fix: When dragging a new Testimonial Carousel there is a console error thrown
* Fix: Step Buttons are cut in mobile view in Multi Step Form
* Fix: Submit and Step buttons size differences when using Twenty Twenty theme
* Fix: Duplicate button Text Color control in Slides widget
* Fix: JS error is thrown when editing and saving global widgets
* Fix: `get_version` API function may fail with Redis / DB cache
* Fix: Multiple license check requests are created in certain cases
* Deprecated: Deprecate methods prefixed with an underscore and replace them with unprefixed methods
* Deprecated: See all deprecations to this version in our [Developers Deprecations Post](https://developers.elementor.com/v3-1-planned-deprecations/)

#### 3.0.10 - 2021-01-20
* Tweak: Added Editing Handles string translation compatibility with Elementor v3.1.0

#### 3.0.9 - 2020-12-29
* Tweak: Added compatibility to support Elementor 3.1.0
* Fix: Wrong phrasing of Import template success message in Theme Builder
* Fix: Border color glitch in Theme Builder

#### 3.0.8 - 2020-11-26
* Fix: Navigation arrows UI glitch in Media Carousel widget ([#13172](https://github.com/elementor/elementor/issues/13172))

#### 3.0.7 - 2020-11-25
* Fix: Console Error when dragging  Testimonials Carousel widget
* Fix: Arrows of Testimonial and Reviews Carousel widgets navigate to the wrong direction in RTL websites
* Fix: Removed the conditional loading of Webpack
* Fix: Fatal error is thrown after deleting an associated custom taxonomy when Posts widget with Cards skin has a badge
* Fix: Upload JSON files only when the user allowed to prevent security issues
* Fix: Gallery not displayed in Theme Builder templates preview

#### 3.0.6 - 2020-11-04
* Tweak: Updated the embedded post in Facebook Embed widget
* Fix: Minor UI glitches in Theme Builder's conditions screen footer
* Fix: Template type changes into Single Page after conditions change in Theme Builder
* Fix: Redundant Custom Caption option in Site Logo widget
* Fix: Removed unused code in Drip integration
* Fix: Removed Weibo and WeChat social networks due to website and links inactivity from Share Buttons widget
* Fix: Removed redundant code from Portfolio and Post Navigation widgets

#### 3.0.5 - 2020-09-23
* Fix: If the default page layout is set to "Canvas" Headers and Footers cannot be edited
* Fix: Product Image Dynamic Tag throws an error when no image is set
* Fix: Missing Single document placeholder in Theme Builder
* Fix: Document editing handles inherit the `font-family` from 3rd party source
* Fix: Can't add linebreaks to Textarea input when used as Multi Step Form
* Fix: Incorrect width in Facebook Page widget
* Fix: Added compatibility to allow the use of 'get_create_url' in Theme Builder

#### 3.0.4 - 2020-09-09
* Fix: Autogenerated screenshots appear in WP Media Library modal ([#12304](https://github.com/elementor/elementor/issues/12304))
* Fix: Make sure Elementor Posts widget Pagination doesn't interfere with 3rd party plugins ([#12126](https://github.com/elementor/elementor/issues/12126), [#12127](https://github.com/elementor/elementor/issues/12127))
* Fix: Shrinking conditions indicator in Theme Builder
* Fix: Column can't be dragged and dropped if it populates a Global widget
* Fix: Styles are missing from Single templates in some edge cases

#### 3.0.3 - 2020-09-02
* Fix: Pagination doesn't work in WordPress 5.5 ([#12126](https://github.com/elementor/elementor/issues/12126), [#12127](https://github.com/elementor/elementor/issues/12127))
* Fix: Change delete template action to "Move to Trash" in the new Theme Builder view

#### 3.0.2 - 2020-08-31
* Tweak: Replaced WordPress "Learn More" links with dynamic links for better control over time ([#12312](https://github.com/elementor/elementor/issues/12312))
* Tweak: UI tweaks to the Conditions screen In the new Theme Builder
* Fix: Motion Effects not working when assigned to a column and throws JS error when DOM optimization is disabled ([#12299](https://github.com/elementor/elementor/issues/12299), [#12275](https://github.com/elementor/elementor/issues/12275))
* Fix: Multiple Galleries display all the images in the Lightbox slideshow ([#11809](https://github.com/elementor/elementor/issues/11809))
* Fix: Old Theme Builder is being opened when accessing through the Finder
* Fix: Mixed templates import glitch in Theme Builder
* Fix: Card icon sizes in Theme Builder
* Fix: Preview button leads to `render_mode` instead of preview when importing a template from the new Theme Builder

#### 3.0.1 - 2020-08-26
* Tweak: Keep previous Theme Builder when accessing from the WP Dashboard for legacy support
* Tweak: Updated video tutorials in Theme Builder
* Tweak: Don't show auto-screenshots in the Media Library (Props [@black-eye](https://github.com/black-eye))
* Fix: Repeater items throws `childView` is undefined message in Forms widget ([#12239](https://github.com/elementor/elementor/issues/12239), [#12221](https://github.com/elementor/elementor/issues/12221))
* Fix: Misspelling of the word "occurred" in Form widget default error message ([#12137](https://github.com/elementor/elementor/issues/12137))
* Fix: Facebook comments not showing up ([#12157](https://github.com/elementor/elementor/issues/12157))
* Fix: Check for conflicts in Theme Builder doesn't work properly
* Fix: Minor UI fixes in Theme Builder
* Fix: Dark mode glitches in Theme Builder
* Fix: Global Site Part toaster appears when you publish a Popup
* Fix: Site Parts aren't in the correct order in Theme Builder
* Fix: Date field caused forms to get corrupted in Forms widget
* Fix: Theme Builder application page is forbidden

#### 3.0.0 - 2020-08-23
* New: Introducing the new and improved Theme Builder
* Tweak: Removed `.elementor-inner` and `.elementor-column-wrap` from DOM output to improve performance ([#7351](https://github.com/elementor/elementor/issues/7351), [#7817](https://github.com/elementor/elementor/issues/7817), [Developers Blog Post](https://developers.elementor.com/dom-improvements-ahead-html-wrappers-removal-from-v3-0/))
* Tweak: Added contextual anchors ID support to Table of Contents widgets ([#10052](https://github.com/elementor/elementor/issues/10052))
* Tweak: Added WeChat and Weibo social networks to Share Buttons widget ([#11554](https://github.com/elementor/elementor/issues/11554))
* Tweak: Added Dynamic capabilities for Redirect after Login/Logout in Login widget ([#11343](https://github.com/elementor/elementor/issues/11343))
* Tweak: Added Blend Mode and CSS Filters controls to adjust the Background Overlay in Flipbox widget ([#11653](https://github.com/elementor/elementor/issues/11653))
* Tweak: Added responsive capabilities to Toggle Button styling in Nav Menu widget ([#8269](https://github.com/elementor/elementor/issues/8269))
* Tweak: Added responsive Text Alignment control in Call to Action widget ([#11968](https://github.com/elementor/elementor/issues/11968))
* Tweak: Added dynamic content to Ribbon element in Call to Action widget ([#10364](https://github.com/elementor/elementor/issues/10364))
* Tweak: Converted uses of Color and Typography Schemes to Global Colors and Fonts
* Tweak: Separated Title and Description control fields labels in Call to Action widget
* Tweak: Removed unnecessary style in WC Product with variations
* Tweak: Converted Portfolio, Posts and Share Buttons widgets to use CSS Variable-based Elementor Grid ([Developers Blog Post](https://developers.elementor.com/elementor-dropping-support-ie/))
* Tweak: Added Date Modified option to Posts widget metadata
* Fix: PHP 7.4 compatibility to Media Carousel widget ([#11355](https://github.com/elementor/elementor/issues/11355))
* Fix: Divider alignment issue in Post Info widget ([#11628](https://github.com/elementor/elementor/issues/11628))
* Fix: Color doesn’t change in Products Archive Description widget
* Fix: WC Product variations layout breaks when using Variation Swatches plugin
* Fix: WC Product variations layout issue
* Fix: WC Product variations mobile zoom-in glitch
* Fix: Can't edit a Popup after accessing Theme Style
* Fix: Twitter icon missing in Blockquote widget
* Fix: Removed redundant default text color from Share Buttons minimal skin
* Fix: UI glitch in Display Conditions modal
* Fix: Insert template button UI glitch in Templates Library
* Fix: Added sanitization to post titles in WordPress dashboard for better security
* Fix: Show when arriving from search engines rule doesn't work in Popup
* Fix: Child categories are shown with a different parent category in Query control
* Deprecated: See all deprecations to this version in our [Developers Deprecations Post](https://developers.elementor.com/v3-0-planned-deprecations/)

#### 2.10.3 - 2020-06-29
* Fix: Form not being submitted when using "Progress Bar" and "None" view types in Multi Step Form ([#11596](https://github.com/elementor/elementor/issues/11596), [#11610](https://github.com/elementor/elementor/issues/11610))
* Fix: Missing "for" attribute in Password field label in Login widget ([#8646](https://github.com/elementor/elementor/issues/8646))

#### 2.10.2 - 2020-06-16
* Fix: Run step events only when in Multi Step Form mode ([#11644](https://github.com/elementor/elementor/issues/11644))

#### 2.10.1 - 2020-06-16
* Tweak: Improved License validation mechanism to avoid limitations
* Tweak: Changed control labels and ordering in Price Table, Lottie and Form widgets
* Fix: Popup close button vertical position glitch ([#10921](https://github.com/elementor/elementor/issues/10921))
* Fix: Radio field placement glitch when in Multi Step mode in Form widget
* Fix: Clicking `Enter` key submits the form in Multi Step Form
* Fix: Hardened sanitization in Custom Attributes to avoid security issues

#### 2.10.0 - 2020-06-07
* New: Introducing Multi-Step Forms - Breakdown long forms into simple steps ([#5975](https://github.com/elementor/elementor/issues/5975), [#3911](https://github.com/elementor/elementor/issues/3911))
* New: Introducing Lottie widget - easily add Lottie animations to your site, no coding needed ([#11026](https://github.com/elementor/elementor/issues/11026))
* Tweak: Added spacing option to Posts widget pagination ([#5682](https://github.com/elementor/elementor/issues/5682))
* Tweak: Changed texts and logic for administrator plugin renewal notices
* Tweak: Added new Scroll Util for improved scrolling handling
* Tweak: Improved Motion Effects animation performance

#### 2.9.5 - 2020-05-24
* Fix: Added sanitization to Custom Attributes control to avoid security issue

#### 2.9.4 - 2020-05-07
* Fix: Hardened user role that is allowed to upload icon sets and unzip only allowed files in Custom Icons to prevent security vulnerability

#### 2.9.3 - 2020-04-19
* Fix: Form shortcode IDs are not wrapped in double-quotes ([#11023](https://github.com/elementor/elementor/issues/11023), [#10932](https://github.com/elementor/elementor/issues/10932), [#10967](https://github.com/elementor/elementor/issues/10967), [#11000](https://github.com/elementor/elementor/issues/11000), [#11049](https://github.com/elementor/elementor/issues/11049))
* Fix: Escaped Form records metadata to prevent security vulnerability
* Fix: Closing "Save Changes" document confirmation modal causes Panel infinite loading
* Fix: Ken Burns effect not working when there is only one slide in Slides widget
* Fix: Document handles UI glitch

#### 2.9.2 - 2020-03-25
* Tweak: Added compatibility with WordPress v5.4 ([#10745](https://github.com/elementor/elementor/issues/10745))
* Fix: Image ratio number is displayed under the Archive Posts widget ([#10874](https://github.com/elementor/elementor/issues/10874))
* Fix: Theme Style Link color setting overrides the Table of Content list style
* Fix: PHP notice when using dynamic user info `id`
* Fix: Navigation arrows direction is crossed on first drag in Slides Widget
* Fix: "No headings were found on this page" message was not displayed in the frontend in Table of Contents widget
* Fix: Container includes Popup tags by default in Table of Contents widget
* Fix: Twitter icon display issue when Font Awesome 4 support is disabled in Blockquote widget
* Fix: ACF Dynamic tag not working in Form widget Redirect action

#### 2.9.1 - 2020-03-16
* Fix: Can't access Elementor Editor when there is Page Title widget in the page
* Fix: Applying styling to Post Content widget affects the Page and Post editing handles

#### 2.9.0 - 2020-03-15
* New: Introducing Full Site Editing: Design header, footer, and content all in one place! ([#4985](https://github.com/elementor/elementor/issues/4985))
* New: Added Global Custom CSS for Your Entire Site in Theme Style ([#3345](https://github.com/elementor/elementor/issues/3345))
* New: Added Dynamic Colors tag ([#6485](https://github.com/elementor/elementor/issues/6485))
* Tweak: Added option to set the Site Part HTML Wrapper Tags ([#9293](https://github.com/elementor/elementor/issues/9293))
* Tweak: Added Link Attributes support to Pro widgets ([#5716](https://github.com/elementor/elementor/issues/5716), [#3642](https://github.com/elementor/elementor/issues/3642), [#9225](https://github.com/elementor/elementor/issues/9225), [#9079](https://github.com/elementor/elementor/issues/9079))
* Tweak: Added Theme Style support in Theme Builder parts ([#10564](https://github.com/elementor/elementor/issues/10564))
* Tweak: Avoid creating empty Custom Font
* Tweak: Added `aria-expanded` attribute to Menu Cart widget
* Tweak: Moved Link Actions module to Core plugin
* Tweak: Changed the name of “TypeKit Web Fonts by Adobe” to “Adobe Fonts”
* Tweak: Removed redundant display conditions from Blockquote, Flipbox, Price Table, and Search Form widgets
* Tweak: Pro widgets are not draggable unless Elementor license has been activated
* Tweak: Remove redundant `label_block` parameters from several controls
* Tweak: Converted controls selectors to CSS variables in Gallery widget
* Tweak: Replaced Stumbleupon with Mix in Reviews widget recommended icons ([#10099](https://github.com/elementor/elementor/issues/10099))
* Tweak: Added Mix to the Share Buttons network list ([#10099](https://github.com/elementor/elementor/issues/10099))
* Tweak: Added "Open in new tab" option to Posts widget ([#7924](https://github.com/elementor/elementor/issues/7924))
* Tweak: Upgraded Font Awesome Pro library to v5.12.0
* Tweak: Added new Lightbox compatibility for Gallery and Media Carousel widgets
* Tweak: Expose external API for Swiper instances
* Tweak: Added compatibility to JS API in Theme Builder, Popups, Form widget and Global widget
* Tweak: Replaced nerd icons with new Elementor emojis
* Tweak: Added specific `color` attribute to header title in Table of Contents widget
* Fix: Line break issues in Animated Headline widget ([#10585](https://github.com/elementor/elementor/issues/10585))
* Fix: Theme Style Link color overrides the Table of Content list style
* Fix: Active state glitches when using Table of contents widget with Sticky mode
* Fix: "Graphic Element" section appears as empty in case of unmarked Graphic Element in Call to Action widget
* Fix: Page Title widget render glitches in the Editor
* Fix: Image ratio parameter visible in some edge cases in Posts widget
* Fix: Image missing when sharing to Pinterest using Share Buttons widget
* Fix: Theme Style Link color setting override the list style in Table of Contents widget
* Deprecated: See all deprecations to this version in our [Developers Deprecations Post](https://developers.elementor.com/v2-9-0-planned-deprecations/)


#### 2.8.5 - 2020-03-08
* Tweak: Added new Swiper parameter to all Pro carousels to allow 3rd party integration
* Fix: Missing closing bracket in Animated Headline widget
* Fix: Share buttons widgets show Font Awesome 4 icons on first drag in Editor

#### 2.8.4 - 2020-02-16
* Tweak: Added Lightbox Title & Description support to Gallery widget
* Tweak: Added RTL support for Slides widget
* Tweak: Display Lightbox images in Full size in Gallery widget
* Fix: Template with Slides widget not working properly when placed inside Tabs, Accordion and Toggle widget
* Fix: Dropdown menu lost styling after Elementor Pro v2.8 upgrade in Nav Menu widget
* Fix: Indent doesn't work on RTL websites in Table of Contents widget
* Fix: Query Control throws `Undefined index: q` error
* Fix: Typography control not affecting dropdown menu in Nav Menu widget
* Fix: Discord forms integration fails to send submissions in some server configurations
* Fix: Rotating headlines don't align center in Animated Headline widget
* Fix: Custom secondary color displayed when not needed in Share buttons widget
* Fix: Motion Effects of certain objects are not functioning properly on Safari browser
* Fix: Missing eye icon in Single template footer preview button

#### 2.8.3 - 2020-01-01
* Tweak: Updated Table of Contents widget panel location
* Fix: ACF URL Dynamic field throws `undefined index` PHP notice ([#9929](https://github.com/elementor/elementor/issues/9929))
* Fix: Gallery lightbox pagination shows images from all tabs
* Fix: "Reply To" option not working in Form widget "Email 2" Action
* Fix: ACF Dynamic tag not working in Form widget Redirect action
* Fix: Underline option not working in Table of Contents widget Normal state
* Fix: Query Control `Undefined index: autocomplete` notice in some cases
* Fix: Missing display condition to Read More Spacing control in Posts widget

#### 2.8.2 - 2019-12-19
* Tweak: Improved scroll-spy and collapsing functionality in Table of Contents widget
* Fix: "No products were found" message not being displayed in an empty Products Archive
* Fix: Redundant `<br>` tags in Single theme template ([#9927](https://github.com/elementor/elementor/issues/9927), [#9928](https://github.com/elementor/elementor/issues/9928))
* Fix: Draft Popup shows up in Dynamic tag dropdown

#### 2.8.1 - 2019-12-18
* Fix: Share Buttons widget not working ([#9920](https://github.com/elementor/elementor/issues/9920))
* Fix: Redundant `<p>` tags added to Single Template posts

#### 2.8.0 - 2019-12-18
* New: Table of Contents Widget ([#5171](https://github.com/elementor/elementor/issues/5171))
* New: Added Font Awesome Pro Duotone font family support ([#9578](https://github.com/elementor/elementor/issues/9578))
* Tweak: Added Lazy Load option to Gallery widget ([#9763](https://github.com/elementor/elementor/issues/9763))
* Tweak: Added Random order option to Gallery widget ([#9269](https://github.com/elementor/elementor/issues/9269))
* Tweak: Updated Font Awesome Pro to v5.11.2 ([#9578](https://github.com/elementor/elementor/issues/9578))
* Tweak: Added preselect support for multiple default select values in Forms Widget ([#9324](https://github.com/elementor/elementor/issues/9324))
* Tweak: Avoid duplicate queries for Custom Icons ([#9579](https://github.com/elementor/elementor/issues/9579))
* Tweak: Major performance improvements to Gallery widget
* Tweak: Avoid non-existing images in Gallery widget
* Tweak: Added `tabindex`, `aria-expanded`, `aria-hidden` and `role="navigation"` accessibility attributes to Nav Menu widget
* Tweak: Changed button HTML tag from `button` to `span` in Call to Action and Flip Box widgets for better W3C compliance and accessibility
* Tweak: Removed Google+ from default networks in Share Buttons widget
* Tweak: Added compatibility for Library Connect
* Tweak: Added i18n to Toolset date dynamic tag
* Tweak: Added external link support to Gallery widget
* Tweak: Changed the link external attributes implementation to use `add_link_attributes()` in Gallery widget
* Tweak: Updated references to the new Schemes system location
* Tweak: Avoid running Gallery handler when the gallery is empty
* Tweak: UI Tweaks in Editor Panel
* Tweak: Added responsive capabilities to Pointer Width control in Nav Menu widget
* Tweak: Added mobile support for responsive controls in Nav Menu widget
* Tweak: Refactor `register_controls()` method in Posts widget skin trait
* Fix: ACF URL "undefined Index" notice ([#7646](https://github.com/elementor/elementor/issues/7646))
* Fix: WooCommerce Mini-Cart widget causes fatal error in edge cases ([#9304](https://github.com/elementor/elementor/issues/9304))
* Fix: `PHP Notice: Undefined index` display for Author query ([#9864](https://github.com/elementor/elementor/issues/9864))
* Fix: Added compatibility for Button widget placed inside Swiper carousel ([Topic](https://wordpress.org/support/topic/broken-buttons-since-elementor-2-8/))
* Fix: Avoid empty spaces in Post info widget
* Tweak: Always show "Custom label" control in Login widget
* Fix: Nav Menu item typography selector in Nav Menu widget
* Fix: Facebook Like Button widget causes flickering
* Fix: WooCommerce mini-cart behaviour when using `plain` permalinks format
* Fix: Avoid running Popup triggers when set without conditions
* Fix: Removed "Date" query from Products widget
* Fix: Slides widget when used as a Shortcode and is hidden
* Fix: Custom URL being accessed on swipe in Media Carousel
* Fix: Media Carousel widget Cube effect glitch
* Fix: Lightbox shows images from multiple Gallery widgets in the same page
* Fix: Image `alt` Text not displayed on overlay in Gallery widget
* Fix: Gallery widget not visible in Posts widget Full Content skin
* Fix: WooCommerce mini-cart remove unnecessary hooks registration when WooCommerce integration set to `Disable`
* Fix: Slides widget button wrapping breaks in mobile view
* Fix: Dynamic capabilities with the Reviews widget
* Fix: Disabling autoplay doesn't work in Slides widget
* Fix: Posts widget Full Content skin not working on Single template
* Fix: Autocomplete not working for "By Author" condition in Display Conditions screen
* Fix: Posts widget alignment issue
* Fix: Product Variations Clear button not working in edge cases
* Fix: Styling issues in Form widget submit button

#### 2.7.3 - 2019-10-28
* Tweak: Added RTL support to Galleries widget ([#9213](https://github.com/elementor/elementor/issues/9213))
* Tweak: Added Custom Icons compatibility for WordPress 5.3
* Fix: Missing template function declaration causes fatal error in WC mini-cart widget
* Fix: Pause on hover doesn't work in Carousel widgets
* Fix: Link-actions conflict with `?action=` parameter in the URL
* Fix: Lightbox navigation not working in Gallery widget Single mode
* Fix: Ken burns effect not working on the 1st slide if Infinite Loop option is turned off in Carousel widgets
* Fix: Popup Advanced Rules detects internal links as external if current URL starts with `www`

#### 2.7.2 - 2019-10-06
* Fix: Slide Overlay not working when applying Ken burns effect in Slides widget ([#9209](https://github.com/elementor/elementor/issues/9209))
* Fix: Content width glitch in Slides widget ([#9180](https://github.com/elementor/elementor/issues/9180))
* Fix: Horizontal Alignment not working when applying custom style per slide in Slides widget ([#9180](https://github.com/elementor/elementor/issues/9180))
* Fix: Missing semicolon in Custom Fonts `font-display` CSS

#### 2.7.1 - 2019-09-26
* Fix: Background Overlay layer is over the slide content in Slides widget ([#9180](https://github.com/elementor/elementor/issues/9180))
* Fix: Duplicate images under "All" filter in Multiple Gallery

#### 2.7.0 - 2019-09-24
* New: Enhanced Galleries widget ([#1898](https://github.com/elementor/elementor/issues/1898), [#3103](https://github.com/elementor/elementor/issues/3103), [#4279](https://github.com/elementor/elementor/issues/4279), [#7631](https://github.com/elementor/elementor/issues/7631))
* New: Dynamic Number ([#5952](https://github.com/elementor/elementor/issues/5952))
* New: Full content skin for Posts and Archive-posts widgets ([#4617](https://github.com/elementor/elementor/issues/4617))
* Tweak: Added dynamic number capability to Price List, Price Table, Counter, Star Rating, Progress Bar widgets
* Tweak: Added tags support to forms Mailchimp action ([#5418](https://github.com/elementor/elementor/issues/5418))
* Tweak: User Profile Picture Dynamic Tag ([#7947](https://github.com/elementor/elementor/issues/7947), [#8740](https://github.com/elementor/elementor/issues/8740))
* Tweak: Added `font-display` support to custom fonts ([#5993](https://github.com/elementor/elementor/issues/5993), [Developers Blog Post](https://developers.elementor.com/elementor-pro-2-7-custom-fonts-font-display-support/))
* Tweak: Added Text Shadow control to Slides widget ([#8800](https://github.com/elementor/elementor/issues/8800))
* Tweak: Added Re-subscribe support to MailerLite ([#8799](https://github.com/elementor/elementor/issues/8799))
* Tweak: Added Dynamic capabilities to Facebook Embed widget ([#9030](https://github.com/elementor/elementor/issues/9030))
* Tweak: Use `swiper.js` instead of `slick.js` in Slides widget ([Developers Blog Post](https://developers.elementor.com/elementor-2-7-moving-sliders-from-slick-to-swiper/))
* Tweak: Added `elementor_pro/search_form/before_input` action hook to Search Form widget ([#5598](https://github.com/elementor/elementor/issues/5598))
* Tweak: Added `elementor_pro/search_form/after_input` action hook to Search Form widget ([#5598](https://github.com/elementor/elementor/issues/5598))
* Tweak: Added dynamic support for Custom field key ([#7789](https://github.com/elementor/elementor/issues/7789))
* Tweak: Increased expired license notice bar frequency
* Tweak: Changed the icon name of Slides widget
* Tweak: Added designated Finder's Icons for Custom icons & Custom fonts
* Tweak: Use Ken Burns Effect as an external module
* Tweak: Remove Fontello conflicting CSS on import to Custom Icons sets
* Tweak: Editor Panel UI tweaks
* Tweak: Added DOM events on Popup show/hide ([Developers Blog Post](https://developers.elementor.com/elementor-pro-2-7-popup-events/))
* Tweak: Added option to change the variations field width in Add to Cart widget
* Tweak: Use select control instead of select2 in Menu Cart widget
* Tweak: Added conditions to the tabs instead of to each control in Share Buttons widget
* Tweak: Added Typography controls to HTML field in Forms widget
* Tweak: Allow edit selected Font file in Custom Font
* Tweak: Changed reCAPTCHA v3 error message
* Tweak: Remove the "Save as Global" option on Global widget context menu
* Fix: Corrected selector for `removeControlSpinner()` ([#8790](https://github.com/elementor/elementor/issues/8790))
* Fix: Slides widget navigation icons misplacement ([#8533](https://github.com/elementor/elementor/issues/8533))
* Fix: Horizontal Scrollbar when Slider widget is set to Full Width ([#8527](https://github.com/elementor/elementor/issues/8527))
* Fix: Inconsistent behavior when "Infinite Loop" enabled with "Autoplay" in Slides widget ([#6726](https://github.com/elementor/elementor/issues/6726))
* Fix: Ken Burns effect on Chrome transition glitches ([#1671](https://github.com/elementor/elementor/issues/1671))
* Fix: Nothing found message shows up inside the columns set in Posts Archive widget ([#7347](https://github.com/elementor/elementor/issues/7347))
* Fix: Responsive UI glitch in Popup Conditions modal tabs
* Fix: Removed unnecessary divider in Call to Action widget
* Fix: Custom Add To Cart * button style (size, position and background color) when `quantity` is enabled.
* Fix: Add support for Document/PageBase in Theme Builder (Core >=2.7.0)
* Fix: Ampersand character breaks email link in Share Buttons widget
* Fix: Correct custom font attachment `mime-type` to show uploaded Custom Fonts
* Fix: Mini-Cart not refreshing in Menu Cart widget
* Fix: Cart drawer not working when WC Subscriptions plugin is activated
* Fix:  Querying CPT with custom taxonomies does not show the taxonomies before saving
* Fix: Double rendering on change caused console error in Theme Builder's conditions screen
* Fix: Translations and Strings in Share Buttons widget
* Fix: Avoid using offset if the source is Manual selection in Query Control
* Fix: Form being submitted although reCAPTCHA v3 validation failed in Forms widget

#### 2.6.5 - 2019-08-26
* Tweak: Added compatibility for the upcoming release of Elementor v2.7
* Fix: Button style not working when `quantity` is enabled in Custom Add To Cart widget
* Fix: Updated minified JS file fixed WhatsApp base URL in Share Buttons widget

#### 2.6.4 - 2019-08-21
* Tweak: Added compatibility for the upcoming release of Elementor v2.7
* Fix: Changed WhatsApp base URL in Share Buttons widget for cross-device compatibility
* Fix: Random slides order after several clicks on pagination in Testimonial Carousel widget

#### 2.6.3 - 2019-08-18
* Fix: Core version rollback to `>2.6.0` causes a fatal error
* Fix: Duplicate images when slideshow skin is selected in Media Carousel lightbox
* Fix: Default bottom margin added to reCAPTCHA V3 badge
* Fix: Input glitch in reCAPTCHA V3 threshold settings

#### 2.6.2 - 2019-07-30
* Tweak: Better accessibility support in Search Form widget
* Fix: UI glitched in Popup publish screen ([#8616](https://github.com/elementor/elementor/issues/8616))
* Fix: "Child of Term" and "Any child of term" conditions ([#8695](https://github.com/elementor/elementor/issues/8695))
* Fix: Restored `library_widget_templates` action hook for 3rd party compatibility ([#8687](https://github.com/elementor/elementor/issues/8687))
* Fix: Twitter Icon missing in Blockquote widget
* Fix: Form reCAPTCHA v3 badge position not working
* Fix: Renewal notice bar appears in wrong situations
* Fix: Draft Icon Set loads empty Icon Library

#### 2.6.1 - 2019-07-24
* Fix: Query Control autocomplete not retrieving results ([#8672](https://github.com/elementor/elementor/issues/8672), [#8661](https://github.com/elementor/elementor/issues/8661))
* Fix: Price Table features section not working ([#8660](https://github.com/elementor/elementor/issues/8660))

#### 2.6.0 - 2019-07-23
* New: Introducing Custom Icon sets - including Fontello, IcoMoon and Fontastic support ([#110](https://github.com/elementor/elementor/issues/110))
* New: Added Font Awesome 5 Pro integration including 5,300+ icons ([#4430](https://github.com/elementor/elementor/issues/4430))
* New: Added reCAPTCHA v3 integration to Form widget ([#8213](https://github.com/elementor/elementor/issues/8213), [#6039](https://github.com/elementor/elementor/issues/6039), [#7165](https://github.com/elementor/elementor/issues/7165))
* Tweak: Added Exit Animation for Popups ([#7063](https://github.com/elementor/elementor/issues/7063))
* Tweak: Added ACF Dynamic tag support for archive pages ([#5147](https://github.com/elementor/elementor/issues/5147))
* Tweak: Added Navigator Indicators for Custom CSS & Motion Effects ([#2180](https://github.com/elementor/elementor/issues/2180))
* Tweak: Added Dynamic capabilities for Form Redirect action ([#7552](https://github.com/elementor/elementor/issues/7552))
* Tweak: Added Logged In Message styling options for Login widget ([#7928](https://github.com/elementor/elementor/issues/7928))
* Tweak: Added `none` breakpoint option to Nav Menu widget ([#7916](https://github.com/elementor/elementor/issues/7916))
* Tweak: Added option to place Post Terms dynamic tag without links ([#8366](https://github.com/elementor/elementor/issues/8366))
* Tweak: Added `elementor/query/query_results` hook to Query Control to allow full control over results ([#7912](https://github.com/elementor/elementor/issues/7912))
* Tweak: Allow choosing Heading HTML tag in Price Table widget ([#8090](https://github.com/elementor/elementor/issues/8090))
* Tweak: Show popup on dynamic click even when `Avoid Multiple Popups` option is selected ([#8189](https://github.com/elementor/elementor/issues/8189))
* Tweak: Added condition option to all of archive child pages ([#8256](https://github.com/elementor/elementor/issues/8256))
* Tweak: Added `Effects Relative To` control to Scrolling Effects
* Tweak: Allow shortcodes in HTML Form field
* Tweak: Removed donReach integration from Share Buttons widget due to service inconsistent stability
* Tweak: Changed MailChimp `List` label to `Audience`
* Tweak: Improved Entrance and Exit animation behavior in Popup
* Tweak: Added `Deprecated Notice` control to `Archive Products` and `Woo Products` widgets
* Tweak: Added default dynamic title for archives in Theme Builder
* Tweak: Added condition to show `Centered Slides` control in Media Carousel widget
* Tweak: Added notice bar in the Editor when the license is expired or not activated
* Tweak: Replaced `select` control with `choose` control in Price List widget
* Tweak: Removed Font Awesome 4 dependencies from the Editor
* Tweak: Minor styling tweaks in the Popup publish modal
* Tweak: Hide ordering form in Products widget on front page
* Tweak: Removed page title markup when 'Hide Title' is active
* Tweak: Added style controls for HTML field in Form widget
* Fix: Form widget Date picker makes the Popup builder disappear ([#7240](https://github.com/elementor/elementor/issues/7240))
* Fix: Sticky element stop point stops working on viewport resize ([#7884](https://github.com/elementor/elementor/issues/7884))
* Fix: Copy-Paste style not pasting the Pointer option in Nav Menu widget ([#8497](https://github.com/elementor/elementor/issues/8497))
* Fix: Missing Print icon in Share Buttons ([#8506](https://github.com/elementor/elementor/issues/8506))
* Fix: UI style glitch in Blockquote widget when viewing from iPad
* Deprecated: `DB::save_editor()` - Remove usage of this method ([Deprecation Post](https://developers.elementor.com/v2-6-0-planned-deprecations/))
* Deprecated: `DB::get_plain_editor()` - Remove usage of this method ([Deprecation Post](https://developers.elementor.com/v2-6-0-planned-deprecations/))

#### 2.5.14 - 2019-07-14
* Fix: Better WC Related Product grid support to various themes ([#8555](https://github.com/elementor/elementor/issues/8555))

#### 2.5.13 - 2019-07-11
* Fix: Better WC grid support to various themes

#### 2.5.12 - 2019-07-10
* Fix: Grid for WooCommerce Archive Product widget
* Fix: Remove redundant `whitespace` CSS property causes style glitch in iPad
* Tweak: Added more compatibility for Elementor v2.6

#### 2.5.11 - 2019-07-02
* Fix: Close icon missing from Nav Menu widget ([#8460](https://github.com/elementor/elementor/issues/8460))
* Fix: Elementor Pro v2.5.10 shows PHP notice regarding notice bar ([#8461](https://github.com/elementor/elementor/issues/8461))
* Fix: Fatal error when deleting used Pods fields ([#8396](https://github.com/elementor/elementor/issues/8396))
* Fix: Missing dropdown icon in conditions screen

#### 2.5.10 - 2019-05-28
* Tweak: Added compatibility for the upcoming release of Elementor v2.6
* Tweak: Error caused by empty Rows & Columns values in Products widget ([#8261](https://github.com/elementor/elementor/issues/8261))
* Fix: Do not unset `product` CPT if it's not from WooCommerce ([#8160](https://github.com/elementor/elementor/issues/8160))
* Fix: Column Spacing not working in WooCommerce Archive Products widget ([#8285](https://github.com/elementor/elementor/issues/8285))
* Fix: Title styling not working in Products Categories widget
* Fix: Empty value in Dynamic Pods Gallery dropdown using Safari browser
* Fix: WooCommerce archives included in "All Archives" condition

#### 2.5.9 - 2019-05-28
* Tweak: Removed `auto-confirm` control from MailPoet to support new version of MailPoet
* Fix: Multiple Custom Fonts not rendered in the editor
* Fix: Products `sale` query - handle exclude by manual selection.
* Fix: Product Categories grid row & column style
* Fix: Form integration AJAX cache override
* Fix: Removed redundant CSS on Canvas & Header-Footer page templates

#### 2.5.8 - 2019-05-06
* Fix: Popup entrance animation not working in frontend
* Fix: Popup Exit Intent trigger activated multiple times

#### 2.5.7 - 2019-05-05
* Fix: Embedded video keeps playing after a Popup is closed ([#7875](https://github.com/elementor/elementor/issues/7875))
* Fix: Maximum call stack size exceeded error in Safari ([#7824](https://github.com/elementor/elementor/issues/7824))
* Fix: Entrance animations not appearing on Popup reopen ([#7395](https://github.com/elementor/elementor/issues/7395))
* Fix: WC variations select style glitch in several themes ([#8008](https://github.com/elementor/elementor/issues/8008))
* Fix: Theme Builder taxonomy conditions not retrieving proper results in edge cases

#### 2.5.6 - 2019-04-29
* Tweak: Removed `Shortcode` dynamic from Image, Gallery and Media control
* Fix: Popup not inheriting entrance animation in responsive mode ([#7809](https://github.com/elementor/elementor/issues/7809))
* Fix: Terms autocomplete retrieves wrong results in Query Control
* Fix: Query Control Related by author glitches in edge cases
* Fix: Query Control using terms for Products widget
* Fix: Posts cards style glitch in small screens
* Fix: Display conditions delete icon missing in small screens
* Fix: Avoid rendering Menu Cart widget in WordPress native editor

#### 2.5.5 - 2019-04-08
* Tweak: Allow text selection inside a Popup
* Fix: Added backwards compatibility for `tax_query` in Query Control ([#7751](https://github.com/elementor/elementor/issues/7751))
* Fix: Missing arguments for `widget_title` filter ([#7745](https://github.com/elementor/elementor/issues/7745))

#### 2.5.4 - 2019-04-03
* Fix: Move Query from using `term_id` to `term_taxonomy_id` ([#7653](https://github.com/elementor/elementor/issues/7653))
* Fix: Offset manipulation hook removal in Query control
* Fix: Missing form field `ID` in some edge cases ([#7711](https://github.com/elementor/elementor/issues/7711), [#7660](https://github.com/elementor/elementor/issues/7660))

#### 2.5.3 - 2019-03-31
* Tweak: Updated Google Calendar dynamic tag URL ([#7673](https://github.com/elementor/elementor/issues/7673))
* Fix: Missing form field names ([#7651](https://github.com/elementor/elementor/issues/7651))
* Fix: PHP 5.4 backward compatibility in Query Control ([#7633](https://github.com/elementor/elementor/issues/7633))
* Fix: `products_deprecated` Query Control module compatibility ([#7654](https://github.com/elementor/elementor/issues/7654))
* Fix: Changed query method from `term_id` to `term_taxonomy_id` ([#7653](https://github.com/elementor/elementor/issues/7653))

#### 2.5.2 - 2019-03-27
* Fix: Overwrite parent widget type in Global Widget ([#7632](https://github.com/elementor/elementor/issues/7632))
* Fix: Avoid Duplicates option not working in Query Control ([#7635](https://github.com/elementor/elementor/issues/7635))
* Fix: Manual Selection option not working in Query Control ([#7634](https://github.com/elementor/elementor/issues/7634))
* Fix: Incorrect condition caused handlers issues inside popup

#### 2.5.1 - 2019-03-26
* Fix: Query Control invalid call to deprecated action ([#7619](https://github.com/elementor/elementor/issues/7619))
* Tweak: Renamed action hook from `elementor_pro/{$widget_name}/query/{$query_id}` to `elementor/query/{$query_id}`
* Tweak: Renamed filter hook from `elementor_pro/query_control/get_query_args/current_query` to `elementor/query/get_query_args/current_query`

#### 2.5.0 - 2019-03-26
* New: Introducing Motion Effects including Scrolling & Mouse effects ([#72](https://github.com/elementor/elementor/issues/72))
* New: Introducing Related Posts for Query Control ([#7306](https://github.com/elementor/elementor/issues/7306), [#7490](https://github.com/elementor/elementor/issues/7490))
* New: Introducing Date query for Query Control
* New: Introducing Sticky Posts support for Query Control ([#2501](https://github.com/elementor/elementor/issues/2501))
* Tweak: Added option to open a Popup by a custom selector ([#6871](https://github.com/elementor/elementor/issues/6871), [#6876](https://github.com/elementor/elementor/issues/6876), [#7258](https://github.com/elementor/elementor/issues/7258))
* Tweak: Option to count when Popup is closed in "Show up to X times" Advanced Rule
* Tweak: Added full border radius control options inside Popup
* Tweak: Changed exit intent icon in Popups
* Tweak: Show only one popup in its own preview
* Tweak: Added responsive support to Popup entrance animation control
* Tweak: Conditions - Singular `All Pages` string changed to `Pages`
* Tweak: Added form field shortcode support for Drip tags ([#7000](https://github.com/elementor/elementor/issues/7000))
* Tweak: Added dynamic capabilities to Price List widget ([#7258](https://github.com/elementor/elementor/issues/7258))
* Tweak: Added Dynamic capabilities to Custom Attributes ([#6779](https://github.com/elementor/elementor/issues/6779))
* Tweak: Added dynamic capabilities to Flip Box widget ([#6986](https://github.com/elementor/elementor/issues/6986))
* Tweak: Decrease `z-index` for Nav Menu ([#6869](https://github.com/elementor/elementor/issues/6869))
* Tweak: Changed "Scrolling Effects" section label to "Motion Effects"
* Tweak: Use filter `get_meta_viewport` for header templates ([#7043](https://github.com/elementor/elementor/issues/7043))
* Tweak: use filterable `Util::get_public_post_types()` in Theme Builder ([#7172](https://github.com/elementor/elementor/issues/7172))
* Tweak: Added Cloudflare rocket-loader support ([#7443](https://github.com/elementor/elementor/issues/7443))
* Tweak: Added responsive support to WC Products Columns & Rows Gap controls ([#6913](https://github.com/elementor/elementor/issues/6913))
* Tweak: WC Menu cart "View Cart" & "Checkout" buttons styling
* Fix: Custom ID reset to default when dragging repeater
* Fix: Conflict between archive-products widget and WC customizer
* Fix: Add to Cart widget `spacing` and `space-between`
* Fix: Library view when creating a new Header or Footer
* Fix: Post types labels missing on Add New Template modal

#### 2.4.8 - 2019-03-11
* Fix: Missing query section in Products widget
* Fix: Missing Taxonomy controls in Products widget in edge cases

#### 2.4.7 - 2019-03-06
* Fix: Compatibility Global Widget with Elementor v2.5.0+

#### 2.4.6 - 2019-03-04
* Fix: Pods gallery dynamic when empty ([#7127](https://github.com/elementor/elementor/issues/7127))
* Fix: Duplicate call for conditions screen issue
* Fix: Compatibility with Elementor v2.5.0

#### 2.4.5 - 2019-02-18
* Fix: Image size issue in Testimonial Carousel ([#7058](https://github.com/elementor/elementor/issues/7058))
* Fix: MailChimp groups not saved in a form integration ([#7083](https://github.com/elementor/elementor/issues/7083))
* Fix: Show popup preview only on it's own preview
* Fix: Elementor dashboard templates URL corrupted links in edge cases

#### 2.4.4 - 2019-02-11
* Tweak: Added ACF Date Time Picker field support ([#6690](https://github.com/elementor/elementor/issues/6690))
* Tweak: Changed the term of `All Posts` condition to `Posts`
* Fix: Added `<IfModule>` to avoid 500 error when `mod-headers` is missing ([#7034](https://github.com/elementor/elementor/issues/7034))
* Fix: Include post CSS deletion in Global Widget update ([#6856](https://github.com/elementor/elementor/issues/6856))
* Fix: `Textarea` default value in Forms Widget ([#6934](https://github.com/elementor/elementor/issues/6934))
* Fix: MailPoet latest version caused fatal error ([#6996](https://github.com/elementor/elementor/issues/6996))
* Fix: Fatal Error caused by calling MailPoet deleted method
* Notice: MailPoet `Auto Confirm` option will now default to "On"

#### 2.4.3 - 2019-01-30
* Fix: Custom Add to Cart widget responsive alignment settings
* Fix: Links in Post Info widget
* Fix: WooCommerce `View Cart` string translate
* Fix: Wrapper classes for header/footer templates ([#6884](https://github.com/elementor/elementor/issues/6884))

#### 2.4.2 - 2019-01-25
* Tweak: Added pixel units to Close Button position control in Popups
* Fix: Exclude error in WC Products widget

#### 2.4.1 - 2019-01-24
* Tweak: Added CSS classes control to Popup ([#6826](https://github.com/elementor/elementor/issues/6826))
* Tweak: Added responsive image size to Testimonial Carousel widget
* Fix: PHP warning when Toolset Date dynamic is empty ([#6842](https://github.com/elementor/elementor/issues/6842))
* Fix: Support of exclude-ids in WC Products widget
* Fix: Popup close button not clickable
* Fix: Alignment justify issue of Add to Cart widget ([#6749](https://github.com/elementor/elementor/issues/6749))
* Fix: Bad anchors breaks the page JS
* Fix: Popup overlay shown when turned off

#### 2.4.0 - 2019-01-21
* New: Introducing Popup Builder ([#628](https://github.com/elementor/elementor/issues/628))
* New: Added `Popup` Dynamic Tag
* New: Added `Popup` forms action after submit
* New: Added User Info dynamic tag ([#6322](https://github.com/elementor/elementor/issues/6322))
* Tweak: Added dynamic capabilities for "Nothing Found" message
* Tweak: Added `elementor_pro/theme_builder/archive/escape_nothing_found_message` Filter to avoid HTML escaping in "Nothing Found" message ([#6053](https://github.com/elementor/elementor/issues/6053))
* Tweak: Added `add_doc_to_location` method to Allow insertion of a document to a location
* Fix: `z-index` issue with CTA widget ([#6486](https://github.com/elementor/elementor/issues/6486))
* Fix: Hide the Post Content widget and show it only in a Single document
* Fix: `selector` replacement in Custom CSS
* Fix: Apply `the_content` on the real content only
* Fix: CSS for WC products selector ([#6559](https://github.com/elementor/elementor/issues/6559))
* Fix: Odnoklassniki share URL ([#6638](https://github.com/elementor/elementor/issues/6638))
* Fix: Custom link new tab in Post Info widget ([#5766](https://github.com/elementor/elementor/issues/5766))
* Fix: `nofollow` link in Flip Box & CTA widgets
* Fix: Post Terms in Post Info widget
* Fix: Added screen reader to some icons & buttons for better accessibility ([#5386](https://github.com/elementor/elementor/issues/5386))
* Fix: Accessibility labels in Reviews widget ([#6630](https://github.com/elementor/elementor/issues/6630))
* Fix: Link to cart page not working when WooCommerce Subscriptions is active
* Fix: MailChimp Selected list not showing on reloading in Form widget
* Fix: Sub-menu arrow position in Nav Menu widget
* Fix: Conflict with WP Security Audit Log plugin ([#6648](https://github.com/elementor/elementor/issues/6648))

#### 2.3.1 - 2018-12-19
* Fix: Template widget search functionality ([#6473](https://github.com/elementor/elementor/issues/6473))
* Fix: Apply `the_content` filter to post content in theme builder

#### 2.3.0 - 2018-12-17
* New: Introducing Discord Integration for Forms ([#4218](https://github.com/elementor/elementor/issues/4218))
* New: Introducing Slack Integration for Forms
* New: Introducing MailerLite Integration for Forms ([#4462](https://github.com/elementor/elementor/issues/4462))
* New: Activate Elementor Pro plugin by connecting to Elementor account
* Tweak: Added `elementor_pro/utils/get_public_post_types` filter hook ([#5900](https://github.com/elementor/elementor/issues/5900))
* Tweak: Added `loop_start` & `the_content` hooks for Post Content ([#6173](https://github.com/elementor/elementor/issues/6173))
* Tweak: Removed Custom Attributes from Page Settings
* Tweak: Always add the Custom CSS control to the Advanced tab
* Fix: In sub Term condition false positive in edge cases
* Fix: ToolSet Dynamic Image fallback
* Fix: Style glitch with the dropdown color in Nav Menu widget
* Fix: Style glitch in the Conditions screen in Safari browser
* Fix: Ribbon in the CTA widget obscures drop down menu ([#6080](https://github.com/elementor/elementor/issues/6080))
* Fix: The color of label won't change color in Widget login

#### 2.2.5 - 2018-12-11
* New: Add Style Tab & Custom CSS for Header & Footer Templates.
* Tweak: Added a better identifier for subpages ([#6362](https://github.com/elementor/elementor/issues/6362))
* Tweak: Removed Custom Attributes from page settings
* Fix: Yahoo event URL date issue ([#6354](https://github.com/elementor/elementor/issues/6354))
* Fix: Allow timezone settings in Google event URL ([#6354](https://github.com/elementor/elementor/issues/6354))
* Fix: Avoid `z-index` changes by `nanocss` in build process
* Fix: Added missing WC upsells products CSS
* Fix: Nav Menu dropdown losing color on hover
* Fix: WC Product Add-ons CSS compatibility

#### 2.2.4 - 2018-12-04
* Fix: Global widget not saving changes ([#6340](https://github.com/elementor/elementor/issues/6340))
* Fix: Dynamic tags support in Blockquote widget ([#6334](https://github.com/elementor/elementor/issues/6334))
* Fix: Forms Redirect URL action when using form field values with spaces

#### 2.2.3 - 2018-11-29
* Fix: Missing "Edit Template" in Template widget ([#6271](https://github.com/elementor/elementor/issues/6271))
* Fix: Follow menu anchors with UTF8 characters in Nav Menu
* Fix: Show only supported templates in Template widget
* Fix: Revert conflicting fix for a default order for WC archive

#### 2.2.2 - 2018-11-28
* Fix: Lightbox dynamic tag crashes the editor

#### 2.2.1 - 2018-11-28
* New: Added `ACF File` Dynamic tag to support text controls.
* Tweak: Added option to hide item count bubble when cart is empty in Menu Cart widget ([#6223](https://github.com/elementor/elementor/issues/6223))
* Tweak: Added Actions group for Lightbox and Contact URL tags
* Tweak: Added filter `elementor_pro/dynamic_tags/shortcode/should_escape` to avoid escaping in Shortcode dynamic tag
* Tweak: MailPoet3 integration allow Subscriber to to subscribe to multiple lists
* Tweak: Added front-end max file size validation for upload fields
* Tweak: Added `by-author` per Post-Type condition for theme builder
* Fix: Template widget panel not showing the selected template ([#6271](https://github.com/elementor/elementor/issues/6271))
* Fix: Conflict between ACF with Safari browser on Select option in Dynamic tag
* Fix: Add post classes only for the Single template
* Fix: Set document type as not editable for unsupported document like Global widget
* Fix: Avoid duplicate query for current WC product query
* Fix: Product Archive showing oldest products instead of latest
* Fix: CSS reset in Posts widget using cards skin

#### 2.2.0 - 2018-11-19
* New: Introducing Custom Attributes ([#290](https://github.com/elementor/elementor/issues/290), [#3990](https://github.com/elementor/elementor/issues/3990))
* New: Added evergreen option for Countdown widget ([#4459](https://github.com/elementor/elementor/issues/4459))
* New: Added expire actions option for Countdown widget ([#5242](https://github.com/elementor/elementor/issues/5242))
* New: Introducing Reviews widget ([#3854](https://github.com/elementor/elementor/issues/3854))
* New: Introducing Sitemap widget ([#5594](https://github.com/elementor/elementor/issues/5594))
* New: Added Request Parameter dynamic tag ([#4934](https://github.com/elementor/elementor/issues/4934))
* New: Added Shortcode dynamic tag
* New: Added Image and Video Lightbox dynamic tag
* New: Added Contact URL dynamic tag
* New: Added Featured Image Data dynamic tag
* New: Added default value to each field in the Form widget ([#4268](https://github.com/elementor/elementor/issues/4268))
* New: Added "Any Child Of" condition to template conditions ([#5321](https://github.com/elementor/elementor/issues/5321))
* New: Added "In Child" condition to template conditions ([#5587](https://github.com/elementor/elementor/issues/5587))
* Tweak: Added Form Redirect URL with form values ([#2564](https://github.com/elementor/elementor/issues/2564))
* Tweak: Added default post classes to template wrapper ([#5959](https://github.com/elementor/elementor/issues/5959))
* Tweak: Better labels for terms in Query control ([#6092](https://github.com/elementor/elementor/issues/6092))
* Tweak: Renamed "Child Of" templates condition to "Direct Child Of"
* Tweak: Added `elementor/theme/get_location_templates/condition_sub_id` filter hook to allow template condition translations
* Tweak: Load the Template Library widget via Ajax for better performance
* Tweak: Added 404 page title for Page Title dynamic tag
* Fix: Menu Cart Toggle has # URL link ([#6141](https://github.com/elementor/elementor/issues/6141))
* Fix: Alignment issue in Nav Menu widget ([#5790](https://github.com/elementor/elementor/issues/5790))
* Fix: Avoid potential security risk in forms
* Fix: Template By Author condition conflicts with 404 page
* Fix: Restored WC Product Content widget in Single Product template
* Fix: Theme Builder Preview URLs for date archives and 404 pages
* Fix: Highlight active menu anchor items only when scrolled into view
* Fix: Carousel Pagination Progress style to support new Swiper version

#### 2.1.13 - 2018-11-12
* Tweak: Added compatibility for new brand Finder in v2.3.0
* Fix: Settings conflict when there are multiple carousels in the page

#### 2.1.12 - 2018-11-05
* Tweak: Added compatibility for the upcoming release of Elementor v2.3
* Tweak: Better performance for Template Library widget
* Fix: Fatal error if a taxonomy used in a dynamic field is removed ([#6029](https://github.com/elementor/elementor/issues/6029))
* Fix: Date Time dynamic tag now respect site language ([#6001](https://github.com/elementor/elementor/issues/6001))
* Fix: Custom CSS printed twice in the front-end
* Fix: ACF Image field PHP warning ([#6051](https://github.com/elementor/elementor/issues/6051))

#### 2.1.11 - 2018-10-22
* New: Added ACF local fields compatibility
* Tweak: Re-brand TypeKit by Adobe Fonts integration
* Fix: Exclude `is_embed` from Singular condition ([#5915](https://github.com/elementor/elementor/issues/5915))
* Fix: Avoid conflict with Ad Blockers and Share Buttons
* Fix: Current date time dynamic tag now shows local time
* Fix: Avoid conflict with 3rd party plugins that filter the permalink
* Fix: Avoid PHP warning when no groups are selected for MailChimp integration
* Fix: Avoid PHP warning if checkbox field is empty for ACF
* Fix: Respect password protected for a WC single product template
* Fix: Respect `order` settings for WC archive also without pagination

#### 2.1.10 - 2018-10-09
* Tweak: Added responsive alignment control for Share Buttons widget ([#5821](https://github.com/elementor/elementor/issues/5821))
* Tweak: Added link control to Animated Headline widget
* Fix: Mobile nav menu jump on RTL ([#5711](https://github.com/elementor/elementor/issues/5711))
* Fix: Responsive alignment control in Add to Cart widget ([#5830](https://github.com/elementor/elementor/issues/5830))
* Fix: Added IE compatibility for Animated Headline widget
* Fix: Post Content widget is now shown only on `Single` templates
* Fix: Query Control Pagination with offset

#### 2.1.9 - 2018-09-17
* Tweak: Added Centered Slides option for Slideshow carousel
* Fix: Allow only public CPT for Manual Selection in Query Control ([#5091](https://github.com/elementor/elementor/issues/5091))
* Fix: ACF Gallery option support ([#5344](https://github.com/elementor/elementor/issues/5344))
* Fix: Page scrolling on resize when sticky is active ([#5740](https://github.com/elementor/elementor/issues/5740))
* Fix: Edit custom name for Global Widget in the Navigator ([#5689](https://github.com/elementor/elementor/issues/5689))
* Fix: Coverflow transition effect in Carousel
* Fix: Weird mobile behavior with Cube effect in Carousel
* Fix: Show the first thumbnail in the Slideshow carousel correctly

#### 2.1.8 - 2018-09-12
* Tweak: Added styling options for WC Additional Information widget
* Tweak: Added styling options for 'View Cart' link in Products widget
* Fix: 3rd party plugin support for WC single product template ([#5338](https://github.com/elementor/elementor/issues/5338))
* Fix: Layout of Related Product widget with WC native style

#### 2.1.7 - 2018-09-03
* New: WC Archive Description widget
* Tweak: Added blend mode to Slides widget background overlay ([#5555](https://github.com/elementor/elementor/issues/5555))
* Tweak: Added 'Current Subcategories' option to Product Categories widget
* Fix: Added default vertical alignment in Author Box widget ([#5589](https://github.com/elementor/elementor/issues/5589))
* Tweak: Added more blend mode options for CTA widget
* Tweak: Improved plugin updater method based on WordPress version
* Fix: Improved IE compatibility for Posts and Portfolio widgets
* Fix: Added default gap for products pagination
* Fix: Post thumbnail flickering in Safari browser
* Fix: Close mobile nav menu on click only in full-width mode
* Fix: Added trailing slash to pagination links in Posts widget

#### 2.1.6 - 2018-08-28
* New: WC Product Category Image widget and Dynamic tag ([#5117](https://github.com/elementor/elementor/issues/5117))
* Tweak: Allow HTML in Excerpt widget ([#5491](https://github.com/elementor/elementor/issues/5491))
* Tweak: Added compatibility for the upcoming release of Elementor v2.2
* Tweak: Deprecated Follow option in the Facebook Button widget
* Fix: Posts widget grid in Safari & IE11 (Depended on Elementor v2.2)
* Fix: Posts widget CSS when using cards skin in masonry mode
* Fix: ACF Image & ACF URL option support ([#5344](https://github.com/elementor/elementor/issues/5344))
* Fix: WC product gallery links in RTL
* Fix: Dynamic tags in Call To Action widget

#### 2.1.5 - 2018-08-21
* Tweak: Added compatibility for the upcoming release of Elementor v2.2
* Fix: Posts Widget layout theme compatibility
* Fix: Added compatibility for WooCommerce native style

#### 2.1.4 - 2018-08-19
* Fix: Layout issue compatibility with themes caused by v2.1 ([#5442](https://github.com/elementor/elementor/issues/5442))
* Fix: Dynamic setting in Pricing Table widget ([#5460](https://github.com/elementor/elementor/issues/5460))
* Fix: Hide Target URL control if is not necessary in Blockquote widget
* Fix: Selector specificity for WooCommerce Products widget
* Fix: WooCommerce conflicts in the editor in edge cases

#### 2.1.3 - 2018-08-15
* Fix: Thumbnails in the Posts widget jumping ([#5350](https://github.com/elementor/elementor/issues/5350))
* Fix: Responsive grid in the Share Buttons widget ([#5375](https://github.com/elementor/elementor/issues/5375))
* Fix: Added missing `setup_postdata` for Product Data Tabs widget
* Fix: Rollback to older version of Flip Box widget to resolve 3D depth issue ([#5399](https://github.com/elementor/elementor/issues/5399))
* Fix: Allowed types in the Upload File field are now case-insensitive ([#5254](https://github.com/elementor/elementor/issues/5254))
* Fix: Carousel behavior when using a single slide

#### 2.1.2 - 2018-08-12
* Fix: Error when ACF Pro is not installed ([#5367](https://github.com/elementor/elementor/issues/5367))
* Fix: Edge cases in Inspector where document is a boolean
* Fix: Edge cases for incorrect file fields in PODS

#### 2.1.1 - 2018-08-09
* Fix: Highlighted text in Animated Headline widget ([#5345](https://github.com/elementor/elementor/issues/5345))
* Fix: Flip Box effect issues
* Fix: ACF Options page fields support ([#5329](https://github.com/elementor/elementor/issues/5329))
* Fix: Import Pro templates in edge cases

#### 2.1.0 - 2018-08-07
* New: Introducing WooCommerce Builder ([#1690](https://github.com/elementor/elementor/issues/1690))
* New: Introducing 12 new dynamic tags & widgets for WooCommerce: Gallery, Image, Price, Rating, Description, Breadcrumbs, Data Tabs, Stock, Related, Upsell, Title & Archive
* New: Introducing Cart Menu widget ([#4220](https://github.com/elementor/elementor/issues/4220), [#4600](https://github.com/elementor/elementor/issues/4600))
* New: Added integration with Toolset ([#2949](https://github.com/elementor/elementor/issues/2949))
* New: Added integration with Pods ([#4129](https://github.com/elementor/elementor/issues/4129))
* New: Added stick to bottom in scrolling effects ([#4799](https://github.com/elementor/elementor/issues/4799))
* New: Added Scrolling Effect to Widgets under advanced tab
* New: Introducing Internal URL Dynamic Tag
* Tweak: Added a Last Updated Date in the Post Info widget ([#4597](https://github.com/elementor/elementor/issues/4597))
* Tweak: Added Redirect after Logout option for Login widget ([#4447](https://github.com/elementor/elementor/issues/4447))
* Tweak: Avoid repeating posts when using more than one in the Posts widget ([#1878](https://github.com/elementor/elementor/issues/1878))
* Tweak: Add Custom Query hook for Query control ([More Info](https://developers.elementor.com/custom-query-filter/)) ([#1748](https://github.com/elementor/elementor/issues/1748))
* Tweak: Added form-message style ([#1180](https://github.com/elementor/elementor/issues/1180))
* Tweak: Added dynamic tag for button on the Price Table widget ([#4242](https://github.com/elementor/elementor/issues/4242))
* Tweak: Added dynamic tag for Call to action widget ([#4767](https://github.com/elementor/elementor/issues/4767))
* Tweak: Added Dynamic Tags support for Google Map field ([#4602](https://github.com/elementor/elementor/issues/4602))
* Tweak: Added an support for `label|value` in options field ([#4594](https://github.com/elementor/elementor/issues/4594))
* Tweak: Added `by-author` condition for theme builder ([#4681](https://github.com/elementor/elementor/issues/4681))
* Tweak: Added Activate/Deactivate license key via WP-CLI command ([#4149](https://github.com/elementor/elementor/issues/4149))
* Tweak: Added `is_scroll` trigger to scrolling effect ([#4340](https://github.com/elementor/elementor/issues/4340))
* Tweak: Added In Same Term support for Post Navigation widget ([#4177](https://github.com/elementor/elementor/issues/4177))
* Tweak: Added responsive control for Slides To Scroll control in all carousel widgets ([#3697](https://github.com/elementor/elementor/issues/3697))
* Tweak: Added style options for Posts widget ([#1335](https://github.com/elementor/elementor/issues/1335))
* Tweak: Added button CSS ID for Forms widget
* Tweak: Added pixel units to Post-Info divider height control
* Tweak: Rewrite sticky library to handle with stretch section, auto scroller & more bugs
* Tweak: Re-organize the panel categories per document type
* Tweak: Added ACF support for `options-page` fields
* Tweak: Added dynamic tag for Animated headlines
* Tweak: Added dynamic tag for BlockQuote widget
* Fix: Elementor Full Width template in GeneratePress theme ([#4817](https://github.com/elementor/elementor/issues/4817))
* Fix: Checkbox fields can accidentally be set to required ([#4324](https://github.com/elementor/elementor/issues/4324))
* Fix: Initial slide in Carousel widget
* Fix: Stay on current slide while editing in Carousel widget
* Fix: Default slides per device in Carousel widget
* Deprecated: Woo Products, Woo Elements & Single elements widgets

#### 2.0.18 - 2018-07-27
* Fix: Global widget error on saving page

#### 2.0.17 - 2018-07-26
* Fix: Sub menu indicator direction in Nav Menu widget
* Fix: Change the title and icon for Global Widget when is moving
* Fix: CSS wrapper selector for Page Document

#### 2.0.16 - 2018-07-16
* Tweak: CSS Filter Control module is now included in Elementor
* Fix: Border gap in Portfolio widget when item gap set as `0` ([#5077](https://github.com/elementor/elementor/issues/5077))
* Fix: Restore current query after get Global Widget data
* Fix: Add action item in History on unlink Global widget

#### 2.0.15 - 2018-07-10
* Fix: Dropdown menu items collapsing when activated ([#4996](https://github.com/elementor/elementor/issues/4996))
* Fix: GMT offset in Countdown widget ([#4997](https://github.com/elementor/elementor/issues/4997))

#### 2.0.14 - 2018-07-08
* Tweak: Added set method to form record for developers ([#4983](https://github.com/elementor/elementor/issues/4983))
* Fix: Autoplay option for Carousels
* Fix: Close mobile menu on item click in the Nav Menu widget

#### 2.0.13 - 2018-07-03
* Tweak: Added compatibility for Elementor v2.1

#### 2.0.12 - 2018-07-02
* Fix: Global widget PHP notices
* Fix: Slides widget active slide lost focus when clicking Editor tabs
* Fix: Form select field send all selected values on multiple selection
* Fix: Validate time field only if it's not empty
* Fix: ConvertKit API not saving name field

#### 2.0.11 - 2018-06-12
* Fix: Theme Builder `author` archive condition ([#4593](https://github.com/elementor/elementor/issues/4593))
* Fix: Respect password protected posts in Post Content widget
* Fix: Custom Fonts redirect to post edit screen in edge cases.

#### 2.0.10 - 2018-06-05
* Tweak: Added `elementor/theme/get_location_templates/template_id` filter hook for multi-language plugins
* Fix: Dynamic Post Terms missing taxonomies if the taxonomy is registered to more then one post types (#4386)
* Fix: Fields shortcode missing after removing a field in Form widget
* Deprecated: `get_theme_templates_by_location` is replaced by `get_location_templates`

#### 2.0.9 - 2018-05-28
* Fix: Compatibility for PHP version 5.4

#### 2.0.8 - 2018-05-28
* Tweak: Added Active state for Nav Menu dropdown
* Tweak: Added style for "Nothing Found" Message for Archive Posts widget
* Tweak: Removed caption control in Site Logo widget
* Tweak: Added option to position currency symbol before/after In Price Table widget
* Fix: Query control manual selection does not show more than 10 items ([#4479](https://github.com/elementor/elementor/issues/4479))
* Fix: Styling glitch with terms list in Post Info widget ([#4342](https://github.com/elementor/elementor/issues/4342))
* Fix: Sub terms missing in Query control in edge cases ([#4527](https://github.com/elementor/elementor/issues/4527))
* Fix: Avoid rendering a template if it's not published
* Fix: 404 Page style not working
* Fix: Price Table button with hover animation not working in editor
* Fix: Styling conflict in Call to Action widget
* Fix: Global Widget tab translation
* Fix: Adding parent wrapper class to Site Title widget

#### 2.0.7 - 2018-05-16
* Fix: Content not found on section when single is set to "All Singular"
* Fix: Open 404 template library for 404 page
* Tweak: Added CSS prefix for dev files
* Tweak: Removed product post type from display conditions

#### 2.0.6 - 2018-05-15
* Tweak: Set type on create new single template
* Tweak: Always show the conditions dialog in the Draft status
* Tweak: Added document type `widget`
* Tweak: Added Post Custom Field tag to URL category
* Fix: When ACF Field Groups are Empty ([#4428](https://github.com/elementor/elementor/issues/4428))
* Fix: Links inside carousel in edge cases
* Fix: Responsive issue in My Templates area
* Fix: Image alignment for post content with text alignment
* Fix: Post Content widget when preview post is missing
* Fix: Global Widget tab translation
* Fix: Style settings for Post / Archive Title widgets

#### 2.0.5 - 2018-05-08
* Fix: Creating a CPT with name like document-type breaks the editor ([#4203](https://github.com/elementor/elementor/issues/4203))
* Fix: Added support for new version of reCAPTCHA
* Fix: Added fallback for controls after `post_status`
* Fix: Required field in forms widget
* Fix: Media Carousel in the Coverflow skin
* Fix: 404 Page show wrong template in edge cases
* Fix: Save the default menu in the Nav Menu widget

#### 2.0.4 - 2018-05-02
* Tweak: Added parent's class for extended widgets
* Tweak: Set entire-site as default to avoid conflict with save without conditions
* Tweak: Initialize global model when it's needed
* Tweak: Removed some duplicate strings
* Tweak: Query control now includes empty terms
* Tweak: Design polish for conditions dialog
* Tweak: Decreasing `minimumInputLength` to 1 of select2
* Fix: Editor not loading for single templates in edge cases
* Fix: Select2 in Safari takes it's time to get the original select width ([#4310](https://github.com/elementor/elementor/issues/4310))
* Fix: Slides per view not working for some effects
* Fix: New slides not showing in the editor
* Fix: Editor for section without a defined location, defaults to content area

#### 2.0.3 - 2018-04-24
* Tweak: Optimize CSS for Post Info widget ([#4214](https://github.com/elementor/elementor/issues/4214), [#4216](https://github.com/elementor/elementor/issues/4216), [#4225](https://github.com/elementor/elementor/issues/4225))
* Fix: Double render on frontend view in core locations
* Fix: Masonry not working in edge cases
* Fix: Added default setting for Author Info tag

#### 2.0.2 - 2018-04-18
* Fix: Regenerate conditions to include all templates

#### 2.0.1 - 2018-04-17
* Tweak: Added div wrapper for Nothing Found massage ([#4136](https://github.com/elementor/elementor/issues/4136))
* Tweak: Show empty categories in Query Control & Display Conditions ([#4127](https://github.com/elementor/elementor/issues/4127))
* Tweak: Added Divider control for Post Info widget
* Fix: Update admin links in Yoast Breadcrumbs widget
* Fix: Sticky element conflict with clearfix CSS
* Fix: Compatibility for PHP version 5.4.32 & 5.5.16 and below
* Fix: Avoid running `wp_head` hooks twice

#### 2.0.0 - 2018-04-16
* New: Introducing Theme Builder - [Release Post](https://elementor.com/introducing-theme-builder/) ([#417](https://github.com/elementor/elementor/issues/417))
* New: Introducing Locations API to inject custom location templates
* New: Introducing Display Conditions for all dynamic templates
* New: Introducing Dynamic Tag feature - a new way to add dynamic content to your design
* New: Introducing Role manager to allow "Content Only mode" ([#483](https://github.com/elementor/elementor/issues/483), [#653](https://github.com/elementor/elementor/issues/653), [#885](https://github.com/elementor/elementor/issues/885))
* New: Introducing 9 new dynamic widgets: Archive Posts, Archive Title, Post Content, Post Info, Post Title, Post Excerpt, Featured Image, Site Logo & Site Name ([#543](https://github.com/elementor/elementor/issues/543))
* New: Introducing Developers area with guides and API documentation - [Release Post](https://elementor.com/introducing-elementor-developer-api/) ([#451](https://github.com/elementor/elementor/issues/451))
* New: Introducing [Elementor Hello Theme](https://github.com/elementor/elementor-hello-theme) - A demonstration theme for developers
* New: Added new type of templates: Header, Footer, Single and Archive ([#2761](https://github.com/elementor/elementor/issues/2761), [#2623](https://github.com/elementor/elementor/issues/2623), [#2109](https://github.com/elementor/elementor/issues/2109), [#2061](https://github.com/elementor/elementor/issues/2061), [#2439](https://github.com/elementor/elementor/issues/2439))
* New: Design 404 page with Single template ([#1558](https://github.com/elementor/elementor/issues/1558))
* New: Design Search Results with Archive template ([#3196](https://github.com/elementor/elementor/issues/3196), [#2590](https://github.com/elementor/elementor/issues/2590))
* New: Added Scrolling Effect for sections including *Sticky Element* per device ([#2412](https://github.com/elementor/elementor/issues/2412))
* New: Integration with Custom Fields ([#2054](https://github.com/elementor/elementor/issues/2054))
* New: Partial support for Toolset integration ([#2949](https://github.com/elementor/elementor/issues/2949))
* New: Partial support for Pods integration ([#2169](https://github.com/elementor/elementor/issues/2169))
* New: Partial support for ACF integration ([#2041](https://github.com/elementor/elementor/issues/2041), [#2059](https://github.com/elementor/elementor/issues/2059))
* Tweak: Add custom fields support for ActiveCampaign ([#3531](https://github.com/elementor/elementor/issues/3531))
* Tweak: Allow brackets in Forms Tel field
* Tweak: Added currency format control for Price Table widget
* Tweak: Reduced API request for some servers
* Fix: Dropdown `border-radius` in Nav Menu widget
* Fix: Price List widget layout breaks in edge cases
* Note: This version requires Elementor v2.0.6

#### 1.15.6 - 2018-03-28
* Fix: Removed duplicate Custom CSS section ([#3938](https://github.com/elementor/elementor/issues/3938))
* Fix: `box-shadow` issue with cards skin ([#3940](https://github.com/elementor/elementor/issues/3940))

#### 1.15.5 - 2018-03-27
* Fix: Added global widget compatibility for Elementor v2.0
* Fix: Reduced API request for some servers

#### 1.15.4 - 2018-03-26
* Tweak: Allow brackets in phone field
* Tweak: Added compatibility with Yoast 7.0.+
* Tweak: Added compatibility for the future release of Elementor v2.0
* Fix: Support for multiple carousel setting in editor
* Fix: `on_export` issue in forms widget ([#3890](https://github.com/elementor/elementor/issues/3890))

#### 1.15.3 - 2018-03-07
* Tweak: Added unique class to field group div ([#3595](https://github.com/elementor/elementor/issues/3595))
* Fix: Screen Options missing when Pro is active ([#3622](https://github.com/elementor/elementor/issues/3622))
* Fix: Allow label styling even when `show labels` is set hide ([#3544](https://github.com/elementor/elementor/issues/3544))
* Fix: Typography control not working in edge cases
* Fix: Safari compatibility for Search widget

#### 1.15.2 - 2018-02-27
* Fix: Only add support mine-type if needed ([#3543](https://github.com/elementor/elementor/issues/3543))
* Fix: Better support for Old Typekit kits

#### 1.15.1 - 2018-02-21
* Tweak: Custom font title placeholder is not `enter font family`
* Tweak: Custom font title set as required
* Fix: Custom font, `font-face` enqueued only once if used in global ([#3513](https://github.com/elementor/elementor/issues/3513))
* Fix: Added workaround for upload validation which relies on a PHP extension (fileinfo) with inconsistent reporting behavior.

#### 1.15.0 - 2018-02-19
* New: Added custom fonts manager for self hosted fonts ([#852](https://github.com/elementor/elementor/issues/852))
* New: Integration with Adobe TypeKit fonts ([#631](https://github.com/elementor/elementor/issues/631))
* Tweak: Clear menu from Nav Menu widget on template export
* Tweak: Allow zero for GetResponse integration as `day of cycle`

#### 1.14.2 - 2018-02-13
* Fix: Global widget content that got affected by previous update

#### 1.14.1 - 2018-02-13
* Tweak: Added `none` option to content animation in CTA widget
* Tweak: Added `form_id` to ActiveCampaign integration ([#3422](https://github.com/elementor/elementor/issues/3422))
* Fix: Page crashed when Global widget not found.

#### 1.14.0 - 2018-02-12
* New: Added Call to Action widget
* Tweak: MailPoet pull field mapping from MailPoet instead of hardcoded
* Tweak: Added compatibility for the future release of Elementor v2.0
* Fix: Allow zero (0) to be accepted as a field value
* Fix: Login form when custom login URL is set
* Fix: Added Day of cycle control to GetResponse integration

#### 1.13.2 - 2018-01-23
* Tweak: Added placeholder to Password field
* Tweak: Removed `subscriber_already_exists_message` control to prevent potential data leakage
* Fix: MailPoet Subscriber Already Exists error validation against translated string directly from MailPoet
* Fix: Changed `imagesLoaded()` to Vanilla JS to avoid compatibility issues with some themes
* Fix: Only validate Tel field if not empty
* Fix: Stop slider while editing

#### 1.13.1 - 2018-01-16
* Fix: Added compatibility with old PHP versions

#### 1.13.0 - 2018-01-16
* New: Added File Upload field for Forms widget ([#1482](https://github.com/elementor/elementor/issues/1482), [#2974](https://github.com/elementor/elementor/issues/2974))
* New: Added Acceptance field for Forms widget ([#1693](https://github.com/elementor/elementor/issues/1693), [#2974](https://github.com/elementor/elementor/issues/2974))
* New: Added Date field for Forms widget ([#1868](https://github.com/elementor/elementor/issues/1868))
* New: Added Time field for Forms widget
* New: Added Password field for Forms widget ([#2164](https://github.com/elementor/elementor/issues/2164))
* New: Added HTML field for Forms widget ([#1500](https://github.com/elementor/elementor/issues/1500))
* Tweak: Added characters validation for Tel field
* Tweak: Added min & max validation for Number field
* Tweak: Added multiple selection for Select field
* Tweak: Added donReach integration for Share Buttons widget

#### 1.12.3 - 2018-01-09
* Fix: Render element plain content instead of parsed content when not needed in global widget
* Fix: Apply `url-encoding` to "Tweet" button text in Blockquote widget to prevent unexpected corruption of the tweet text
* Fix: Removed My Account link from dashboard widget

#### 1.12.2 - 2018-01-03
* Tweak: Added animation none for Nav Menu widget ([#2964](https://github.com/elementor/elementor/issues/2964))
* Fix: Active license button style

#### 1.12.1 - 2018-01-02
* Tweak: Removed theme-element widgets from plain content
* Tweak: Set all theme-element widgets to extend same widget Base
* Tweak: Removed credit URL in forms meta data
* Tweak: Added compatibility for the future release of Elementor v1.9
* Fix: Validate Get response Error as real error
* Fix: Removed responsive height control from Facebook Page widget

#### 1.12.0 - 2017-12-20
* New: Added Drip integration to Forms
* New: Added ActiveCampaign integration to Forms
* New: Added ConverKit integration to Forms
* New: Added GetResponse integration to Forms
* New: Added form `id`, `name` attributes to handle integration with auto collectors like HubSpot
* New: Added Global API key for MailChimp to improve the workflow
* Tweak: Better error handling and message display for Forms
* Fix: PHP notice Undefined variable `$cc_header` ([#2934](https://github.com/elementor/elementor/issues/2934))

#### 1.11.0 - 2017-12-11
* New: Added a native Comments widget ([#543](https://github.com/elementor/elementor/issues/543))
* New: Added an Author Box widget
* New: Added a Post Navigation widget
* New: Added a Yoast Breadcrumbs widget ([#2749](https://github.com/elementor/elementor/issues/2749))
* Tweak: Added a close button to search widget under Full Screen skin ([#2762](https://github.com/elementor/elementor/issues/2762))
* Fix: Allow currency symbol to appear even if price isn't numeric
* Fix: Edge cases when the nav menu is empty in a stretched section
* Fix: Added fallback when you remove the `space-between` on Swiper carousel

#### 1.10.2 - 2017-12-03
* Fix: Missing save widget icon ([#2878](https://github.com/elementor/elementor/issues/2878))
* Fix: Global widgets not saving edits ([#2874](https://github.com/elementor/elementor/issues/2874))
* Fix: Removed `white-space: nowrap;` property from vertical menu in Nav Menu widget ([#2815](https://github.com/elementor/elementor/issues/2815))

#### 1.10.1 - 2017-11-30
* Tweak: Added default value for search form
* Tweak: Order template list A-Z in the library widget
* Tweak: get_users/authors query is now done using AJAX only, for better performance in Query Control ([#2865](https://github.com/elementor/elementor/issues/2865))
* Fix: When adding `.00` it is not displayed on the front
* Fix: Make sure space between is numeric for carousel control
* Fix: Added space for radio & checkbox fields in form widget

#### 1.10.0 - 2017-11-15
* New: Added native Search form widget ([#2576](https://github.com/elementor/elementor/issues/2576))
* Tweak: Added Slides To Scroll & Loop controls to Media Carousel and Testimonials widgets
* Tweak: Added Inline editing to Blockquote widget
* Fix: Animated Headline color bug ([#2516](https://github.com/elementor/elementor/issues/2516))
* Fix: Animated Headline with Rotating skin
* Fix: RTL fix for Animated Headline widget in 'typing' and 'clip' animations
* Fix: Empty menu cause jQuery to crash in Menu widget ([#2662](https://github.com/elementor/elementor/issues/2662))
* Fix: Custom CSS gone after reloading the editor

#### 1.9.5 - 2017-10-27
* Fix: Broken Global widget with JS ([#2639](https://github.com/elementor/elementor/issues/2639))

#### 1.9.4 - 2017-10-24
* Tweak: Improved UI for notices and license page
* Fix: Update system conflict with other EDD plugins
* Fix: WooCommerce frontend hooks on Elementor editor ([#2577](https://github.com/elementor/elementor/issues/2577))
* Fix: Removed default border left in Nav Menu dropdown CSS ([#2496](https://github.com/elementor/elementor/issues/2496))
* Fix: Increased submenu max-width ([#2558](https://github.com/elementor/elementor/issues/2558))
* Fix: Save global templates without their defaults
* Fix: Horizontal scrolling issue with posts grid

#### 1.9.3 - 2017-10-03
* Fix: Condition slide style that got affected by previous update

#### 1.9.2 - 2017-10-02
* New: Added integration with MailPoet 3 for Forms actions
* Fix: Removed height control from Testimonial carousel in mobile editing mode
* Fix: Removed bottom padding when there's no pagination in Testimonial carousel
* Fix: Added condition for slides style section in skin bubble mode
* Fix: Slides per view control for mobile editing in Testimonial carousel
* Fix: Navigation Arrows icons matched with common Elementor Navigation Arrows

#### 1.9.1 - 2017-09-28
* Fix: Slides per view for slideshow carousel
* Fix: Final polish for the new Testimonial Carousel widget
* Fix: Don't play video if slide type is not video
* Fix: Removed slides style section condition ([#2497](https://github.com/elementor/elementor/issues/2497))
* Fix: Set cursor as pointer for slideshow thumbnails

#### 1.9.0 - 2017-09-26
* New: Added Media Carousel widget ([#216](https://github.com/elementor/elementor/issues/216), [#347](https://github.com/elementor/elementor/issues/347), [#2209](https://github.com/elementor/elementor/issues/2209))
* New: Added Testimonial Carousel widget ([#715](https://github.com/elementor/elementor/issues/715))

#### 1.8.3 - 2017-09-24
* Fix: Added compatibility for WordPress 4.8.2 & 4.7.6
* Fix: Remove slashes from Form sent data

#### 1.8.2 - 2017-09-19
* Tweak: Added target URL for the tweet message in Blockquote widget
* Tweak: Render the slide height before the slider is finished loading
* Fix: Space between words for Animated Headline widget
* Fix: RTL compatibility for Animated Headline widget
* Fix: Italic font style for Animated Headline widget
* Fix: Excluded Menu widget from the WP Editor text rendering

#### 1.8.1 - 2017-09-18
* Fix: WCAG Compatible "required" field attribute for W3C validation ([#2391](https://github.com/elementor/elementor/issues/2391))
* Fix: Print the main menu only when is necessary in Menu widget
* Fix: Use CSS media query instead of JS to hide items in Menu widget to avoid flickering on page load ([#2381](https://github.com/elementor/elementor/issues/2381))

#### 1.8.0 - 2017-09-12
* New: Added Nav Menu widget ([#1406](https://github.com/elementor/elementor/issues/1406))
* Fix: Field ID for checkbox control in Form widget ([#2279](https://github.com/elementor/elementor/issues/2279))
* Fix: Style for Blockquote widget included

#### 1.7.2 - 2017-09-07
* Tweak: Loading Facebook SDK via JS for better compatibility with caching plugins
* Fix: Responsive Embed Facebook post widget for Safari iOS ([#2340](https://github.com/elementor/elementor/issues/2340))

#### 1.7.1 - 2017-09-05
* Fix: Facebook SDK version

#### 1.7.0 - 2017-09-05
* New: Added Facebook Button widget for Like, Recommend, Share and Follow
* New: Added Facebook Embed widget for Post, Video and Comment
* New: Added Facebook Comments widget
* New: Added Facebook Page widget (Previously known as Like Box)
* New: Added Blockquote widget with Tweet button
* Tweak: Added Facebook SDK integration for all Facebook widgets
* Fix: Animated headline rotating with long words

#### 1.6.1 - 2017-08-28
* Fix: Animated Headline marker gets in front of neighboring spans even when "Bring to Front" is not set
* Fix: Stroke animation in Animated Headline for MS Edge browser
* Fix: Animated headline with more than 1-word per rotation
* Fix: Animated Headline in two lines
* Fix: Some errors in Global widget

#### 1.6.0 - 2017-08-22
* New: Added Animated Headline widget
* New: Added Hidden field for Forms widget ([#2038](https://github.com/elementor/elementor/issues/2038))
* Tweak: Added notice to update Elementor to v1.6.5 or higher
* Fix: CSS Animations names no longer minified, in order to prevent unexpected conflicts

#### 1.5.9 - 2017-08-16
* Tweak: Added compatibility for the future release of Elementor v1.7
* Fix: Portfolio compatibility for GeneratePress theme
* Fix: Portfolio filter compatibility for RTL
* Fix: Pagination apply for all posts widget in the page
* Fix: Global form widget with MailChimp integration not saving

#### 1.5.8 - 2017-07-25
* Tweak: Added compatibility for the future release of Elementor v1.6
* Fix: Improved backward compatibility for query control rename

#### 1.5.7 - 2017-07-24
* Tweak: Moved JS render of reCAPTCHA to a separate file
* Tweak: Display the label in the reCAPTCHA field for better experience
* Tweak: Rename `panel-posts-control` to `query-control` and added fallback support
* Tweak: Added compatibility for the future release of Elementor with history feature
* Fix: reCAPTCHA preview on the editor
* Fix: Manual selection (query control) has stopped working after saving ([#2000](https://github.com/elementor/elementor/issues/2000))
* Fix: Added condition for icon size control in Share Buttons widget

#### 1.5.6 - 2017-07-12
* Fix: Query Control correction for taxonomies ([#1963](https://github.com/elementor/elementor/issues/1963))
* Fix: Custom CSS override scheme color in the editor
* Fix: Added order by Menu Order for Query Control in WC widget
* Fix: Glitch with Flip Box background overlay

#### 1.5.5 - 2017-07-03
* Tweak: Moved reCAPTCHA render to handler & load only if a form is exist
* Fix: MailChimp integration: Default number of items returned by API increased to 999
* Fix: MailChimp integration: Refresh the groups list if API is changed
* Fix: Sorted items in filter bar by A-Z
* Fix: Editor glitch with Elementor v1.5 ([#1927](https://github.com/elementor/elementor/issues/1927))

#### 1.5.4 - 2017-06-22
* Tweak: Improved compatibility for Elementor v1.5
* Fix: URL default for Add To Cart widget
* Fix: Allowed `date` and `birthday` fields as text for MailChimp integration

#### 1.5.3 - 2017-06-19
* Tweak: Make flip-box height responsive control
* Fix: Facebook share count now gets retrieved by Elementor ([#1829](https://github.com/elementor/elementor/issues/1829))
* Fix: Global form widget with MailChimp integration not saving

#### 1.5.2 - 2017-06-13
* Fix: Custom CSS panel location compatibility for the old versions

#### 1.5.1 - 2017-06-12
* Fix: MailChimp update existing user registration
* Fix: Global widget with JS in the editor mode
* Fix: Label section condition in Login widget
* Fix: Changes to unlinked global widget do not appear in the editor

#### 1.5.0 - 2017-05-23
* New: Added Cards, a new skin for Posts widget
* New: Added Exclude option to post query control group
* Tweak: Added `post_class()` for each post in the loop
* Tweak: Added `.elementor-posts-masonry` class when Masonry layout is enabled
* Tweak: Added compatibility for the next release of Elementor v1.5.0
* Tweak: CSS `autoprefixer` now supports last 5 versions of browsers
* Tweak: Added `imageLoaded` library for Posts & Portfolio widgets

#### 1.4.4 - 2017-05-18
* Fix: Force Mailchimp API to return all lists and not just 10 ([#1683](https://github.com/elementor/elementor/issues/1683))
* Fix: Added `.elementor-form` class to Login form to fix style glitch

#### 1.4.3 - 2017-05-14
* Tweak: Added Redirect After Login option to Login widget
* Tweak: Stay in the current page after logout in Login widget
* Tweak: Preparation for Elementor settings tabs in future version
* Fix: Pinterest in Share Buttons widget now sharing the URL alone
* Fix: Bug with `active` class in portfolio filter item
* Fix: Higher specific list-style-type `none` for filter items to override some theme style

#### 1.4.2 - 2017-05-06
* Fix: Temporary patch for form field shortcode in some servers

#### 1.4.1 - 2017-05-03
* Fix: Bug with custom success message in form widget
* Fix: Bug with meta data in email action

#### 1.4.0 - 2017-05-03
* New: Forms: integration with MailChimp
* New: Forms: integration with MailPoet
* New: Forms: Added Email 2 action for email confirmation
* New: Forms: Added shortcodes for fields
* New: Forms: Added custom ID for fields
* New: Forms: Added option to edit email HTML template ([#1180](https://github.com/elementor/elementor/issues/1180))
* New: Added Login widget
* Tweak: Move `send_html` control to `email_content_type`
* Fix: Email still sent even if validation failed in form widget

#### 1.3.2 - 2017-05-01
* New: Added action `elementor_pro/init` for better integration with Elementor Pro
* Fix: Posts without featured image in Posts widget ([#1234](https://github.com/elementor/elementor/issues/1234), [#1382](https://github.com/elementor/elementor/issues/1382))
* Fix: reCAPTCHA & Honeypot fields with new method
* Fix: Added border width control in Share Buttons to avoid a glitch on Chrome browser
* Fix: Border radius glitch on hover in Share Buttons

#### 1.3.1 - 2017-04-25
* Fix: Conflict update with revision history module

#### 1.3.0 - 2017-04-25
* New: Added Share Buttons widget ([Topic](https://wordpress.org/support/topic/social-sharing-buttons-is-it-possible/))
* New: Added Custom CSS for Page Settings
* New: Added Masonry layout for Portfolio widget
* New: Added Cc & Bcc options to email action ([#1181](https://github.com/elementor/elementor/issues/1181))
* New: Introduced `ElementorPro\Modules\Forms\Classes\Action_Base` class for better 3rd party integration for forms
* Tweak: Debugger module now also shows errors from Pro
* Tweak: Added options for Elementor Library
* Tweak: New base posts module for optimized performance
* Tweak: Adjusting Posts / Portfolio to the new structure
* Fix: Export for posts / portfolio
* Fix: Duplicate repeater field with switcher control ([#1442](https://github.com/elementor/elementor/issues/1442))
* Fix: Post per Page in the query control
* Fix: Metadata does not come through on form emails ([#1566](https://github.com/elementor/elementor/issues/1566))

#### 1.2.6 - 2017-04-19
* Fix: Added compatibility with WooCommerce 3.0 - Products & Add to Cart widgets

#### 1.2.5 - 2017-04-18
* Fix: Offset query for posts widgets (Posts, Portfolio and Products)

#### 1.2.4 - 2017-03-21
* Tweak: Added Indian Rupee sign to Price Table widget
* Fix: Portfolio grid for IE11
* Fix: Link target blank in Price List widget
* Fix: Active item for filter bar in Portfolio widget

#### 1.2.3 - 2017-03-06
* Tweak: Fully compatible with Elementor v1.3.0
* Tweak: Added trigger for after form submission in Forms widget
* Tweak: Changed handle name in reCAPTCHA field to avoid conflict with other contact forms
* Fix: Portfolio filter syntax in Non-Latin languages
* Fix: Added `no-repeat` property for slide with `background-size:contain`
* Fix: Condition control & Import value in Posts widgets
* Fix: Offset and Pagination in WordPress ([More Info](https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination))
* Fix: Submit handler bubbling for custom events in Forms widget

#### 1.2.2 - 2017-02-23
* Tweak: Change name from Side A/B to Front and Back in Flip Box widget
* Fix: Error when saving third party widgets in the global widget
* Fix: Image position "none" remains visible in editor preview (Posts)
* Fix: Hide the pagination when there are no links

#### 1.2.1 - 2017-02-21
* Fix: Firefox Flip Box 3D compatibility

#### 1.2.0 - 2017-02-21
* New: Added Flip Box widget
* New: Added Ken Burns effect for slides
* New: Added Masonry layout for Posts widget
* New: Added Pagination option for Posts widget
* Tweak: Added background size contain to slides
* Tweak: Improve Query control by preload items
* Fix: Text color for Checkbox and Radio fields

#### 1.1.2 - 2017-02-05
* Tweak: Added `aria-required` for better accessibility in forms widget
* Fix: Conflict Call to `undefined` method in Posts & Portfolio widgets ([#1271](https://github.com/elementor/elementor/issues/1271), [#1266](https://github.com/elementor/elementor/issues/1266))
* Fix: Submit button HTML after error sending
* Fix: Success message for `skip_email` function
* Notice: Elementor 1.2.0 or later now required

#### 1.1.1 - 2017-01-24
* Fix: Can't save global widgets when `WP_DEBUG` is `true`
* Fix: Undefined variable in WC widgets
* Fix: Removed duplicate strings

#### 1.1.0 - 2017-01-24
* New: Price Table widget ([#102](https://github.com/elementor/elementor/issues/102))
* New: WooCommerce Add to Cart widget
* New: WooCommerce Categories widget
* New: WooCommerce Elements widget
* New: Honeypot field for Forms widgets
* Tweak: Added inline options for taxonomies & authors if is less than 15 items
* Tweak: Added Required Mark for fields in Forms widget
* Fix: CSS selectors priority in Slides widget
* Fix: CSS bug in Price List widget
* Fix: Update all Post CSS files that includes specific Global Widget

#### 1.0.9 - 2017-01-18
* Fix: Auto complete bug in query controls
* Fix: Render template with escaping slashes
* Fix: Reply-to field in Forms widget

#### 1.0.8 - 2017-01-11
* Tweak: Code adjustments for Elementor API
* Fix: Removed go pro link from plugins page in admin

#### 1.0.7 - 2017-01-05
* Tweak: Added filter by featured / sale for WC Products widget
* Tweak: Added author control in Portfolio widget
* Tweak: Code adjustments for Elementor API
* Fix: Added support for empty image ratio
* Fix: Avoid nesting a sidebar within a template that will appear in the sidebar itself

#### 1.0.6 - 2017-01-01
* Tweak: Added Auto-updates for local translation files
* Fix: Custom CSS for Global widgets
* Fix: Remove `nonce` field (Fix some cache plugins)

#### 1.0.5 - 2016-12-27
* Fix: Slide element bug fix - 'Link apply on' logic
* Fix: Removed unique wrapper for Custom CSS in order to allow media queries ([#1086](https://github.com/elementor/elementor/issues/1086))

#### 1.0.4 - 2016-12-21
* Tweak: Mobile Editing for fields in the form widget
* Tweak: Mobile Editing for posts
* Tweak: Allow send form as HTML
* Tweak: Improved auto upgrades for Multisite installation
* Tweak: Improve editor rendering experience for Portfolio widget
* Fix: Posts widget check if image exist
* Fix: Changed the clone method for global widget ([#1042](https://github.com/elementor/elementor/issues/1042))
* Fix: Bug slides in RTL (removed direction control)
* Fix: Slides with no height jumps when changing slides

#### 1.0.3 - 2016-12-13
* Fix: Added escape placeholder for HTML Entities in form widget
* Fix: Countdown widget RTL bug
* Fix: Remove redundant #elementor selector for control style
* Fix: Added prefixing with '0' for one digit number in Countdown widget

#### 1.0.2 - 2016-12-12
* Fix: Page layout collapses when inserting reCAPTCHA field in Form

#### 1.0.1 - 2016-12-12
* Fix: WordPress widgets disappear from Editor when Elementor Pro active

#### 1.0.0 - 2016-12-12
* Initial release
PK!��iOOelementor-pro.phpnu�[���<?php
/**
 * Plugin Name: Elementor Pro
 * Description: Elevate your designs and unlock the full power of Elementor. Gain access to dozens of Pro widgets and kits, Theme Builder, Pop Ups, Forms and WooCommerce building capabilities.
 * Plugin URI: https://elementor.com/
 * Author: Elementor.com
 * Version: 3.5.2
 * Elementor tested up to: 3.5.0
 * Author URI: https://elementor.com/
 *
 * Text Domain: elementor-pro
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

update_option( 'elementor_pro_license_key', 'activated' );
set_transient( 'elementor_pro_license_data', [ 
	'license' => 'valid', 
	'expires' => $date = date('M d, Y', strtotime('+1 years')) ] );
	set_transient( 'timeout_elementor_pro_license_data', 1893456000 );
define( 'ELEMENTOR_PRO_VERSION', '3.5.2' );

define( 'ELEMENTOR_PRO__FILE__', __FILE__ );
define( 'ELEMENTOR_PRO_PLUGIN_BASE', plugin_basename( ELEMENTOR_PRO__FILE__ ) );
define( 'ELEMENTOR_PRO_PATH', plugin_dir_path( ELEMENTOR_PRO__FILE__ ) );
define( 'ELEMENTOR_PRO_ASSETS_PATH', ELEMENTOR_PRO_PATH . 'assets/' );
define( 'ELEMENTOR_PRO_MODULES_PATH', ELEMENTOR_PRO_PATH . 'modules/' );
define( 'ELEMENTOR_PRO_URL', plugins_url( '/', ELEMENTOR_PRO__FILE__ ) );
define( 'ELEMENTOR_PRO_ASSETS_URL', ELEMENTOR_PRO_URL . 'assets/' );
define( 'ELEMENTOR_PRO_MODULES_URL', ELEMENTOR_PRO_URL . 'modules/' );

/**
 * Load gettext translate for our text domain.
 *
 * @since 1.0.0
 *
 * @return void
 */
function elementor_pro_load_plugin() {
	load_plugin_textdomain( 'elementor-pro' );

	if ( ! did_action( 'elementor/loaded' ) ) {
		add_action( 'admin_notices', 'elementor_pro_fail_load' );

		return;
	}

	$elementor_version_required = '3.4.0';
	if ( ! version_compare( ELEMENTOR_VERSION, $elementor_version_required, '>=' ) ) {
		add_action( 'admin_notices', 'elementor_pro_fail_load_out_of_date' );

		return;
	}

	$elementor_version_recommendation = '3.4.0';
	if ( ! version_compare( ELEMENTOR_VERSION, $elementor_version_recommendation, '>=' ) ) {
		add_action( 'admin_notices', 'elementor_pro_admin_notice_upgrade_recommendation' );
	}

	require ELEMENTOR_PRO_PATH . 'plugin.php';
}

add_action( 'plugins_loaded', 'elementor_pro_load_plugin' );

function print_error( $message ) {
	if ( ! $message ) {
		return;
	}
	// PHPCS - $message should not be escaped
	echo '<div class="error">' . $message . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
 * Show in WP Dashboard notice about the plugin is not activated.
 *
 * @since 1.0.0
 *
 * @return void
 */
function elementor_pro_fail_load() {
	$screen = get_current_screen();
	if ( isset( $screen->parent_file ) && 'plugins.php' === $screen->parent_file && 'update' === $screen->id ) {
		return;
	}

	$plugin = 'elementor/elementor.php';

	if ( _is_elementor_installed() ) {
		if ( ! current_user_can( 'activate_plugins' ) ) {
			return;
		}

		$activation_url = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $plugin . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $plugin );

		$message = '<h3>' . esc_html__( 'Activate the Elementor Plugin', 'elementor-pro' ) . '</h3>';
		$message .= '<p>' . esc_html__( 'Before you can use all the features of Elementor Pro, you need to activate the Elementor plugin first.', 'elementor-pro' ) . '</p>';
		$message .= '<p>' . sprintf( '<a href="%s" class="button-primary">%s</a>', $activation_url, esc_html__( 'Activate Now', 'elementor-pro' ) ) . '</p>';
	} else {
		if ( ! current_user_can( 'install_plugins' ) ) {
			return;
		}

		$install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' );

		$message = '<h3>' . esc_html__( 'Install and Activate the Elementor Plugin', 'elementor-pro' ) . '</h3>';
		$message .= '<p>' . esc_html__( 'Before you can use all the features of Elementor Pro, you need to install and activate the Elementor plugin first.', 'elementor-pro' ) . '</p>';
		$message .= '<p>' . sprintf( '<a href="%s" class="button-primary">%s</a>', $install_url, esc_html__( 'Install Elementor', 'elementor-pro' ) ) . '</p>';
	}

	print_error( $message );
}

function elementor_pro_fail_load_out_of_date() {
	if ( ! current_user_can( 'update_plugins' ) ) {
		return;
	}

	$file_path = 'elementor/elementor.php';

	$upgrade_link = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $file_path, 'upgrade-plugin_' . $file_path );
	$message = '<p>' . esc_html__( 'Elementor Pro is not working because you are using an old version of Elementor.', 'elementor-pro' ) . '</p>';
	$message .= '<p>' . sprintf( '<a href="%s" class="button-primary">%s</a>', $upgrade_link, esc_html__( 'Update Elementor Now', 'elementor-pro' ) ) . '</p>';

	print_error( $message );
}

function elementor_pro_admin_notice_upgrade_recommendation() {
	if ( ! current_user_can( 'update_plugins' ) ) {
		return;
	}

	$file_path = 'elementor/elementor.php';

	$upgrade_link = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $file_path, 'upgrade-plugin_' . $file_path );
	$message = '<p>' . esc_html__( 'A new version of Elementor is available. For better performance and compatibility of Elementor Pro, we recommend updating to the latest version.', 'elementor-pro' ) . '</p>';
	$message .= '<p>' . sprintf( '<a href="%s" class="button-primary">%s</a>', $upgrade_link, esc_html__( 'Update Elementor Now', 'elementor-pro' ) ) . '</p>';

	print_error( $message );
}

if ( ! function_exists( '_is_elementor_installed' ) ) {

	function _is_elementor_installed() {
		$file_path = 'elementor/elementor.php';
		$installed_plugins = get_plugins();

		return isset( $installed_plugins[ $file_path ] );
	}
}
PK!NBq\����assets/lib/lottie/lottie.min.jsnu�[���/*
Version: 5.6.8
License: MIT
 */
(typeof navigator !== "undefined") && (function(root, factory) {
	if (typeof define === "function" && define.amd) {
		define(function() {
			return factory(root);
		});
	} else if (typeof module === "object" && module.exports) {
		module.exports = factory(root);
	} else {
		root.lottie = factory(root);
		root.bodymovin = root.lottie;
	}
}((window || {}), function(window) {
	"use strict";var svgNS="http://www.w3.org/2000/svg",locationHref="",initialDefaultFrame=-999999,subframeEnabled=!0,expressionsPlugin,isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),cachedColors={},bm_rounder=Math.round,bm_rnd,bm_pow=Math.pow,bm_sqrt=Math.sqrt,bm_abs=Math.abs,bm_floor=Math.floor,bm_max=Math.max,bm_min=Math.min,blitter=10,BMMath={};function ProjectInterface(){return{}}!function(){var t,e=["abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","cbrt","expm1","clz32","cos","cosh","exp","floor","fround","hypot","imul","log","log1p","log2","log10","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"],r=e.length;for(t=0;t<r;t+=1)BMMath[e[t]]=Math[e[t]]}(),BMMath.random=Math.random,BMMath.abs=function(t){if("object"===typeof t&&t.length){var e,r=createSizedArray(t.length),i=t.length;for(e=0;e<i;e+=1)r[e]=Math.abs(t[e]);return r}return Math.abs(t)};var defaultCurveSegments=150,degToRads=Math.PI/180,roundCorner=.5519;function roundValues(t){bm_rnd=t?Math.round:function(t){return t}}function styleDiv(t){t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.display="block",t.style.transformOrigin=t.style.webkitTransformOrigin="0 0",t.style.backfaceVisibility=t.style.webkitBackfaceVisibility="visible",t.style.transformStyle=t.style.webkitTransformStyle=t.style.mozTransformStyle="preserve-3d"}function BMEnterFrameEvent(t,e,r,i){this.type=t,this.currentTime=e,this.totalTime=r,this.direction=i<0?-1:1}function BMCompleteEvent(t,e){this.type=t,this.direction=e<0?-1:1}function BMCompleteLoopEvent(t,e,r,i){this.type=t,this.currentLoop=r,this.totalLoops=e,this.direction=i<0?-1:1}function BMSegmentStartEvent(t,e,r){this.type=t,this.firstFrame=e,this.totalFrames=r}function BMDestroyEvent(t,e){this.type=t,this.target=e}function BMRenderFrameErrorEvent(t,e){this.type="renderFrameError",this.nativeError=t,this.currentTime=e}function BMConfigErrorEvent(t){this.type="configError",this.nativeError=t}function BMAnimationConfigErrorEvent(t,e){this.type=t,this.nativeError=e,this.currentTime=currentTime}roundValues(!1);var createElementID=(G=0,function(){return"__lottie_element_"+ ++G}),G;function HSVtoRGB(t,e,r){var i,s,a,n,o,h,l,p;switch(h=r*(1-e),l=r*(1-(o=6*t-(n=Math.floor(6*t)))*e),p=r*(1-(1-o)*e),n%6){case 0:i=r,s=p,a=h;break;case 1:i=l,s=r,a=h;break;case 2:i=h,s=r,a=p;break;case 3:i=h,s=l,a=r;break;case 4:i=p,s=h,a=r;break;case 5:i=r,s=h,a=l}return[i,s,a]}function RGBtoHSV(t,e,r){var i,s=Math.max(t,e,r),a=Math.min(t,e,r),n=s-a,o=0===s?0:n/s,h=s/255;switch(s){case a:i=0;break;case t:i=e-r+n*(e<r?6:0),i/=6*n;break;case e:i=r-t+2*n,i/=6*n;break;case r:i=t-e+4*n,i/=6*n}return[i,o,h]}function addSaturationToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[1]+=e,1<r[1]?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,1<r[2]?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,1<r[0]?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,i=[];for(t=0;t<256;t+=1)e=t.toString(16),i[t]=1==e.length?"0"+e:e;return function(t,e,r){return t<0&&(t=0),e<0&&(e=0),r<0&&(r=0),"#"+i[t]+i[e]+i[r]}}();function BaseEvent(){}BaseEvent.prototype={triggerEvent:function(t,e){if(this._cbs[t])for(var r=this._cbs[t].length,i=0;i<r;i++)this._cbs[t][i](e)},addEventListener:function(t,e){return this._cbs[t]||(this._cbs[t]=[]),this._cbs[t].push(e),function(){this.removeEventListener(t,e)}.bind(this)},removeEventListener:function(t,e){if(e){if(this._cbs[t]){for(var r=0,i=this._cbs[t].length;r<i;)this._cbs[t][r]===e&&(this._cbs[t].splice(r,1),r-=1,i-=1),r+=1;this._cbs[t].length||(this._cbs[t]=null)}}else this._cbs[t]=null}};var createTypedArray="function"==typeof Uint8ClampedArray&&"function"==typeof Float32Array?function(t,e){return"float32"===t?new Float32Array(e):"int16"===t?new Int16Array(e):"uint8c"===t?new Uint8ClampedArray(e):void 0}:function(t,e){var r,i=0,s=[];switch(t){case"int16":case"uint8c":r=1;break;default:r=1.1}for(i=0;i<e;i+=1)s.push(r);return s};function createSizedArray(t){return Array.apply(null,{length:t})}function createNS(t){return document.createElementNS(svgNS,t)}function createTag(t){return document.createElement(t)}function DynamicPropertyContainer(){}DynamicPropertyContainer.prototype={addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&(this.dynamicProperties.push(t),this.container.addDynamicProperty(this),this._isAnimated=!0)},iterateDynamicProperties:function(){this._mdf=!1;var t,e=this.dynamicProperties.length;for(t=0;t<e;t+=1)this.dynamicProperties[t].getValue(),this.dynamicProperties[t]._mdf&&(this._mdf=!0)},initDynamicPropertyContainer:function(t){this.container=t,this.dynamicProperties=[],this._mdf=!1,this._isAnimated=!1}};var getBlendMode=(Pa={0:"source-over",1:"multiply",2:"screen",3:"overlay",4:"darken",5:"lighten",6:"color-dodge",7:"color-burn",8:"hard-light",9:"soft-light",10:"difference",11:"exclusion",12:"hue",13:"saturation",14:"color",15:"luminosity"},function(t){return Pa[t]||""}),Pa,Matrix=function(){var s=Math.cos,a=Math.sin,n=Math.tan,i=Math.round;function t(){return this.props[0]=1,this.props[1]=0,this.props[2]=0,this.props[3]=0,this.props[4]=0,this.props[5]=1,this.props[6]=0,this.props[7]=0,this.props[8]=0,this.props[9]=0,this.props[10]=1,this.props[11]=0,this.props[12]=0,this.props[13]=0,this.props[14]=0,this.props[15]=1,this}function e(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function r(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(1,0,0,0,0,e,-r,0,0,r,e,0,0,0,0,1)}function o(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,0,r,0,0,1,0,0,-r,0,e,0,0,0,0,1)}function h(t){if(0===t)return this;var e=s(t),r=a(t);return this._t(e,-r,0,0,r,e,0,0,0,0,1,0,0,0,0,1)}function l(t,e){return this._t(1,e,t,1,0,0)}function p(t,e){return this.shear(n(t),n(e))}function m(t,e){var r=s(e),i=a(e);return this._t(r,i,0,0,-i,r,0,0,0,0,1,0,0,0,0,1)._t(1,0,0,0,n(t),1,0,0,0,0,1,0,0,0,0,1)._t(r,-i,0,0,i,r,0,0,0,0,1,0,0,0,0,1)}function f(t,e,r){return r||0===r||(r=1),1===t&&1===e&&1===r?this:this._t(t,0,0,0,0,e,0,0,0,0,r,0,0,0,0,1)}function c(t,e,r,i,s,a,n,o,h,l,p,m,f,c,d,u){return this.props[0]=t,this.props[1]=e,this.props[2]=r,this.props[3]=i,this.props[4]=s,this.props[5]=a,this.props[6]=n,this.props[7]=o,this.props[8]=h,this.props[9]=l,this.props[10]=p,this.props[11]=m,this.props[12]=f,this.props[13]=c,this.props[14]=d,this.props[15]=u,this}function d(t,e,r){return r=r||0,0!==t||0!==e||0!==r?this._t(1,0,0,0,0,1,0,0,0,0,1,0,t,e,r,1):this}function u(t,e,r,i,s,a,n,o,h,l,p,m,f,c,d,u){var y=this.props;if(1===t&&0===e&&0===r&&0===i&&0===s&&1===a&&0===n&&0===o&&0===h&&0===l&&1===p&&0===m)return y[12]=y[12]*t+y[15]*f,y[13]=y[13]*a+y[15]*c,y[14]=y[14]*p+y[15]*d,y[15]=y[15]*u,this._identityCalculated=!1,this;var g=y[0],v=y[1],b=y[2],E=y[3],x=y[4],S=y[5],P=y[6],_=y[7],A=y[8],C=y[9],T=y[10],k=y[11],M=y[12],D=y[13],w=y[14],F=y[15];return y[0]=g*t+v*s+b*h+E*f,y[1]=g*e+v*a+b*l+E*c,y[2]=g*r+v*n+b*p+E*d,y[3]=g*i+v*o+b*m+E*u,y[4]=x*t+S*s+P*h+_*f,y[5]=x*e+S*a+P*l+_*c,y[6]=x*r+S*n+P*p+_*d,y[7]=x*i+S*o+P*m+_*u,y[8]=A*t+C*s+T*h+k*f,y[9]=A*e+C*a+T*l+k*c,y[10]=A*r+C*n+T*p+k*d,y[11]=A*i+C*o+T*m+k*u,y[12]=M*t+D*s+w*h+F*f,y[13]=M*e+D*a+w*l+F*c,y[14]=M*r+D*n+w*p+F*d,y[15]=M*i+D*o+w*m+F*u,this._identityCalculated=!1,this}function y(){return this._identityCalculated||(this._identity=!(1!==this.props[0]||0!==this.props[1]||0!==this.props[2]||0!==this.props[3]||0!==this.props[4]||1!==this.props[5]||0!==this.props[6]||0!==this.props[7]||0!==this.props[8]||0!==this.props[9]||1!==this.props[10]||0!==this.props[11]||0!==this.props[12]||0!==this.props[13]||0!==this.props[14]||1!==this.props[15]),this._identityCalculated=!0),this._identity}function g(t){for(var e=0;e<16;){if(t.props[e]!==this.props[e])return!1;e+=1}return!0}function v(t){var e;for(e=0;e<16;e+=1)t.props[e]=this.props[e]}function b(t){var e;for(e=0;e<16;e+=1)this.props[e]=t[e]}function E(t,e,r){return{x:t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],y:t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],z:t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}}function x(t,e,r){return t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12]}function S(t,e,r){return t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13]}function P(t,e,r){return t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]}function _(){var t=this.props[0]*this.props[5]-this.props[1]*this.props[4],e=this.props[5]/t,r=-this.props[1]/t,i=-this.props[4]/t,s=this.props[0]/t,a=(this.props[4]*this.props[13]-this.props[5]*this.props[12])/t,n=-(this.props[0]*this.props[13]-this.props[1]*this.props[12])/t,o=new Matrix;return o.props[0]=e,o.props[1]=r,o.props[4]=i,o.props[5]=s,o.props[12]=a,o.props[13]=n,o}function A(t){return this.getInverseMatrix().applyToPointArray(t[0],t[1],t[2]||0)}function C(t){var e,r=t.length,i=[];for(e=0;e<r;e+=1)i[e]=A(t[e]);return i}function T(t,e,r){var i=createTypedArray("float32",6);if(this.isIdentity())i[0]=t[0],i[1]=t[1],i[2]=e[0],i[3]=e[1],i[4]=r[0],i[5]=r[1];else{var s=this.props[0],a=this.props[1],n=this.props[4],o=this.props[5],h=this.props[12],l=this.props[13];i[0]=t[0]*s+t[1]*n+h,i[1]=t[0]*a+t[1]*o+l,i[2]=e[0]*s+e[1]*n+h,i[3]=e[0]*a+e[1]*o+l,i[4]=r[0]*s+r[1]*n+h,i[5]=r[0]*a+r[1]*o+l}return i}function k(t,e,r){return this.isIdentity()?[t,e,r]:[t*this.props[0]+e*this.props[4]+r*this.props[8]+this.props[12],t*this.props[1]+e*this.props[5]+r*this.props[9]+this.props[13],t*this.props[2]+e*this.props[6]+r*this.props[10]+this.props[14]]}function M(t,e){if(this.isIdentity())return t+","+e;var r=this.props;return Math.round(100*(t*r[0]+e*r[4]+r[12]))/100+","+Math.round(100*(t*r[1]+e*r[5]+r[13]))/100}function D(){for(var t=0,e=this.props,r="matrix3d(";t<16;)r+=i(1e4*e[t])/1e4,r+=15===t?")":",",t+=1;return r}function w(t){return t<1e-6&&0<t||-1e-6<t&&t<0?i(1e4*t)/1e4:t}function F(){var t=this.props;return"matrix("+w(t[0])+","+w(t[1])+","+w(t[4])+","+w(t[5])+","+w(t[12])+","+w(t[13])+")"}return function(){this.reset=t,this.rotate=e,this.rotateX=r,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=m,this.shear=l,this.scale=f,this.setTransform=c,this.translate=d,this.transform=u,this.applyToPoint=E,this.applyToX=x,this.applyToY=S,this.applyToZ=P,this.applyToPointArray=k,this.applyToTriplePoints=T,this.applyToPointStringified=M,this.toCSS=D,this.to2dCSS=F,this.clone=v,this.cloneFromProps=b,this.equals=g,this.inversePoints=C,this.inversePoint=A,this.getInverseMatrix=_,this._t=this.transform,this.isIdentity=y,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();!function(o,h){var l,p=this,m=256,f=6,c="random",d=h.pow(m,f),u=h.pow(2,52),y=2*u,g=m-1;function v(t){var e,r=t.length,n=this,i=0,s=n.i=n.j=0,a=n.S=[];for(r||(t=[r++]);i<m;)a[i]=i++;for(i=0;i<m;i++)a[i]=a[s=g&s+t[i%r]+(e=a[i])],a[s]=e;n.g=function(t){for(var e,r=0,i=n.i,s=n.j,a=n.S;t--;)e=a[i=g&i+1],r=r*m+a[g&(a[i]=a[s=g&s+e])+(a[s]=e)];return n.i=i,n.j=s,r}}function b(t,e){return e.i=t.i,e.j=t.j,e.S=t.S.slice(),e}function E(t,e){for(var r,i=t+"",s=0;s<i.length;)e[g&s]=g&(r^=19*e[g&s])+i.charCodeAt(s++);return x(e)}function x(t){return String.fromCharCode.apply(0,t)}h["seed"+c]=function(t,e,r){var i=[],s=E(function t(e,r){var i,s=[],a=typeof e;if(r&&"object"==a)for(i in e)try{s.push(t(e[i],r-1))}catch(t){}return s.length?s:"string"==a?e:e+"\0"}((e=!0===e?{entropy:!0}:e||{}).entropy?[t,x(o)]:null===t?function(){try{if(l)return x(l.randomBytes(m));var t=new Uint8Array(m);return(p.crypto||p.msCrypto).getRandomValues(t),x(t)}catch(t){var e=p.navigator,r=e&&e.plugins;return[+new Date,p,r,p.screen,x(o)]}}():t,3),i),a=new v(i),n=function(){for(var t=a.g(f),e=d,r=0;t<u;)t=(t+r)*m,e*=m,r=a.g(1);for(;y<=t;)t/=2,e/=2,r>>>=1;return(t+r)/e};return n.int32=function(){return 0|a.g(4)},n.quick=function(){return a.g(4)/4294967296},n.double=n,E(x(a.S),o),(e.pass||r||function(t,e,r,i){return i&&(i.S&&b(i,a),t.state=function(){return b(a,{})}),r?(h[c]=t,e):t})(n,s,"global"in e?e.global:this==h,e.state)},E(h.random(),o)}([],BMMath);var BezierFactory=function(){var t={getBezierEasing:function(t,e,r,i,s){var a=s||("bez_"+t+"_"+e+"_"+r+"_"+i).replace(/\./g,"p");if(o[a])return o[a];var n=new h([t,e,r,i]);return o[a]=n}},o={};var l=11,p=1/(l-1),e="function"==typeof Float32Array;function i(t,e){return 1-3*e+3*t}function s(t,e){return 3*e-6*t}function a(t){return 3*t}function m(t,e,r){return((i(e,r)*t+s(e,r))*t+a(e))*t}function f(t,e,r){return 3*i(e,r)*t*t+2*s(e,r)*t+a(e)}function h(t){this._p=t,this._mSampleValues=e?new Float32Array(l):new Array(l),this._precomputed=!1,this.get=this.get.bind(this)}return h.prototype={get:function(t){var e=this._p[0],r=this._p[1],i=this._p[2],s=this._p[3];return this._precomputed||this._precompute(),e===r&&i===s?t:0===t?0:1===t?1:m(this._getTForX(t),r,s)},_precompute:function(){var t=this._p[0],e=this._p[1],r=this._p[2],i=this._p[3];this._precomputed=!0,t===e&&r===i||this._calcSampleValues()},_calcSampleValues:function(){for(var t=this._p[0],e=this._p[2],r=0;r<l;++r)this._mSampleValues[r]=m(r*p,t,e)},_getTForX:function(t){for(var e=this._p[0],r=this._p[2],i=this._mSampleValues,s=0,a=1,n=l-1;a!==n&&i[a]<=t;++a)s+=p;var o=s+(t-i[--a])/(i[a+1]-i[a])*p,h=f(o,e,r);return.001<=h?function(t,e,r,i){for(var s=0;s<4;++s){var a=f(e,r,i);if(0===a)return e;e-=(m(e,r,i)-t)/a}return e}(t,o,e,r):0===h?o:function(t,e,r,i,s){for(var a,n,o=0;0<(a=m(n=e+(r-e)/2,i,s)-t)?r=n:e=n,1e-7<Math.abs(a)&&++o<10;);return n}(t,s,s+p,e,r)}},t}();function extendPrototype(t,e){var r,i,s=t.length;for(r=0;r<s;r+=1)for(var a in i=t[r].prototype)i.hasOwnProperty(a)&&(e.prototype[a]=i[a])}function getDescriptor(t,e){return Object.getOwnPropertyDescriptor(t,e)}function createProxyFunction(t){function e(){}return e.prototype=t,e}function bezFunction(){Math;function y(t,e,r,i,s,a){var n=t*i+e*s+r*a-s*i-a*t-r*e;return-.001<n&&n<.001}var p=function(t,e,r,i){var s,a,n,o,h,l,p=defaultCurveSegments,m=0,f=[],c=[],d=bezier_length_pool.newElement();for(n=r.length,s=0;s<p;s+=1){for(h=s/(p-1),a=l=0;a<n;a+=1)o=bm_pow(1-h,3)*t[a]+3*bm_pow(1-h,2)*h*r[a]+3*(1-h)*bm_pow(h,2)*i[a]+bm_pow(h,3)*e[a],f[a]=o,null!==c[a]&&(l+=bm_pow(f[a]-c[a],2)),c[a]=f[a];l&&(m+=l=bm_sqrt(l)),d.percents[s]=h,d.lengths[s]=m}return d.addedLength=m,d};function g(t){this.segmentLength=0,this.points=new Array(t)}function v(t,e){this.partialLength=t,this.point=e}var b,t=(b={},function(t,e,r,i){var s=(t[0]+"_"+t[1]+"_"+e[0]+"_"+e[1]+"_"+r[0]+"_"+r[1]+"_"+i[0]+"_"+i[1]).replace(/\./g,"p");if(!b[s]){var a,n,o,h,l,p,m,f=defaultCurveSegments,c=0,d=null;2===t.length&&(t[0]!=e[0]||t[1]!=e[1])&&y(t[0],t[1],e[0],e[1],t[0]+r[0],t[1]+r[1])&&y(t[0],t[1],e[0],e[1],e[0]+i[0],e[1]+i[1])&&(f=2);var u=new g(f);for(o=r.length,a=0;a<f;a+=1){for(m=createSizedArray(o),l=a/(f-1),n=p=0;n<o;n+=1)h=bm_pow(1-l,3)*t[n]+3*bm_pow(1-l,2)*l*(t[n]+r[n])+3*(1-l)*bm_pow(l,2)*(e[n]+i[n])+bm_pow(l,3)*e[n],m[n]=h,null!==d&&(p+=bm_pow(m[n]-d[n],2));c+=p=bm_sqrt(p),u.points[a]=new v(p,m),d=m}u.segmentLength=c,b[s]=u}return b[s]});function M(t,e){var r=e.percents,i=e.lengths,s=r.length,a=bm_floor((s-1)*t),n=t*e.addedLength,o=0;if(a===s-1||0===a||n===i[a])return r[a];for(var h=i[a]>n?-1:1,l=!0;l;)if(i[a]<=n&&i[a+1]>n?(o=(n-i[a])/(i[a+1]-i[a]),l=!1):a+=h,a<0||s-1<=a){if(a===s-1)return r[a];l=!1}return r[a]+(r[a+1]-r[a])*o}var D=createTypedArray("float32",8);return{getSegmentsLength:function(t){var e,r=segments_length_pool.newElement(),i=t.c,s=t.v,a=t.o,n=t.i,o=t._length,h=r.lengths,l=0;for(e=0;e<o-1;e+=1)h[e]=p(s[e],s[e+1],a[e],n[e+1]),l+=h[e].addedLength;return i&&o&&(h[e]=p(s[e],s[0],a[e],n[0]),l+=h[e].addedLength),r.totalLength=l,r},getNewSegment:function(t,e,r,i,s,a,n){var o,h=M(s=s<0?0:1<s?1:s,n),l=M(a=1<a?1:a,n),p=t.length,m=1-h,f=1-l,c=m*m*m,d=h*m*m*3,u=h*h*m*3,y=h*h*h,g=m*m*f,v=h*m*f+m*h*f+m*m*l,b=h*h*f+m*h*l+h*m*l,E=h*h*l,x=m*f*f,S=h*f*f+m*l*f+m*f*l,P=h*l*f+m*l*l+h*f*l,_=h*l*l,A=f*f*f,C=l*f*f+f*l*f+f*f*l,T=l*l*f+f*l*l+l*f*l,k=l*l*l;for(o=0;o<p;o+=1)D[4*o]=Math.round(1e3*(c*t[o]+d*r[o]+u*i[o]+y*e[o]))/1e3,D[4*o+1]=Math.round(1e3*(g*t[o]+v*r[o]+b*i[o]+E*e[o]))/1e3,D[4*o+2]=Math.round(1e3*(x*t[o]+S*r[o]+P*i[o]+_*e[o]))/1e3,D[4*o+3]=Math.round(1e3*(A*t[o]+C*r[o]+T*i[o]+k*e[o]))/1e3;return D},getPointInSegment:function(t,e,r,i,s,a){var n=M(s,a),o=1-n;return[Math.round(1e3*(o*o*o*t[0]+(n*o*o+o*n*o+o*o*n)*r[0]+(n*n*o+o*n*n+n*o*n)*i[0]+n*n*n*e[0]))/1e3,Math.round(1e3*(o*o*o*t[1]+(n*o*o+o*n*o+o*o*n)*r[1]+(n*n*o+o*n*n+n*o*n)*i[1]+n*n*n*e[1]))/1e3]},buildBezierData:t,pointOnLine2D:y,pointOnLine3D:function(t,e,r,i,s,a,n,o,h){if(0===r&&0===a&&0===h)return y(t,e,i,s,n,o);var l,p=Math.sqrt(Math.pow(i-t,2)+Math.pow(s-e,2)+Math.pow(a-r,2)),m=Math.sqrt(Math.pow(n-t,2)+Math.pow(o-e,2)+Math.pow(h-r,2)),f=Math.sqrt(Math.pow(n-i,2)+Math.pow(o-s,2)+Math.pow(h-a,2));return-1e-4<(l=m<p?f<p?p-m-f:f-m-p:m<f?f-m-p:m-p-f)&&l<1e-4}}}!function(){for(var a=0,t=["ms","moz","webkit","o"],e=0;e<t.length&&!window.requestAnimationFrame;++e)window.requestAnimationFrame=window[t[e]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[t[e]+"CancelAnimationFrame"]||window[t[e]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(t,e){var r=(new Date).getTime(),i=Math.max(0,16-(r-a)),s=setTimeout(function(){t(r+i)},i);return a=r+i,s}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})}();var bez=bezFunction();function dataFunctionManager(){function m(t,e,r){var i,s,a,n,o,h,l=t.length;for(s=0;s<l;s+=1)if("ks"in(i=t[s])&&!i.completed){if(i.completed=!0,i.tt&&(t[s-1].td=i.tt),[],-1,i.hasMask){var p=i.masksProperties;for(n=p.length,a=0;a<n;a+=1)if(p[a].pt.k.i)d(p[a].pt.k);else for(h=p[a].pt.k.length,o=0;o<h;o+=1)p[a].pt.k[o].s&&d(p[a].pt.k[o].s[0]),p[a].pt.k[o].e&&d(p[a].pt.k[o].e[0])}0===i.ty?(i.layers=f(i.refId,e),m(i.layers,e,r)):4===i.ty?c(i.shapes):5==i.ty&&u(i,r)}}function f(t,e){for(var r=0,i=e.length;r<i;){if(e[r].id===t)return e[r].layers.__used?JSON.parse(JSON.stringify(e[r].layers)):(e[r].layers.__used=!0,e[r].layers);r+=1}}function c(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)d(t[e].ks.k);else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&d(t[e].ks.k[r].s[0]),t[e].ks.k[r].e&&d(t[e].ks.k[r].e[0]);!0}else"gr"==t[e].ty&&c(t[e].it)}function d(t){var e,r=t.i.length;for(e=0;e<r;e+=1)t.i[e][0]+=t.v[e][0],t.i[e][1]+=t.v[e][1],t.o[e][0]+=t.v[e][0],t.o[e][1]+=t.v[e][1]}function o(t,e){var r=e?e.split("."):[100,100,100];return t[0]>r[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&void 0))}var h,r=function(){var i=[4,4,14];function s(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)5===t[e].ty&&(r=t[e],void 0,i=r.t.d,r.t.d={k:[{s:i,t:0}]})}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}(),i=(h=[4,7,99],function(t){if(t.chars&&!o(h,t.v)){var e,r,i,s,a,n=t.chars.length;for(e=0;e<n;e+=1)if(t.chars[e].data&&t.chars[e].data.shapes)for(i=(a=t.chars[e].data.shapes[0].it).length,r=0;r<i;r+=1)(s=a[r].ks.k).__converted||(d(a[r].ks.k),s.__converted=!0)}}),s=function(){var i=[4,1,9];function a(t){var e,r,i,s=t.length;for(e=0;e<s;e+=1)if("gr"===t[e].ty)a(t[e].it);else if("fl"===t[e].ty||"st"===t[e].ty)if(t[e].c.k&&t[e].c.k[0].i)for(i=t[e].c.k.length,r=0;r<i;r+=1)t[e].c.k[r].s&&(t[e].c.k[r].s[0]/=255,t[e].c.k[r].s[1]/=255,t[e].c.k[r].s[2]/=255,t[e].c.k[r].s[3]/=255),t[e].c.k[r].e&&(t[e].c.k[r].e[0]/=255,t[e].c.k[r].e[1]/=255,t[e].c.k[r].e[2]/=255,t[e].c.k[r].e[3]/=255);else t[e].c.k[0]/=255,t[e].c.k[1]/=255,t[e].c.k[2]/=255,t[e].c.k[3]/=255}function s(t){var e,r=t.length;for(e=0;e<r;e+=1)4===t[e].ty&&a(t[e].shapes)}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}(),a=function(){var i=[4,4,18];function l(t){var e,r,i;for(e=t.length-1;0<=e;e-=1)if("sh"==t[e].ty){if(t[e].ks.k.i)t[e].ks.k.c=t[e].closed;else for(i=t[e].ks.k.length,r=0;r<i;r+=1)t[e].ks.k[r].s&&(t[e].ks.k[r].s[0].c=t[e].closed),t[e].ks.k[r].e&&(t[e].ks.k[r].e[0].c=t[e].closed);!0}else"gr"==t[e].ty&&l(t[e].it)}function s(t){var e,r,i,s,a,n,o=t.length;for(r=0;r<o;r+=1){if((e=t[r]).hasMask){var h=e.masksProperties;for(s=h.length,i=0;i<s;i+=1)if(h[i].pt.k.i)h[i].pt.k.c=h[i].cl;else for(n=h[i].pt.k.length,a=0;a<n;a+=1)h[i].pt.k[a].s&&(h[i].pt.k[a].s[0].c=h[i].cl),h[i].pt.k[a].e&&(h[i].pt.k[a].e[0].c=h[i].cl)}4===e.ty&&l(e.shapes)}}return function(t){if(o(i,t.v)&&(s(t.layers),t.assets)){var e,r=t.assets.length;for(e=0;e<r;e+=1)t.assets[e].layers&&s(t.assets[e].layers)}}}();function u(t,e){0!==t.t.a.length||"m"in t.t.p||(t.singleShape=!0)}var t={completeData:function(t,e){t.__complete||(s(t),r(t),i(t),a(t),m(t.layers,t.assets,e),t.__complete=!0)}};return t.checkColors=s,t.checkChars=i,t.checkShapes=a,t.completeLayers=m,t}var dataManager=dataFunctionManager(),FontManager=function(){var a={w:0,size:0,shapes:[]},t=[];function u(t,e){var r=createTag("span");r.style.fontFamily=e;var i=createTag("span");i.innerHTML="giItT1WQy@!-/#",r.style.position="absolute",r.style.left="-10000px",r.style.top="-10000px",r.style.fontSize="300px",r.style.fontVariant="normal",r.style.fontStyle="normal",r.style.fontWeight="normal",r.style.letterSpacing="0",r.appendChild(i),document.body.appendChild(r);var s=i.offsetWidth;return i.style.fontFamily=t+", "+e,{node:i,w:s,parent:r}}t=t.concat([2304,2305,2306,2307,2362,2363,2364,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2387,2388,2389,2390,2391,2402,2403]);var e=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this.initTime=Date.now()};return e.getCombinedCharacterCodes=function(){return t},e.prototype.addChars=function(t){if(t){this.chars||(this.chars=[]);var e,r,i,s=t.length,a=this.chars.length;for(e=0;e<s;e+=1){for(r=0,i=!1;r<a;)this.chars[r].style===t[e].style&&this.chars[r].fFamily===t[e].fFamily&&this.chars[r].ch===t[e].ch&&(i=!0),r+=1;i||(this.chars.push(t[e]),a+=1)}}},e.prototype.addFonts=function(t,e){if(t){if(this.chars)return this.isLoaded=!0,void(this.fonts=t.list);var r,i,s,a,n=t.list,o=n.length,h=o;for(r=0;r<o;r+=1){var l,p,m=!0;if(n[r].loaded=!1,n[r].monoCase=u(n[r].fFamily,"monospace"),n[r].sansCase=u(n[r].fFamily,"sans-serif"),n[r].fPath){if("p"===n[r].fOrigin||3===n[r].origin){if(0<(l=document.querySelectorAll('style[f-forigin="p"][f-family="'+n[r].fFamily+'"], style[f-origin="3"][f-family="'+n[r].fFamily+'"]')).length&&(m=!1),m){var f=createTag("style");f.setAttribute("f-forigin",n[r].fOrigin),f.setAttribute("f-origin",n[r].origin),f.setAttribute("f-family",n[r].fFamily),f.type="text/css",f.innerHTML="@font-face {font-family: "+n[r].fFamily+"; font-style: normal; src: url('"+n[r].fPath+"');}",e.appendChild(f)}}else if("g"===n[r].fOrigin||1===n[r].origin){for(l=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),p=0;p<l.length;p++)-1!==l[p].href.indexOf(n[r].fPath)&&(m=!1);if(m){var c=createTag("link");c.setAttribute("f-forigin",n[r].fOrigin),c.setAttribute("f-origin",n[r].origin),c.type="text/css",c.rel="stylesheet",c.href=n[r].fPath,document.body.appendChild(c)}}else if("t"===n[r].fOrigin||2===n[r].origin){for(l=document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'),p=0;p<l.length;p++)n[r].fPath===l[p].src&&(m=!1);if(m){var d=createTag("link");d.setAttribute("f-forigin",n[r].fOrigin),d.setAttribute("f-origin",n[r].origin),d.setAttribute("rel","stylesheet"),d.setAttribute("href",n[r].fPath),e.appendChild(d)}}}else n[r].loaded=!0,h-=1;n[r].helper=(i=e,s=n[r],a=void 0,(a=createNS("text")).style.fontSize="100px",a.setAttribute("font-family",s.fFamily),a.setAttribute("font-style",s.fStyle),a.setAttribute("font-weight",s.fWeight),a.textContent="1",s.fClass?(a.style.fontFamily="inherit",a.setAttribute("class",s.fClass)):a.style.fontFamily=s.fFamily,i.appendChild(a),createTag("canvas").getContext("2d").font=s.fWeight+" "+s.fStyle+" 100px "+s.fFamily,a),n[r].cache={},this.fonts.push(n[r])}0===h?this.isLoaded=!0:setTimeout(this.checkLoadedFonts.bind(this),100)}else this.isLoaded=!0},e.prototype.getCharData=function(t,e,r){for(var i=0,s=this.chars.length;i<s;){if(this.chars[i].ch===t&&this.chars[i].style===e&&this.chars[i].fFamily===r)return this.chars[i];i+=1}return("string"==typeof t&&13!==t.charCodeAt(0)||!t)&&console&&console.warn&&console.warn("Missing character from exported characters list: ",t,e,r),a},e.prototype.getFontByName=function(t){for(var e=0,r=this.fonts.length;e<r;){if(this.fonts[e].fName===t)return this.fonts[e];e+=1}return this.fonts[0]},e.prototype.measureText=function(t,e,r){var i=this.getFontByName(e),s=t.charCodeAt(0);if(!i.cache[s+1]){var a=i.helper;if(" "===t){a.textContent="|"+t+"|";var n=a.getComputedTextLength();a.textContent="||";var o=a.getComputedTextLength();i.cache[s+1]=(n-o)/100}else a.textContent=t,i.cache[s+1]=a.getComputedTextLength()/100}return i.cache[s+1]*r},e.prototype.checkLoadedFonts=function(){var t,e,r,i=this.fonts.length,s=i;for(t=0;t<i;t+=1)this.fonts[t].loaded?s-=1:"n"===this.fonts[t].fOrigin||0===this.fonts[t].origin?this.fonts[t].loaded=!0:(e=this.fonts[t].monoCase.node,r=this.fonts[t].monoCase.w,e.offsetWidth!==r?(s-=1,this.fonts[t].loaded=!0):(e=this.fonts[t].sansCase.node,r=this.fonts[t].sansCase.w,e.offsetWidth!==r&&(s-=1,this.fonts[t].loaded=!0)),this.fonts[t].loaded&&(this.fonts[t].sansCase.parent.parentNode.removeChild(this.fonts[t].sansCase.parent),this.fonts[t].monoCase.parent.parentNode.removeChild(this.fonts[t].monoCase.parent)));0!==s&&Date.now()-this.initTime<5e3?setTimeout(this.checkLoadedFonts.bind(this),20):setTimeout(function(){this.isLoaded=!0}.bind(this),0)},e.prototype.loaded=function(){return this.isLoaded},e}(),PropertyFactory=function(){var m=initialDefaultFrame,s=Math.abs;function f(t,e){var r,i=this.offsetTime;"multidimensional"===this.propType&&(r=createTypedArray("float32",this.pv.length));for(var s,a,n,o,h,l,p,m,f=e.lastIndex,c=f,d=this.keyframes.length-1,u=!0;u;){if(s=this.keyframes[c],a=this.keyframes[c+1],c===d-1&&t>=a.t-i){s.h&&(s=a),f=0;break}if(a.t-i>t){f=c;break}c<d-1?c+=1:(f=0,u=!1)}var y,g,v,b,E,x,S,P,_,A,C=a.t-i,T=s.t-i;if(s.to){s.bezierData||(s.bezierData=bez.buildBezierData(s.s,a.s||s.e,s.to,s.ti));var k=s.bezierData;if(C<=t||t<T){var M=C<=t?k.points.length-1:0;for(o=k.points[M].point.length,n=0;n<o;n+=1)r[n]=k.points[M].point[n]}else{s.__fnct?m=s.__fnct:(m=BezierFactory.getBezierEasing(s.o.x,s.o.y,s.i.x,s.i.y,s.n).get,s.__fnct=m),h=m((t-T)/(C-T));var D,w=k.segmentLength*h,F=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastAddedLength:0;for(p=e.lastFrame<t&&e._lastKeyframeIndex===c?e._lastPoint:0,u=!0,l=k.points.length;u;){if(F+=k.points[p].partialLength,0===w||0===h||p===k.points.length-1){for(o=k.points[p].point.length,n=0;n<o;n+=1)r[n]=k.points[p].point[n];break}if(F<=w&&w<F+k.points[p+1].partialLength){for(D=(w-F)/k.points[p+1].partialLength,o=k.points[p].point.length,n=0;n<o;n+=1)r[n]=k.points[p].point[n]+(k.points[p+1].point[n]-k.points[p].point[n])*D;break}p<l-1?p+=1:u=!1}e._lastPoint=p,e._lastAddedLength=F-k.points[p].partialLength,e._lastKeyframeIndex=c}}else{var I,V,R,B,L;if(d=s.s.length,y=a.s||s.e,this.sh&&1!==s.h)if(C<=t)r[0]=y[0],r[1]=y[1],r[2]=y[2];else if(t<=T)r[0]=s.s[0],r[1]=s.s[1],r[2]=s.s[2];else{var G=N(s.s),z=N(y);g=r,v=function(t,e,r){var i,s,a,n,o,h=[],l=t[0],p=t[1],m=t[2],f=t[3],c=e[0],d=e[1],u=e[2],y=e[3];(s=l*c+p*d+m*u+f*y)<0&&(s=-s,c=-c,d=-d,u=-u,y=-y);o=1e-6<1-s?(i=Math.acos(s),a=Math.sin(i),n=Math.sin((1-r)*i)/a,Math.sin(r*i)/a):(n=1-r,r);return h[0]=n*l+o*c,h[1]=n*p+o*d,h[2]=n*m+o*u,h[3]=n*f+o*y,h}(G,z,(t-T)/(C-T)),b=v[0],E=v[1],x=v[2],S=v[3],P=Math.atan2(2*E*S-2*b*x,1-2*E*E-2*x*x),_=Math.asin(2*b*E+2*x*S),A=Math.atan2(2*b*S-2*E*x,1-2*b*b-2*x*x),g[0]=P/degToRads,g[1]=_/degToRads,g[2]=A/degToRads}else for(c=0;c<d;c+=1)1!==s.h&&(h=C<=t?1:t<T?0:(s.o.x.constructor===Array?(s.__fnct||(s.__fnct=[]),s.__fnct[c]?m=s.__fnct[c]:(I=void 0===s.o.x[c]?s.o.x[0]:s.o.x[c],V=void 0===s.o.y[c]?s.o.y[0]:s.o.y[c],R=void 0===s.i.x[c]?s.i.x[0]:s.i.x[c],B=void 0===s.i.y[c]?s.i.y[0]:s.i.y[c],m=BezierFactory.getBezierEasing(I,V,R,B).get,s.__fnct[c]=m)):s.__fnct?m=s.__fnct:(I=s.o.x,V=s.o.y,R=s.i.x,B=s.i.y,m=BezierFactory.getBezierEasing(I,V,R,B).get,s.__fnct=m),m((t-T)/(C-T)))),y=a.s||s.e,L=1===s.h?s.s[c]:s.s[c]+(y[c]-s.s[c])*h,"multidimensional"===this.propType?r[c]=L:r=L}return e.lastIndex=f,r}function N(t){var e=t[0]*degToRads,r=t[1]*degToRads,i=t[2]*degToRads,s=Math.cos(e/2),a=Math.cos(r/2),n=Math.cos(i/2),o=Math.sin(e/2),h=Math.sin(r/2),l=Math.sin(i/2);return[o*h*n+s*a*l,o*a*n+s*h*l,s*h*n-o*a*l,s*a*n-o*h*l]}function c(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(t===this._caching.lastFrame||this._caching.lastFrame!==m&&(this._caching.lastFrame>=r&&r<=t||this._caching.lastFrame<e&&t<e))){this._caching.lastFrame>=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(t,this._caching);this.pv=i}return this._caching.lastFrame=t,this.pv}function d(t){var e;if("unidimensional"===this.propType)e=t*this.mult,1e-5<s(this.v-e)&&(this.v=e,this._mdf=!0);else for(var r=0,i=this.v.length;r<i;)e=t[r]*this.mult,1e-5<s(this.v[r]-e)&&(this.v[r]=e,this._mdf=!0),r+=1}function u(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=this._isFirstFrame;var t,e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t<e;t+=1)r=this.effectsSequence[t](r);this.setVValue(r),this._isFirstFrame=!1,this.lock=!1,this.frameId=this.elem.globalData.frameId}}function y(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function n(t,e,r,i){this.propType="unidimensional",this.mult=r||1,this.data=e,this.v=r?e.k*r:e.k,this.pv=e.k,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.vel=0,this.effectsSequence=[],this._isFirstFrame=!0,this.getValue=u,this.setVValue=d,this.addEffect=y}function o(t,e,r,i){this.propType="multidimensional",this.mult=r||1,this.data=e,this._mdf=!1,this.elem=t,this.container=i,this.comp=t.comp,this.k=!1,this.kf=!1,this.frameId=-1;var s,a=e.k.length;this.v=createTypedArray("float32",a),this.pv=createTypedArray("float32",a);createTypedArray("float32",a);for(this.vel=createTypedArray("float32",a),s=0;s<a;s+=1)this.v[s]=e.k[s]*this.mult,this.pv[s]=e.k[s];this._isFirstFrame=!0,this.effectsSequence=[],this.getValue=u,this.setVValue=d,this.addEffect=y}function h(t,e,r,i){this.propType="unidimensional",this.keyframes=e.k,this.offsetTime=t.data.st,this.frameId=-1,this._caching={lastFrame:m,lastIndex:0,value:0,_lastKeyframeIndex:-1},this.k=!0,this.kf=!0,this.data=e,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.v=m,this.pv=m,this._isFirstFrame=!0,this.getValue=u,this.setVValue=d,this.interpolateValue=f,this.effectsSequence=[c.bind(this)],this.addEffect=y}function l(t,e,r,i){this.propType="multidimensional";var s,a,n,o,h,l=e.k.length;for(s=0;s<l-1;s+=1)e.k[s].to&&e.k[s].s&&e.k[s+1]&&e.k[s+1].s&&(a=e.k[s].s,n=e.k[s+1].s,o=e.k[s].to,h=e.k[s].ti,(2===a.length&&(a[0]!==n[0]||a[1]!==n[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],a[0]+o[0],a[1]+o[1])&&bez.pointOnLine2D(a[0],a[1],n[0],n[1],n[0]+h[0],n[1]+h[1])||3===a.length&&(a[0]!==n[0]||a[1]!==n[1]||a[2]!==n[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],a[0]+o[0],a[1]+o[1],a[2]+o[2])&&bez.pointOnLine3D(a[0],a[1],a[2],n[0],n[1],n[2],n[0]+h[0],n[1]+h[1],n[2]+h[2]))&&(e.k[s].to=null,e.k[s].ti=null),a[0]===n[0]&&a[1]===n[1]&&0===o[0]&&0===o[1]&&0===h[0]&&0===h[1]&&(2===a.length||a[2]===n[2]&&0===o[2]&&0===h[2])&&(e.k[s].to=null,e.k[s].ti=null));this.effectsSequence=[c.bind(this)],this.keyframes=e.k,this.offsetTime=t.data.st,this.k=!0,this.kf=!0,this._isFirstFrame=!0,this.mult=r||1,this.elem=t,this.container=i,this.comp=t.comp,this.getValue=u,this.setVValue=d,this.interpolateValue=f,this.frameId=-1;var p=e.k[0].s.length;for(this.v=createTypedArray("float32",p),this.pv=createTypedArray("float32",p),s=0;s<p;s+=1)this.v[s]=m,this.pv[s]=m;this._caching={lastFrame:m,lastIndex:0,value:createTypedArray("float32",p)},this.addEffect=y}return{getProp:function(t,e,r,i,s){var a;if(e.k.length)if("number"==typeof e.k[0])a=new o(t,e,i,s);else switch(r){case 0:a=new h(t,e,i,s);break;case 1:a=new l(t,e,i,s)}else a=new n(t,e,i,s);return a.effectsSequence.length&&s.addDynamicProperty(a),a}}}(),TransformPropertyFactory=function(){var n=[0,0];function i(t,e,r){if(this.elem=t,this.frameId=-1,this.propType="transform",this.data=e,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(r||t),e.p&&e.p.s?(this.px=PropertyFactory.getProp(t,e.p.x,0,0,this),this.py=PropertyFactory.getProp(t,e.p.y,0,0,this),e.p.z&&(this.pz=PropertyFactory.getProp(t,e.p.z,0,0,this))):this.p=PropertyFactory.getProp(t,e.p||{k:[0,0,0]},1,0,this),e.rx){if(this.rx=PropertyFactory.getProp(t,e.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(t,e.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(t,e.rz,0,degToRads,this),e.or.k[0].ti){var i,s=e.or.k.length;for(i=0;i<s;i+=1)e.or.k[i].to=e.or.k[i].ti=null}this.or=PropertyFactory.getProp(t,e.or,1,degToRads,this),this.or.sh=!0}else this.r=PropertyFactory.getProp(t,e.r||{k:0},0,degToRads,this);e.sk&&(this.sk=PropertyFactory.getProp(t,e.sk,0,degToRads,this),this.sa=PropertyFactory.getProp(t,e.sa,0,degToRads,this)),this.a=PropertyFactory.getProp(t,e.a||{k:[0,0,0]},1,0,this),this.s=PropertyFactory.getProp(t,e.s||{k:[100,100,100]},1,.01,this),e.o?this.o=PropertyFactory.getProp(t,e.o,0,.01,t):this.o={_mdf:!1,v:1},this._isDirty=!0,this.dynamicProperties.length||this.getValue(!0)}return i.prototype={applyToMatrix:function(t){var e=this._mdf;this.iterateDynamicProperties(),this._mdf=this._mdf||e,this.a&&t.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&t.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&t.skewFromAxis(-this.sk.v,this.sa.v),this.r?t.rotate(-this.r.v):t.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?this.data.p.z?t.translate(this.px.v,this.py.v,-this.pz.v):t.translate(this.px.v,this.py.v,0):t.translate(this.p.v[0],this.p.v[1],-this.p.v[2])},getValue:function(t){if(this.elem.globalData.frameId!==this.frameId){if(this._isDirty&&(this.precalculateMatrix(),this._isDirty=!1),this.iterateDynamicProperties(),this._mdf||t){if(this.v.cloneFromProps(this.pre.props),this.appliedTransformations<1&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations<2&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.appliedTransformations<3&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r&&this.appliedTransformations<4?this.v.rotate(-this.r.v):!this.r&&this.appliedTransformations<4&&this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.autoOriented){var e,r,i=this.elem.globalData.frameRate;if(this.p&&this.p.keyframes&&this.p.getValueAtTime)r=this.p._caching.lastFrame+this.p.offsetTime<=this.p.keyframes[0].t?(e=this.p.getValueAtTime((this.p.keyframes[0].t+.01)/i,0),this.p.getValueAtTime(this.p.keyframes[0].t/i,0)):this.p._caching.lastFrame+this.p.offsetTime>=this.p.keyframes[this.p.keyframes.length-1].t?(e=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/i,0),this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/i,0)):(e=this.p.pv,this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/i,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){e=[],r=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(e[0]=s.getValueAtTime((s.keyframes[0].t+.01)/i,0),e[1]=a.getValueAtTime((a.keyframes[0].t+.01)/i,0),r[0]=s.getValueAtTime(s.keyframes[0].t/i,0),r[1]=a.getValueAtTime(a.keyframes[0].t/i,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(e[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/i,0),e[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/i,0),r[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/i,0),r[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/i,0)):(e=[s.pv,a.pv],r[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/i,s.offsetTime),r[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/i,a.offsetTime))}else e=r=n;this.v.rotate(-Math.atan2(e[1]-r[1],e[0]-r[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}if(this.r){if(this.r.effectsSequence.length)return;this.pre.rotate(-this.r.v),this.appliedTransformations=4}else this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],i),i.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},i.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,e,r){return new i(t,e,r)}}}();function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=createSizedArray(this._maxLength),this.o=createSizedArray(this._maxLength),this.i=createSizedArray(this._maxLength)}ShapePath.prototype.setPathData=function(t,e){this.c=t,this.setLength(e);for(var r=0;r<e;)this.v[r]=point_pool.newElement(),this.o[r]=point_pool.newElement(),this.i[r]=point_pool.newElement(),r+=1},ShapePath.prototype.setLength=function(t){for(;this._maxLength<t;)this.doubleArrayLength();this._length=t},ShapePath.prototype.doubleArrayLength=function(){this.v=this.v.concat(createSizedArray(this._maxLength)),this.i=this.i.concat(createSizedArray(this._maxLength)),this.o=this.o.concat(createSizedArray(this._maxLength)),this._maxLength*=2},ShapePath.prototype.setXYAt=function(t,e,r,i,s){var a;switch(this._length=Math.max(this._length,i+1),this._length>=this._maxLength&&this.doubleArrayLength(),r){case"v":a=this.v;break;case"i":a=this.i;break;case"o":a=this.o}(!a[i]||a[i]&&!s)&&(a[i]=point_pool.newElement()),a[i][0]=t,a[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,s,a,n,o){this.setXYAt(t,e,"v",n,o),this.setXYAt(r,i,"o",n,o),this.setXYAt(s,a,"i",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a<o;a+=1)t.setTripleAt(e[n][0],e[n][1],i[n][0],i[n][1],r[n][0],r[n][1],a,!1),n-=1;return t};var ShapePropertyFactory=function(){var s=-999999;function t(t,e,r){var i,s,a,n,o,h,l,p,m,f=r.lastIndex,c=this.keyframes;if(t<c[0].t-this.offsetTime)i=c[0].s[0],a=!0,f=0;else if(t>=c[c.length-1].t-this.offsetTime)i=c[c.length-1].s?c[c.length-1].s[0]:c[c.length-2].e[0],a=!0;else{for(var d,u,y=f,g=c.length-1,v=!0;v&&(d=c[y],!((u=c[y+1]).t-this.offsetTime>t));)y<g-1?y+=1:v=!1;if(f=y,!(a=1===d.h)){if(t>=u.t-this.offsetTime)p=1;else if(t<d.t-this.offsetTime)p=0;else{var b;d.__fnct?b=d.__fnct:(b=BezierFactory.getBezierEasing(d.o.x,d.o.y,d.i.x,d.i.y).get,d.__fnct=b),p=b((t-(d.t-this.offsetTime))/(u.t-this.offsetTime-(d.t-this.offsetTime)))}s=u.s?u.s[0]:d.e[0]}i=d.s[0]}for(h=e._length,l=i.i[0].length,r.lastIndex=f,n=0;n<h;n+=1)for(o=0;o<l;o+=1)m=a?i.i[n][o]:i.i[n][o]+(s.i[n][o]-i.i[n][o])*p,e.i[n][o]=m,m=a?i.o[n][o]:i.o[n][o]+(s.o[n][o]-i.o[n][o])*p,e.o[n][o]=m,m=a?i.v[n][o]:i.v[n][o]+(s.v[n][o]-i.v[n][o])*p,e.v[n][o]=m}function a(){this.paths=this.localShapeCollection}function e(t){(function(t,e){if(t._length!==e._length||t.c!==e.c)return!1;var r,i=t._length;for(r=0;r<i;r+=1)if(t.v[r][0]!==e.v[r][0]||t.v[r][1]!==e.v[r][1]||t.o[r][0]!==e.o[r][0]||t.o[r][1]!==e.o[r][1]||t.i[r][0]!==e.i[r][0]||t.i[r][1]!==e.i[r][1])return!1;return!0})(this.v,t)||(this.v=shape_pool.clone(t),this.localShapeCollection.releaseShapes(),this.localShapeCollection.addShape(this.v),this._mdf=!0,this.paths=this.localShapeCollection)}function r(){if(this.elem.globalData.frameId!==this.frameId)if(this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{this.lock=!0,this._mdf=!1;var t,e=this.kf?this.pv:this.data.ks?this.data.ks.k:this.data.pt.k,r=this.effectsSequence.length;for(t=0;t<r;t+=1)e=this.effectsSequence[t](e);this.setVValue(e),this.lock=!1,this.frameId=this.elem.globalData.frameId}else this._mdf=!1}function n(t,e,r){this.propType="shape",this.comp=t.comp,this.container=t,this.elem=t,this.data=e,this.k=!1,this.kf=!1,this._mdf=!1;var i=3===r?e.pt.k:e.ks.k;this.v=shape_pool.clone(i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.reset=a,this.effectsSequence=[]}function i(t){this.effectsSequence.push(t),this.container.addDynamicProperty(this)}function o(t,e,r){this.propType="shape",this.comp=t.comp,this.elem=t,this.container=t,this.offsetTime=t.data.st,this.keyframes=3===r?e.pt.k:e.ks.k,this.k=!0,this.kf=!0;var i=this.keyframes[0].s[0].i.length;this.keyframes[0].s[0].i[0].length;this.v=shape_pool.newElement(),this.v.setPathData(this.keyframes[0].s[0].c,i),this.pv=shape_pool.clone(this.v),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.lastFrame=s,this.reset=a,this._caching={lastFrame:s,lastIndex:0},this.effectsSequence=[function(){var t=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,r=this.keyframes[this.keyframes.length-1].t-this.offsetTime,i=this._caching.lastFrame;return i!==s&&(i<e&&t<e||r<i&&r<t)||(this._caching.lastIndex=i<t?this._caching.lastIndex:0,this.interpolateShape(t,this.pv,this._caching)),this._caching.lastFrame=t,this.pv}.bind(this)]}n.prototype.interpolateShape=t,n.prototype.getValue=r,n.prototype.setVValue=e,n.prototype.addEffect=i,o.prototype.getValue=r,o.prototype.interpolateShape=t,o.prototype.setVValue=e,o.prototype.addEffect=i;var h=function(){var n=roundCorner;function t(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,4),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.paths=this.localShapeCollection,this.localShapeCollection.addShape(this.v),this.d=e.d,this.elem=t,this.comp=t.comp,this.frameId=-1,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertEllToPath())}return t.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertEllToPath())},convertEllToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=3!==this.d,a=this.v;a.v[0][0]=t,a.v[0][1]=e-i,a.v[1][0]=s?t+r:t-r,a.v[1][1]=e,a.v[2][0]=t,a.v[2][1]=e+i,a.v[3][0]=s?t-r:t+r,a.v[3][1]=e,a.i[0][0]=s?t-r*n:t+r*n,a.i[0][1]=e-i,a.i[1][0]=s?t+r:t-r,a.i[1][1]=e-i*n,a.i[2][0]=s?t+r*n:t-r*n,a.i[2][1]=e+i,a.i[3][0]=s?t-r:t+r,a.i[3][1]=e+i*n,a.o[0][0]=s?t+r*n:t-r*n,a.o[0][1]=e-i,a.o[1][0]=s?t+r:t-r,a.o[1][1]=e+i*n,a.o[2][0]=s?t-r*n:t+r*n,a.o[2][1]=e+i,a.o[3][0]=s?t-r:t+r,a.o[3][1]=e-i*n}},extendPrototype([DynamicPropertyContainer],t),t}(),l=function(){function t(t,e){this.v=shape_pool.newElement(),this.v.setPathData(!0,0),this.elem=t,this.comp=t.comp,this.data=e,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),1===e.sy?(this.ir=PropertyFactory.getProp(t,e.ir,0,0,this),this.is=PropertyFactory.getProp(t,e.is,0,.01,this),this.convertToPath=this.convertStarToPath):this.convertToPath=this.convertPolygonToPath,this.pt=PropertyFactory.getProp(t,e.pt,0,0,this),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,degToRads,this),this.or=PropertyFactory.getProp(t,e.or,0,0,this),this.os=PropertyFactory.getProp(t,e.os,0,.01,this),this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertToPath())}return t.prototype={reset:a,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertToPath())},convertStarToPath:function(){var t,e,r,i,s=2*Math.floor(this.pt.v),a=2*Math.PI/s,n=!0,o=this.or.v,h=this.ir.v,l=this.os.v,p=this.is.v,m=2*Math.PI*o/(2*s),f=2*Math.PI*h/(2*s),c=-Math.PI/2;c+=this.r.v;var d=3===this.data.d?-1:1;for(t=this.v._length=0;t<s;t+=1){r=n?l:p,i=n?m:f;var u=(e=n?o:h)*Math.cos(c),y=e*Math.sin(c),g=0===u&&0===y?0:y/Math.sqrt(u*u+y*y),v=0===u&&0===y?0:-u/Math.sqrt(u*u+y*y);u+=+this.p.v[0],y+=+this.p.v[1],this.v.setTripleAt(u,y,u-g*i*r*d,y-v*i*r*d,u+g*i*r*d,y+v*i*r*d,t,!0),n=!n,c+=a*d}},convertPolygonToPath:function(){var t,e=Math.floor(this.pt.v),r=2*Math.PI/e,i=this.or.v,s=this.os.v,a=2*Math.PI*i/(4*e),n=-Math.PI/2,o=3===this.data.d?-1:1;for(n+=this.r.v,t=this.v._length=0;t<e;t+=1){var h=i*Math.cos(n),l=i*Math.sin(n),p=0===h&&0===l?0:l/Math.sqrt(h*h+l*l),m=0===h&&0===l?0:-h/Math.sqrt(h*h+l*l);h+=+this.p.v[0],l+=+this.p.v[1],this.v.setTripleAt(h,l,h-p*a*s*o,l-m*a*s*o,h+p*a*s*o,l+m*a*s*o,t,!0),n+=r*o}this.paths.length=0,this.paths[0]=this.v}},extendPrototype([DynamicPropertyContainer],t),t}(),p=function(){function t(t,e){this.v=shape_pool.newElement(),this.v.c=!0,this.localShapeCollection=shapeCollection_pool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.elem=t,this.comp=t.comp,this.frameId=-1,this.d=e.d,this.initDynamicPropertyContainer(t),this.p=PropertyFactory.getProp(t,e.p,1,0,this),this.s=PropertyFactory.getProp(t,e.s,1,0,this),this.r=PropertyFactory.getProp(t,e.r,0,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertRectToPath())}return t.prototype={convertRectToPath:function(){var t=this.p.v[0],e=this.p.v[1],r=this.s.v[0]/2,i=this.s.v[1]/2,s=bm_min(r,i,this.r.v),a=s*(1-roundCorner);this.v._length=0,2===this.d||1===this.d?(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+s,t+r,e-i+a,0,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-a,t+r,e+i-s,1,!0),0!==s?(this.v.setTripleAt(t+r-s,e+i,t+r-s,e+i,t+r-a,e+i,2,!0),this.v.setTripleAt(t-r+s,e+i,t-r+a,e+i,t-r+s,e+i,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-s,t-r,e+i-a,4,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+a,t-r,e-i+s,5,!0),this.v.setTripleAt(t-r+s,e-i,t-r+s,e-i,t-r+a,e-i,6,!0),this.v.setTripleAt(t+r-s,e-i,t+r-a,e-i,t+r-s,e-i,7,!0)):(this.v.setTripleAt(t-r,e+i,t-r+a,e+i,t-r,e+i,2),this.v.setTripleAt(t-r,e-i,t-r,e-i+a,t-r,e-i,3))):(this.v.setTripleAt(t+r,e-i+s,t+r,e-i+a,t+r,e-i+s,0,!0),0!==s?(this.v.setTripleAt(t+r-s,e-i,t+r-s,e-i,t+r-a,e-i,1,!0),this.v.setTripleAt(t-r+s,e-i,t-r+a,e-i,t-r+s,e-i,2,!0),this.v.setTripleAt(t-r,e-i+s,t-r,e-i+s,t-r,e-i+a,3,!0),this.v.setTripleAt(t-r,e+i-s,t-r,e+i-a,t-r,e+i-s,4,!0),this.v.setTripleAt(t-r+s,e+i,t-r+s,e+i,t-r+a,e+i,5,!0),this.v.setTripleAt(t+r-s,e+i,t+r-a,e+i,t+r-s,e+i,6,!0),this.v.setTripleAt(t+r,e+i-s,t+r,e+i-s,t+r,e+i-a,7,!0)):(this.v.setTripleAt(t-r,e-i,t-r+a,e-i,t-r,e-i,1,!0),this.v.setTripleAt(t-r,e+i,t-r,e+i-a,t-r,e+i,2,!0),this.v.setTripleAt(t+r,e+i,t+r-a,e+i,t+r,e+i,3,!0)))},getValue:function(t){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertRectToPath())},reset:a},extendPrototype([DynamicPropertyContainer],t),t}();var m={getShapeProp:function(t,e,r){var i;return 3===r||4===r?i=(3===r?e.pt:e.ks).k.length?new o(t,e,r):new n(t,e,r):5===r?i=new p(t,e):6===r?i=new h(t,e):7===r&&(i=new l(t,e)),i.k&&t.addDynamicProperty(i),i},getConstructorFunction:function(){return n},getKeyframedConstructorFunction:function(){return o}};return m}(),ShapeModifiers=($r={},_r={},$r.registerModifier=function(t,e){_r[t]||(_r[t]=e)},$r.getModifier=function(t,e,r){return new _r[t](e,r)},$r),$r,_r;function ShapeModifier(){}function TrimModifier(){}function RoundCornersModifier(){}function RepeaterModifier(){}function ShapeCollection(){this._length=0,this._maxLength=4,this.shapes=createSizedArray(this._maxLength)}function DashProperty(t,e,r,i){this.elem=t,this.frameId=-1,this.dataProps=createSizedArray(e.length),this.renderer=r,this.k=!1,this.dashStr="",this.dashArray=createTypedArray("float32",e.length?e.length-1:0),this.dashoffset=createTypedArray("float32",1),this.initDynamicPropertyContainer(i);var s,a,n=e.length||0;for(s=0;s<n;s+=1)a=PropertyFactory.getProp(t,e[s].v,0,0,this),this.k=a.k||this.k,this.dataProps[s]={n:e[s].n,p:a};this.k||this.getValue(!0),this._isAnimated=this.k}function GradientProperty(t,e,r){this.data=e,this.c=createTypedArray("uint8c",4*e.p);var i=e.k.k[0].s?e.k.k[0].s.length-4*e.p:e.k.k.length-4*e.p;this.o=createTypedArray("float32",i),this._cmdf=!1,this._omdf=!1,this._collapsable=this.checkCollapsable(),this._hasOpacity=i,this.initDynamicPropertyContainer(r),this.prop=PropertyFactory.getProp(t,e.k,1,null,this),this.k=this.prop.k,this.getValue(!0)}ShapeModifier.prototype.initModifierProperties=function(){},ShapeModifier.prototype.addShapeToModifier=function(){},ShapeModifier.prototype.addShape=function(t){if(!this.closed){t.sh.container.addDynamicProperty(t.sh);var e={shape:t.sh,data:t,localShapeCollection:shapeCollection_pool.newShapeCollection()};this.shapes.push(e),this.addShapeToModifier(e),this._isAnimated&&t.setAsAnimated()}},ShapeModifier.prototype.init=function(t,e){this.shapes=[],this.elem=t,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e),this.frameId=initialDefaultFrame,this.closed=!1,this.k=!1,this.dynamicProperties.length?this.k=!0:this.getValue(!0)},ShapeModifier.prototype.processKeys=function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties())},extendPrototype([DynamicPropertyContainer],ShapeModifier),extendPrototype([ShapeModifier],TrimModifier),TrimModifier.prototype.initModifierProperties=function(t,e){this.s=PropertyFactory.getProp(t,e.s,0,.01,this),this.e=PropertyFactory.getProp(t,e.e,0,.01,this),this.o=PropertyFactory.getProp(t,e.o,0,0,this),this.sValue=0,this.eValue=0,this.getValue=this.processKeys,this.m=e.m,this._isAnimated=!!this.s.effectsSequence.length||!!this.e.effectsSequence.length||!!this.o.effectsSequence.length},TrimModifier.prototype.addShapeToModifier=function(t){t.pathsData=[]},TrimModifier.prototype.calculateShapeEdges=function(t,e,r,i,s){var a=[];e<=1?a.push({s:t,e:e}):1<=t?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],l=a.length;for(n=0;n<l;n+=1){var p,m;if((o=a[n]).e*s<i||o.s*s>i+r);else p=o.s*s<=i?0:(o.s*s-i)/r,m=o.e*s>=i+r?1:(o.e*s-i)/r,h.push([p,m])}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e<r;e+=1)segments_length_pool.release(t[e]);return t.length=0,t},TrimModifier.prototype.processShapes=function(t){var e,r,i;if(this._mdf||t){var s=this.o.v%360/360;if(s<0&&(s+=1),e=(1<this.s.v?1:this.s.v<0?0:this.s.v)+s,(r=(1<this.e.v?1:this.e.v<0?0:this.e.v)+s)<e){var a=e;e=r,r=a}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var n,o,h,l,p,m,f=this.shapes.length,c=0;if(r===e)for(n=0;n<f;n+=1)this.shapes[n].localShapeCollection.releaseShapes(),this.shapes[n].shape._mdf=!0,this.shapes[n].shape.paths=this.shapes[n].localShapeCollection;else if(1===r&&0===e||0===r&&1===e){if(this._mdf)for(n=0;n<f;n+=1)this.shapes[n].pathsData.length=0,this.shapes[n].shape._mdf=!0}else{var d,u,y=[];for(n=0;n<f;n+=1)if((d=this.shapes[n]).shape._mdf||this._mdf||t||2===this.m){if(h=(i=d.shape.paths)._length,m=0,!d.shape._mdf&&d.pathsData.length)m=d.totalShapeLength;else{for(l=this.releasePathsData(d.pathsData),o=0;o<h;o+=1)p=bez.getSegmentsLength(i.shapes[o]),l.push(p),m+=p.totalLength;d.totalShapeLength=m,d.pathsData=l}c+=m,d.shape._mdf=!0}else d.shape.paths=d.localShapeCollection;var g,v=e,b=r,E=0;for(n=f-1;0<=n;n-=1)if((d=this.shapes[n]).shape._mdf){for((u=d.localShapeCollection).releaseShapes(),2===this.m&&1<f?(g=this.calculateShapeEdges(e,r,d.totalShapeLength,E,c),E+=d.totalShapeLength):g=[[v,b]],h=g.length,o=0;o<h;o+=1){v=g[o][0],b=g[o][1],y.length=0,b<=1?y.push({s:d.totalShapeLength*v,e:d.totalShapeLength*b}):1<=v?y.push({s:d.totalShapeLength*(v-1),e:d.totalShapeLength*(b-1)}):(y.push({s:d.totalShapeLength*v,e:d.totalShapeLength}),y.push({s:0,e:d.totalShapeLength*(b-1)}));var x=this.addShapes(d,y[0]);if(y[0].s!==y[0].e){if(1<y.length)if(d.shape.paths.shapes[d.shape.paths._length-1].c){var S=x.pop();this.addPaths(x,u),x=this.addShapes(d,y[1],S)}else this.addPaths(x,u),x=this.addShapes(d,y[1]);this.addPaths(x,u)}}d.shape.paths=u}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)e.addShape(t[r])},TrimModifier.prototype.addSegment=function(t,e,r,i,s,a,n){s.setXYAt(e[0],e[1],"o",a),s.setXYAt(r[0],r[1],"i",a+1),n&&s.setXYAt(t[0],t[1],"v",a),s.setXYAt(i[0],i[1],"v",a+1)},TrimModifier.prototype.addSegmentFromArray=function(t,e,r,i){e.setXYAt(t[1],t[5],"o",r),e.setXYAt(t[2],t[6],"i",r+1),i&&e.setXYAt(t[0],t[4],"v",r),e.setXYAt(t[3],t[7],"v",r+1)},TrimModifier.prototype.addShapes=function(t,e,r){var i,s,a,n,o,h,l,p,m=t.pathsData,f=t.shape.paths.shapes,c=t.shape.paths._length,d=0,u=[],y=!0;for(p=r?(o=r._length,r._length):(r=shape_pool.newElement(),o=0),u.push(r),i=0;i<c;i+=1){for(h=m[i].lengths,r.c=f[i].c,a=f[i].c?h.length:h.length+1,s=1;s<a;s+=1)if(d+(n=h[s-1]).addedLength<e.s)d+=n.addedLength,r.c=!1;else{if(d>e.e){r.c=!1;break}e.s<=d&&e.e>=d+n.addedLength?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[s],f[i].v[s],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[s],f[i].o[s-1],f[i].i[s],(e.s-d)/n.addedLength,(e.e-d)/n.addedLength,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1),d+=n.addedLength,o+=1}if(f[i].c&&h.length){if(n=h[s-1],d<=e.e){var g=h[s-1].addedLength;e.s<=d&&e.e>=d+g?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[0],f[i].v[0],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[0],f[i].o[s-1],f[i].i[0],(e.s-d)/g,(e.e-d)/g,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1)}else r.c=!1;d+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[p][0],r.v[p][1],"i",p),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),d>e.e)break;i<c-1&&(r=shape_pool.newElement(),y=!0,u.push(r),o=0)}return u},ShapeModifiers.registerModifier("tm",TrimModifier),extendPrototype([ShapeModifier],RoundCornersModifier),RoundCornersModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.rd=PropertyFactory.getProp(t,e.r,0,null,this),this._isAnimated=!!this.rd.effectsSequence.length},RoundCornersModifier.prototype.processPath=function(t,e){var r=shape_pool.newElement();r.c=t.c;var i,s,a,n,o,h,l,p,m,f,c,d,u,y=t._length,g=0;for(i=0;i<y;i+=1)s=t.v[i],n=t.o[i],a=t.i[i],s[0]===n[0]&&s[1]===n[1]&&s[0]===a[0]&&s[1]===a[1]?0!==i&&i!==y-1||t.c?(o=0===i?t.v[y-1]:t.v[i-1],l=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,p=d=s[0]+(o[0]-s[0])*l,m=u=s[1]-(s[1]-o[1])*l,f=p-(p-s[0])*roundCorner,c=m-(m-s[1])*roundCorner,r.setTripleAt(p,m,f,c,d,u,g),g+=1,o=i===y-1?t.v[0]:t.v[i+1],l=(h=Math.sqrt(Math.pow(s[0]-o[0],2)+Math.pow(s[1]-o[1],2)))?Math.min(h/2,e)/h:0,p=f=s[0]+(o[0]-s[0])*l,m=c=s[1]+(o[1]-s[1])*l,d=p-(p-s[0])*roundCorner,u=m-(m-s[1])*roundCorner,r.setTripleAt(p,m,f,c,d,u,g)):r.setTripleAt(s[0],s[1],n[0],n[1],a[0],a[1],g):r.setTripleAt(t.v[i][0],t.v[i][1],t.o[i][0],t.o[i][1],t.i[i][0],t.i[i][1],g),g+=1;return r},RoundCornersModifier.prototype.processShapes=function(t){var e,r,i,s,a,n,o=this.shapes.length,h=this.rd.v;if(0!==h)for(r=0;r<o;r+=1){if((a=this.shapes[r]).shape.paths,n=a.localShapeCollection,a.shape._mdf||this._mdf||t)for(n.releaseShapes(),a.shape._mdf=!0,e=a.shape.paths.shapes,s=a.shape.paths._length,i=0;i<s;i+=1)n.addShape(this.processPath(e[i],h));a.shape.paths=a.localShapeCollection}this.dynamicProperties.length||(this._mdf=!1)},ShapeModifiers.registerModifier("rd",RoundCornersModifier),extendPrototype([ShapeModifier],RepeaterModifier),RepeaterModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.c=PropertyFactory.getProp(t,e.c,0,null,this),this.o=PropertyFactory.getProp(t,e.o,0,null,this),this.tr=TransformPropertyFactory.getTransformProperty(t,e.tr,this),this.so=PropertyFactory.getProp(t,e.tr.so,0,.01,this),this.eo=PropertyFactory.getProp(t,e.tr.eo,0,.01,this),this.data=e,this.dynamicProperties.length||this.getValue(!0),this._isAnimated=!!this.dynamicProperties.length,this.pMatrix=new Matrix,this.rMatrix=new Matrix,this.sMatrix=new Matrix,this.tMatrix=new Matrix,this.matrix=new Matrix},RepeaterModifier.prototype.applyTransforms=function(t,e,r,i,s,a){var n=a?-1:1,o=i.s.v[0]+(1-i.s.v[0])*(1-s),h=i.s.v[1]+(1-i.s.v[1])*(1-s);t.translate(i.p.v[0]*n*s,i.p.v[1]*n*s,i.p.v[2]),e.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),e.rotate(-i.r.v*n*s),e.translate(i.a.v[0],i.a.v[1],i.a.v[2]),r.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),r.scale(a?1/o:o,a?1/h:h),r.translate(i.a.v[0],i.a.v[1],i.a.v[2])},RepeaterModifier.prototype.init=function(t,e,r,i){this.elem=t,this.arr=e,this.pos=r,this.elemsData=i,this._currentCopies=0,this._elements=[],this._groups=[],this.frameId=-1,this.initDynamicPropertyContainer(t),this.initModifierProperties(t,e[r]);for(;0<r;)r-=1,this._elements.unshift(e[r]),1;this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e]._processed=!1,"gr"===t[e].ty&&this.resetElements(t[e].it)},RepeaterModifier.prototype.cloneElements=function(t){t.length;var e=JSON.parse(JSON.stringify(t));return this.resetElements(e),e},RepeaterModifier.prototype.changeGroupRender=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)t[r]._render=e,"gr"===t[r].ty&&this.changeGroupRender(t[r].it,e)},RepeaterModifier.prototype.processShapes=function(t){var e,r,i,s,a;if(this._mdf||t){var n,o=Math.ceil(this.c.v);if(this._groups.length<o){for(;this._groups.length<o;){var h={it:this.cloneElements(this._elements),ty:"gr"};h.it.push({a:{a:0,ix:1,k:[0,0]},nm:"Transform",o:{a:0,ix:7,k:100},p:{a:0,ix:2,k:[0,0]},r:{a:1,ix:6,k:[{s:0,e:0,t:0},{s:0,e:0,t:1}]},s:{a:0,ix:3,k:[100,100]},sa:{a:0,ix:5,k:0},sk:{a:0,ix:4,k:0},ty:"tr"}),this.arr.splice(0,0,h),this._groups.splice(0,0,h),this._currentCopies+=1}this.elem.reloadShapes()}for(i=a=0;i<=this._groups.length-1;i+=1)n=a<o,this._groups[i]._render=n,this.changeGroupRender(this._groups[i].it,n),a+=1;this._currentCopies=o;var l=this.o.v,p=l%1,m=0<l?Math.floor(l):Math.ceil(l),f=(this.tr.v.props,this.pMatrix.props),c=this.rMatrix.props,d=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var u,y,g=0;if(0<l){for(;g<m;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),g+=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,p,!1),g+=p)}else if(l<0){for(;m<g;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),g-=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-p,!0),g-=p)}for(i=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(y=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==g){for((0!==i&&1===s||i!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]),this.matrix.transform(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]),this.matrix.transform(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15]),u=0;u<y;u+=1)r[u]=this.matrix.props[u];this.matrix.reset()}else for(this.matrix.reset(),u=0;u<y;u+=1)r[u]=this.matrix.props[u];g+=1,a-=1,i+=s}}else for(a=this._currentCopies,i=0,s=1;a;)r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props,e[e.length-1].transform.mProps._mdf=!1,e[e.length-1].transform.op._mdf=!1,a-=1,i+=s},RepeaterModifier.prototype.addShape=function(){},ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeCollection.prototype.addShape=function(t){this._length===this._maxLength&&(this.shapes=this.shapes.concat(createSizedArray(this._maxLength)),this._maxLength*=2),this.shapes[this._length]=t,this._length+=1},ShapeCollection.prototype.releaseShapes=function(){var t;for(t=0;t<this._length;t+=1)shape_pool.release(this.shapes[t]);this._length=0},DashProperty.prototype.getValue=function(t){if((this.elem.globalData.frameId!==this.frameId||t)&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf=this._mdf||t,this._mdf)){var e=0,r=this.dataProps.length;for("svg"===this.renderer&&(this.dashStr=""),e=0;e<r;e+=1)"o"!=this.dataProps[e].n?"svg"===this.renderer?this.dashStr+=" "+this.dataProps[e].p.v:this.dashArray[e]=this.dataProps[e].p.v:this.dashoffset[0]=this.dataProps[e].p.v}},extendPrototype([DynamicPropertyContainer],DashProperty),GradientProperty.prototype.comparePoints=function(t,e){for(var r=0,i=this.o.length/2;r<i;){if(.01<Math.abs(t[4*r]-t[4*e+2*r]))return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t<e;){if(!this.comparePoints(this.data.k.k[t].s,this.data.p))return!1;t+=1}else if(!this.comparePoints(this.data.k.k,this.data.p))return!1;return!0},GradientProperty.prototype.getValue=function(t){if(this.prop.getValue(),this._mdf=!1,this._cmdf=!1,this._omdf=!1,this.prop._mdf||t){var e,r,i,s=4*this.data.p;for(e=0;e<s;e+=1)r=e%4==0?100:255,i=Math.round(this.prop.v[e]*r),this.c[e]!==i&&(this.c[e]=i,this._cmdf=!t);if(this.o.length)for(s=this.prop.v.length,e=4*this.data.p;e<s;e+=1)r=e%2==0?100:1,i=e%2==0?Math.round(100*this.prop.v[e]):this.prop.v[e],this.o[e-4*this.data.p]!==i&&(this.o[e-4*this.data.p]=i,this._omdf=!t);this._mdf=!t}},extendPrototype([DynamicPropertyContainer],GradientProperty);var buildShapeString=function(t,e,r,i){if(0===e)return"";var s,a=t.o,n=t.i,o=t.v,h=" M"+i.applyToPointStringified(o[0][0],o[0][1]);for(s=1;s<e;s+=1)h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[s][0],n[s][1])+" "+i.applyToPointStringified(o[s][0],o[s][1]);return r&&e&&(h+=" C"+i.applyToPointStringified(a[s-1][0],a[s-1][1])+" "+i.applyToPointStringified(n[0][0],n[0][1])+" "+i.applyToPointStringified(o[0][0],o[0][1]),h+="z"),h},ImagePreloader=function(){var s=function(){var t=createTag("canvas");t.width=1,t.height=1;var e=t.getContext("2d");return e.fillStyle="rgba(0,0,0,0)",e.fillRect(0,0,1,1),t}();function t(){this.loadedAssets+=1,this.loadedAssets===this.totalImages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function e(t){var e=function(t,e,r){var i="";if(t.e)i=t.p;else if(e){var s=t.p;-1!==s.indexOf("images/")&&(s=s.split("/")[1]),i=e+s}else i=r,i+=t.u?t.u:"",i+=t.p;return i}(t,this.assetsPath,this.path),r=createTag("img");r.crossOrigin="anonymous",r.addEventListener("load",this._imageLoaded.bind(this),!1),r.addEventListener("error",function(){i.img=s,this._imageLoaded()}.bind(this),!1),r.src=e;var i={img:r,assetData:t};return i}function r(t,e){this.imagesLoadedCb=e;var r,i=t.length;for(r=0;r<i;r+=1)t[r].layers||(this.totalImages+=1,this.images.push(this._createImageData(t[r])))}function i(t){this.path=t||""}function a(t){this.assetsPath=t||""}function n(t){for(var e=0,r=this.images.length;e<r;){if(this.images[e].assetData===t)return this.images[e].img;e+=1}}function o(){this.imagesLoadedCb=null,this.images.length=0}function h(){return this.totalImages===this.loadedAssets}return function(){this.loadAssets=r,this.setAssetsPath=a,this.setPath=i,this.loaded=h,this.destroy=o,this.getImage=n,this._createImageData=e,this._imageLoaded=t,this.assetsPath="",this.path="",this.totalImages=0,this.loadedAssets=0,this.imagesLoadedCb=null,this.images=[]}}(),featureSupport=(sw={maskType:!0},(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(sw.maskType=!1),sw),sw,filtersFactory=(tw={},tw.createFilter=function(t){var e=createNS("filter");return e.setAttribute("id",t),e.setAttribute("filterUnits","objectBoundingBox"),e.setAttribute("x","0%"),e.setAttribute("y","0%"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e},tw.createAlphaToLuminanceFilter=function(){var t=createNS("feColorMatrix");return t.setAttribute("type","matrix"),t.setAttribute("color-interpolation-filters","sRGB"),t.setAttribute("values","0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1"),t},tw),tw,assetLoader=function(){function a(t){return t.response&&"object"==typeof t.response?t.response:t.response&&"string"==typeof t.response?JSON.parse(t.response):t.responseText?JSON.parse(t.responseText):void 0}return{load:function(t,e,r){var i,s=new XMLHttpRequest;s.open("GET",t,!0);try{s.responseType="json"}catch(t){}s.send(),s.onreadystatechange=function(){if(4==s.readyState)if(200==s.status)i=a(s),e(i);else try{i=a(s),e(i)}catch(t){r&&r(t)}}}}}();function TextAnimatorProperty(t,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function TextAnimatorDataProperty(t,e,r){var i={propType:!1},s=PropertyFactory.getProp,a=e.a;this.a={r:a.r?s(t,a.r,0,degToRads,r):i,rx:a.rx?s(t,a.rx,0,degToRads,r):i,ry:a.ry?s(t,a.ry,0,degToRads,r):i,sk:a.sk?s(t,a.sk,0,degToRads,r):i,sa:a.sa?s(t,a.sa,0,degToRads,r):i,s:a.s?s(t,a.s,1,.01,r):i,a:a.a?s(t,a.a,1,0,r):i,o:a.o?s(t,a.o,0,.01,r):i,p:a.p?s(t,a.p,1,0,r):i,sw:a.sw?s(t,a.sw,0,0,r):i,sc:a.sc?s(t,a.sc,1,0,r):i,fc:a.fc?s(t,a.fc,1,0,r):i,fh:a.fh?s(t,a.fh,0,0,r):i,fs:a.fs?s(t,a.fs,0,.01,r):i,fb:a.fb?s(t,a.fb,0,.01,r):i,t:a.t?s(t,a.t,0,0,r):i},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,r),this.s.t=e.s.t}function LetterProps(t,e,r,i,s,a){this.o=t,this.sw=e,this.sc=r,this.fc=i,this.m=s,this.p=a,this._mdf={o:!0,sw:!!e,sc:!!r,fc:!!i,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,r=this._textData.a.length,i=PropertyFactory.getProp;for(t=0;t<r;t+=1)e=this._textData.a[t],this._animatorsData[t]=new TextAnimatorDataProperty(this._elem,e,this);this._textData.p&&"m"in this._textData.p?(this._pathData={f:i(this._elem,this._textData.p.f,0,0,this),l:i(this._elem,this._textData.p.l,0,0,this),r:this._textData.p.r,m:this._elem.maskManager.getMaskProperty(this._textData.p.m)},this._hasMaskedPath=!0):this._hasMaskedPath=!1,this._moreOptions.alignment=i(this._elem,this._textData.m.a,1,0,this)},TextAnimatorProperty.prototype.getMeasures=function(t,e){if(this.lettersChangedFlag=e,this._mdf||this._isFirstFrame||e||this._hasMaskedPath&&this._pathData.m._mdf){this._isFirstFrame=!1;var r,i,s,a,n,o,h,l,p,m,f,c,d,u,y,g,v,b,E,x=this._moreOptions.alignment.v,S=this._animatorsData,P=this._textData,_=this.mHelper,A=this._renderType,C=this.renderedLetters.length,T=(this.data,t.l);if(this._hasMaskedPath){if(E=this._pathData.m,!this._pathData.n||this._pathData._mdf){var k,M=E.v;for(this._pathData.r&&(M=M.reverse()),n={tLength:0,segments:[]},a=M._length-1,s=g=0;s<a;s+=1)k=bez.buildBezierData(M.v[s],M.v[s+1],[M.o[s][0]-M.v[s][0],M.o[s][1]-M.v[s][1]],[M.i[s+1][0]-M.v[s+1][0],M.i[s+1][1]-M.v[s+1][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength;s=a,E.v.c&&(k=bez.buildBezierData(M.v[s],M.v[0],[M.o[s][0]-M.v[s][0],M.o[s][1]-M.v[s][1]],[M.i[0][0]-M.v[0][0],M.i[0][1]-M.v[0][1]]),n.tLength+=k.segmentLength,n.segments.push(k),g+=k.segmentLength),this._pathData.pi=n}if(n=this._pathData.pi,o=this._pathData.f.v,m=1,p=!(l=f=0),u=n.segments,o<0&&E.v.c)for(n.tLength<Math.abs(o)&&(o=-Math.abs(o)%n.tLength),m=(d=u[f=u.length-1].points).length-1;o<0;)o+=d[m].partialLength,(m-=1)<0&&(m=(d=u[f-=1].points).length-1);c=(d=u[f].points)[m-1],y=(h=d[m]).partialLength}a=T.length,i=r=0;var D,w,F,I,V=1.2*t.finalSize*.714,R=!0;F=S.length;var B,L,G,z,N,O,H,j,q,W,Y,X,$,K=-1,U=o,J=f,Z=m,Q=-1,tt="",et=this.defaultPropsArray;if(2===t.j||1===t.j){var rt=0,it=0,st=2===t.j?-.5:-1,at=0,nt=!0;for(s=0;s<a;s+=1)if(T[s].n){for(rt&&(rt+=it);at<s;)T[at].animatorJustifyOffset=rt,at+=1;nt=!(rt=0)}else{for(w=0;w<F;w+=1)(D=S[w].a).t.propType&&(nt&&2===t.j&&(it+=D.t.v*st),(B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars)).length?rt+=D.t.v*B[0]*st:rt+=D.t.v*B*st);nt=!1}for(rt&&(rt+=it);at<s;)T[at].animatorJustifyOffset=rt,at+=1}for(s=0;s<a;s+=1){if(_.reset(),N=1,T[s].n)r=0,i+=t.yOffset,i+=R?1:0,o=U,R=!1,0,this._hasMaskedPath&&(m=Z,c=(d=u[f=J].points)[m-1],y=(h=d[m]).partialLength,l=0),$=W=X=tt="",et=this.defaultPropsArray;else{if(this._hasMaskedPath){if(Q!==T[s].line){switch(t.j){case 1:o+=g-t.lineWidths[T[s].line];break;case 2:o+=(g-t.lineWidths[T[s].line])/2}Q=T[s].line}K!==T[s].ind&&(T[K]&&(o+=T[K].extra),o+=T[s].an/2,K=T[s].ind),o+=x[0]*T[s].an/200;var ot=0;for(w=0;w<F;w+=1)(D=S[w].a).p.propType&&((B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars)).length?ot+=D.p.v[0]*B[0]:ot+=D.p.v[0]*B),D.a.propType&&((B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars)).length?ot+=D.a.v[0]*B[0]:ot+=D.a.v[0]*B);for(p=!0;p;)o+ot<=l+y||!d?(v=(o+ot-l)/h.partialLength,G=c.point[0]+(h.point[0]-c.point[0])*v,z=c.point[1]+(h.point[1]-c.point[1])*v,_.translate(-x[0]*T[s].an/200,-x[1]*V/100),p=!1):d&&(l+=h.partialLength,(m+=1)>=d.length&&(m=0,d=u[f+=1]?u[f].points:E.v.c?u[f=m=0].points:(l-=h.partialLength,null)),d&&(c=h,y=(h=d[m]).partialLength));L=T[s].an/2-T[s].add,_.translate(-L,0,0)}else L=T[s].an/2-T[s].add,_.translate(-L,0,0),_.translate(-x[0]*T[s].an/200,-x[1]*V/100,0);for(T[s].l/2,w=0;w<F;w+=1)(D=S[w].a).t.propType&&(B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars),0===r&&0===t.j||(this._hasMaskedPath?B.length?o+=D.t.v*B[0]:o+=D.t.v*B:B.length?r+=D.t.v*B[0]:r+=D.t.v*B));for(T[s].l/2,t.strokeWidthAnim&&(H=t.sw||0),t.strokeColorAnim&&(O=t.sc?[t.sc[0],t.sc[1],t.sc[2]]:[0,0,0]),t.fillColorAnim&&t.fc&&(j=[t.fc[0],t.fc[1],t.fc[2]]),w=0;w<F;w+=1)(D=S[w].a).a.propType&&((B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars)).length?_.translate(-D.a.v[0]*B[0],-D.a.v[1]*B[1],D.a.v[2]*B[2]):_.translate(-D.a.v[0]*B,-D.a.v[1]*B,D.a.v[2]*B));for(w=0;w<F;w+=1)(D=S[w].a).s.propType&&((B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars)).length?_.scale(1+(D.s.v[0]-1)*B[0],1+(D.s.v[1]-1)*B[1],1):_.scale(1+(D.s.v[0]-1)*B,1+(D.s.v[1]-1)*B,1));for(w=0;w<F;w+=1){if(D=S[w].a,B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars),D.sk.propType&&(B.length?_.skewFromAxis(-D.sk.v*B[0],D.sa.v*B[1]):_.skewFromAxis(-D.sk.v*B,D.sa.v*B)),D.r.propType&&(B.length?_.rotateZ(-D.r.v*B[2]):_.rotateZ(-D.r.v*B)),D.ry.propType&&(B.length?_.rotateY(D.ry.v*B[1]):_.rotateY(D.ry.v*B)),D.rx.propType&&(B.length?_.rotateX(D.rx.v*B[0]):_.rotateX(D.rx.v*B)),D.o.propType&&(B.length?N+=(D.o.v*B[0]-N)*B[0]:N+=(D.o.v*B-N)*B),t.strokeWidthAnim&&D.sw.propType&&(B.length?H+=D.sw.v*B[0]:H+=D.sw.v*B),t.strokeColorAnim&&D.sc.propType)for(q=0;q<3;q+=1)B.length?O[q]=O[q]+(D.sc.v[q]-O[q])*B[0]:O[q]=O[q]+(D.sc.v[q]-O[q])*B;if(t.fillColorAnim&&t.fc){if(D.fc.propType)for(q=0;q<3;q+=1)B.length?j[q]=j[q]+(D.fc.v[q]-j[q])*B[0]:j[q]=j[q]+(D.fc.v[q]-j[q])*B;D.fh.propType&&(j=B.length?addHueToRGB(j,D.fh.v*B[0]):addHueToRGB(j,D.fh.v*B)),D.fs.propType&&(j=B.length?addSaturationToRGB(j,D.fs.v*B[0]):addSaturationToRGB(j,D.fs.v*B)),D.fb.propType&&(j=B.length?addBrightnessToRGB(j,D.fb.v*B[0]):addBrightnessToRGB(j,D.fb.v*B))}}for(w=0;w<F;w+=1)(D=S[w].a).p.propType&&(B=S[w].s.getMult(T[s].anIndexes[w],P.a[w].s.totalChars),this._hasMaskedPath?B.length?_.translate(0,D.p.v[1]*B[0],-D.p.v[2]*B[1]):_.translate(0,D.p.v[1]*B,-D.p.v[2]*B):B.length?_.translate(D.p.v[0]*B[0],D.p.v[1]*B[1],-D.p.v[2]*B[2]):_.translate(D.p.v[0]*B,D.p.v[1]*B,-D.p.v[2]*B));if(t.strokeWidthAnim&&(W=H<0?0:H),t.strokeColorAnim&&(Y="rgb("+Math.round(255*O[0])+","+Math.round(255*O[1])+","+Math.round(255*O[2])+")"),t.fillColorAnim&&t.fc&&(X="rgb("+Math.round(255*j[0])+","+Math.round(255*j[1])+","+Math.round(255*j[2])+")"),this._hasMaskedPath){if(_.translate(0,-t.ls),_.translate(0,x[1]*V/100+i,0),P.p.p){b=(h.point[1]-c.point[1])/(h.point[0]-c.point[0]);var ht=180*Math.atan(b)/Math.PI;h.point[0]<c.point[0]&&(ht+=180),_.rotate(-ht*Math.PI/180)}_.translate(G,z,0),o-=x[0]*T[s].an/200,T[s+1]&&K!==T[s+1].ind&&(o+=T[s].an/2,o+=t.tr/1e3*t.finalSize)}else{switch(_.translate(r,i,0),t.ps&&_.translate(t.ps[0],t.ps[1]+t.ascent,0),t.j){case 1:_.translate(T[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[T[s].line]),0,0);break;case 2:_.translate(T[s].animatorJustifyOffset+t.justifyOffset+(t.boxWidth-t.lineWidths[T[s].line])/2,0,0)}_.translate(0,-t.ls),_.translate(L,0,0),_.translate(x[0]*T[s].an/200,x[1]*V/100,0),r+=T[s].l+t.tr/1e3*t.finalSize}"html"===A?tt=_.toCSS():"svg"===A?tt=_.to2dCSS():et=[_.props[0],_.props[1],_.props[2],_.props[3],_.props[4],_.props[5],_.props[6],_.props[7],_.props[8],_.props[9],_.props[10],_.props[11],_.props[12],_.props[13],_.props[14],_.props[15]],$=N}this.lettersChangedFlag=C<=s?(I=new LetterProps($,W,Y,X,tt,et),this.renderedLetters.push(I),C+=1,!0):(I=this.renderedLetters[s]).update($,W,Y,X,tt,et)||this.lettersChangedFlag}}},TextAnimatorProperty.prototype.getValue=function(){this._elem.globalData.frameId!==this._frameId&&(this._frameId=this._elem.globalData.frameId,this.iterateDynamicProperties())},TextAnimatorProperty.prototype.mHelper=new Matrix,TextAnimatorProperty.prototype.defaultPropsArray=[],extendPrototype([DynamicPropertyContainer],TextAnimatorProperty),LetterProps.prototype.update=function(t,e,r,i,s,a){this._mdf.o=!1,this._mdf.sw=!1,this._mdf.sc=!1,this._mdf.fc=!1,this._mdf.m=!1;var n=this._mdf.p=!1;return this.o!==t&&(this.o=t,n=this._mdf.o=!0),this.sw!==e&&(this.sw=e,n=this._mdf.sw=!0),this.sc!==r&&(this.sc=r,n=this._mdf.sc=!0),this.fc!==i&&(this.fc=i,n=this._mdf.fc=!0),this.m!==s&&(this.m=s,n=this._mdf.m=!0),!a.length||this.p[0]===a[0]&&this.p[1]===a[1]&&this.p[4]===a[4]&&this.p[5]===a[5]&&this.p[12]===a[12]&&this.p[13]===a[13]||(this.p=a,n=this._mdf.p=!0),n},TextProperty.prototype.defaultBoxWidth=[0,0],TextProperty.prototype.copyData=function(t,e){for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},TextProperty.prototype.setCurrentData=function(t){t.__complete||this.completeTextData(t),this.currentData=t,this.currentData.boxWidth=this.currentData.boxWidth||this.defaultBoxWidth,this._mdf=!0},TextProperty.prototype.searchProperty=function(){return this.searchKeyframes()},TextProperty.prototype.searchKeyframes=function(){return this.kf=1<this.data.d.k.length,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{this.lock=!0,this._mdf=!1;var i,s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(i=0;i<s;i+=1)a=r!==this.keysIndex?this.effectsSequence[i](a,a.t):this.effectsSequence[i](this.currentData,a.t);e!==a&&this.setCurrentData(a),this.pv=this.v=this.currentData,this.lock=!1,this.frameId=this.elem.globalData.frameId}}},TextProperty.prototype.getKeyframeValue=function(){for(var t=this.data.d.k,e=this.elem.comp.renderedFrame,r=0,i=t.length;r<=i-1&&(t[r].s,!(r===i-1||t[r+1].t>e));)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,r=FontManager.getCombinedCharacterCodes(),i=[],s=0,a=t.length;s<a;)e=t.charCodeAt(s),-1!==r.indexOf(e)?i[i.length-1]+=t.charAt(s):55296<=e&&e<=56319&&56320<=(e=t.charCodeAt(s+1))&&e<=57343?(i.push(t.substr(s,2)),++s):i.push(t.charAt(s)),s+=1;return i},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,s,a,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],m=0,f=l.m.g,c=0,d=0,u=0,y=[],g=0,v=0,b=h.getFontByName(t.f),E=0,x=b.fStyle?b.fStyle.split(" "):[],S="normal",P="normal";for(r=x.length,e=0;e<r;e+=1)switch(x[e].toLowerCase()){case"italic":P="italic";break;case"bold":S="700";break;case"black":S="900";break;case"medium":S="500";break;case"regular":case"normal":S="400";break;case"light":case"thin":S="200"}t.fWeight=b.fWeight||S,t.fStyle=P,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),r=t.finalText.length,t.finalLineHeight=t.lh;var _,A=t.tr/1e3*t.finalSize;if(t.sz)for(var C,T,k=!0,M=t.sz[0],D=t.sz[1];k;){g=C=0,r=(T=this.buildFinalText(t.t)).length,A=t.tr/1e3*t.finalSize;var w=-1;for(e=0;e<r;e+=1)_=T[e].charCodeAt(0),i=!1," "===T[e]?w=e:13!==_&&3!==_||(i=!(g=0),C+=t.finalLineHeight||1.2*t.finalSize),M<g+(E=h.chars?(o=h.getCharData(T[e],b.fStyle,b.fFamily),i?0:o.w*t.finalSize/100):h.measureText(T[e],t.f,t.finalSize))&&" "!==T[e]?(-1===w?r+=1:e=w,C+=t.finalLineHeight||1.2*t.finalSize,T.splice(e,w===e?1:0,"\r"),w=-1,g=0):(g+=E,g+=A);C+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&D<C?(t.finalSize-=1,t.finalLineHeight=t.finalSize*t.lh/t.s):(t.finalText=T,r=t.finalText.length,k=!1)}g=-A;var F,I=E=0;for(e=0;e<r;e+=1)if(i=!1,13===(_=(F=t.finalText[e]).charCodeAt(0))||3===_?(I=0,y.push(g),v=v<g?g:v,g=-2*A,i=!(s=""),u+=1):s=F,E=h.chars?(o=h.getCharData(F,b.fStyle,h.getFontByName(t.f).fFamily),i?0:o.w*t.finalSize/100):h.measureText(s,t.f,t.finalSize)," "===F?I+=E+A:(g+=E+A+I,I=0),p.push({l:E,an:E,add:c,n:i,anIndexes:[],val:s,line:u,animatorJustifyOffset:0}),2==f){if(c+=E,""===s||" "===s||e===r-1){for(""!==s&&" "!==s||(c-=E);d<=e;)p[d].an=c,p[d].ind=m,p[d].extra=E,d+=1;m+=1,c=0}}else if(3==f){if(c+=E,""===s||e===r-1){for(""===s&&(c-=E);d<=e;)p[d].an=c,p[d].ind=m,p[d].extra=E,d+=1;c=0,m+=1}}else p[m].ind=m,p[m].extra=0,m+=1;if(t.l=p,v=v<g?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var V,R,B=l.a;n=B.length;var L,G,z=[];for(a=0;a<n;a+=1){for((V=B[a]).a.sc&&(t.strokeColorAnim=!0),V.a.sw&&(t.strokeWidthAnim=!0),(V.a.fc||V.a.fh||V.a.fs||V.a.fb)&&(t.fillColorAnim=!0),G=0,L=V.s.b,e=0;e<r;e+=1)(R=p[e]).anIndexes[a]=G,(1==L&&""!==R.val||2==L&&""!==R.val&&" "!==R.val||3==L&&(R.n||" "==R.val||e==r-1)||4==L&&(R.n||e==r-1))&&(1===V.s.rn&&z.push(G),G+=1);l.a[a].s.totalChars=G;var N,O=-1;if(1===V.s.rn)for(e=0;e<r;e+=1)O!=(R=p[e]).anIndexes[a]&&(O=R.anIndexes[a],N=z.splice(Math.floor(Math.random()*z.length),1)[0]),R.anIndexes[a]=N}t.yOffset=t.finalLineHeight||1.2*t.finalSize,t.ls=t.ls||0,t.ascent=b.ascent*t.finalSize/100},TextProperty.prototype.updateDocumentData=function(t,e){e=void 0===e?this.keysIndex:e;var r=this.copyData({},this.data.d.k[e].s);r=this.copyData(r,t),this.data.d.k[e].s=r,this.recalculate(e),this.elem.addDynamicProperty(this)},TextProperty.prototype.recalculate=function(t){var e=this.data.d.k[t].s;e.__complete=!1,this.keysIndex=0,this._isFirstFrame=!0,this.getValue(e)},TextProperty.prototype.canResizeFont=function(t){this.canResize=t,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)},TextProperty.prototype.setMinimumFontSize=function(t){this.minimumFontSize=Math.floor(t)||1,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)};var TextSelectorProp=function(){var c=Math.max,d=Math.min,u=Math.floor;function i(t,e){this._currentTextLength=-1,this.k=!1,this.data=e,this.elem=t,this.comp=t.comp,this.finalS=0,this.finalE=0,this.initDynamicPropertyContainer(t),this.s=PropertyFactory.getProp(t,e.s||{k:0},0,0,this),this.e="e"in e?PropertyFactory.getProp(t,e.e,0,0,this):{v:100},this.o=PropertyFactory.getProp(t,e.o||{k:0},0,0,this),this.xe=PropertyFactory.getProp(t,e.xe||{k:0},0,0,this),this.ne=PropertyFactory.getProp(t,e.ne||{k:0},0,0,this),this.a=PropertyFactory.getProp(t,e.a,0,.01,this),this.dynamicProperties.length||this.getValue()}return i.prototype={getMult:function(t){this._currentTextLength!==this.elem.textProperty.currentData.l.length&&this.getValue();var e=0,r=0,i=1,s=1;0<this.ne.v?e=this.ne.v/100:r=-this.ne.v/100,0<this.xe.v?i=1-this.xe.v/100:s=1+this.xe.v/100;var a=BezierFactory.getBezierEasing(e,r,i,s).get,n=0,o=this.finalS,h=this.finalE,l=this.data.sh;if(2===l)n=a(n=h===o?h<=t?1:0:c(0,d(.5/(h-o)+(t-o)/(h-o),1)));else if(3===l)n=a(n=h===o?h<=t?0:1:1-c(0,d(.5/(h-o)+(t-o)/(h-o),1)));else if(4===l)h===o?n=0:(n=c(0,d(.5/(h-o)+(t-o)/(h-o),1)))<.5?n*=2:n=1-2*(n-.5),n=a(n);else if(5===l){if(h===o)n=0;else{var p=h-o,m=-p/2+(t=d(c(0,t+.5-o),h-o)),f=p/2;n=Math.sqrt(1-m*m/(f*f))}n=a(n)}else n=6===l?a(n=h===o?0:(t=d(c(0,t+.5-o),h-o),(1+Math.cos(Math.PI+2*Math.PI*t/(h-o)))/2)):(t>=u(o)&&(n=c(0,d(t-o<0?d(h,1)-(o-t):h-t,1))),a(n));return n*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,s=this.e.v/e+r;if(s<i){var a=i;i=s,s=a}this.finalS=i,this.finalE=s}},extendPrototype([DynamicPropertyContainer],i),{getTextSelectorProp:function(t,e,r){return new i(t,e,r)}}}(),pool_factory=function(t,e,r,i){var s=0,a=t,n=createSizedArray(a);function o(){return s?n[s-=1]:e()}return{newElement:o,release:function(t){s===a&&(n=pooling.double(n),a*=2),r&&r(t),n[s]=t,s+=1}}},pooling={double:function(t){return t.concat(createSizedArray(t.length))}},point_pool=pool_factory(8,function(){return createTypedArray("float32",2)}),shape_pool=(KA=pool_factory(4,function(){return new ShapePath},function(t){var e,r=t._length;for(e=0;e<r;e+=1)point_pool.release(t.v[e]),point_pool.release(t.i[e]),point_pool.release(t.o[e]),t.v[e]=null,t.i[e]=null,t.o[e]=null;t._length=0,t.c=!1}),KA.clone=function(t){var e,r=KA.newElement(),i=void 0===t._length?t.v.length:t._length;for(r.setLength(i),r.c=t.c,e=0;e<i;e+=1)r.setTripleAt(t.v[e][0],t.v[e][1],t.o[e][0],t.o[e][1],t.i[e][0],t.i[e][1],e);return r},KA),KA,shapeCollection_pool=(TA={newShapeCollection:function(){var t;t=UA?WA[UA-=1]:new ShapeCollection;return t},release:function(t){var e,r=t._length;for(e=0;e<r;e+=1)shape_pool.release(t.shapes[e]);t._length=0,UA===VA&&(WA=pooling.double(WA),VA*=2);WA[UA]=t,UA+=1}},UA=0,VA=4,WA=createSizedArray(VA),TA),TA,UA,VA,WA,segments_length_pool=pool_factory(8,function(){return{lengths:[],totalLength:0}},function(t){var e,r=t.lengths.length;for(e=0;e<r;e+=1)bezier_length_pool.release(t.lengths[e]);t.lengths.length=0}),bezier_length_pool=pool_factory(8,function(){return{addedLength:0,percents:createTypedArray("float32",defaultCurveSegments),lengths:createTypedArray("float32",defaultCurveSegments)}});function BaseRenderer(){}function SVGRenderer(t,e){this.animationItem=t,this.layers=null,this.renderedFrame=-1,this.svgElement=createNS("svg");var r="";if(e&&e.title){var i=createNS("title"),s=createElementID();i.setAttribute("id",s),i.textContent=e.title,this.svgElement.appendChild(i),r+=s}if(e&&e.description){var a=createNS("desc"),n=createElementID();a.setAttribute("id",n),a.textContent=e.description,this.svgElement.appendChild(a),r+=" "+n}r&&this.svgElement.setAttribute("aria-labelledby",r);var o=createNS("defs");this.svgElement.appendChild(o);var h=createNS("g");this.svgElement.appendChild(h),this.layerElement=h,this.renderConfig={preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",progressiveLoad:e&&e.progressiveLoad||!1,hideOnTransparent:!e||!1!==e.hideOnTransparent,viewBoxOnly:e&&e.viewBoxOnly||!1,viewBoxSize:e&&e.viewBoxSize||!1,className:e&&e.className||"",id:e&&e.id||"",focusable:e&&e.focusable,filterSize:{width:e&&e.filterSize&&e.filterSize.width||"100%",height:e&&e.filterSize&&e.filterSize.height||"100%",x:e&&e.filterSize&&e.filterSize.x||"0%",y:e&&e.filterSize&&e.filterSize.y||"0%"}},this.globalData={_mdf:!1,frameNum:-1,defs:o,renderConfig:this.renderConfig},this.elements=[],this.pendingElements=[],this.destroyed=!1,this.rendererType="svg"}function CanvasRenderer(t,e){this.animationItem=t,this.renderConfig={clearCanvas:!e||void 0===e.clearCanvas||e.clearCanvas,context:e&&e.context||null,progressiveLoad:e&&e.progressiveLoad||!1,preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",className:e&&e.className||"",id:e&&e.id||""},this.renderConfig.dpr=e&&e.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=e&&e.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas"}function HybridRenderer(t,e){this.animationItem=t,this.layers=null,this.renderedFrame=-1,this.renderConfig={className:e&&e.className||"",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",hideOnTransparent:!e||!1!==e.hideOnTransparent,filterSize:{width:e&&e.filterSize&&e.filterSize.width||"400%",height:e&&e.filterSize&&e.filterSize.height||"400%",x:e&&e.filterSize&&e.filterSize.x||"-100%",y:e&&e.filterSize&&e.filterSize.y||"-100%"}},this.globalData={_mdf:!1,frameNum:-1,renderConfig:this.renderConfig},this.pendingElements=[],this.elements=[],this.threeDElements=[],this.destroyed=!1,this.camera=null,this.supports3d=!0,this.rendererType="html"}function MaskElement(t,e,r){this.data=t,this.element=e,this.globalData=r,this.storedData=[],this.masksProperties=this.data.masksProperties||[],this.maskElement=null;var i,s=this.globalData.defs,a=this.masksProperties?this.masksProperties.length:0;this.viewData=createSizedArray(a),this.solidPath="";var n,o,h,l,p,m,f,c=this.masksProperties,d=0,u=[],y=createElementID(),g="clipPath",v="clip-path";for(i=0;i<a;i++)if(("a"!==c[i].mode&&"n"!==c[i].mode||c[i].inv||100!==c[i].o.k||c[i].o.x)&&(v=g="mask"),"s"!=c[i].mode&&"i"!=c[i].mode||0!==d?l=null:((l=createNS("rect")).setAttribute("fill","#ffffff"),l.setAttribute("width",this.element.comp.data.w||0),l.setAttribute("height",this.element.comp.data.h||0),u.push(l)),n=createNS("path"),"n"!=c[i].mode){var b;if(d+=1,n.setAttribute("fill","s"===c[i].mode?"#000000":"#ffffff"),n.setAttribute("clip-rule","nonzero"),0!==c[i].x.k?(v=g="mask",f=PropertyFactory.getProp(this.element,c[i].x,0,null,this.element),b=createElementID(),(p=createNS("filter")).setAttribute("id",b),(m=createNS("feMorphology")).setAttribute("operator","erode"),m.setAttribute("in","SourceGraphic"),m.setAttribute("radius","0"),p.appendChild(m),s.appendChild(p),n.setAttribute("stroke","s"===c[i].mode?"#000000":"#ffffff")):f=m=null,this.storedData[i]={elem:n,x:f,expan:m,lastPath:"",lastOperator:"",filterId:b,lastRadius:0},"i"==c[i].mode){h=u.length;var E=createNS("g");for(o=0;o<h;o+=1)E.appendChild(u[o]);var x=createNS("mask");x.setAttribute("mask-type","alpha"),x.setAttribute("id",y+"_"+d),x.appendChild(n),s.appendChild(x),E.setAttribute("mask","url("+locationHref+"#"+y+"_"+d+")"),u.length=0,u.push(E)}else u.push(n);c[i].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),this.viewData[i]={elem:n,lastPath:"",op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),invRect:l},this.viewData[i].prop.k||this.drawPath(c[i],this.viewData[i].prop.v,this.viewData[i])}else this.viewData[i]={op:PropertyFactory.getProp(this.element,c[i].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,c[i],3),elem:n,lastPath:""},s.appendChild(n);for(this.maskElement=createNS(g),a=u.length,i=0;i<a;i+=1)this.maskElement.appendChild(u[i]);0<d&&(this.maskElement.setAttribute("id",y),this.element.maskedElement.setAttribute(v,"url("+locationHref+"#"+y+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}function HierarchyElement(){}function FrameElement(){}function TransformElement(){}function RenderableElement(){}function RenderableDOMElement(){}function ProcessedElement(t,e){this.elem=t,this.pos=e}function SVGStyleData(t,e){this.data=t,this.type=t.ty,this.d="",this.lvl=e,this._mdf=!1,this.closed=!0===t.hd,this.pElem=createNS("path"),this.msElem=null}function SVGShapeData(t,e,r){this.caches=[],this.styles=[],this.transformers=t,this.lStr="",this.sh=r,this.lvl=e,this._isAnimated=!!r.k;for(var i=0,s=t.length;i<s;){if(t[i].mProps.dynamicProperties.length){this._isAnimated=!0;break}i+=1}}function SVGTransformData(t,e,r){this.transform={mProps:t,op:e,container:r},this.elements=[],this._isAnimated=this.transform.mProps.dynamicProperties.length||this.transform.op.effectsSequence.length}function SVGStrokeStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.w=PropertyFactory.getProp(t,e.w,0,null,this),this.d=new DashProperty(t,e.d||{},"svg",this),this.c=PropertyFactory.getProp(t,e.c,1,255,this),this.style=r,this._isAnimated=!!this._isAnimated}function SVGFillStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.c=PropertyFactory.getProp(t,e.c,1,255,this),this.style=r}function SVGGradientFillStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.initGradientData(t,e,r)}function SVGGradientStrokeStyleData(t,e,r){this.initDynamicPropertyContainer(t),this.getValue=this.iterateDynamicProperties,this.w=PropertyFactory.getProp(t,e.w,0,null,this),this.d=new DashProperty(t,e.d||{},"svg",this),this.initGradientData(t,e,r),this._isAnimated=!!this._isAnimated}function ShapeGroupData(){this.it=[],this.prevViewData=[],this.gr=createNS("g")}BaseRenderer.prototype.checkLayers=function(t){var e,r,i=this.layers.length;for(this.completeLayers=!0,e=i-1;0<=e;e--)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 13:return this.createCamera(t)}return this.createNull(t)},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.buildItem(t);this.checkPendingElements()},BaseRenderer.prototype.includeLayers=function(t){this.completeLayers=!1;var e,r,i=t.length,s=this.layers.length;for(e=0;e<i;e+=1)for(r=0;r<s;){if(this.layers[r].id==t[e].id){this.layers[r]=t[e];break}r+=1}},BaseRenderer.prototype.setProjectInterface=function(t){this.globalData.projectInterface=t},BaseRenderer.prototype.initItems=function(){this.globalData.progressiveLoad||this.buildAllItems()},BaseRenderer.prototype.buildElementParenting=function(t,e,r){for(var i=this.elements,s=this.layers,a=0,n=s.length;a<n;)s[a].ind==e&&(i[a]&&!0!==i[a]?(r.push(i[a]),i[a].setAsParent(),void 0!==s[a].parent?this.buildElementParenting(t,s[a].parent,r):t.setHierarchy(r)):(this.buildItem(a),this.addPendingElement(t))),a+=1},BaseRenderer.prototype.addPendingElement=function(t){this.pendingElements.push(t)},BaseRenderer.prototype.searchExtraCompositions=function(t){var e,r=t.length;for(e=0;e<r;e+=1)if(t[e].xt){var i=this.createComp(t[e]);i.initExpressions(),this.globalData.projectInterface.registerComposition(i)}},BaseRenderer.prototype.setupGlobalData=function(t,e){this.globalData.fontManager=new FontManager,this.globalData.fontManager.addChars(t.chars),this.globalData.fontManager.addFonts(t.fonts,e),this.globalData.getAssetData=this.animationItem.getAssetData.bind(this.animationItem),this.globalData.getAssetsPath=this.animationItem.getAssetsPath.bind(this.animationItem),this.globalData.imageLoader=this.animationItem.imagePreloader,this.globalData.frameId=0,this.globalData.frameRate=t.fr,this.globalData.nm=t.nm,this.globalData.compSize={w:t.w,h:t.h}},extendPrototype([BaseRenderer],SVGRenderer),SVGRenderer.prototype.createNull=function(t){return new NullElement(t,this.globalData,this)},SVGRenderer.prototype.createShape=function(t){return new SVGShapeElement(t,this.globalData,this)},SVGRenderer.prototype.createText=function(t){return new SVGTextElement(t,this.globalData,this)},SVGRenderer.prototype.createImage=function(t){return new IImageElement(t,this.globalData,this)},SVGRenderer.prototype.createComp=function(t){return new SVGCompElement(t,this.globalData,this)},SVGRenderer.prototype.createSolid=function(t){return new ISolidElement(t,this.globalData,this)},SVGRenderer.prototype.configAnimation=function(t){this.svgElement.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.renderConfig.viewBoxSize?this.svgElement.setAttribute("viewBox",this.renderConfig.viewBoxSize):this.svgElement.setAttribute("viewBox","0 0 "+t.w+" "+t.h),this.renderConfig.viewBoxOnly||(this.svgElement.setAttribute("width",t.w),this.svgElement.setAttribute("height",t.h),this.svgElement.style.width="100%",this.svgElement.style.height="100%",this.svgElement.style.transform="translate3d(0,0,0)"),this.renderConfig.className&&this.svgElement.setAttribute("class",this.renderConfig.className),this.renderConfig.id&&this.svgElement.setAttribute("id",this.renderConfig.id),void 0!==this.renderConfig.focusable&&this.svgElement.setAttribute("focusable",this.renderConfig.focusable),this.svgElement.setAttribute("preserveAspectRatio",this.renderConfig.preserveAspectRatio),this.animationItem.wrapper.appendChild(this.svgElement);var e=this.globalData.defs;this.setupGlobalData(t,e),this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.data=t;var r=createNS("clipPath"),i=createNS("rect");i.setAttribute("width",t.w),i.setAttribute("height",t.h),i.setAttribute("x",0),i.setAttribute("y",0);var s=createElementID();r.setAttribute("id",s),r.appendChild(i),this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+s+")"),e.appendChild(r),this.layers=t.layers,this.elements=createSizedArray(t.layers.length)},SVGRenderer.prototype.destroy=function(){this.animationItem.wrapper.innerHTML="",this.layerElement=null,this.globalData.defs=null;var t,e=this.layers?this.layers.length:0;for(t=0;t<e;t++)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},SVGRenderer.prototype.updateContainerSize=function(){},SVGRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){e[t]=!0;var r=this.createItem(this.layers[t]);e[t]=r,expressionsPlugin&&(0===this.layers[t].ty&&this.globalData.projectInterface.registerComposition(r),r.initExpressions()),this.appendElementInPos(r,t),this.layers[t].tt&&(this.elements[t-1]&&!0!==this.elements[t-1]?r.setMatte(e[t-1].layerId):(this.buildItem(t-1),this.addPendingElement(r)))}},SVGRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var t=this.pendingElements.pop();if(t.checkParenting(),t.data.tt)for(var e=0,r=this.elements.length;e<r;){if(this.elements[e]===t){t.setMatte(this.elements[e-1].layerId);break}e+=1}}},SVGRenderer.prototype.renderFrame=function(t){if(this.renderedFrame!==t&&!this.destroyed){null===t?t=this.renderedFrame:this.renderedFrame=t,this.globalData.frameNum=t,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=t,this.globalData._mdf=!1;var e,r=this.layers.length;for(this.completeLayers||this.checkLayers(t),e=r-1;0<=e;e--)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e<r;e+=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()}},SVGRenderer.prototype.appendElementInPos=function(t,e){var r=t.getBaseElement();if(r){for(var i,s=0;s<e;)this.elements[s]&&!0!==this.elements[s]&&this.elements[s].getBaseElement()&&(i=this.elements[s].getBaseElement()),s+=1;i?this.layerElement.insertBefore(r,i):this.layerElement.appendChild(r)}},SVGRenderer.prototype.hide=function(){this.layerElement.style.display="none"},SVGRenderer.prototype.show=function(){this.layerElement.style.display="block"},extendPrototype([BaseRenderer],CanvasRenderer),CanvasRenderer.prototype.createShape=function(t){return new CVShapeElement(t,this.globalData,this)},CanvasRenderer.prototype.createText=function(t){return new CVTextElement(t,this.globalData,this)},CanvasRenderer.prototype.createImage=function(t){return new CVImageElement(t,this.globalData,this)},CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},CanvasRenderer.prototype.createSolid=function(t){return new CVSolidElement(t,this.globalData,this)},CanvasRenderer.prototype.createNull=SVGRenderer.prototype.createNull,CanvasRenderer.prototype.ctxTransform=function(t){if(1!==t[0]||0!==t[1]||0!==t[4]||1!==t[5]||0!==t[12]||0!==t[13])if(this.renderConfig.clearCanvas){this.transformMat.cloneFromProps(t);var e=this.contextData.cTr.props;this.transformMat.transform(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]),this.contextData.cTr.cloneFromProps(this.transformMat.props);var r=this.contextData.cTr.props;this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13])}else this.canvasContext.transform(t[0],t[1],t[4],t[5],t[12],t[13])},CanvasRenderer.prototype.ctxOpacity=function(t){if(!this.renderConfig.clearCanvas)return this.canvasContext.globalAlpha*=t<0?0:t,void(this.globalData.currentGlobalAlpha=this.contextData.cO);this.contextData.cO*=t<0?0:t,this.globalData.currentGlobalAlpha!==this.contextData.cO&&(this.canvasContext.globalAlpha=this.contextData.cO,this.globalData.currentGlobalAlpha=this.contextData.cO)},CanvasRenderer.prototype.reset=function(){this.renderConfig.clearCanvas?this.contextData.reset():this.canvasContext.restore()},CanvasRenderer.prototype.save=function(t){if(this.renderConfig.clearCanvas){t&&this.canvasContext.save();var e=this.contextData.cTr.props;this.contextData._length<=this.contextData.cArrPos&&this.contextData.duplicate();var r,i=this.contextData.saved[this.contextData.cArrPos];for(r=0;r<16;r+=1)i[r]=e[r];this.contextData.savedOp[this.contextData.cArrPos]=this.contextData.cO,this.contextData.cArrPos+=1}else this.canvasContext.save()},CanvasRenderer.prototype.restore=function(t){if(this.renderConfig.clearCanvas){t&&(this.canvasContext.restore(),this.globalData.blendMode="source-over"),this.contextData.cArrPos-=1;var e,r=this.contextData.saved[this.contextData.cArrPos],i=this.contextData.cTr.props;for(e=0;e<16;e+=1)i[e]=r[e];this.canvasContext.setTransform(r[0],r[1],r[4],r[5],r[12],r[13]),r=this.contextData.savedOp[this.contextData.cArrPos],this.contextData.cO=r,this.globalData.currentGlobalAlpha!==r&&(this.canvasContext.globalAlpha=r,this.globalData.currentGlobalAlpha=r)}else this.canvasContext.restore()},CanvasRenderer.prototype.configAnimation=function(t){this.animationItem.wrapper?(this.animationItem.container=createTag("canvas"),this.animationItem.container.style.width="100%",this.animationItem.container.style.height="100%",this.animationItem.container.style.transformOrigin=this.animationItem.container.style.mozTransformOrigin=this.animationItem.container.style.webkitTransformOrigin=this.animationItem.container.style["-webkit-transform"]="0px 0px 0px",this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d"),this.renderConfig.className&&this.animationItem.container.setAttribute("class",this.renderConfig.className),this.renderConfig.id&&this.animationItem.container.setAttribute("id",this.renderConfig.id)):this.canvasContext=this.renderConfig.context,this.data=t,this.layers=t.layers,this.transformCanvas={w:t.w,h:t.h,sx:0,sy:0,tx:0,ty:0},this.setupGlobalData(t,document.body),this.globalData.canvasContext=this.canvasContext,(this.globalData.renderer=this).globalData.isDashed=!1,this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.globalData.transformCanvas=this.transformCanvas,this.elements=createSizedArray(t.layers.length),this.updateContainerSize()},CanvasRenderer.prototype.updateContainerSize=function(){var t,e,r,i;if(this.reset(),this.animationItem.wrapper&&this.animationItem.container?(t=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight,this.animationItem.container.setAttribute("width",t*this.renderConfig.dpr),this.animationItem.container.setAttribute("height",e*this.renderConfig.dpr)):(t=this.canvasContext.canvas.width*this.renderConfig.dpr,e=this.canvasContext.canvas.height*this.renderConfig.dpr),-1!==this.renderConfig.preserveAspectRatio.indexOf("meet")||-1!==this.renderConfig.preserveAspectRatio.indexOf("slice")){var s=this.renderConfig.preserveAspectRatio.split(" "),a=s[1]||"meet",n=s[0]||"xMidYMid",o=n.substr(0,4),h=n.substr(4);r=t/e,i=this.transformCanvas.w/this.transformCanvas.h,this.transformCanvas.sy=r<i&&"meet"===a||i<r&&"slice"===a?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),t/(this.transformCanvas.w/this.renderConfig.dpr)):(this.transformCanvas.sx=e/(this.transformCanvas.h/this.renderConfig.dpr),e/(this.transformCanvas.h/this.renderConfig.dpr)),this.transformCanvas.tx="xMid"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(i<r&&"meet"===a||r<i&&"slice"===a)?(t-this.transformCanvas.w*(e/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))/2*this.renderConfig.dpr:"YMax"===h&&(r<i&&"meet"===a||i<r&&"slice"===a)?(e-this.transformCanvas.h*(t/this.transformCanvas.w))*this.renderConfig.dpr:0}else"none"==this.renderConfig.preserveAspectRatio?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=e/(this.transformCanvas.h/this.renderConfig.dpr)):(this.transformCanvas.sx=this.renderConfig.dpr,this.transformCanvas.sy=this.renderConfig.dpr),this.transformCanvas.tx=0,this.transformCanvas.ty=0;this.transformCanvas.props=[this.transformCanvas.sx,0,0,0,0,this.transformCanvas.sy,0,0,0,0,1,0,this.transformCanvas.tx,this.transformCanvas.ty,0,1],this.ctxTransform(this.transformCanvas.props),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.closePath(),this.canvasContext.clip(),this.renderFrame(this.renderedFrame,!0)},CanvasRenderer.prototype.destroy=function(){var t;for(this.renderConfig.clearCanvas&&(this.animationItem.wrapper.innerHTML=""),t=(this.layers?this.layers.length:0)-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRenderer.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var r,i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r<i;r++)(this.completeLayers||this.elements[r])&&this.elements[r].prepareFrame(t-this.layers[r].st);if(this.globalData._mdf){for(!0===this.renderConfig.clearCanvas?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRenderer.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!=this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);(e[t]=r).initExpressions()}},CanvasRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRenderer.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRenderer.prototype.show=function(){this.animationItem.container.style.display="block"},extendPrototype([BaseRenderer],HybridRenderer),HybridRenderer.prototype.buildItem=SVGRenderer.prototype.buildItem,HybridRenderer.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},HybridRenderer.prototype.appendElementInPos=function(t,e){var r=t.getBaseElement();if(r){var i=this.layers[e];if(i.ddd&&this.supports3d)this.addTo3dContainer(r,e);else if(this.threeDElements)this.addTo3dContainer(r,e);else{for(var s,a,n=0;n<e;)this.elements[n]&&!0!==this.elements[n]&&this.elements[n].getBaseElement&&(a=this.elements[n],s=(this.layers[n].ddd?this.getThreeDContainerByPos(n):a.getBaseElement())||s),n+=1;s?i.ddd&&this.supports3d||this.layerElement.insertBefore(r,s):i.ddd&&this.supports3d||this.layerElement.appendChild(r)}}},HybridRenderer.prototype.createShape=function(t){return this.supports3d?new HShapeElement(t,this.globalData,this):new SVGShapeElement(t,this.globalData,this)},HybridRenderer.prototype.createText=function(t){return this.supports3d?new HTextElement(t,this.globalData,this):new SVGTextElement(t,this.globalData,this)},HybridRenderer.prototype.createCamera=function(t){return this.camera=new HCameraElement(t,this.globalData,this),this.camera},HybridRenderer.prototype.createImage=function(t){return this.supports3d?new HImageElement(t,this.globalData,this):new IImageElement(t,this.globalData,this)},HybridRenderer.prototype.createComp=function(t){return this.supports3d?new HCompElement(t,this.globalData,this):new SVGCompElement(t,this.globalData,this)},HybridRenderer.prototype.createSolid=function(t){return this.supports3d?new HSolidElement(t,this.globalData,this):new ISolidElement(t,this.globalData,this)},HybridRenderer.prototype.createNull=SVGRenderer.prototype.createNull,HybridRenderer.prototype.getThreeDContainerByPos=function(t){for(var e=0,r=this.threeDElements.length;e<r;){if(this.threeDElements[e].startPos<=t&&this.threeDElements[e].endPos>=t)return this.threeDElements[e].perspectiveElem;e+=1}},HybridRenderer.prototype.createThreeDContainer=function(t,e){var r=createTag("div");styleDiv(r);var i=createTag("div");styleDiv(i),"3d"===e&&(r.style.width=this.globalData.compSize.w+"px",r.style.height=this.globalData.compSize.h+"px",r.style.transformOrigin=r.style.mozTransformOrigin=r.style.webkitTransformOrigin="50% 50%",i.style.transform=i.style.webkitTransform="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)"),r.appendChild(i);var s={container:i,perspectiveElem:r,startPos:t,endPos:t,type:e};return this.threeDElements.push(s),s},HybridRenderer.prototype.build3dContainers=function(){var t,e,r=this.layers.length,i="";for(t=0;t<r;t+=1)this.layers[t].ddd&&3!==this.layers[t].ty?"3d"!==i&&(i="3d",e=this.createThreeDContainer(t,"3d")):"2d"!==i&&(i="2d",e=this.createThreeDContainer(t,"2d")),e.endPos=Math.max(e.endPos,t);for(t=(r=this.threeDElements.length)-1;0<=t;t--)this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem)},HybridRenderer.prototype.addTo3dContainer=function(t,e){for(var r=0,i=this.threeDElements.length;r<i;){if(e<=this.threeDElements[r].endPos){for(var s,a=this.threeDElements[r].startPos;a<e;)this.elements[a]&&this.elements[a].getBaseElement&&(s=this.elements[a].getBaseElement()),a+=1;s?this.threeDElements[r].container.insertBefore(t,s):this.threeDElements[r].container.appendChild(t);break}r+=1}},HybridRenderer.prototype.configAnimation=function(t){var e=createTag("div"),r=this.animationItem.wrapper;e.style.width=t.w+"px",e.style.height=t.h+"px",styleDiv(this.resizerElem=e),e.style.transformStyle=e.style.webkitTransformStyle=e.style.mozTransformStyle="flat",this.renderConfig.className&&e.setAttribute("class",this.renderConfig.className),r.appendChild(e),e.style.overflow="hidden";var i=createNS("svg");i.setAttribute("width","1"),i.setAttribute("height","1"),styleDiv(i),this.resizerElem.appendChild(i);var s=createNS("defs");i.appendChild(s),this.data=t,this.setupGlobalData(t,i),this.globalData.defs=s,this.layers=t.layers,this.layerElement=this.resizerElem,this.build3dContainers(),this.updateContainerSize()},HybridRenderer.prototype.destroy=function(){this.animationItem.wrapper.innerHTML="",this.animationItem.container=null,this.globalData.defs=null;var t,e=this.layers?this.layers.length:0;for(t=0;t<e;t++)this.elements[t].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},HybridRenderer.prototype.updateContainerSize=function(){var t,e,r,i,s=this.animationItem.wrapper.offsetWidth,a=this.animationItem.wrapper.offsetHeight;i=s/a<this.globalData.compSize.w/this.globalData.compSize.h?(t=s/this.globalData.compSize.w,e=s/this.globalData.compSize.w,r=0,(a-this.globalData.compSize.h*(s/this.globalData.compSize.w))/2):(t=a/this.globalData.compSize.h,e=a/this.globalData.compSize.h,r=(s-this.globalData.compSize.w*(a/this.globalData.compSize.h))/2,0),this.resizerElem.style.transform=this.resizerElem.style.webkitTransform="matrix3d("+t+",0,0,0,0,"+e+",0,0,0,0,1,0,"+r+","+i+",0,1)"},HybridRenderer.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRenderer.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRenderer.prototype.show=function(){this.resizerElem.style.display="block"},HybridRenderer.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var t,e=this.globalData.compSize.w,r=this.globalData.compSize.h,i=this.threeDElements.length;for(t=0;t<i;t+=1)this.threeDElements[t].perspectiveElem.style.perspective=this.threeDElements[t].perspectiveElem.style.webkitPerspective=Math.sqrt(Math.pow(e,2)+Math.pow(r,2))+"px"}},HybridRenderer.prototype.searchExtraCompositions=function(t){var e,r=t.length,i=createTag("div");for(e=0;e<r;e+=1)if(t[e].xt){var s=this.createComp(t[e],i,this.globalData.comp,null);s.initExpressions(),this.globalData.projectInterface.registerComposition(s)}},MaskElement.prototype.getMaskProperty=function(t){return this.viewData[t].prop},MaskElement.prototype.renderFrame=function(t){var e,r=this.element.finalTransform.mat,i=this.masksProperties.length;for(e=0;e<i;e++)if((this.viewData[e].prop._mdf||t)&&this.drawPath(this.masksProperties[e],this.viewData[e].prop.v,this.viewData[e]),(this.viewData[e].op._mdf||t)&&this.viewData[e].elem.setAttribute("fill-opacity",this.viewData[e].op.v),"n"!==this.masksProperties[e].mode&&(this.viewData[e].invRect&&(this.element.finalTransform.mProp._mdf||t)&&this.viewData[e].invRect.setAttribute("transform",r.getInverseMatrix().to2dCSS()),this.storedData[e].x&&(this.storedData[e].x._mdf||t))){var s=this.storedData[e].expan;this.storedData[e].x.v<0?("erode"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="erode",this.storedData[e].elem.setAttribute("filter","url("+locationHref+"#"+this.storedData[e].filterId+")")),s.setAttribute("radius",-this.storedData[e].x.v)):("dilate"!==this.storedData[e].lastOperator&&(this.storedData[e].lastOperator="dilate",this.storedData[e].elem.setAttribute("filter",null)),this.storedData[e].elem.setAttribute("stroke-width",2*this.storedData[e].x.v))}},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var t="M0,0 ";return t+=" h"+this.globalData.compSize.w,t+=" v"+this.globalData.compSize.h,t+=" h-"+this.globalData.compSize.w,t+=" v-"+this.globalData.compSize.h+" "},MaskElement.prototype.drawPath=function(t,e,r){var i,s,a=" M"+e.v[0][0]+","+e.v[0][1];for(s=e._length,i=1;i<s;i+=1)a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[i][0]+","+e.i[i][1]+" "+e.v[i][0]+","+e.v[i][1];if(e.c&&1<s&&(a+=" C"+e.o[i-1][0]+","+e.o[i-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),r.lastPath!==a){var n="";r.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),r.elem.setAttribute("d",n)),r.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null},HierarchyElement.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(t){this.hierarchy=t},setAsParent:function(){this._isParent=!0},checkParenting:function(){void 0!==this.data.parent&&this.comp.buildElementParenting(this,this.data.parent,[])}},FrameElement.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(t,e){var r,i=this.dynamicProperties.length;for(r=0;r<i;r+=1)(e||this._isParent&&"transform"===this.dynamicProperties[r].propType)&&(this.dynamicProperties[r].getValue(),this.dynamicProperties[r]._mdf&&(this.globalData._mdf=!0,this._mdf=!0))},addDynamicProperty:function(t){-1===this.dynamicProperties.indexOf(t)&&this.dynamicProperties.push(t)}},TransformElement.prototype={initTransform:function(){this.finalTransform={mProp:this.data.ks?TransformPropertyFactory.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_opMdf:!1,mat:new Matrix},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var t,e=this.finalTransform.mat,r=0,i=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;r<i;){if(this.hierarchy[r].finalTransform.mProp._mdf){this.finalTransform._matMdf=!0;break}r+=1}if(this.finalTransform._matMdf)for(t=this.finalTransform.mProp.v.props,e.cloneFromProps(t),r=0;r<i;r+=1)t=this.hierarchy[r].finalTransform.mProp.v.props,e.transform(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}},globalToLocal:function(t){var e=[];e.push(this.finalTransform);for(var r=!0,i=this.comp;r;)i.finalTransform?(i.data.hasMask&&e.splice(0,0,i.finalTransform),i=i.comp):r=!1;var s,a,n=e.length;for(s=0;s<n;s+=1)a=e[s].mat.applyToPointArray(0,0,0),t=[t[0]-a[0],t[1]-a[1],0];return t},mHelper:new Matrix},RenderableElement.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(t){-1===this.renderableComponents.indexOf(t)&&this.renderableComponents.push(t)},removeRenderableComponent:function(t){-1!==this.renderableComponents.indexOf(t)&&this.renderableComponents.splice(this.renderableComponents.indexOf(t),1)},prepareRenderableFrame:function(t){this.checkLayerLimits(t)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(t){this.data.ip-this.data.st<=t&&this.data.op-this.data.st>t?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t<e;t+=1)this.renderableComponents[t].renderFrame(this._isFirstFrame)},sourceRectAtTime:function(){return{top:0,left:0,width:100,height:100}},getLayerSize:function(){return 5===this.data.ty?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}}},extendPrototype([RenderableElement,createProxyFunction({initElement:function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide()},hide:function(){this.hidden||this.isInRange&&!this.isTransparent||((this.baseElement||this.layerElement).style.display="none",this.hidden=!0)},show:function(){this.isInRange&&!this.isTransparent&&(this.data.hd||((this.baseElement||this.layerElement).style.display="block"),this.hidden=!1,this._isFirstFrame=!0)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},renderInnerContent:function(){},prepareFrame:function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.checkTransparency()},destroy:function(){this.innerElem=null,this.destroyBaseElement()}})],RenderableDOMElement),SVGStyleData.prototype.reset=function(){this.d="",this._mdf=!1},SVGShapeData.prototype.setAsAnimated=function(){this._isAnimated=!0},extendPrototype([DynamicPropertyContainer],SVGStrokeStyleData),extendPrototype([DynamicPropertyContainer],SVGFillStyleData),SVGGradientFillStyleData.prototype.initGradientData=function(t,e,r){this.o=PropertyFactory.getProp(t,e.o,0,.01,this),this.s=PropertyFactory.getProp(t,e.s,1,null,this),this.e=PropertyFactory.getProp(t,e.e,1,null,this),this.h=PropertyFactory.getProp(t,e.h||{k:0},0,.01,this),this.a=PropertyFactory.getProp(t,e.a||{k:0},0,degToRads,this),this.g=new GradientProperty(t,e.g,this),this.style=r,this.stops=[],this.setGradientData(r.pElem,e),this.setGradientOpacity(e,r),this._isAnimated=!!this._isAnimated},SVGGradientFillStyleData.prototype.setGradientData=function(t,e){var r=createElementID(),i=createNS(1===e.t?"linearGradient":"radialGradient");i.setAttribute("id",r),i.setAttribute("spreadMethod","pad"),i.setAttribute("gradientUnits","userSpaceOnUse");var s,a,n,o=[];for(n=4*e.g.p,a=0;a<n;a+=4)s=createNS("stop"),i.appendChild(s),o.push(s);t.setAttribute("gf"===e.ty?"fill":"stroke","url("+locationHref+"#"+r+")"),this.gf=i,this.cst=o},SVGGradientFillStyleData.prototype.setGradientOpacity=function(t,e){if(this.g._hasOpacity&&!this.g._collapsable){var r,i,s,a=createNS("mask"),n=createNS("path");a.appendChild(n);var o=createElementID(),h=createElementID();a.setAttribute("id",h);var l=createNS(1===t.t?"linearGradient":"radialGradient");l.setAttribute("id",o),l.setAttribute("spreadMethod","pad"),l.setAttribute("gradientUnits","userSpaceOnUse"),s=t.g.k.k[0].s?t.g.k.k[0].s.length:t.g.k.k.length;var p=this.stops;for(i=4*t.g.p;i<s;i+=2)(r=createNS("stop")).setAttribute("stop-color","rgb(255,255,255)"),l.appendChild(r),p.push(r);n.setAttribute("gf"===t.ty?"fill":"stroke","url("+locationHref+"#"+o+")"),this.of=l,this.ms=a,this.ost=p,this.maskId=h,e.msElem=n}},extendPrototype([DynamicPropertyContainer],SVGGradientFillStyleData),extendPrototype([SVGGradientFillStyleData,DynamicPropertyContainer],SVGGradientStrokeStyleData);var SVGElementsRenderer=function(){var y=new Matrix,g=new Matrix;function e(t,e,r){(r||e.transform.op._mdf)&&e.transform.container.setAttribute("opacity",e.transform.op.v),(r||e.transform.mProps._mdf)&&e.transform.container.setAttribute("transform",e.transform.mProps.v.to2dCSS())}function r(t,e,r){var i,s,a,n,o,h,l,p,m,f,c,d=e.styles.length,u=e.lvl;for(h=0;h<d;h+=1){if(n=e.sh._mdf||r,e.styles[h].lvl<u){for(p=g.reset(),f=u-e.styles[h].lvl,c=e.transformers.length-1;!n&&0<f;)n=e.transformers[c].mProps._mdf||n,f--,c--;if(n)for(f=u-e.styles[h].lvl,c=e.transformers.length-1;0<f;)m=e.transformers[c].mProps.v.props,p.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),f--,c--}else p=y;if(s=(l=e.sh.paths)._length,n){for(a="",i=0;i<s;i+=1)(o=l.shapes[i])&&o._length&&(a+=buildShapeString(o,o._length,o.c,p));e.caches[h]=a}else a=e.caches[h];e.styles[h].d+=!0===t.hd?"":a,e.styles[h]._mdf=n||e.styles[h]._mdf}}function i(t,e,r){var i=e.style;(e.c._mdf||r)&&i.pElem.setAttribute("fill","rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r)&&i.pElem.setAttribute("fill-opacity",e.o.v)}function s(t,e,r){a(t,e,r),n(t,e,r)}function a(t,e,r){var i,s,a,n,o,h=e.gf,l=e.g._hasOpacity,p=e.s.v,m=e.e.v;if(e.o._mdf||r){var f="gf"===t.ty?"fill-opacity":"stroke-opacity";e.style.pElem.setAttribute(f,e.o.v)}if(e.s._mdf||r){var c=1===t.t?"x1":"cx",d="x1"===c?"y1":"cy";h.setAttribute(c,p[0]),h.setAttribute(d,p[1]),l&&!e.g._collapsable&&(e.of.setAttribute(c,p[0]),e.of.setAttribute(d,p[1]))}if(e.g._cmdf||r){i=e.cst;var u=e.g.c;for(a=i.length,s=0;s<a;s+=1)(n=i[s]).setAttribute("offset",u[4*s]+"%"),n.setAttribute("stop-color","rgb("+u[4*s+1]+","+u[4*s+2]+","+u[4*s+3]+")")}if(l&&(e.g._omdf||r)){var y=e.g.o;for(a=(i=e.g._collapsable?e.cst:e.ost).length,s=0;s<a;s+=1)n=i[s],e.g._collapsable||n.setAttribute("offset",y[2*s]+"%"),n.setAttribute("stop-opacity",y[2*s+1])}if(1===t.t)(e.e._mdf||r)&&(h.setAttribute("x2",m[0]),h.setAttribute("y2",m[1]),l&&!e.g._collapsable&&(e.of.setAttribute("x2",m[0]),e.of.setAttribute("y2",m[1])));else if((e.s._mdf||e.e._mdf||r)&&(o=Math.sqrt(Math.pow(p[0]-m[0],2)+Math.pow(p[1]-m[1],2)),h.setAttribute("r",o),l&&!e.g._collapsable&&e.of.setAttribute("r",o)),e.e._mdf||e.h._mdf||e.a._mdf||r){o||(o=Math.sqrt(Math.pow(p[0]-m[0],2)+Math.pow(p[1]-m[1],2)));var g=Math.atan2(m[1]-p[1],m[0]-p[0]),v=o*(1<=e.h.v?.99:e.h.v<=-1?-.99:e.h.v),b=Math.cos(g+e.a.v)*v+p[0],E=Math.sin(g+e.a.v)*v+p[1];h.setAttribute("fx",b),h.setAttribute("fy",E),l&&!e.g._collapsable&&(e.of.setAttribute("fx",b),e.of.setAttribute("fy",E))}}function n(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||r)&&s.dashStr&&(i.pElem.setAttribute("stroke-dasharray",s.dashStr),i.pElem.setAttribute("stroke-dashoffset",s.dashoffset[0])),e.c&&(e.c._mdf||r)&&i.pElem.setAttribute("stroke","rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r)&&i.pElem.setAttribute("stroke-opacity",e.o.v),(e.w._mdf||r)&&(i.pElem.setAttribute("stroke-width",e.w.v),i.msElem&&i.msElem.setAttribute("stroke-width",e.w.v))}return{createRenderFunction:function(t){t.ty;switch(t.ty){case"fl":return i;case"gf":return a;case"gs":return s;case"st":return n;case"sh":case"el":case"rc":case"sr":return r;case"tr":return e}}}}();function ShapeTransformManager(){this.sequences={},this.sequenceList=[],this.transform_key_count=0}function CVShapeData(t,e,r,i){this.styledShapes=[],this.tr=[0,0,0,0,0,0];var s=4;"rc"==e.ty?s=5:"el"==e.ty?s=6:"sr"==e.ty&&(s=7),this.sh=ShapePropertyFactory.getShapeProp(t,e,s,t);var a,n,o=r.length;for(a=0;a<o;a+=1)r[a].closed||(n={transforms:i.addTransformSequence(r[a].transforms),trNodes:[]},this.styledShapes.push(n),r[a].elements.push(n))}function BaseElement(){}function NullElement(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initFrame(),this.initTransform(t,e,r),this.initHierarchy()}function SVGBaseElement(){}function IShapeElement(){}function ITextElement(){}function ICompElement(){}function IImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.initElement(t,e,r),this.sourceRect={top:0,left:0,width:this.assetData.w,height:this.assetData.h}}function ISolidElement(t,e,r){this.initElement(t,e,r)}function SVGCompElement(t,e,r){this.layers=t.layers,this.supports3d=!0,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function SVGTextElement(t,e,r){this.textSpans=[],this.renderType="svg",this.initElement(t,e,r)}function SVGShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,r),this.prevViewData=[]}function SVGTintFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");if(r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","linearRGB"),r.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),r.setAttribute("result","f1"),t.appendChild(r),(r=createNS("feColorMatrix")).setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),r.setAttribute("result","f2"),t.appendChild(r),this.matrixFilter=r,100!==e.effectElements[2].p.v||e.effectElements[2].p.k){var i,s=createNS("feMerge");t.appendChild(s),(i=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),s.appendChild(i),(i=createNS("feMergeNode")).setAttribute("in","f2"),s.appendChild(i)}}function SVGFillFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),t.appendChild(r),this.matrixFilter=r}function SVGGaussianBlurEffect(t,e){t.setAttribute("x","-100%"),t.setAttribute("y","-100%"),t.setAttribute("width","300%"),t.setAttribute("height","300%"),this.filterManager=e;var r=createNS("feGaussianBlur");t.appendChild(r),this.feGaussianBlur=r}function SVGStrokeEffect(t,e){this.initialized=!1,this.filterManager=e,this.elem=t,this.paths=[]}function SVGTritoneFilter(t,e){this.filterManager=e;var r=createNS("feColorMatrix");r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","linearRGB"),r.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),r.setAttribute("result","f1"),t.appendChild(r);var i=createNS("feComponentTransfer");i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),this.matrixFilter=i;var s=createNS("feFuncR");s.setAttribute("type","table"),i.appendChild(s),this.feFuncR=s;var a=createNS("feFuncG");a.setAttribute("type","table"),i.appendChild(a),this.feFuncG=a;var n=createNS("feFuncB");n.setAttribute("type","table"),i.appendChild(n),this.feFuncB=n}function SVGProLevelsFilter(t,e){this.filterManager=e;var r=this.filterManager.effectElements,i=createNS("feComponentTransfer");(r[10].p.k||0!==r[10].p.v||r[11].p.k||1!==r[11].p.v||r[12].p.k||1!==r[12].p.v||r[13].p.k||0!==r[13].p.v||r[14].p.k||1!==r[14].p.v)&&(this.feFuncR=this.createFeFunc("feFuncR",i)),(r[17].p.k||0!==r[17].p.v||r[18].p.k||1!==r[18].p.v||r[19].p.k||1!==r[19].p.v||r[20].p.k||0!==r[20].p.v||r[21].p.k||1!==r[21].p.v)&&(this.feFuncG=this.createFeFunc("feFuncG",i)),(r[24].p.k||0!==r[24].p.v||r[25].p.k||1!==r[25].p.v||r[26].p.k||1!==r[26].p.v||r[27].p.k||0!==r[27].p.v||r[28].p.k||1!==r[28].p.v)&&(this.feFuncB=this.createFeFunc("feFuncB",i)),(r[31].p.k||0!==r[31].p.v||r[32].p.k||1!==r[32].p.v||r[33].p.k||1!==r[33].p.v||r[34].p.k||0!==r[34].p.v||r[35].p.k||1!==r[35].p.v)&&(this.feFuncA=this.createFeFunc("feFuncA",i)),(this.feFuncR||this.feFuncG||this.feFuncB||this.feFuncA)&&(i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),i=createNS("feComponentTransfer")),(r[3].p.k||0!==r[3].p.v||r[4].p.k||1!==r[4].p.v||r[5].p.k||1!==r[5].p.v||r[6].p.k||0!==r[6].p.v||r[7].p.k||1!==r[7].p.v)&&(i.setAttribute("color-interpolation-filters","sRGB"),t.appendChild(i),this.feFuncRComposed=this.createFeFunc("feFuncR",i),this.feFuncGComposed=this.createFeFunc("feFuncG",i),this.feFuncBComposed=this.createFeFunc("feFuncB",i))}function SVGDropShadowEffect(t,e){var r=e.container.globalData.renderConfig.filterSize;t.setAttribute("x",r.x),t.setAttribute("y",r.y),t.setAttribute("width",r.width),t.setAttribute("height",r.height),this.filterManager=e;var i=createNS("feGaussianBlur");i.setAttribute("in","SourceAlpha"),i.setAttribute("result","drop_shadow_1"),i.setAttribute("stdDeviation","0"),this.feGaussianBlur=i,t.appendChild(i);var s=createNS("feOffset");s.setAttribute("dx","25"),s.setAttribute("dy","0"),s.setAttribute("in","drop_shadow_1"),s.setAttribute("result","drop_shadow_2"),this.feOffset=s,t.appendChild(s);var a=createNS("feFlood");a.setAttribute("flood-color","#00ff00"),a.setAttribute("flood-opacity","1"),a.setAttribute("result","drop_shadow_3"),this.feFlood=a,t.appendChild(a);var n=createNS("feComposite");n.setAttribute("in","drop_shadow_3"),n.setAttribute("in2","drop_shadow_2"),n.setAttribute("operator","in"),n.setAttribute("result","drop_shadow_4"),t.appendChild(n);var o,h=createNS("feMerge");t.appendChild(h),o=createNS("feMergeNode"),h.appendChild(o),(o=createNS("feMergeNode")).setAttribute("in","SourceGraphic"),this.feMergeNode=o,this.feMerge=h,this.originalNodeAdded=!1,h.appendChild(o)}ShapeTransformManager.prototype={addTransformSequence:function(t){var e,r=t.length,i="_";for(e=0;e<r;e+=1)i+=t[e].transform.key+"_";var s=this.sequences[i];return s||(s={transforms:[].concat(t),finalTransform:new Matrix,_mdf:!1},this.sequences[i]=s,this.sequenceList.push(s)),s},processSequence:function(t,e){for(var r,i=0,s=t.transforms.length,a=e;i<s&&!e;){if(t.transforms[i].transform.mProps._mdf){a=!0;break}i+=1}if(a)for(t.finalTransform.reset(),i=s-1;0<=i;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=a},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e<r;e+=1)this.processSequence(this.sequenceList[e],t)},getNewKey:function(){return"_"+this.transform_key_count++}},CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated,BaseElement.prototype={checkMasks:function(){if(!this.data.hasMask)return!1;for(var t=0,e=this.data.masksProperties.length;t<e;){if("n"!==this.data.masksProperties[t].mode&&!1!==this.data.masksProperties[t].cl)return!0;t+=1}return!1},initExpressions:function(){this.layerInterface=LayerExpressionInterface(this),this.data.hasMask&&this.maskManager&&this.layerInterface.registerMaskInterface(this.maskManager);var t=EffectsExpressionInterface.createEffectsInterface(this,this.layerInterface);this.layerInterface.registerEffectsInterface(t),0===this.data.ty||this.data.xt?this.compInterface=CompExpressionInterface(this):4===this.data.ty?(this.layerInterface.shapeInterface=ShapeExpressionInterface(this.shapesData,this.itemsData,this.layerInterface),this.layerInterface.content=this.layerInterface.shapeInterface):5===this.data.ty&&(this.layerInterface.textInterface=TextExpressionInterface(this),this.layerInterface.text=this.layerInterface.textInterface)},setBlendMode:function(){var t=getBlendMode(this.data.bm);(this.baseElement||this.layerElement).style["mix-blend-mode"]=t},initBaseData:function(t,e,r){this.globalData=e,this.comp=r,this.data=t,this.layerId=createElementID(),this.data.sr||(this.data.sr=1),this.effectsManager=new EffectsManager(this.data,this,this.dynamicProperties)},getType:function(){return this.type},sourceRectAtTime:function(){}},NullElement.prototype.prepareFrame=function(t){this.prepareProperties(t,!0)},NullElement.prototype.renderFrame=function(){},NullElement.prototype.getBaseElement=function(){return null},NullElement.prototype.destroy=function(){},NullElement.prototype.sourceRectAtTime=function(){},NullElement.prototype.hide=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement],NullElement),SVGBaseElement.prototype={initRendererElement:function(){this.layerElement=createNS("g")},createContainerElements:function(){this.matteElement=createNS("g"),this.transformedElement=this.layerElement,this.maskedElement=this.layerElement,this._sizeChanged=!1;var t,e,r,i=null;if(this.data.td){if(3==this.data.td||1==this.data.td){var s=createNS("mask");s.setAttribute("id",this.layerId),s.setAttribute("mask-type",3==this.data.td?"luminance":"alpha"),s.appendChild(this.layerElement),i=s,this.globalData.defs.appendChild(s),featureSupport.maskType||1!=this.data.td||(s.setAttribute("mask-type","luminance"),t=createElementID(),e=filtersFactory.createFilter(t),this.globalData.defs.appendChild(e),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),(r=createNS("g")).appendChild(this.layerElement),i=r,s.appendChild(r),r.setAttribute("filter","url("+locationHref+"#"+t+")"))}else if(2==this.data.td){var a=createNS("mask");a.setAttribute("id",this.layerId),a.setAttribute("mask-type","alpha");var n=createNS("g");a.appendChild(n),t=createElementID(),e=filtersFactory.createFilter(t);var o=createNS("feComponentTransfer");o.setAttribute("in","SourceGraphic"),e.appendChild(o);var h=createNS("feFuncA");h.setAttribute("type","table"),h.setAttribute("tableValues","1.0 0.0"),o.appendChild(h),this.globalData.defs.appendChild(e);var l=createNS("rect");l.setAttribute("width",this.comp.data.w),l.setAttribute("height",this.comp.data.h),l.setAttribute("x","0"),l.setAttribute("y","0"),l.setAttribute("fill","#ffffff"),l.setAttribute("opacity","0"),n.setAttribute("filter","url("+locationHref+"#"+t+")"),n.appendChild(l),n.appendChild(this.layerElement),i=n,featureSupport.maskType||(a.setAttribute("mask-type","luminance"),e.appendChild(filtersFactory.createAlphaToLuminanceFilter()),r=createNS("g"),n.appendChild(l),r.appendChild(this.layerElement),i=r,n.appendChild(r)),this.globalData.defs.appendChild(a)}}else this.data.tt?(this.matteElement.appendChild(this.layerElement),i=this.matteElement,this.baseElement=this.matteElement):this.baseElement=this.layerElement;if(this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0===this.data.ty&&!this.data.hd){var p=createNS("clipPath"),m=createNS("path");m.setAttribute("d","M0,0 L"+this.data.w+",0 L"+this.data.w+","+this.data.h+" L0,"+this.data.h+"z");var f=createElementID();if(p.setAttribute("id",f),p.appendChild(m),this.globalData.defs.appendChild(p),this.checkMasks()){var c=createNS("g");c.setAttribute("clip-path","url("+locationHref+"#"+f+")"),c.appendChild(this.layerElement),this.transformedElement=c,i?i.appendChild(this.transformedElement):this.baseElement=this.transformedElement}else this.layerElement.setAttribute("clip-path","url("+locationHref+"#"+f+")")}0!==this.data.bm&&this.setBlendMode()},renderElement:function(){this.finalTransform._matMdf&&this.transformedElement.setAttribute("transform",this.finalTransform.mat.to2dCSS()),this.finalTransform._opMdf&&this.transformedElement.setAttribute("opacity",this.finalTransform.mProp.o.v)},destroyBaseElement:function(){this.layerElement=null,this.matteElement=null,this.maskManager.destroy()},getBaseElement:function(){return this.data.hd?null:this.baseElement},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData),this.renderableEffectsManager=new SVGEffects(this)},setMatte:function(t){this.matteElement&&this.matteElement.setAttribute("mask","url("+locationHref+"#"+t+")")}},IShapeElement.prototype={addShapeToModifiers:function(t){var e,r=this.shapeModifiers.length;for(e=0;e<r;e+=1)this.shapeModifiers[e].addShape(t)},isShapeInAnimatedModifiers:function(t){for(var e=this.shapeModifiers.length;0<e;)if(this.shapeModifiers[0].isAnimatedWithShape(t))return!0;return!1},renderModifiers:function(){if(this.shapeModifiers.length){var t,e=this.shapes.length;for(t=0;t<e;t+=1)this.shapes[t].sh.reset();for(t=(e=this.shapeModifiers.length)-1;0<=t;t-=1)this.shapeModifiers[t].processShapes(this._isFirstFrame)}},lcEnum:{1:"butt",2:"round",3:"square"},ljEnum:{1:"miter",2:"round",3:"bevel"},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r<i;){if(e[r].elem===t)return e[r].pos;r+=1}return 0},addProcessedElement:function(t,e){for(var r=this.processedElements,i=r.length;i;)if(r[i-=1].elem===t)return void(r[i].pos=e);r.push(new ProcessedElement(t,e))},prepareFrame:function(t){this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange)}},ITextElement.prototype.initElement=function(t,e,r){this.lettersChangedFlag=!0,this.initFrame(),this.initBaseData(t,e,r),this.textProperty=new TextProperty(this,t.t,this.dynamicProperties),this.textAnimator=new TextAnimatorProperty(t.t,this.renderType,this),this.initTransform(t,e,r),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide(),this.textAnimator.searchProperties(this.dynamicProperties)},ITextElement.prototype.prepareFrame=function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),(this.textProperty._mdf||this.textProperty._isFirstFrame)&&(this.buildNewText(),this.textProperty._isFirstFrame=!1,this.textProperty._mdf=!1)},ITextElement.prototype.createPathShape=function(t,e){var r,i,s=e.length,a="";for(r=0;r<s;r+=1)i=e[r].ks.k,a+=buildShapeString(i,i.i.length,!0,t);return a},ITextElement.prototype.updateDocumentData=function(t,e){this.textProperty.updateDocumentData(t,e)},ITextElement.prototype.canResizeFont=function(t){this.textProperty.canResizeFont(t)},ITextElement.prototype.setMinimumFontSize=function(t){this.textProperty.setMinimumFontSize(t)},ITextElement.prototype.applyTextPropertiesToMatrix=function(t,e,r,i,s){switch(t.ps&&e.translate(t.ps[0],t.ps[1]+t.ascent,0),e.translate(0,-t.ls,0),t.j){case 1:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r]),0,0);break;case 2:e.translate(t.justifyOffset+(t.boxWidth-t.lineWidths[r])/2,0,0)}e.translate(i,s,0)},ITextElement.prototype.buildColor=function(t){return"rgb("+Math.round(255*t[0])+","+Math.round(255*t[1])+","+Math.round(255*t[2])+")"},ITextElement.prototype.emptyProp=new LetterProps,ITextElement.prototype.destroy=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement,RenderableDOMElement],ICompElement),ICompElement.prototype.initElement=function(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initTransform(t,e,r),this.initRenderable(),this.initHierarchy(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),!this.data.xt&&e.progressiveLoad||this.buildAllItems(),this.hide()},ICompElement.prototype.prepareFrame=function(t){if(this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.isInRange||this.data.xt){if(this.tm._placeholder)this.renderedFrame=t/this.data.sr;else{var e=this.tm.v;e===this.data.op&&(e=this.data.op-1),this.renderedFrame=e}var r,i=this.elements.length;for(this.completeLayers||this.checkLayers(this.renderedFrame),r=i-1;0<=r;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},ICompElement.prototype.setElements=function(t){this.elements=t},ICompElement.prototype.getElements=function(){return this.elements},ICompElement.prototype.destroyElements=function(){var t,e=this.layers.length;for(t=0;t<e;t+=1)this.elements[t]&&this.elements[t].destroy()},ICompElement.prototype.destroy=function(){this.destroyElements(),this.destroyBaseElement()},extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],IImageElement),IImageElement.prototype.createContent=function(){var t=this.globalData.getAssetsPath(this.assetData);this.innerElem=createNS("image"),this.innerElem.setAttribute("width",this.assetData.w+"px"),this.innerElem.setAttribute("height",this.assetData.h+"px"),this.innerElem.setAttribute("preserveAspectRatio",this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio),this.innerElem.setAttributeNS("http://www.w3.org/1999/xlink","href",t),this.layerElement.appendChild(this.innerElem)},IImageElement.prototype.sourceRectAtTime=function(){return this.sourceRect},extendPrototype([IImageElement],ISolidElement),ISolidElement.prototype.createContent=function(){var t=createNS("rect");t.setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.layerElement.appendChild(t)},extendPrototype([SVGRenderer,ICompElement,SVGBaseElement],SVGCompElement),extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],SVGTextElement),SVGTextElement.prototype.createContent=function(){this.data.singleShape&&!this.globalData.fontManager.chars&&(this.textContainer=createNS("text"))},SVGTextElement.prototype.buildTextContents=function(t){for(var e=0,r=t.length,i=[],s="";e<r;)t[e]===String.fromCharCode(13)||t[e]===String.fromCharCode(3)?(i.push(s),s=""):s+=t[e],e+=1;return i.push(s),i},SVGTextElement.prototype.buildNewText=function(){var t,e,r=this.textProperty.currentData;this.renderedLetters=createSizedArray(r?r.l.length:0),r.fc?this.layerElement.setAttribute("fill",this.buildColor(r.fc)):this.layerElement.setAttribute("fill","rgba(0,0,0,0)"),r.sc&&(this.layerElement.setAttribute("stroke",this.buildColor(r.sc)),this.layerElement.setAttribute("stroke-width",r.sw)),this.layerElement.setAttribute("font-size",r.finalSize);var i=this.globalData.fontManager.getFontByName(r.f);if(i.fClass)this.layerElement.setAttribute("class",i.fClass);else{this.layerElement.setAttribute("font-family",i.fFamily);var s=r.fWeight,a=r.fStyle;this.layerElement.setAttribute("font-style",a),this.layerElement.setAttribute("font-weight",s)}this.layerElement.setAttribute("aria-label",r.t);var n,o=r.l||[],h=!!this.globalData.fontManager.chars;e=o.length;var l,p=this.mHelper,m="",f=this.data.singleShape,c=0,d=0,u=!0,y=r.tr/1e3*r.finalSize;if(!f||h||r.sz){var g,v,b=this.textSpans.length;for(t=0;t<e;t+=1)h&&f&&0!==t||(n=t<b?this.textSpans[t]:createNS(h?"path":"text"),b<=t&&(n.setAttribute("stroke-linecap","butt"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("stroke-miterlimit","4"),this.textSpans[t]=n,this.layerElement.appendChild(n)),n.style.display="inherit"),p.reset(),p.scale(r.finalSize/100,r.finalSize/100),f&&(o[t].n&&(c=-y,d+=r.yOffset,d+=u?1:0,u=!1),this.applyTextPropertiesToMatrix(r,p,o[t].line,c,d),c+=o[t].l||0,c+=y),h?(l=(g=(v=this.globalData.fontManager.getCharData(r.finalText[t],i.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily))&&v.data||{}).shapes?g.shapes[0].it:[],f?m+=this.createPathShape(p,l):n.setAttribute("d",this.createPathShape(p,l))):(f&&n.setAttribute("transform","translate("+p.props[12]+","+p.props[13]+")"),n.textContent=o[t].val,n.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"));f&&n&&n.setAttribute("d",m)}else{var E=this.textContainer,x="start";switch(r.j){case 1:x="end";break;case 2:x="middle"}E.setAttribute("text-anchor",x),E.setAttribute("letter-spacing",y);var S=this.buildTextContents(r.finalText);for(e=S.length,d=r.ps?r.ps[1]+r.ascent:0,t=0;t<e;t+=1)(n=this.textSpans[t]||createNS("tspan")).textContent=S[t],n.setAttribute("x",0),n.setAttribute("y",d),n.style.display="inherit",E.appendChild(n),this.textSpans[t]=n,d+=r.finalLineHeight;this.layerElement.appendChild(E)}for(;t<this.textSpans.length;)this.textSpans[t].style.display="none",t+=1;this._sizeChanged=!0},SVGTextElement.prototype.sourceRectAtTime=function(t){if(this.prepareFrame(this.comp.renderedFrame-this.data.st),this.renderInnerContent(),this._sizeChanged){this._sizeChanged=!1;var e=this.layerElement.getBBox();this.bbox={top:e.y,left:e.x,width:e.width,height:e.height}}return this.bbox},SVGTextElement.prototype.renderInnerContent=function(){if(!this.data.singleShape&&(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag)){var t,e;this._sizeChanged=!0;var r,i,s=this.textAnimator.renderedLetters,a=this.textProperty.currentData.l;for(e=a.length,t=0;t<e;t+=1)a[t].n||(r=s[t],i=this.textSpans[t],r._mdf.m&&i.setAttribute("transform",r.m),r._mdf.o&&i.setAttribute("opacity",r.o),r._mdf.sw&&i.setAttribute("stroke-width",r.sw),r._mdf.sc&&i.setAttribute("stroke",r.sc),r._mdf.fc&&i.setAttribute("fill",r.fc))}},extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,r,i,s=this.shapes.length,a=this.stylesList.length,n=[],o=!1;for(r=0;r<a;r+=1){for(i=this.stylesList[r],o=!1,t=n.length=0;t<s;t+=1)-1!==(e=this.shapes[t]).styles.indexOf(i)&&(n.push(e),o=e._isAnimated||o);1<n.length&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].setAsAnimated()},SVGShapeElement.prototype.createStyleElement=function(t,e){var r,i=new SVGStyleData(t,e),s=i.pElem;if("st"===t.ty)r=new SVGStrokeStyleData(this,t,i);else if("fl"===t.ty)r=new SVGFillStyleData(this,t,i);else if("gf"===t.ty||"gs"===t.ty){r=new("gf"===t.ty?SVGGradientFillStyleData:SVGGradientStrokeStyleData)(this,t,i),this.globalData.defs.appendChild(r.gf),r.maskId&&(this.globalData.defs.appendChild(r.ms),this.globalData.defs.appendChild(r.of),s.setAttribute("mask","url("+locationHref+"#"+r.maskId+")"))}return"st"!==t.ty&&"gs"!==t.ty||(s.setAttribute("stroke-linecap",this.lcEnum[t.lc]||"round"),s.setAttribute("stroke-linejoin",this.ljEnum[t.lj]||"round"),s.setAttribute("fill-opacity","0"),1===t.lj&&s.setAttribute("stroke-miterlimit",t.ml)),2===t.r&&s.setAttribute("fill-rule","evenodd"),t.ln&&s.setAttribute("id",t.ln),t.cl&&s.setAttribute("class",t.cl),t.bm&&(s.style["mix-blend-mode"]=getBlendMode(t.bm)),this.stylesList.push(i),this.addToAnimatedContents(t,r),r},SVGShapeElement.prototype.createGroupElement=function(t){var e=new ShapeGroupData;return t.ln&&e.gr.setAttribute("id",t.ln),t.cl&&e.gr.setAttribute("class",t.cl),t.bm&&(e.gr.style["mix-blend-mode"]=getBlendMode(t.bm)),e},SVGShapeElement.prototype.createTransformElement=function(t,e){var r=TransformPropertyFactory.getTransformProperty(this,t,this),i=new SVGTransformData(r,r.o,e);return this.addToAnimatedContents(t,i),i},SVGShapeElement.prototype.createShapeElement=function(t,e,r){var i=4;"rc"===t.ty?i=5:"el"===t.ty?i=6:"sr"===t.ty&&(i=7);var s=new SVGShapeData(e,r,ShapePropertyFactory.getShapeProp(this,t,i,this));return this.shapes.push(s),this.addShapeToModifiers(s),this.addToAnimatedContents(t,s),s},SVGShapeElement.prototype.addToAnimatedContents=function(t,e){for(var r=0,i=this.animatedContents.length;r<i;){if(this.animatedContents[r].element===e)return;r+=1}this.animatedContents.push({fn:SVGElementsRenderer.createRenderFunction(t),element:e,data:t})},SVGShapeElement.prototype.setElementStyles=function(t){var e,r=t.styles,i=this.stylesList.length;for(e=0;e<i;e+=1)this.stylesList[e].closed||r.push(this.stylesList[e])},SVGShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes(),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers()},SVGShapeElement.prototype.searchShapes=function(t,e,r,i,s,a,n){var o,h,l,p,m,f,c=[].concat(a),d=t.length-1,u=[],y=[];for(o=d;0<=o;o-=1){if((f=this.searchProcessedElement(t[o]))?e[o]=r[f-1]:t[o]._render=n,"fl"==t[o].ty||"st"==t[o].ty||"gf"==t[o].ty||"gs"==t[o].ty)f?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&i.appendChild(e[o].style.pElem),u.push(e[o].style);else if("gr"==t[o].ty){if(f)for(l=e[o].it.length,h=0;h<l;h+=1)e[o].prevViewData[h]=e[o].it[h];else e[o]=this.createGroupElement(t[o]);this.searchShapes(t[o].it,e[o].it,e[o].prevViewData,e[o].gr,s+1,c,n),t[o]._render&&i.appendChild(e[o].gr)}else"tr"==t[o].ty?(f||(e[o]=this.createTransformElement(t[o],i)),p=e[o].transform,c.push(p)):"sh"==t[o].ty||"rc"==t[o].ty||"el"==t[o].ty||"sr"==t[o].ty?(f||(e[o]=this.createShapeElement(t[o],c,s)),this.setElementStyles(e[o])):"tm"==t[o].ty||"rd"==t[o].ty||"ms"==t[o].ty?(f?(m=e[o]).closed=!1:((m=ShapeModifiers.getModifier(t[o].ty)).init(this,t[o]),e[o]=m,this.shapeModifiers.push(m)),y.push(m)):"rp"==t[o].ty&&(f?(m=e[o]).closed=!0:(m=ShapeModifiers.getModifier(t[o].ty),(e[o]=m).init(this,t,o,e),this.shapeModifiers.push(m),n=!1),y.push(m));this.addProcessedElement(t[o],o+1)}for(d=u.length,o=0;o<d;o+=1)u[o].closed=!0;for(d=y.length,o=0;o<d;o+=1)y[o].closed=!0},SVGShapeElement.prototype.renderInnerContent=function(){this.renderModifiers();var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].reset();for(this.renderShape(),t=0;t<e;t+=1)(this.stylesList[t]._mdf||this._isFirstFrame)&&(this.stylesList[t].msElem&&(this.stylesList[t].msElem.setAttribute("d",this.stylesList[t].d),this.stylesList[t].d="M0 0"+this.stylesList[t].d),this.stylesList[t].pElem.setAttribute("d",this.stylesList[t].d||"M0 0"))},SVGShapeElement.prototype.renderShape=function(){var t,e,r=this.animatedContents.length;for(t=0;t<r;t+=1)e=this.animatedContents[t],(this._isFirstFrame||e.element._isAnimated)&&!0!==e.data&&e.fn(e.data,e.element,this._isFirstFrame)},SVGShapeElement.prototype.destroy=function(){this.destroyBaseElement(),this.shapesData=null,this.itemsData=null},SVGTintFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v/100;this.matrixFilter.setAttribute("values",r[0]-e[0]+" 0 0 0 "+e[0]+" "+(r[1]-e[1])+" 0 0 0 "+e[1]+" "+(r[2]-e[2])+" 0 0 0 "+e[2]+" 0 0 0 "+i+" 0")}},SVGFillFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[2].p.v,r=this.filterManager.effectElements[6].p.v;this.matrixFilter.setAttribute("values","0 0 0 0 "+e[0]+" 0 0 0 0 "+e[1]+" 0 0 0 0 "+e[2]+" 0 0 0 "+r+" 0")}},SVGGaussianBlurEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=.3*this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=3==r?0:e,s=2==r?0:e;this.feGaussianBlur.setAttribute("stdDeviation",i+" "+s);var a=1==this.filterManager.effectElements[2].p.v?"wrap":"duplicate";this.feGaussianBlur.setAttribute("edgeMode",a)}},SVGStrokeEffect.prototype.initialize=function(){var t,e,r,i,s=this.elem.layerElement.children||this.elem.layerElement.childNodes;for(1===this.filterManager.effectElements[1].p.v?(i=this.elem.maskManager.masksProperties.length,r=0):i=(r=this.filterManager.effectElements[0].p.v-1)+1,(e=createNS("g")).setAttribute("fill","none"),e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-dashoffset",1);r<i;r+=1)t=createNS("path"),e.appendChild(t),this.paths.push({p:t,m:r});if(3===this.filterManager.effectElements[10].p.v){var a=createNS("mask"),n=createElementID();a.setAttribute("id",n),a.setAttribute("mask-type","alpha"),a.appendChild(e),this.elem.globalData.defs.appendChild(a);var o=createNS("g");for(o.setAttribute("mask","url("+locationHref+"#"+n+")");s[0];)o.appendChild(s[0]);this.elem.layerElement.appendChild(o),this.masker=a,e.setAttribute("stroke","#fff")}else if(1===this.filterManager.effectElements[10].p.v||2===this.filterManager.effectElements[10].p.v){if(2===this.filterManager.effectElements[10].p.v)for(s=this.elem.layerElement.children||this.elem.layerElement.childNodes;s.length;)this.elem.layerElement.removeChild(s[0]);this.elem.layerElement.appendChild(e),this.elem.layerElement.removeAttribute("mask"),e.setAttribute("stroke","#fff")}this.initialized=!0,this.pathMasker=e},SVGStrokeEffect.prototype.renderFrame=function(t){this.initialized||this.initialize();var e,r,i,s=this.paths.length;for(e=0;e<s;e+=1)if(-1!==this.paths[e].m&&(r=this.elem.maskManager.viewData[this.paths[e].m],i=this.paths[e].p,(t||this.filterManager._mdf||r.prop._mdf)&&i.setAttribute("d",r.lastPath),t||this.filterManager.effectElements[9].p._mdf||this.filterManager.effectElements[4].p._mdf||this.filterManager.effectElements[7].p._mdf||this.filterManager.effectElements[8].p._mdf||r.prop._mdf)){var a;if(0!==this.filterManager.effectElements[7].p.v||100!==this.filterManager.effectElements[8].p.v){var n=Math.min(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100,o=Math.max(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100,h=i.getTotalLength();a="0 0 0 "+h*n+" ";var l,p=h*(o-n),m=1+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100,f=Math.floor(p/m);for(l=0;l<f;l+=1)a+="1 "+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100+" ";a+="0 "+10*h+" 0 0"}else a="1 "+2*this.filterManager.effectElements[4].p.v*this.filterManager.effectElements[9].p.v/100;i.setAttribute("stroke-dasharray",a)}if((t||this.filterManager.effectElements[4].p._mdf)&&this.pathMasker.setAttribute("stroke-width",2*this.filterManager.effectElements[4].p.v),(t||this.filterManager.effectElements[6].p._mdf)&&this.pathMasker.setAttribute("opacity",this.filterManager.effectElements[6].p.v),(1===this.filterManager.effectElements[10].p.v||2===this.filterManager.effectElements[10].p.v)&&(t||this.filterManager.effectElements[3].p._mdf)){var c=this.filterManager.effectElements[3].p.v;this.pathMasker.setAttribute("stroke","rgb("+bm_floor(255*c[0])+","+bm_floor(255*c[1])+","+bm_floor(255*c[2])+")")}},SVGTritoneFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,r=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v,s=i[0]+" "+r[0]+" "+e[0],a=i[1]+" "+r[1]+" "+e[1],n=i[2]+" "+r[2]+" "+e[2];this.feFuncR.setAttribute("tableValues",s),this.feFuncG.setAttribute("tableValues",a),this.feFuncB.setAttribute("tableValues",n)}},SVGProLevelsFilter.prototype.createFeFunc=function(t,e){var r=createNS(t);return r.setAttribute("type","table"),e.appendChild(r),r},SVGProLevelsFilter.prototype.getTableValue=function(t,e,r,i,s){for(var a,n,o=0,h=Math.min(t,e),l=Math.max(t,e),p=Array.call(null,{length:256}),m=0,f=s-i,c=e-t;o<=256;)n=(a=o/256)<=h?c<0?s:i:l<=a?c<0?i:s:i+f*Math.pow((a-t)/c,1/r),p[m++]=n,o+=256/255;return p.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e,r=this.filterManager.effectElements;this.feFuncRComposed&&(t||r[3].p._mdf||r[4].p._mdf||r[5].p._mdf||r[6].p._mdf||r[7].p._mdf)&&(e=this.getTableValue(r[3].p.v,r[4].p.v,r[5].p.v,r[6].p.v,r[7].p.v),this.feFuncRComposed.setAttribute("tableValues",e),this.feFuncGComposed.setAttribute("tableValues",e),this.feFuncBComposed.setAttribute("tableValues",e)),this.feFuncR&&(t||r[10].p._mdf||r[11].p._mdf||r[12].p._mdf||r[13].p._mdf||r[14].p._mdf)&&(e=this.getTableValue(r[10].p.v,r[11].p.v,r[12].p.v,r[13].p.v,r[14].p.v),this.feFuncR.setAttribute("tableValues",e)),this.feFuncG&&(t||r[17].p._mdf||r[18].p._mdf||r[19].p._mdf||r[20].p._mdf||r[21].p._mdf)&&(e=this.getTableValue(r[17].p.v,r[18].p.v,r[19].p.v,r[20].p.v,r[21].p.v),this.feFuncG.setAttribute("tableValues",e)),this.feFuncB&&(t||r[24].p._mdf||r[25].p._mdf||r[26].p._mdf||r[27].p._mdf||r[28].p._mdf)&&(e=this.getTableValue(r[24].p.v,r[25].p.v,r[26].p.v,r[27].p.v,r[28].p.v),this.feFuncB.setAttribute("tableValues",e)),this.feFuncA&&(t||r[31].p._mdf||r[32].p._mdf||r[33].p._mdf||r[34].p._mdf||r[35].p._mdf)&&(e=this.getTableValue(r[31].p.v,r[32].p.v,r[33].p.v,r[34].p.v,r[35].p.v),this.feFuncA.setAttribute("tableValues",e))}},SVGDropShadowEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){if((t||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),t||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(255*e[0]),Math.round(255*e[1]),Math.round(255*e[2])))}if((t||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),t||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var r=this.filterManager.effectElements[3].p.v,i=(this.filterManager.effectElements[2].p.v-90)*degToRads,s=r*Math.cos(i),a=r*Math.sin(i);this.feOffset.setAttribute("dx",s),this.feOffset.setAttribute("dy",a)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(t,e,r){this.initialized=!1,this.filterManager=e,this.filterElem=t,(this.elem=r).matteElement=createNS("g"),r.matteElement.appendChild(r.layerElement),r.matteElement.appendChild(r.transformedElement),r.baseElement=r.matteElement}function SVGEffects(t){var e,r,i=t.data.ef?t.data.ef.length:0,s=createElementID(),a=filtersFactory.createFilter(s),n=0;for(this.filters=[],e=0;e<i;e+=1)r=null,20===t.data.ef[e].ty?(n+=1,r=new SVGTintFilter(a,t.effectsManager.effectElements[e])):21===t.data.ef[e].ty?(n+=1,r=new SVGFillFilter(a,t.effectsManager.effectElements[e])):22===t.data.ef[e].ty?r=new SVGStrokeEffect(t,t.effectsManager.effectElements[e]):23===t.data.ef[e].ty?(n+=1,r=new SVGTritoneFilter(a,t.effectsManager.effectElements[e])):24===t.data.ef[e].ty?(n+=1,r=new SVGProLevelsFilter(a,t.effectsManager.effectElements[e])):25===t.data.ef[e].ty?(n+=1,r=new SVGDropShadowEffect(a,t.effectsManager.effectElements[e])):28===t.data.ef[e].ty?r=new SVGMatte3Effect(a,t.effectsManager.effectElements[e],t):29===t.data.ef[e].ty&&(n+=1,r=new SVGGaussianBlurEffect(a,t.effectsManager.effectElements[e])),r&&this.filters.push(r);n&&(t.globalData.defs.appendChild(a),t.layerElement.setAttribute("filter","url("+locationHref+"#"+s+")")),this.filters.length&&t.addRenderableComponent(this)}function CVContextData(){this.saved=[],this.cArrPos=0,this.cTr=new Matrix,this.cO=1;var t;for(this.savedOp=createTypedArray("float32",15),t=0;t<15;t+=1)this.saved[t]=createTypedArray("float32",16);this._length=15}function CVBaseElement(){}function CVImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.img=e.imageLoader.getImage(this.assetData),this.initElement(t,e,r)}function CVCompElement(t,e,r){this.completeLayers=!1,this.layers=t.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function CVMaskElement(t,e){this.data=t,this.element=e,this.masksProperties=this.data.masksProperties||[],this.viewData=createSizedArray(this.masksProperties.length);var r,i=this.masksProperties.length,s=!1;for(r=0;r<i;r++)"n"!==this.masksProperties[r].mode&&(s=!0),this.viewData[r]=ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[r],3);(this.hasMasks=s)&&this.element.addRenderableComponent(this)}function CVShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.itemsData=[],this.prevViewData=[],this.shapeModifiers=[],this.processedElements=[],this.transformsManager=new ShapeTransformManager,this.initElement(t,e,r)}function CVSolidElement(t,e,r){this.initElement(t,e,r)}function CVTextElement(t,e,r){this.textSpans=[],this.yOffset=0,this.fillColorAnim=!1,this.strokeColorAnim=!1,this.strokeWidthAnim=!1,this.stroke=!1,this.fill=!1,this.justifyOffset=0,this.currentRender=null,this.renderType="canvas",this.values={fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)",sWidth:0,fValue:""},this.initElement(t,e,r)}function CVEffects(){}function HBaseElement(t,e,r){}function HSolidElement(t,e,r){this.initElement(t,e,r)}function HCompElement(t,e,r){this.layers=t.layers,this.supports3d=!t.hasMask,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(t,e,r),this.tm=t.tm?PropertyFactory.getProp(this,t.tm,0,e.frameRate,this):{_placeholder:!0}}function HShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(t,e,r),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}function HTextElement(t,e,r){this.textSpans=[],this.textPaths=[],this.currentBBox={x:999999,y:-999999,h:0,w:0},this.renderType="svg",this.isMasked=!1,this.initElement(t,e,r)}function HImageElement(t,e,r){this.assetData=e.getAssetData(t.refId),this.initElement(t,e,r)}function HCameraElement(t,e,r){this.initFrame(),this.initBaseData(t,e,r),this.initHierarchy();var i=PropertyFactory.getProp;if(this.pe=i(this,t.pe,0,0,this),t.ks.p.s?(this.px=i(this,t.ks.p.x,1,0,this),this.py=i(this,t.ks.p.y,1,0,this),this.pz=i(this,t.ks.p.z,1,0,this)):this.p=i(this,t.ks.p,1,0,this),t.ks.a&&(this.a=i(this,t.ks.a,1,0,this)),t.ks.or.k.length&&t.ks.or.k[0].to){var s,a=t.ks.or.k.length;for(s=0;s<a;s+=1)t.ks.or.k[s].to=null,t.ks.or.k[s].ti=null}this.or=i(this,t.ks.or,1,degToRads,this),this.or.sh=!0,this.rx=i(this,t.ks.rx,0,degToRads,this),this.ry=i(this,t.ks.ry,0,degToRads,this),this.rz=i(this,t.ks.rz,0,degToRads,this),this.mat=new Matrix,this._prevMat=new Matrix,this._isFirstFrame=!0,this.finalTransform={mProp:this}}function HEffects(){}SVGMatte3Effect.prototype.findSymbol=function(t){for(var e=0,r=_svgMatteSymbols.length;e<r;){if(_svgMatteSymbols[e]===t)return _svgMatteSymbols[e];e+=1}return null},SVGMatte3Effect.prototype.replaceInParent=function(t,e){var r=t.layerElement.parentNode;if(r){for(var i,s=r.children,a=0,n=s.length;a<n&&s[a]!==t.layerElement;)a+=1;a<=n-2&&(i=s[a+1]);var o=createNS("use");o.setAttribute("href","#"+e),i?r.insertBefore(o,i):r.appendChild(o)}},SVGMatte3Effect.prototype.setElementAsMask=function(t,e){if(!this.findSymbol(e)){var r=createElementID(),i=createNS("mask");i.setAttribute("id",e.layerId),i.setAttribute("mask-type","alpha"),_svgMatteSymbols.push(e);var s=t.globalData.defs;s.appendChild(i);var a=createNS("symbol");a.setAttribute("id",r),this.replaceInParent(e,r),a.appendChild(e.layerElement),s.appendChild(a);var n=createNS("use");n.setAttribute("href","#"+r),i.appendChild(n),e.data.hd=!1,e.show()}t.setMatte(e.layerId)},SVGMatte3Effect.prototype.initialize=function(){for(var t=this.filterManager.effectElements[0].p.v,e=this.elem.comp.elements,r=0,i=e.length;r<i;)e[r]&&e[r].data.ind===t&&this.setElementAsMask(this.elem,e[r]),r+=1;this.initialized=!0},SVGMatte3Effect.prototype.renderFrame=function(){this.initialized||this.initialize()},SVGEffects.prototype.renderFrame=function(t){var e,r=this.filters.length;for(e=0;e<r;e+=1)this.filters[e].renderFrame(t)},CVContextData.prototype.duplicate=function(){var t=2*this._length,e=this.savedOp;this.savedOp=createTypedArray("float32",t),this.savedOp.set(e);var r=0;for(r=this._length;r<t;r+=1)this.saved[r]=createTypedArray("float32",16);this._length=t},CVContextData.prototype.reset=function(){this.cArrPos=0,this.cTr.reset(),this.cO=1},CVBaseElement.prototype={createElements:function(){},initRendererElement:function(){},createContainerElements:function(){this.canvasContext=this.globalData.canvasContext,this.renderableEffectsManager=new CVEffects(this)},createContent:function(){},setBlendMode:function(){var t=this.globalData;if(t.blendMode!==this.data.bm){t.blendMode=this.data.bm;var e=getBlendMode(this.data.bm);t.canvasContext.globalCompositeOperation=e}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this)},hideElement:function(){this.hidden||this.isInRange&&!this.isTransparent||(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},renderFrame:function(){if(!this.hidden&&!this.data.hd){this.renderTransform(),this.renderRenderable(),this.setBlendMode();var t=0===this.data.ty;this.globalData.renderer.save(t),this.globalData.renderer.ctxTransform(this.finalTransform.mat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v),this.renderInnerContent(),this.globalData.renderer.restore(t),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1)}},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement,extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVImageElement),CVImageElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVImageElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVImageElement.prototype.createContent=function(){if(this.img.width&&(this.assetData.w!==this.img.width||this.assetData.h!==this.img.height)){var t=createTag("canvas");t.width=this.assetData.w,t.height=this.assetData.h;var e,r,i=t.getContext("2d"),s=this.img.width,a=this.img.height,n=s/a,o=this.assetData.w/this.assetData.h,h=this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio;o<n&&"xMidYMid slice"===h||n<o&&"xMidYMid slice"!==h?e=(r=a)*o:r=(e=s)/o,i.drawImage(this.img,(s-e)/2,(a-r)/2,e,r,0,0,this.assetData.w,this.assetData.h),this.img=t}},CVImageElement.prototype.renderInnerContent=function(t){this.canvasContext.drawImage(this.img,0,0)},CVImageElement.prototype.destroy=function(){this.img=null},extendPrototype([CanvasRenderer,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var t,e=this.canvasContext;for(e.beginPath(),e.moveTo(0,0),e.lineTo(this.data.w,0),e.lineTo(this.data.w,this.data.h),e.lineTo(0,this.data.h),e.lineTo(0,0),e.clip(),t=this.layers.length-1;0<=t;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;0<=t;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVMaskElement.prototype.renderFrame=function(){if(this.hasMasks){var t,e,r,i,s=this.element.finalTransform.mat,a=this.element.canvasContext,n=this.masksProperties.length;for(a.beginPath(),t=0;t<n;t++)if("n"!==this.masksProperties[t].mode){this.masksProperties[t].inv&&(a.moveTo(0,0),a.lineTo(this.element.globalData.compSize.w,0),a.lineTo(this.element.globalData.compSize.w,this.element.globalData.compSize.h),a.lineTo(0,this.element.globalData.compSize.h),a.lineTo(0,0)),i=this.viewData[t].v,e=s.applyToPointArray(i.v[0][0],i.v[0][1],0),a.moveTo(e[0],e[1]);var o,h=i._length;for(o=1;o<h;o++)r=s.applyToTriplePoints(i.o[o-1],i.i[o],i.v[o]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5]);r=s.applyToTriplePoints(i.o[o-1],i.i[0],i.v[0]),a.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5])}this.element.globalData.renderer.save(!0),a.clip()}},CVMaskElement.prototype.getMaskProperty=MaskElement.prototype.getMaskProperty,CVMaskElement.prototype.destroy=function(){this.element=null},extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(t,e){var r={data:t,type:t.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:!0===t.hd},i={};if("fl"==t.ty||"st"==t.ty?(i.c=PropertyFactory.getProp(this,t.c,1,255,this),i.c.k||(r.co="rgb("+bm_floor(i.c.v[0])+","+bm_floor(i.c.v[1])+","+bm_floor(i.c.v[2])+")")):"gf"!==t.ty&&"gs"!==t.ty||(i.s=PropertyFactory.getProp(this,t.s,1,null,this),i.e=PropertyFactory.getProp(this,t.e,1,null,this),i.h=PropertyFactory.getProp(this,t.h||{k:0},0,.01,this),i.a=PropertyFactory.getProp(this,t.a||{k:0},0,degToRads,this),i.g=new GradientProperty(this,t.g,this)),i.o=PropertyFactory.getProp(this,t.o,0,.01,this),"st"==t.ty||"gs"==t.ty){if(r.lc=this.lcEnum[t.lc]||"round",r.lj=this.ljEnum[t.lj]||"round",1==t.lj&&(r.ml=t.ml),i.w=PropertyFactory.getProp(this,t.w,0,null,this),i.w.k||(r.wi=i.w.v),t.d){var s=new DashProperty(this,t.d,"canvas",this);i.d=s,i.d.k||(r.da=i.d.dashArray,r.do=i.d.dashoffset[0])}}else r.r=2===t.r?"evenodd":"nonzero";return this.stylesList.push(r),i.style=r,i},CVShapeElement.prototype.createGroupElement=function(t){return{it:[],prevViewData:[]}},CVShapeElement.prototype.createTransformElement=function(t){return{transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,t.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,t,this)}}},CVShapeElement.prototype.createShapeElement=function(t){var e=new CVShapeData(this,t,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var t,e=this.itemsData.length;for(t=0;t<e;t+=1)this.prevViewData[t]=this.itemsData[t];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[]),e=this.dynamicProperties.length,t=0;t<e;t+=1)this.dynamicProperties[t].getValue();this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame)},CVShapeElement.prototype.addTransformToStyleList=function(t){var e,r=this.stylesList.length;for(e=0;e<r;e+=1)this.stylesList[e].closed||this.stylesList[e].transforms.push(t)},CVShapeElement.prototype.removeTransformFromStyleList=function(){var t,e=this.stylesList.length;for(t=0;t<e;t+=1)this.stylesList[t].closed||this.stylesList[t].transforms.pop()},CVShapeElement.prototype.closeStyles=function(t){var e,r=t.length;for(e=0;e<r;e+=1)t[e].closed=!0},CVShapeElement.prototype.searchShapes=function(t,e,r,i,s){var a,n,o,h,l,p,m=t.length-1,f=[],c=[],d=[].concat(s);for(a=m;0<=a;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=r[h-1]:t[a]._shouldRender=i,"fl"==t[a].ty||"st"==t[a].ty||"gf"==t[a].ty||"gs"==t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],d),f.push(e[a].style);else if("gr"==t[a].ty){if(h)for(o=e[a].it.length,n=0;n<o;n+=1)e[a].prevViewData[n]=e[a].it[n];else e[a]=this.createGroupElement(t[a]);this.searchShapes(t[a].it,e[a].it,e[a].prevViewData,i,d)}else"tr"==t[a].ty?(h||(p=this.createTransformElement(t[a]),e[a]=p),d.push(e[a]),this.addTransformToStyleList(e[a])):"sh"==t[a].ty||"rc"==t[a].ty||"el"==t[a].ty||"sr"==t[a].ty?h||(e[a]=this.createShapeElement(t[a])):"tm"==t[a].ty||"rd"==t[a].ty?(h?(l=e[a]).closed=!1:((l=ShapeModifiers.getModifier(t[a].ty)).init(this,t[a]),e[a]=l,this.shapeModifiers.push(l)),c.push(l)):"rp"==t[a].ty&&(h?(l=e[a]).closed=!0:(l=ShapeModifiers.getModifier(t[a].ty),(e[a]=l).init(this,t,a,e),this.shapeModifiers.push(l),i=!1),c.push(l));this.addProcessedElement(t[a],a+1)}for(this.removeTransformFromStyleList(),this.closeStyles(f),m=c.length,a=0;a<m;a+=1)c[a].closed=!0},CVShapeElement.prototype.renderInnerContent=function(){this.transformHelper.opacity=1,this.transformHelper._opMdf=!1,this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame),this.renderShape(this.transformHelper,this.shapesData,this.itemsData,!0)},CVShapeElement.prototype.renderShapeTransform=function(t,e){(t._opMdf||e.op._mdf||this._isFirstFrame)&&(e.opacity=t.opacity,e.opacity*=e.op.v,e._opMdf=!0)},CVShapeElement.prototype.drawLayer=function(){var t,e,r,i,s,a,n,o,h,l=this.stylesList.length,p=this.globalData.renderer,m=this.globalData.canvasContext;for(t=0;t<l;t+=1)if(("st"!==(o=(h=this.stylesList[t]).type)&&"gs"!==o||0!==h.wi)&&h.data._shouldRender&&0!==h.coOp&&0!==this.globalData.currentGlobalAlpha){for(p.save(),a=h.elements,"st"===o||"gs"===o?(m.strokeStyle="st"===o?h.co:h.grd,m.lineWidth=h.wi,m.lineCap=h.lc,m.lineJoin=h.lj,m.miterLimit=h.ml||0):m.fillStyle="fl"===o?h.co:h.grd,p.ctxOpacity(h.coOp),"st"!==o&&"gs"!==o&&m.beginPath(),p.ctxTransform(h.preTransforms.finalTransform.props),r=a.length,e=0;e<r;e+=1){for("st"!==o&&"gs"!==o||(m.beginPath(),h.da&&(m.setLineDash(h.da),m.lineDashOffset=h.do)),s=(n=a[e].trNodes).length,i=0;i<s;i+=1)"m"==n[i].t?m.moveTo(n[i].p[0],n[i].p[1]):"c"==n[i].t?m.bezierCurveTo(n[i].pts[0],n[i].pts[1],n[i].pts[2],n[i].pts[3],n[i].pts[4],n[i].pts[5]):m.closePath();"st"!==o&&"gs"!==o||(m.stroke(),h.da&&m.setLineDash(this.dashResetter))}"st"!==o&&"gs"!==o&&m.fill(h.r),p.restore()}},CVShapeElement.prototype.renderShape=function(t,e,r,i){var s,a;for(a=t,s=e.length-1;0<=s;s-=1)"tr"==e[s].ty?(a=r[s].transform,this.renderShapeTransform(t,a)):"sh"==e[s].ty||"el"==e[s].ty||"rc"==e[s].ty||"sr"==e[s].ty?this.renderPath(e[s],r[s]):"fl"==e[s].ty?this.renderFill(e[s],r[s],a):"st"==e[s].ty?this.renderStroke(e[s],r[s],a):"gf"==e[s].ty||"gs"==e[s].ty?this.renderGradientFill(e[s],r[s],a):"gr"==e[s].ty?this.renderShape(a,e[s].it,r[s].it):e[s].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s<o;s+=1){var l=n.shapes[s];if(l&&l.v){for(i=l._length,r=1;r<i;r+=1)1===r&&a.push({t:"m",p:h.applyToPointArray(l.v[0][0],l.v[0][1],0)}),a.push({t:"c",pts:h.applyToTriplePoints(l.o[r-1],l.i[r],l.v[r])});1===i&&a.push({t:"m",p:h.applyToPointArray(l.v[0][0],l.v[0][1],0)}),l.c&&i&&(a.push({t:"c",pts:h.applyToTriplePoints(l.o[r-1],l.i[0],l.v[0])}),a.push({t:"z"}))}}t.trNodes=a}},CVShapeElement.prototype.renderPath=function(t,e){if(!0!==t.hd&&t._shouldRender){var r,i=e.styledShapes.length;for(r=0;r<i;r+=1)this.renderStyledShape(e.styledShapes[r],e.sh)}},CVShapeElement.prototype.renderFill=function(t,e,r){var i=e.style;(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity)},CVShapeElement.prototype.renderGradientFill=function(t,e,r){var i=e.style;if(!i.grd||e.g._mdf||e.s._mdf||e.e._mdf||1!==t.t&&(e.h._mdf||e.a._mdf)){var s=this.globalData.canvasContext,a=e.s.v,n=e.e.v;if(1===t.t)f=s.createLinearGradient(a[0],a[1],n[0],n[1]);else var o=Math.sqrt(Math.pow(a[0]-n[0],2)+Math.pow(a[1]-n[1],2)),h=Math.atan2(n[1]-a[1],n[0]-a[0]),l=o*(1<=e.h.v?.99:e.h.v<=-1?-.99:e.h.v),p=Math.cos(h+e.a.v)*l+a[0],m=Math.sin(h+e.a.v)*l+a[1],f=s.createRadialGradient(p,m,0,a[0],a[1],o);var c,d=t.g.p,u=e.g.c,y=1;for(c=0;c<d;c+=1)e.g._hasOpacity&&e.g._collapsable&&(y=e.g.o[2*c+1]),f.addColorStop(u[4*c]/100,"rgba("+u[4*c+1]+","+u[4*c+2]+","+u[4*c+3]+","+y+")");i.grd=f}i.coOp=e.o.v*r.opacity},CVShapeElement.prototype.renderStroke=function(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||this._isFirstFrame)&&(i.da=s.dashArray,i.do=s.dashoffset[0]),(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bm_floor(e.c.v[0])+","+bm_floor(e.c.v[1])+","+bm_floor(e.c.v[2])+")"),(e.o._mdf||r._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*r.opacity),(e.w._mdf||this._isFirstFrame)&&(i.wi=e.w.v)},CVShapeElement.prototype.destroy=function(){this.shapesData=null,this.globalData=null,this.canvasContext=null,this.stylesList.length=0,this.itemsData.length=0},extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVSolidElement),CVSolidElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVSolidElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVSolidElement.prototype.renderInnerContent=function(){var t=this.canvasContext;t.fillStyle=this.data.sc,t.fillRect(0,0,this.data.sw,this.data.sh)},extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement],CVTextElement),CVTextElement.prototype.tHelper=createTag("canvas").getContext("2d"),CVTextElement.prototype.buildNewText=function(){var t=this.textProperty.currentData;this.renderedLetters=createSizedArray(t.l?t.l.length:0);var e=!1;t.fc?(e=!0,this.values.fill=this.buildColor(t.fc)):this.values.fill="rgba(0,0,0,0)",this.fill=e;var r=!1;t.sc&&(r=!0,this.values.stroke=this.buildColor(t.sc),this.values.sWidth=t.sw);var i,s,a=this.globalData.fontManager.getFontByName(t.f),n=t.l,o=this.mHelper;this.stroke=r,this.values.fValue=t.finalSize+"px "+this.globalData.fontManager.getFontByName(t.f).fFamily,s=t.finalText.length;var h,l,p,m,f,c,d,u,y,g,v=this.data.singleShape,b=t.tr/1e3*t.finalSize,E=0,x=0,S=!0,P=0;for(i=0;i<s;i+=1){for(l=(h=this.globalData.fontManager.getCharData(t.finalText[i],a.fStyle,this.globalData.fontManager.getFontByName(t.f).fFamily))&&h.data||{},o.reset(),v&&n[i].n&&(E=-b,x+=t.yOffset,x+=S?1:0,S=!1),d=(f=l.shapes?l.shapes[0].it:[]).length,o.scale(t.finalSize/100,t.finalSize/100),v&&this.applyTextPropertiesToMatrix(t,o,n[i].line,E,x),y=createSizedArray(d),c=0;c<d;c+=1){for(m=f[c].ks.k.i.length,u=f[c].ks.k,g=[],p=1;p<m;p+=1)1==p&&g.push(o.applyToX(u.v[0][0],u.v[0][1],0),o.applyToY(u.v[0][0],u.v[0][1],0)),g.push(o.applyToX(u.o[p-1][0],u.o[p-1][1],0),o.applyToY(u.o[p-1][0],u.o[p-1][1],0),o.applyToX(u.i[p][0],u.i[p][1],0),o.applyToY(u.i[p][0],u.i[p][1],0),o.applyToX(u.v[p][0],u.v[p][1],0),o.applyToY(u.v[p][0],u.v[p][1],0));g.push(o.applyToX(u.o[p-1][0],u.o[p-1][1],0),o.applyToY(u.o[p-1][0],u.o[p-1][1],0),o.applyToX(u.i[0][0],u.i[0][1],0),o.applyToY(u.i[0][0],u.i[0][1],0),o.applyToX(u.v[0][0],u.v[0][1],0),o.applyToY(u.v[0][0],u.v[0][1],0)),y[c]=g}v&&(E+=n[i].l,E+=b),this.textSpans[P]?this.textSpans[P].elem=y:this.textSpans[P]={elem:y},P+=1}},CVTextElement.prototype.renderInnerContent=function(){var t,e,r,i,s,a,n=this.canvasContext;this.finalTransform.mat.props;n.font=this.values.fValue,n.lineCap="butt",n.lineJoin="miter",n.miterLimit=4,this.data.singleShape||this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag);var o,h=this.textAnimator.renderedLetters,l=this.textProperty.currentData.l;e=l.length;var p,m,f=null,c=null,d=null;for(t=0;t<e;t+=1)if(!l[t].n){if((o=h[t])&&(this.globalData.renderer.save(),this.globalData.renderer.ctxTransform(o.p),this.globalData.renderer.ctxOpacity(o.o)),this.fill){for(o&&o.fc?f!==o.fc&&(f=o.fc,n.fillStyle=o.fc):f!==this.values.fill&&(f=this.values.fill,n.fillStyle=this.values.fill),i=(p=this.textSpans[t].elem).length,this.globalData.canvasContext.beginPath(),r=0;r<i;r+=1)for(a=(m=p[r]).length,this.globalData.canvasContext.moveTo(m[0],m[1]),s=2;s<a;s+=6)this.globalData.canvasContext.bezierCurveTo(m[s],m[s+1],m[s+2],m[s+3],m[s+4],m[s+5]);this.globalData.canvasContext.closePath(),this.globalData.canvasContext.fill()}if(this.stroke){for(o&&o.sw?d!==o.sw&&(d=o.sw,n.lineWidth=o.sw):d!==this.values.sWidth&&(d=this.values.sWidth,n.lineWidth=this.values.sWidth),o&&o.sc?c!==o.sc&&(c=o.sc,n.strokeStyle=o.sc):c!==this.values.stroke&&(c=this.values.stroke,n.strokeStyle=this.values.stroke),i=(p=this.textSpans[t].elem).length,this.globalData.canvasContext.beginPath(),r=0;r<i;r+=1)for(a=(m=p[r]).length,this.globalData.canvasContext.moveTo(m[0],m[1]),s=2;s<a;s+=6)this.globalData.canvasContext.bezierCurveTo(m[s],m[s+1],m[s+2],m[s+3],m[s+4],m[s+5]);this.globalData.canvasContext.closePath(),this.globalData.canvasContext.stroke()}o&&this.globalData.renderer.restore()}},CVEffects.prototype.renderFrame=function(){},HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),0!==this.data.bm&&this.setBlendMode()},renderElement:function(){this.finalTransform._matMdf&&(this.transformedElement.style.transform=this.transformedElement.style.webkitTransform=this.finalTransform.mat.toCSS()),this.finalTransform._opMdf&&(this.transformedElement.style.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=HybridRenderer.prototype.buildElementParenting,extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var t;this.data.hasMask?((t=createNS("rect")).setAttribute("width",this.data.sw),t.setAttribute("height",this.data.sh),t.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):((t=createTag("div")).style.width=this.data.sw+"px",t.style.height=this.data.sh+"px",t.style.backgroundColor=this.data.sc),this.layerElement.appendChild(t)},extendPrototype([HybridRenderer,ICompElement,HBaseElement],HCompElement),HCompElement.prototype._createBaseContainerElements=HCompElement.prototype.createContainerElements,HCompElement.prototype.createContainerElements=function(){this._createBaseContainerElements(),this.data.hasMask?(this.svgElement.setAttribute("width",this.data.w),this.svgElement.setAttribute("height",this.data.h),this.transformedElement=this.baseElement):this.transformedElement=this.layerElement},HCompElement.prototype.addTo3dContainer=function(t,e){for(var r,i=0;i<e;)this.elements[i]&&this.elements[i].getBaseElement&&(r=this.elements[i].getBaseElement()),i+=1;r?this.layerElement.insertBefore(t,r):this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var t;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),t=this.svgElement;else{t=createNS("svg");var e=this.comp.data?this.comp.data:this.globalData.compSize;t.setAttribute("width",e.w),t.setAttribute("height",e.h),t.appendChild(this.shapesContainer),this.layerElement.appendChild(t)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=t},HShapeElement.prototype.getTransformedPoint=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)e=t[r].mProps.v.applyToPointArray(e[0],e[1],0);return e},HShapeElement.prototype.calculateShapeBoundingBox=function(t,e){var r,i,s,a,n,o=t.sh.v,h=t.transformers,l=o._length;if(!(l<=1)){for(r=0;r<l-1;r+=1)i=this.getTransformedPoint(h,o.v[r]),s=this.getTransformedPoint(h,o.o[r]),a=this.getTransformedPoint(h,o.i[r+1]),n=this.getTransformedPoint(h,o.v[r+1]),this.checkBounds(i,s,a,n,e);o.c&&(i=this.getTransformedPoint(h,o.v[r]),s=this.getTransformedPoint(h,o.o[r]),a=this.getTransformedPoint(h,o.i[0]),n=this.getTransformedPoint(h,o.v[0]),this.checkBounds(i,s,a,n,e))}},HShapeElement.prototype.checkBounds=function(t,e,r,i,s){this.getBoundsOfCurve(t,e,r,i);var a=this.shapeBoundingBox;s.x=bm_min(a.left,s.x),s.xMax=bm_max(a.right,s.xMax),s.y=bm_min(a.top,s.y),s.yMax=bm_max(a.bottom,s.yMax)},HShapeElement.prototype.shapeBoundingBox={left:0,right:0,top:0,bottom:0},HShapeElement.prototype.tempBoundingBox={x:0,xMax:0,y:0,yMax:0,width:0,height:0},HShapeElement.prototype.getBoundsOfCurve=function(t,e,r,i){for(var s,a,n,o,h,l,p,m=[[t[0],i[0]],[t[1],i[1]]],f=0;f<2;++f)if(a=6*t[f]-12*e[f]+6*r[f],s=-3*t[f]+9*e[f]-9*r[f]+3*i[f],n=3*e[f]-3*t[f],a|=0,n|=0,0!==(s|=0))(h=a*a-4*n*s)<0||(0<(l=(-a+bm_sqrt(h))/(2*s))&&l<1&&m[f].push(this.calculateF(l,t,e,r,i,f)),0<(p=(-a-bm_sqrt(h))/(2*s))&&p<1&&m[f].push(this.calculateF(p,t,e,r,i,f)));else{if(0===a)continue;0<(o=-n/a)&&o<1&&m[f].push(this.calculateF(o,t,e,r,i,f))}this.shapeBoundingBox.left=bm_min.apply(null,m[0]),this.shapeBoundingBox.top=bm_min.apply(null,m[1]),this.shapeBoundingBox.right=bm_max.apply(null,m[0]),this.shapeBoundingBox.bottom=bm_max.apply(null,m[1])},HShapeElement.prototype.calculateF=function(t,e,r,i,s,a){return bm_pow(1-t,3)*e[a]+3*bm_pow(1-t,2)*t*r[a]+3*(1-t)*bm_pow(t,2)*i[a]+bm_pow(t,3)*s[a]},HShapeElement.prototype.calculateBoundingBox=function(t,e){var r,i=t.length;for(r=0;r<i;r+=1)t[r]&&t[r].sh?this.calculateShapeBoundingBox(t[r],e):t[r]&&t[r].it&&this.calculateBoundingBox(t[r].it,e)},HShapeElement.prototype.currentBoxContains=function(t){return this.currentBBox.x<=t.x&&this.currentBBox.y<=t.y&&this.currentBBox.width+this.currentBBox.x>=t.x+t.width&&this.currentBBox.height+this.currentBBox.y>=t.y+t.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var t=this.tempBoundingBox,e=999999;if(t.x=e,t.xMax=-e,t.y=e,t.yMax=-e,this.calculateBoundingBox(this.itemsData,t),t.width=t.xMax<t.x?0:t.xMax-t.x,t.height=t.yMax<t.y?0:t.yMax-t.y,this.currentBoxContains(t))return;var r=!1;this.currentBBox.w!==t.width&&(this.currentBBox.w=t.width,this.shapeCont.setAttribute("width",t.width),r=!0),this.currentBBox.h!==t.height&&(this.currentBBox.h=t.height,this.shapeCont.setAttribute("height",t.height),r=!0),(r||this.currentBBox.x!==t.x||this.currentBBox.y!==t.y)&&(this.currentBBox.w=t.width,this.currentBBox.h=t.height,this.currentBBox.x=t.x,this.currentBBox.y=t.y,this.shapeCont.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h),this.shapeCont.style.transform=this.shapeCont.style.webkitTransform="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)")}},extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],HTextElement),HTextElement.prototype.createContent=function(){if(this.isMasked=this.checkMasks(),this.isMasked){this.renderType="svg",this.compW=this.comp.data.w,this.compH=this.comp.data.h,this.svgElement.setAttribute("width",this.compW),this.svgElement.setAttribute("height",this.compH);var t=createNS("g");this.maskedElement.appendChild(t),this.innerElem=t}else this.renderType="html",this.innerElem=this.layerElement;this.checkParenting()},HTextElement.prototype.buildNewText=function(){var t=this.textProperty.currentData;this.renderedLetters=createSizedArray(t.l?t.l.length:0);var e=this.innerElem.style;e.color=e.fill=t.fc?this.buildColor(t.fc):"rgba(0,0,0,0)",t.sc&&(e.stroke=this.buildColor(t.sc),e.strokeWidth=t.sw+"px");var r,i,s=this.globalData.fontManager.getFontByName(t.f);if(!this.globalData.fontManager.chars)if(e.fontSize=t.finalSize+"px",e.lineHeight=t.finalSize+"px",s.fClass)this.innerElem.className=s.fClass;else{e.fontFamily=s.fFamily;var a=t.fWeight,n=t.fStyle;e.fontStyle=n,e.fontWeight=a}var o,h,l,p=t.l;i=p.length;var m,f=this.mHelper,c="",d=0;for(r=0;r<i;r+=1){if(this.globalData.fontManager.chars?(this.textPaths[d]?o=this.textPaths[d]:((o=createNS("path")).setAttribute("stroke-linecap","butt"),o.setAttribute("stroke-linejoin","round"),o.setAttribute("stroke-miterlimit","4")),this.isMasked||(this.textSpans[d]?l=(h=this.textSpans[d]).children[0]:((h=createTag("div")).style.lineHeight=0,(l=createNS("svg")).appendChild(o),styleDiv(h)))):this.isMasked?o=this.textPaths[d]?this.textPaths[d]:createNS("text"):this.textSpans[d]?(h=this.textSpans[d],o=this.textPaths[d]):(styleDiv(h=createTag("span")),styleDiv(o=createTag("span")),h.appendChild(o)),this.globalData.fontManager.chars){var u,y=this.globalData.fontManager.getCharData(t.finalText[r],s.fStyle,this.globalData.fontManager.getFontByName(t.f).fFamily);if(u=y?y.data:null,f.reset(),u&&u.shapes&&(m=u.shapes[0].it,f.scale(t.finalSize/100,t.finalSize/100),c=this.createPathShape(f,m),o.setAttribute("d",c)),this.isMasked)this.innerElem.appendChild(o);else{if(this.innerElem.appendChild(h),u&&u.shapes){document.body.appendChild(l);var g=l.getBBox();l.setAttribute("width",g.width+2),l.setAttribute("height",g.height+2),l.setAttribute("viewBox",g.x-1+" "+(g.y-1)+" "+(g.width+2)+" "+(g.height+2)),l.style.transform=l.style.webkitTransform="translate("+(g.x-1)+"px,"+(g.y-1)+"px)",p[r].yOffset=g.y-1}else l.setAttribute("width",1),l.setAttribute("height",1);h.appendChild(l)}}else o.textContent=p[r].val,o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),this.isMasked?this.innerElem.appendChild(o):(this.innerElem.appendChild(h),o.style.transform=o.style.webkitTransform="translate3d(0,"+-t.finalSize/1.2+"px,0)");this.isMasked?this.textSpans[d]=o:this.textSpans[d]=h,this.textSpans[d].style.display="block",this.textPaths[d]=o,d+=1}for(;d<this.textSpans.length;)this.textSpans[d].style.display="none",d+=1},HTextElement.prototype.renderInnerContent=function(){if(this.data.singleShape){if(!this._isFirstFrame&&!this.lettersChangedFlag)return;this.isMasked&&this.finalTransform._matMdf&&(this.svgElement.setAttribute("viewBox",-this.finalTransform.mProp.p.v[0]+" "+-this.finalTransform.mProp.p.v[1]+" "+this.compW+" "+this.compH),this.svgElement.style.transform=this.svgElement.style.webkitTransform="translate("+-this.finalTransform.mProp.p.v[0]+"px,"+-this.finalTransform.mProp.p.v[1]+"px)")}if(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag){var t,e,r,i,s,a=0,n=this.textAnimator.renderedLetters,o=this.textProperty.currentData.l;for(e=o.length,t=0;t<e;t+=1)o[t].n?a+=1:(i=this.textSpans[t],s=this.textPaths[t],r=n[a],a+=1,r._mdf.m&&(this.isMasked?i.setAttribute("transform",r.m):i.style.transform=i.style.webkitTransform=r.m),i.style.opacity=r.o,r.sw&&r._mdf.sw&&s.setAttribute("stroke-width",r.sw),r.sc&&r._mdf.sc&&s.setAttribute("stroke",r.sc),r.fc&&r._mdf.fc&&(s.setAttribute("fill",r.fc),s.style.color=r.fc));if(this.innerElem.getBBox&&!this.hidden&&(this._isFirstFrame||this._mdf)){var h=this.innerElem.getBBox();this.currentBBox.w!==h.width&&(this.currentBBox.w=h.width,this.svgElement.setAttribute("width",h.width)),this.currentBBox.h!==h.height&&(this.currentBBox.h=h.height,this.svgElement.setAttribute("height",h.height));this.currentBBox.w===h.width+2&&this.currentBBox.h===h.height+2&&this.currentBBox.x===h.x-1&&this.currentBBox.y===h.y-1||(this.currentBBox.w=h.width+2,this.currentBBox.h=h.height+2,this.currentBBox.x=h.x-1,this.currentBBox.y=h.y-1,this.svgElement.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h),this.svgElement.style.transform=this.svgElement.style.webkitTransform="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)")}}},extendPrototype([BaseElement,TransformElement,HBaseElement,HSolidElement,HierarchyElement,FrameElement,RenderableElement],HImageElement),HImageElement.prototype.createContent=function(){var t=this.globalData.getAssetsPath(this.assetData),e=new Image;this.data.hasMask?(this.imageElem=createNS("image"),this.imageElem.setAttribute("width",this.assetData.w+"px"),this.imageElem.setAttribute("height",this.assetData.h+"px"),this.imageElem.setAttributeNS("http://www.w3.org/1999/xlink","href",t),this.layerElement.appendChild(this.imageElem),this.baseElement.setAttribute("width",this.assetData.w),this.baseElement.setAttribute("height",this.assetData.h)):this.layerElement.appendChild(e),e.src=t,this.data.ln&&this.baseElement.setAttribute("id",this.data.ln)},extendPrototype([BaseElement,FrameElement,HierarchyElement],HCameraElement),HCameraElement.prototype.setup=function(){var t,e,r=this.comp.threeDElements.length;for(t=0;t<r;t+=1)"3d"===(e=this.comp.threeDElements[t]).type&&(e.perspectiveElem.style.perspective=e.perspectiveElem.style.webkitPerspective=this.pe.v+"px",e.container.style.transformOrigin=e.container.style.mozTransformOrigin=e.container.style.webkitTransformOrigin="0px 0px 0px",e.perspectiveElem.style.transform=e.perspectiveElem.style.webkitTransform="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)")},HCameraElement.prototype.createElements=function(){},HCameraElement.prototype.hide=function(){},HCameraElement.prototype.renderFrame=function(){var t,e,r=this._isFirstFrame;if(this.hierarchy)for(e=this.hierarchy.length,t=0;t<e;t+=1)r=this.hierarchy[t].finalTransform.mProp._mdf||r;if(r||this.pe._mdf||this.p&&this.p._mdf||this.px&&(this.px._mdf||this.py._mdf||this.pz._mdf)||this.rx._mdf||this.ry._mdf||this.rz._mdf||this.or._mdf||this.a&&this.a._mdf){if(this.mat.reset(),this.hierarchy)for(t=e=this.hierarchy.length-1;0<=t;t-=1){var i=this.hierarchy[t].finalTransform.mProp;this.mat.translate(-i.p.v[0],-i.p.v[1],i.p.v[2]),this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]),this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v),this.mat.scale(1/i.s.v[0],1/i.s.v[1],1/i.s.v[2]),this.mat.translate(i.a.v[0],i.a.v[1],i.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var s;s=this.p?[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var a=Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2)),n=[s[0]/a,s[1]/a,s[2]/a],o=Math.sqrt(n[2]*n[2]+n[0]*n[0]),h=Math.atan2(n[1],o),l=Math.atan2(n[0],-n[2]);this.mat.rotateY(l).rotateX(-h)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var p=!this._prevMat.equals(this.mat);if((p||this.pe._mdf)&&this.comp.threeDElements){var m;for(e=this.comp.threeDElements.length,t=0;t<e;t+=1)"3d"===(m=this.comp.threeDElements[t]).type&&(p&&(m.container.style.transform=m.container.style.webkitTransform=this.mat.toCSS()),this.pe._mdf&&(m.perspectiveElem.style.perspective=m.perspectiveElem.style.webkitPerspective=this.pe.v+"px"));this.mat.clone(this._prevMat)}}this._isFirstFrame=!1},HCameraElement.prototype.prepareFrame=function(t){this.prepareProperties(t,!0)},HCameraElement.prototype.destroy=function(){},HCameraElement.prototype.getBaseElement=function(){return null},HEffects.prototype.renderFrame=function(){};var animationManager=function(){var t={},s=[],i=0,a=0,n=0,o=!0,h=!1;function r(t){for(var e=0,r=t.target;e<a;)s[e].animation===r&&(s.splice(e,1),e-=1,a-=1,r.isPaused||m()),e+=1}function l(t,e){if(!t)return null;for(var r=0;r<a;){if(s[r].elem==t&&null!==s[r].elem)return s[r].animation;r+=1}var i=new AnimationItem;return f(i,t),i.setData(t,e),i}function p(){n+=1,d()}function m(){n-=1}function f(t,e){t.addEventListener("destroy",r),t.addEventListener("_active",p),t.addEventListener("_idle",m),s.push({elem:e,animation:t}),a+=1}function c(t){var e,r=t-i;for(e=0;e<a;e+=1)s[e].animation.advanceTime(r);i=t,n&&!h?window.requestAnimationFrame(c):o=!0}function e(t){i=t,window.requestAnimationFrame(c)}function d(){!h&&n&&o&&(window.requestAnimationFrame(e),o=!1)}return t.registerAnimation=l,t.loadAnimation=function(t){var e=new AnimationItem;return f(e,null),e.setParams(t),e},t.setSpeed=function(t,e){var r;for(r=0;r<a;r+=1)s[r].animation.setSpeed(t,e)},t.setDirection=function(t,e){var r;for(r=0;r<a;r+=1)s[r].animation.setDirection(t,e)},t.play=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.play(t)},t.pause=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.pause(t)},t.stop=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.stop(t)},t.togglePause=function(t){var e;for(e=0;e<a;e+=1)s[e].animation.togglePause(t)},t.searchAnimations=function(t,e,r){var i,s=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),a=s.length;for(i=0;i<a;i+=1)r&&s[i].setAttribute("data-bm-type",r),l(s[i],t);if(e&&0===a){r||(r="svg");var n=document.getElementsByTagName("body")[0];n.innerHTML="";var o=createTag("div");o.style.width="100%",o.style.height="100%",o.setAttribute("data-bm-type",r),n.appendChild(o),l(o,t)}},t.resize=function(){var t;for(t=0;t<a;t+=1)s[t].animation.resize()},t.goToAndStop=function(t,e,r){var i;for(i=0;i<a;i+=1)s[i].animation.goToAndStop(t,e,r)},t.destroy=function(t){var e;for(e=a-1;0<=e;e-=1)s[e].animation.destroy(t)},t.freeze=function(){h=!0},t.unfreeze=function(){h=!1,d()},t.getRegisteredAnimations=function(){var t,e=s.length,r=[];for(t=0;t<e;t+=1)r.push(s[t].animation);return r},t}(),AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.firstFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.subframeEnabled=subframeEnabled,this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(t){t.context&&(this.context=t.context),(t.wrapper||t.container)&&(this.wrapper=t.wrapper||t.container);var e=t.animType?t.animType:t.renderer?t.renderer:"svg";switch(e){case"canvas":this.renderer=new CanvasRenderer(this,t.rendererSettings);break;case"svg":this.renderer=new SVGRenderer(this,t.rendererSettings);break;default:this.renderer=new HybridRenderer(this,t.rendererSettings)}this.renderer.setProjectInterface(this.projectInterface),this.animType=e,""===t.loop||null===t.loop||(!1===t.loop?this.loop=!1:!0===t.loop?this.loop=!0:this.loop=parseInt(t.loop)),this.autoplay=!("autoplay"in t)||t.autoplay,this.name=t.name?t.name:"",this.autoloadSegments=!t.hasOwnProperty("autoloadSegments")||t.autoloadSegments,this.assetsPath=t.assetsPath,this.initialSegment=t.initialSegment,t.animationData?this.configAnimation(t.animationData):t.path&&(-1!==t.path.lastIndexOf("\\")?this.path=t.path.substr(0,t.path.lastIndexOf("\\")+1):this.path=t.path.substr(0,t.path.lastIndexOf("/")+1),this.fileName=t.path.substr(t.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),assetLoader.load(t.path,this.configAnimation.bind(this),function(){this.trigger("data_failed")}.bind(this)))},AnimationItem.prototype.setData=function(t,e){var r={wrapper:t,animationData:e?"object"==typeof e?e:JSON.parse(e):null},i=t.attributes;r.path=i.getNamedItem("data-animation-path")?i.getNamedItem("data-animation-path").value:i.getNamedItem("data-bm-path")?i.getNamedItem("data-bm-path").value:i.getNamedItem("bm-path")?i.getNamedItem("bm-path").value:"",r.animType=i.getNamedItem("data-anim-type")?i.getNamedItem("data-anim-type").value:i.getNamedItem("data-bm-type")?i.getNamedItem("data-bm-type").value:i.getNamedItem("bm-type")?i.getNamedItem("bm-type").value:i.getNamedItem("data-bm-renderer")?i.getNamedItem("data-bm-renderer").value:i.getNamedItem("bm-renderer")?i.getNamedItem("bm-renderer").value:"canvas";var s=i.getNamedItem("data-anim-loop")?i.getNamedItem("data-anim-loop").value:i.getNamedItem("data-bm-loop")?i.getNamedItem("data-bm-loop").value:i.getNamedItem("bm-loop")?i.getNamedItem("bm-loop").value:"";""===s||(r.loop="false"!==s&&("true"===s||parseInt(s)));var a=i.getNamedItem("data-anim-autoplay")?i.getNamedItem("data-anim-autoplay").value:i.getNamedItem("data-bm-autoplay")?i.getNamedItem("data-bm-autoplay").value:!i.getNamedItem("bm-autoplay")||i.getNamedItem("bm-autoplay").value;r.autoplay="false"!==a,r.name=i.getNamedItem("data-name")?i.getNamedItem("data-name").value:i.getNamedItem("data-bm-name")?i.getNamedItem("data-bm-name").value:i.getNamedItem("bm-name")?i.getNamedItem("bm-name").value:"","false"===(i.getNamedItem("data-anim-prerender")?i.getNamedItem("data-anim-prerender").value:i.getNamedItem("data-bm-prerender")?i.getNamedItem("data-bm-prerender").value:i.getNamedItem("bm-prerender")?i.getNamedItem("bm-prerender").value:"")&&(r.prerender=!1),this.setParams(r)},AnimationItem.prototype.includeLayers=function(t){t.op>this.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;r<n;r+=1)for(e=0;e<s;){if(i[e].id==a[r].id){i[e]=a[r];break}e+=1}if((t.chars||t.fonts)&&(this.renderer.globalData.fontManager.addChars(t.chars),this.renderer.globalData.fontManager.addFonts(t.fonts,this.renderer.globalData.defs)),t.assets)for(s=t.assets.length,e=0;e<s;e+=1)this.animationData.assets.push(t.assets[e]);this.animationData.__complete=!1,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),this.renderer.includeLayers(t.layers),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.loadNextSegment()},AnimationItem.prototype.loadNextSegment=function(){var t=this.animationData.segments;if(!t||0===t.length||!this.autoloadSegments)return this.trigger("data_ready"),void(this.timeCompleted=this.totalFrames);var e=t.shift();this.timeCompleted=e.time*this.frameRate;var r=this.path+this.fileName+"_"+this.segmentPos+".json";this.segmentPos+=1,assetLoader.load(r,this.includeLayers.bind(this),function(){this.trigger("data_failed")}.bind(this))},AnimationItem.prototype.loadSegments=function(){this.animationData.segments||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},AnimationItem.prototype.imagesLoaded=function(){this.trigger("loaded_images"),this.checkLoaded()},AnimationItem.prototype.preloadImages=function(){this.imagePreloader.setAssetsPath(this.assetsPath),this.imagePreloader.setPath(this.path),this.imagePreloader.loadAssets(this.animationData.assets,this.imagesLoaded.bind(this))},AnimationItem.prototype.configAnimation=function(t){if(this.renderer)try{this.animationData=t,this.initialSegment?(this.totalFrames=Math.floor(this.initialSegment[1]-this.initialSegment[0]),this.firstFrame=Math.round(this.initialSegment[0])):(this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.firstFrame=Math.round(this.animationData.ip)),this.renderer.configAnimation(t),t.assets||(t.assets=[]),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.frameMult=this.animationData.fr/1e3,this.renderer.searchExtraCompositions(t.assets),this.trigger("config_ready"),this.preloadImages(),this.loadSegments(),this.updaFrameModifier(),this.waitForFontsLoaded()}catch(t){this.triggerConfigError(t)}},AnimationItem.prototype.waitForFontsLoaded=function(){this.renderer&&(this.renderer.globalData.fontManager.loaded()?this.checkLoaded():setTimeout(this.waitForFontsLoaded.bind(this),20))},AnimationItem.prototype.checkLoaded=function(){this.isLoaded||!this.renderer.globalData.fontManager.loaded()||!this.imagePreloader.loaded()&&"canvas"===this.renderer.rendererType||(this.isLoaded=!0,dataManager.completeData(this.animationData,this.renderer.globalData.fontManager),expressionsPlugin&&expressionsPlugin.initExpressions(this),this.renderer.initItems(),setTimeout(function(){this.trigger("DOMLoaded")}.bind(this),0),this.gotoFrame(),this.autoplay&&this.play())},AnimationItem.prototype.resize=function(){this.renderer.updateContainerSize()},AnimationItem.prototype.setSubframe=function(t){this.subframeEnabled=!!t},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=this.subframeEnabled?this.currentRawFrame:~~this.currentRawFrame,this.timeCompleted!==this.totalFrames&&this.currentFrame>this.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame()},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(t){this.triggerRenderFrameError(t)}},AnimationItem.prototype.play=function(t){t&&this.name!=t||!0===this.isPaused&&(this.isPaused=!1,this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(t){t&&this.name!=t||!1===this.isPaused&&(this.isPaused=!0,this._idle=!0,this.trigger("_idle"))},AnimationItem.prototype.togglePause=function(t){t&&this.name!=t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!=t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.goToAndStop=function(t,e,r){r&&this.name!=r||(e?this.setCurrentRawFrameValue(t):this.setCurrentRawFrameValue(t*this.frameModifier),this.pause())},AnimationItem.prototype.goToAndPlay=function(t,e,r){this.goToAndStop(t,e,r),this.play()},AnimationItem.prototype.advanceTime=function(t){if(!0!==this.isPaused&&!1!==this.isLoaded){var e=this.currentRawFrame+t*this.frameModifier,r=!1;e>=this.totalFrames-1&&0<this.frameModifier?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]<t[0]?(0<this.frameModifier&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.timeCompleted=this.totalFrames=t[0]-t[1],this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.timeCompleted=this.totalFrames=t[1]-t[0],this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFrame<t?r=t:this.currentRawFrame+this.firstFrame>e&&(r=e-t)),this.firstFrame=t,this.timeCompleted=this.totalFrames=e-t,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),"object"==typeof t[0]){var r,i=t.length;for(r=0;r<i;r+=1)this.segments.push(t[r])}else this.segments.push(t);this.segments.length&&e&&this.adjustSegment(this.segments.shift(),0),this.isPaused&&this.play()},AnimationItem.prototype.resetSegments=function(t){this.segments.length=0,this.segments.push([this.animationData.ip,this.animationData.op]),t&&this.checkSegments(0)},AnimationItem.prototype.checkSegments=function(t){return!!this.segments.length&&(this.adjustSegment(this.segments.shift(),t),!0)},AnimationItem.prototype.destroy=function(t){t&&this.name!=t||!this.renderer||(this.renderer.destroy(),this.imagePreloader.destroy(),this.trigger("destroy"),this._cbs=null,this.onEnterFrame=this.onLoopComplete=this.onComplete=this.onSegmentStart=this.onDestroy=null,this.renderer=null)},AnimationItem.prototype.setCurrentRawFrameValue=function(t){this.currentRawFrame=t,this.gotoFrame()},AnimationItem.prototype.setSpeed=function(t){this.playSpeed=t,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(t){this.playDirection=t<0?-1:1,this.updaFrameModifier()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssetsPath=function(t){var e="";if(t.e)e=t.p;else if(this.assetsPath){var r=t.p;-1!==r.indexOf("images/")&&(r=r.split("/")[1]),e=this.assetsPath+r}else e=this.path,e+=t.u?t.u:"",e+=t.p;return e},AnimationItem.prototype.getAssetData=function(t){for(var e=0,r=this.assets.length;e<r;){if(t==this.assets[e].id)return this.assets[e];e+=1}},AnimationItem.prototype.hide=function(){this.renderer.hide()},AnimationItem.prototype.show=function(){this.renderer.show()},AnimationItem.prototype.getDuration=function(t){return t?this.totalFrames:this.totalFrames/this.frameRate},AnimationItem.prototype.trigger=function(t){if(this._cbs&&this._cbs[t])switch(t){case"enterFrame":this.triggerEvent(t,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameModifier));break;case"loopComplete":this.triggerEvent(t,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult));break;case"complete":this.triggerEvent(t,new BMCompleteEvent(t,this.frameMult));break;case"segmentStart":this.triggerEvent(t,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames));break;case"destroy":this.triggerEvent(t,new BMDestroyEvent(t,this));break;default:this.triggerEvent(t)}"enterFrame"===t&&this.onEnterFrame&&this.onEnterFrame.call(this,new BMEnterFrameEvent(t,this.currentFrame,this.totalFrames,this.frameMult)),"loopComplete"===t&&this.onLoopComplete&&this.onLoopComplete.call(this,new BMCompleteLoopEvent(t,this.loop,this.playCount,this.frameMult)),"complete"===t&&this.onComplete&&this.onComplete.call(this,new BMCompleteEvent(t,this.frameMult)),"segmentStart"===t&&this.onSegmentStart&&this.onSegmentStart.call(this,new BMSegmentStartEvent(t,this.firstFrame,this.totalFrames)),"destroy"===t&&this.onDestroy&&this.onDestroy.call(this,new BMDestroyEvent(t,this))},AnimationItem.prototype.triggerRenderFrameError=function(t){var e=new BMRenderFrameErrorEvent(t,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)},AnimationItem.prototype.triggerConfigError=function(t){var e=new BMConfigErrorEvent(t,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)};var Expressions=(IW={},IW.initExpressions=function(t){var e=0,r=[];function i(){var t,e=r.length;for(t=0;t<e;t+=1)r[t].release();r.length=0}t.renderer.compInterface=CompExpressionInterface(t.renderer),t.renderer.globalData.projectInterface.registerComposition(t.renderer),t.renderer.globalData.pushExpression=function(){e+=1},t.renderer.globalData.popExpression=function(){0==(e-=1)&&i()},t.renderer.globalData.registerExpressionProperty=function(t){-1===r.indexOf(t)&&r.push(t)}},IW),IW;expressionsPlugin=Expressions;var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null;function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return"number"===t||"boolean"===t||"string"===t||e instanceof Number}function $bm_neg(t){var e=typeof t;if("number"===e||"boolean"===e||t instanceof Number)return-t;if($bm_isInstanceOfArray(t)){var r,i=t.length,s=[];for(r=0;r<i;r+=1)s[r]=-t[r];return s}return t.propType?t.v:void 0}var easeInBez=BezierFactory.getBezierEasing(.333,0,.833,.833,"easeIn").get,easeOutBez=BezierFactory.getBezierEasing(.167,.167,.667,1,"easeOut").get,easeInOutBez=BezierFactory.getBezierEasing(.33,0,.667,1,"easeInOut").get;function sum(t,e){var r=typeof t,i=typeof e;if("string"===r||"string"===i)return t+e;if(isNumerable(r,t)&&isNumerable(i,e))return t+e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]+e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t+e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]+e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}var add=sum;function sub(t,e){var r=typeof t,i=typeof e;if(isNumerable(r,t)&&isNumerable(i,e))return"string"===r&&(t=parseInt(t)),"string"===i&&(e=parseInt(e)),t-e;if($bm_isInstanceOfArray(t)&&isNumerable(i,e))return(t=t.slice(0))[0]=t[0]-e,t;if(isNumerable(r,t)&&$bm_isInstanceOfArray(e))return(e=e.slice(0))[0]=t-e[0],e;if($bm_isInstanceOfArray(t)&&$bm_isInstanceOfArray(e)){for(var s=0,a=t.length,n=e.length,o=[];s<a||s<n;)("number"==typeof t[s]||t[s]instanceof Number)&&("number"==typeof e[s]||e[s]instanceof Number)?o[s]=t[s]-e[s]:o[s]=void 0===e[s]?t[s]:t[s]||e[s],s+=1;return o}return 0}function mul(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t*e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]*e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t*e[i];return r}return 0}function div(t,e){var r,i,s,a=typeof t,n=typeof e;if(isNumerable(a,t)&&isNumerable(n,e))return t/e;if($bm_isInstanceOfArray(t)&&isNumerable(n,e)){for(s=t.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t[i]/e;return r}if(isNumerable(a,t)&&$bm_isInstanceOfArray(e)){for(s=e.length,r=createTypedArray("float32",s),i=0;i<s;i+=1)r[i]=t/e[i];return r}return 0}function mod(t,e){return"string"==typeof t&&(t=parseInt(t)),"string"==typeof e&&(e=parseInt(e)),t%e}var $bm_sum=sum,$bm_sub=sub,$bm_mul=mul,$bm_div=div,$bm_mod=mod;function clamp(t,e,r){if(r<e){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if("number"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);e||(e=helperLengthArray);var r,i=Math.min(t.length,e.length),s=0;for(r=0;r<i;r+=1)s+=Math.pow(e[r]-t[r],2);return Math.sqrt(s)}function normalize(t){return div(t,length(t))}function rgbToHsl(t){var e,r,i=t[0],s=t[1],a=t[2],n=Math.max(i,s,a),o=Math.min(i,s,a),h=(n+o)/2;if(n==o)e=r=0;else{var l=n-o;switch(r=.5<h?l/(2-n-o):l/(n+o),n){case i:e=(s-a)/l+(s<a?6:0);break;case s:e=(a-i)/l+2;break;case a:e=(i-s)/l+4}e/=6}return[e,r,h,t[3]]}function hue2rgb(t,e,r){return r<0&&(r+=1),1<r&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,s=t[0],a=t[1],n=t[2];if(0===a)e=r=i=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),r=hue2rgb(h,o,s),i=hue2rgb(h,o,s-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,s){if(void 0!==i&&void 0!==s||(i=e,s=r,e=0,r=1),r<e){var a=r;r=e,e=a}if(t<=e)return i;if(r<=t)return s;var n=r===e?0:(t-e)/(r-e);if(!i.length)return i+(s-i)*n;var o,h=i.length,l=createTypedArray("float32",h);for(o=0;o<h;o+=1)l[o]=i[o]+(s[o]-i[o])*n;return l}function random(t,e){if(void 0===e&&(void 0===t?(t=0,e=1):(e=t,t=void 0)),e.length){var r,i=e.length;t||(t=createTypedArray("float32",i));var s=createTypedArray("float32",i),a=BMMath.random();for(r=0;r<i;r+=1)s[r]=t[r]+a*(e[r]-t[r]);return s}return void 0===t&&(t=0),t+BMMath.random()*(e-t)}function createPath(t,e,r,i){var s,a=t.length,n=shape_pool.newElement();n.setPathData(!!i,a);var o,h,l=[0,0];for(s=0;s<a;s+=1)o=e&&e[s]?e[s]:l,h=r&&r[s]?r[s]:l,n.setTripleAt(t[s][0],t[s][1],h[0]+t[s][0],h[1]+t[s][1],o[0]+t[s][0],o[1]+t[s][1],s,!0);return n}function initiateExpression(elem,data,property){var val=data.x,needsVelocity=/velocity(?![\w\d])/.test(val),_needsRandom=-1!==val.indexOf("random"),elemType=elem.data.ty,transform,$bm_transform,content,effect,thisProperty=property;thisProperty.valueAtTime=thisProperty.getValueAtTime,Object.defineProperty(thisProperty,"value",{get:function(){return thisProperty.v}}),elem.comp.frameDuration=1/elem.comp.globalData.frameRate,elem.comp.displayStartTime=0;var inPoint=elem.data.ip/elem.comp.globalData.frameRate,outPoint=elem.data.op/elem.comp.globalData.frameRate,width=elem.data.sw?elem.data.sw:0,height=elem.data.sh?elem.data.sh:0,name=elem.data.nm,loopIn,loop_in,loopOut,loop_out,smooth,toWorld,fromWorld,fromComp,toComp,fromCompToSurface,position,rotation,anchorPoint,scale,thisLayer,thisComp,mask,valueAtTime,velocityAtTime,__expression_functions=[],scoped_bm_rt;if(data.xf){var i,len=data.xf.length;for(i=0;i<len;i+=1)__expression_functions[i]=eval("(function(){ return "+data.xf[i]+"}())")}var expression_function=eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0],numKeys=property.kf?data.k.length:0,active=!this.data||!0!==this.data.hd,wiggle=function(t,e){var r,i,s=this.pv.length?this.pv.length:1,a=createTypedArray("float32",s);var n=Math.floor(5*time);for(i=r=0;r<n;){for(i=0;i<s;i+=1)a[i]+=-e+2*e*BMMath.random();r+=1}var o=5*time,h=o-Math.floor(o),l=createTypedArray("float32",s);if(1<s){for(i=0;i<s;i+=1)l[i]=this.pv[i]+a[i]+(-e+2*e*BMMath.random())*h;return l}return this.pv+a[0]+(-e+2*e*BMMath.random())*h}.bind(this);function loopInDuration(t,e){return loopIn(t,e,!0)}function loopOutDuration(t,e){return loopOut(t,e,!0)}thisProperty.loopIn&&(loopIn=thisProperty.loopIn.bind(thisProperty),loop_in=loopIn),thisProperty.loopOut&&(loopOut=thisProperty.loopOut.bind(thisProperty),loop_out=loopOut),thisProperty.smooth&&(smooth=thisProperty.smooth.bind(thisProperty)),this.getValueAtTime&&(valueAtTime=this.getValueAtTime.bind(this)),this.getVelocityAtTime&&(velocityAtTime=this.getVelocityAtTime.bind(this));var comp=elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface),time,velocity,value,text,textIndex,textTotal,selectorValue;function lookAt(t,e){var r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],i=Math.atan2(r[0],Math.sqrt(r[1]*r[1]+r[2]*r[2]))/degToRads;return[-Math.atan2(r[1],r[2])/degToRads,i,0]}function easeOut(t,e,r,i,s){return applyEase(easeOutBez,t,e,r,i,s)}function easeIn(t,e,r,i,s){return applyEase(easeInBez,t,e,r,i,s)}function ease(t,e,r,i,s){return applyEase(easeInOutBez,t,e,r,i,s)}function applyEase(t,e,r,i,s,a){void 0===s?(s=r,a=i):e=(e-r)/(i-r);var n=t(e=1<e?1:e<0?0:e);if($bm_isInstanceOfArray(s)){var o,h=s.length,l=createTypedArray("float32",h);for(o=0;o<h;o+=1)l[o]=(a[o]-s[o])*n+s[o];return l}return(a-s)*n+s}function nearestKey(t){var e,r,i,s=data.k.length;if(data.k.length&&"number"!=typeof data.k[0])if(r=-1,(t*=elem.comp.globalData.frameRate)<data.k[0].t)r=1,i=data.k[0].t;else{for(e=0;e<s-1;e+=1){if(t===data.k[e].t){r=e+1,i=data.k[e].t;break}if(t>data.k[e].t&&t<data.k[e+1].t){i=t-data.k[e].t>data.k[e+1].t-t?(r=e+2,data.k[e+1].t):(r=e+1,data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else i=r=0;var a={};return a.index=r,a.time=i/elem.comp.globalData.frameRate,a}function key(t){var e,r,i;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var s=data.k[t].hasOwnProperty("s")?data.k[t].s:data.k[t-1].e;for(i=s.length,r=0;r<i;r+=1)e[r]=s[r],e.value[r]=s[r];return e}function framesToTime(t,e){return e||(e=elem.comp.globalData.frameRate),t/e}function timeToFrames(t,e){return t||0===t||(t=time),e||(e=elem.comp.globalData.frameRate),t*e}function seedRandom(t){BMMath.seedrandom(randSeed+t)}function sourceRectAtTime(){return elem.sourceRectAtTime()}function substring(t,e){return"string"==typeof value?void 0===e?value.substring(t):value.substring(t,e):""}function substr(t,e){return"string"==typeof value?void 0===e?value.substr(t):value.substr(t,e):""}function posterizeTime(t){time=0===t?0:Math.floor(time*t)/t,value=valueAtTime(time)}var index=elem.data.ind,hasParent=!(!elem.hierarchy||!elem.hierarchy.length),parent,randSeed=Math.floor(1e6*Math.random()),globalData=elem.globalData;function executeExpression(t){return value=t,_needsRandom&&seedRandom(randSeed),this.frameExpressionId===elem.globalData.frameId&&"textSelector"!==this.propType?value:("textSelector"===this.propType&&(textIndex=this.textIndex,textTotal=this.textTotal,selectorValue=this.selectorValue),thisLayer||(text=elem.layerInterface.text,thisLayer=elem.layerInterface,thisComp=elem.comp.compInterface,toWorld=thisLayer.toWorld.bind(thisLayer),fromWorld=thisLayer.fromWorld.bind(thisLayer),fromComp=thisLayer.fromComp.bind(thisLayer),toComp=thisLayer.toComp.bind(thisLayer),mask=thisLayer.mask?thisLayer.mask.bind(thisLayer):null,fromCompToSurface=fromComp),transform||(transform=elem.layerInterface("ADBE Transform Group"),($bm_transform=transform)&&(anchorPoint=transform.anchorPoint)),4!==elemType||content||(content=thisLayer("ADBE Root Vectors Group")),effect||(effect=thisLayer(4)),(hasParent=!(!elem.hierarchy||!elem.hierarchy.length))&&!parent&&(parent=elem.hierarchy[0].layerInterface),time=this.comp.renderedFrame/this.comp.globalData.frameRate,needsVelocity&&(velocity=velocityAtTime(time)),expression_function(),this.frameExpressionId=elem.globalData.frameId,"shape"===scoped_bm_rt.propType&&(scoped_bm_rt=scoped_bm_rt.v),scoped_bm_rt)}return executeExpression}return ob.initiateExpression=initiateExpression,ob}(),expressionHelpers={searchExpressions:function(t,e,r){e.x&&(r.k=!0,r.x=!0,r.initiateExpression=ExpressionManager.initiateExpression,r.effectsSequence.push(r.initiateExpression(t,e,r).bind(r)))},getSpeedAtTime:function(t){var e=this.getValueAtTime(t),r=this.getValueAtTime(t+-.01),i=0;if(e.length){var s;for(s=0;s<e.length;s+=1)i+=Math.pow(r[s]-e[s],2);i=100*Math.sqrt(i)}else i=0;return i},getVelocityAtTime:function(t){if(void 0!==this.vel)return this.vel;var e,r,i=this.getValueAtTime(t),s=this.getValueAtTime(t+-.001);if(i.length)for(e=createTypedArray("float32",i.length),r=0;r<i.length;r+=1)e[r]=(s[r]-i[r])/-.001;else e=(s-i)/-.001;return e},getValueAtTime:function(t){return t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastFrame&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastFrame<t?this._cachingAtTime.lastIndex:0,this._cachingAtTime.value=this.interpolateValue(t,this._cachingAtTime),this._cachingAtTime.lastFrame=t),this._cachingAtTime.value},getStaticValueAtTime:function(){return this.pv},setGroupProperty:function(t){this.propertyGroup=t}};!function(){function o(t,e,r){if(!this.k||!this.keyframes)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,l=this.keyframes,p=l[l.length-1].t;if(h<=p)return this.pv;if(r?s=p-(i=e?Math.abs(p-elem.comp.globalData.frameRate*e):Math.max(0,p-this.elem.data.ip)):((!e||e>l.length-1)&&(e=l.length-1),i=p-(s=l[l.length-1-e].t)),"pingpong"===t){if(Math.floor((h-s)/i)%2!=0)return this.getValueAtTime((i-(h-s)%i+s)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(s/this.comp.globalData.frameRate,0),f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),c=this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0),d=Math.floor((h-s)/i);if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=(f[a]-m[a])*d+c[a];return o}return(f-m)*d+c}if("continue"===t){var u=this.getValueAtTime(p/this.comp.globalData.frameRate,0),y=this.getValueAtTime((p-.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*((h-p)/this.comp.globalData.frameRate)/5e-4;return o}return u+(h-p)/.001*(u-y)}}return this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0)}function h(t,e,r){if(!this.k)return this.pv;t=t?t.toLowerCase():"";var i,s,a,n,o,h=this.comp.renderedFrame,l=this.keyframes,p=l[0].t;if(p<=h)return this.pv;if(r?s=p+(i=e?Math.abs(elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),i=(s=l[e].t)-p),"pingpong"===t){if(Math.floor((p-h)/i)%2==0)return this.getValueAtTime(((p-h)%i+p)/this.comp.globalData.frameRate,0)}else{if("offset"===t){var m=this.getValueAtTime(p/this.comp.globalData.frameRate,0),f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),c=this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0),d=Math.floor((p-h)/i)+1;if(this.pv.length){for(n=(o=new Array(m.length)).length,a=0;a<n;a+=1)o[a]=c[a]-(f[a]-m[a])*d;return o}return c-(f-m)*d}if("continue"===t){var u=this.getValueAtTime(p/this.comp.globalData.frameRate,0),y=this.getValueAtTime((p+.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(n=(o=new Array(u.length)).length,a=0;a<n;a+=1)o[a]=u[a]+(u[a]-y[a])*(p-h)/.001;return o}return u+(u-y)*(p-h)/.001}}return this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0)}function l(t,e){if(!this.k)return this.pv;if(t=.5*(t||.4),(e=Math.floor(e||5))<=1)return this.pv;var r,i,s=this.comp.renderedFrame/this.comp.globalData.frameRate,a=s-t,n=1<e?(s+t-a)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray("float32",this.pv.length):0;o<e;){if(i=this.getValueAtTime(a+o*n),this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]+=i[h];else r+=i;o+=1}if(this.pv.length)for(h=0;h<this.pv.length;h+=1)r[h]/=e;else r/=e;return r}var s=TransformPropertyFactory.getTransformProperty;TransformPropertyFactory.getTransformProperty=function(t,e,r){var i=s(t,e,r);return i.dynamicProperties.length?i.getValueAtTime=function(t){console.warn("Transform at time not supported")}.bind(i):i.getValueAtTime=function(t){}.bind(i),i.setGroupProperty=expressionHelpers.setGroupProperty,i};var p=PropertyFactory.getProp;PropertyFactory.getProp=function(t,e,r,i,s){var a=p(t,e,r,i,s);a.kf?a.getValueAtTime=expressionHelpers.getValueAtTime.bind(a):a.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(a),a.setGroupProperty=expressionHelpers.setGroupProperty,a.loopOut=o,a.loopIn=h,a.smooth=l,a.getVelocityAtTime=expressionHelpers.getVelocityAtTime.bind(a),a.getSpeedAtTime=expressionHelpers.getSpeedAtTime.bind(a),a.numKeys=1===e.a?e.k.length:0,a.propertyIndex=e.ix;var n=0;return 0!==r&&(n=createTypedArray("float32",1===e.a?e.k[0].s.length:e.k.length)),a._cachingAtTime={lastFrame:initialDefaultFrame,lastIndex:0,value:n},expressionHelpers.searchExpressions(t,e,a),a.k&&s.addDynamicProperty(a),a};var t=ShapePropertyFactory.getConstructorFunction(),e=ShapePropertyFactory.getKeyframedConstructorFunction();function r(){}r.prototype={vertices:function(t,e){this.k&&this.getValue();var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0));var i,s=r._length,a=r[t],n=r.v,o=createSizedArray(s);for(i=0;i<s;i+=1)o[i]="i"===t||"o"===t?[a[i][0]-n[i][0],a[i][1]-n[i][1]]:[a[i][0],a[i][1]];return o},points:function(t){return this.vertices("v",t)},inTangents:function(t){return this.vertices("i",t)},outTangents:function(t){return this.vertices("o",t)},isClosed:function(){return this.v.c},pointOnPath:function(t,e){var r=this.v;void 0!==e&&(r=this.getValueAtTime(e,0)),this._segmentsLength||(this._segmentsLength=bez.getSegmentsLength(r));for(var i,s=this._segmentsLength,a=s.lengths,n=s.totalLength*t,o=0,h=a.length,l=0;o<h;){if(l+a[o].addedLength>n){var p=o,m=r.c&&o===h-1?0:o+1,f=(n-l)/a[o].addedLength;i=bez.getPointInSegment(r.v[p],r.v[m],r.o[p],r.i[m],f,a[o]);break}l+=a[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){t=1==t?this.v.c?0:.999:t;var i=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-i[0],n=s[1]-i[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return 0===o?[0,0]:"tangent"===r?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,"tangent")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([r],t),extendPrototype([r],e),e.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shape_pool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime<t?this._caching.lastIndex:0,this._cachingAtTime.lastTime=t,this.interpolateShape(t,this._cachingAtTime.shapeValue,this._cachingAtTime)),this._cachingAtTime.shapeValue},e.prototype.initiateExpression=ExpressionManager.initiateExpression;var n=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(t,e,r,i,s){var a=n(t,e,r,i,s);return a.propertyIndex=e.ix,a.lock=!1,3===r?expressionHelpers.searchExpressions(t,e.pt,a):4===r&&expressionHelpers.searchExpressions(t,e.ks,a),a.k&&t.addDynamicProperty(a),a}}(),TextProperty.prototype.getExpressionValue=function(t,e){var r=this.calculateExpression(e);if(t.t===r)return t;var i={};return this.copyData(i,t),i.t=r.toString(),i.__complete=!1,i},TextProperty.prototype.searchProperty=function(){var t=this.searchKeyframes(),e=this.searchExpressions();return this.kf=t||e,this.kf},TextProperty.prototype.searchExpressions=function(){if(this.data.d.x)return this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0};var ShapeExpressionInterface=function(){function m(t,e,r){var i,s=[],a=t?t.length:0;for(i=0;i<a;i+=1)"gr"==t[i].ty?s.push(n(t[i],e[i],r)):"fl"==t[i].ty?s.push(o(t[i],e[i],r)):"st"==t[i].ty?s.push(h(t[i],e[i],r)):"tm"==t[i].ty?s.push(l(t[i],e[i],r)):"tr"==t[i].ty||("el"==t[i].ty?s.push(p(t[i],e[i],r)):"sr"==t[i].ty?s.push(f(t[i],e[i],r)):"sh"==t[i].ty?s.push(y(t[i],e[i],r)):"rc"==t[i].ty?s.push(c(t[i],e[i],r)):"rd"==t[i].ty?s.push(d(t[i],e[i],r)):"rp"==t[i].ty&&s.push(u(t[i],e[i],r)));return s}function n(t,e,r){var i=function(t){switch(t){case"ADBE Vectors Group":case"Contents":case 2:return i.content;default:return i.transform}};i.propertyGroup=function(t){return 1===t?i:r(t-1)};var s,a,n,o,h,l=(s=t,a=e,n=i.propertyGroup,(h=function(t){for(var e=0,r=o.length;e<r;){if(o[e]._name===t||o[e].mn===t||o[e].propertyIndex===t||o[e].ix===t||o[e].ind===t)return o[e];e+=1}if("number"==typeof t)return o[t-1]}).propertyGroup=function(t){return 1===t?h:n(t-1)},o=m(s.it,a.it,h.propertyGroup),h.numProperties=o.length,h.propertyIndex=s.cix,h._name=s.nm,h),p=function(e,t,r){function i(t){return 1==t?s:r(--t)}t.transform.mProps.o.setGroupProperty(i),t.transform.mProps.p.setGroupProperty(i),t.transform.mProps.a.setGroupProperty(i),t.transform.mProps.s.setGroupProperty(i),t.transform.mProps.r.setGroupProperty(i),t.transform.mProps.sk&&(t.transform.mProps.sk.setGroupProperty(i),t.transform.mProps.sa.setGroupProperty(i));function s(t){return e.a.ix===t||"Anchor Point"===t?s.anchorPoint:e.o.ix===t||"Opacity"===t?s.opacity:e.p.ix===t||"Position"===t?s.position:e.r.ix===t||"Rotation"===t||"ADBE Vector Rotation"===t?s.rotation:e.s.ix===t||"Scale"===t?s.scale:e.sk&&e.sk.ix===t||"Skew"===t?s.skew:e.sa&&e.sa.ix===t||"Skew Axis"===t?s.skewAxis:void 0}return t.transform.op.setGroupProperty(i),Object.defineProperties(s,{opacity:{get:ExpressionPropertyInterface(t.transform.mProps.o)},position:{get:ExpressionPropertyInterface(t.transform.mProps.p)},anchorPoint:{get:ExpressionPropertyInterface(t.transform.mProps.a)},scale:{get:ExpressionPropertyInterface(t.transform.mProps.s)},rotation:{get:ExpressionPropertyInterface(t.transform.mProps.r)},skew:{get:ExpressionPropertyInterface(t.transform.mProps.sk)},skewAxis:{get:ExpressionPropertyInterface(t.transform.mProps.sa)},_name:{value:e.nm}}),s.ty="tr",s.mn=e.mn,s.propertyGroup=r,s}(t.it[t.it.length-1],e.it[e.it.length-1],i.propertyGroup);return i.content=l,i.transform=p,Object.defineProperty(i,"_name",{get:function(){return t.nm}}),i.numProperties=t.np,i.propertyIndex=t.ix,i.nm=t.nm,i.mn=t.mn,i}function o(t,e,r){function i(t){return"Color"===t||"color"===t?i.color:"Opacity"===t||"opacity"===t?i.opacity:void 0}return Object.defineProperties(i,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(r),e.o.setGroupProperty(r),i}function h(t,e,r){function i(t){return 1===t?ob:r(t-1)}function s(t){return 1===t?h:i(t-1)}var a,n,o=t.d?t.d.length:0,h={};for(a=0;a<o;a+=1)n=a,Object.defineProperty(h,t.d[n].nm,{get:ExpressionPropertyInterface(e.d.dataProps[n].p)}),e.d.dataProps[a].p.setGroupProperty(s);function l(t){return"Color"===t||"color"===t?l.color:"Opacity"===t||"opacity"===t?l.opacity:"Stroke Width"===t||"stroke width"===t?l.strokeWidth:void 0}return Object.defineProperties(l,{color:{get:ExpressionPropertyInterface(e.c)},opacity:{get:ExpressionPropertyInterface(e.o)},strokeWidth:{get:ExpressionPropertyInterface(e.w)},dash:{get:function(){return h}},_name:{value:t.nm},mn:{value:t.mn}}),e.c.setGroupProperty(i),e.o.setGroupProperty(i),e.w.setGroupProperty(i),l}function l(e,t,r){function i(t){return 1==t?s:r(--t)}function s(t){return t===e.e.ix||"End"===t||"end"===t?s.end:t===e.s.ix?s.start:t===e.o.ix?s.offset:void 0}return s.propertyIndex=e.ix,t.s.setGroupProperty(i),t.e.setGroupProperty(i),t.o.setGroupProperty(i),s.propertyIndex=e.ix,s.propertyGroup=r,Object.defineProperties(s,{start:{get:ExpressionPropertyInterface(t.s)},end:{get:ExpressionPropertyInterface(t.e)},offset:{get:ExpressionPropertyInterface(t.o)},_name:{value:e.nm}}),s.mn=e.mn,s}function p(e,t,r){function i(t){return 1==t?a:r(--t)}a.propertyIndex=e.ix;var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.s.ix===t?a.size:void 0}return s.s.setGroupProperty(i),s.p.setGroupProperty(i),Object.defineProperties(a,{size:{get:ExpressionPropertyInterface(s.s)},position:{get:ExpressionPropertyInterface(s.p)},_name:{value:e.nm}}),a.mn=e.mn,a}function f(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.rotation:e.pt.ix===t?a.points:e.or.ix===t||"ADBE Vector Star Outer Radius"===t?a.outerRadius:e.os.ix===t?a.outerRoundness:!e.ir||e.ir.ix!==t&&"ADBE Vector Star Inner Radius"!==t?e.is&&e.is.ix===t?a.innerRoundness:void 0:a.innerRadius}return a.propertyIndex=e.ix,s.or.setGroupProperty(i),s.os.setGroupProperty(i),s.pt.setGroupProperty(i),s.p.setGroupProperty(i),s.r.setGroupProperty(i),e.ir&&(s.ir.setGroupProperty(i),s.is.setGroupProperty(i)),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},rotation:{get:ExpressionPropertyInterface(s.r)},points:{get:ExpressionPropertyInterface(s.pt)},outerRadius:{get:ExpressionPropertyInterface(s.or)},outerRoundness:{get:ExpressionPropertyInterface(s.os)},innerRadius:{get:ExpressionPropertyInterface(s.ir)},innerRoundness:{get:ExpressionPropertyInterface(s.is)},_name:{value:e.nm}}),a.mn=e.mn,a}function c(e,t,r){function i(t){return 1==t?a:r(--t)}var s="tm"===t.sh.ty?t.sh.prop:t.sh;function a(t){return e.p.ix===t?a.position:e.r.ix===t?a.roundness:e.s.ix===t||"Size"===t||"ADBE Vector Rect Size"===t?a.size:void 0}return a.propertyIndex=e.ix,s.p.setGroupProperty(i),s.s.setGroupProperty(i),s.r.setGroupProperty(i),Object.defineProperties(a,{position:{get:ExpressionPropertyInterface(s.p)},roundness:{get:ExpressionPropertyInterface(s.r)},size:{get:ExpressionPropertyInterface(s.s)},_name:{value:e.nm}}),a.mn=e.mn,a}function d(e,t,r){var i=t;function s(t){if(e.r.ix===t||"Round Corners 1"===t)return s.radius}return s.propertyIndex=e.ix,i.rd.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{radius:{get:ExpressionPropertyInterface(i.rd)},_name:{value:e.nm}}),s.mn=e.mn,s}function u(e,t,r){function i(t){return 1==t?a:r(--t)}var s=t;function a(t){return e.c.ix===t||"Copies"===t?a.copies:e.o.ix===t||"Offset"===t?a.offset:void 0}return a.propertyIndex=e.ix,s.c.setGroupProperty(i),s.o.setGroupProperty(i),Object.defineProperties(a,{copies:{get:ExpressionPropertyInterface(s.c)},offset:{get:ExpressionPropertyInterface(s.o)},_name:{value:e.nm}}),a.mn=e.mn,a}function y(t,e,r){var i=e.sh;function s(t){if("Shape"===t||"shape"===t||"Path"===t||"path"===t||"ADBE Vector Shape"===t||2===t)return s.path}return i.setGroupProperty(function(t){return 1==t?s:r(--t)}),Object.defineProperties(s,{path:{get:function(){return i.k&&i.getValue(),i}},shape:{get:function(){return i.k&&i.getValue(),i}},_name:{value:t.nm},ix:{value:t.ix},propertyIndex:{value:t.ix},mn:{value:t.mn}}),s}return function(t,e,r){var i;function s(t){if("number"==typeof t)return i[t-1];for(var e=0,r=i.length;e<r;){if(i[e]._name===t)return i[e];e+=1}}return s.propertyGroup=r,i=m(t,e,s),s.numProperties=i.length,s}}(),TextExpressionInterface=function(e){var r;function t(){}return Object.defineProperty(t,"sourceText",{get:function(){e.textProperty.getValue();var t=e.textProperty.currentData.t;return void 0!==t&&(e.textProperty.currentData.t=void 0,(r=new String(t)).value=t||new String(t)),r}}),t},LayerExpressionInterface=function(){function s(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.applyToPointArray(t[0],t[1],t[2]||0)}return r.applyToPointArray(t[0],t[1],t[2]||0)}function a(t,e){var r=new Matrix;if(r.reset(),this._elem.finalTransform.mProp.applyToMatrix(r),this._elem.hierarchy&&this._elem.hierarchy.length){var i,s=this._elem.hierarchy.length;for(i=0;i<s;i+=1)this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(r);return r.inversePoint(t)}return r.inversePoint(t)}function n(t){var e=new Matrix;if(e.reset(),this._elem.finalTransform.mProp.applyToMatrix(e),this._elem.hierarchy&&this._elem.hierarchy.length){var r,i=this._elem.hierarchy.length;for(r=0;r<i;r+=1)this._elem.hierarchy[r].finalTransform.mProp.applyToMatrix(e);return e.inversePoint(t)}return e.inversePoint(t)}function o(){return[1,1,1,1]}return function(e){var r;function i(t){switch(t){case"ADBE Root Vectors Group":case"Contents":case 2:return i.shapeInterface;case 1:case 6:case"Transform":case"transform":case"ADBE Transform Group":return r;case 4:case"ADBE Effect Parade":case"effects":case"Effects":return i.effect}}i.toWorld=s,i.fromWorld=a,i.toComp=s,i.fromComp=n,i.sampleImage=o,i.sourceRectAtTime=e.sourceRectAtTime.bind(e);var t=getDescriptor(r=TransformExpressionInterface((i._elem=e).finalTransform.mProp),"anchorPoint");return Object.defineProperties(i,{hasParent:{get:function(){return e.hierarchy.length}},parent:{get:function(){return e.hierarchy[0].layerInterface}},rotation:getDescriptor(r,"rotation"),scale:getDescriptor(r,"scale"),position:getDescriptor(r,"position"),opacity:getDescriptor(r,"opacity"),anchorPoint:t,anchor_point:t,transform:{get:function(){return r}},active:{get:function(){return e.isInRange}}}),i.startTime=e.data.st,i.index=e.data.ind,i.source=e.data.refId,i.height=0===e.data.ty?e.data.h:100,i.width=0===e.data.ty?e.data.w:100,i.inPoint=e.data.ip/e.comp.globalData.frameRate,i.outPoint=e.data.op/e.comp.globalData.frameRate,i._name=e.data.nm,i.registerMaskInterface=function(t){i.mask=new MaskManagerInterface(t,e)},i.registerEffectsInterface=function(t){i.effect=t},i}}(),CompExpressionInterface=function(i){function t(t){for(var e=0,r=i.layers.length;e<r;){if(i.layers[e].nm===t||i.layers[e].ind===t)return i.elements[e].layerInterface;e+=1}return null}return Object.defineProperty(t,"_name",{value:i.data.nm}),(t.layer=t).pixelAspect=1,t.height=i.data.h||i.globalData.compSize.h,t.width=i.data.w||i.globalData.compSize.w,t.pixelAspect=1,t.frameDuration=1/i.globalData.frameRate,t.displayStartTime=0,t.numLayers=i.layers.length,t},TransformExpressionInterface=function(t){function e(t){switch(t){case"scale":case"Scale":case"ADBE Scale":case 6:return e.scale;case"rotation":case"Rotation":case"ADBE Rotation":case"ADBE Rotate Z":case 10:return e.rotation;case"ADBE Rotate X":return e.xRotation;case"ADBE Rotate Y":return e.yRotation;case"position":case"Position":case"ADBE Position":case 2:return e.position;case"ADBE Position_0":return e.xPosition;case"ADBE Position_1":return e.yPosition;case"ADBE Position_2":return e.zPosition;case"anchorPoint":case"AnchorPoint":case"Anchor Point":case"ADBE AnchorPoint":case 1:return e.anchorPoint;case"opacity":case"Opacity":case 11:return e.opacity}}if(Object.defineProperty(e,"rotation",{get:ExpressionPropertyInterface(t.r||t.rz)}),Object.defineProperty(e,"zRotation",{get:ExpressionPropertyInterface(t.rz||t.r)}),Object.defineProperty(e,"xRotation",{get:ExpressionPropertyInterface(t.rx)}),Object.defineProperty(e,"yRotation",{get:ExpressionPropertyInterface(t.ry)}),Object.defineProperty(e,"scale",{get:ExpressionPropertyInterface(t.s)}),t.p)var r=ExpressionPropertyInterface(t.p);return Object.defineProperty(e,"position",{get:function(){return t.p?r():[t.px.v,t.py.v,t.pz?t.pz.v:0]}}),Object.defineProperty(e,"xPosition",{get:ExpressionPropertyInterface(t.px)}),Object.defineProperty(e,"yPosition",{get:ExpressionPropertyInterface(t.py)}),Object.defineProperty(e,"zPosition",{get:ExpressionPropertyInterface(t.pz)}),Object.defineProperty(e,"anchorPoint",{get:ExpressionPropertyInterface(t.a)}),Object.defineProperty(e,"opacity",{get:ExpressionPropertyInterface(t.o)}),Object.defineProperty(e,"skew",{get:ExpressionPropertyInterface(t.sk)}),Object.defineProperty(e,"skewAxis",{get:ExpressionPropertyInterface(t.sa)}),Object.defineProperty(e,"orientation",{get:ExpressionPropertyInterface(t.or)}),e},ProjectInterface=function(){function e(t){this.compositions.push(t)}return function(){function t(t){for(var e=0,r=this.compositions.length;e<r;){if(this.compositions[e].data&&this.compositions[e].data.nm===t)return this.compositions[e].prepareFrame&&this.compositions[e].data.xt&&this.compositions[e].prepareFrame(this.currentFrame),this.compositions[e].compInterface;e+=1}}return t.compositions=[],t.currentFrame=0,t.registerComposition=e,t}}(),EffectsExpressionInterface=function(){function l(s,t,e,r){var i,a=[],n=s.ef.length;for(i=0;i<n;i+=1)5===s.ef[i].ty?a.push(l(s.ef[i],t.effectElements[i],t.effectElements[i].propertyGroup,r)):a.push(p(t.effectElements[i],s.ef[i].ty,r,o));function o(t){return 1===t?h:e(t-1)}var h=function(t){for(var e=s.ef,r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return 5===e[r].ty?a[r]:a[r]();r+=1}return a[0]()};return h.propertyGroup=o,"ADBE Color Control"===s.mn&&Object.defineProperty(h,"color",{get:function(){return a[0]()}}),Object.defineProperty(h,"numProperties",{get:function(){return s.np}}),h.active=h.enabled=0!==s.en,h}function p(t,e,r,i){var s=ExpressionPropertyInterface(t.p);return t.p.setGroupProperty&&t.p.setGroupProperty(i),function(){return 10===e?r.comp.compInterface(t.p.v):s()}}return{createEffectsInterface:function(s,t){if(s.effectsManager){var e,a=[],r=s.data.ef,i=s.effectsManager.effectElements.length;for(e=0;e<i;e+=1)a.push(l(r[e],s.effectsManager.effectElements[e],t,s));return function(t){for(var e=s.data.ef||[],r=0,i=e.length;r<i;){if(t===e[r].nm||t===e[r].mn||t===e[r].ix)return a[r];r+=1}}}}}}(),MaskManagerInterface=function(){function a(t,e){this._mask=t,this._data=e}Object.defineProperty(a.prototype,"maskPath",{get:function(){return this._mask.prop.k&&this._mask.prop.getValue(),this._mask.prop}}),Object.defineProperty(a.prototype,"maskOpacity",{get:function(){return this._mask.op.k&&this._mask.op.getValue(),100*this._mask.op.v}});return function(e,t){var r,i=createSizedArray(e.viewData.length),s=e.viewData.length;for(r=0;r<s;r+=1)i[r]=new a(e.viewData[r],e.masksProperties[r]);return function(t){for(r=0;r<s;){if(e.masksProperties[r].nm===t)return i[r];r+=1}}}}(),ExpressionPropertyInterface=function(){var s={pv:0,v:0,mult:1},n={pv:[0,0,0],v:[0,0,0],mult:1};function o(i,s,a){Object.defineProperty(i,"velocity",{get:function(){return s.getVelocityAtTime(s.comp.currentFrame)}}),i.numKeys=s.keyframes?s.keyframes.length:0,i.key=function(t){if(i.numKeys){var e="";e="s"in s.keyframes[t-1]?s.keyframes[t-1].s:"e"in s.keyframes[t-2]?s.keyframes[t-2].e:s.keyframes[t-2].s;var r="unidimensional"===a?new Number(e):Object.assign({},e);return r.time=s.keyframes[t-1].t/s.elem.comp.globalData.frameRate,r}return 0},i.valueAtTime=s.getValueAtTime,i.speedAtTime=s.getSpeedAtTime,i.velocityAtTime=s.getVelocityAtTime,i.propertyGroup=s.propertyGroup}function e(){return s}return function(t){return t?"unidimensional"===t.propType?function(t){t&&"pv"in t||(t=s);var e=1/t.mult,r=t.pv*e,i=new Number(r);return i.value=r,o(i,t,"unidimensional"),function(){return t.k&&t.getValue(),r=t.v*e,i.value!==r&&((i=new Number(r)).value=r,o(i,t,"unidimensional")),i}}(t):function(e){e&&"pv"in e||(e=n);var r=1/e.mult,i=e.pv.length,s=createTypedArray("float32",i),a=createTypedArray("float32",i);return s.value=a,o(s,e,"multidimensional"),function(){e.k&&e.getValue();for(var t=0;t<i;t+=1)s[t]=a[t]=e.v[t]*r;return s}}(t):e}}(),r5,s5;function SliderEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function AngleEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function ColorEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function PointEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,1,0,r)}function LayerIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function MaskIndexEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function CheckboxEffect(t,e,r){this.p=PropertyFactory.getProp(e,t.v,0,0,r)}function NoValueEffect(){this.p={}}function EffectsManager(){}function EffectsManager(t,e){var r=t.ef||[];this.effectElements=[];var i,s,a=r.length;for(i=0;i<a;i++)s=new GroupEffect(r[i],e),this.effectElements.push(s)}function GroupEffect(t,e){this.init(t,e)}r5=function(){function r(t,e){return this.textIndex=t+1,this.textTotal=e,this.v=this.getValue()*this.mult,this.v}return function(t,e){this.pv=1,this.comp=t.comp,this.elem=t,this.mult=.01,this.propType="textSelector",this.textTotal=e.totalChars,this.selectorValue=100,this.lastValue=[1,1,1],this.k=!0,this.x=!0,this.getValue=ExpressionManager.initiateExpression.bind(this)(t,e,this),this.getMult=r,this.getVelocityAtTime=expressionHelpers.getVelocityAtTime,this.kf?this.getValueAtTime=expressionHelpers.getValueAtTime.bind(this):this.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(this),this.setGroupProperty=expressionHelpers.setGroupProperty}}(),s5=TextSelectorProp.getTextSelectorProp,TextSelectorProp.getTextSelectorProp=function(t,e,r){return 1===e.t?new r5(t,e,r):s5(t,e,r)},extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(t,e){this.data=t,this.effectElements=[],this.initDynamicPropertyContainer(e);var r,i,s=this.data.ef.length,a=this.data.ef;for(r=0;r<s;r+=1){switch(i=null,a[r].ty){case 0:i=new SliderEffect(a[r],e,this);break;case 1:i=new AngleEffect(a[r],e,this);break;case 2:i=new ColorEffect(a[r],e,this);break;case 3:i=new PointEffect(a[r],e,this);break;case 4:case 7:i=new CheckboxEffect(a[r],e,this);break;case 10:i=new LayerIndexEffect(a[r],e,this);break;case 11:i=new MaskIndexEffect(a[r],e,this);break;case 5:i=new EffectsManager(a[r],e,this);break;default:i=new NoValueEffect(a[r],e,this)}i&&this.effectElements.push(i)}};var lottie={},_isFrozen=!1;function setLocationHref(t){locationHref=t}function searchAnimations(){!0===standalone?animationManager.searchAnimations(animationData,standalone,renderer):animationManager.searchAnimations()}function setSubframeRendering(t){subframeEnabled=t}function loadAnimation(t){return!0===standalone&&(t.animationData=JSON.parse(animationData)),animationManager.loadAnimation(t)}function setQuality(t){if("string"==typeof t)switch(t){case"high":defaultCurveSegments=200;break;case"medium":defaultCurveSegments=50;break;case"low":defaultCurveSegments=10}else!isNaN(t)&&1<t&&(defaultCurveSegments=t);roundValues(!(50<=defaultCurveSegments))}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(t,e){"expressions"===t&&(expressionsPlugin=e)}function getFactory(t){switch(t){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split("&"),r=0;r<e.length;r++){var i=e[r].split("=");if(decodeURIComponent(i[0])==t)return decodeURIComponent(i[1])}}lottie.play=animationManager.play,lottie.pause=animationManager.pause,lottie.setLocationHref=setLocationHref,lottie.togglePause=animationManager.togglePause,lottie.setSpeed=animationManager.setSpeed,lottie.setDirection=animationManager.setDirection,lottie.stop=animationManager.stop,lottie.searchAnimations=searchAnimations,lottie.registerAnimation=animationManager.registerAnimation,lottie.loadAnimation=loadAnimation,lottie.setSubframeRendering=setSubframeRendering,lottie.resize=animationManager.resize,lottie.goToAndStop=animationManager.goToAndStop,lottie.destroy=animationManager.destroy,lottie.setQuality=setQuality,lottie.inBrowser=inBrowser,lottie.installPlugin=installPlugin,lottie.freeze=animationManager.freeze,lottie.unfreeze=animationManager.unfreeze,lottie.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottie.__getFactory=getFactory,lottie.version="5.6.8";var standalone="__[STANDALONE]__",animationData="__[ANIMATIONDATA]__",renderer="";if(standalone){var scripts=document.getElementsByTagName("script"),index=scripts.length-1,myScript=scripts[index]||{src:""},queryString=myScript.src.replace(/^[^\?]+\??/,"");renderer=getQueryVariable("renderer")}var readyStateCheckInterval=setInterval(checkReady,100);
	return lottie;
}));
PK!�=2CCassets/lib/lottie/lottie.jsnu�[���/*
Version: 5.6.8
License: MIT
 */
(typeof navigator !== "undefined") && (function(root, factory) {
	if (typeof define === "function" && define.amd) {
		define(function() {
			return factory(root);
		});
	} else if (typeof module === "object" && module.exports) {
		module.exports = factory(root);
	} else {
		root.lottie = factory(root);
		root.bodymovin = root.lottie;
	}
}((window || {}), function(window) {
	"use strict";
	var svgNS = "http://www.w3.org/2000/svg";

	var locationHref = '';

	var initialDefaultFrame = -999999;

	var subframeEnabled = true;
	var expressionsPlugin;
	var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
	var cachedColors = {};
	var bm_rounder = Math.round;
	var bm_rnd;
	var bm_pow = Math.pow;
	var bm_sqrt = Math.sqrt;
	var bm_abs = Math.abs;
	var bm_floor = Math.floor;
	var bm_max = Math.max;
	var bm_min = Math.min;
	var blitter = 10;

	var BMMath = {};
	(function(){
		var propertyNames = ["abs", "acos", "acosh", "asin", "asinh", "atan", "atanh", "atan2", "ceil", "cbrt", "expm1", "clz32", "cos", "cosh", "exp", "floor", "fround", "hypot", "imul", "log", "log1p", "log2", "log10", "max", "min", "pow", "random", "round", "sign", "sin", "sinh", "sqrt", "tan", "tanh", "trunc", "E", "LN10", "LN2", "LOG10E", "LOG2E", "PI", "SQRT1_2", "SQRT2"];
		var i, len = propertyNames.length;
		for(i=0;i<len;i+=1){
			BMMath[propertyNames[i]] = Math[propertyNames[i]];
		}
	}());

	function ProjectInterface(){return {};}

	BMMath.random = Math.random;
	BMMath.abs = function(val){
		var tOfVal = typeof val;
		if(tOfVal === 'object' && val.length){
			var absArr = createSizedArray(val.length);
			var i, len = val.length;
			for(i=0;i<len;i+=1){
				absArr[i] = Math.abs(val[i]);
			}
			return absArr;
		}
		return Math.abs(val);

	};
	var defaultCurveSegments = 150;
	var degToRads = Math.PI/180;
	var roundCorner = 0.5519;

	function roundValues(flag){
		if(flag){
			bm_rnd = Math.round;
		}else{
			bm_rnd = function(val){
				return val;
			};
		}
	}
	roundValues(false);

	function styleDiv(element){
		element.style.position = 'absolute';
		element.style.top = 0;
		element.style.left = 0;
		element.style.display = 'block';
		element.style.transformOrigin = element.style.webkitTransformOrigin = '0 0';
		element.style.backfaceVisibility  = element.style.webkitBackfaceVisibility = 'visible';
		element.style.transformStyle = element.style.webkitTransformStyle = element.style.mozTransformStyle = "preserve-3d";
	}

	function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier){
		this.type = type;
		this.currentTime = currentTime;
		this.totalTime = totalTime;
		this.direction = frameMultiplier < 0 ? -1 : 1;
	}

	function BMCompleteEvent(type, frameMultiplier){
		this.type = type;
		this.direction = frameMultiplier < 0 ? -1 : 1;
	}

	function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier){
		this.type = type;
		this.currentLoop = currentLoop;
		this.totalLoops = totalLoops;
		this.direction = frameMultiplier < 0 ? -1 : 1;
	}

	function BMSegmentStartEvent(type, firstFrame, totalFrames){
		this.type = type;
		this.firstFrame = firstFrame;
		this.totalFrames = totalFrames;
	}

	function BMDestroyEvent(type, target){
		this.type = type;
		this.target = target;
	}

	function BMRenderFrameErrorEvent(nativeError, currentTime) {
		this.type = 'renderFrameError';
		this.nativeError = nativeError;
		this.currentTime = currentTime;
	}

	function BMConfigErrorEvent(nativeError) {
		this.type = 'configError';
		this.nativeError = nativeError;
	}

	function BMAnimationConfigErrorEvent(type, nativeError) {
		this.type = type;
		this.nativeError = nativeError;
		this.currentTime = currentTime;
	}

	var createElementID = (function(){
		var _count = 0;
		return function createID() {
			return '__lottie_element_' + ++_count
		}
	}())

	function HSVtoRGB(h, s, v) {
		var r, g, b, i, f, p, q, t;
		i = Math.floor(h * 6);
		f = h * 6 - i;
		p = v * (1 - s);
		q = v * (1 - f * s);
		t = v * (1 - (1 - f) * s);
		switch (i % 6) {
			case 0: r = v; g = t; b = p; break;
			case 1: r = q; g = v; b = p; break;
			case 2: r = p; g = v; b = t; break;
			case 3: r = p; g = q; b = v; break;
			case 4: r = t; g = p; b = v; break;
			case 5: r = v; g = p; b = q; break;
		}
		return [ r,
			g,
			b ];
	}

	function RGBtoHSV(r, g, b) {
		var max = Math.max(r, g, b), min = Math.min(r, g, b),
			d = max - min,
			h,
			s = (max === 0 ? 0 : d / max),
			v = max / 255;

		switch (max) {
			case min: h = 0; break;
			case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;
			case g: h = (b - r) + d * 2; h /= 6 * d; break;
			case b: h = (r - g) + d * 4; h /= 6 * d; break;
		}

		return [
			h,
			s,
			v
		];
	}

	function addSaturationToRGB(color,offset){
		var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);
		hsv[1] += offset;
		if (hsv[1] > 1) {
			hsv[1] = 1;
		}
		else if (hsv[1] <= 0) {
			hsv[1] = 0;
		}
		return HSVtoRGB(hsv[0],hsv[1],hsv[2]);
	}

	function addBrightnessToRGB(color,offset){
		var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);
		hsv[2] += offset;
		if (hsv[2] > 1) {
			hsv[2] = 1;
		}
		else if (hsv[2] < 0) {
			hsv[2] = 0;
		}
		return HSVtoRGB(hsv[0],hsv[1],hsv[2]);
	}

	function addHueToRGB(color,offset) {
		var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);
		hsv[0] += offset/360;
		if (hsv[0] > 1) {
			hsv[0] -= 1;
		}
		else if (hsv[0] < 0) {
			hsv[0] += 1;
		}
		return HSVtoRGB(hsv[0],hsv[1],hsv[2]);
	}

	var rgbToHex = (function(){
		var colorMap = [];
		var i;
		var hex;
		for(i=0;i<256;i+=1){
			hex = i.toString(16);
			colorMap[i] = hex.length == 1 ? '0' + hex : hex;
		}

		return function(r, g, b) {
			if(r<0){
				r = 0;
			}
			if(g<0){
				g = 0;
			}
			if(b<0){
				b = 0;
			}
			return '#' + colorMap[r] + colorMap[g] + colorMap[b];
		};
	}());
	function BaseEvent(){}
	BaseEvent.prototype = {
		triggerEvent: function (eventName, args) {
			if (this._cbs[eventName]) {
				var len = this._cbs[eventName].length;
				for (var i = 0; i < len; i++){
					this._cbs[eventName][i](args);
				}
			}
		},
		addEventListener: function (eventName, callback) {
			if (!this._cbs[eventName]){
				this._cbs[eventName] = [];
			}
			this._cbs[eventName].push(callback);

			return function() {
				this.removeEventListener(eventName, callback);
			}.bind(this);
		},
		removeEventListener: function (eventName,callback){
			if (!callback){
				this._cbs[eventName] = null;
			}else if(this._cbs[eventName]){
				var i = 0, len = this._cbs[eventName].length;
				while(i<len){
					if(this._cbs[eventName][i] === callback){
						this._cbs[eventName].splice(i,1);
						i -=1;
						len -= 1;
					}
					i += 1;
				}
				if(!this._cbs[eventName].length){
					this._cbs[eventName] = null;
				}
			}
		}
	};
	var createTypedArray = (function(){
		function createRegularArray(type, len){
			var i = 0, arr = [], value;
			switch(type) {
				case 'int16':
				case 'uint8c':
					value = 1;
					break;
				default:
					value = 1.1;
					break;
			}
			for(i = 0; i < len; i += 1) {
				arr.push(value);
			}
			return arr;
		}
		function createTypedArray(type, len){
			if(type === 'float32') {
				return new Float32Array(len);
			} else if(type === 'int16') {
				return new Int16Array(len);
			} else if(type === 'uint8c') {
				return new Uint8ClampedArray(len);
			}
		}
		if(typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {
			return createTypedArray;
		} else {
			return createRegularArray;
		}
	}());

	function createSizedArray(len) {
		return Array.apply(null,{length:len});
	}
	function createNS(type) {
		//return {appendChild:function(){},setAttribute:function(){},style:{}}
		return document.createElementNS(svgNS, type);
	}
	function createTag(type) {
		//return {appendChild:function(){},setAttribute:function(){},style:{}}
		return document.createElement(type);
	}
	function DynamicPropertyContainer(){};
	DynamicPropertyContainer.prototype = {
		addDynamicProperty: function(prop) {
			if(this.dynamicProperties.indexOf(prop) === -1) {
				this.dynamicProperties.push(prop);
				this.container.addDynamicProperty(this);
				this._isAnimated = true;
			}
		},
		iterateDynamicProperties: function(){
			this._mdf = false;
			var i, len = this.dynamicProperties.length;
			for(i=0;i<len;i+=1){
				this.dynamicProperties[i].getValue();
				if(this.dynamicProperties[i]._mdf) {
					this._mdf = true;
				}
			}
		},
		initDynamicPropertyContainer: function(container){
			this.container = container;
			this.dynamicProperties = [];
			this._mdf = false;
			this._isAnimated = false;
		}
	}
	var getBlendMode = (function() {

		var blendModeEnums = {
			0:'source-over',
			1:'multiply',
			2:'screen',
			3:'overlay',
			4:'darken',
			5:'lighten',
			6:'color-dodge',
			7:'color-burn',
			8:'hard-light',
			9:'soft-light',
			10:'difference',
			11:'exclusion',
			12:'hue',
			13:'saturation',
			14:'color',
			15:'luminosity'
		}

		return function(mode) {
			return blendModeEnums[mode] || '';
		}
	}())
	/*!
 Transformation Matrix v2.0
 (c) Epistemex 2014-2015
 www.epistemex.com
 By Ken Fyrstenberg
 Contributions by leeoniya.
 License: MIT, header required.
 */

	/**
	 * 2D transformation matrix object initialized with identity matrix.
	 *
	 * The matrix can synchronize a canvas context by supplying the context
	 * as an argument, or later apply current absolute transform to an
	 * existing context.
	 *
	 * All values are handled as floating point values.
	 *
	 * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix
	 * @prop {number} a - scale x
	 * @prop {number} b - shear y
	 * @prop {number} c - shear x
	 * @prop {number} d - scale y
	 * @prop {number} e - translate x
	 * @prop {number} f - translate y
	 * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context
	 * @constructor
	 */

	var Matrix = (function(){

		var _cos = Math.cos;
		var _sin = Math.sin;
		var _tan = Math.tan;
		var _rnd = Math.round;

		function reset(){
			this.props[0] = 1;
			this.props[1] = 0;
			this.props[2] = 0;
			this.props[3] = 0;
			this.props[4] = 0;
			this.props[5] = 1;
			this.props[6] = 0;
			this.props[7] = 0;
			this.props[8] = 0;
			this.props[9] = 0;
			this.props[10] = 1;
			this.props[11] = 0;
			this.props[12] = 0;
			this.props[13] = 0;
			this.props[14] = 0;
			this.props[15] = 1;
			return this;
		}

		function rotate(angle) {
			if(angle === 0){
				return this;
			}
			var mCos = _cos(angle);
			var mSin = _sin(angle);
			return this._t(mCos, -mSin,  0, 0, mSin,  mCos, 0, 0, 0,  0,  1, 0, 0, 0, 0, 1);
		}

		function rotateX(angle){
			if(angle === 0){
				return this;
			}
			var mCos = _cos(angle);
			var mSin = _sin(angle);
			return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin,  mCos, 0, 0, 0, 0, 1);
		}

		function rotateY(angle){
			if(angle === 0){
				return this;
			}
			var mCos = _cos(angle);
			var mSin = _sin(angle);
			return this._t(mCos,  0,  mSin, 0, 0, 1, 0, 0, -mSin,  0,  mCos, 0, 0, 0, 0, 1);
		}

		function rotateZ(angle){
			if(angle === 0){
				return this;
			}
			var mCos = _cos(angle);
			var mSin = _sin(angle);
			return this._t(mCos, -mSin,  0, 0, mSin,  mCos, 0, 0, 0,  0,  1, 0, 0, 0, 0, 1);
		}

		function shear(sx,sy){
			return this._t(1, sy, sx, 1, 0, 0);
		}

		function skew(ax, ay){
			return this.shear(_tan(ax), _tan(ay));
		}

		function skewFromAxis(ax, angle){
			var mCos = _cos(angle);
			var mSin = _sin(angle);
			return this._t(mCos, mSin,  0, 0, -mSin,  mCos, 0, 0, 0,  0,  1, 0, 0, 0, 0, 1)
				._t(1, 0,  0, 0, _tan(ax),  1, 0, 0, 0,  0,  1, 0, 0, 0, 0, 1)
				._t(mCos, -mSin,  0, 0, mSin,  mCos, 0, 0, 0,  0,  1, 0, 0, 0, 0, 1);
			//return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);
		}

		function scale(sx, sy, sz) {
			if(!sz && sz !== 0) {
				sz = 1;
			}
			if(sx === 1 && sy === 1 && sz === 1){
				return this;
			}
			return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);
		}

		function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {
			this.props[0] = a;
			this.props[1] = b;
			this.props[2] = c;
			this.props[3] = d;
			this.props[4] = e;
			this.props[5] = f;
			this.props[6] = g;
			this.props[7] = h;
			this.props[8] = i;
			this.props[9] = j;
			this.props[10] = k;
			this.props[11] = l;
			this.props[12] = m;
			this.props[13] = n;
			this.props[14] = o;
			this.props[15] = p;
			return this;
		}

		function translate(tx, ty, tz) {
			tz = tz || 0;
			if(tx !== 0 || ty !== 0 || tz !== 0){
				return this._t(1,0,0,0,0,1,0,0,0,0,1,0,tx,ty,tz,1);
			}
			return this;
		}

		function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {

			var _p = this.props;

			if(a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0){
				//NOTE: commenting this condition because TurboFan deoptimizes code when present
				//if(m2 !== 0 || n2 !== 0 || o2 !== 0){
				_p[12] = _p[12] * a2 + _p[15] * m2;
				_p[13] = _p[13] * f2 + _p[15] * n2;
				_p[14] = _p[14] * k2 + _p[15] * o2;
				_p[15] = _p[15] * p2;
				//}
				this._identityCalculated = false;
				return this;
			}

			var a1 = _p[0];
			var b1 = _p[1];
			var c1 = _p[2];
			var d1 = _p[3];
			var e1 = _p[4];
			var f1 = _p[5];
			var g1 = _p[6];
			var h1 = _p[7];
			var i1 = _p[8];
			var j1 = _p[9];
			var k1 = _p[10];
			var l1 = _p[11];
			var m1 = _p[12];
			var n1 = _p[13];
			var o1 = _p[14];
			var p1 = _p[15];

			/* matrix order (canvas compatible):
         * ace
         * bdf
         * 001
         */
			_p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;
			_p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2 ;
			_p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2 ;
			_p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2 ;

			_p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2 ;
			_p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2 ;
			_p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2 ;
			_p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2 ;

			_p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2 ;
			_p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2 ;
			_p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2 ;
			_p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2 ;

			_p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2 ;
			_p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2 ;
			_p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2 ;
			_p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2 ;

			this._identityCalculated = false;
			return this;
		}

		function isIdentity() {
			if(!this._identityCalculated){
				this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);
				this._identityCalculated = true;
			}
			return this._identity;
		}

		function equals(matr){
			var i = 0;
			while (i < 16) {
				if(matr.props[i] !== this.props[i]) {
					return false;
				}
				i+=1;
			}
			return true;
		}

		function clone(matr){
			var i;
			for(i=0;i<16;i+=1){
				matr.props[i] = this.props[i];
			}
		}

		function cloneFromProps(props){
			var i;
			for(i=0;i<16;i+=1){
				this.props[i] = props[i];
			}
		}

		function applyToPoint(x, y, z) {

			return {
				x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],
				y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],
				z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]
			};
			/*return {
         x: x * me.a + y * me.c + me.e,
         y: x * me.b + y * me.d + me.f
         };*/
		}
		function applyToX(x, y, z) {
			return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];
		}
		function applyToY(x, y, z) {
			return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];
		}
		function applyToZ(x, y, z) {
			return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];
		}

		function getInverseMatrix() {
			var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];
			var a = this.props[5]/determinant;
			var b = - this.props[1]/determinant;
			var c = - this.props[4]/determinant;
			var d = this.props[0]/determinant;
			var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12])/determinant;
			var f = - (this.props[0] * this.props[13] - this.props[1] * this.props[12])/determinant;
			var inverseMatrix = new Matrix();
			inverseMatrix.props[0] = a;
			inverseMatrix.props[1] = b;
			inverseMatrix.props[4] = c;
			inverseMatrix.props[5] = d;
			inverseMatrix.props[12] = e;
			inverseMatrix.props[13] = f;
			return inverseMatrix;
		}

		function inversePoint(pt) {
			var inverseMatrix = this.getInverseMatrix();
			return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0)
		}

		function inversePoints(pts){
			var i, len = pts.length, retPts = [];
			for(i=0;i<len;i+=1){
				retPts[i] = inversePoint(pts[i]);
			}
			return retPts;
		}

		function applyToTriplePoints(pt1, pt2, pt3) {
			var arr = createTypedArray('float32', 6);
			if(this.isIdentity()) {
				arr[0] = pt1[0];
				arr[1] = pt1[1];
				arr[2] = pt2[0];
				arr[3] = pt2[1];
				arr[4] = pt3[0];
				arr[5] = pt3[1];
			} else {
				var p0 = this.props[0], p1 = this.props[1], p4 = this.props[4], p5 = this.props[5], p12 = this.props[12], p13 = this.props[13];
				arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;
				arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;
				arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;
				arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;
				arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;
				arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;
			}
			return arr;
		}

		function applyToPointArray(x,y,z){
			var arr;
			if(this.isIdentity()) {
				arr = [x,y,z];
			} else {
				arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];
			}
			return arr;
		}

		function applyToPointStringified(x, y) {
			if(this.isIdentity()) {
				return x + ',' + y;
			}
			var _p = this.props;
			return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100+','+ Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;
		}

		function toCSS() {
			//Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.
			/*if(this.isIdentity()) {
            return '';
        }*/
			var i = 0;
			var props = this.props;
			var cssValue = 'matrix3d(';
			var v = 10000;
			while(i<16){
				cssValue += _rnd(props[i]*v)/v;
				cssValue += i === 15 ? ')':',';
				i += 1;
			}
			return cssValue;
		}

		function roundMatrixProperty(val) {
			var v = 10000;
			if((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {
				return _rnd(val * v) / v;
			}
			return val;
		}

		function to2dCSS() {
			//Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.
			/*if(this.isIdentity()) {
            return '';
        }*/
			var props = this.props;
			var _a = roundMatrixProperty(props[0]);
			var _b = roundMatrixProperty(props[1]);
			var _c = roundMatrixProperty(props[4]);
			var _d = roundMatrixProperty(props[5]);
			var _e = roundMatrixProperty(props[12]);
			var _f = roundMatrixProperty(props[13]);
			return "matrix(" + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ")";
		}

		return function(){
			this.reset = reset;
			this.rotate = rotate;
			this.rotateX = rotateX;
			this.rotateY = rotateY;
			this.rotateZ = rotateZ;
			this.skew = skew;
			this.skewFromAxis = skewFromAxis;
			this.shear = shear;
			this.scale = scale;
			this.setTransform = setTransform;
			this.translate = translate;
			this.transform = transform;
			this.applyToPoint = applyToPoint;
			this.applyToX = applyToX;
			this.applyToY = applyToY;
			this.applyToZ = applyToZ;
			this.applyToPointArray = applyToPointArray;
			this.applyToTriplePoints = applyToTriplePoints;
			this.applyToPointStringified = applyToPointStringified;
			this.toCSS = toCSS;
			this.to2dCSS = to2dCSS;
			this.clone = clone;
			this.cloneFromProps = cloneFromProps;
			this.equals = equals;
			this.inversePoints = inversePoints;
			this.inversePoint = inversePoint;
			this.getInverseMatrix = getInverseMatrix;
			this._t = this.transform;
			this.isIdentity = isIdentity;
			this._identity = true;
			this._identityCalculated = false;

			this.props = createTypedArray('float32', 16);
			this.reset();
		};
	}());

	/*
 Copyright 2014 David Bau.

 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 "Software"), to deal in the Software without restriction, including
 without limitation the rights to use, copy, modify, merge, publish,
 distribute, sublicense, and/or sell copies of the Software, and to
 permit persons to whom the Software is furnished to do so, subject to
 the following conditions:

 The above copyright notice and this permission notice shall be
 included in all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 */

	(function (pool, math) {
//
// The following constants are related to IEEE 754 limits.
//
		var global = this,
			width = 256,        // each RC4 output is 0 <= x < 256
			chunks = 6,         // at least six RC4 outputs for each double
			digits = 52,        // there are 52 significant digits in a double
			rngname = 'random', // rngname: name for Math.random and Math.seedrandom
			startdenom = math.pow(width, chunks),
			significance = math.pow(2, digits),
			overflow = significance * 2,
			mask = width - 1,
			nodecrypto;         // node.js crypto module, initialized at the bottom.

//
// seedrandom()
// This is the seedrandom function described above.
//
		function seedrandom(seed, options, callback) {
			var key = [];
			options = (options === true) ? { entropy: true } : (options || {});

			// Flatten the seed string or build one from local entropy if needed.
			var shortseed = mixkey(flatten(
				options.entropy ? [seed, tostring(pool)] :
					(seed === null) ? autoseed() : seed, 3), key);

			// Use the seed to initialize an ARC4 generator.
			var arc4 = new ARC4(key);

			// This function returns a random double in [0, 1) that contains
			// randomness in every bit of the mantissa of the IEEE 754 value.
			var prng = function() {
				var n = arc4.g(chunks),             // Start with a numerator n < 2 ^ 48
					d = startdenom,                 //   and denominator d = 2 ^ 48.
					x = 0;                          //   and no 'extra last byte'.
				while (n < significance) {          // Fill up all significant digits by
					n = (n + x) * width;              //   shifting numerator and
					d *= width;                       //   denominator and generating a
					x = arc4.g(1);                    //   new least-significant-byte.
				}
				while (n >= overflow) {             // To avoid rounding up, before adding
					n /= 2;                           //   last byte, shift everything
					d /= 2;                           //   right using integer math until
					x >>>= 1;                         //   we have exactly the desired bits.
				}
				return (n + x) / d;                 // Form the number within [0, 1).
			};

			prng.int32 = function() { return arc4.g(4) | 0; };
			prng.quick = function() { return arc4.g(4) / 0x100000000; };
			prng.double = prng;

			// Mix the randomness into accumulated entropy.
			mixkey(tostring(arc4.S), pool);

			// Calling convention: what to return as a function of prng, seed, is_math.
			return (options.pass || callback ||
				function(prng, seed, is_math_call, state) {
					if (state) {
						// Load the arc4 state from the given state if it has an S array.
						if (state.S) { copy(state, arc4); }
						// Only provide the .state method if requested via options.state.
						prng.state = function() { return copy(arc4, {}); };
					}

					// If called as a method of Math (Math.seedrandom()), mutate
					// Math.random because that is how seedrandom.js has worked since v1.0.
					if (is_math_call) { math[rngname] = prng; return seed; }

						// Otherwise, it is a newer calling convention, so return the
					// prng directly.
					else return prng;
				})(
				prng,
				shortseed,
				'global' in options ? options.global : (this == math),
				options.state);
		}
		math['seed' + rngname] = seedrandom;

//
// ARC4
//
// An ARC4 implementation.  The constructor takes a key in the form of
// an array of at most (width) integers that should be 0 <= x < (width).
//
// The g(count) method returns a pseudorandom integer that concatenates
// the next (count) outputs from ARC4.  Its return value is a number x
// that is in the range 0 <= x < (width ^ count).
//
		function ARC4(key) {
			var t, keylen = key.length,
				me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];

			// The empty key [] is treated as [0].
			if (!keylen) { key = [keylen++]; }

			// Set up S using the standard key scheduling algorithm.
			while (i < width) {
				s[i] = i++;
			}
			for (i = 0; i < width; i++) {
				s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];
				s[j] = t;
			}

			// The "g" method returns the next (count) outputs as one number.
			me.g = function(count) {
				// Using instance members instead of closure state nearly doubles speed.
				var t, r = 0,
					i = me.i, j = me.j, s = me.S;
				while (count--) {
					t = s[i = mask & (i + 1)];
					r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];
				}
				me.i = i; me.j = j;
				return r;
				// For robust unpredictability, the function call below automatically
				// discards an initial batch of values.  This is called RC4-drop[256].
				// See http://google.com/search?q=rsa+fluhrer+response&btnI
			};
		}

//
// copy()
// Copies internal state of ARC4 to or from a plain object.
//
		function copy(f, t) {
			t.i = f.i;
			t.j = f.j;
			t.S = f.S.slice();
			return t;
		}

//
// flatten()
// Converts an object tree to nested arrays of strings.
//
		function flatten(obj, depth) {
			var result = [], typ = (typeof obj), prop;
			if (depth && typ == 'object') {
				for (prop in obj) {
					try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}
				}
			}
			return (result.length ? result : typ == 'string' ? obj : obj + '\0');
		}

//
// mixkey()
// Mixes a string seed into a key that is an array of integers, and
// returns a shortened string seed that is equivalent to the result key.
//
		function mixkey(seed, key) {
			var stringseed = seed + '', smear, j = 0;
			while (j < stringseed.length) {
				key[mask & j] =
					mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));
			}
			return tostring(key);
		}

//
// autoseed()
// Returns an object for autoseeding, using window.crypto and Node crypto
// module if available.
//
		function autoseed() {
			try {
				if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }
				var out = new Uint8Array(width);
				(global.crypto || global.msCrypto).getRandomValues(out);
				return tostring(out);
			} catch (e) {
				var browser = global.navigator,
					plugins = browser && browser.plugins;
				return [+new Date(), global, plugins, global.screen, tostring(pool)];
			}
		}

//
// tostring()
// Converts an array of charcodes to a string
//
		function tostring(a) {
			return String.fromCharCode.apply(0, a);
		}

//
// When seedrandom.js is loaded, we immediately mix a few bits
// from the built-in RNG into the entropy pool.  Because we do
// not want to interfere with deterministic PRNG state later,
// seedrandom will not call math.random on its own again after
// initialization.
//
		mixkey(math.random(), pool);

//
// Nodejs and AMD support: export the implementation as a module using
// either convention.
//

// End anonymous scope, and pass initial values.
	})(
		[],     // pool: entropy pool starts empty
		BMMath    // math: package containing random, pow, and seedrandom
	);
	var BezierFactory = (function(){
		/**
		 * BezierEasing - use bezier curve for transition easing function
		 * by Gaëtan Renaudeau 2014 - 2015 – MIT License
		 *
		 * Credits: is based on Firefox's nsSMILKeySpline.cpp
		 * Usage:
		 * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])
		 * spline.get(x) => returns the easing value | x must be in [0, 1] range
		 *
		 */

		var ob = {};
		ob.getBezierEasing = getBezierEasing;
		var beziers = {};

		function getBezierEasing(a,b,c,d,nm){
			var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\./g, 'p');
			if(beziers[str]){
				return beziers[str];
			}
			var bezEasing = new BezierEasing([a,b,c,d]);
			beziers[str] = bezEasing;
			return bezEasing;
		}

// These values are established by empiricism with tests (tradeoff: performance VS precision)
		var NEWTON_ITERATIONS = 4;
		var NEWTON_MIN_SLOPE = 0.001;
		var SUBDIVISION_PRECISION = 0.0000001;
		var SUBDIVISION_MAX_ITERATIONS = 10;

		var kSplineTableSize = 11;
		var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);

		var float32ArraySupported = typeof Float32Array === "function";

		function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }
		function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }
		function C (aA1)      { return 3.0 * aA1; }

// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
		function calcBezier (aT, aA1, aA2) {
			return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;
		}

// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.
		function getSlope (aT, aA1, aA2) {
			return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);
		}

		function binarySubdivide (aX, aA, aB, mX1, mX2) {
			var currentX, currentT, i = 0;
			do {
				currentT = aA + (aB - aA) / 2.0;
				currentX = calcBezier(currentT, mX1, mX2) - aX;
				if (currentX > 0.0) {
					aB = currentT;
				} else {
					aA = currentT;
				}
			} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);
			return currentT;
		}

		function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {
			for (var i = 0; i < NEWTON_ITERATIONS; ++i) {
				var currentSlope = getSlope(aGuessT, mX1, mX2);
				if (currentSlope === 0.0) return aGuessT;
				var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
				aGuessT -= currentX / currentSlope;
			}
			return aGuessT;
		}

		/**
		 * points is an array of [ mX1, mY1, mX2, mY2 ]
		 */
		function BezierEasing (points) {
			this._p = points;
			this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
			this._precomputed = false;

			this.get = this.get.bind(this);
		}

		BezierEasing.prototype = {

			get: function (x) {
				var mX1 = this._p[0],
					mY1 = this._p[1],
					mX2 = this._p[2],
					mY2 = this._p[3];
				if (!this._precomputed) this._precompute();
				if (mX1 === mY1 && mX2 === mY2) return x; // linear
				// Because JavaScript number are imprecise, we should guarantee the extremes are right.
				if (x === 0) return 0;
				if (x === 1) return 1;
				return calcBezier(this._getTForX(x), mY1, mY2);
			},

			// Private part

			_precompute: function () {
				var mX1 = this._p[0],
					mY1 = this._p[1],
					mX2 = this._p[2],
					mY2 = this._p[3];
				this._precomputed = true;
				if (mX1 !== mY1 || mX2 !== mY2)
					this._calcSampleValues();
			},

			_calcSampleValues: function () {
				var mX1 = this._p[0],
					mX2 = this._p[2];
				for (var i = 0; i < kSplineTableSize; ++i) {
					this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
				}
			},

			/**
			 * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.
			 */
			_getTForX: function (aX) {
				var mX1 = this._p[0],
					mX2 = this._p[2],
					mSampleValues = this._mSampleValues;

				var intervalStart = 0.0;
				var currentSample = 1;
				var lastSample = kSplineTableSize - 1;

				for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
					intervalStart += kSampleStepSize;
				}
				--currentSample;

				// Interpolate to provide an initial guess for t
				var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);
				var guessForT = intervalStart + dist * kSampleStepSize;

				var initialSlope = getSlope(guessForT, mX1, mX2);
				if (initialSlope >= NEWTON_MIN_SLOPE) {
					return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
				} else if (initialSlope === 0.0) {
					return guessForT;
				} else {
					return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);
				}
			}
		};

		return ob;

	}());
	(function () {
		var lastTime = 0;
		var vendors = ['ms', 'moz', 'webkit', 'o'];
		for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
			window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
			window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
		}
		if(!window.requestAnimationFrame)
			window.requestAnimationFrame = function (callback, element) {
				var currTime = new Date().getTime();
				var timeToCall = Math.max(0, 16 - (currTime - lastTime));
				var id = setTimeout(function () {
						callback(currTime + timeToCall);
					},
					timeToCall);
				lastTime = currTime + timeToCall;
				return id;
			};
		if(!window.cancelAnimationFrame)
			window.cancelAnimationFrame = function (id) {
				clearTimeout(id);
			};
	}());

	function extendPrototype(sources,destination){
		var i, len = sources.length, sourcePrototype;
		for (i = 0;i < len;i += 1) {
			sourcePrototype = sources[i].prototype;
			for (var attr in sourcePrototype) {
				if (sourcePrototype.hasOwnProperty(attr)) destination.prototype[attr] = sourcePrototype[attr];
			}
		}
	}

	function getDescriptor(object, prop) {
		return Object.getOwnPropertyDescriptor(object, prop);
	}

	function createProxyFunction(prototype) {
		function ProxyFunction(){}
		ProxyFunction.prototype = prototype;
		return ProxyFunction;
	}
	function bezFunction(){

		var easingFunctions = [];
		var math = Math;

		function pointOnLine2D(x1,y1, x2,y2, x3,y3){
			var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);
			return det1 > -0.001 && det1 < 0.001;
		}

		function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){
			if(z1 === 0 && z2 === 0 && z3 === 0) {
				return pointOnLine2D(x1,y1, x2,y2, x3,y3);
			}
			var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));
			var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));
			var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));
			var diffDist;
			if(dist1 > dist2){
				if(dist1 > dist3){
					diffDist = dist1 - dist2 - dist3;
				} else {
					diffDist = dist3 - dist2 - dist1;
				}
			} else if(dist3 > dist2){
				diffDist = dist3 - dist2 - dist1;
			} else {
				diffDist = dist2 - dist1 - dist3;
			}
			return diffDist > -0.0001 && diffDist < 0.0001;
		}

		var getBezierLength = (function(){

			return function(pt1,pt2,pt3,pt4){
				var curveSegments = defaultCurveSegments;
				var k;
				var i, len;
				var ptCoord,perc,addedLength = 0;
				var ptDistance;
				var point = [],lastPoint = [];
				var lengthData = bezier_length_pool.newElement();
				len = pt3.length;
				for(k=0;k<curveSegments;k+=1){
					perc = k/(curveSegments-1);
					ptDistance = 0;
					for(i=0;i<len;i+=1){
						ptCoord = bm_pow(1-perc,3)*pt1[i]+3*bm_pow(1-perc,2)*perc*pt3[i]+3*(1-perc)*bm_pow(perc,2)*pt4[i]+bm_pow(perc,3)*pt2[i];
						point[i] = ptCoord;
						if(lastPoint[i] !== null){
							ptDistance += bm_pow(point[i] - lastPoint[i],2);
						}
						lastPoint[i] = point[i];
					}
					if(ptDistance){
						ptDistance = bm_sqrt(ptDistance);
						addedLength += ptDistance;
					}
					lengthData.percents[k] = perc;
					lengthData.lengths[k] = addedLength;
				}
				lengthData.addedLength = addedLength;
				return lengthData;
			};
		}());

		function getSegmentsLength(shapeData) {
			var segmentsLength = segments_length_pool.newElement();
			var closed = shapeData.c;
			var pathV = shapeData.v;
			var pathO = shapeData.o;
			var pathI = shapeData.i;
			var i, len = shapeData._length;
			var lengths = segmentsLength.lengths;
			var totalLength = 0;
			for(i=0;i<len-1;i+=1){
				lengths[i] = getBezierLength(pathV[i],pathV[i+1],pathO[i],pathI[i+1]);
				totalLength += lengths[i].addedLength;
			}
			if(closed && len){
				lengths[i] = getBezierLength(pathV[i],pathV[0],pathO[i],pathI[0]);
				totalLength += lengths[i].addedLength;
			}
			segmentsLength.totalLength = totalLength;
			return segmentsLength;
		}

		function BezierData(length){
			this.segmentLength = 0;
			this.points = new Array(length);
		}

		function PointData(partial,point){
			this.partialLength = partial;
			this.point = point;
		}

		var buildBezierData = (function(){

			var storedData = {};

			return function (pt1, pt2, pt3, pt4){
				var bezierName = (pt1[0]+'_'+pt1[1]+'_'+pt2[0]+'_'+pt2[1]+'_'+pt3[0]+'_'+pt3[1]+'_'+pt4[0]+'_'+pt4[1]).replace(/\./g, 'p');
				if(!storedData[bezierName]){
					var curveSegments = defaultCurveSegments;
					var k, i, len;
					var ptCoord,perc,addedLength = 0;
					var ptDistance;
					var point,lastPoint = null;
					if (pt1.length === 2 && (pt1[0] != pt2[0] || pt1[1] != pt2[1]) && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt1[0]+pt3[0],pt1[1]+pt3[1]) && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt2[0]+pt4[0],pt2[1]+pt4[1])){
						curveSegments = 2;
					}
					var bezierData = new BezierData(curveSegments);
					len = pt3.length;
					for (k = 0; k < curveSegments; k += 1) {
						point = createSizedArray(len);
						perc = k / (curveSegments - 1);
						ptDistance = 0;
						for (i = 0; i < len; i += 1){
							ptCoord = bm_pow(1-perc,3)*pt1[i]+3*bm_pow(1-perc,2)*perc*(pt1[i] + pt3[i])+3*(1-perc)*bm_pow(perc,2)*(pt2[i] + pt4[i])+bm_pow(perc,3)*pt2[i];
							point[i] = ptCoord;
							if(lastPoint !== null){
								ptDistance += bm_pow(point[i] - lastPoint[i],2);
							}
						}
						ptDistance = bm_sqrt(ptDistance);
						addedLength += ptDistance;
						bezierData.points[k] = new PointData(ptDistance, point);
						lastPoint = point;
					}
					bezierData.segmentLength = addedLength;
					storedData[bezierName] = bezierData;
				}
				return storedData[bezierName];
			};
		}());

		function getDistancePerc(perc,bezierData){
			var percents = bezierData.percents;
			var lengths = bezierData.lengths;
			var len = percents.length;
			var initPos = bm_floor((len-1)*perc);
			var lengthPos = perc*bezierData.addedLength;
			var lPerc = 0;
			if(initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]){
				return percents[initPos];
			}else{
				var dir = lengths[initPos] > lengthPos ? -1 : 1;
				var flag = true;
				while(flag){
					if(lengths[initPos] <= lengthPos && lengths[initPos+1] > lengthPos){
						lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos+1] - lengths[initPos]);
						flag = false;
					}else{
						initPos += dir;
					}
					if(initPos < 0 || initPos >= len - 1){
						//FIX for TypedArrays that don't store floating point values with enough accuracy
						if(initPos === len - 1) {
							return percents[initPos];
						}
						flag = false;
					}
				}
				return percents[initPos] + (percents[initPos+1] - percents[initPos])*lPerc;
			}
		}

		function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {
			var t1 = getDistancePerc(percent,bezierData);
			var u0 = 1;
			var u1 = 1 - t1;
			var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;
			var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;
			return [ptX, ptY];
		}

		function getSegmentArray() {

		}

		var bezier_segment_points = createTypedArray('float32', 8);

		function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){

			startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;
			var t0 = getDistancePerc(startPerc,bezierData);
			endPerc = endPerc > 1 ? 1 : endPerc;
			var t1 = getDistancePerc(endPerc,bezierData);
			var i, len = pt1.length;
			var u0 = 1 - t0;
			var u1 = 1 - t1;
			var u0u0u0 = u0*u0*u0;
			var t0u0u0_3 = t0*u0*u0*3;
			var t0t0u0_3 = t0*t0*u0*3;
			var t0t0t0 = t0*t0*t0;
			//
			var u0u0u1 = u0*u0*u1;
			var t0u0u1_3 = t0*u0*u1 + u0*t0*u1 + u0*u0*t1;
			var t0t0u1_3 = t0*t0*u1 + u0*t0*t1 + t0*u0*t1;
			var t0t0t1 = t0*t0*t1;
			//
			var u0u1u1 = u0*u1*u1;
			var t0u1u1_3 = t0*u1*u1 + u0*t1*u1 + u0*u1*t1;
			var t0t1u1_3 = t0*t1*u1 + u0*t1*t1 + t0*u1*t1;
			var t0t1t1 = t0*t1*t1;
			//
			var u1u1u1 = u1*u1*u1;
			var t1u1u1_3 = t1*u1*u1 + u1*t1*u1 + u1*u1*t1;
			var t1t1u1_3 = t1*t1*u1 + u1*t1*t1 + t1*u1*t1;
			var t1t1t1 = t1*t1*t1;
			for(i=0;i<len;i+=1){
				bezier_segment_points[i * 4] = Math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000;
				bezier_segment_points[i * 4 + 1] = Math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000;
				bezier_segment_points[i * 4 + 2] = Math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000;
				bezier_segment_points[i * 4 + 3] = Math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000;
			}

			return bezier_segment_points;
		}

		return {
			getSegmentsLength : getSegmentsLength,
			getNewSegment : getNewSegment,
			getPointInSegment : getPointInSegment,
			buildBezierData : buildBezierData,
			pointOnLine2D : pointOnLine2D,
			pointOnLine3D : pointOnLine3D
		};
	}

	var bez = bezFunction();
	function dataFunctionManager(){

		//var tCanvasHelper = createTag('canvas').getContext('2d');

		function completeLayers(layers, comps, fontManager){
			var layerData;
			var animArray, lastFrame;
			var i, len = layers.length;
			var j, jLen, k, kLen;
			for(i=0;i<len;i+=1){
				layerData = layers[i];
				if(!('ks' in layerData) || layerData.completed){
					continue;
				}
				layerData.completed = true;
				if(layerData.tt){
					layers[i-1].td = layerData.tt;
				}
				animArray = [];
				lastFrame = -1;
				if(layerData.hasMask){
					var maskProps = layerData.masksProperties;
					jLen = maskProps.length;
					for(j=0;j<jLen;j+=1){
						if(maskProps[j].pt.k.i){
							convertPathsToAbsoluteValues(maskProps[j].pt.k);
						}else{
							kLen = maskProps[j].pt.k.length;
							for(k=0;k<kLen;k+=1){
								if(maskProps[j].pt.k[k].s){
									convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);
								}
								if(maskProps[j].pt.k[k].e){
									convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);
								}
							}
						}
					}
				}
				if(layerData.ty===0){
					layerData.layers = findCompLayers(layerData.refId, comps);
					completeLayers(layerData.layers,comps, fontManager);
				}else if(layerData.ty === 4){
					completeShapes(layerData.shapes);
				}else if(layerData.ty == 5){
					completeText(layerData, fontManager);
				}
			}
		}

		function findCompLayers(id,comps){
			var i = 0, len = comps.length;
			while(i<len){
				if(comps[i].id === id){
					if(!comps[i].layers.__used) {
						comps[i].layers.__used = true;
						return comps[i].layers;
					}
					return JSON.parse(JSON.stringify(comps[i].layers));
				}
				i += 1;
			}
		}

		function completeShapes(arr){
			var i, len = arr.length;
			var j, jLen;
			var hasPaths = false;
			for(i=len-1;i>=0;i-=1){
				if(arr[i].ty == 'sh'){
					if(arr[i].ks.k.i){
						convertPathsToAbsoluteValues(arr[i].ks.k);
					}else{
						jLen = arr[i].ks.k.length;
						for(j=0;j<jLen;j+=1){
							if(arr[i].ks.k[j].s){
								convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);
							}
							if(arr[i].ks.k[j].e){
								convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);
							}
						}
					}
					hasPaths = true;
				}else if(arr[i].ty == 'gr'){
					completeShapes(arr[i].it);
				}
			}
			/*if(hasPaths){
            //mx: distance
            //ss: sensitivity
            //dc: decay
            arr.splice(arr.length-1,0,{
                "ty": "ms",
                "mx":20,
                "ss":10,
                 "dc":0.001,
                "maxDist":200
            });
        }*/
		}

		function convertPathsToAbsoluteValues(path){
			var i, len = path.i.length;
			for(i=0;i<len;i+=1){
				path.i[i][0] += path.v[i][0];
				path.i[i][1] += path.v[i][1];
				path.o[i][0] += path.v[i][0];
				path.o[i][1] += path.v[i][1];
			}
		}

		function checkVersion(minimum,animVersionString){
			var animVersion = animVersionString ? animVersionString.split('.') : [100,100,100];
			if(minimum[0]>animVersion[0]){
				return true;
			} else if(animVersion[0] > minimum[0]){
				return false;
			}
			if(minimum[1]>animVersion[1]){
				return true;
			} else if(animVersion[1] > minimum[1]){
				return false;
			}
			if(minimum[2]>animVersion[2]){
				return true;
			} else if(animVersion[2] > minimum[2]){
				return false;
			}
		}

		var checkText = (function(){
			var minimumVersion = [4,4,14];

			function updateTextLayer(textLayer){
				var documentData = textLayer.t.d;
				textLayer.t.d = {
					k: [
						{
							s:documentData,
							t:0
						}
					]
				};
			}

			function iterateLayers(layers){
				var i, len = layers.length;
				for(i=0;i<len;i+=1){
					if(layers[i].ty === 5){
						updateTextLayer(layers[i]);
					}
				}
			}

			return function (animationData){
				if(checkVersion(minimumVersion,animationData.v)){
					iterateLayers(animationData.layers);
					if(animationData.assets){
						var i, len = animationData.assets.length;
						for(i=0;i<len;i+=1){
							if(animationData.assets[i].layers){
								iterateLayers(animationData.assets[i].layers);

							}
						}
					}
				}
			};
		}());

		var checkChars = (function() {
			var minimumVersion = [4,7,99];
			return function (animationData){
				if(animationData.chars && !checkVersion(minimumVersion,animationData.v)){
					var i, len = animationData.chars.length, j, jLen, k, kLen;
					var pathData, paths;
					for(i = 0; i < len; i += 1) {
						if(animationData.chars[i].data && animationData.chars[i].data.shapes) {
							paths = animationData.chars[i].data.shapes[0].it;
							jLen = paths.length;

							for(j = 0; j < jLen; j += 1) {
								pathData = paths[j].ks.k;
								if(!pathData.__converted) {
									convertPathsToAbsoluteValues(paths[j].ks.k);
									pathData.__converted = true;
								}
							}
						}
					}
				}
			};
		}());

		var checkColors = (function(){
			var minimumVersion = [4,1,9];

			function iterateShapes(shapes){
				var i, len = shapes.length;
				var j, jLen;
				for(i=0;i<len;i+=1){
					if(shapes[i].ty === 'gr'){
						iterateShapes(shapes[i].it);
					}else if(shapes[i].ty === 'fl' || shapes[i].ty === 'st'){
						if(shapes[i].c.k && shapes[i].c.k[0].i){
							jLen = shapes[i].c.k.length;
							for(j=0;j<jLen;j+=1){
								if(shapes[i].c.k[j].s){
									shapes[i].c.k[j].s[0] /= 255;
									shapes[i].c.k[j].s[1] /= 255;
									shapes[i].c.k[j].s[2] /= 255;
									shapes[i].c.k[j].s[3] /= 255;
								}
								if(shapes[i].c.k[j].e){
									shapes[i].c.k[j].e[0] /= 255;
									shapes[i].c.k[j].e[1] /= 255;
									shapes[i].c.k[j].e[2] /= 255;
									shapes[i].c.k[j].e[3] /= 255;
								}
							}
						} else {
							shapes[i].c.k[0] /= 255;
							shapes[i].c.k[1] /= 255;
							shapes[i].c.k[2] /= 255;
							shapes[i].c.k[3] /= 255;
						}
					}
				}
			}

			function iterateLayers(layers){
				var i, len = layers.length;
				for(i=0;i<len;i+=1){
					if(layers[i].ty === 4){
						iterateShapes(layers[i].shapes);
					}
				}
			}

			return function (animationData){
				if(checkVersion(minimumVersion,animationData.v)){
					iterateLayers(animationData.layers);
					if(animationData.assets){
						var i, len = animationData.assets.length;
						for(i=0;i<len;i+=1){
							if(animationData.assets[i].layers){
								iterateLayers(animationData.assets[i].layers);

							}
						}
					}
				}
			};
		}());

		var checkShapes = (function(){
			var minimumVersion = [4,4,18];



			function completeShapes(arr){
				var i, len = arr.length;
				var j, jLen;
				var hasPaths = false;
				for(i=len-1;i>=0;i-=1){
					if(arr[i].ty == 'sh'){
						if(arr[i].ks.k.i){
							arr[i].ks.k.c = arr[i].closed;
						}else{
							jLen = arr[i].ks.k.length;
							for(j=0;j<jLen;j+=1){
								if(arr[i].ks.k[j].s){
									arr[i].ks.k[j].s[0].c = arr[i].closed;
								}
								if(arr[i].ks.k[j].e){
									arr[i].ks.k[j].e[0].c = arr[i].closed;
								}
							}
						}
						hasPaths = true;
					}else if(arr[i].ty == 'gr'){
						completeShapes(arr[i].it);
					}
				}
			}

			function iterateLayers(layers){
				var layerData;
				var i, len = layers.length;
				var j, jLen, k, kLen;
				for(i=0;i<len;i+=1){
					layerData = layers[i];
					if(layerData.hasMask){
						var maskProps = layerData.masksProperties;
						jLen = maskProps.length;
						for(j=0;j<jLen;j+=1){
							if(maskProps[j].pt.k.i){
								maskProps[j].pt.k.c = maskProps[j].cl;
							}else{
								kLen = maskProps[j].pt.k.length;
								for(k=0;k<kLen;k+=1){
									if(maskProps[j].pt.k[k].s){
										maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;
									}
									if(maskProps[j].pt.k[k].e){
										maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;
									}
								}
							}
						}
					}
					if(layerData.ty === 4){
						completeShapes(layerData.shapes);
					}
				}
			}

			return function (animationData){
				if(checkVersion(minimumVersion,animationData.v)){
					iterateLayers(animationData.layers);
					if(animationData.assets){
						var i, len = animationData.assets.length;
						for(i=0;i<len;i+=1){
							if(animationData.assets[i].layers){
								iterateLayers(animationData.assets[i].layers);

							}
						}
					}
				}
			};
		}());

		function completeData(animationData, fontManager){
			if(animationData.__complete){
				return;
			}
			checkColors(animationData);
			checkText(animationData);
			checkChars(animationData);
			checkShapes(animationData);
			completeLayers(animationData.layers, animationData.assets, fontManager);
			animationData.__complete = true;
			//blitAnimation(animationData, animationData.assets, fontManager);
		}

		function completeText(data, fontManager){
			if(data.t.a.length === 0 && !('m' in data.t.p)){
				data.singleShape = true;
			}
		}

		var moduleOb = {};
		moduleOb.completeData = completeData;
		moduleOb.checkColors = checkColors;
		moduleOb.checkChars = checkChars;
		moduleOb.checkShapes = checkShapes;
		moduleOb.completeLayers = completeLayers;

		return moduleOb;
	}

	var dataManager = dataFunctionManager();

	var FontManager = (function(){

		var maxWaitingTime = 5000;
		var emptyChar = {
			w: 0,
			size:0,
			shapes:[]
		};
		var combinedCharacters = [];
		//Hindi characters
		combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366
			, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379
			, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);

		function setUpNode(font, family){
			var parentNode = createTag('span');
			parentNode.style.fontFamily    = family;
			var node = createTag('span');
			// Characters that vary significantly among different fonts
			node.innerHTML = 'giItT1WQy@!-/#';
			// Visible - so we can measure it - but not on the screen
			parentNode.style.position      = 'absolute';
			parentNode.style.left          = '-10000px';
			parentNode.style.top           = '-10000px';
			// Large font size makes even subtle changes obvious
			parentNode.style.fontSize      = '300px';
			// Reset any font properties
			parentNode.style.fontVariant   = 'normal';
			parentNode.style.fontStyle     = 'normal';
			parentNode.style.fontWeight    = 'normal';
			parentNode.style.letterSpacing = '0';
			parentNode.appendChild(node);
			document.body.appendChild(parentNode);

			// Remember width with no applied web font
			var width = node.offsetWidth;
			node.style.fontFamily = font + ', '+family;
			return {node:node, w:width, parent:parentNode};
		}

		function checkLoadedFonts() {
			var i, len = this.fonts.length;
			var node, w;
			var loadedCount = len;
			for(i=0;i<len; i+= 1){
				if(this.fonts[i].loaded){
					loadedCount -= 1;
					continue;
				}
				if(this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0){
					this.fonts[i].loaded = true;
				} else{
					node = this.fonts[i].monoCase.node;
					w = this.fonts[i].monoCase.w;
					if(node.offsetWidth !== w){
						loadedCount -= 1;
						this.fonts[i].loaded = true;
					}else{
						node = this.fonts[i].sansCase.node;
						w = this.fonts[i].sansCase.w;
						if(node.offsetWidth !== w){
							loadedCount -= 1;
							this.fonts[i].loaded = true;
						}
					}
					if(this.fonts[i].loaded){
						this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);
						this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);
					}
				}
			}

			if(loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime){
				setTimeout(this.checkLoadedFonts.bind(this),20);
			}else{
				setTimeout(function(){this.isLoaded = true;}.bind(this),0);

			}
		}

		function createHelper(def, fontData){
			var tHelper = createNS('text');
			tHelper.style.fontSize = '100px';
			//tHelper.style.fontFamily = fontData.fFamily;
			tHelper.setAttribute('font-family', fontData.fFamily);
			tHelper.setAttribute('font-style', fontData.fStyle);
			tHelper.setAttribute('font-weight', fontData.fWeight);
			tHelper.textContent = '1';
			if(fontData.fClass){
				tHelper.style.fontFamily = 'inherit';
				tHelper.setAttribute('class', fontData.fClass);
			} else {
				tHelper.style.fontFamily = fontData.fFamily;
			}
			def.appendChild(tHelper);
			var tCanvasHelper = createTag('canvas').getContext('2d');
			tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px '+ fontData.fFamily;
			//tCanvasHelper.font = ' 100px '+ fontData.fFamily;
			return tHelper;
		}

		function addFonts(fontData, defs){
			if(!fontData){
				this.isLoaded = true;
				return;
			}
			if(this.chars){
				this.isLoaded = true;
				this.fonts = fontData.list;
				return;
			}


			var fontArr = fontData.list;
			var i, len = fontArr.length;
			var _pendingFonts = len;
			for(i=0; i<len; i+= 1){
				var shouldLoadFont = true;
				var loadedSelector;
				var j;
				fontArr[i].loaded = false;
				fontArr[i].monoCase = setUpNode(fontArr[i].fFamily,'monospace');
				fontArr[i].sansCase = setUpNode(fontArr[i].fFamily,'sans-serif');
				if(!fontArr[i].fPath) {
					fontArr[i].loaded = true;
					_pendingFonts -= 1;
				}else if(fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3){
					loadedSelector = document.querySelectorAll('style[f-forigin="p"][f-family="'+ fontArr[i].fFamily +'"], style[f-origin="3"][f-family="'+ fontArr[i].fFamily +'"]');

					if (loadedSelector.length > 0) {
						shouldLoadFont = false;
					}

					if (shouldLoadFont) {
						var s = createTag('style');
						s.setAttribute('f-forigin', fontArr[i].fOrigin);
						s.setAttribute('f-origin', fontArr[i].origin);
						s.setAttribute('f-family', fontArr[i].fFamily);
						s.type = "text/css";
						s.innerHTML = "@font-face {" + "font-family: "+fontArr[i].fFamily+"; font-style: normal; src: url('"+fontArr[i].fPath+"');}";
						defs.appendChild(s);
					}
				} else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){
					loadedSelector = document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]');

					for (j = 0; j < loadedSelector.length; j++) {
						if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {
							// Font is already loaded
							shouldLoadFont = false;
						}
					}

					if (shouldLoadFont) {
						var l = createTag('link');
						l.setAttribute('f-forigin', fontArr[i].fOrigin);
						l.setAttribute('f-origin', fontArr[i].origin);
						l.type = "text/css";
						l.rel = "stylesheet";
						l.href = fontArr[i].fPath;
						document.body.appendChild(l);
					}
				} else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){
					loadedSelector = document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]');

					for (j = 0; j < loadedSelector.length; j++) {
						if (fontArr[i].fPath === loadedSelector[j].src) {
							// Font is already loaded
							shouldLoadFont = false;
						}
					}

					if (shouldLoadFont) {
						var sc = createTag('link');
						sc.setAttribute('f-forigin', fontArr[i].fOrigin);
						sc.setAttribute('f-origin', fontArr[i].origin);
						sc.setAttribute('rel','stylesheet');
						sc.setAttribute('href',fontArr[i].fPath);
						defs.appendChild(sc);
					}
				}
				fontArr[i].helper = createHelper(defs,fontArr[i]);
				fontArr[i].cache = {};
				this.fonts.push(fontArr[i]);
			}
			if (_pendingFonts === 0) {
				this.isLoaded = true;
			} else {
				//On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.
				//Adding this timeout seems to fix it
				setTimeout(this.checkLoadedFonts.bind(this), 100);
			}
		}

		function addChars(chars){
			if(!chars){
				return;
			}
			if(!this.chars){
				this.chars = [];
			}
			var i, len = chars.length;
			var j, jLen = this.chars.length, found;
			for(i=0;i<len;i+=1){
				j = 0;
				found = false;
				while(j<jLen){
					if(this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch){
						found = true;
					}
					j += 1;
				}
				if(!found){
					this.chars.push(chars[i]);
					jLen += 1;
				}
			}
		}

		function getCharData(char, style, font){
			var i = 0, len = this.chars.length;
			while( i < len) {
				if(this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font){

					return this.chars[i];
				}
				i+= 1;
			}
			if((typeof char === 'string' && char.charCodeAt(0) !== 13 || !char) && console && console.warn) {
				console.warn('Missing character from exported characters list: ', char, style, font);
			}
			return emptyChar;
		}

		function measureText(char, fontName, size) {
			var fontData = this.getFontByName(fontName);
			var index = char.charCodeAt(0);
			if(!fontData.cache[index + 1]) {
				var tHelper = fontData.helper;
				//Canvas version
				//fontData.cache[index] = tHelper.measureText(char).width / 100;
				//SVG version
				//console.log(tHelper.getBBox().width)
				if (char === ' ') {
					tHelper.textContent = '|' + char + '|';
					var doubleSize = tHelper.getComputedTextLength();
					tHelper.textContent = '||';
					var singleSize = tHelper.getComputedTextLength();
					fontData.cache[index + 1] = (doubleSize - singleSize)/100;
				} else {
					tHelper.textContent = char;
					fontData.cache[index + 1] = (tHelper.getComputedTextLength())/100;
				}
			}
			return fontData.cache[index + 1] * size;
		}

		function getFontByName(name){
			var i = 0, len = this.fonts.length;
			while(i<len){
				if(this.fonts[i].fName === name) {
					return this.fonts[i];
				}
				i += 1;
			}
			return this.fonts[0];
		}

		function getCombinedCharacterCodes() {
			return combinedCharacters;
		}

		function loaded() {
			return this.isLoaded;
		}

		var Font = function(){
			this.fonts = [];
			this.chars = null;
			this.typekitLoaded = 0;
			this.isLoaded = false;
			this.initTime = Date.now();
		};
		//TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.
		Font.getCombinedCharacterCodes = getCombinedCharacterCodes;

		Font.prototype.addChars = addChars;
		Font.prototype.addFonts = addFonts;
		Font.prototype.getCharData = getCharData;
		Font.prototype.getFontByName = getFontByName;
		Font.prototype.measureText = measureText;
		Font.prototype.checkLoadedFonts = checkLoadedFonts;
		Font.prototype.loaded = loaded;

		return Font;

	}());
	var PropertyFactory = (function(){

		var initFrame = initialDefaultFrame;
		var math_abs = Math.abs;

		function interpolateValue(frameNum, caching) {
			var offsetTime = this.offsetTime;
			var newValue;
			if (this.propType === 'multidimensional') {
				newValue = createTypedArray('float32', this.pv.length);
			}
			var iterationIndex = caching.lastIndex;
			var i = iterationIndex;
			var len = this.keyframes.length - 1, flag = true;
			var keyData, nextKeyData;

			while (flag) {
				keyData = this.keyframes[i];
				nextKeyData = this.keyframes[i + 1];
				if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime){
					if(keyData.h){
						keyData = nextKeyData;
					}
					iterationIndex = 0;
					break;
				}
				if ((nextKeyData.t - offsetTime) > frameNum){
					iterationIndex = i;
					break;
				}
				if (i < len - 1){
					i += 1;
				} else {
					iterationIndex = 0;
					flag = false;
				}
			}

			var k, kLen, perc, jLen, j, fnc;
			var nextKeyTime = nextKeyData.t - offsetTime;
			var keyTime = keyData.t - offsetTime;
			var endValue;
			if (keyData.to) {
				if (!keyData.bezierData) {
					keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);
				}
				var bezierData = keyData.bezierData;
				if (frameNum >= nextKeyTime || frameNum < keyTime) {
					var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;
					kLen = bezierData.points[ind].point.length;
					for (k = 0; k < kLen; k += 1) {
						newValue[k] = bezierData.points[ind].point[k];
					}
					// caching._lastKeyframeIndex = -1;
				} else {
					if (keyData.__fnct) {
						fnc = keyData.__fnct;
					} else {
						fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;
						keyData.__fnct = fnc;
					}
					perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));
					var distanceInLine = bezierData.segmentLength*perc;

					var segmentPerc;
					var addedLength =  (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;
					j =  (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;
					flag = true;
					jLen = bezierData.points.length;
					while (flag) {
						addedLength += bezierData.points[j].partialLength;
						if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {
							kLen = bezierData.points[j].point.length;
							for (k = 0; k < kLen; k += 1) {
								newValue[k] = bezierData.points[j].point[k];
							}
							break;
						} else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {
							segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;
							kLen = bezierData.points[j].point.length;
							for (k = 0; k < kLen; k += 1) {
								newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;
							}
							break;
						}
						if (j < jLen - 1){
							j += 1;
						} else {
							flag = false;
						}
					}
					caching._lastPoint = j;
					caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;
					caching._lastKeyframeIndex = i;
				}
			} else {
				var outX, outY, inX, inY, keyValue;
				len = keyData.s.length;
				endValue = nextKeyData.s || keyData.e;
				if (this.sh && keyData.h !== 1) {
					if (frameNum >= nextKeyTime) {
						newValue[0] = endValue[0];
						newValue[1] = endValue[1];
						newValue[2] = endValue[2];
					} else if (frameNum <= keyTime) {
						newValue[0] = keyData.s[0];
						newValue[1] = keyData.s[1];
						newValue[2] = keyData.s[2];
					} else {
						var quatStart = createQuaternion(keyData.s);
						var quatEnd = createQuaternion(endValue);
						var time = (frameNum - keyTime) / (nextKeyTime - keyTime);
						quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));
					}

				} else {
					for(i = 0; i < len; i += 1) {
						if (keyData.h !== 1) {
							if (frameNum >= nextKeyTime) {
								perc = 1;
							} else if(frameNum < keyTime) {
								perc = 0;
							} else {
								if(keyData.o.x.constructor === Array) {
									if (!keyData.__fnct) {
										keyData.__fnct = [];
									}
									if (!keyData.__fnct[i]) {
										outX = (typeof keyData.o.x[i] === 'undefined') ? keyData.o.x[0] : keyData.o.x[i];
										outY = (typeof keyData.o.y[i] === 'undefined') ? keyData.o.y[0] : keyData.o.y[i];
										inX = (typeof keyData.i.x[i] === 'undefined') ? keyData.i.x[0] : keyData.i.x[i];
										inY = (typeof keyData.i.y[i] === 'undefined') ? keyData.i.y[0] : keyData.i.y[i];
										fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;
										keyData.__fnct[i] = fnc;
									} else {
										fnc = keyData.__fnct[i];
									}
								} else {
									if (!keyData.__fnct) {
										outX = keyData.o.x;
										outY = keyData.o.y;
										inX = keyData.i.x;
										inY = keyData.i.y;
										fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;
										keyData.__fnct = fnc;
									} else {
										fnc = keyData.__fnct;
									}
								}
								perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime ));
							}
						}

						endValue = nextKeyData.s || keyData.e;
						keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;

						if (this.propType === 'multidimensional') {
							newValue[i] = keyValue;
						} else {
							newValue = keyValue;
						}
					}
				}
			}
			caching.lastIndex = iterationIndex;
			return newValue;
		}

		//based on @Toji's https://github.com/toji/gl-matrix/
		function slerp(a, b, t) {
			var out = [];
			var ax = a[0], ay = a[1], az = a[2], aw = a[3],
				bx = b[0], by = b[1], bz = b[2], bw = b[3]

			var omega, cosom, sinom, scale0, scale1;

			cosom = ax * bx + ay * by + az * bz + aw * bw;
			if (cosom < 0.0) {
				cosom = -cosom;
				bx = -bx;
				by = -by;
				bz = -bz;
				bw = -bw;
			}
			if ((1.0 - cosom) > 0.000001) {
				omega = Math.acos(cosom);
				sinom = Math.sin(omega);
				scale0 = Math.sin((1.0 - t) * omega) / sinom;
				scale1 = Math.sin(t * omega) / sinom;
			} else {
				scale0 = 1.0 - t;
				scale1 = t;
			}
			out[0] = scale0 * ax + scale1 * bx;
			out[1] = scale0 * ay + scale1 * by;
			out[2] = scale0 * az + scale1 * bz;
			out[3] = scale0 * aw + scale1 * bw;

			return out;
		}

		function quaternionToEuler(out, quat) {
			var qx = quat[0];
			var qy = quat[1];
			var qz = quat[2];
			var qw = quat[3];
			var heading = Math.atan2(2*qy*qw-2*qx*qz , 1 - 2*qy*qy - 2*qz*qz)
			var attitude = Math.asin(2*qx*qy + 2*qz*qw)
			var bank = Math.atan2(2*qx*qw-2*qy*qz , 1 - 2*qx*qx - 2*qz*qz);
			out[0] = heading/degToRads;
			out[1] = attitude/degToRads;
			out[2] = bank/degToRads;
		}

		function createQuaternion(values) {
			var heading = values[0] * degToRads;
			var attitude = values[1] * degToRads;
			var bank = values[2] * degToRads;
			var c1 = Math.cos(heading / 2);
			var c2 = Math.cos(attitude / 2);
			var c3 = Math.cos(bank / 2);
			var s1 = Math.sin(heading / 2);
			var s2 = Math.sin(attitude / 2);
			var s3 = Math.sin(bank / 2);
			var w = c1 * c2 * c3 - s1 * s2 * s3;
			var x = s1 * s2 * c3 + c1 * c2 * s3;
			var y = s1 * c2 * c3 + c1 * s2 * s3;
			var z = c1 * s2 * c3 - s1 * c2 * s3;

			return [x,y,z,w];
		}

		function getValueAtCurrentTime(){
			var frameNum = this.comp.renderedFrame - this.offsetTime;
			var initTime = this.keyframes[0].t - this.offsetTime;
			var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;
			if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){
				if(this._caching.lastFrame >= frameNum) {
					this._caching._lastKeyframeIndex = -1;
					this._caching.lastIndex = 0;
				}

				var renderResult = this.interpolateValue(frameNum, this._caching);
				this.pv = renderResult;
			}
			this._caching.lastFrame = frameNum;
			return this.pv;
		}

		function setVValue(val) {
			var multipliedValue;
			if(this.propType === 'unidimensional') {
				multipliedValue = val * this.mult;
				if(math_abs(this.v - multipliedValue) > 0.00001) {
					this.v = multipliedValue;
					this._mdf = true;
				}
			} else {
				var i = 0, len = this.v.length;
				while (i < len) {
					multipliedValue = val[i] * this.mult;
					if (math_abs(this.v[i] - multipliedValue) > 0.00001) {
						this.v[i] = multipliedValue;
						this._mdf = true;
					}
					i += 1;
				}
			}
		}

		function processEffectsSequence() {
			if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {
				return;
			}
			if(this.lock) {
				this.setVValue(this.pv);
				return;
			}
			this.lock = true;
			this._mdf = this._isFirstFrame;
			var multipliedValue;
			var i, len = this.effectsSequence.length;
			var finalValue = this.kf ? this.pv : this.data.k;
			for(i = 0; i < len; i += 1) {
				finalValue = this.effectsSequence[i](finalValue);
			}
			this.setVValue(finalValue);
			this._isFirstFrame = false;
			this.lock = false;
			this.frameId = this.elem.globalData.frameId;
		}

		function addEffect(effectFunction) {
			this.effectsSequence.push(effectFunction);
			this.container.addDynamicProperty(this);
		}

		function ValueProperty(elem, data, mult, container){
			this.propType = 'unidimensional';
			this.mult = mult || 1;
			this.data = data;
			this.v = mult ? data.k * mult : data.k;
			this.pv = data.k;
			this._mdf = false;
			this.elem = elem;
			this.container = container;
			this.comp = elem.comp;
			this.k = false;
			this.kf = false;
			this.vel = 0;
			this.effectsSequence = [];
			this._isFirstFrame = true;
			this.getValue = processEffectsSequence;
			this.setVValue = setVValue;
			this.addEffect = addEffect;
		}

		function MultiDimensionalProperty(elem, data, mult, container) {
			this.propType = 'multidimensional';
			this.mult = mult || 1;
			this.data = data;
			this._mdf = false;
			this.elem = elem;
			this.container = container;
			this.comp = elem.comp;
			this.k = false;
			this.kf = false;
			this.frameId = -1;
			var i, len = data.k.length;
			this.v = createTypedArray('float32', len);
			this.pv = createTypedArray('float32', len);
			var arr = createTypedArray('float32', len);
			this.vel = createTypedArray('float32', len);
			for (i = 0; i < len; i += 1) {
				this.v[i] = data.k[i] * this.mult;
				this.pv[i] = data.k[i];
			}
			this._isFirstFrame = true;
			this.effectsSequence = [];
			this.getValue = processEffectsSequence;
			this.setVValue = setVValue;
			this.addEffect = addEffect;
		}

		function KeyframedValueProperty(elem, data, mult, container) {
			this.propType = 'unidimensional';
			this.keyframes = data.k;
			this.offsetTime = elem.data.st;
			this.frameId = -1;
			this._caching = {lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1};
			this.k = true;
			this.kf = true;
			this.data = data;
			this.mult = mult || 1;
			this.elem = elem;
			this.container = container;
			this.comp = elem.comp;
			this.v = initFrame;
			this.pv = initFrame;
			this._isFirstFrame = true;
			this.getValue = processEffectsSequence;
			this.setVValue = setVValue;
			this.interpolateValue = interpolateValue;
			this.effectsSequence = [getValueAtCurrentTime.bind(this)];
			this.addEffect = addEffect;
		}

		function KeyframedMultidimensionalProperty(elem, data, mult, container){
			this.propType = 'multidimensional';
			var i, len = data.k.length;
			var s, e,to,ti;
			for (i = 0; i < len - 1; i += 1) {
				if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {
					s = data.k[i].s;
					e = data.k[i + 1].s;
					to = data.k[i].to;
					ti = data.k[i].ti;
					if((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],s[0] + to[0],s[1] + to[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],e[0] + ti[0],e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],s[0] + to[0],s[1] + to[1],s[2] + to[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],e[0] + ti[0],e[1] + ti[1],e[2] + ti[2]))){
						data.k[i].to = null;
						data.k[i].ti = null;
					}
					if(s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {
						if(s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {
							data.k[i].to = null;
							data.k[i].ti = null;
						}
					}
				}
			}
			this.effectsSequence = [getValueAtCurrentTime.bind(this)];
			this.keyframes = data.k;
			this.offsetTime = elem.data.st;
			this.k = true;
			this.kf = true;
			this._isFirstFrame = true;
			this.mult = mult || 1;
			this.elem = elem;
			this.container = container;
			this.comp = elem.comp;
			this.getValue = processEffectsSequence;
			this.setVValue = setVValue;
			this.interpolateValue = interpolateValue;
			this.frameId = -1;
			var arrLen = data.k[0].s.length;
			this.v = createTypedArray('float32', arrLen);
			this.pv = createTypedArray('float32', arrLen);
			for (i = 0; i < arrLen; i += 1) {
				this.v[i] = initFrame;
				this.pv[i] = initFrame;
			}
			this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};
			this.addEffect = addEffect;
		}

		function getProp(elem,data,type, mult, container) {
			var p;
			if(!data.k.length){
				p = new ValueProperty(elem,data, mult, container);
			}else if(typeof(data.k[0]) === 'number'){
				p = new MultiDimensionalProperty(elem,data, mult, container);
			}else{
				switch(type){
					case 0:
						p = new KeyframedValueProperty(elem,data,mult, container);
						break;
					case 1:
						p = new KeyframedMultidimensionalProperty(elem,data,mult, container);
						break;
				}
			}
			if(p.effectsSequence.length){
				container.addDynamicProperty(p);
			}
			return p;
		}

		var ob = {
			getProp: getProp
		};
		return ob;
	}());
	var TransformPropertyFactory = (function() {

		var defaultVector = [0,0]

		function applyToMatrix(mat) {
			var _mdf = this._mdf;
			this.iterateDynamicProperties();
			this._mdf = this._mdf || _mdf;
			if (this.a) {
				mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
			}
			if (this.s) {
				mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
			}
			if (this.sk) {
				mat.skewFromAxis(-this.sk.v, this.sa.v);
			}
			if (this.r) {
				mat.rotate(-this.r.v);
			} else {
				mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
			}
			if (this.data.p.s) {
				if (this.data.p.z) {
					mat.translate(this.px.v, this.py.v, -this.pz.v);
				} else {
					mat.translate(this.px.v, this.py.v, 0);
				}
			} else {
				mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);
			}
		}
		function processKeys(forceRender){
			if (this.elem.globalData.frameId === this.frameId) {
				return;
			}
			if(this._isDirty) {
				this.precalculateMatrix();
				this._isDirty = false;
			}

			this.iterateDynamicProperties();

			if (this._mdf || forceRender) {
				this.v.cloneFromProps(this.pre.props);
				if (this.appliedTransformations < 1) {
					this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
				}
				if(this.appliedTransformations < 2) {
					this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
				}
				if (this.sk && this.appliedTransformations < 3) {
					this.v.skewFromAxis(-this.sk.v, this.sa.v);
				}
				if (this.r && this.appliedTransformations < 4) {
					this.v.rotate(-this.r.v);
				} else if (!this.r && this.appliedTransformations < 4){
					this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
				}
				if (this.autoOriented) {
					var v1,v2, frameRate = this.elem.globalData.frameRate;
					if(this.p && this.p.keyframes && this.p.getValueAtTime) {
						if (this.p._caching.lastFrame+this.p.offsetTime <= this.p.keyframes[0].t) {
							v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate,0);
							v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);
						} else if(this.p._caching.lastFrame+this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {
							v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);
							v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);
						} else {
							v1 = this.p.pv;
							v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);
						}
					} else if(this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {
						v1 = [];
						v2 = [];
						var px = this.px, py = this.py, frameRate;
						if (px._caching.lastFrame+px.offsetTime <= px.keyframes[0].t) {
							v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate,0);
							v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate,0);
							v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate,0);
							v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate,0);
						} else if(px._caching.lastFrame+px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {
							v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate),0);
							v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate),0);
							v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate,0);
							v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate,0);
						} else {
							v1 = [px.pv, py.pv];
							v2[0] = px.getValueAtTime((px._caching.lastFrame+px.offsetTime - 0.01) / frameRate,px.offsetTime);
							v2[1] = py.getValueAtTime((py._caching.lastFrame+py.offsetTime - 0.01) / frameRate,py.offsetTime);
						}
					} else {
						v1 = v2 = defaultVector
					}
					this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));
				}
				if(this.data.p && this.data.p.s){
					if(this.data.p.z) {
						this.v.translate(this.px.v, this.py.v, -this.pz.v);
					} else {
						this.v.translate(this.px.v, this.py.v, 0);
					}
				}else{
					this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);
				}
			}
			this.frameId = this.elem.globalData.frameId;
		}

		function precalculateMatrix() {
			if(!this.a.k) {
				this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);
				this.appliedTransformations = 1;
			} else {
				return;
			}
			if(!this.s.effectsSequence.length) {
				this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);
				this.appliedTransformations = 2;
			} else {
				return;
			}
			if(this.sk) {
				if(!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {
					this.pre.skewFromAxis(-this.sk.v, this.sa.v);
					this.appliedTransformations = 3;
				} else {
					return;
				}
			}
			if (this.r) {
				if(!this.r.effectsSequence.length) {
					this.pre.rotate(-this.r.v);
					this.appliedTransformations = 4;
				} else {
					return;
				}
			} else if(!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {
				this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);
				this.appliedTransformations = 4;
			}
		}

		function autoOrient(){
			//
			//var prevP = this.getValueAtTime();
		}

		function addDynamicProperty(prop) {
			this._addDynamicProperty(prop);
			this.elem.addDynamicProperty(prop);
			this._isDirty = true;
		}

		function TransformProperty(elem,data,container){
			this.elem = elem;
			this.frameId = -1;
			this.propType = 'transform';
			this.data = data;
			this.v = new Matrix();
			//Precalculated matrix with non animated properties
			this.pre = new Matrix();
			this.appliedTransformations = 0;
			this.initDynamicPropertyContainer(container || elem);
			if(data.p && data.p.s){
				this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this);
				this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this);
				if(data.p.z){
					this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this);
				}
			}else{
				this.p = PropertyFactory.getProp(elem,data.p || {k:[0,0,0]},1,0,this);
			}
			if(data.rx) {
				this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);
				this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);
				this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);
				if(data.or.k[0].ti) {
					var i, len = data.or.k.length;
					for(i=0;i<len;i+=1) {
						data.or.k[i].to = data.or.k[i].ti = null;
					}
				}
				this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);
				//sh Indicates it needs to be capped between -180 and 180
				this.or.sh = true;
			} else {
				this.r = PropertyFactory.getProp(elem, data.r || {k: 0}, 0, degToRads, this);
			}
			if(data.sk){
				this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);
				this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);
			}
			this.a = PropertyFactory.getProp(elem,data.a || {k:[0,0,0]},1,0,this);
			this.s = PropertyFactory.getProp(elem,data.s || {k:[100,100,100]},1,0.01,this);
			// Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.
			if(data.o){
				this.o = PropertyFactory.getProp(elem,data.o,0,0.01,elem);
			} else {
				this.o = {_mdf:false,v:1};
			}
			this._isDirty = true;
			if(!this.dynamicProperties.length){
				this.getValue(true);
			}
		}

		TransformProperty.prototype = {
			applyToMatrix: applyToMatrix,
			getValue: processKeys,
			precalculateMatrix: precalculateMatrix,
			autoOrient: autoOrient
		}

		extendPrototype([DynamicPropertyContainer], TransformProperty);
		TransformProperty.prototype.addDynamicProperty = addDynamicProperty;
		TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;

		function getTransformProperty(elem,data,container){
			return new TransformProperty(elem,data,container);
		}

		return {
			getTransformProperty: getTransformProperty
		};

	}());
	function ShapePath(){
		this.c = false;
		this._length = 0;
		this._maxLength = 8;
		this.v = createSizedArray(this._maxLength);
		this.o = createSizedArray(this._maxLength);
		this.i = createSizedArray(this._maxLength);
	}

	ShapePath.prototype.setPathData = function(closed, len) {
		this.c = closed;
		this.setLength(len);
		var i = 0;
		while(i < len){
			this.v[i] = point_pool.newElement();
			this.o[i] = point_pool.newElement();
			this.i[i] = point_pool.newElement();
			i += 1;
		}
	};

	ShapePath.prototype.setLength = function(len) {
		while(this._maxLength < len) {
			this.doubleArrayLength();
		}
		this._length = len;
	};

	ShapePath.prototype.doubleArrayLength = function() {
		this.v = this.v.concat(createSizedArray(this._maxLength));
		this.i = this.i.concat(createSizedArray(this._maxLength));
		this.o = this.o.concat(createSizedArray(this._maxLength));
		this._maxLength *= 2;
	};

	ShapePath.prototype.setXYAt = function(x, y, type, pos, replace) {
		var arr;
		this._length = Math.max(this._length, pos + 1);
		if(this._length >= this._maxLength) {
			this.doubleArrayLength();
		}
		switch(type){
			case 'v':
				arr = this.v;
				break;
			case 'i':
				arr = this.i;
				break;
			case 'o':
				arr = this.o;
				break;
		}
		if(!arr[pos] || (arr[pos] && !replace)){
			arr[pos] = point_pool.newElement();
		}
		arr[pos][0] = x;
		arr[pos][1] = y;
	};

	ShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {
		this.setXYAt(vX,vY,'v',pos, replace);
		this.setXYAt(oX,oY,'o',pos, replace);
		this.setXYAt(iX,iY,'i',pos, replace);
	};

	ShapePath.prototype.reverse = function() {
		var newPath = new ShapePath();
		newPath.setPathData(this.c, this._length);
		var vertices = this.v, outPoints = this.o, inPoints = this.i;
		var init = 0;
		if (this.c) {
			newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);
			init = 1;
		}
		var cnt = this._length - 1;
		var len = this._length;

		var i;
		for (i = init; i < len; i += 1) {
			newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);
			cnt -= 1;
		}
		return newPath;
	};
	var ShapePropertyFactory = (function(){

		var initFrame = -999999;

		function interpolateShape(frameNum, previousValue, caching) {
			var iterationIndex = caching.lastIndex;
			var keyPropS,keyPropE,isHold, j, k, jLen, kLen, perc, vertexValue;
			var kf = this.keyframes;
			if(frameNum < kf[0].t-this.offsetTime){
				keyPropS = kf[0].s[0];
				isHold = true;
				iterationIndex = 0;
			}else if(frameNum >= kf[kf.length - 1].t-this.offsetTime){
				keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];
				/*if(kf[kf.length - 1].s){
                keyPropS = kf[kf.length - 1].s[0];
            }else{
                keyPropS = kf[kf.length - 2].e[0];
            }*/
				isHold = true;
			}else{
				var i = iterationIndex;
				var len = kf.length- 1,flag = true,keyData,nextKeyData;
				while(flag){
					keyData = kf[i];
					nextKeyData = kf[i+1];
					if((nextKeyData.t - this.offsetTime) > frameNum){
						break;
					}
					if(i < len - 1){
						i += 1;
					}else{
						flag = false;
					}
				}
				isHold = keyData.h === 1;
				iterationIndex = i;
				if(!isHold){
					if(frameNum >= nextKeyData.t-this.offsetTime){
						perc = 1;
					}else if(frameNum < keyData.t-this.offsetTime){
						perc = 0;
					}else{
						var fnc;
						if(keyData.__fnct){
							fnc = keyData.__fnct;
						}else{
							fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;
							keyData.__fnct = fnc;
						}
						perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
					}
					keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];
				}
				keyPropS = keyData.s[0];
			}
			jLen = previousValue._length;
			kLen = keyPropS.i[0].length;
			caching.lastIndex = iterationIndex;

			for(j=0;j<jLen;j+=1){
				for(k=0;k<kLen;k+=1){
					vertexValue = isHold ? keyPropS.i[j][k] :  keyPropS.i[j][k]+(keyPropE.i[j][k]-keyPropS.i[j][k])*perc;
					previousValue.i[j][k] = vertexValue;
					vertexValue = isHold ? keyPropS.o[j][k] :  keyPropS.o[j][k]+(keyPropE.o[j][k]-keyPropS.o[j][k])*perc;
					previousValue.o[j][k] = vertexValue;
					vertexValue = isHold ? keyPropS.v[j][k] :  keyPropS.v[j][k]+(keyPropE.v[j][k]-keyPropS.v[j][k])*perc;
					previousValue.v[j][k] = vertexValue;
				}
			}
		}

		function interpolateShapeCurrentTime(){
			var frameNum = this.comp.renderedFrame - this.offsetTime;
			var initTime = this.keyframes[0].t - this.offsetTime;
			var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;
			var lastFrame = this._caching.lastFrame;
			if(!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))){
				////
				this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;
				this.interpolateShape(frameNum, this.pv, this._caching);
				////
			}
			this._caching.lastFrame = frameNum;
			return this.pv;
		}

		function resetShape(){
			this.paths = this.localShapeCollection;
		}

		function shapesEqual(shape1, shape2) {
			if(shape1._length !== shape2._length || shape1.c !== shape2.c){
				return false;
			}
			var i, len = shape1._length;
			for(i = 0; i < len; i += 1) {
				if(shape1.v[i][0] !== shape2.v[i][0]
					|| shape1.v[i][1] !== shape2.v[i][1]
					|| shape1.o[i][0] !== shape2.o[i][0]
					|| shape1.o[i][1] !== shape2.o[i][1]
					|| shape1.i[i][0] !== shape2.i[i][0]
					|| shape1.i[i][1] !== shape2.i[i][1]) {
					return false;
				}
			}
			return true;
		}

		function setVValue(newPath) {
			if(!shapesEqual(this.v, newPath)) {
				this.v = shape_pool.clone(newPath);
				this.localShapeCollection.releaseShapes();
				this.localShapeCollection.addShape(this.v);
				this._mdf = true;
				this.paths = this.localShapeCollection;
			}
		}

		function processEffectsSequence() {
			if (this.elem.globalData.frameId === this.frameId) {
				return;
			} else if (!this.effectsSequence.length) {
				this._mdf = false;
				return;
			}
			if (this.lock) {
				this.setVValue(this.pv);
				return;
			}
			this.lock = true;
			this._mdf = false;
			var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;
			var i, len = this.effectsSequence.length;
			for(i = 0; i < len; i += 1) {
				finalValue = this.effectsSequence[i](finalValue);
			}
			this.setVValue(finalValue);
			this.lock = false;
			this.frameId = this.elem.globalData.frameId;
		};

		function ShapeProperty(elem, data, type){
			this.propType = 'shape';
			this.comp = elem.comp;
			this.container = elem;
			this.elem = elem;
			this.data = data;
			this.k = false;
			this.kf = false;
			this._mdf = false;
			var pathData = type === 3 ? data.pt.k : data.ks.k;
			this.v = shape_pool.clone(pathData);
			this.pv = shape_pool.clone(this.v);
			this.localShapeCollection = shapeCollection_pool.newShapeCollection();
			this.paths = this.localShapeCollection;
			this.paths.addShape(this.v);
			this.reset = resetShape;
			this.effectsSequence = [];
		}

		function addEffect(effectFunction) {
			this.effectsSequence.push(effectFunction);
			this.container.addDynamicProperty(this);
		}

		ShapeProperty.prototype.interpolateShape = interpolateShape;
		ShapeProperty.prototype.getValue = processEffectsSequence;
		ShapeProperty.prototype.setVValue = setVValue;
		ShapeProperty.prototype.addEffect = addEffect;

		function KeyframedShapeProperty(elem,data,type){
			this.propType = 'shape';
			this.comp = elem.comp;
			this.elem = elem;
			this.container = elem;
			this.offsetTime = elem.data.st;
			this.keyframes = type === 3 ? data.pt.k : data.ks.k;
			this.k = true;
			this.kf = true;
			var i, len = this.keyframes[0].s[0].i.length;
			var jLen = this.keyframes[0].s[0].i[0].length;
			this.v = shape_pool.newElement();
			this.v.setPathData(this.keyframes[0].s[0].c, len);
			this.pv = shape_pool.clone(this.v);
			this.localShapeCollection = shapeCollection_pool.newShapeCollection();
			this.paths = this.localShapeCollection;
			this.paths.addShape(this.v);
			this.lastFrame = initFrame;
			this.reset = resetShape;
			this._caching = {lastFrame: initFrame, lastIndex: 0};
			this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];
		}
		KeyframedShapeProperty.prototype.getValue = processEffectsSequence;
		KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;
		KeyframedShapeProperty.prototype.setVValue = setVValue;
		KeyframedShapeProperty.prototype.addEffect = addEffect;

		var EllShapeProperty = (function(){

			var cPoint = roundCorner;

			function EllShapeProperty(elem,data) {
				/*this.v = {
                v: createSizedArray(4),
                i: createSizedArray(4),
                o: createSizedArray(4),
                c: true
            };*/
				this.v = shape_pool.newElement();
				this.v.setPathData(true, 4);
				this.localShapeCollection = shapeCollection_pool.newShapeCollection();
				this.paths = this.localShapeCollection;
				this.localShapeCollection.addShape(this.v);
				this.d = data.d;
				this.elem = elem;
				this.comp = elem.comp;
				this.frameId = -1;
				this.initDynamicPropertyContainer(elem);
				this.p = PropertyFactory.getProp(elem,data.p,1,0,this);
				this.s = PropertyFactory.getProp(elem,data.s,1,0,this);
				if(this.dynamicProperties.length){
					this.k = true;
				}else{
					this.k = false;
					this.convertEllToPath();
				}
			};

			EllShapeProperty.prototype = {
				reset: resetShape,
				getValue: function (){
					if(this.elem.globalData.frameId === this.frameId){
						return;
					}
					this.frameId = this.elem.globalData.frameId;
					this.iterateDynamicProperties();

					if(this._mdf){
						this.convertEllToPath();
					}
				},
				convertEllToPath: function() {
					var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;
					var _cw = this.d !== 3;
					var _v = this.v;
					_v.v[0][0] = p0;
					_v.v[0][1] = p1 - s1;
					_v.v[1][0] = _cw ? p0 + s0 : p0 - s0;
					_v.v[1][1] = p1;
					_v.v[2][0] = p0;
					_v.v[2][1] = p1 + s1;
					_v.v[3][0] = _cw ? p0 - s0 : p0 + s0;
					_v.v[3][1] = p1;
					_v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;
					_v.i[0][1] = p1 - s1;
					_v.i[1][0] = _cw ? p0 + s0 : p0 - s0;
					_v.i[1][1] = p1 - s1 * cPoint;
					_v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;
					_v.i[2][1] = p1 + s1;
					_v.i[3][0] = _cw ? p0 - s0 : p0 + s0;
					_v.i[3][1] = p1 + s1 * cPoint;
					_v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;
					_v.o[0][1] = p1 - s1;
					_v.o[1][0] = _cw ? p0 + s0 : p0 - s0;
					_v.o[1][1] = p1 + s1 * cPoint;
					_v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;
					_v.o[2][1] = p1 + s1;
					_v.o[3][0] = _cw ? p0 - s0 : p0 + s0;
					_v.o[3][1] = p1 - s1 * cPoint;
				}
			}

			extendPrototype([DynamicPropertyContainer], EllShapeProperty);

			return EllShapeProperty;
		}());

		var StarShapeProperty = (function() {

			function StarShapeProperty(elem,data) {
				this.v = shape_pool.newElement();
				this.v.setPathData(true, 0);
				this.elem = elem;
				this.comp = elem.comp;
				this.data = data;
				this.frameId = -1;
				this.d = data.d;
				this.initDynamicPropertyContainer(elem);
				if(data.sy === 1){
					this.ir = PropertyFactory.getProp(elem,data.ir,0,0,this);
					this.is = PropertyFactory.getProp(elem,data.is,0,0.01,this);
					this.convertToPath = this.convertStarToPath;
				} else {
					this.convertToPath = this.convertPolygonToPath;
				}
				this.pt = PropertyFactory.getProp(elem,data.pt,0,0,this);
				this.p = PropertyFactory.getProp(elem,data.p,1,0,this);
				this.r = PropertyFactory.getProp(elem,data.r,0,degToRads,this);
				this.or = PropertyFactory.getProp(elem,data.or,0,0,this);
				this.os = PropertyFactory.getProp(elem,data.os,0,0.01,this);
				this.localShapeCollection = shapeCollection_pool.newShapeCollection();
				this.localShapeCollection.addShape(this.v);
				this.paths = this.localShapeCollection;
				if(this.dynamicProperties.length){
					this.k = true;
				}else{
					this.k = false;
					this.convertToPath();
				}
			};

			StarShapeProperty.prototype = {
				reset: resetShape,
				getValue: function() {
					if(this.elem.globalData.frameId === this.frameId){
						return;
					}
					this.frameId = this.elem.globalData.frameId;
					this.iterateDynamicProperties();
					if(this._mdf){
						this.convertToPath();
					}
				},
				convertStarToPath: function() {
					var numPts = Math.floor(this.pt.v)*2;
					var angle = Math.PI*2/numPts;
					/*this.v.v.length = numPts;
                this.v.i.length = numPts;
                this.v.o.length = numPts;*/
					var longFlag = true;
					var longRad = this.or.v;
					var shortRad = this.ir.v;
					var longRound = this.os.v;
					var shortRound = this.is.v;
					var longPerimSegment = 2*Math.PI*longRad/(numPts*2);
					var shortPerimSegment = 2*Math.PI*shortRad/(numPts*2);
					var i, rad,roundness,perimSegment, currentAng = -Math.PI/ 2;
					currentAng += this.r.v;
					var dir = this.data.d === 3 ? -1 : 1;
					this.v._length = 0;
					for(i=0;i<numPts;i+=1){
						rad = longFlag ? longRad : shortRad;
						roundness = longFlag ? longRound : shortRound;
						perimSegment = longFlag ? longPerimSegment : shortPerimSegment;
						var x = rad * Math.cos(currentAng);
						var y = rad * Math.sin(currentAng);
						var ox = x === 0 && y === 0 ? 0 : y/Math.sqrt(x*x + y*y);
						var oy = x === 0 && y === 0 ? 0 : -x/Math.sqrt(x*x + y*y);
						x +=  + this.p.v[0];
						y +=  + this.p.v[1];
						this.v.setTripleAt(x,y,x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir,x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir, i, true);

						/*this.v.v[i] = [x,y];
                    this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];
                    this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];
                    this.v._length = numPts;*/
						longFlag = !longFlag;
						currentAng += angle*dir;
					}
				},
				convertPolygonToPath: function() {
					var numPts = Math.floor(this.pt.v);
					var angle = Math.PI*2/numPts;
					var rad = this.or.v;
					var roundness = this.os.v;
					var perimSegment = 2*Math.PI*rad/(numPts*4);
					var i, currentAng = -Math.PI/ 2;
					var dir = this.data.d === 3 ? -1 : 1;
					currentAng += this.r.v;
					this.v._length = 0;
					for(i=0;i<numPts;i+=1){
						var x = rad * Math.cos(currentAng);
						var y = rad * Math.sin(currentAng);
						var ox = x === 0 && y === 0 ? 0 : y/Math.sqrt(x*x + y*y);
						var oy = x === 0 && y === 0 ? 0 : -x/Math.sqrt(x*x + y*y);
						x +=  + this.p.v[0];
						y +=  + this.p.v[1];
						this.v.setTripleAt(x,y,x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir,x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir, i, true);
						currentAng += angle*dir;
					}
					this.paths.length = 0;
					this.paths[0] = this.v;
				}

			}
			extendPrototype([DynamicPropertyContainer], StarShapeProperty);

			return StarShapeProperty;
		}());

		var RectShapeProperty = (function() {

			function RectShapeProperty(elem,data) {
				this.v = shape_pool.newElement();
				this.v.c = true;
				this.localShapeCollection = shapeCollection_pool.newShapeCollection();
				this.localShapeCollection.addShape(this.v);
				this.paths = this.localShapeCollection;
				this.elem = elem;
				this.comp = elem.comp;
				this.frameId = -1;
				this.d = data.d;
				this.initDynamicPropertyContainer(elem);
				this.p = PropertyFactory.getProp(elem,data.p,1,0,this);
				this.s = PropertyFactory.getProp(elem,data.s,1,0,this);
				this.r = PropertyFactory.getProp(elem,data.r,0,0,this);
				if(this.dynamicProperties.length){
					this.k = true;
				}else{
					this.k = false;
					this.convertRectToPath();
				}
			};

			RectShapeProperty.prototype = {
				convertRectToPath: function (){
					var p0 = this.p.v[0], p1 = this.p.v[1], v0 = this.s.v[0]/2, v1 = this.s.v[1]/2;
					var round = bm_min(v0,v1,this.r.v);
					var cPoint = round*(1-roundCorner);
					this.v._length = 0;

					if(this.d === 2 || this.d === 1) {
						this.v.setTripleAt(p0+v0, p1-v1+round,p0+v0, p1-v1+round,p0+v0,p1-v1+cPoint,0, true);
						this.v.setTripleAt(p0+v0, p1+v1-round,p0+v0, p1+v1-cPoint,p0+v0, p1+v1-round,1, true);
						if(round!== 0){
							this.v.setTripleAt(p0+v0-round, p1+v1,p0+v0-round,p1+v1,p0+v0-cPoint,p1+v1,2, true);
							this.v.setTripleAt(p0-v0+round,p1+v1,p0-v0+cPoint,p1+v1,p0-v0+round,p1+v1,3, true);
							this.v.setTripleAt(p0-v0,p1+v1-round,p0-v0,p1+v1-round,p0-v0,p1+v1-cPoint,4, true);
							this.v.setTripleAt(p0-v0,p1-v1+round,p0-v0,p1-v1+cPoint,p0-v0,p1-v1+round,5, true);
							this.v.setTripleAt(p0-v0+round,p1-v1,p0-v0+round,p1-v1,p0-v0+cPoint,p1-v1,6, true);
							this.v.setTripleAt(p0+v0-round,p1-v1,p0+v0-cPoint,p1-v1,p0+v0-round,p1-v1,7, true);
						} else {
							this.v.setTripleAt(p0-v0,p1+v1,p0-v0+cPoint,p1+v1,p0-v0,p1+v1,2);
							this.v.setTripleAt(p0-v0,p1-v1,p0-v0,p1-v1+cPoint,p0-v0,p1-v1,3);
						}
					}else{
						this.v.setTripleAt(p0+v0,p1-v1+round,p0+v0,p1-v1+cPoint,p0+v0,p1-v1+round,0, true);
						if(round!== 0){
							this.v.setTripleAt(p0+v0-round,p1-v1,p0+v0-round,p1-v1,p0+v0-cPoint,p1-v1,1, true);
							this.v.setTripleAt(p0-v0+round,p1-v1,p0-v0+cPoint,p1-v1,p0-v0+round,p1-v1,2, true);
							this.v.setTripleAt(p0-v0,p1-v1+round,p0-v0,p1-v1+round,p0-v0,p1-v1+cPoint,3, true);
							this.v.setTripleAt(p0-v0,p1+v1-round,p0-v0,p1+v1-cPoint,p0-v0,p1+v1-round,4, true);
							this.v.setTripleAt(p0-v0+round,p1+v1,p0-v0+round,p1+v1,p0-v0+cPoint,p1+v1,5, true);
							this.v.setTripleAt(p0+v0-round,p1+v1,p0+v0-cPoint,p1+v1,p0+v0-round,p1+v1,6, true);
							this.v.setTripleAt(p0+v0,p1+v1-round,p0+v0,p1+v1-round,p0+v0,p1+v1-cPoint,7, true);
						} else {
							this.v.setTripleAt(p0-v0,p1-v1,p0-v0+cPoint,p1-v1,p0-v0,p1-v1,1, true);
							this.v.setTripleAt(p0-v0,p1+v1,p0-v0,p1+v1-cPoint,p0-v0,p1+v1,2, true);
							this.v.setTripleAt(p0+v0,p1+v1,p0+v0-cPoint,p1+v1,p0+v0,p1+v1,3, true);

						}
					}
				},
				getValue: function(frameNum){
					if(this.elem.globalData.frameId === this.frameId){
						return;
					}
					this.frameId = this.elem.globalData.frameId;
					this.iterateDynamicProperties();
					if(this._mdf){
						this.convertRectToPath();
					}

				},
				reset: resetShape
			}
			extendPrototype([DynamicPropertyContainer], RectShapeProperty);

			return RectShapeProperty;
		}());

		function getShapeProp(elem,data,type){
			var prop;
			if(type === 3 || type === 4){
				var dataProp = type === 3 ? data.pt : data.ks;
				var keys = dataProp.k;
				if(keys.length){
					prop = new KeyframedShapeProperty(elem, data, type);
				}else{
					prop = new ShapeProperty(elem, data, type);
				}
			}else if(type === 5){
				prop = new RectShapeProperty(elem, data);
			}else if(type === 6){
				prop = new EllShapeProperty(elem, data);
			}else if(type === 7){
				prop = new StarShapeProperty(elem, data);
			}
			if(prop.k){
				elem.addDynamicProperty(prop);
			}
			return prop;
		}

		function getConstructorFunction() {
			return ShapeProperty;
		}

		function getKeyframedConstructorFunction() {
			return KeyframedShapeProperty;
		}

		var ob = {};
		ob.getShapeProp = getShapeProp;
		ob.getConstructorFunction = getConstructorFunction;
		ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;
		return ob;
	}());
	var ShapeModifiers = (function(){
		var ob = {};
		var modifiers = {};
		ob.registerModifier = registerModifier;
		ob.getModifier = getModifier;

		function registerModifier(nm,factory){
			if(!modifiers[nm]){
				modifiers[nm] = factory;
			}
		}

		function getModifier(nm,elem, data){
			return new modifiers[nm](elem, data);
		}

		return ob;
	}());

	function ShapeModifier(){}
	ShapeModifier.prototype.initModifierProperties = function(){};
	ShapeModifier.prototype.addShapeToModifier = function(){};
	ShapeModifier.prototype.addShape = function(data){
		if (!this.closed) {
			// Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.
			data.sh.container.addDynamicProperty(data.sh);
			var shapeData = {shape:data.sh, data: data, localShapeCollection:shapeCollection_pool.newShapeCollection()};
			this.shapes.push(shapeData);
			this.addShapeToModifier(shapeData);
			if (this._isAnimated) {
				data.setAsAnimated();
			}
		}
	};
	ShapeModifier.prototype.init = function(elem,data){
		this.shapes = [];
		this.elem = elem;
		this.initDynamicPropertyContainer(elem);
		this.initModifierProperties(elem,data);
		this.frameId = initialDefaultFrame;
		this.closed = false;
		this.k = false;
		if(this.dynamicProperties.length){
			this.k = true;
		}else{
			this.getValue(true);
		}
	};
	ShapeModifier.prototype.processKeys = function(){
		if(this.elem.globalData.frameId === this.frameId){
			return;
		}
		this.frameId = this.elem.globalData.frameId;
		this.iterateDynamicProperties();
	};

	extendPrototype([DynamicPropertyContainer], ShapeModifier);
	function TrimModifier(){
	}
	extendPrototype([ShapeModifier], TrimModifier);
	TrimModifier.prototype.initModifierProperties = function(elem, data) {
		this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);
		this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);
		this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);
		this.sValue = 0;
		this.eValue = 0;
		this.getValue = this.processKeys;
		this.m = data.m;
		this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;
	};

	TrimModifier.prototype.addShapeToModifier = function(shapeData){
		shapeData.pathsData = [];
	};

	TrimModifier.prototype.calculateShapeEdges = function(s, e, shapeLength, addedLength, totalModifierLength) {
		var segments = [];
		if (e <= 1) {
			segments.push({
				s: s,
				e: e
			});
		} else if (s >= 1) {
			segments.push({
				s: s - 1,
				e: e - 1
			});
		} else {
			segments.push({
				s: s,
				e: 1
			});
			segments.push({
				s: 0,
				e: e - 1
			});
		}
		var shapeSegments = [];
		var i, len = segments.length, segmentOb;
		for (i = 0; i < len; i += 1) {
			segmentOb = segments[i];
			if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {

			} else {
				var shapeS, shapeE;
				if (segmentOb.s * totalModifierLength <= addedLength) {
					shapeS = 0;
				} else {
					shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;
				}
				if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {
					shapeE = 1;
				} else {
					shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);
				}
				shapeSegments.push([shapeS, shapeE]);
			}
		}
		if (!shapeSegments.length) {
			shapeSegments.push([0, 0]);
		}
		return shapeSegments;
	};

	TrimModifier.prototype.releasePathsData = function(pathsData) {
		var i, len = pathsData.length;
		for (i = 0; i < len; i += 1) {
			segments_length_pool.release(pathsData[i]);
		}
		pathsData.length = 0;
		return pathsData;
	};

	TrimModifier.prototype.processShapes = function(_isFirstFrame) {
		var s, e;
		if (this._mdf || _isFirstFrame) {
			var o = (this.o.v % 360) / 360;
			if (o < 0) {
				o += 1;
			}
			s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;
			e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;
			if (s === e) {

			}
			if (s > e) {
				var _s = s;
				s = e;
				e = _s;
			}
			s = Math.round(s * 10000) * 0.0001;
			e = Math.round(e * 10000) * 0.0001;
			this.sValue = s;
			this.eValue = e;
		} else {
			s = this.sValue;
			e = this.eValue;
		}
		var shapePaths;
		var i, len = this.shapes.length, j, jLen;
		var pathsData, pathData, totalShapeLength, totalModifierLength = 0;

		if (e === s) {
			for (i = 0; i < len; i += 1) {
				this.shapes[i].localShapeCollection.releaseShapes();
				this.shapes[i].shape._mdf = true;
				this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;
			}
		} else if (!((e === 1 && s === 0) || (e===0 && s === 1))){
			var segments = [], shapeData, localShapeCollection;
			for (i = 0; i < len; i += 1) {
				shapeData = this.shapes[i];
				// if shape hasn't changed and trim properties haven't changed, cached previous path can be used
				if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {
					shapeData.shape.paths = shapeData.localShapeCollection;
				} else {
					shapePaths = shapeData.shape.paths;
					jLen = shapePaths._length;
					totalShapeLength = 0;
					if (!shapeData.shape._mdf && shapeData.pathsData.length) {
						totalShapeLength = shapeData.totalShapeLength;
					} else {
						pathsData = this.releasePathsData(shapeData.pathsData);
						for (j = 0; j < jLen; j += 1) {
							pathData = bez.getSegmentsLength(shapePaths.shapes[j]);
							pathsData.push(pathData);
							totalShapeLength += pathData.totalLength;
						}
						shapeData.totalShapeLength = totalShapeLength;
						shapeData.pathsData = pathsData;
					}

					totalModifierLength += totalShapeLength;
					shapeData.shape._mdf = true;
				}
			}
			var shapeS = s, shapeE = e, addedLength = 0, edges;
			for (i = len - 1; i >= 0; i -= 1) {
				shapeData = this.shapes[i];
				if (shapeData.shape._mdf) {
					localShapeCollection = shapeData.localShapeCollection;
					localShapeCollection.releaseShapes();
					//if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group
					if (this.m === 2 && len > 1) {
						edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);
						addedLength += shapeData.totalShapeLength;
					} else {
						edges = [[shapeS, shapeE]];
					}
					jLen = edges.length;
					for (j = 0; j < jLen; j += 1) {
						shapeS = edges[j][0];
						shapeE = edges[j][1];
						segments.length = 0;
						if (shapeE <= 1) {
							segments.push({
								s:shapeData.totalShapeLength * shapeS,
								e:shapeData.totalShapeLength * shapeE
							});
						} else if (shapeS >= 1) {
							segments.push({
								s:shapeData.totalShapeLength * (shapeS - 1),
								e:shapeData.totalShapeLength * (shapeE - 1)
							});
						} else {
							segments.push({
								s:shapeData.totalShapeLength * shapeS,
								e:shapeData.totalShapeLength
							});
							segments.push({
								s:0,
								e:shapeData.totalShapeLength * (shapeE - 1)
							});
						}
						var newShapesData = this.addShapes(shapeData,segments[0]);
						if (segments[0].s !== segments[0].e) {
							if (segments.length > 1) {
								var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];
								if (lastShapeInCollection.c) {
									var lastShape = newShapesData.pop();
									this.addPaths(newShapesData, localShapeCollection);
									newShapesData = this.addShapes(shapeData, segments[1], lastShape);
								} else {
									this.addPaths(newShapesData, localShapeCollection);
									newShapesData = this.addShapes(shapeData, segments[1]);
								}
							}
							this.addPaths(newShapesData, localShapeCollection);
						}

					}
					shapeData.shape.paths = localShapeCollection;
				}
			}
		} else if (this._mdf) {
			for (i = 0; i < len; i += 1) {
				//Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.
				//Don't remove this even if it's losing cached info.
				this.shapes[i].pathsData.length = 0;
				this.shapes[i].shape._mdf = true;
			}
		}
	};

	TrimModifier.prototype.addPaths = function(newPaths, localShapeCollection) {
		var i, len = newPaths.length;
		for (i = 0; i < len; i += 1) {
			localShapeCollection.addShape(newPaths[i]);
		}
	};

	TrimModifier.prototype.addSegment = function(pt1, pt2, pt3, pt4, shapePath, pos, newShape) {
		shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);
		shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);
		if(newShape){
			shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);
		}
		shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);
	};

	TrimModifier.prototype.addSegmentFromArray = function(points, shapePath, pos, newShape) {
		shapePath.setXYAt(points[1], points[5], 'o', pos);
		shapePath.setXYAt(points[2], points[6], 'i', pos + 1);
		if(newShape){
			shapePath.setXYAt(points[0], points[4], 'v', pos);
		}
		shapePath.setXYAt(points[3], points[7], 'v', pos + 1);
	};

	TrimModifier.prototype.addShapes = function(shapeData, shapeSegment, shapePath) {
		var pathsData = shapeData.pathsData;
		var shapePaths = shapeData.shape.paths.shapes;
		var i, len = shapeData.shape.paths._length, j, jLen;
		var addedLength = 0;
		var currentLengthData,segmentCount;
		var lengths;
		var segment;
		var shapes = [];
		var initPos;
		var newShape = true;
		if (!shapePath) {
			shapePath = shape_pool.newElement();
			segmentCount = 0;
			initPos = 0;
		} else {
			segmentCount = shapePath._length;
			initPos = shapePath._length;
		}
		shapes.push(shapePath);
		for (i = 0; i < len; i += 1) {
			lengths = pathsData[i].lengths;
			shapePath.c = shapePaths[i].c;
			jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;
			for (j = 1; j < jLen; j +=1) {
				currentLengthData = lengths[j-1];
				if (addedLength + currentLengthData.addedLength < shapeSegment.s) {
					addedLength += currentLengthData.addedLength;
					shapePath.c = false;
				} else if(addedLength > shapeSegment.e) {
					shapePath.c = false;
					break;
				} else {
					if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {
						this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);
						newShape = false;
					} else {
						segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);
						this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);
						// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);
						newShape = false;
						shapePath.c = false;
					}
					addedLength += currentLengthData.addedLength;
					segmentCount += 1;
				}
			}
			if (shapePaths[i].c && lengths.length) {
				currentLengthData = lengths[j - 1];
				if (addedLength <= shapeSegment.e) {
					var segmentLength = lengths[j - 1].addedLength;
					if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {
						this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);
						newShape = false;
					} else {
						segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);
						this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);
						// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);
						newShape = false;
						shapePath.c = false;
					}
				} else {
					shapePath.c = false;
				}
				addedLength += currentLengthData.addedLength;
				segmentCount += 1;
			}
			if (shapePath._length) {
				shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);
				shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1],'o', shapePath._length - 1);
			}
			if (addedLength > shapeSegment.e) {
				break;
			}
			if (i < len - 1) {
				shapePath = shape_pool.newElement();
				newShape = true;
				shapes.push(shapePath);
				segmentCount = 0;
			}
		}
		return shapes;
	};


	ShapeModifiers.registerModifier('tm', TrimModifier);
	function RoundCornersModifier(){}
	extendPrototype([ShapeModifier],RoundCornersModifier);
	RoundCornersModifier.prototype.initModifierProperties = function(elem,data){
		this.getValue = this.processKeys;
		this.rd = PropertyFactory.getProp(elem,data.r,0,null,this);
		this._isAnimated = !!this.rd.effectsSequence.length;
	};

	RoundCornersModifier.prototype.processPath = function(path, round){
		var cloned_path = shape_pool.newElement();
		cloned_path.c = path.c;
		var i, len = path._length;
		var currentV,currentI,currentO,closerV, newV,newO,newI,distance,newPosPerc,index = 0;
		var vX,vY,oX,oY,iX,iY;
		for(i=0;i<len;i+=1){
			currentV = path.v[i];
			currentO = path.o[i];
			currentI = path.i[i];
			if(currentV[0]===currentO[0] && currentV[1]===currentO[1] && currentV[0]===currentI[0] && currentV[1]===currentI[1]){
				if((i===0 || i === len - 1) && !path.c){
					cloned_path.setTripleAt(currentV[0],currentV[1],currentO[0],currentO[1],currentI[0],currentI[1],index);
					/*cloned_path.v[index] = currentV;
                cloned_path.o[index] = currentO;
                cloned_path.i[index] = currentI;*/
					index += 1;
				} else {
					if(i===0){
						closerV = path.v[len-1];
					} else {
						closerV = path.v[i-1];
					}
					distance = Math.sqrt(Math.pow(currentV[0]-closerV[0],2)+Math.pow(currentV[1]-closerV[1],2));
					newPosPerc = distance ? Math.min(distance/2,round)/distance : 0;
					vX = iX = currentV[0]+(closerV[0]-currentV[0])*newPosPerc;
					vY = iY = currentV[1]-(currentV[1]-closerV[1])*newPosPerc;
					oX = vX-(vX-currentV[0])*roundCorner;
					oY = vY-(vY-currentV[1])*roundCorner;
					cloned_path.setTripleAt(vX,vY,oX,oY,iX,iY,index);
					index += 1;

					if(i === len - 1){
						closerV = path.v[0];
					} else {
						closerV = path.v[i+1];
					}
					distance = Math.sqrt(Math.pow(currentV[0]-closerV[0],2)+Math.pow(currentV[1]-closerV[1],2));
					newPosPerc = distance ? Math.min(distance/2,round)/distance : 0;
					vX = oX = currentV[0]+(closerV[0]-currentV[0])*newPosPerc;
					vY = oY = currentV[1]+(closerV[1]-currentV[1])*newPosPerc;
					iX = vX-(vX-currentV[0])*roundCorner;
					iY = vY-(vY-currentV[1])*roundCorner;
					cloned_path.setTripleAt(vX,vY,oX,oY,iX,iY,index);
					index += 1;
				}
			} else {
				cloned_path.setTripleAt(path.v[i][0],path.v[i][1],path.o[i][0],path.o[i][1],path.i[i][0],path.i[i][1],index);
				index += 1;
			}
		}
		return cloned_path;
	};

	RoundCornersModifier.prototype.processShapes = function(_isFirstFrame){
		var shapePaths;
		var i, len = this.shapes.length;
		var j, jLen;
		var rd = this.rd.v;

		if(rd !== 0){
			var shapeData, newPaths, localShapeCollection;
			for(i=0;i<len;i+=1){
				shapeData = this.shapes[i];
				newPaths = shapeData.shape.paths;
				localShapeCollection = shapeData.localShapeCollection;
				if(!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)){
					localShapeCollection.releaseShapes();
					shapeData.shape._mdf = true;
					shapePaths = shapeData.shape.paths.shapes;
					jLen = shapeData.shape.paths._length;
					for(j=0;j<jLen;j+=1){
						localShapeCollection.addShape(this.processPath(shapePaths[j],rd));
					}
				}
				shapeData.shape.paths = shapeData.localShapeCollection;
			}

		}
		if(!this.dynamicProperties.length){
			this._mdf = false;
		}
	};

	ShapeModifiers.registerModifier('rd',RoundCornersModifier);
	function RepeaterModifier(){}
	extendPrototype([ShapeModifier], RepeaterModifier);

	RepeaterModifier.prototype.initModifierProperties = function(elem,data){
		this.getValue = this.processKeys;
		this.c = PropertyFactory.getProp(elem,data.c,0,null,this);
		this.o = PropertyFactory.getProp(elem,data.o,0,null,this);
		this.tr = TransformPropertyFactory.getTransformProperty(elem,data.tr,this);
		this.so = PropertyFactory.getProp(elem,data.tr.so,0,0.01,this);
		this.eo = PropertyFactory.getProp(elem,data.tr.eo,0,0.01,this);
		this.data = data;
		if(!this.dynamicProperties.length){
			this.getValue(true);
		}
		this._isAnimated = !!this.dynamicProperties.length;
		this.pMatrix = new Matrix();
		this.rMatrix = new Matrix();
		this.sMatrix = new Matrix();
		this.tMatrix = new Matrix();
		this.matrix = new Matrix();
	};

	RepeaterModifier.prototype.applyTransforms = function(pMatrix, rMatrix, sMatrix, transform, perc, inv){
		var dir = inv ? -1 : 1;
		var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);
		var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);
		pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);
		rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);
		rMatrix.rotate(-transform.r.v * dir * perc);
		rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);
		sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);
		sMatrix.scale(inv ? 1/scaleX : scaleX, inv ? 1/scaleY : scaleY);
		sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);
	};

	RepeaterModifier.prototype.init = function(elem, arr, pos, elemsData) {
		this.elem = elem;
		this.arr = arr;
		this.pos = pos;
		this.elemsData = elemsData;
		this._currentCopies = 0;
		this._elements = [];
		this._groups = [];
		this.frameId = -1;
		this.initDynamicPropertyContainer(elem);
		this.initModifierProperties(elem,arr[pos]);
		var cont = 0;
		while(pos>0){
			pos -= 1;
			//this._elements.unshift(arr.splice(pos,1)[0]);
			this._elements.unshift(arr[pos]);
			cont += 1;
		}
		if(this.dynamicProperties.length){
			this.k = true;
		}else{
			this.getValue(true);
		}
	};

	RepeaterModifier.prototype.resetElements = function(elements){
		var i, len = elements.length;
		for(i = 0; i < len; i += 1) {
			elements[i]._processed = false;
			if(elements[i].ty === 'gr'){
				this.resetElements(elements[i].it);
			}
		}
	};

	RepeaterModifier.prototype.cloneElements = function(elements){
		var i, len = elements.length;
		var newElements = JSON.parse(JSON.stringify(elements));
		this.resetElements(newElements);
		return newElements;
	};

	RepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {
		var i, len = elements.length;
		for(i = 0; i < len; i += 1) {
			elements[i]._render = renderFlag;
			if(elements[i].ty === 'gr') {
				this.changeGroupRender(elements[i].it, renderFlag);
			}
		}
	};

	RepeaterModifier.prototype.processShapes = function(_isFirstFrame) {
		var items, itemsTransform, i, dir, cont;
		if(this._mdf || _isFirstFrame){
			var copies = Math.ceil(this.c.v);
			if(this._groups.length < copies){
				while(this._groups.length < copies){
					var group = {
						it:this.cloneElements(this._elements),
						ty:'gr'
					};
					group.it.push({"a":{"a":0,"ix":1,"k":[0,0]},"nm":"Transform","o":{"a":0,"ix":7,"k":100},"p":{"a":0,"ix":2,"k":[0,0]},"r":{"a":1,"ix":6,"k":[{s:0,e:0,t:0},{s:0,e:0,t:1}]},"s":{"a":0,"ix":3,"k":[100,100]},"sa":{"a":0,"ix":5,"k":0},"sk":{"a":0,"ix":4,"k":0},"ty":"tr"});

					this.arr.splice(0,0,group);
					this._groups.splice(0,0,group);
					this._currentCopies += 1;
				}
				this.elem.reloadShapes();
			}
			cont = 0;
			var renderFlag;
			for(i = 0; i  <= this._groups.length - 1; i += 1){
				renderFlag = cont < copies;
				this._groups[i]._render = renderFlag;
				this.changeGroupRender(this._groups[i].it, renderFlag);
				cont += 1;
			}

			this._currentCopies = copies;
			////

			var offset = this.o.v;
			var offsetModulo = offset%1;
			var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);
			var k;
			var tMat = this.tr.v.props;
			var pProps = this.pMatrix.props;
			var rProps = this.rMatrix.props;
			var sProps = this.sMatrix.props;
			this.pMatrix.reset();
			this.rMatrix.reset();
			this.sMatrix.reset();
			this.tMatrix.reset();
			this.matrix.reset();
			var iteration = 0;

			if(offset > 0) {
				while(iteration<roundOffset){
					this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);
					iteration += 1;
				}
				if(offsetModulo){
					this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);
					iteration += offsetModulo;
				}
			} else if(offset < 0) {
				while(iteration>roundOffset){
					this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);
					iteration -= 1;
				}
				if(offsetModulo){
					this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);
					iteration -= offsetModulo;
				}
			}
			i = this.data.m === 1 ? 0 : this._currentCopies - 1;
			dir = this.data.m === 1 ? 1 : -1;
			cont = this._currentCopies;
			var j, jLen;
			while(cont){
				items = this.elemsData[i].it;
				itemsTransform = items[items.length - 1].transform.mProps.v.props;
				jLen = itemsTransform.length;
				items[items.length - 1].transform.mProps._mdf = true;
				items[items.length - 1].transform.op._mdf = true;
				items[items.length - 1].transform.op.v = this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));
				if(iteration !== 0){
					if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){
						this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);
					}
					this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);
					this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);
					this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);

					for(j=0;j<jLen;j+=1) {
						itemsTransform[j] = this.matrix.props[j];
					}
					this.matrix.reset();
				} else {
					this.matrix.reset();
					for(j=0;j<jLen;j+=1) {
						itemsTransform[j] = this.matrix.props[j];
					}
				}
				iteration += 1;
				cont -= 1;
				i += dir;
			}
		} else {
			cont = this._currentCopies;
			i = 0;
			dir = 1;
			while(cont){
				items = this.elemsData[i].it;
				itemsTransform = items[items.length - 1].transform.mProps.v.props;
				items[items.length - 1].transform.mProps._mdf = false;
				items[items.length - 1].transform.op._mdf = false;
				cont -= 1;
				i += dir;
			}
		}
	};

	RepeaterModifier.prototype.addShape = function(){};

	ShapeModifiers.registerModifier('rp',RepeaterModifier);
	function ShapeCollection(){
		this._length = 0;
		this._maxLength = 4;
		this.shapes = createSizedArray(this._maxLength);
	}

	ShapeCollection.prototype.addShape = function(shapeData){
		if(this._length === this._maxLength){
			this.shapes = this.shapes.concat(createSizedArray(this._maxLength));
			this._maxLength *= 2;
		}
		this.shapes[this._length] = shapeData;
		this._length += 1;
	};

	ShapeCollection.prototype.releaseShapes = function(){
		var i;
		for(i = 0; i < this._length; i += 1) {
			shape_pool.release(this.shapes[i]);
		}
		this._length = 0;
	};
	function DashProperty(elem, data, renderer, container) {
		this.elem = elem;
		this.frameId = -1;
		this.dataProps = createSizedArray(data.length);
		this.renderer = renderer;
		this.k = false;
		this.dashStr = '';
		this.dashArray = createTypedArray('float32',  data.length ? data.length - 1 : 0);
		this.dashoffset = createTypedArray('float32',  1);
		this.initDynamicPropertyContainer(container);
		var i, len = data.length || 0, prop;
		for(i = 0; i < len; i += 1) {
			prop = PropertyFactory.getProp(elem,data[i].v,0, 0, this);
			this.k = prop.k || this.k;
			this.dataProps[i] = {n:data[i].n,p:prop};
		}
		if(!this.k){
			this.getValue(true);
		}
		this._isAnimated = this.k;
	}

	DashProperty.prototype.getValue = function(forceRender) {
		if(this.elem.globalData.frameId === this.frameId && !forceRender){
			return;
		}
		this.frameId = this.elem.globalData.frameId;
		this.iterateDynamicProperties();
		this._mdf = this._mdf || forceRender;
		if (this._mdf) {
			var i = 0, len = this.dataProps.length;
			if(this.renderer === 'svg') {
				this.dashStr = '';
			}
			for(i=0;i<len;i+=1){
				if(this.dataProps[i].n != 'o'){
					if(this.renderer === 'svg') {
						this.dashStr += ' ' + this.dataProps[i].p.v;
					}else{
						this.dashArray[i] = this.dataProps[i].p.v;
					}
				}else{
					this.dashoffset[0] = this.dataProps[i].p.v;
				}
			}
		}
	};
	extendPrototype([DynamicPropertyContainer], DashProperty);
	function GradientProperty(elem,data,container){
		this.data = data;
		this.c = createTypedArray('uint8c', data.p*4);
		var cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p*4) : data.k.k.length - data.p*4;
		this.o = createTypedArray('float32', cLength);
		this._cmdf = false;
		this._omdf = false;
		this._collapsable = this.checkCollapsable();
		this._hasOpacity = cLength;
		this.initDynamicPropertyContainer(container);
		this.prop = PropertyFactory.getProp(elem,data.k,1,null,this);
		this.k = this.prop.k;
		this.getValue(true);
	}

	GradientProperty.prototype.comparePoints = function(values, points) {
		var i = 0, len = this.o.length/2, diff;
		while(i < len) {
			diff = Math.abs(values[i*4] - values[points*4 + i*2]);
			if(diff > 0.01){
				return false;
			}
			i += 1;
		}
		return true;
	};

	GradientProperty.prototype.checkCollapsable = function() {
		if (this.o.length/2 !== this.c.length/4) {
			return false;
		}
		if (this.data.k.k[0].s) {
			var i = 0, len = this.data.k.k.length;
			while (i < len) {
				if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {
					return false;
				}
				i += 1;
			}
		} else if(!this.comparePoints(this.data.k.k, this.data.p)) {
			return false;
		}
		return true;
	};

	GradientProperty.prototype.getValue = function(forceRender){
		this.prop.getValue();
		this._mdf = false;
		this._cmdf = false;
		this._omdf = false;
		if(this.prop._mdf || forceRender){
			var i, len = this.data.p*4;
			var mult, val;
			for(i=0;i<len;i+=1){
				mult = i%4 === 0 ? 100 : 255;
				val = Math.round(this.prop.v[i]*mult);
				if(this.c[i] !== val){
					this.c[i] = val;
					this._cmdf = !forceRender;
				}
			}
			if(this.o.length){
				len = this.prop.v.length;
				for(i=this.data.p*4;i<len;i+=1){
					mult = i%2 === 0 ? 100 : 1;
					val = i%2 === 0 ?  Math.round(this.prop.v[i]*100):this.prop.v[i];
					if(this.o[i-this.data.p*4] !== val){
						this.o[i-this.data.p*4] = val;
						this._omdf = !forceRender;
					}
				}
			}
			this._mdf = !forceRender;
		}
	};

	extendPrototype([DynamicPropertyContainer], GradientProperty);
	var buildShapeString = function(pathNodes, length, closed, mat) {
		if(length === 0) {
			return '';
		}
		var _o = pathNodes.o;
		var _i = pathNodes.i;
		var _v = pathNodes.v;
		var i, shapeString = " M" + mat.applyToPointStringified(_v[0][0], _v[0][1]);
		for(i = 1; i < length; i += 1) {
			shapeString += " C" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + " " + mat.applyToPointStringified(_i[i][0], _i[i][1]) + " " + mat.applyToPointStringified(_v[i][0], _v[i][1]);
		}
		if (closed && length) {
			shapeString += " C" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + " " + mat.applyToPointStringified(_i[0][0], _i[0][1]) + " " + mat.applyToPointStringified(_v[0][0], _v[0][1]);
			shapeString += 'z';
		}
		return shapeString;
	}
	var ImagePreloader = (function(){

		var proxyImage = (function(){
			var canvas = createTag('canvas');
			canvas.width = 1;
			canvas.height = 1;
			var ctx = canvas.getContext('2d');
			ctx.fillStyle = 'rgba(0,0,0,0)';
			ctx.fillRect(0, 0, 1, 1);
			return canvas;
		}())

		function imageLoaded(){
			this.loadedAssets += 1;
			if(this.loadedAssets === this.totalImages){
				if(this.imagesLoadedCb) {
					this.imagesLoadedCb(null);
				}
			}
		}

		function getAssetsPath(assetData, assetsPath, original_path) {
			var path = '';
			if (assetData.e) {
				path = assetData.p;
			} else if(assetsPath) {
				var imagePath = assetData.p;
				if (imagePath.indexOf('images/') !== -1) {
					imagePath = imagePath.split('/')[1];
				}
				path = assetsPath + imagePath;
			} else {
				path = original_path;
				path += assetData.u ? assetData.u : '';
				path += assetData.p;
			}
			return path;
		}

		function createImageData(assetData) {
			var path = getAssetsPath(assetData, this.assetsPath, this.path);
			var img = createTag('img');
			img.crossOrigin = 'anonymous';
			img.addEventListener('load', this._imageLoaded.bind(this), false);
			img.addEventListener('error', function() {
				ob.img = proxyImage;
				this._imageLoaded();
			}.bind(this), false);
			img.src = path;
			var ob = {
				img: img,
				assetData: assetData
			}
			return ob;
		}

		function loadAssets(assets, cb){
			this.imagesLoadedCb = cb;
			var i, len = assets.length;
			for (i = 0; i < len; i += 1) {
				if(!assets[i].layers){
					this.totalImages += 1;
					this.images.push(this._createImageData(assets[i]));
				}
			}
		}

		function setPath(path){
			this.path = path || '';
		}

		function setAssetsPath(path){
			this.assetsPath = path || '';
		}

		function getImage(assetData) {
			var i = 0, len = this.images.length;
			while (i < len) {
				if (this.images[i].assetData === assetData) {
					return this.images[i].img;
				}
				i += 1;
			}
		}

		function destroy() {
			this.imagesLoadedCb = null;
			this.images.length = 0;
		}

		function loaded() {
			return this.totalImages === this.loadedAssets;
		}

		return function ImagePreloader(){
			this.loadAssets = loadAssets;
			this.setAssetsPath = setAssetsPath;
			this.setPath = setPath;
			this.loaded = loaded;
			this.destroy = destroy;
			this.getImage = getImage;
			this._createImageData = createImageData;
			this._imageLoaded = imageLoaded;
			this.assetsPath = '';
			this.path = '';
			this.totalImages = 0;
			this.loadedAssets = 0;
			this.imagesLoadedCb = null;
			this.images = [];
		};
	}());
	var featureSupport = (function(){
		var ob = {
			maskType: true
		};
		if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\/\d./i.test(navigator.userAgent)) {
			ob.maskType = false;
		}
		return ob;
	}());
	var filtersFactory = (function(){
		var ob = {};
		ob.createFilter = createFilter;
		ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;

		function createFilter(filId){
			var fil = createNS('filter');
			fil.setAttribute('id',filId);
			fil.setAttribute('filterUnits','objectBoundingBox');
			fil.setAttribute('x','0%');
			fil.setAttribute('y','0%');
			fil.setAttribute('width','100%');
			fil.setAttribute('height','100%');
			return fil;
		}

		function createAlphaToLuminanceFilter(){
			var feColorMatrix = createNS('feColorMatrix');
			feColorMatrix.setAttribute('type','matrix');
			feColorMatrix.setAttribute('color-interpolation-filters','sRGB');
			feColorMatrix.setAttribute('values','0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1');
			return feColorMatrix;
		}

		return ob;
	}());
	var assetLoader = (function(){

		function formatResponse(xhr) {
			if(xhr.response && typeof xhr.response === 'object') {
				return xhr.response;
			} else if(xhr.response && typeof xhr.response === 'string') {
				return JSON.parse(xhr.response);
			} else if(xhr.responseText) {
				return JSON.parse(xhr.responseText);
			}
		}

		function loadAsset(path, callback, errorCallback) {
			var response;
			var xhr = new XMLHttpRequest();
			xhr.open('GET', path, true);
			// set responseType after calling open or IE will break.
			try {
				// This crashes on Android WebView prior to KitKat
				xhr.responseType = "json";
			} catch (err) {}
			xhr.send();
			xhr.onreadystatechange = function () {
				if (xhr.readyState == 4) {
					if(xhr.status == 200){
						response = formatResponse(xhr);
						callback(response);
					}else{
						try{
							response = formatResponse(xhr);
							callback(response);
						}catch(err){
							if(errorCallback) {
								errorCallback(err);
							}
						}
					}
				}
			};
		}
		return {
			load: loadAsset
		}
	}())

	function TextAnimatorProperty(textData, renderType, elem){
		this._isFirstFrame = true;
		this._hasMaskedPath = false;
		this._frameId = -1;
		this._textData = textData;
		this._renderType = renderType;
		this._elem = elem;
		this._animatorsData = createSizedArray(this._textData.a.length);
		this._pathData = {};
		this._moreOptions = {
			alignment: {}
		};
		this.renderedLetters = [];
		this.lettersChangedFlag = false;
		this.initDynamicPropertyContainer(elem);

	}

	TextAnimatorProperty.prototype.searchProperties = function(){
		var i, len = this._textData.a.length, animatorProps;
		var getProp = PropertyFactory.getProp;
		for(i=0;i<len;i+=1){
			animatorProps = this._textData.a[i];
			this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);
		}
		if(this._textData.p && 'm' in this._textData.p){
			this._pathData = {
				f: getProp(this._elem,this._textData.p.f,0,0,this),
				l: getProp(this._elem,this._textData.p.l,0,0,this),
				r: this._textData.p.r,
				m: this._elem.maskManager.getMaskProperty(this._textData.p.m)
			};
			this._hasMaskedPath = true;
		} else {
			this._hasMaskedPath = false;
		}
		this._moreOptions.alignment = getProp(this._elem,this._textData.m.a,1,0,this);
	};

	TextAnimatorProperty.prototype.getMeasures = function(documentData, lettersChangedFlag){
		this.lettersChangedFlag = lettersChangedFlag;
		if(!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {
			return;
		}
		this._isFirstFrame = false;
		var alignment = this._moreOptions.alignment.v;
		var animators = this._animatorsData;
		var textData = this._textData;
		var matrixHelper = this.mHelper;
		var renderType = this._renderType;
		var renderedLettersCount = this.renderedLetters.length;
		var data = this.data;
		var xPos,yPos;
		var i, len;
		var letters = documentData.l, pathInfo, currentLength, currentPoint, segmentLength, flag, pointInd, segmentInd, prevPoint, points, segments, partialLength, totalLength, perc, tanAngle, mask;
		if(this._hasMaskedPath) {
			mask = this._pathData.m;
			if(!this._pathData.n || this._pathData._mdf){
				var paths = mask.v;
				if(this._pathData.r){
					paths = paths.reverse();
				}
				// TODO: release bezier data cached from previous pathInfo: this._pathData.pi
				pathInfo = {
					tLength: 0,
					segments: []
				};
				len = paths._length - 1;
				var bezierData;
				totalLength = 0;
				for (i = 0; i < len; i += 1) {
					bezierData = bez.buildBezierData(paths.v[i]
						, paths.v[i + 1]
						, [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]]
						, [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);
					pathInfo.tLength += bezierData.segmentLength;
					pathInfo.segments.push(bezierData);
					totalLength += bezierData.segmentLength;
				}
				i = len;
				if (mask.v.c) {
					bezierData = bez.buildBezierData(paths.v[i]
						, paths.v[0]
						, [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]]
						, [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);
					pathInfo.tLength += bezierData.segmentLength;
					pathInfo.segments.push(bezierData);
					totalLength += bezierData.segmentLength;
				}
				this._pathData.pi = pathInfo;
			}
			pathInfo = this._pathData.pi;

			currentLength = this._pathData.f.v;
			segmentInd = 0;
			pointInd = 1;
			segmentLength = 0;
			flag = true;
			segments = pathInfo.segments;
			if (currentLength < 0 && mask.v.c) {
				if (pathInfo.tLength < Math.abs(currentLength)) {
					currentLength = -Math.abs(currentLength) % pathInfo.tLength;
				}
				segmentInd = segments.length - 1;
				points = segments[segmentInd].points;
				pointInd = points.length - 1;
				while (currentLength < 0) {
					currentLength += points[pointInd].partialLength;
					pointInd -= 1;
					if (pointInd < 0) {
						segmentInd -= 1;
						points = segments[segmentInd].points;
						pointInd = points.length - 1;
					}
				}

			}
			points = segments[segmentInd].points;
			prevPoint = points[pointInd - 1];
			currentPoint = points[pointInd];
			partialLength = currentPoint.partialLength;
		}


		len = letters.length;
		xPos = 0;
		yPos = 0;
		var yOff = documentData.finalSize * 1.2 * 0.714;
		var firstLine = true;
		var animatorProps, animatorSelector;
		var j, jLen;
		var letterValue;

		jLen = animators.length;
		var lastLetter;

		var mult, ind = -1, offf, xPathPos, yPathPos;
		var initPathPos = currentLength,initSegmentInd = segmentInd, initPointInd = pointInd, currentLine = -1;
		var elemOpacity;
		var sc,sw,fc,k;
		var lineLength = 0;
		var letterSw, letterSc, letterFc, letterM = '', letterP = this.defaultPropsArray, letterO;

		//
		if(documentData.j === 2 || documentData.j === 1) {
			var animatorJustifyOffset = 0;
			var animatorFirstCharOffset = 0;
			var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;
			var lastIndex = 0;
			var isNewLine = true;

			for (i = 0; i < len; i += 1) {
				if (letters[i].n) {
					if(animatorJustifyOffset) {
						animatorJustifyOffset += animatorFirstCharOffset;
					}
					while (lastIndex < i) {
						letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;
						lastIndex += 1;
					}
					animatorJustifyOffset = 0;
					isNewLine = true;
				} else {
					for (j = 0; j < jLen; j += 1) {
						animatorProps = animators[j].a;
						if (animatorProps.t.propType) {
							if (isNewLine && documentData.j === 2) {
								animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;
							}
							animatorSelector = animators[j].s;
							mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);
							if (mult.length) {
								animatorJustifyOffset += animatorProps.t.v*mult[0] * justifyOffsetMult;
							} else {
								animatorJustifyOffset += animatorProps.t.v*mult * justifyOffsetMult;
							}
						}
					}
					isNewLine = false;
				}
			}
			if(animatorJustifyOffset) {
				animatorJustifyOffset += animatorFirstCharOffset;
			}
			while(lastIndex < i) {
				letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;
				lastIndex += 1;
			}
		}
		//

		for( i = 0; i < len; i += 1) {

			matrixHelper.reset();
			elemOpacity = 1;
			if(letters[i].n) {
				xPos = 0;
				yPos += documentData.yOffset;
				yPos += firstLine ? 1 : 0;
				currentLength = initPathPos ;
				firstLine = false;
				lineLength = 0;
				if(this._hasMaskedPath) {
					segmentInd = initSegmentInd;
					pointInd = initPointInd;
					points = segments[segmentInd].points;
					prevPoint = points[pointInd - 1];
					currentPoint = points[pointInd];
					partialLength = currentPoint.partialLength;
					segmentLength = 0;
				}
				letterO = letterSw = letterFc = letterM = '';
				letterP = this.defaultPropsArray;
			}else{
				if(this._hasMaskedPath) {
					if(currentLine !== letters[i].line){
						switch(documentData.j){
							case 1:
								currentLength += totalLength - documentData.lineWidths[letters[i].line];
								break;
							case 2:
								currentLength += (totalLength - documentData.lineWidths[letters[i].line])/2;
								break;
						}
						currentLine = letters[i].line;
					}
					if (ind !== letters[i].ind) {
						if (letters[ind]) {
							currentLength += letters[ind].extra;
						}
						currentLength += letters[i].an / 2;
						ind = letters[i].ind;
					}
					currentLength += alignment[0] * letters[i].an / 200;
					var animatorOffset = 0;
					for (j = 0; j < jLen; j += 1) {
						animatorProps = animators[j].a;
						if (animatorProps.p.propType) {
							animatorSelector = animators[j].s;
							mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
							if(mult.length){
								animatorOffset += animatorProps.p.v[0] * mult[0];
							} else{
								animatorOffset += animatorProps.p.v[0] * mult;
							}

						}
						if (animatorProps.a.propType) {
							animatorSelector = animators[j].s;
							mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
							if(mult.length){
								animatorOffset += animatorProps.a.v[0] * mult[0];
							} else{
								animatorOffset += animatorProps.a.v[0] * mult;
							}

						}
					}
					flag = true;
					while (flag) {
						if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {
							perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;
							xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;
							yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;
							matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));
							flag = false;
						} else if (points) {
							segmentLength += currentPoint.partialLength;
							pointInd += 1;
							if (pointInd >= points.length) {
								pointInd = 0;
								segmentInd += 1;
								if (!segments[segmentInd]) {
									if (mask.v.c) {
										pointInd = 0;
										segmentInd = 0;
										points = segments[segmentInd].points;
									} else {
										segmentLength -= currentPoint.partialLength;
										points = null;
									}
								} else {
									points = segments[segmentInd].points;
								}
							}
							if (points) {
								prevPoint = currentPoint;
								currentPoint = points[pointInd];
								partialLength = currentPoint.partialLength;
							}
						}
					}
					offf = letters[i].an / 2 - letters[i].add;
					matrixHelper.translate(-offf, 0, 0);
				} else {
					offf = letters[i].an/2 - letters[i].add;
					matrixHelper.translate(-offf,0,0);

					// Grouping alignment
					matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);
				}

				lineLength += letters[i].l/2;
				for(j=0;j<jLen;j+=1){
					animatorProps = animators[j].a;
					if (animatorProps.t.propType) {
						animatorSelector = animators[j].s;
						mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
						//This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean "isNewLine"
						if(xPos !== 0 || documentData.j !== 0) {
							if(this._hasMaskedPath) {
								if(mult.length) {
									currentLength += animatorProps.t.v*mult[0];
								} else {
									currentLength += animatorProps.t.v*mult;
								}
							}else{
								if(mult.length) {
									xPos += animatorProps.t.v*mult[0];
								} else {
									xPos += animatorProps.t.v*mult;
								}
							}
						}
					}
				}
				lineLength += letters[i].l/2;
				if(documentData.strokeWidthAnim) {
					sw = documentData.sw || 0;
				}
				if(documentData.strokeColorAnim) {
					if(documentData.sc){
						sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];
					}else{
						sc = [0,0,0];
					}
				}
				if(documentData.fillColorAnim && documentData.fc) {
					fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];
				}
				for(j=0;j<jLen;j+=1){
					animatorProps = animators[j].a;
					if (animatorProps.a.propType) {
						animatorSelector = animators[j].s;
						mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);

						if(mult.length){
							matrixHelper.translate(-animatorProps.a.v[0]*mult[0], -animatorProps.a.v[1]*mult[1], animatorProps.a.v[2]*mult[2]);
						} else {
							matrixHelper.translate(-animatorProps.a.v[0]*mult, -animatorProps.a.v[1]*mult, animatorProps.a.v[2]*mult);
						}
					}
				}
				for(j=0;j<jLen;j+=1){
					animatorProps = animators[j].a;
					if (animatorProps.s.propType) {
						animatorSelector = animators[j].s;
						mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
						if(mult.length){
							matrixHelper.scale(1+((animatorProps.s.v[0]-1)*mult[0]),1+((animatorProps.s.v[1]-1)*mult[1]),1);
						} else {
							matrixHelper.scale(1+((animatorProps.s.v[0]-1)*mult),1+((animatorProps.s.v[1]-1)*mult),1);
						}
					}
				}
				for(j=0;j<jLen;j+=1) {
					animatorProps = animators[j].a;
					animatorSelector = animators[j].s;
					mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
					if (animatorProps.sk.propType) {
						if(mult.length) {
							matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);
						} else {
							matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);
						}
					}
					if (animatorProps.r.propType) {
						if(mult.length) {
							matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);
						} else {
							matrixHelper.rotateZ(-animatorProps.r.v * mult);
						}
					}
					if (animatorProps.ry.propType) {

						if(mult.length) {
							matrixHelper.rotateY(animatorProps.ry.v*mult[1]);
						}else{
							matrixHelper.rotateY(animatorProps.ry.v*mult);
						}
					}
					if (animatorProps.rx.propType) {
						if(mult.length) {
							matrixHelper.rotateX(animatorProps.rx.v*mult[0]);
						} else {
							matrixHelper.rotateX(animatorProps.rx.v*mult);
						}
					}
					if (animatorProps.o.propType) {
						if(mult.length) {
							elemOpacity += ((animatorProps.o.v)*mult[0] - elemOpacity)*mult[0];
						} else {
							elemOpacity += ((animatorProps.o.v)*mult - elemOpacity)*mult;
						}
					}
					if (documentData.strokeWidthAnim && animatorProps.sw.propType) {
						if(mult.length) {
							sw += animatorProps.sw.v*mult[0];
						} else {
							sw += animatorProps.sw.v*mult;
						}
					}
					if (documentData.strokeColorAnim && animatorProps.sc.propType) {
						for(k=0;k<3;k+=1){
							if(mult.length) {
								sc[k] = sc[k] + (animatorProps.sc.v[k] - sc[k])*mult[0];
							} else {
								sc[k] = sc[k] + (animatorProps.sc.v[k] - sc[k])*mult;
							}
						}
					}
					if (documentData.fillColorAnim && documentData.fc) {
						if(animatorProps.fc.propType){
							for(k=0;k<3;k+=1){
								if(mult.length) {
									fc[k] = fc[k] + (animatorProps.fc.v[k] - fc[k])*mult[0];
								} else {
									fc[k] = fc[k] + (animatorProps.fc.v[k] - fc[k])*mult;
								}
							}
						}
						if(animatorProps.fh.propType){
							if(mult.length) {
								fc = addHueToRGB(fc,animatorProps.fh.v*mult[0]);
							} else {
								fc = addHueToRGB(fc,animatorProps.fh.v*mult);
							}
						}
						if(animatorProps.fs.propType){
							if(mult.length) {
								fc = addSaturationToRGB(fc,animatorProps.fs.v*mult[0]);
							} else {
								fc = addSaturationToRGB(fc,animatorProps.fs.v*mult);
							}
						}
						if(animatorProps.fb.propType){
							if(mult.length) {
								fc = addBrightnessToRGB(fc,animatorProps.fb.v*mult[0]);
							} else {
								fc = addBrightnessToRGB(fc,animatorProps.fb.v*mult);
							}
						}
					}
				}

				for(j=0;j<jLen;j+=1){
					animatorProps = animators[j].a;

					if (animatorProps.p.propType) {
						animatorSelector = animators[j].s;
						mult = animatorSelector.getMult(letters[i].anIndexes[j],textData.a[j].s.totalChars);
						if(this._hasMaskedPath) {
							if(mult.length) {
								matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);
							} else {
								matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);
							}
						}else{
							if(mult.length) {
								matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);
							} else {
								matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);

							}
						}
					}
				}
				if(documentData.strokeWidthAnim){
					letterSw = sw < 0 ? 0 : sw;
				}
				if(documentData.strokeColorAnim){
					letterSc = 'rgb('+Math.round(sc[0]*255)+','+Math.round(sc[1]*255)+','+Math.round(sc[2]*255)+')';
				}
				if(documentData.fillColorAnim && documentData.fc){
					letterFc = 'rgb('+Math.round(fc[0]*255)+','+Math.round(fc[1]*255)+','+Math.round(fc[2]*255)+')';
				}

				if(this._hasMaskedPath) {
					matrixHelper.translate(0,-documentData.ls);

					matrixHelper.translate(0, alignment[1]*yOff/100 + yPos,0);
					if (textData.p.p) {
						tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);
						var rot = Math.atan(tanAngle) * 180 / Math.PI;
						if (currentPoint.point[0] < prevPoint.point[0]) {
							rot += 180;
						}
						matrixHelper.rotate(-rot * Math.PI / 180);
					}
					matrixHelper.translate(xPathPos, yPathPos, 0);
					currentLength -= alignment[0]*letters[i].an/200;
					if(letters[i+1] && ind !== letters[i+1].ind){
						currentLength += letters[i].an / 2;
						currentLength += documentData.tr/1000*documentData.finalSize;
					}
				}else{

					matrixHelper.translate(xPos,yPos,0);

					if(documentData.ps){
						//matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);
						matrixHelper.translate(documentData.ps[0],documentData.ps[1] + documentData.ascent,0);
					}
					switch(documentData.j){
						case 1:
							matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]),0,0);
							break;
						case 2:
							matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line])/2,0,0);
							break;
					}
					matrixHelper.translate(0,-documentData.ls);
					matrixHelper.translate(offf,0,0);
					matrixHelper.translate(alignment[0]*letters[i].an/200,alignment[1]*yOff/100,0);
					xPos += letters[i].l + documentData.tr/1000*documentData.finalSize;
				}
				if(renderType === 'html'){
					letterM = matrixHelper.toCSS();
				}else if(renderType === 'svg'){
					letterM = matrixHelper.to2dCSS();
				}else{
					letterP = [matrixHelper.props[0],matrixHelper.props[1],matrixHelper.props[2],matrixHelper.props[3],matrixHelper.props[4],matrixHelper.props[5],matrixHelper.props[6],matrixHelper.props[7],matrixHelper.props[8],matrixHelper.props[9],matrixHelper.props[10],matrixHelper.props[11],matrixHelper.props[12],matrixHelper.props[13],matrixHelper.props[14],matrixHelper.props[15]];
				}
				letterO = elemOpacity;
			}

			if(renderedLettersCount <= i) {
				letterValue = new LetterProps(letterO,letterSw,letterSc,letterFc,letterM,letterP);
				this.renderedLetters.push(letterValue);
				renderedLettersCount += 1;
				this.lettersChangedFlag = true;
			} else {
				letterValue = this.renderedLetters[i];
				this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;
			}
		}
	};

	TextAnimatorProperty.prototype.getValue = function(){
		if(this._elem.globalData.frameId === this._frameId){
			return;
		}
		this._frameId = this._elem.globalData.frameId;
		this.iterateDynamicProperties();
	};

	TextAnimatorProperty.prototype.mHelper = new Matrix();
	TextAnimatorProperty.prototype.defaultPropsArray = [];
	extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);
	function TextAnimatorDataProperty(elem, animatorProps, container) {
		var defaultData = {propType:false};
		var getProp = PropertyFactory.getProp;
		var textAnimator_animatables = animatorProps.a;
		this.a = {
			r: textAnimator_animatables.r ? getProp(elem, textAnimator_animatables.r, 0, degToRads, container) : defaultData,
			rx: textAnimator_animatables.rx ? getProp(elem, textAnimator_animatables.rx, 0, degToRads, container) : defaultData,
			ry: textAnimator_animatables.ry ? getProp(elem, textAnimator_animatables.ry, 0, degToRads, container) : defaultData,
			sk: textAnimator_animatables.sk ? getProp(elem, textAnimator_animatables.sk, 0, degToRads, container) : defaultData,
			sa: textAnimator_animatables.sa ? getProp(elem, textAnimator_animatables.sa, 0, degToRads, container) : defaultData,
			s: textAnimator_animatables.s ? getProp(elem, textAnimator_animatables.s, 1, 0.01, container) : defaultData,
			a: textAnimator_animatables.a ? getProp(elem, textAnimator_animatables.a, 1, 0, container) : defaultData,
			o: textAnimator_animatables.o ? getProp(elem, textAnimator_animatables.o, 0, 0.01, container) : defaultData,
			p: textAnimator_animatables.p ? getProp(elem,textAnimator_animatables.p, 1, 0, container) : defaultData,
			sw: textAnimator_animatables.sw ? getProp(elem, textAnimator_animatables.sw, 0, 0, container) : defaultData,
			sc: textAnimator_animatables.sc ? getProp(elem, textAnimator_animatables.sc, 1, 0, container) : defaultData,
			fc: textAnimator_animatables.fc ? getProp(elem, textAnimator_animatables.fc, 1, 0, container) : defaultData,
			fh: textAnimator_animatables.fh ? getProp(elem, textAnimator_animatables.fh, 0, 0, container) : defaultData,
			fs: textAnimator_animatables.fs ? getProp(elem, textAnimator_animatables.fs, 0, 0.01, container) : defaultData,
			fb: textAnimator_animatables.fb ? getProp(elem, textAnimator_animatables.fb, 0, 0.01, container) : defaultData,
			t: textAnimator_animatables.t ? getProp(elem, textAnimator_animatables.t, 0, 0, container) : defaultData
		};

		this.s = TextSelectorProp.getTextSelectorProp(elem,animatorProps.s, container);
		this.s.t = animatorProps.s.t;
	}
	function LetterProps(o, sw, sc, fc, m, p){
		this.o = o;
		this.sw = sw;
		this.sc = sc;
		this.fc = fc;
		this.m = m;
		this.p = p;
		this._mdf = {
			o: true,
			sw: !!sw,
			sc: !!sc,
			fc: !!fc,
			m: true,
			p: true
		};
	}

	LetterProps.prototype.update = function(o, sw, sc, fc, m, p) {
		this._mdf.o = false;
		this._mdf.sw = false;
		this._mdf.sc = false;
		this._mdf.fc = false;
		this._mdf.m = false;
		this._mdf.p = false;
		var updated = false;

		if(this.o !== o) {
			this.o = o;
			this._mdf.o = true;
			updated = true;
		}
		if(this.sw !== sw) {
			this.sw = sw;
			this._mdf.sw = true;
			updated = true;
		}
		if(this.sc !== sc) {
			this.sc = sc;
			this._mdf.sc = true;
			updated = true;
		}
		if(this.fc !== fc) {
			this.fc = fc;
			this._mdf.fc = true;
			updated = true;
		}
		if(this.m !== m) {
			this.m = m;
			this._mdf.m = true;
			updated = true;
		}
		if(p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {
			this.p = p;
			this._mdf.p = true;
			updated = true;
		}
		return updated;
	};
	function TextProperty(elem, data){
		this._frameId = initialDefaultFrame;
		this.pv = '';
		this.v = '';
		this.kf = false;
		this._isFirstFrame = true;
		this._mdf = false;
		this.data = data;
		this.elem = elem;
		this.comp = this.elem.comp;
		this.keysIndex = 0;
		this.canResize = false;
		this.minimumFontSize = 1;
		this.effectsSequence = [];
		this.currentData = {
			ascent: 0,
			boxWidth: this.defaultBoxWidth,
			f: '',
			fStyle: '',
			fWeight: '',
			fc: '',
			j: '',
			justifyOffset: '',
			l: [],
			lh: 0,
			lineWidths: [],
			ls: '',
			of: '',
			s: '',
			sc: '',
			sw: 0,
			t: 0,
			tr: 0,
			sz:0,
			ps:null,
			fillColorAnim: false,
			strokeColorAnim: false,
			strokeWidthAnim: false,
			yOffset: 0,
			finalSize:0,
			finalText:[],
			finalLineHeight: 0,
			__complete: false

		};
		this.copyData(this.currentData, this.data.d.k[0].s);

		if(!this.searchProperty()) {
			this.completeTextData(this.currentData);
		}
	}

	TextProperty.prototype.defaultBoxWidth = [0,0];

	TextProperty.prototype.copyData = function(obj, data) {
		for(var s in data) {
			if(data.hasOwnProperty(s)) {
				obj[s] = data[s];
			}
		}
		return obj;
	}

	TextProperty.prototype.setCurrentData = function(data){
		if(!data.__complete) {
			this.completeTextData(data);
		}
		this.currentData = data;
		this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;
		this._mdf = true;
	};

	TextProperty.prototype.searchProperty = function() {
		return this.searchKeyframes();
	};

	TextProperty.prototype.searchKeyframes = function() {
		this.kf = this.data.d.k.length > 1;
		if(this.kf) {
			this.addEffect(this.getKeyframeValue.bind(this));
		}
		return this.kf;
	}

	TextProperty.prototype.addEffect = function(effectFunction) {
		this.effectsSequence.push(effectFunction);
		this.elem.addDynamicProperty(this);
	};

	TextProperty.prototype.getValue = function(_finalValue) {
		if((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {
			return;
		}
		this.currentData.t = this.data.d.k[this.keysIndex].s.t;
		var currentValue = this.currentData;
		var currentIndex = this.keysIndex;
		if(this.lock) {
			this.setCurrentData(this.currentData);
			return;
		}
		this.lock = true;
		this._mdf = false;
		var multipliedValue;
		var i, len = this.effectsSequence.length;
		var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;
		for(i = 0; i < len; i += 1) {
			//Checking if index changed to prevent creating a new object every time the expression updates.
			if(currentIndex !== this.keysIndex) {
				finalValue = this.effectsSequence[i](finalValue, finalValue.t);
			} else {
				finalValue = this.effectsSequence[i](this.currentData, finalValue.t);
			}
		}
		if(currentValue !== finalValue) {
			this.setCurrentData(finalValue);
		}
		this.pv = this.v = this.currentData;
		this.lock = false;
		this.frameId = this.elem.globalData.frameId;
	}

	TextProperty.prototype.getKeyframeValue = function() {
		var textKeys = this.data.d.k, textDocumentData;
		var frameNum = this.elem.comp.renderedFrame;
		var i = 0, len = textKeys.length;
		while(i <= len - 1) {
			textDocumentData = textKeys[i].s;
			if(i === len - 1 || textKeys[i+1].t > frameNum){
				break;
			}
			i += 1;
		}
		if(this.keysIndex !== i) {
			this.keysIndex = i;
		}
		return this.data.d.k[this.keysIndex].s;
	};

	TextProperty.prototype.buildFinalText = function(text) {
		var combinedCharacters = FontManager.getCombinedCharacterCodes();
		var charactersArray = [];
		var i = 0, len = text.length;
		var charCode;
		while (i < len) {
			charCode = text.charCodeAt(i);
			if (combinedCharacters.indexOf(charCode) !== -1) {
				charactersArray[charactersArray.length - 1] += text.charAt(i);
			} else {
				if (charCode >= 0xD800 && charCode <= 0xDBFF) {
					charCode = text.charCodeAt(i + 1);
					if (charCode >= 0xDC00 && charCode <= 0xDFFF) {
						charactersArray.push(text.substr(i, 2));
						++i;
					} else {
						charactersArray.push(text.charAt(i));
					}
				} else {
					charactersArray.push(text.charAt(i));
				}
			}
			i += 1;
		}
		return charactersArray;
	}

	TextProperty.prototype.completeTextData = function(documentData) {
		documentData.__complete = true;
		var fontManager = this.elem.globalData.fontManager;
		var data = this.data;
		var letters = [];
		var i, len;
		var newLineFlag, index = 0, val;
		var anchorGrouping = data.m.g;
		var currentSize = 0, currentPos = 0, currentLine = 0, lineWidths = [];
		var lineWidth = 0;
		var maxLineWidth = 0;
		var j, jLen;
		var fontData = fontManager.getFontByName(documentData.f);
		var charData, cLength = 0;
		var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];

		var fWeight = 'normal', fStyle = 'normal';
		len = styles.length;
		var styleName;
		for(i=0;i<len;i+=1){
			styleName = styles[i].toLowerCase();
			switch(styleName) {
				case 'italic':
					fStyle = 'italic';
					break;
				case 'bold':
					fWeight = '700';
					break;
				case 'black':
					fWeight = '900';
					break;
				case 'medium':
					fWeight = '500';
					break;
				case 'regular':
				case 'normal':
					fWeight = '400';
					break;
				case 'light':
				case 'thin':
					fWeight = '200';
					break;
			}
		}
		documentData.fWeight = fontData.fWeight || fWeight;
		documentData.fStyle = fStyle;
		documentData.finalSize = documentData.s;
		documentData.finalText = this.buildFinalText(documentData.t);
		len = documentData.finalText.length;
		documentData.finalLineHeight = documentData.lh;
		var trackingOffset = documentData.tr/1000*documentData.finalSize;
		var charCode;
		if(documentData.sz){
			var flag = true;
			var boxWidth = documentData.sz[0];
			var boxHeight = documentData.sz[1];
			var currentHeight, finalText;
			while(flag) {
				finalText = this.buildFinalText(documentData.t);
				currentHeight = 0;
				lineWidth = 0;
				len = finalText.length;
				trackingOffset = documentData.tr/1000*documentData.finalSize;
				var lastSpaceIndex = -1;
				for(i=0;i<len;i+=1){
					charCode = finalText[i].charCodeAt(0);
					newLineFlag = false;
					if(finalText[i] === ' '){
						lastSpaceIndex = i;
					}else if(charCode === 13 || charCode === 3){
						lineWidth = 0;
						newLineFlag = true;
						currentHeight += documentData.finalLineHeight || documentData.finalSize*1.2;
					}
					if(fontManager.chars){
						charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);
						cLength = newLineFlag ? 0 : charData.w*documentData.finalSize/100;
					}else{
						//tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;
						cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);
					}
					if(lineWidth + cLength > boxWidth && finalText[i] !== ' '){
						if(lastSpaceIndex === -1){
							len += 1;
						} else {
							i = lastSpaceIndex;
						}
						currentHeight += documentData.finalLineHeight || documentData.finalSize*1.2;
						finalText.splice(i, lastSpaceIndex === i ? 1 : 0,"\r");
						//finalText = finalText.substr(0,i) + "\r" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);
						lastSpaceIndex = -1;
						lineWidth = 0;
					}else {
						lineWidth += cLength;
						lineWidth += trackingOffset;
					}
				}
				currentHeight += fontData.ascent*documentData.finalSize/100;
				if(this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {
					documentData.finalSize -= 1;
					documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;
				} else {
					documentData.finalText = finalText;
					len = documentData.finalText.length;
					flag = false;
				}
			}

		}
		lineWidth = - trackingOffset;
		cLength = 0;
		var uncollapsedSpaces = 0;
		var currentChar;
		for (i = 0;i < len ;i += 1) {
			newLineFlag = false;
			currentChar = documentData.finalText[i];
			charCode = currentChar.charCodeAt(0);
			if (charCode === 13 || charCode === 3) {
				uncollapsedSpaces = 0;
				lineWidths.push(lineWidth);
				maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;
				lineWidth = - 2 * trackingOffset;
				val = '';
				newLineFlag = true;
				currentLine += 1;
			}else{
				val = currentChar;
			}
			if(fontManager.chars){
				charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);
				cLength = newLineFlag ? 0 : charData.w*documentData.finalSize/100;
			}else{
				//var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);
				//tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;
				cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);
			}

			//
			if(currentChar === ' '){
				uncollapsedSpaces += cLength + trackingOffset;
			} else {
				lineWidth += cLength + trackingOffset + uncollapsedSpaces;
				uncollapsedSpaces = 0;
			}
			letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine, animatorJustifyOffset: 0});
			if(anchorGrouping == 2){
				currentSize += cLength;
				if(val === '' || val === ' ' || i === len - 1){
					if(val === '' || val === ' '){
						currentSize -= cLength;
					}
					while(currentPos<=i){
						letters[currentPos].an = currentSize;
						letters[currentPos].ind = index;
						letters[currentPos].extra = cLength;
						currentPos += 1;
					}
					index += 1;
					currentSize = 0;
				}
			}else if(anchorGrouping == 3){
				currentSize += cLength;
				if(val === '' || i === len - 1){
					if(val === ''){
						currentSize -= cLength;
					}
					while(currentPos<=i){
						letters[currentPos].an = currentSize;
						letters[currentPos].ind = index;
						letters[currentPos].extra = cLength;
						currentPos += 1;
					}
					currentSize = 0;
					index += 1;
				}
			}else{
				letters[index].ind = index;
				letters[index].extra = 0;
				index += 1;
			}
		}
		documentData.l = letters;
		maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;
		lineWidths.push(lineWidth);
		if(documentData.sz){
			documentData.boxWidth = documentData.sz[0];
			documentData.justifyOffset = 0;
		}else{
			documentData.boxWidth = maxLineWidth;
			switch(documentData.j){
				case 1:
					documentData.justifyOffset = - documentData.boxWidth;
					break;
				case 2:
					documentData.justifyOffset = - documentData.boxWidth/2;
					break;
				default:
					documentData.justifyOffset = 0;
			}
		}
		documentData.lineWidths = lineWidths;

		var animators = data.a, animatorData, letterData;
		jLen = animators.length;
		var based, ind, indexes = [];
		for(j=0;j<jLen;j+=1){
			animatorData = animators[j];
			if(animatorData.a.sc){
				documentData.strokeColorAnim = true;
			}
			if(animatorData.a.sw){
				documentData.strokeWidthAnim = true;
			}
			if(animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb){
				documentData.fillColorAnim = true;
			}
			ind = 0;
			based = animatorData.s.b;
			for(i=0;i<len;i+=1){
				letterData = letters[i];
				letterData.anIndexes[j] = ind;
				if((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))){
					if(animatorData.s.rn === 1){
						indexes.push(ind);
					}
					ind += 1;
				}
			}
			data.a[j].s.totalChars = ind;
			var currentInd = -1, newInd;
			if(animatorData.s.rn === 1){
				for(i = 0; i < len; i += 1){
					letterData = letters[i];
					if(currentInd != letterData.anIndexes[j]){
						currentInd = letterData.anIndexes[j];
						newInd = indexes.splice(Math.floor(Math.random()*indexes.length),1)[0];
					}
					letterData.anIndexes[j] = newInd;
				}
			}
		}
		documentData.yOffset = documentData.finalLineHeight || documentData.finalSize*1.2;
		documentData.ls = documentData.ls || 0;
		documentData.ascent = fontData.ascent*documentData.finalSize/100;
	};

	TextProperty.prototype.updateDocumentData = function(newData, index) {
		index = index === undefined ? this.keysIndex : index;
		var dData = this.copyData({}, this.data.d.k[index].s);
		dData = this.copyData(dData, newData);
		this.data.d.k[index].s = dData;
		this.recalculate(index);
		this.elem.addDynamicProperty(this);
	};

	TextProperty.prototype.recalculate = function(index) {
		var dData = this.data.d.k[index].s;
		dData.__complete = false;
		this.keysIndex = 0;
		this._isFirstFrame = true;
		this.getValue(dData);
	}

	TextProperty.prototype.canResizeFont = function(_canResize) {
		this.canResize = _canResize;
		this.recalculate(this.keysIndex);
		this.elem.addDynamicProperty(this);
	};

	TextProperty.prototype.setMinimumFontSize = function(_fontValue) {
		this.minimumFontSize = Math.floor(_fontValue) || 1;
		this.recalculate(this.keysIndex);
		this.elem.addDynamicProperty(this);
	};

	var TextSelectorProp = (function(){
		var max = Math.max;
		var min = Math.min;
		var floor = Math.floor;

		function TextSelectorProp(elem,data){
			this._currentTextLength = -1;
			this.k = false;
			this.data = data;
			this.elem = elem;
			this.comp = elem.comp;
			this.finalS = 0;
			this.finalE = 0;
			this.initDynamicPropertyContainer(elem);
			this.s = PropertyFactory.getProp(elem,data.s || {k:0},0,0,this);
			if('e' in data){
				this.e = PropertyFactory.getProp(elem,data.e,0,0,this);
			}else{
				this.e = {v:100};
			}
			this.o = PropertyFactory.getProp(elem,data.o || {k:0},0,0,this);
			this.xe = PropertyFactory.getProp(elem,data.xe || {k:0},0,0,this);
			this.ne = PropertyFactory.getProp(elem,data.ne || {k:0},0,0,this);
			this.a = PropertyFactory.getProp(elem,data.a,0,0.01,this);
			if(!this.dynamicProperties.length){
				this.getValue();
			}
		}

		TextSelectorProp.prototype = {
			getMult: function(ind) {
				if(this._currentTextLength !== this.elem.textProperty.currentData.l.length) {
					this.getValue();
				}
				//var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);
				var x1 = 0;
				var y1 = 0;
				var x2 = 1;
				var y2 = 1;
				if(this.ne.v > 0) {
					x1 = this.ne.v / 100.0;
				}
				else {
					y1 = -this.ne.v / 100.0;
				}
				if(this.xe.v > 0) {
					x2 = 1.0 - this.xe.v / 100.0;
				}
				else {
					y2 = 1.0 + this.xe.v / 100.0;
				}
				var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;

				var mult = 0;
				var s = this.finalS;
				var e = this.finalE;
				var type = this.data.sh;
				if (type === 2){
					if (e === s) {
						mult = ind >= e ? 1 : 0;
					} else {
						mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));
					}
					mult = easer(mult);
				} else if(type === 3) {
					if (e === s) {
						mult = ind >= e ? 0 : 1;
					}else{
						mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s),1));
					}

					mult = easer(mult);
				} else if (type === 4) {
					if (e === s) {
						mult = 0;
					} else {
						mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));
						if (mult < 0.5) {
							mult *= 2;
						} else {
							mult = 1 - 2 * (mult - 0.5);
						}
					}
					mult = easer(mult);
				} else if (type === 5) {
					if (e === s){
						mult = 0;
					} else {
						var tot = e - s;
						/*ind += 0.5;
                    mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind;*/
						ind = min(max(0, ind + 0.5 - s), e - s);
						var x = -tot/2+ind;
						var a = tot/2;
						mult = Math.sqrt(1 - (x * x) / (a * a));
					}
					mult = easer(mult);
				} else if (type === 6) {
					if (e === s){
						mult = 0;
					} else {
						ind = min(max(0, ind + 0.5 - s), e - s);
						mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2;
					}
					mult = easer(mult);
				} else {
					if (ind >= floor(s)) {
						if (ind - s < 0) {
							mult = max(0, min(min(e, 1) - (s - ind), 1));
						} else {
							mult = max(0, min(e - ind, 1));
						}
					}
					mult = easer(mult);
				}
				return mult*this.a.v;
			},
			getValue: function(newCharsFlag) {
				this.iterateDynamicProperties();
				this._mdf = newCharsFlag || this._mdf;
				this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;
				if(newCharsFlag && this.data.r === 2) {
					this.e.v = this._currentTextLength;
				}
				var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;
				var o = this.o.v/divisor;
				var s = this.s.v/divisor + o;
				var e = (this.e.v/divisor) + o;
				if(s>e){
					var _s = s;
					s = e;
					e = _s;
				}
				this.finalS = s;
				this.finalE = e;
			}
		}
		extendPrototype([DynamicPropertyContainer], TextSelectorProp);

		function getTextSelectorProp(elem, data,arr) {
			return new TextSelectorProp(elem, data, arr);
		}

		return {
			getTextSelectorProp: getTextSelectorProp
		};
	}());


	var pool_factory = (function() {
		return function(initialLength, _create, _release, _clone) {

			var _length = 0;
			var _maxLength = initialLength;
			var pool = createSizedArray(_maxLength);

			var ob = {
				newElement: newElement,
				release: release
			};

			function newElement(){
				var element;
				if(_length){
					_length -= 1;
					element = pool[_length];
				} else {
					element = _create();
				}
				return element;
			}

			function release(element) {
				if(_length === _maxLength) {
					pool = pooling.double(pool);
					_maxLength = _maxLength*2;
				}
				if (_release) {
					_release(element);
				}
				pool[_length] = element;
				_length += 1;
			}

			function clone() {
				var clonedElement = newElement();
				return _clone(clonedElement);
			}

			return ob;
		};
	}());

	var pooling = (function(){

		function double(arr){
			return arr.concat(createSizedArray(arr.length));
		}

		return {
			double: double
		};
	}());
	var point_pool = (function(){

		function create() {
			return createTypedArray('float32', 2);
		}
		return pool_factory(8, create);
	}());
	var shape_pool = (function(){

		function create() {
			return new ShapePath();
		}

		function release(shapePath) {
			var len = shapePath._length, i;
			for(i = 0; i < len; i += 1) {
				point_pool.release(shapePath.v[i]);
				point_pool.release(shapePath.i[i]);
				point_pool.release(shapePath.o[i]);
				shapePath.v[i] = null;
				shapePath.i[i] = null;
				shapePath.o[i] = null;
			}
			shapePath._length = 0;
			shapePath.c = false;
		}

		function clone(shape) {
			var cloned = factory.newElement();
			var i, len = shape._length === undefined ? shape.v.length : shape._length;
			cloned.setLength(len);
			cloned.c = shape.c;
			var pt;

			for(i = 0; i < len; i += 1) {
				cloned.setTripleAt(shape.v[i][0],shape.v[i][1],shape.o[i][0],shape.o[i][1],shape.i[i][0],shape.i[i][1], i);
			}
			return cloned;
		}

		var factory = pool_factory(4, create, release);
		factory.clone = clone;

		return factory;
	}());
	var shapeCollection_pool = (function(){
		var ob = {
			newShapeCollection: newShapeCollection,
			release: release
		};

		var _length = 0;
		var _maxLength = 4;
		var pool = createSizedArray(_maxLength);

		function newShapeCollection(){
			var shapeCollection;
			if(_length){
				_length -= 1;
				shapeCollection = pool[_length];
			} else {
				shapeCollection = new ShapeCollection();
			}
			return shapeCollection;
		}

		function release(shapeCollection) {
			var i, len = shapeCollection._length;
			for(i = 0; i < len; i += 1) {
				shape_pool.release(shapeCollection.shapes[i]);
			}
			shapeCollection._length = 0;

			if(_length === _maxLength) {
				pool = pooling.double(pool);
				_maxLength = _maxLength*2;
			}
			pool[_length] = shapeCollection;
			_length += 1;
		}

		return ob;
	}());
	var segments_length_pool = (function(){

		function create() {
			return {
				lengths: [],
				totalLength: 0
			};
		}

		function release(element) {
			var i, len = element.lengths.length;
			for(i=0;i<len;i+=1) {
				bezier_length_pool.release(element.lengths[i]);
			}
			element.lengths.length = 0;
		}

		return pool_factory(8, create, release);
	}());
	var bezier_length_pool = (function(){

		function create() {
			return {
				addedLength: 0,
				percents: createTypedArray('float32', defaultCurveSegments),
				lengths: createTypedArray('float32', defaultCurveSegments),
			};
		}
		return pool_factory(8, create);
	}());
	function BaseRenderer(){}
	BaseRenderer.prototype.checkLayers = function(num){
		var i, len = this.layers.length, data;
		this.completeLayers = true;
		for (i = len - 1; i >= 0; i--) {
			if (!this.elements[i]) {
				data = this.layers[i];
				if(data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st))
				{
					this.buildItem(i);
				}
			}
			this.completeLayers = this.elements[i] ? this.completeLayers:false;
		}
		this.checkPendingElements();
	};

	BaseRenderer.prototype.createItem = function(layer){
		switch(layer.ty){
			case 2:
				return this.createImage(layer);
			case 0:
				return this.createComp(layer);
			case 1:
				return this.createSolid(layer);
			case 3:
				return this.createNull(layer);
			case 4:
				return this.createShape(layer);
			case 5:
				return this.createText(layer);
			case 13:
				return this.createCamera(layer);
		}
		return this.createNull(layer);
	};

	BaseRenderer.prototype.createCamera = function(){
		throw new Error('You\'re using a 3d camera. Try the html renderer.');
	};

	BaseRenderer.prototype.buildAllItems = function(){
		var i, len = this.layers.length;
		for(i=0;i<len;i+=1){
			this.buildItem(i);
		}
		this.checkPendingElements();
	};

	BaseRenderer.prototype.includeLayers = function(newLayers){
		this.completeLayers = false;
		var i, len = newLayers.length;
		var j, jLen = this.layers.length;
		for(i=0;i<len;i+=1){
			j = 0;
			while(j<jLen){
				if(this.layers[j].id == newLayers[i].id){
					this.layers[j] = newLayers[i];
					break;
				}
				j += 1;
			}
		}
	};

	BaseRenderer.prototype.setProjectInterface = function(pInterface){
		this.globalData.projectInterface = pInterface;
	};

	BaseRenderer.prototype.initItems = function(){
		if(!this.globalData.progressiveLoad){
			this.buildAllItems();
		}
	};
	BaseRenderer.prototype.buildElementParenting = function(element, parentName, hierarchy) {
		var elements = this.elements;
		var layers = this.layers;
		var i=0, len = layers.length;
		while (i < len) {
			if (layers[i].ind == parentName) {
				if (!elements[i] || elements[i] === true) {
					this.buildItem(i);
					this.addPendingElement(element);
				} else {
					hierarchy.push(elements[i]);
					elements[i].setAsParent();
					if(layers[i].parent !== undefined) {
						this.buildElementParenting(element, layers[i].parent, hierarchy);
					} else {
						element.setHierarchy(hierarchy);
					}
				}
			}
			i += 1;
		}
	};

	BaseRenderer.prototype.addPendingElement = function(element){
		this.pendingElements.push(element);
	};

	BaseRenderer.prototype.searchExtraCompositions = function(assets){
		var i, len = assets.length;
		for(i=0;i<len;i+=1){
			if(assets[i].xt){
				var comp = this.createComp(assets[i]);
				comp.initExpressions();
				this.globalData.projectInterface.registerComposition(comp);
			}
		}
	};

	BaseRenderer.prototype.setupGlobalData = function(animData, fontsContainer) {
		this.globalData.fontManager = new FontManager();
		this.globalData.fontManager.addChars(animData.chars);
		this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);
		this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);
		this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);
		this.globalData.imageLoader = this.animationItem.imagePreloader;
		this.globalData.frameId = 0;
		this.globalData.frameRate = animData.fr;
		this.globalData.nm = animData.nm;
		this.globalData.compSize = {
			w: animData.w,
			h: animData.h
		}
	}
	function SVGRenderer(animationItem, config){
		this.animationItem = animationItem;
		this.layers = null;
		this.renderedFrame = -1;
		this.svgElement = createNS('svg');
		var ariaLabel = '';
		if (config && config.title) {
			var titleElement = createNS('title');
			var titleId = createElementID();
			titleElement.setAttribute('id', titleId);
			titleElement.textContent = config.title;
			this.svgElement.appendChild(titleElement);
			ariaLabel += titleId;
		}
		if (config && config.description) {
			var descElement = createNS('desc');
			var descId = createElementID();
			descElement.setAttribute('id', descId);
			descElement.textContent = config.description;
			this.svgElement.appendChild(descElement);
			ariaLabel += ' ' + descId;
		}
		if (ariaLabel) {
			this.svgElement.setAttribute('aria-labelledby', ariaLabel)
		}
		var defs = createNS( 'defs');
		this.svgElement.appendChild(defs);
		var maskElement = createNS('g');
		this.svgElement.appendChild(maskElement);
		this.layerElement = maskElement;
		this.renderConfig = {
			preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',
			imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',
			progressiveLoad: (config && config.progressiveLoad) || false,
			hideOnTransparent: (config && config.hideOnTransparent === false) ? false : true,
			viewBoxOnly: (config && config.viewBoxOnly) || false,
			viewBoxSize: (config && config.viewBoxSize) || false,
			className: (config && config.className) || '',
			id: (config && config.id) || '',
			focusable: config && config.focusable,
			filterSize: {
				width: config && config.filterSize && config.filterSize.width || '100%',
				height: config && config.filterSize && config.filterSize.height || '100%',
				x: config && config.filterSize && config.filterSize.x || '0%',
				y: config && config.filterSize && config.filterSize.y || '0%',
			}
		};

		this.globalData = {
			_mdf: false,
			frameNum: -1,
			defs: defs,
			renderConfig: this.renderConfig
		};
		this.elements = [];
		this.pendingElements = [];
		this.destroyed = false;
		this.rendererType = 'svg';

	}

	extendPrototype([BaseRenderer],SVGRenderer);

	SVGRenderer.prototype.createNull = function (data) {
		return new NullElement(data,this.globalData,this);
	};

	SVGRenderer.prototype.createShape = function (data) {
		return new SVGShapeElement(data,this.globalData,this);
	};

	SVGRenderer.prototype.createText = function (data) {
		return new SVGTextElement(data,this.globalData,this);

	};

	SVGRenderer.prototype.createImage = function (data) {
		return new IImageElement(data,this.globalData,this);
	};

	SVGRenderer.prototype.createComp = function (data) {
		return new SVGCompElement(data,this.globalData,this);

	};

	SVGRenderer.prototype.createSolid = function (data) {
		return new ISolidElement(data,this.globalData,this);
	};

	SVGRenderer.prototype.configAnimation = function(animData){
		this.svgElement.setAttribute('xmlns','http://www.w3.org/2000/svg');
		if(this.renderConfig.viewBoxSize) {
			this.svgElement.setAttribute('viewBox',this.renderConfig.viewBoxSize);
		} else {
			this.svgElement.setAttribute('viewBox','0 0 '+animData.w+' '+animData.h);
		}

		if(!this.renderConfig.viewBoxOnly) {
			this.svgElement.setAttribute('width',animData.w);
			this.svgElement.setAttribute('height',animData.h);
			this.svgElement.style.width = '100%';
			this.svgElement.style.height = '100%';
			this.svgElement.style.transform = 'translate3d(0,0,0)';
		}
		if (this.renderConfig.className) {
			this.svgElement.setAttribute('class', this.renderConfig.className);
		}
		if (this.renderConfig.id) {
			this.svgElement.setAttribute('id', this.renderConfig.id);
		}
		if (this.renderConfig.focusable !== undefined) {
			this.svgElement.setAttribute('focusable', this.renderConfig.focusable);
		}
		this.svgElement.setAttribute('preserveAspectRatio',this.renderConfig.preserveAspectRatio);
		//this.layerElement.style.transform = 'translate3d(0,0,0)';
		//this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = "0px 0px 0px";
		this.animationItem.wrapper.appendChild(this.svgElement);
		//Mask animation
		var defs = this.globalData.defs;

		this.setupGlobalData(animData, defs);
		this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;
		this.data = animData;

		var maskElement = createNS( 'clipPath');
		var rect = createNS('rect');
		rect.setAttribute('width',animData.w);
		rect.setAttribute('height',animData.h);
		rect.setAttribute('x',0);
		rect.setAttribute('y',0);
		var maskId = createElementID();
		maskElement.setAttribute('id', maskId);
		maskElement.appendChild(rect);
		this.layerElement.setAttribute("clip-path", "url(" + locationHref + "#"+maskId+")");

		defs.appendChild(maskElement);
		this.layers = animData.layers;
		this.elements = createSizedArray(animData.layers.length);
	};


	SVGRenderer.prototype.destroy = function () {
		this.animationItem.wrapper.innerHTML = '';
		this.layerElement = null;
		this.globalData.defs = null;
		var i, len = this.layers ? this.layers.length : 0;
		for (i = 0; i < len; i++) {
			if(this.elements[i]){
				this.elements[i].destroy();
			}
		}
		this.elements.length = 0;
		this.destroyed = true;
		this.animationItem = null;
	};

	SVGRenderer.prototype.updateContainerSize = function () {
	};

	SVGRenderer.prototype.buildItem  = function(pos){
		var elements = this.elements;
		if(elements[pos] || this.layers[pos].ty == 99){
			return;
		}
		elements[pos] = true;
		var element = this.createItem(this.layers[pos]);

		elements[pos] = element;
		if(expressionsPlugin){
			if(this.layers[pos].ty === 0){
				this.globalData.projectInterface.registerComposition(element);
			}
			element.initExpressions();
		}
		this.appendElementInPos(element,pos);
		if(this.layers[pos].tt){
			if(!this.elements[pos - 1] || this.elements[pos - 1] === true){
				this.buildItem(pos - 1);
				this.addPendingElement(element);
			} else {
				element.setMatte(elements[pos - 1].layerId);
			}
		}
	};

	SVGRenderer.prototype.checkPendingElements  = function(){
		while(this.pendingElements.length){
			var element = this.pendingElements.pop();
			element.checkParenting();
			if(element.data.tt){
				var i = 0, len = this.elements.length;
				while(i<len){
					if(this.elements[i] === element){
						element.setMatte(this.elements[i - 1].layerId);
						break;
					}
					i += 1;
				}
			}
		}
	};

	SVGRenderer.prototype.renderFrame = function(num){
		if(this.renderedFrame === num || this.destroyed){
			return;
		}
		if(num === null){
			num = this.renderedFrame;
		}else{
			this.renderedFrame = num;
		}
		// console.log('-------');
		// console.log('FRAME ',num);
		this.globalData.frameNum = num;
		this.globalData.frameId += 1;
		this.globalData.projectInterface.currentFrame = num;
		this.globalData._mdf = false;
		var i, len = this.layers.length;
		if(!this.completeLayers){
			this.checkLayers(num);
		}
		for (i = len - 1; i >= 0; i--) {
			if(this.completeLayers || this.elements[i]){
				this.elements[i].prepareFrame(num - this.layers[i].st);
			}
		}
		if(this.globalData._mdf) {
			for (i = 0; i < len; i += 1) {
				if(this.completeLayers || this.elements[i]){
					this.elements[i].renderFrame();
				}
			}
		}
	};

	SVGRenderer.prototype.appendElementInPos = function(element, pos){
		var newElement = element.getBaseElement();
		if(!newElement){
			return;
		}
		var i = 0;
		var nextElement;
		while(i<pos){
			if(this.elements[i] && this.elements[i]!== true && this.elements[i].getBaseElement()){
				nextElement = this.elements[i].getBaseElement();
			}
			i += 1;
		}
		if(nextElement){
			this.layerElement.insertBefore(newElement, nextElement);
		} else {
			this.layerElement.appendChild(newElement);
		}
	};

	SVGRenderer.prototype.hide = function(){
		this.layerElement.style.display = 'none';
	};

	SVGRenderer.prototype.show = function(){
		this.layerElement.style.display = 'block';
	};

	function CanvasRenderer(animationItem, config){
		this.animationItem = animationItem;
		this.renderConfig = {
			clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,
			context: (config && config.context) || null,
			progressiveLoad: (config && config.progressiveLoad) || false,
			preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',
			imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',
			className: (config && config.className) || '',
			id: (config && config.id) || '',
		};
		this.renderConfig.dpr = (config && config.dpr) || 1;
		if (this.animationItem.wrapper) {
			this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;
		}
		this.renderedFrame = -1;
		this.globalData = {
			frameNum: -1,
			_mdf: false,
			renderConfig: this.renderConfig,
			currentGlobalAlpha: -1
		};
		this.contextData = new CVContextData();
		this.elements = [];
		this.pendingElements = [];
		this.transformMat = new Matrix();
		this.completeLayers = false;
		this.rendererType = 'canvas';
	}
	extendPrototype([BaseRenderer],CanvasRenderer);

	CanvasRenderer.prototype.createShape = function (data) {
		return new CVShapeElement(data, this.globalData, this);
	};

	CanvasRenderer.prototype.createText = function (data) {
		return new CVTextElement(data, this.globalData, this);
	};

	CanvasRenderer.prototype.createImage = function (data) {
		return new CVImageElement(data, this.globalData, this);
	};

	CanvasRenderer.prototype.createComp = function (data) {
		return new CVCompElement(data, this.globalData, this);
	};

	CanvasRenderer.prototype.createSolid = function (data) {
		return new CVSolidElement(data, this.globalData, this);
	};

	CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;

	CanvasRenderer.prototype.ctxTransform = function(props){
		if(props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0){
			return;
		}
		if(!this.renderConfig.clearCanvas){
			this.canvasContext.transform(props[0],props[1],props[4],props[5],props[12],props[13]);
			return;
		}
		this.transformMat.cloneFromProps(props);
		var cProps = this.contextData.cTr.props;
		this.transformMat.transform(cProps[0],cProps[1],cProps[2],cProps[3],cProps[4],cProps[5],cProps[6],cProps[7],cProps[8],cProps[9],cProps[10],cProps[11],cProps[12],cProps[13],cProps[14],cProps[15]);
		//this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);
		this.contextData.cTr.cloneFromProps(this.transformMat.props);
		var trProps = this.contextData.cTr.props;
		this.canvasContext.setTransform(trProps[0],trProps[1],trProps[4],trProps[5],trProps[12],trProps[13]);
	};

	CanvasRenderer.prototype.ctxOpacity = function(op){
		/*if(op === 1){
        return;
    }*/
		if(!this.renderConfig.clearCanvas){
			this.canvasContext.globalAlpha *= op < 0 ? 0 : op;
			this.globalData.currentGlobalAlpha = this.contextData.cO;
			return;
		}
		this.contextData.cO *= op < 0 ? 0 : op;
		if(this.globalData.currentGlobalAlpha !== this.contextData.cO) {
			this.canvasContext.globalAlpha = this.contextData.cO;
			this.globalData.currentGlobalAlpha = this.contextData.cO;
		}
	};

	CanvasRenderer.prototype.reset = function(){
		if(!this.renderConfig.clearCanvas){
			this.canvasContext.restore();
			return;
		}
		this.contextData.reset();
	};

	CanvasRenderer.prototype.save = function(actionFlag){
		if(!this.renderConfig.clearCanvas){
			this.canvasContext.save();
			return;
		}
		if(actionFlag){
			this.canvasContext.save();
		}
		var props = this.contextData.cTr.props;
		if(this.contextData._length <= this.contextData.cArrPos) {
			this.contextData.duplicate();
		}
		var i, arr = this.contextData.saved[this.contextData.cArrPos];
		for (i = 0; i < 16; i += 1) {
			arr[i] = props[i];
		}
		this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;
		this.contextData.cArrPos += 1;
	};

	CanvasRenderer.prototype.restore = function(actionFlag){
		if(!this.renderConfig.clearCanvas){
			this.canvasContext.restore();
			return;
		}
		if(actionFlag){
			this.canvasContext.restore();
			this.globalData.blendMode = 'source-over';
		}
		this.contextData.cArrPos -= 1;
		var popped = this.contextData.saved[this.contextData.cArrPos];
		var i,arr = this.contextData.cTr.props;
		for(i=0;i<16;i+=1){
			arr[i] = popped[i];
		}
		this.canvasContext.setTransform(popped[0],popped[1],popped[4],popped[5],popped[12],popped[13]);
		popped = this.contextData.savedOp[this.contextData.cArrPos];
		this.contextData.cO = popped;
		if(this.globalData.currentGlobalAlpha !== popped) {
			this.canvasContext.globalAlpha = popped;
			this.globalData.currentGlobalAlpha = popped;
		}
	};

	CanvasRenderer.prototype.configAnimation = function(animData){
		if(this.animationItem.wrapper){
			this.animationItem.container = createTag('canvas');
			this.animationItem.container.style.width = '100%';
			this.animationItem.container.style.height = '100%';
			//this.animationItem.container.style.transform = 'translate3d(0,0,0)';
			//this.animationItem.container.style.webkitTransform = 'translate3d(0,0,0)';
			this.animationItem.container.style.transformOrigin = this.animationItem.container.style.mozTransformOrigin = this.animationItem.container.style.webkitTransformOrigin = this.animationItem.container.style['-webkit-transform'] = "0px 0px 0px";
			this.animationItem.wrapper.appendChild(this.animationItem.container);
			this.canvasContext = this.animationItem.container.getContext('2d');
			if(this.renderConfig.className) {
				this.animationItem.container.setAttribute('class', this.renderConfig.className);
			}
			if(this.renderConfig.id) {
				this.animationItem.container.setAttribute('id', this.renderConfig.id);
			}
		}else{
			this.canvasContext = this.renderConfig.context;
		}
		this.data = animData;
		this.layers = animData.layers;
		this.transformCanvas = {
			w: animData.w,
			h:animData.h,
			sx:0,
			sy:0,
			tx:0,
			ty:0
		};
		this.setupGlobalData(animData, document.body);
		this.globalData.canvasContext = this.canvasContext;
		this.globalData.renderer = this;
		this.globalData.isDashed = false;
		this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;
		this.globalData.transformCanvas = this.transformCanvas;
		this.elements = createSizedArray(animData.layers.length);

		this.updateContainerSize();
	};

	CanvasRenderer.prototype.updateContainerSize = function () {
		this.reset();
		var elementWidth,elementHeight;
		if(this.animationItem.wrapper && this.animationItem.container){
			elementWidth = this.animationItem.wrapper.offsetWidth;
			elementHeight = this.animationItem.wrapper.offsetHeight;
			this.animationItem.container.setAttribute('width',elementWidth * this.renderConfig.dpr );
			this.animationItem.container.setAttribute('height',elementHeight * this.renderConfig.dpr);
		}else{
			elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;
			elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;
		}
		var elementRel,animationRel;
		if(this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1){
			var par = this.renderConfig.preserveAspectRatio.split(' ');
			var fillType = par[1] || 'meet';
			var pos = par[0] || 'xMidYMid';
			var xPos = pos.substr(0,4);
			var yPos = pos.substr(4);
			elementRel = elementWidth/elementHeight;
			animationRel = this.transformCanvas.w/this.transformCanvas.h;
			if(animationRel>elementRel && fillType === 'meet' || animationRel<elementRel && fillType === 'slice'){
				this.transformCanvas.sx = elementWidth/(this.transformCanvas.w/this.renderConfig.dpr);
				this.transformCanvas.sy = elementWidth/(this.transformCanvas.w/this.renderConfig.dpr);
			}else{
				this.transformCanvas.sx = elementHeight/(this.transformCanvas.h / this.renderConfig.dpr);
				this.transformCanvas.sy = elementHeight/(this.transformCanvas.h / this.renderConfig.dpr);
			}

			if(xPos === 'xMid' && ((animationRel<elementRel && fillType==='meet') || (animationRel>elementRel && fillType === 'slice'))){
				this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr;
			} else if(xPos === 'xMax' && ((animationRel<elementRel && fillType==='meet') || (animationRel>elementRel && fillType === 'slice'))){
				this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr;
			} else {
				this.transformCanvas.tx = 0;
			}
			if(yPos === 'YMid' && ((animationRel>elementRel && fillType==='meet') || (animationRel<elementRel && fillType === 'slice'))){
				this.transformCanvas.ty = ((elementHeight-this.transformCanvas.h*(elementWidth/this.transformCanvas.w))/2)*this.renderConfig.dpr;
			} else if(yPos === 'YMax' && ((animationRel>elementRel && fillType==='meet') || (animationRel<elementRel && fillType === 'slice'))){
				this.transformCanvas.ty = ((elementHeight-this.transformCanvas.h*(elementWidth/this.transformCanvas.w)))*this.renderConfig.dpr;
			} else {
				this.transformCanvas.ty = 0;
			}

		}else if(this.renderConfig.preserveAspectRatio == 'none'){
			this.transformCanvas.sx = elementWidth/(this.transformCanvas.w/this.renderConfig.dpr);
			this.transformCanvas.sy = elementHeight/(this.transformCanvas.h/this.renderConfig.dpr);
			this.transformCanvas.tx = 0;
			this.transformCanvas.ty = 0;
		}else{
			this.transformCanvas.sx = this.renderConfig.dpr;
			this.transformCanvas.sy = this.renderConfig.dpr;
			this.transformCanvas.tx = 0;
			this.transformCanvas.ty = 0;
		}
		this.transformCanvas.props = [this.transformCanvas.sx,0,0,0,0,this.transformCanvas.sy,0,0,0,0,1,0,this.transformCanvas.tx,this.transformCanvas.ty,0,1];
		/*var i, len = this.elements.length;
    for(i=0;i<len;i+=1){
        if(this.elements[i] && this.elements[i].data.ty === 0){
            this.elements[i].resize(this.globalData.transformCanvas);
        }
    }*/
		this.ctxTransform(this.transformCanvas.props);
		this.canvasContext.beginPath();
		this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h);
		this.canvasContext.closePath();
		this.canvasContext.clip();

		this.renderFrame(this.renderedFrame, true);
	};

	CanvasRenderer.prototype.destroy = function () {
		if(this.renderConfig.clearCanvas) {
			this.animationItem.wrapper.innerHTML = '';
		}
		var i, len = this.layers ? this.layers.length : 0;
		for (i = len - 1; i >= 0; i-=1) {
			if(this.elements[i]) {
				this.elements[i].destroy();
			}
		}
		this.elements.length = 0;
		this.globalData.canvasContext = null;
		this.animationItem.container = null;
		this.destroyed = true;
	};

	CanvasRenderer.prototype.renderFrame = function(num, forceRender){
		if((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1){
			return;
		}
		this.renderedFrame = num;
		this.globalData.frameNum = num - this.animationItem._isFirstFrame;
		this.globalData.frameId += 1;
		this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;
		this.globalData.projectInterface.currentFrame = num;

		// console.log('--------');
		// console.log('NEW: ',num);
		var i, len = this.layers.length;
		if(!this.completeLayers){
			this.checkLayers(num);
		}

		for (i = 0; i < len; i++) {
			if(this.completeLayers || this.elements[i]){
				this.elements[i].prepareFrame(num - this.layers[i].st);
			}
		}
		if(this.globalData._mdf) {
			if(this.renderConfig.clearCanvas === true){
				this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);
			}else{
				this.save();
			}
			for (i = len - 1; i >= 0; i-=1) {
				if(this.completeLayers || this.elements[i]){
					this.elements[i].renderFrame();
				}
			}
			if(this.renderConfig.clearCanvas !== true){
				this.restore();
			}
		}
	};

	CanvasRenderer.prototype.buildItem = function(pos){
		var elements = this.elements;
		if(elements[pos] || this.layers[pos].ty == 99){
			return;
		}
		var element = this.createItem(this.layers[pos], this,this.globalData);
		elements[pos] = element;
		element.initExpressions();
		/*if(this.layers[pos].ty === 0){
        element.resize(this.globalData.transformCanvas);
    }*/
	};

	CanvasRenderer.prototype.checkPendingElements  = function(){
		while(this.pendingElements.length){
			var element = this.pendingElements.pop();
			element.checkParenting();
		}
	};

	CanvasRenderer.prototype.hide = function(){
		this.animationItem.container.style.display = 'none';
	};

	CanvasRenderer.prototype.show = function(){
		this.animationItem.container.style.display = 'block';
	};

	function HybridRenderer(animationItem, config){
		this.animationItem = animationItem;
		this.layers = null;
		this.renderedFrame = -1;
		this.renderConfig = {
			className: (config && config.className) || '',
			imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',
			hideOnTransparent: (config && config.hideOnTransparent === false) ? false : true,
			filterSize: {
				width: config && config.filterSize && config.filterSize.width || '400%',
				height: config && config.filterSize && config.filterSize.height || '400%',
				x: config && config.filterSize && config.filterSize.x || '-100%',
				y: config && config.filterSize && config.filterSize.y || '-100%',
			}
		};
		this.globalData = {
			_mdf: false,
			frameNum: -1,
			renderConfig: this.renderConfig
		};
		this.pendingElements = [];
		this.elements = [];
		this.threeDElements = [];
		this.destroyed = false;
		this.camera = null;
		this.supports3d = true;
		this.rendererType = 'html';

	}

	extendPrototype([BaseRenderer],HybridRenderer);

	HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;

	HybridRenderer.prototype.checkPendingElements  = function(){
		while(this.pendingElements.length){
			var element = this.pendingElements.pop();
			element.checkParenting();
		}
	};

	HybridRenderer.prototype.appendElementInPos = function(element, pos){
		var newDOMElement = element.getBaseElement();
		if(!newDOMElement){
			return;
		}
		var layer = this.layers[pos];
		if(!layer.ddd || !this.supports3d){
			if(this.threeDElements) {
				this.addTo3dContainer(newDOMElement,pos);
			} else {
				var i = 0;
				var nextDOMElement, nextLayer, tmpDOMElement;
				while(i<pos){
					if(this.elements[i] && this.elements[i]!== true && this.elements[i].getBaseElement){
						nextLayer = this.elements[i];
						tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();
						nextDOMElement = tmpDOMElement || nextDOMElement;
					}
					i += 1;
				}
				if(nextDOMElement){
					if(!layer.ddd || !this.supports3d){
						this.layerElement.insertBefore(newDOMElement, nextDOMElement);
					}
				} else {
					if(!layer.ddd || !this.supports3d){
						this.layerElement.appendChild(newDOMElement);
					}
				}
			}

		} else {
			this.addTo3dContainer(newDOMElement,pos);
		}
	};

	HybridRenderer.prototype.createShape = function (data) {
		if(!this.supports3d){
			return new SVGShapeElement(data, this.globalData, this);
		}
		return new HShapeElement(data, this.globalData, this);
	};

	HybridRenderer.prototype.createText = function (data) {
		if(!this.supports3d){
			return new SVGTextElement(data, this.globalData, this);
		}
		return new HTextElement(data, this.globalData, this);
	};

	HybridRenderer.prototype.createCamera = function (data) {
		this.camera = new HCameraElement(data, this.globalData, this);
		return this.camera;
	};

	HybridRenderer.prototype.createImage = function (data) {
		if(!this.supports3d){
			return new IImageElement(data, this.globalData, this);
		}
		return new HImageElement(data, this.globalData, this);
	};

	HybridRenderer.prototype.createComp = function (data) {
		if(!this.supports3d){
			return new SVGCompElement(data, this.globalData, this);
		}
		return new HCompElement(data, this.globalData, this);

	};

	HybridRenderer.prototype.createSolid = function (data) {
		if(!this.supports3d){
			return new ISolidElement(data, this.globalData, this);
		}
		return new HSolidElement(data, this.globalData, this);
	};

	HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;

	HybridRenderer.prototype.getThreeDContainerByPos = function(pos){
		var i = 0, len = this.threeDElements.length;
		while(i<len) {
			if(this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {
				return this.threeDElements[i].perspectiveElem;
			}
			i += 1;
		}
	};

	HybridRenderer.prototype.createThreeDContainer = function(pos, type){
		var perspectiveElem = createTag('div');
		styleDiv(perspectiveElem);
		var container = createTag('div');
		styleDiv(container);
		if(type === '3d') {
			perspectiveElem.style.width = this.globalData.compSize.w+'px';
			perspectiveElem.style.height = this.globalData.compSize.h+'px';
			perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = "50% 50%";
			container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';
		}

		perspectiveElem.appendChild(container);
		//this.resizerElem.appendChild(perspectiveElem);
		var threeDContainerData = {
			container:container,
			perspectiveElem:perspectiveElem,
			startPos: pos,
			endPos: pos,
			type: type
		};
		this.threeDElements.push(threeDContainerData);
		return threeDContainerData;
	};

	HybridRenderer.prototype.build3dContainers = function(){
		var i, len = this.layers.length;
		var lastThreeDContainerData;
		var currentContainer = '';
		for(i=0;i<len;i+=1){
			if(this.layers[i].ddd && this.layers[i].ty !== 3){
				if(currentContainer !== '3d'){
					currentContainer = '3d';
					lastThreeDContainerData = this.createThreeDContainer(i,'3d');
				}
				lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos,i);
			} else {
				if(currentContainer !== '2d'){
					currentContainer = '2d';
					lastThreeDContainerData = this.createThreeDContainer(i,'2d');
				}
				lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos,i);
			}
		}
		len = this.threeDElements.length;
		for(i = len - 1; i >= 0; i --) {
			this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);
		}
	};

	HybridRenderer.prototype.addTo3dContainer = function(elem,pos){
		var i = 0, len = this.threeDElements.length;
		while(i<len){
			if(pos <= this.threeDElements[i].endPos){
				var j = this.threeDElements[i].startPos;
				var nextElement;
				while(j<pos){
					if(this.elements[j] && this.elements[j].getBaseElement){
						nextElement = this.elements[j].getBaseElement();
					}
					j += 1;
				}
				if(nextElement){
					this.threeDElements[i].container.insertBefore(elem, nextElement);
				} else {
					this.threeDElements[i].container.appendChild(elem);
				}
				break;
			}
			i += 1;
		}
	};

	HybridRenderer.prototype.configAnimation = function(animData){
		var resizerElem = createTag('div');
		var wrapper = this.animationItem.wrapper;
		resizerElem.style.width = animData.w+'px';
		resizerElem.style.height = animData.h+'px';
		this.resizerElem = resizerElem;
		styleDiv(resizerElem);
		resizerElem.style.transformStyle = resizerElem.style.webkitTransformStyle = resizerElem.style.mozTransformStyle = "flat";
		if(this.renderConfig.className) {
			resizerElem.setAttribute('class', this.renderConfig.className);
		}
		wrapper.appendChild(resizerElem);

		resizerElem.style.overflow = 'hidden';
		var svg = createNS('svg');
		svg.setAttribute('width','1');
		svg.setAttribute('height','1');
		styleDiv(svg);
		this.resizerElem.appendChild(svg);
		var defs = createNS('defs');
		svg.appendChild(defs);
		this.data = animData;
		//Mask animation
		this.setupGlobalData(animData, svg);
		this.globalData.defs = defs;
		this.layers = animData.layers;
		this.layerElement = this.resizerElem;
		this.build3dContainers();
		this.updateContainerSize();
	};

	HybridRenderer.prototype.destroy = function () {
		this.animationItem.wrapper.innerHTML = '';
		this.animationItem.container = null;
		this.globalData.defs = null;
		var i, len = this.layers ? this.layers.length : 0;
		for (i = 0; i < len; i++) {
			this.elements[i].destroy();
		}
		this.elements.length = 0;
		this.destroyed = true;
		this.animationItem = null;
	};

	HybridRenderer.prototype.updateContainerSize = function () {
		var elementWidth = this.animationItem.wrapper.offsetWidth;
		var elementHeight = this.animationItem.wrapper.offsetHeight;
		var elementRel = elementWidth/elementHeight;
		var animationRel = this.globalData.compSize.w/this.globalData.compSize.h;
		var sx,sy,tx,ty;
		if(animationRel>elementRel){
			sx = elementWidth/(this.globalData.compSize.w);
			sy = elementWidth/(this.globalData.compSize.w);
			tx = 0;
			ty = ((elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2);
		}else{
			sx = elementHeight/(this.globalData.compSize.h);
			sy = elementHeight/(this.globalData.compSize.h);
			tx = (elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2;
			ty = 0;
		}
		this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';
	};

	HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;

	HybridRenderer.prototype.hide = function(){
		this.resizerElem.style.display = 'none';
	};

	HybridRenderer.prototype.show = function(){
		this.resizerElem.style.display = 'block';
	};

	HybridRenderer.prototype.initItems = function(){
		this.buildAllItems();
		if(this.camera){
			this.camera.setup();
		} else {
			var cWidth = this.globalData.compSize.w;
			var cHeight = this.globalData.compSize.h;
			var i, len = this.threeDElements.length;
			for(i=0;i<len;i+=1){
				this.threeDElements[i].perspectiveElem.style.perspective = this.threeDElements[i].perspectiveElem.style.webkitPerspective = Math.sqrt(Math.pow(cWidth,2) + Math.pow(cHeight,2)) + 'px';
			}
		}
	};

	HybridRenderer.prototype.searchExtraCompositions = function(assets){
		var i, len = assets.length;
		var floatingContainer = createTag('div');
		for(i=0;i<len;i+=1){
			if(assets[i].xt){
				var comp = this.createComp(assets[i],floatingContainer,this.globalData.comp,null);
				comp.initExpressions();
				this.globalData.projectInterface.registerComposition(comp);
			}
		}
	};

	function MaskElement(data,element,globalData) {
		this.data = data;
		this.element = element;
		this.globalData = globalData;
		this.storedData = [];
		this.masksProperties = this.data.masksProperties || [];
		this.maskElement = null;
		var defs = this.globalData.defs;
		var i, len = this.masksProperties ? this.masksProperties.length : 0;
		this.viewData = createSizedArray(len);
		this.solidPath = '';


		var path, properties = this.masksProperties;
		var count = 0;
		var currentMasks = [];
		var j, jLen;
		var layerId = createElementID();
		var rect, expansor, feMorph,x;
		var maskType = 'clipPath', maskRef = 'clip-path';
		for (i = 0; i < len; i++) {
			if((properties[i].mode !== 'a' && properties[i].mode !== 'n')|| properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x){
				maskType = 'mask';
				maskRef = 'mask';
			}

			if((properties[i].mode == 's' || properties[i].mode == 'i') && count === 0){
				rect = createNS( 'rect');
				rect.setAttribute('fill', '#ffffff');
				rect.setAttribute('width', this.element.comp.data.w || 0);
				rect.setAttribute('height', this.element.comp.data.h || 0);
				currentMasks.push(rect);
			} else {
				rect = null;
			}

			path = createNS( 'path');
			if(properties[i].mode == 'n') {
				// TODO move this to a factory or to a constructor
				this.viewData[i] = {
					op: PropertyFactory.getProp(this.element,properties[i].o,0,0.01,this.element),
					prop: ShapePropertyFactory.getShapeProp(this.element,properties[i],3),
					elem: path,
					lastPath: ''
				};
				defs.appendChild(path);
				continue;
			}
			count += 1;

			path.setAttribute('fill', properties[i].mode === 's' ? '#000000':'#ffffff');
			path.setAttribute('clip-rule','nonzero');
			var filterID;

			if (properties[i].x.k !== 0) {
				maskType = 'mask';
				maskRef = 'mask';
				x = PropertyFactory.getProp(this.element,properties[i].x,0,null,this.element);
				filterID = createElementID();
				expansor = createNS('filter');
				expansor.setAttribute('id',filterID);
				feMorph = createNS('feMorphology');
				feMorph.setAttribute('operator','erode');
				feMorph.setAttribute('in','SourceGraphic');
				feMorph.setAttribute('radius','0');
				expansor.appendChild(feMorph);
				defs.appendChild(expansor);
				path.setAttribute('stroke', properties[i].mode === 's' ? '#000000':'#ffffff');
			} else {
				feMorph = null;
				x = null;
			}

			// TODO move this to a factory or to a constructor
			this.storedData[i] = {
				elem: path,
				x: x,
				expan: feMorph,
				lastPath: '',
				lastOperator:'',
				filterId:filterID,
				lastRadius:0
			};
			if(properties[i].mode == 'i'){
				jLen = currentMasks.length;
				var g = createNS('g');
				for(j=0;j<jLen;j+=1){
					g.appendChild(currentMasks[j]);
				}
				var mask = createNS('mask');
				mask.setAttribute('mask-type','alpha');
				mask.setAttribute('id',layerId+'_'+count);
				mask.appendChild(path);
				defs.appendChild(mask);
				g.setAttribute('mask','url(' + locationHref + '#'+layerId+'_'+count+')');

				currentMasks.length = 0;
				currentMasks.push(g);
			}else{
				currentMasks.push(path);
			}
			if(properties[i].inv && !this.solidPath){
				this.solidPath = this.createLayerSolidPath();
			}
			// TODO move this to a factory or to a constructor
			this.viewData[i] = {
				elem: path,
				lastPath: '',
				op: PropertyFactory.getProp(this.element,properties[i].o,0,0.01,this.element),
				prop:ShapePropertyFactory.getShapeProp(this.element,properties[i],3),
				invRect: rect
			};
			if(!this.viewData[i].prop.k){
				this.drawPath(properties[i],this.viewData[i].prop.v,this.viewData[i]);
			}
		}

		this.maskElement = createNS( maskType);

		len = currentMasks.length;
		for(i=0;i<len;i+=1){
			this.maskElement.appendChild(currentMasks[i]);
		}

		if(count > 0){
			this.maskElement.setAttribute('id', layerId);
			this.element.maskedElement.setAttribute(maskRef, "url(" + locationHref + "#" + layerId + ")");
			defs.appendChild(this.maskElement);
		}
		if (this.viewData.length) {
			this.element.addRenderableComponent(this);
		}

	}

	MaskElement.prototype.getMaskProperty = function(pos){
		return this.viewData[pos].prop;
	};

	MaskElement.prototype.renderFrame = function (isFirstFrame) {
		var finalMat = this.element.finalTransform.mat;
		var i, len = this.masksProperties.length;
		for (i = 0; i < len; i++) {
			if(this.viewData[i].prop._mdf || isFirstFrame){
				this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);
			}
			if(this.viewData[i].op._mdf || isFirstFrame){
				this.viewData[i].elem.setAttribute('fill-opacity',this.viewData[i].op.v);
			}
			if(this.masksProperties[i].mode !== 'n'){
				if(this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)){
					this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS())
				}
				if(this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)){
					var feMorph = this.storedData[i].expan;
					if(this.storedData[i].x.v < 0){
						if(this.storedData[i].lastOperator !== 'erode'){
							this.storedData[i].lastOperator = 'erode';
							this.storedData[i].elem.setAttribute('filter','url(' + locationHref + '#'+this.storedData[i].filterId+')');
						}
						feMorph.setAttribute('radius',-this.storedData[i].x.v);
					}else{
						if(this.storedData[i].lastOperator !== 'dilate'){
							this.storedData[i].lastOperator = 'dilate';
							this.storedData[i].elem.setAttribute('filter',null);
						}
						this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);

					}
				}
			}
		}
	};

	MaskElement.prototype.getMaskelement = function () {
		return this.maskElement;
	};

	MaskElement.prototype.createLayerSolidPath = function(){
		var path = 'M0,0 ';
		path += ' h' + this.globalData.compSize.w ;
		path += ' v' + this.globalData.compSize.h ;
		path += ' h-' + this.globalData.compSize.w ;
		path += ' v-' + this.globalData.compSize.h + ' ';
		return path;
	};

	MaskElement.prototype.drawPath = function(pathData,pathNodes,viewData){
		var pathString = " M"+pathNodes.v[0][0]+','+pathNodes.v[0][1];
		var i, len;
		len = pathNodes._length;
		for(i=1;i<len;i+=1){
			//pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[i][0]+','+pathNodes.i[i][1] + " "+pathNodes.v[i][0]+','+pathNodes.v[i][1];
			pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[i][0]+','+pathNodes.i[i][1] + " "+pathNodes.v[i][0]+','+pathNodes.v[i][1];
		}
		//pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[0][0]+','+pathNodes.i[0][1] + " "+pathNodes.v[0][0]+','+pathNodes.v[0][1];
		if(pathNodes.c && len > 1){
			pathString += " C"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + " "+pathNodes.i[0][0]+','+pathNodes.i[0][1] + " "+pathNodes.v[0][0]+','+pathNodes.v[0][1];
		}
		//pathNodes.__renderedString = pathString;

		if(viewData.lastPath !== pathString){
			var pathShapeValue = '';
			if(viewData.elem){
				if(pathNodes.c){
					pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;
				}
				viewData.elem.setAttribute('d',pathShapeValue);
			}
			viewData.lastPath = pathString;
		}
	};

	MaskElement.prototype.destroy = function(){
		this.element = null;
		this.globalData = null;
		this.maskElement = null;
		this.data = null;
		this.masksProperties = null;
	};

	/**
	 * @file
	 * Handles AE's layer parenting property.
	 *
	 */

	function HierarchyElement(){}

	HierarchyElement.prototype = {
		/**
		 * @function
		 * Initializes hierarchy properties
		 *
		 */
		initHierarchy: function() {
			//element's parent list
			this.hierarchy = [];
			//if element is parent of another layer _isParent will be true
			this._isParent = false;
			this.checkParenting();
		},
		/**
		 * @function
		 * Sets layer's hierarchy.
		 * @param {array} hierarch
		 * layer's parent list
		 *
		 */
		setHierarchy: function(hierarchy){
			this.hierarchy = hierarchy;
		},
		/**
		 * @function
		 * Sets layer as parent.
		 *
		 */
		setAsParent: function() {
			this._isParent = true;
		},
		/**
		 * @function
		 * Searches layer's parenting chain
		 *
		 */
		checkParenting: function(){
			if (this.data.parent !== undefined){
				this.comp.buildElementParenting(this, this.data.parent, []);
			}
		}
	};
	/**
	 * @file
	 * Handles element's layer frame update.
	 * Checks layer in point and out point
	 *
	 */

	function FrameElement(){}

	FrameElement.prototype = {
		/**
		 * @function
		 * Initializes frame related properties.
		 *
		 */
		initFrame: function(){
			//set to true when inpoint is rendered
			this._isFirstFrame = false;
			//list of animated properties
			this.dynamicProperties = [];
			// If layer has been modified in current tick this will be true
			this._mdf = false;
		},
		/**
		 * @function
		 * Calculates all dynamic values
		 *
		 * @param {number} num
		 * current frame number in Layer's time
		 * @param {boolean} isVisible
		 * if layers is currently in range
		 *
		 */
		prepareProperties: function(num, isVisible) {
			var i, len = this.dynamicProperties.length;
			for (i = 0;i < len; i += 1) {
				if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {
					this.dynamicProperties[i].getValue();
					if (this.dynamicProperties[i]._mdf) {
						this.globalData._mdf = true;
						this._mdf = true;
					}
				}
			}
		},
		addDynamicProperty: function(prop) {
			if(this.dynamicProperties.indexOf(prop) === -1) {
				this.dynamicProperties.push(prop);
			}
		}
	};
	function TransformElement(){}

	TransformElement.prototype = {
		initTransform: function() {
			this.finalTransform = {
				mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {o:0},
				_matMdf: false,
				_opMdf: false,
				mat: new Matrix()
			};
			if (this.data.ao) {
				this.finalTransform.mProp.autoOriented = true;
			}

			//TODO: check TYPE 11: Guided elements
			if (this.data.ty !== 11) {
				//this.createElements();
			}
		},
		renderTransform: function() {

			this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;
			this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;

			if (this.hierarchy) {
				var mat;
				var finalMat = this.finalTransform.mat;
				var i = 0, len = this.hierarchy.length;
				//Checking if any of the transformation matrices in the hierarchy chain has changed.
				if (!this.finalTransform._matMdf) {
					while (i < len) {
						if (this.hierarchy[i].finalTransform.mProp._mdf) {
							this.finalTransform._matMdf = true;
							break;
						}
						i += 1;
					}
				}

				if (this.finalTransform._matMdf) {
					mat = this.finalTransform.mProp.v.props;
					finalMat.cloneFromProps(mat);
					for (i = 0; i < len; i += 1) {
						mat = this.hierarchy[i].finalTransform.mProp.v.props;
						finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);
					}
				}
			}
		},
		globalToLocal: function(pt) {
			var transforms = [];
			transforms.push(this.finalTransform);
			var flag = true;
			var comp = this.comp;
			while (flag) {
				if (comp.finalTransform) {
					if (comp.data.hasMask) {
						transforms.splice(0, 0, comp.finalTransform);
					}
					comp = comp.comp;
				} else {
					flag = false;
				}
			}
			var i, len = transforms.length,ptNew;
			for (i = 0; i < len; i += 1) {
				ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);
				//ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);
				pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];
			}
			return pt;
		},
		mHelper: new Matrix()
	};
	function RenderableElement(){

	}

	RenderableElement.prototype = {
		initRenderable: function() {
			//layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange
			this.isInRange = false;
			//layer's display state
			this.hidden = false;
			// If layer's transparency equals 0, it can be hidden
			this.isTransparent = false;
			//list of animated components
			this.renderableComponents = [];
		},
		addRenderableComponent: function(component) {
			if(this.renderableComponents.indexOf(component) === -1) {
				this.renderableComponents.push(component);
			}
		},
		removeRenderableComponent: function(component) {
			if(this.renderableComponents.indexOf(component) !== -1) {
				this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);
			}
		},
		prepareRenderableFrame: function(num) {
			this.checkLayerLimits(num);
		},
		checkTransparency: function(){
			if(this.finalTransform.mProp.o.v <= 0) {
				if(!this.isTransparent && this.globalData.renderConfig.hideOnTransparent){
					this.isTransparent = true;
					this.hide();
				}
			} else if(this.isTransparent) {
				this.isTransparent = false;
				this.show();
			}
		},
		/**
		 * @function
		 * Initializes frame related properties.
		 *
		 * @param {number} num
		 * current frame number in Layer's time
		 *
		 */
		checkLayerLimits: function(num) {
			if(this.data.ip - this.data.st <= num && this.data.op - this.data.st > num)
			{
				if(this.isInRange !== true){
					this.globalData._mdf = true;
					this._mdf = true;
					this.isInRange = true;
					this.show();
				}
			} else {
				if(this.isInRange !== false){
					this.globalData._mdf = true;
					this.isInRange = false;
					this.hide();
				}
			}
		},
		renderRenderable: function() {
			var i, len = this.renderableComponents.length;
			for(i = 0; i < len; i += 1) {
				this.renderableComponents[i].renderFrame(this._isFirstFrame);
			}
			/*this.maskManager.renderFrame(this.finalTransform.mat);
        this.renderableEffectsManager.renderFrame(this._isFirstFrame);*/
		},
		sourceRectAtTime: function(){
			return {
				top:0,
				left:0,
				width:100,
				height:100
			};
		},
		getLayerSize: function(){
			if(this.data.ty === 5){
				return {w:this.data.textData.width,h:this.data.textData.height};
			}else{
				return {w:this.data.width,h:this.data.height};
			}
		}
	};
	function RenderableDOMElement() {}

	(function(){
		var _prototype = {
			initElement: function(data,globalData,comp) {
				this.initFrame();
				this.initBaseData(data, globalData, comp);
				this.initTransform(data, globalData, comp);
				this.initHierarchy();
				this.initRenderable();
				this.initRendererElement();
				this.createContainerElements();
				this.createRenderableComponents();
				this.createContent();
				this.hide();
			},
			hide: function(){
				if (!this.hidden && (!this.isInRange || this.isTransparent)) {
					var elem = this.baseElement || this.layerElement;
					elem.style.display = 'none';
					this.hidden = true;
				}
			},
			show: function(){
				if (this.isInRange && !this.isTransparent){
					if (!this.data.hd) {
						var elem = this.baseElement || this.layerElement;
						elem.style.display = 'block';
					}
					this.hidden = false;
					this._isFirstFrame = true;
				}
			},
			renderFrame: function() {
				//If it is exported as hidden (data.hd === true) no need to render
				//If it is not visible no need to render
				if (this.data.hd || this.hidden) {
					return;
				}
				this.renderTransform();
				this.renderRenderable();
				this.renderElement();
				this.renderInnerContent();
				if (this._isFirstFrame) {
					this._isFirstFrame = false;
				}
			},
			renderInnerContent: function() {},
			prepareFrame: function(num) {
				this._mdf = false;
				this.prepareRenderableFrame(num);
				this.prepareProperties(num, this.isInRange);
				this.checkTransparency();
			},
			destroy: function(){
				this.innerElem =  null;
				this.destroyBaseElement();
			}
		};
		extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);
	}());
	function ProcessedElement(element, position) {
		this.elem = element;
		this.pos = position;
	}
	function SVGStyleData(data, level) {
		this.data = data;
		this.type = data.ty;
		this.d = '';
		this.lvl = level;
		this._mdf = false;
		this.closed = data.hd === true;
		this.pElem = createNS('path');
		this.msElem = null;
	}

	SVGStyleData.prototype.reset = function() {
		this.d = '';
		this._mdf = false;
	};
	function SVGShapeData(transformers, level, shape) {
		this.caches = [];
		this.styles = [];
		this.transformers = transformers;
		this.lStr = '';
		this.sh = shape;
		this.lvl = level;
		//TODO find if there are some cases where _isAnimated can be false.
		// For now, since shapes add up with other shapes. They have to be calculated every time.
		// One way of finding out is checking if all styles associated to this shape depend only of this shape
		this._isAnimated = !!shape.k;
		// TODO: commenting this for now since all shapes are animated
		var i = 0, len = transformers.length;
		while(i < len) {
			if(transformers[i].mProps.dynamicProperties.length) {
				this._isAnimated = true;
				break;
			}
			i += 1;
		}
	}

	SVGShapeData.prototype.setAsAnimated = function() {
		this._isAnimated = true;
	}
	function SVGTransformData(mProps, op, container) {
		this.transform = {
			mProps: mProps,
			op: op,
			container: container
		};
		this.elements = [];
		this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;
	}
	function SVGStrokeStyleData(elem, data, styleOb){
		this.initDynamicPropertyContainer(elem);
		this.getValue = this.iterateDynamicProperties;
		this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);
		this.w = PropertyFactory.getProp(elem,data.w,0,null,this);
		this.d = new DashProperty(elem,data.d||{},'svg',this);
		this.c = PropertyFactory.getProp(elem,data.c,1,255,this);
		this.style = styleOb;
		this._isAnimated = !!this._isAnimated;
	}

	extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);
	function SVGFillStyleData(elem, data, styleOb){
		this.initDynamicPropertyContainer(elem);
		this.getValue = this.iterateDynamicProperties;
		this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);
		this.c = PropertyFactory.getProp(elem,data.c,1,255,this);
		this.style = styleOb;
	}

	extendPrototype([DynamicPropertyContainer], SVGFillStyleData);
	function SVGGradientFillStyleData(elem, data, styleOb){
		this.initDynamicPropertyContainer(elem);
		this.getValue = this.iterateDynamicProperties;
		this.initGradientData(elem, data, styleOb);
	}

	SVGGradientFillStyleData.prototype.initGradientData = function(elem, data, styleOb){
		this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);
		this.s = PropertyFactory.getProp(elem,data.s,1,null,this);
		this.e = PropertyFactory.getProp(elem,data.e,1,null,this);
		this.h = PropertyFactory.getProp(elem,data.h||{k:0},0,0.01,this);
		this.a = PropertyFactory.getProp(elem,data.a||{k:0},0,degToRads,this);
		this.g = new GradientProperty(elem,data.g,this);
		this.style = styleOb;
		this.stops = [];
		this.setGradientData(styleOb.pElem, data);
		this.setGradientOpacity(data, styleOb);
		this._isAnimated = !!this._isAnimated;

	};

	SVGGradientFillStyleData.prototype.setGradientData = function(pathElement,data){

		var gradientId = createElementID();
		var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');
		gfill.setAttribute('id',gradientId);
		gfill.setAttribute('spreadMethod','pad');
		gfill.setAttribute('gradientUnits','userSpaceOnUse');
		var stops = [];
		var stop, j, jLen;
		jLen = data.g.p*4;
		for(j=0;j<jLen;j+=4){
			stop = createNS('stop');
			gfill.appendChild(stop);
			stops.push(stop);
		}
		pathElement.setAttribute( data.ty === 'gf' ? 'fill':'stroke','url(' + locationHref + '#'+gradientId+')');

		this.gf = gfill;
		this.cst = stops;
	};

	SVGGradientFillStyleData.prototype.setGradientOpacity = function(data, styleOb){
		if(this.g._hasOpacity && !this.g._collapsable){
			var stop, j, jLen;
			var mask = createNS("mask");
			var maskElement = createNS( 'path');
			mask.appendChild(maskElement);
			var opacityId = createElementID();
			var maskId = createElementID();
			mask.setAttribute('id',maskId);
			var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');
			opFill.setAttribute('id',opacityId);
			opFill.setAttribute('spreadMethod','pad');
			opFill.setAttribute('gradientUnits','userSpaceOnUse');
			jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;
			var stops = this.stops;
			for(j=data.g.p*4;j<jLen;j+=2){
				stop = createNS('stop');
				stop.setAttribute('stop-color','rgb(255,255,255)');
				opFill.appendChild(stop);
				stops.push(stop);
			}
			maskElement.setAttribute( data.ty === 'gf' ? 'fill':'stroke','url(' + locationHref + '#'+opacityId+')');
			this.of = opFill;
			this.ms = mask;
			this.ost = stops;
			this.maskId = maskId;
			styleOb.msElem = maskElement;
		}
	};

	extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);
	function SVGGradientStrokeStyleData(elem, data, styleOb){
		this.initDynamicPropertyContainer(elem);
		this.getValue = this.iterateDynamicProperties;
		this.w = PropertyFactory.getProp(elem,data.w,0,null,this);
		this.d = new DashProperty(elem,data.d||{},'svg',this);
		this.initGradientData(elem, data, styleOb);
		this._isAnimated = !!this._isAnimated;
	}

	extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);
	function ShapeGroupData() {
		this.it = [];
		this.prevViewData = [];
		this.gr = createNS('g');
	}
	var SVGElementsRenderer = (function() {
		var _identityMatrix = new Matrix();
		var _matrixHelper = new Matrix();

		var ob = {
			createRenderFunction: createRenderFunction
		}

		function createRenderFunction(data) {
			var ty = data.ty;
			switch(data.ty) {
				case 'fl':
					return renderFill;
				case 'gf':
					return renderGradient;
				case 'gs':
					return renderGradientStroke;
				case 'st':
					return renderStroke;
				case 'sh':
				case 'el':
				case 'rc':
				case 'sr':
					return renderPath;
				case 'tr':
					return renderContentTransform;
			}
		}

		function renderContentTransform(styleData, itemData, isFirstFrame) {
			if(isFirstFrame || itemData.transform.op._mdf){
				itemData.transform.container.setAttribute('opacity',itemData.transform.op.v);
			}
			if(isFirstFrame || itemData.transform.mProps._mdf){
				itemData.transform.container.setAttribute('transform',itemData.transform.mProps.v.to2dCSS());
			}
		}

		function renderPath(styleData, itemData, isFirstFrame) {
			var j, jLen,pathStringTransformed,redraw,pathNodes,l, lLen = itemData.styles.length;
			var lvl = itemData.lvl;
			var paths, mat, props, iterations, k;
			for(l=0;l<lLen;l+=1){
				redraw = itemData.sh._mdf || isFirstFrame;
				if(itemData.styles[l].lvl < lvl){
					mat = _matrixHelper.reset();
					iterations = lvl - itemData.styles[l].lvl;
					k = itemData.transformers.length-1;
					while(!redraw && iterations > 0) {
						redraw = itemData.transformers[k].mProps._mdf || redraw;
						iterations --;
						k --;
					}
					if(redraw) {
						iterations = lvl - itemData.styles[l].lvl;
						k = itemData.transformers.length-1;
						while(iterations > 0) {
							props = itemData.transformers[k].mProps.v.props;
							mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);
							iterations --;
							k --;
						}
					}
				} else {
					mat = _identityMatrix;
				}
				paths = itemData.sh.paths;
				jLen = paths._length;
				if(redraw){
					pathStringTransformed = '';
					for(j=0;j<jLen;j+=1){
						pathNodes = paths.shapes[j];
						if(pathNodes && pathNodes._length){
							pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);
						}
					}
					itemData.caches[l] = pathStringTransformed;
				} else {
					pathStringTransformed = itemData.caches[l];
				}
				itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;
				itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;
			}
		}

		function renderFill (styleData,itemData, isFirstFrame){
			var styleElem = itemData.style;

			if(itemData.c._mdf || isFirstFrame){
				styleElem.pElem.setAttribute('fill','rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')');
			}
			if(itemData.o._mdf || isFirstFrame){
				styleElem.pElem.setAttribute('fill-opacity',itemData.o.v);
			}
		};

		function renderGradientStroke (styleData, itemData, isFirstFrame) {
			renderGradient(styleData, itemData, isFirstFrame);
			renderStroke(styleData, itemData, isFirstFrame);
		}

		function renderGradient(styleData, itemData, isFirstFrame) {
			var gfill = itemData.gf;
			var hasOpacity = itemData.g._hasOpacity;
			var pt1 = itemData.s.v, pt2 = itemData.e.v;

			if (itemData.o._mdf || isFirstFrame) {
				var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';
				itemData.style.pElem.setAttribute(attr, itemData.o.v);
			}
			if (itemData.s._mdf || isFirstFrame) {
				var attr1 = styleData.t === 1 ? 'x1' : 'cx';
				var attr2 = attr1 === 'x1' ? 'y1' : 'cy';
				gfill.setAttribute(attr1, pt1[0]);
				gfill.setAttribute(attr2, pt1[1]);
				if (hasOpacity && !itemData.g._collapsable) {
					itemData.of.setAttribute(attr1, pt1[0]);
					itemData.of.setAttribute(attr2, pt1[1]);
				}
			}
			var stops, i, len, stop;
			if (itemData.g._cmdf || isFirstFrame) {
				stops = itemData.cst;
				var cValues = itemData.g.c;
				len = stops.length;
				for (i = 0; i < len; i += 1){
					stop = stops[i];
					stop.setAttribute('offset', cValues[i * 4] + '%');
					stop.setAttribute('stop-color','rgb('+ cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ','+cValues[i * 4 + 3] + ')');
				}
			}
			if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {
				var oValues = itemData.g.o;
				if(itemData.g._collapsable) {
					stops = itemData.cst;
				} else {
					stops = itemData.ost;
				}
				len = stops.length;
				for (i = 0; i < len; i += 1) {
					stop = stops[i];
					if(!itemData.g._collapsable) {
						stop.setAttribute('offset', oValues[i * 2] + '%');
					}
					stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);
				}
			}
			if (styleData.t === 1) {
				if (itemData.e._mdf  || isFirstFrame) {
					gfill.setAttribute('x2', pt2[0]);
					gfill.setAttribute('y2', pt2[1]);
					if (hasOpacity && !itemData.g._collapsable) {
						itemData.of.setAttribute('x2', pt2[0]);
						itemData.of.setAttribute('y2', pt2[1]);
					}
				}
			} else {
				var rad;
				if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {
					rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
					gfill.setAttribute('r', rad);
					if(hasOpacity && !itemData.g._collapsable){
						itemData.of.setAttribute('r', rad);
					}
				}
				if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {
					if (!rad) {
						rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
					}
					var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);

					var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;
					var dist = rad * percent;
					var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];
					var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];
					gfill.setAttribute('fx', x);
					gfill.setAttribute('fy', y);
					if (hasOpacity && !itemData.g._collapsable) {
						itemData.of.setAttribute('fx', x);
						itemData.of.setAttribute('fy', y);
					}
				}
				//gfill.setAttribute('fy','200');
			}
		};

		function renderStroke(styleData, itemData, isFirstFrame) {
			var styleElem = itemData.style;
			var d = itemData.d;
			if (d && (d._mdf || isFirstFrame) && d.dashStr) {
				styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);
				styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);
			}
			if(itemData.c && (itemData.c._mdf || isFirstFrame)){
				styleElem.pElem.setAttribute('stroke','rgb(' + bm_floor(itemData.c.v[0]) + ',' + bm_floor(itemData.c.v[1]) + ',' + bm_floor(itemData.c.v[2]) + ')');
			}
			if(itemData.o._mdf || isFirstFrame){
				styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);
			}
			if(itemData.w._mdf || isFirstFrame){
				styleElem.pElem.setAttribute('stroke-width', itemData.w.v);
				if(styleElem.msElem){
					styleElem.msElem.setAttribute('stroke-width', itemData.w.v);
				}
			}
		};

		return ob;
	}())
	function ShapeTransformManager() {
		this.sequences = {};
		this.sequenceList = [];
		this.transform_key_count = 0;
	}

	ShapeTransformManager.prototype = {
		addTransformSequence: function(transforms) {
			var i, len = transforms.length;
			var key = '_';
			for(i = 0; i < len; i += 1) {
				key += transforms[i].transform.key + '_';
			}
			var sequence = this.sequences[key];
			if(!sequence) {
				sequence = {
					transforms: [].concat(transforms),
					finalTransform: new Matrix(),
					_mdf: false
				};
				this.sequences[key] = sequence;
				this.sequenceList.push(sequence);
			}
			return sequence;
		},
		processSequence: function(sequence, isFirstFrame) {
			var i = 0, len = sequence.transforms.length, _mdf = isFirstFrame;
			while (i < len && !isFirstFrame) {
				if (sequence.transforms[i].transform.mProps._mdf) {
					_mdf = true;
					break;
				}
				i += 1
			}
			if (_mdf) {
				var props;
				sequence.finalTransform.reset();
				for (i = len - 1; i >= 0; i -= 1) {
					props = sequence.transforms[i].transform.mProps.v.props;
					sequence.finalTransform.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);
				}
			}
			sequence._mdf = _mdf;

		},
		processSequences: function(isFirstFrame) {
			var i, len = this.sequenceList.length;
			for (i = 0; i < len; i += 1) {
				this.processSequence(this.sequenceList[i], isFirstFrame);
			}

		},
		getNewKey: function() {
			return '_' + this.transform_key_count++;
		}
	}
	function CVShapeData(element, data, styles, transformsManager) {
		this.styledShapes = [];
		this.tr = [0,0,0,0,0,0];
		var ty = 4;
		if(data.ty == 'rc'){
			ty = 5;
		}else if(data.ty == 'el'){
			ty = 6;
		}else if(data.ty == 'sr'){
			ty = 7;
		}
		this.sh = ShapePropertyFactory.getShapeProp(element,data,ty,element);
		var i , len = styles.length,styledShape;
		for (i = 0; i < len; i += 1) {
			if (!styles[i].closed) {
				styledShape = {
					transforms: transformsManager.addTransformSequence(styles[i].transforms),
					trNodes: []
				}
				this.styledShapes.push(styledShape);
				styles[i].elements.push(styledShape);
			}
		}
	}

	CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;
	function BaseElement(){
	}

	BaseElement.prototype = {
		checkMasks: function(){
			if(!this.data.hasMask){
				return false;
			}
			var i = 0, len = this.data.masksProperties.length;
			while(i<len) {
				if((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {
					return true;
				}
				i += 1;
			}
			return false;
		},
		initExpressions: function(){
			this.layerInterface = LayerExpressionInterface(this);
			if(this.data.hasMask && this.maskManager) {
				this.layerInterface.registerMaskInterface(this.maskManager);
			}
			var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this,this.layerInterface);
			this.layerInterface.registerEffectsInterface(effectsInterface);

			if(this.data.ty === 0 || this.data.xt){
				this.compInterface = CompExpressionInterface(this);
			} else if(this.data.ty === 4){
				this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData,this.itemsData,this.layerInterface);
				this.layerInterface.content = this.layerInterface.shapeInterface;
			} else if(this.data.ty === 5){
				this.layerInterface.textInterface = TextExpressionInterface(this);
				this.layerInterface.text = this.layerInterface.textInterface;
			}
		},
		setBlendMode: function(){
			var blendModeValue = getBlendMode(this.data.bm);
			var elem = this.baseElement || this.layerElement;

			elem.style['mix-blend-mode'] = blendModeValue;
		},
		initBaseData: function(data, globalData, comp){
			this.globalData = globalData;
			this.comp = comp;
			this.data = data;
			this.layerId = createElementID();

			//Stretch factor for old animations missing this property.
			if(!this.data.sr){
				this.data.sr = 1;
			}
			// effects manager
			this.effectsManager = new EffectsManager(this.data,this,this.dynamicProperties);

		},
		getType: function(){
			return this.type;
		}
		,sourceRectAtTime: function(){}
	}
	function NullElement(data,globalData,comp){
		this.initFrame();
		this.initBaseData(data, globalData, comp);
		this.initFrame();
		this.initTransform(data, globalData, comp);
		this.initHierarchy();
	}

	NullElement.prototype.prepareFrame = function(num) {
		this.prepareProperties(num, true);
	};

	NullElement.prototype.renderFrame = function() {
	};

	NullElement.prototype.getBaseElement = function() {
		return null;
	};

	NullElement.prototype.destroy = function() {
	};

	NullElement.prototype.sourceRectAtTime = function() {
	};

	NullElement.prototype.hide = function() {
	};

	extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement], NullElement);

	function SVGBaseElement(){
	}

	SVGBaseElement.prototype = {
		initRendererElement: function() {
			this.layerElement = createNS('g');
		},
		createContainerElements: function(){
			this.matteElement = createNS('g');
			this.transformedElement = this.layerElement;
			this.maskedElement = this.layerElement;
			this._sizeChanged = false;
			var layerElementParent = null;
			//If this layer acts as a mask for the following layer
			var filId, fil, gg;
			if (this.data.td) {
				if (this.data.td == 3 || this.data.td == 1) {
					var masker = createNS('mask');
					masker.setAttribute('id', this.layerId);
					masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha');
					masker.appendChild(this.layerElement);
					layerElementParent = masker;
					this.globalData.defs.appendChild(masker);
					// This is only for IE and Edge when mask if of type alpha
					if (!featureSupport.maskType && this.data.td == 1) {
						masker.setAttribute('mask-type', 'luminance');
						filId = createElementID();
						fil = filtersFactory.createFilter(filId);
						this.globalData.defs.appendChild(fil);
						fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());
						gg = createNS('g');
						gg.appendChild(this.layerElement);
						layerElementParent = gg;
						masker.appendChild(gg);
						gg.setAttribute('filter','url(' + locationHref + '#' + filId + ')');
					}
				} else if(this.data.td == 2) {
					var maskGroup = createNS('mask');
					maskGroup.setAttribute('id', this.layerId);
					maskGroup.setAttribute('mask-type','alpha');
					var maskGrouper = createNS('g');
					maskGroup.appendChild(maskGrouper);
					filId = createElementID();
					fil = filtersFactory.createFilter(filId);
					////

					// This solution doesn't work on Android when meta tag with viewport attribute is set
					/*var feColorMatrix = createNS('feColorMatrix');
                feColorMatrix.setAttribute('type', 'matrix');
                feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');
                feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');
                fil.appendChild(feColorMatrix);*/
					////
					var feCTr = createNS('feComponentTransfer');
					feCTr.setAttribute('in','SourceGraphic');
					fil.appendChild(feCTr);
					var feFunc = createNS('feFuncA');
					feFunc.setAttribute('type','table');
					feFunc.setAttribute('tableValues','1.0 0.0');
					feCTr.appendChild(feFunc);
					////
					this.globalData.defs.appendChild(fil);
					var alphaRect = createNS('rect');
					alphaRect.setAttribute('width',  this.comp.data.w);
					alphaRect.setAttribute('height', this.comp.data.h);
					alphaRect.setAttribute('x','0');
					alphaRect.setAttribute('y','0');
					alphaRect.setAttribute('fill','#ffffff');
					alphaRect.setAttribute('opacity','0');
					maskGrouper.setAttribute('filter', 'url(' + locationHref + '#'+filId+')');
					maskGrouper.appendChild(alphaRect);
					maskGrouper.appendChild(this.layerElement);
					layerElementParent = maskGrouper;
					if (!featureSupport.maskType) {
						maskGroup.setAttribute('mask-type', 'luminance');
						fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());
						gg = createNS('g');
						maskGrouper.appendChild(alphaRect);
						gg.appendChild(this.layerElement);
						layerElementParent = gg;
						maskGrouper.appendChild(gg);
					}
					this.globalData.defs.appendChild(maskGroup);
				}
			} else if (this.data.tt) {
				this.matteElement.appendChild(this.layerElement);
				layerElementParent = this.matteElement;
				this.baseElement = this.matteElement;
			} else {
				this.baseElement = this.layerElement;
			}
			if (this.data.ln) {
				this.layerElement.setAttribute('id', this.data.ln);
			}
			if (this.data.cl) {
				this.layerElement.setAttribute('class', this.data.cl);
			}
			//Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped
			if (this.data.ty === 0 && !this.data.hd) {
				var cp = createNS( 'clipPath');
				var pt = createNS('path');
				pt.setAttribute('d','M0,0 L' + this.data.w + ',0' + ' L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');
				var clipId = createElementID();
				cp.setAttribute('id',clipId);
				cp.appendChild(pt);
				this.globalData.defs.appendChild(cp);

				if (this.checkMasks()) {
					var cpGroup = createNS('g');
					cpGroup.setAttribute('clip-path','url(' + locationHref + '#'+clipId + ')');
					cpGroup.appendChild(this.layerElement);
					this.transformedElement = cpGroup;
					if (layerElementParent) {
						layerElementParent.appendChild(this.transformedElement);
					} else {
						this.baseElement = this.transformedElement;
					}
				} else {
					this.layerElement.setAttribute('clip-path','url(' + locationHref + '#'+clipId+')');
				}

			}
			if (this.data.bm !== 0) {
				this.setBlendMode();
			}

		},
		renderElement: function() {
			if (this.finalTransform._matMdf) {
				this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());
			}
			if (this.finalTransform._opMdf) {
				this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);
			}
		},
		destroyBaseElement: function() {
			this.layerElement = null;
			this.matteElement = null;
			this.maskManager.destroy();
		},
		getBaseElement: function() {
			if (this.data.hd) {
				return null;
			}
			return this.baseElement;
		},
		createRenderableComponents: function() {
			this.maskManager = new MaskElement(this.data, this, this.globalData);
			this.renderableEffectsManager = new SVGEffects(this);
		},
		setMatte: function(id) {
			if (!this.matteElement) {
				return;
			}
			this.matteElement.setAttribute("mask", "url(" + locationHref + "#" + id + ")");
		}
	};
	function IShapeElement(){
	}

	IShapeElement.prototype = {
		addShapeToModifiers: function(data) {
			var i, len = this.shapeModifiers.length;
			for(i=0;i<len;i+=1){
				this.shapeModifiers[i].addShape(data);
			}
		},
		isShapeInAnimatedModifiers: function(data) {
			var i = 0, len = this.shapeModifiers.length;
			while(i < len) {
				if(this.shapeModifiers[i].isAnimatedWithShape(data)) {
					return true;
				}
			}
			return false;
		},
		renderModifiers: function() {
			if(!this.shapeModifiers.length){
				return;
			}
			var i, len = this.shapes.length;
			for(i=0;i<len;i+=1){
				this.shapes[i].sh.reset();
			}

			len = this.shapeModifiers.length;
			for(i=len-1;i>=0;i-=1){
				this.shapeModifiers[i].processShapes(this._isFirstFrame);
			}
		},
		lcEnum: {
			'1': 'butt',
			'2': 'round',
			'3': 'square'
		},
		ljEnum: {
			'1': 'miter',
			'2': 'round',
			'3': 'bevel'
		},
		searchProcessedElement: function(elem){
			var elements = this.processedElements;
			var i = 0, len = elements.length;
			while (i < len) {
				if (elements[i].elem === elem) {
					return elements[i].pos;
				}
				i += 1;
			}
			return 0;
		},
		addProcessedElement: function(elem, pos){
			var elements = this.processedElements;
			var i = elements.length;
			while(i) {
				i -= 1;
				if (elements[i].elem === elem) {
					elements[i].pos = pos;
					return;
				}
			}
			elements.push(new ProcessedElement(elem, pos));
		},
		prepareFrame: function(num) {
			this.prepareRenderableFrame(num);
			this.prepareProperties(num, this.isInRange);
		}
	};
	function ITextElement(){
	}

	ITextElement.prototype.initElement = function(data,globalData,comp){
		this.lettersChangedFlag = true;
		this.initFrame();
		this.initBaseData(data, globalData, comp);
		this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);
		this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);
		this.initTransform(data, globalData, comp);
		this.initHierarchy();
		this.initRenderable();
		this.initRendererElement();
		this.createContainerElements();
		this.createRenderableComponents();
		this.createContent();
		this.hide();
		this.textAnimator.searchProperties(this.dynamicProperties);
	};

	ITextElement.prototype.prepareFrame = function(num) {
		this._mdf = false;
		this.prepareRenderableFrame(num);
		this.prepareProperties(num, this.isInRange);
		if(this.textProperty._mdf || this.textProperty._isFirstFrame) {
			this.buildNewText();
			this.textProperty._isFirstFrame = false;
			this.textProperty._mdf = false;
		}
	};

	ITextElement.prototype.createPathShape = function(matrixHelper, shapes) {
		var j,jLen = shapes.length;
		var k, kLen, pathNodes;
		var shapeStr = '';
		for(j=0;j<jLen;j+=1){
			pathNodes = shapes[j].ks.k;
			shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);
		}
		return shapeStr;
	};

	ITextElement.prototype.updateDocumentData = function(newData, index) {
		this.textProperty.updateDocumentData(newData, index);
	};

	ITextElement.prototype.canResizeFont = function(_canResize) {
		this.textProperty.canResizeFont(_canResize);
	};

	ITextElement.prototype.setMinimumFontSize = function(_fontSize) {
		this.textProperty.setMinimumFontSize(_fontSize);
	};

	ITextElement.prototype.applyTextPropertiesToMatrix = function(documentData, matrixHelper, lineNumber, xPos, yPos) {
		if(documentData.ps){
			matrixHelper.translate(documentData.ps[0],documentData.ps[1] + documentData.ascent,0);
		}
		matrixHelper.translate(0,-documentData.ls,0);
		switch(documentData.j){
			case 1:
				matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]),0,0);
				break;
			case 2:
				matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber] )/2,0,0);
				break;
		}
		matrixHelper.translate(xPos, yPos, 0);
	};


	ITextElement.prototype.buildColor = function(colorData) {
		return 'rgb(' + Math.round(colorData[0]*255) + ',' + Math.round(colorData[1]*255) + ',' + Math.round(colorData[2]*255) + ')';
	};

	ITextElement.prototype.emptyProp = new LetterProps();

	ITextElement.prototype.destroy = function(){

	};
	function ICompElement(){}

	extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);

	ICompElement.prototype.initElement = function(data,globalData,comp) {
		this.initFrame();
		this.initBaseData(data, globalData, comp);
		this.initTransform(data, globalData, comp);
		this.initRenderable();
		this.initHierarchy();
		this.initRendererElement();
		this.createContainerElements();
		this.createRenderableComponents();
		if(this.data.xt || !globalData.progressiveLoad){
			this.buildAllItems();
		}
		this.hide();
	};

	/*ICompElement.prototype.hide = function(){
    if(!this.hidden){
        this.hideElement();
        var i,len = this.elements.length;
        for( i = 0; i < len; i+=1 ){
            if(this.elements[i]){
                this.elements[i].hide();
            }
        }
    }
};*/

	ICompElement.prototype.prepareFrame = function(num){
		this._mdf = false;
		this.prepareRenderableFrame(num);
		this.prepareProperties(num, this.isInRange);
		if(!this.isInRange && !this.data.xt){
			return;
		}

		if (!this.tm._placeholder) {
			var timeRemapped = this.tm.v;
			if(timeRemapped === this.data.op){
				timeRemapped = this.data.op - 1;
			}
			this.renderedFrame = timeRemapped;
		} else {
			this.renderedFrame = num/this.data.sr;
		}
		var i,len = this.elements.length;
		if(!this.completeLayers){
			this.checkLayers(this.renderedFrame);
		}
		//This iteration needs to be backwards because of how expressions connect between each other
		for( i = len - 1; i >= 0; i -= 1 ){
			if(this.completeLayers || this.elements[i]){
				this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);
				if(this.elements[i]._mdf) {
					this._mdf = true;
				}
			}
		}
	};

	ICompElement.prototype.renderInnerContent = function() {
		var i,len = this.layers.length;
		for( i = 0; i < len; i += 1 ){
			if(this.completeLayers || this.elements[i]){
				this.elements[i].renderFrame();
			}
		}
	};

	ICompElement.prototype.setElements = function(elems){
		this.elements = elems;
	};

	ICompElement.prototype.getElements = function(){
		return this.elements;
	};

	ICompElement.prototype.destroyElements = function(){
		var i,len = this.layers.length;
		for( i = 0; i < len; i+=1 ){
			if(this.elements[i]){
				this.elements[i].destroy();
			}
		}
	};

	ICompElement.prototype.destroy = function(){
		this.destroyElements();
		this.destroyBaseElement();
	};

	function IImageElement(data,globalData,comp){
		this.assetData = globalData.getAssetData(data.refId);
		this.initElement(data,globalData,comp);
		this.sourceRect = {top:0,left:0,width:this.assetData.w,height:this.assetData.h};
	}

	extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], IImageElement);

	IImageElement.prototype.createContent = function(){

		var assetPath = this.globalData.getAssetsPath(this.assetData);

		this.innerElem = createNS('image');
		this.innerElem.setAttribute('width',this.assetData.w+"px");
		this.innerElem.setAttribute('height',this.assetData.h+"px");
		this.innerElem.setAttribute('preserveAspectRatio',this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);
		this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);

		this.layerElement.appendChild(this.innerElem);
	};

	IImageElement.prototype.sourceRectAtTime = function() {
		return this.sourceRect;
	}
	function ISolidElement(data,globalData,comp){
		this.initElement(data,globalData,comp);
	}
	extendPrototype([IImageElement], ISolidElement);

	ISolidElement.prototype.createContent = function(){

		var rect = createNS('rect');
		////rect.style.width = this.data.sw;
		////rect.style.height = this.data.sh;
		////rect.style.fill = this.data.sc;
		rect.setAttribute('width',this.data.sw);
		rect.setAttribute('height',this.data.sh);
		rect.setAttribute('fill',this.data.sc);
		this.layerElement.appendChild(rect);
	};
	function SVGCompElement(data,globalData,comp){
		this.layers = data.layers;
		this.supports3d = true;
		this.completeLayers = false;
		this.pendingElements = [];
		this.elements = this.layers ? createSizedArray(this.layers.length) : [];
		//this.layerElement = createNS('g');
		this.initElement(data,globalData,comp);
		this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate,this) : {_placeholder:true};
	}

	extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);
	function SVGTextElement(data,globalData,comp){
		this.textSpans = [];
		this.renderType = 'svg';
		this.initElement(data,globalData,comp);
	}

	extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement], SVGTextElement);

	SVGTextElement.prototype.createContent = function(){

		if (this.data.singleShape && !this.globalData.fontManager.chars) {
			this.textContainer = createNS('text');
		}
	};

	SVGTextElement.prototype.buildTextContents = function(textArray) {
		var i = 0, len = textArray.length;
		var textContents = [], currentTextContent = '';
		while (i < len) {
			if(textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {
				textContents.push(currentTextContent);
				currentTextContent = '';
			} else {
				currentTextContent += textArray[i];
			}
			i += 1;
		}
		textContents.push(currentTextContent);
		return textContents;
	}

	SVGTextElement.prototype.buildNewText = function(){
		var i, len;

		var documentData = this.textProperty.currentData;
		this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);
		if(documentData.fc) {
			this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));
		}else{
			this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');
		}
		if(documentData.sc){
			this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));
			this.layerElement.setAttribute('stroke-width', documentData.sw);
		}
		this.layerElement.setAttribute('font-size', documentData.finalSize);
		var fontData = this.globalData.fontManager.getFontByName(documentData.f);
		if(fontData.fClass){
			this.layerElement.setAttribute('class',fontData.fClass);
		} else {
			this.layerElement.setAttribute('font-family', fontData.fFamily);
			var fWeight = documentData.fWeight, fStyle = documentData.fStyle;
			this.layerElement.setAttribute('font-style', fStyle);
			this.layerElement.setAttribute('font-weight', fWeight);
		}
		this.layerElement.setAttribute('aria-label', documentData.t);

		var letters = documentData.l || [];
		var usesGlyphs = !!this.globalData.fontManager.chars;
		len = letters.length;

		var tSpan;
		var matrixHelper = this.mHelper;
		var shapes, shapeStr = '', singleShape = this.data.singleShape;
		var xPos = 0, yPos = 0, firstLine = true;
		var trackingOffset = documentData.tr/1000*documentData.finalSize;
		if(singleShape && !usesGlyphs && !documentData.sz) {
			var tElement = this.textContainer;
			var justify = 'start';
			switch(documentData.j) {
				case 1:
					justify = 'end';
					break;
				case 2:
					justify = 'middle';
					break;
			}
			tElement.setAttribute('text-anchor',justify);
			tElement.setAttribute('letter-spacing',trackingOffset);
			var textContent = this.buildTextContents(documentData.finalText);
			len = textContent.length;
			yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;
			for ( i = 0; i < len; i += 1) {
				tSpan = this.textSpans[i] || createNS('tspan');
				tSpan.textContent = textContent[i];
				tSpan.setAttribute('x', 0);
				tSpan.setAttribute('y', yPos);
				tSpan.style.display = 'inherit';
				tElement.appendChild(tSpan);
				this.textSpans[i] = tSpan;
				yPos += documentData.finalLineHeight;
			}

			this.layerElement.appendChild(tElement);
		} else {
			var cachedSpansLength = this.textSpans.length;
			var shapeData, charData;
			for (i = 0; i < len; i += 1) {
				if(!usesGlyphs || !singleShape || i === 0){
					tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs?'path':'text');
					if (cachedSpansLength <= i) {
						tSpan.setAttribute('stroke-linecap', 'butt');
						tSpan.setAttribute('stroke-linejoin','round');
						tSpan.setAttribute('stroke-miterlimit','4');
						this.textSpans[i] = tSpan;
						this.layerElement.appendChild(tSpan);
					}
					tSpan.style.display = 'inherit';
				}

				matrixHelper.reset();
				matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);
				if (singleShape) {
					if(letters[i].n) {
						xPos = -trackingOffset;
						yPos += documentData.yOffset;
						yPos += firstLine ? 1 : 0;
						firstLine = false;
					}
					this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);
					xPos += letters[i].l || 0;
					//xPos += letters[i].val === ' ' ? 0 : trackingOffset;
					xPos += trackingOffset;
				}
				if(usesGlyphs) {
					charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);
					shapeData = charData && charData.data || {};
					shapes = shapeData.shapes ? shapeData.shapes[0].it : [];
					if(!singleShape){
						tSpan.setAttribute('d',this.createPathShape(matrixHelper,shapes));
					} else {
						shapeStr += this.createPathShape(matrixHelper,shapes);
					}
				} else {
					if(singleShape) {
						tSpan.setAttribute("transform", "translate(" + matrixHelper.props[12] + "," + matrixHelper.props[13] + ")");
					}
					tSpan.textContent = letters[i].val;
					tSpan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space","preserve");
				}
				//
			}
			if (singleShape && tSpan) {
				tSpan.setAttribute('d',shapeStr);
			}
		}
		while (i < this.textSpans.length){
			this.textSpans[i].style.display = 'none';
			i += 1;
		}

		this._sizeChanged = true;
	};

	SVGTextElement.prototype.sourceRectAtTime = function(time){
		this.prepareFrame(this.comp.renderedFrame - this.data.st);
		this.renderInnerContent();
		if(this._sizeChanged){
			this._sizeChanged = false;
			var textBox = this.layerElement.getBBox();
			this.bbox = {
				top: textBox.y,
				left: textBox.x,
				width: textBox.width,
				height: textBox.height
			};
		}
		return this.bbox;
	};

	SVGTextElement.prototype.renderInnerContent = function(){

		if(!this.data.singleShape){
			this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);
			if(this.lettersChangedFlag || this.textAnimator.lettersChangedFlag){
				this._sizeChanged = true;
				var  i,len;
				var renderedLetters = this.textAnimator.renderedLetters;

				var letters = this.textProperty.currentData.l;

				len = letters.length;
				var renderedLetter, textSpan;
				for(i=0;i<len;i+=1){
					if(letters[i].n){
						continue;
					}
					renderedLetter = renderedLetters[i];
					textSpan = this.textSpans[i];
					if(renderedLetter._mdf.m) {
						textSpan.setAttribute('transform',renderedLetter.m);
					}
					if(renderedLetter._mdf.o) {
						textSpan.setAttribute('opacity',renderedLetter.o);
					}
					if(renderedLetter._mdf.sw){
						textSpan.setAttribute('stroke-width',renderedLetter.sw);
					}
					if(renderedLetter._mdf.sc){
						textSpan.setAttribute('stroke',renderedLetter.sc);
					}
					if(renderedLetter._mdf.fc){
						textSpan.setAttribute('fill',renderedLetter.fc);
					}
				}
			}
		}
	};

	function SVGShapeElement(data,globalData,comp){
		//List of drawable elements
		this.shapes = [];
		// Full shape data
		this.shapesData = data.shapes;
		//List of styles that will be applied to shapes
		this.stylesList = [];
		//List of modifiers that will be applied to shapes
		this.shapeModifiers = [];
		//List of items in shape tree
		this.itemsData = [];
		//List of items in previous shape tree
		this.processedElements = [];
		// List of animated components
		this.animatedContents = [];
		this.initElement(data,globalData,comp);
		//Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.
		// List of elements that have been created
		this.prevViewData = [];
		//Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.
	}

	extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement], SVGShapeElement);

	SVGShapeElement.prototype.initSecondaryElement = function() {
	};

	SVGShapeElement.prototype.identityMatrix = new Matrix();

	SVGShapeElement.prototype.buildExpressionInterface = function(){};

	SVGShapeElement.prototype.createContent = function(){
		this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement, 0, [], true);
		this.filterUniqueShapes();
	};

	/*
This method searches for multiple shapes that affect a single element and one of them is animated
*/
	SVGShapeElement.prototype.filterUniqueShapes = function(){
		var i, len = this.shapes.length, shape;
		var j, jLen = this.stylesList.length;
		var style, count = 0;
		var tempShapes = [];
		var areAnimated = false;
		for(j = 0; j < jLen; j += 1) {
			style = this.stylesList[j];
			areAnimated = false;
			tempShapes.length = 0;
			for(i = 0; i < len; i += 1) {
				shape = this.shapes[i];
				if(shape.styles.indexOf(style) !== -1) {
					tempShapes.push(shape);
					areAnimated = shape._isAnimated || areAnimated;
				}
			}
			if(tempShapes.length > 1 && areAnimated) {
				this.setShapesAsAnimated(tempShapes);
			}
		}
	}

	SVGShapeElement.prototype.setShapesAsAnimated = function(shapes){
		var i, len = shapes.length;
		for(i = 0; i < len; i += 1) {
			shapes[i].setAsAnimated();
		}
	}

	SVGShapeElement.prototype.createStyleElement = function(data, level){
		//TODO: prevent drawing of hidden styles
		var elementData;
		var styleOb = new SVGStyleData(data, level);

		var pathElement = styleOb.pElem;
		if(data.ty === 'st') {
			elementData = new SVGStrokeStyleData(this, data, styleOb);
		} else if(data.ty === 'fl') {
			elementData = new SVGFillStyleData(this, data, styleOb);
		} else if(data.ty === 'gf' || data.ty === 'gs') {
			var gradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;
			elementData = new gradientConstructor(this, data, styleOb);
			this.globalData.defs.appendChild(elementData.gf);
			if (elementData.maskId) {
				this.globalData.defs.appendChild(elementData.ms);
				this.globalData.defs.appendChild(elementData.of);
				pathElement.setAttribute('mask','url(' + locationHref + '#' + elementData.maskId + ')');
			}
		}

		if(data.ty === 'st' || data.ty === 'gs') {
			pathElement.setAttribute('stroke-linecap', this.lcEnum[data.lc] || 'round');
			pathElement.setAttribute('stroke-linejoin',this.ljEnum[data.lj] || 'round');
			pathElement.setAttribute('fill-opacity','0');
			if(data.lj === 1) {
				pathElement.setAttribute('stroke-miterlimit',data.ml);
			}
		}

		if(data.r === 2) {
			pathElement.setAttribute('fill-rule', 'evenodd');
		}

		if(data.ln){
			pathElement.setAttribute('id',data.ln);
		}
		if(data.cl){
			pathElement.setAttribute('class',data.cl);
		}
		if(data.bm){
			pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);
		}
		this.stylesList.push(styleOb);
		this.addToAnimatedContents(data, elementData);
		return elementData;
	};

	SVGShapeElement.prototype.createGroupElement = function(data) {
		var elementData = new ShapeGroupData();
		if(data.ln){
			elementData.gr.setAttribute('id',data.ln);
		}
		if(data.cl){
			elementData.gr.setAttribute('class',data.cl);
		}
		if(data.bm){
			elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);
		}
		return elementData;
	};

	SVGShapeElement.prototype.createTransformElement = function(data, container) {
		var transformProperty = TransformPropertyFactory.getTransformProperty(this,data,this);
		var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);
		this.addToAnimatedContents(data, elementData);
		return elementData;
	};

	SVGShapeElement.prototype.createShapeElement = function(data, ownTransformers, level) {
		var ty = 4;
		if(data.ty === 'rc'){
			ty = 5;
		}else if(data.ty === 'el'){
			ty = 6;
		}else if(data.ty === 'sr'){
			ty = 7;
		}
		var shapeProperty = ShapePropertyFactory.getShapeProp(this,data,ty,this);
		var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);
		this.shapes.push(elementData);
		this.addShapeToModifiers(elementData);
		this.addToAnimatedContents(data, elementData);
		return elementData;
	};

	SVGShapeElement.prototype.addToAnimatedContents = function(data, element) {
		var i = 0, len = this.animatedContents.length;
		while(i < len) {
			if(this.animatedContents[i].element === element) {
				return;
			}
			i += 1;
		}
		this.animatedContents.push({
			fn: SVGElementsRenderer.createRenderFunction(data),
			element: element,
			data: data
		});
	};

	SVGShapeElement.prototype.setElementStyles = function(elementData){
		var arr = elementData.styles;
		var j, jLen = this.stylesList.length;
		for (j = 0; j < jLen; j += 1) {
			if (!this.stylesList[j].closed) {
				arr.push(this.stylesList[j]);
			}
		}
	};

	SVGShapeElement.prototype.reloadShapes = function(){
		this._isFirstFrame = true;
		var i, len = this.itemsData.length;
		for( i = 0; i < len; i += 1) {
			this.prevViewData[i] = this.itemsData[i];
		}
		this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement, 0, [], true);
		this.filterUniqueShapes();
		len = this.dynamicProperties.length;
		for(i = 0; i < len; i += 1) {
			this.dynamicProperties[i].getValue();
		}
		this.renderModifiers();
	};

	SVGShapeElement.prototype.searchShapes = function(arr,itemsData,prevViewData,container, level, transformers, render){
		var ownTransformers = [].concat(transformers);
		var i, len = arr.length - 1;
		var j, jLen;
		var ownStyles = [], ownModifiers = [], styleOb, currentTransform, modifier, processedPos;
		for(i=len;i>=0;i-=1){
			processedPos = this.searchProcessedElement(arr[i]);
			if(!processedPos){
				arr[i]._render = render;
			} else {
				itemsData[i] = prevViewData[processedPos - 1];
			}
			if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){
				if(!processedPos){
					itemsData[i] = this.createStyleElement(arr[i], level);
				} else {
					itemsData[i].style.closed = false;
				}
				if(arr[i]._render){
					container.appendChild(itemsData[i].style.pElem);
				}
				ownStyles.push(itemsData[i].style);
			}else if(arr[i].ty == 'gr'){
				if(!processedPos){
					itemsData[i] = this.createGroupElement(arr[i]);
				} else {
					jLen = itemsData[i].it.length;
					for(j=0;j<jLen;j+=1){
						itemsData[i].prevViewData[j] = itemsData[i].it[j];
					}
				}
				this.searchShapes(arr[i].it,itemsData[i].it,itemsData[i].prevViewData,itemsData[i].gr, level + 1, ownTransformers, render);
				if(arr[i]._render){
					container.appendChild(itemsData[i].gr);
				}
			}else if(arr[i].ty == 'tr'){
				if(!processedPos){
					itemsData[i] = this.createTransformElement(arr[i], container);
				}
				currentTransform = itemsData[i].transform;
				ownTransformers.push(currentTransform);
			}else if(arr[i].ty == 'sh' || arr[i].ty == 'rc' || arr[i].ty == 'el' || arr[i].ty == 'sr'){
				if(!processedPos){
					itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);
				}
				this.setElementStyles(itemsData[i]);

			}else if(arr[i].ty == 'tm' || arr[i].ty == 'rd' || arr[i].ty == 'ms'){
				if(!processedPos){
					modifier = ShapeModifiers.getModifier(arr[i].ty);
					modifier.init(this,arr[i]);
					itemsData[i] = modifier;
					this.shapeModifiers.push(modifier);
				} else {
					modifier = itemsData[i];
					modifier.closed = false;
				}
				ownModifiers.push(modifier);
			}else if(arr[i].ty == 'rp'){
				if(!processedPos){
					modifier = ShapeModifiers.getModifier(arr[i].ty);
					itemsData[i] = modifier;
					modifier.init(this,arr,i,itemsData);
					this.shapeModifiers.push(modifier);
					render = false;
				}else{
					modifier = itemsData[i];
					modifier.closed = true;
				}
				ownModifiers.push(modifier);
			}
			this.addProcessedElement(arr[i], i + 1);
		}
		len = ownStyles.length;
		for(i=0;i<len;i+=1){
			ownStyles[i].closed = true;
		}
		len = ownModifiers.length;
		for(i=0;i<len;i+=1){
			ownModifiers[i].closed = true;
		}
	};

	SVGShapeElement.prototype.renderInnerContent = function() {
		this.renderModifiers();
		var i, len = this.stylesList.length;
		for(i=0;i<len;i+=1){
			this.stylesList[i].reset();
		}
		this.renderShape();

		for (i = 0; i < len; i += 1) {
			if (this.stylesList[i]._mdf || this._isFirstFrame) {
				if(this.stylesList[i].msElem){
					this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);
					//Adding M0 0 fixes same mask bug on all browsers
					this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;
				}
				this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');
			}
		}
	};

	SVGShapeElement.prototype.renderShape = function() {
		var i, len = this.animatedContents.length;
		var animatedContent;
		for(i = 0; i < len; i += 1) {
			animatedContent = this.animatedContents[i];
			if((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {
				animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);
			}
		}
	}

	SVGShapeElement.prototype.destroy = function(){
		this.destroyBaseElement();
		this.shapesData = null;
		this.itemsData = null;
	};

	function SVGTintFilter(filter, filterManager){
		this.filterManager = filterManager;
		var feColorMatrix = createNS('feColorMatrix');
		feColorMatrix.setAttribute('type','matrix');
		feColorMatrix.setAttribute('color-interpolation-filters','linearRGB');
		feColorMatrix.setAttribute('values','0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');
		feColorMatrix.setAttribute('result','f1');
		filter.appendChild(feColorMatrix);
		feColorMatrix = createNS('feColorMatrix');
		feColorMatrix.setAttribute('type','matrix');
		feColorMatrix.setAttribute('color-interpolation-filters','sRGB');
		feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');
		feColorMatrix.setAttribute('result','f2');
		filter.appendChild(feColorMatrix);
		this.matrixFilter = feColorMatrix;
		if(filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k){
			var feMerge = createNS('feMerge');
			filter.appendChild(feMerge);
			var feMergeNode;
			feMergeNode = createNS('feMergeNode');
			feMergeNode.setAttribute('in','SourceGraphic');
			feMerge.appendChild(feMergeNode);
			feMergeNode = createNS('feMergeNode');
			feMergeNode.setAttribute('in','f2');
			feMerge.appendChild(feMergeNode);
		}
	}

	SVGTintFilter.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			var colorBlack = this.filterManager.effectElements[0].p.v;
			var colorWhite = this.filterManager.effectElements[1].p.v;
			var opacity = this.filterManager.effectElements[2].p.v/100;
			this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');
		}
	};
	function SVGFillFilter(filter, filterManager){
		this.filterManager = filterManager;
		var feColorMatrix = createNS('feColorMatrix');
		feColorMatrix.setAttribute('type','matrix');
		feColorMatrix.setAttribute('color-interpolation-filters','sRGB');
		feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');
		filter.appendChild(feColorMatrix);
		this.matrixFilter = feColorMatrix;
	}
	SVGFillFilter.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			var color = this.filterManager.effectElements[2].p.v;
			var opacity = this.filterManager.effectElements[6].p.v;
			this.matrixFilter.setAttribute('values','0 0 0 0 '+color[0]+' 0 0 0 0 '+color[1]+' 0 0 0 0 '+color[2]+' 0 0 0 '+opacity+' 0');
		}
	};
	function SVGGaussianBlurEffect(filter, filterManager){
		// Outset the filter region by 100% on all sides to accommodate blur expansion.
		filter.setAttribute('x','-100%');
		filter.setAttribute('y','-100%');
		filter.setAttribute('width','300%');
		filter.setAttribute('height','300%');

		this.filterManager = filterManager;
		var feGaussianBlur = createNS('feGaussianBlur');
		filter.appendChild(feGaussianBlur);
		this.feGaussianBlur = feGaussianBlur;
	}

	SVGGaussianBlurEffect.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			// Empirical value, matching AE's blur appearance.
			var kBlurrinessToSigma = 0.3;
			var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;

			// Dimensions mapping:
			//
			//   1 -> horizontal & vertical
			//   2 -> horizontal only
			//   3 -> vertical only
			//
			var dimensions = this.filterManager.effectElements[1].p.v;
			var sigmaX = (dimensions == 3) ? 0 : sigma;
			var sigmaY = (dimensions == 2) ? 0 : sigma;

			this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + " " + sigmaY);

			// Repeat edges mapping:
			//
			//   0 -> off -> duplicate
			//   1 -> on  -> wrap
			var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate';
			this.feGaussianBlur.setAttribute('edgeMode', edgeMode);
		}
	}
	function SVGStrokeEffect(elem, filterManager){
		this.initialized = false;
		this.filterManager = filterManager;
		this.elem = elem;
		this.paths = [];
	}

	SVGStrokeEffect.prototype.initialize = function(){

		var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;
		var path,groupPath, i, len;
		if(this.filterManager.effectElements[1].p.v === 1){
			len = this.elem.maskManager.masksProperties.length;
			i = 0;
		} else {
			i = this.filterManager.effectElements[0].p.v - 1;
			len = i + 1;
		}
		groupPath = createNS('g');
		groupPath.setAttribute('fill','none');
		groupPath.setAttribute('stroke-linecap','round');
		groupPath.setAttribute('stroke-dashoffset',1);
		for(i;i<len;i+=1){
			path = createNS('path');
			groupPath.appendChild(path);
			this.paths.push({p:path,m:i});
		}
		if(this.filterManager.effectElements[10].p.v === 3){
			var mask = createNS('mask');
			var id = createElementID();
			mask.setAttribute('id',id);
			mask.setAttribute('mask-type','alpha');
			mask.appendChild(groupPath);
			this.elem.globalData.defs.appendChild(mask);
			var g = createNS('g');
			g.setAttribute('mask','url(' + locationHref + '#'+id+')');
			while (elemChildren[0]) {
				g.appendChild(elemChildren[0]);
			}
			this.elem.layerElement.appendChild(g);
			this.masker = mask;
			groupPath.setAttribute('stroke','#fff');
		} else if(this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2){
			if(this.filterManager.effectElements[10].p.v === 2){
				elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;
				while(elemChildren.length){
					this.elem.layerElement.removeChild(elemChildren[0]);
				}
			}
			this.elem.layerElement.appendChild(groupPath);
			this.elem.layerElement.removeAttribute('mask');
			groupPath.setAttribute('stroke','#fff');
		}
		this.initialized = true;
		this.pathMasker = groupPath;
	};

	SVGStrokeEffect.prototype.renderFrame = function(forceRender){
		if(!this.initialized){
			this.initialize();
		}
		var i, len = this.paths.length;
		var mask, path;
		for(i=0;i<len;i+=1){
			if(this.paths[i].m === -1) {
				continue;
			}
			mask = this.elem.maskManager.viewData[this.paths[i].m];
			path = this.paths[i].p;
			if(forceRender || this.filterManager._mdf || mask.prop._mdf){
				path.setAttribute('d',mask.lastPath);
			}
			if(forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf){
				var dasharrayValue;
				if(this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100){
					var s = Math.min(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100;
					var e = Math.max(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)/100;
					var l = path.getTotalLength();
					dasharrayValue = '0 0 0 ' + l*s + ' ';
					var lineLength = l*(e-s);
					var segment = 1+this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v/100;
					var units = Math.floor(lineLength/segment);
					var j;
					for(j=0;j<units;j+=1){
						dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v/100 + ' ';
					}
					dasharrayValue += '0 ' + l*10 + ' 0 0';
				} else {
					dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v/100;
				}
				path.setAttribute('stroke-dasharray',dasharrayValue);
			}
		}
		if(forceRender || this.filterManager.effectElements[4].p._mdf){
			this.pathMasker.setAttribute('stroke-width',this.filterManager.effectElements[4].p.v*2);
		}

		if(forceRender || this.filterManager.effectElements[6].p._mdf){
			this.pathMasker.setAttribute('opacity',this.filterManager.effectElements[6].p.v);
		}
		if(this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2){
			if(forceRender || this.filterManager.effectElements[3].p._mdf){
				var color = this.filterManager.effectElements[3].p.v;
				this.pathMasker.setAttribute('stroke','rgb('+bm_floor(color[0]*255)+','+bm_floor(color[1]*255)+','+bm_floor(color[2]*255)+')');
			}
		}
	};
	function SVGTritoneFilter(filter, filterManager){
		this.filterManager = filterManager;
		var feColorMatrix = createNS('feColorMatrix');
		feColorMatrix.setAttribute('type','matrix');
		feColorMatrix.setAttribute('color-interpolation-filters','linearRGB');
		feColorMatrix.setAttribute('values','0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');
		feColorMatrix.setAttribute('result','f1');
		filter.appendChild(feColorMatrix);
		var feComponentTransfer = createNS('feComponentTransfer');
		feComponentTransfer.setAttribute('color-interpolation-filters','sRGB');
		filter.appendChild(feComponentTransfer);
		this.matrixFilter = feComponentTransfer;
		var feFuncR = createNS('feFuncR');
		feFuncR.setAttribute('type','table');
		feComponentTransfer.appendChild(feFuncR);
		this.feFuncR = feFuncR;
		var feFuncG = createNS('feFuncG');
		feFuncG.setAttribute('type','table');
		feComponentTransfer.appendChild(feFuncG);
		this.feFuncG = feFuncG;
		var feFuncB = createNS('feFuncB');
		feFuncB.setAttribute('type','table');
		feComponentTransfer.appendChild(feFuncB);
		this.feFuncB = feFuncB;
	}

	SVGTritoneFilter.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			var color1 = this.filterManager.effectElements[0].p.v;
			var color2 = this.filterManager.effectElements[1].p.v;
			var color3 = this.filterManager.effectElements[2].p.v;
			var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];
			var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];
			var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];
			this.feFuncR.setAttribute('tableValues', tableR);
			this.feFuncG.setAttribute('tableValues', tableG);
			this.feFuncB.setAttribute('tableValues', tableB);
			//var opacity = this.filterManager.effectElements[2].p.v/100;
			//this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');
		}
	};
	function SVGProLevelsFilter(filter, filterManager){
		this.filterManager = filterManager;
		var effectElements = this.filterManager.effectElements;
		var feComponentTransfer = createNS('feComponentTransfer');
		var feFuncR, feFuncG, feFuncB;

		if(effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1){
			this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);
		}
		if(effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1){
			this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);
		}
		if(effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1){
			this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);
		}
		if(effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1){
			this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);
		}

		if(this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA){
			feComponentTransfer.setAttribute('color-interpolation-filters','sRGB');
			filter.appendChild(feComponentTransfer);
			feComponentTransfer = createNS('feComponentTransfer');
		}

		if(effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1){

			feComponentTransfer.setAttribute('color-interpolation-filters','sRGB');
			filter.appendChild(feComponentTransfer);
			this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);
			this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);
			this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);
		}
	}

	SVGProLevelsFilter.prototype.createFeFunc = function(type, feComponentTransfer) {
		var feFunc = createNS(type);
		feFunc.setAttribute('type','table');
		feComponentTransfer.appendChild(feFunc);
		return feFunc;
	};

	SVGProLevelsFilter.prototype.getTableValue = function(inputBlack, inputWhite, gamma, outputBlack, outputWhite) {
		var cnt = 0;
		var segments = 256;
		var perc;
		var min = Math.min(inputBlack, inputWhite);
		var max = Math.max(inputBlack, inputWhite);
		var table = Array.call(null,{length:segments});
		var colorValue;
		var pos = 0;
		var outputDelta = outputWhite - outputBlack;
		var inputDelta = inputWhite - inputBlack;
		while(cnt <= 256) {
			perc = cnt/256;
			if(perc <= min){
				colorValue = inputDelta < 0 ? outputWhite : outputBlack;
			} else if(perc >= max){
				colorValue = inputDelta < 0 ? outputBlack : outputWhite;
			} else {
				colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));
			}
			table[pos++] = colorValue;
			cnt += 256/(segments-1);
		}
		return table.join(' ');
	};

	SVGProLevelsFilter.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			var val, cnt, perc, bezier;
			var effectElements = this.filterManager.effectElements;
			if(this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)){
				val = this.getTableValue(effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v,effectElements[7].p.v);
				this.feFuncRComposed.setAttribute('tableValues',val);
				this.feFuncGComposed.setAttribute('tableValues',val);
				this.feFuncBComposed.setAttribute('tableValues',val);
			}


			if(this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)){
				val = this.getTableValue(effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v,effectElements[14].p.v);
				this.feFuncR.setAttribute('tableValues',val);
			}

			if(this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)){
				val = this.getTableValue(effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v,effectElements[21].p.v);
				this.feFuncG.setAttribute('tableValues',val);
			}

			if(this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)){
				val = this.getTableValue(effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v,effectElements[28].p.v);
				this.feFuncB.setAttribute('tableValues',val);
			}

			if(this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)){
				val = this.getTableValue(effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v,effectElements[35].p.v);
				this.feFuncA.setAttribute('tableValues',val);
			}

		}
	};
	function SVGDropShadowEffect(filter, filterManager) {
		var filterSize = filterManager.container.globalData.renderConfig.filterSize
		filter.setAttribute('x', filterSize.x);
		filter.setAttribute('y', filterSize.y);
		filter.setAttribute('width', filterSize.width);
		filter.setAttribute('height', filterSize.height);
		this.filterManager = filterManager;

		var feGaussianBlur = createNS('feGaussianBlur');
		feGaussianBlur.setAttribute('in','SourceAlpha');
		feGaussianBlur.setAttribute('result','drop_shadow_1');
		feGaussianBlur.setAttribute('stdDeviation','0');
		this.feGaussianBlur = feGaussianBlur;
		filter.appendChild(feGaussianBlur);

		var feOffset = createNS('feOffset');
		feOffset.setAttribute('dx','25');
		feOffset.setAttribute('dy','0');
		feOffset.setAttribute('in','drop_shadow_1');
		feOffset.setAttribute('result','drop_shadow_2');
		this.feOffset = feOffset;
		filter.appendChild(feOffset);
		var feFlood = createNS('feFlood');
		feFlood.setAttribute('flood-color','#00ff00');
		feFlood.setAttribute('flood-opacity','1');
		feFlood.setAttribute('result','drop_shadow_3');
		this.feFlood = feFlood;
		filter.appendChild(feFlood);

		var feComposite = createNS('feComposite');
		feComposite.setAttribute('in','drop_shadow_3');
		feComposite.setAttribute('in2','drop_shadow_2');
		feComposite.setAttribute('operator','in');
		feComposite.setAttribute('result','drop_shadow_4');
		filter.appendChild(feComposite);


		var feMerge = createNS('feMerge');
		filter.appendChild(feMerge);
		var feMergeNode;
		feMergeNode = createNS('feMergeNode');
		feMerge.appendChild(feMergeNode);
		feMergeNode = createNS('feMergeNode');
		feMergeNode.setAttribute('in','SourceGraphic');
		this.feMergeNode = feMergeNode;
		this.feMerge = feMerge;
		this.originalNodeAdded = false;
		feMerge.appendChild(feMergeNode);
	}

	SVGDropShadowEffect.prototype.renderFrame = function(forceRender){
		if(forceRender || this.filterManager._mdf){
			if(forceRender || this.filterManager.effectElements[4].p._mdf){
				this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);
			}
			if(forceRender || this.filterManager.effectElements[0].p._mdf){
				var col = this.filterManager.effectElements[0].p.v;
				this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));
			}
			if(forceRender || this.filterManager.effectElements[1].p._mdf){
				this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);
			}
			if(forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf){
				var distance = this.filterManager.effectElements[3].p.v;
				var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;
				var x = distance * Math.cos(angle);
				var y = distance * Math.sin(angle);
				this.feOffset.setAttribute('dx', x);
				this.feOffset.setAttribute('dy', y);
			}
			/*if(forceRender || this.filterManager.effectElements[5].p._mdf){
            if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {
                this.feMerge.removeChild(this.feMergeNode);
                this.originalNodeAdded = false;
            } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {
                this.feMerge.appendChild(this.feMergeNode);
                this.originalNodeAdded = true;
            }
        }*/
		}
	};
	var _svgMatteSymbols = [];

	function SVGMatte3Effect(filterElem, filterManager, elem){
		this.initialized = false;
		this.filterManager = filterManager;
		this.filterElem = filterElem;
		this.elem = elem;
		elem.matteElement = createNS('g');
		elem.matteElement.appendChild(elem.layerElement);
		elem.matteElement.appendChild(elem.transformedElement);
		elem.baseElement = elem.matteElement;
	}

	SVGMatte3Effect.prototype.findSymbol = function(mask) {
		var i = 0, len = _svgMatteSymbols.length;
		while(i < len) {
			if(_svgMatteSymbols[i] === mask) {
				return _svgMatteSymbols[i];
			}
			i += 1;
		}
		return null;
	};

	SVGMatte3Effect.prototype.replaceInParent = function(mask, symbolId) {
		var parentNode = mask.layerElement.parentNode;
		if(!parentNode) {
			return;
		}
		var children = parentNode.children;
		var i = 0, len = children.length;
		while (i < len) {
			if (children[i] === mask.layerElement) {
				break;
			}
			i += 1;
		}
		var nextChild;
		if (i <= len - 2) {
			nextChild = children[i + 1];
		}
		var useElem = createNS('use');
		useElem.setAttribute('href', '#' + symbolId);
		if(nextChild) {
			parentNode.insertBefore(useElem, nextChild);
		} else {
			parentNode.appendChild(useElem);
		}
	};

	SVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {
		if(!this.findSymbol(mask)) {
			var symbolId = createElementID();
			var masker = createNS('mask');
			masker.setAttribute('id', mask.layerId);
			masker.setAttribute('mask-type', 'alpha');
			_svgMatteSymbols.push(mask);
			var defs = elem.globalData.defs;
			defs.appendChild(masker);
			var symbol = createNS('symbol');
			symbol.setAttribute('id', symbolId);
			this.replaceInParent(mask, symbolId);
			symbol.appendChild(mask.layerElement);
			defs.appendChild(symbol);
			var useElem = createNS('use');
			useElem.setAttribute('href', '#' + symbolId);
			masker.appendChild(useElem);
			mask.data.hd = false;
			mask.show();
		}
		elem.setMatte(mask.layerId);
	};

	SVGMatte3Effect.prototype.initialize = function() {
		var ind = this.filterManager.effectElements[0].p.v;
		var elements = this.elem.comp.elements;
		var i = 0, len = elements.length;
		while (i < len) {
			if (elements[i] && elements[i].data.ind === ind) {
				this.setElementAsMask(this.elem, elements[i]);
			}
			i += 1;
		}
		this.initialized = true;
	};

	SVGMatte3Effect.prototype.renderFrame = function() {
		if(!this.initialized) {
			this.initialize();
		}
	};
	function SVGEffects(elem){
		var i, len = elem.data.ef ? elem.data.ef.length : 0;
		var filId = createElementID();
		var fil = filtersFactory.createFilter(filId);
		var count = 0;
		this.filters = [];
		var filterManager;
		for(i=0;i<len;i+=1){
			filterManager = null;
			if(elem.data.ef[i].ty === 20){
				count += 1;
				filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 21){
				count += 1;
				filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 22){
				filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 23){
				count += 1;
				filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 24){
				count += 1;
				filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 25){
				count += 1;
				filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);
			}else if(elem.data.ef[i].ty === 28){
				//count += 1;
				filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);
			}else if(elem.data.ef[i].ty === 29){
				count += 1;
				filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);
			}
			if(filterManager) {
				this.filters.push(filterManager);
			}
		}
		if(count){
			elem.globalData.defs.appendChild(fil);
			elem.layerElement.setAttribute('filter','url(' + locationHref + '#'+filId+')');
		}
		if (this.filters.length) {
			elem.addRenderableComponent(this);
		}
	}

	SVGEffects.prototype.renderFrame = function(_isFirstFrame){
		var i, len = this.filters.length;
		for(i=0;i<len;i+=1){
			this.filters[i].renderFrame(_isFirstFrame);
		}
	};
	function CVContextData() {
		this.saved = [];
		this.cArrPos = 0;
		this.cTr = new Matrix();
		this.cO = 1;
		var i, len = 15;
		this.savedOp = createTypedArray('float32', len);
		for(i=0;i<len;i+=1){
			this.saved[i] = createTypedArray('float32', 16);
		}
		this._length = len;
	}

	CVContextData.prototype.duplicate = function() {
		var newLength = this._length * 2;
		var currentSavedOp = this.savedOp;
		this.savedOp = createTypedArray('float32', newLength);
		this.savedOp.set(currentSavedOp);
		var i = 0;
		for(i = this._length; i < newLength; i += 1) {
			this.saved[i] = createTypedArray('float32', 16);
		}
		this._length = newLength;
	};

	CVContextData.prototype.reset = function() {
		this.cArrPos = 0;
		this.cTr.reset();
		this.cO = 1;
	};
	function CVBaseElement(){
	}

	CVBaseElement.prototype = {
		createElements: function(){},
		initRendererElement: function(){},
		createContainerElements: function(){
			this.canvasContext = this.globalData.canvasContext;
			this.renderableEffectsManager = new CVEffects(this);
		},
		createContent: function(){},
		setBlendMode: function(){
			var globalData = this.globalData;
			if(globalData.blendMode !== this.data.bm) {
				globalData.blendMode = this.data.bm;
				var blendModeValue = getBlendMode(this.data.bm);
				globalData.canvasContext.globalCompositeOperation = blendModeValue;
			}
		},
		createRenderableComponents: function(){
			this.maskManager = new CVMaskElement(this.data, this);
		},
		hideElement: function(){
			if (!this.hidden && (!this.isInRange || this.isTransparent)) {
				this.hidden = true;
			}
		},
		showElement: function(){
			if (this.isInRange && !this.isTransparent){
				this.hidden = false;
				this._isFirstFrame = true;
				this.maskManager._isFirstFrame = true;
			}
		},
		renderFrame: function() {
			if (this.hidden || this.data.hd) {
				return;
			}
			this.renderTransform();
			this.renderRenderable();
			this.setBlendMode();
			var forceRealStack = this.data.ty === 0;
			this.globalData.renderer.save(forceRealStack);
			this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);
			this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);
			this.renderInnerContent();
			this.globalData.renderer.restore(forceRealStack);
			if(this.maskManager.hasMasks) {
				this.globalData.renderer.restore(true);
			}
			if (this._isFirstFrame) {
				this._isFirstFrame = false;
			}
		},
		destroy: function(){
			this.canvasContext = null;
			this.data = null;
			this.globalData = null;
			this.maskManager.destroy();
		},
		mHelper: new Matrix()
	};
	CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;
	CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;

	function CVImageElement(data, globalData, comp){
		this.assetData = globalData.getAssetData(data.refId);
		this.img = globalData.imageLoader.getImage(this.assetData);
		this.initElement(data,globalData,comp);
	}
	extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);

	CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;
	CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;

	CVImageElement.prototype.createContent = function(){

		if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {
			var canvas = createTag('canvas');
			canvas.width = this.assetData.w;
			canvas.height = this.assetData.h;
			var ctx = canvas.getContext('2d');

			var imgW = this.img.width;
			var imgH = this.img.height;
			var imgRel = imgW / imgH;
			var canvasRel = this.assetData.w/this.assetData.h;
			var widthCrop, heightCrop;
			var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;
			if((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {
				heightCrop = imgH;
				widthCrop = heightCrop*canvasRel;
			} else {
				widthCrop = imgW;
				heightCrop = widthCrop/canvasRel;
			}
			ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h);
			this.img = canvas;
		}

	};

	CVImageElement.prototype.renderInnerContent = function(parentMatrix){
		this.canvasContext.drawImage(this.img, 0, 0);
	};

	CVImageElement.prototype.destroy = function(){
		this.img = null;
	};
	function CVCompElement(data, globalData, comp) {
		this.completeLayers = false;
		this.layers = data.layers;
		this.pendingElements = [];
		this.elements = createSizedArray(this.layers.length);
		this.initElement(data, globalData, comp);
		this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate, this) : {_placeholder:true};
	}

	extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);

	CVCompElement.prototype.renderInnerContent = function() {
		var ctx = this.canvasContext;
		ctx.beginPath();
		ctx.moveTo(0, 0);
		ctx.lineTo(this.data.w, 0);
		ctx.lineTo(this.data.w, this.data.h);
		ctx.lineTo(0, this.data.h);
		ctx.lineTo(0, 0);
		ctx.clip();
		var i,len = this.layers.length;
		for( i = len - 1; i >= 0; i -= 1 ){
			if(this.completeLayers || this.elements[i]){
				this.elements[i].renderFrame();
			}
		}
	};

	CVCompElement.prototype.destroy = function(){
		var i,len = this.layers.length;
		for( i = len - 1; i >= 0; i -= 1 ){
			if(this.elements[i]) {
				this.elements[i].destroy();
			}
		}
		this.layers = null;
		this.elements = null;
	};

	function CVMaskElement(data,element){
		this.data = data;
		this.element = element;
		this.masksProperties = this.data.masksProperties || [];
		this.viewData = createSizedArray(this.masksProperties.length);
		var i, len = this.masksProperties.length, hasMasks = false;
		for (i = 0; i < len; i++) {
			if(this.masksProperties[i].mode !== 'n'){
				hasMasks = true;
			}
			this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[i],3);
		}
		this.hasMasks = hasMasks;
		if(hasMasks) {
			this.element.addRenderableComponent(this);
		}
	}

	CVMaskElement.prototype.renderFrame = function () {
		if(!this.hasMasks){
			return;
		}
		var transform = this.element.finalTransform.mat;
		var ctx = this.element.canvasContext;
		var i, len = this.masksProperties.length;
		var pt,pts,data;
		ctx.beginPath();
		for (i = 0; i < len; i++) {
			if(this.masksProperties[i].mode !== 'n'){
				if (this.masksProperties[i].inv) {
					ctx.moveTo(0, 0);
					ctx.lineTo(this.element.globalData.compSize.w, 0);
					ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);
					ctx.lineTo(0, this.element.globalData.compSize.h);
					ctx.lineTo(0, 0);
				}
				data = this.viewData[i].v;
				pt = transform.applyToPointArray(data.v[0][0],data.v[0][1],0);
				ctx.moveTo(pt[0], pt[1]);
				var j, jLen = data._length;
				for (j = 1; j < jLen; j++) {
					pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);
					ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);
				}
				pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);
				ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);
			}
		}
		this.element.globalData.renderer.save(true);
		ctx.clip();
	};

	CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;

	CVMaskElement.prototype.destroy = function(){
		this.element = null;
	};
	function CVShapeElement(data, globalData, comp) {
		this.shapes = [];
		this.shapesData = data.shapes;
		this.stylesList = [];
		this.itemsData = [];
		this.prevViewData = [];
		this.shapeModifiers = [];
		this.processedElements = [];
		this.transformsManager = new ShapeTransformManager();
		this.initElement(data, globalData, comp);
	}

	extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement], CVShapeElement);

	CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;

	CVShapeElement.prototype.transformHelper = {opacity:1,_opMdf:false};

	CVShapeElement.prototype.dashResetter = [];

	CVShapeElement.prototype.createContent = function(){
		this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);
	};

	CVShapeElement.prototype.createStyleElement = function(data, transforms) {
		var styleElem = {
			data: data,
			type: data.ty,
			preTransforms: this.transformsManager.addTransformSequence(transforms),
			transforms: [],
			elements: [],
			closed: data.hd === true
		};
		var elementData = {};
		if(data.ty == 'fl' || data.ty == 'st'){
			elementData.c = PropertyFactory.getProp(this,data.c,1,255,this);
			if(!elementData.c.k){
				styleElem.co = 'rgb('+bm_floor(elementData.c.v[0])+','+bm_floor(elementData.c.v[1])+','+bm_floor(elementData.c.v[2])+')';
			}
		} else if (data.ty === 'gf' || data.ty === 'gs') {
			elementData.s = PropertyFactory.getProp(this,data.s,1,null,this);
			elementData.e = PropertyFactory.getProp(this,data.e,1,null,this);
			elementData.h = PropertyFactory.getProp(this,data.h||{k:0},0,0.01,this);
			elementData.a = PropertyFactory.getProp(this,data.a||{k:0},0,degToRads,this);
			elementData.g = new GradientProperty(this,data.g,this);
		}
		elementData.o = PropertyFactory.getProp(this,data.o,0,0.01,this);
		if(data.ty == 'st' || data.ty == 'gs') {
			styleElem.lc = this.lcEnum[data.lc] || 'round';
			styleElem.lj = this.ljEnum[data.lj] || 'round';
			if(data.lj == 1) {
				styleElem.ml = data.ml;
			}
			elementData.w = PropertyFactory.getProp(this,data.w,0,null,this);
			if(!elementData.w.k){
				styleElem.wi = elementData.w.v;
			}
			if(data.d){
				var d = new DashProperty(this,data.d,'canvas', this);
				elementData.d = d;
				if(!elementData.d.k){
					styleElem.da = elementData.d.dashArray;
					styleElem.do = elementData.d.dashoffset[0];
				}
			}
		} else {
			styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';
		}
		this.stylesList.push(styleElem);
		elementData.style = styleElem;
		return elementData;
	};

	CVShapeElement.prototype.createGroupElement = function(data) {
		var elementData = {
			it: [],
			prevViewData: []
		};
		return elementData;
	};

	CVShapeElement.prototype.createTransformElement = function(data) {
		var elementData = {
			transform : {
				opacity: 1,
				_opMdf:false,
				key: this.transformsManager.getNewKey(),
				op: PropertyFactory.getProp(this,data.o,0,0.01,this),
				mProps: TransformPropertyFactory.getTransformProperty(this,data,this)
			}
		};
		return elementData;
	};

	CVShapeElement.prototype.createShapeElement = function(data) {
		var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);

		this.shapes.push(elementData);
		this.addShapeToModifiers(elementData);
		return elementData;
	};

	CVShapeElement.prototype.reloadShapes = function() {
		this._isFirstFrame = true;
		var i, len = this.itemsData.length;
		for (i = 0; i < len; i += 1) {
			this.prevViewData[i] = this.itemsData[i];
		}
		this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);
		len = this.dynamicProperties.length;
		for (i = 0; i < len; i += 1) {
			this.dynamicProperties[i].getValue();
		}
		this.renderModifiers();
		this.transformsManager.processSequences(this._isFirstFrame);
	};

	CVShapeElement.prototype.addTransformToStyleList = function(transform) {
		var i, len = this.stylesList.length;
		for (i = 0; i < len; i += 1) {
			if(!this.stylesList[i].closed) {
				this.stylesList[i].transforms.push(transform);
			}
		}
	}

	CVShapeElement.prototype.removeTransformFromStyleList = function() {
		var i, len = this.stylesList.length;
		for (i = 0; i < len; i += 1) {
			if(!this.stylesList[i].closed) {
				this.stylesList[i].transforms.pop();
			}
		}
	}

	CVShapeElement.prototype.closeStyles = function(styles) {
		var i, len = styles.length, j, jLen;
		for (i = 0; i < len; i += 1) {
			styles[i].closed = true;
		}
	}

	CVShapeElement.prototype.searchShapes = function(arr,itemsData, prevViewData, shouldRender, transforms){
		var i, len = arr.length - 1;
		var j, jLen;
		var ownStyles = [], ownModifiers = [], processedPos, modifier, currentTransform;
		var ownTransforms = [].concat(transforms);
		for(i=len;i>=0;i-=1){
			processedPos = this.searchProcessedElement(arr[i]);
			if(!processedPos){
				arr[i]._shouldRender = shouldRender;
			} else {
				itemsData[i] = prevViewData[processedPos - 1];
			}
			if(arr[i].ty == 'fl' || arr[i].ty == 'st'|| arr[i].ty == 'gf'|| arr[i].ty == 'gs'){
				if(!processedPos){
					itemsData[i] = this.createStyleElement(arr[i], ownTransforms);
				} else {
					itemsData[i].style.closed = false;
				}

				ownStyles.push(itemsData[i].style);
			}else if(arr[i].ty == 'gr'){
				if(!processedPos){
					itemsData[i] = this.createGroupElement(arr[i]);
				} else {
					jLen = itemsData[i].it.length;
					for(j=0;j<jLen;j+=1){
						itemsData[i].prevViewData[j] = itemsData[i].it[j];
					}
				}
				this.searchShapes(arr[i].it,itemsData[i].it,itemsData[i].prevViewData, shouldRender, ownTransforms);
			}else if(arr[i].ty == 'tr'){
				if(!processedPos){
					currentTransform = this.createTransformElement(arr[i]);
					itemsData[i] = currentTransform;
				}
				ownTransforms.push(itemsData[i]);
				this.addTransformToStyleList(itemsData[i]);
			}else if(arr[i].ty == 'sh' || arr[i].ty == 'rc' || arr[i].ty == 'el' || arr[i].ty == 'sr'){
				if(!processedPos){
					itemsData[i] = this.createShapeElement(arr[i]);
				}

			}else if(arr[i].ty == 'tm' || arr[i].ty == 'rd'){
				if(!processedPos){
					modifier = ShapeModifiers.getModifier(arr[i].ty);
					modifier.init(this,arr[i]);
					itemsData[i] = modifier;
					this.shapeModifiers.push(modifier);
				} else {
					modifier = itemsData[i];
					modifier.closed = false;
				}
				ownModifiers.push(modifier);
			} else if(arr[i].ty == 'rp'){
				if(!processedPos){
					modifier = ShapeModifiers.getModifier(arr[i].ty);
					itemsData[i] = modifier;
					modifier.init(this,arr,i,itemsData);
					this.shapeModifiers.push(modifier);
					shouldRender = false;
				}else{
					modifier = itemsData[i];
					modifier.closed = true;
				}
				ownModifiers.push(modifier);
			}
			this.addProcessedElement(arr[i], i + 1);
		}
		this.removeTransformFromStyleList();
		this.closeStyles(ownStyles);
		len = ownModifiers.length;
		for(i=0;i<len;i+=1){
			ownModifiers[i].closed = true;
		}
	};

	CVShapeElement.prototype.renderInnerContent = function() {
		this.transformHelper.opacity = 1;
		this.transformHelper._opMdf = false;
		this.renderModifiers();
		this.transformsManager.processSequences(this._isFirstFrame);
		this.renderShape(this.transformHelper,this.shapesData,this.itemsData,true);
	};

	CVShapeElement.prototype.renderShapeTransform = function(parentTransform, groupTransform) {
		var props, groupMatrix;
		if(parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {
			groupTransform.opacity = parentTransform.opacity;
			groupTransform.opacity *= groupTransform.op.v;
			groupTransform._opMdf = true;
		}
	};

	CVShapeElement.prototype.drawLayer = function() {
		var i, len = this.stylesList.length;
		var j, jLen, k, kLen,elems,nodes, renderer = this.globalData.renderer, ctx = this.globalData.canvasContext, type, currentStyle;
		for(i=0;i<len;i+=1){
			currentStyle = this.stylesList[i];
			type = currentStyle.type;

			//Skipping style when
			//Stroke width equals 0
			//style should not be rendered (extra unused repeaters)
			//current opacity equals 0
			//global opacity equals 0
			if(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0){
				continue;
			}
			renderer.save();
			elems = currentStyle.elements;
			if(type === 'st' || type === 'gs'){
				ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;
				ctx.lineWidth = currentStyle.wi;
				ctx.lineCap = currentStyle.lc;
				ctx.lineJoin = currentStyle.lj;
				ctx.miterLimit = currentStyle.ml || 0;
			} else {
				ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;
			}
			renderer.ctxOpacity(currentStyle.coOp);
			if(type !== 'st' && type !== 'gs'){
				ctx.beginPath();
			}
			renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);
			jLen = elems.length;
			for(j=0;j<jLen;j+=1){
				if(type === 'st' || type === 'gs'){
					ctx.beginPath();
					if(currentStyle.da){
						ctx.setLineDash(currentStyle.da);
						ctx.lineDashOffset = currentStyle.do;
					}
				}
				nodes = elems[j].trNodes;
				kLen = nodes.length;

				for(k=0;k<kLen;k+=1){
					if(nodes[k].t == 'm'){
						ctx.moveTo(nodes[k].p[0],nodes[k].p[1]);
					}else if(nodes[k].t == 'c'){
						ctx.bezierCurveTo(nodes[k].pts[0],nodes[k].pts[1],nodes[k].pts[2],nodes[k].pts[3],nodes[k].pts[4],nodes[k].pts[5]);
					}else{
						ctx.closePath();
					}
				}
				if(type === 'st' || type === 'gs'){
					ctx.stroke();
					if(currentStyle.da){
						ctx.setLineDash(this.dashResetter);
					}
				}
			}
			if(type !== 'st' && type !== 'gs'){
				ctx.fill(currentStyle.r);
			}
			renderer.restore();
		}
	};

	CVShapeElement.prototype.renderShape = function(parentTransform,items,data,isMain){
		var i, len = items.length - 1;
		var groupTransform;
		groupTransform = parentTransform;
		for(i=len;i>=0;i-=1){
			if(items[i].ty == 'tr'){
				groupTransform = data[i].transform;
				this.renderShapeTransform(parentTransform, groupTransform);
			}else if(items[i].ty == 'sh' || items[i].ty == 'el' || items[i].ty == 'rc' || items[i].ty == 'sr'){
				this.renderPath(items[i],data[i]);
			}else if(items[i].ty == 'fl'){
				this.renderFill(items[i],data[i],groupTransform);
			}else if(items[i].ty == 'st'){
				this.renderStroke(items[i],data[i],groupTransform);
			}else if(items[i].ty == 'gf' || items[i].ty == 'gs'){
				this.renderGradientFill(items[i],data[i],groupTransform);
			}else if(items[i].ty == 'gr'){
				this.renderShape(groupTransform,items[i].it,data[i].it);
			}else if(items[i].ty == 'tm'){
				//
			}
		}
		if(isMain){
			this.drawLayer();
		}

	};

	CVShapeElement.prototype.renderStyledShape = function(styledShape, shape){
		if(this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {
			var shapeNodes = styledShape.trNodes;
			var paths = shape.paths;
			var i, len, j, jLen = paths._length;
			shapeNodes.length = 0;
			var groupTransformMat = styledShape.transforms.finalTransform;
			for (j = 0; j < jLen; j += 1) {
				var pathNodes = paths.shapes[j];
				if(pathNodes && pathNodes.v){
					len = pathNodes._length;
					for (i = 1; i < len; i += 1) {
						if (i === 1) {
							shapeNodes.push({
								t: 'm',
								p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)
							});
						}
						shapeNodes.push({
							t: 'c',
							pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])
						});
					}
					if (len === 1) {
						shapeNodes.push({
							t: 'm',
							p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)
						});
					}
					if (pathNodes.c && len) {
						shapeNodes.push({
							t: 'c',
							pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])
						});
						shapeNodes.push({
							t: 'z'
						});
					}
				}
			}
			styledShape.trNodes = shapeNodes;
		}
	}

	CVShapeElement.prototype.renderPath = function(pathData,itemData){
		if(pathData.hd !== true && pathData._shouldRender) {
			var i, len = itemData.styledShapes.length;
			for (i = 0; i < len; i += 1) {
				this.renderStyledShape(itemData.styledShapes[i], itemData.sh);
			}
		}
	};

	CVShapeElement.prototype.renderFill = function(styleData,itemData, groupTransform){
		var styleElem = itemData.style;

		if (itemData.c._mdf || this._isFirstFrame) {
			styleElem.co = 'rgb('
				+ bm_floor(itemData.c.v[0]) + ','
				+ bm_floor(itemData.c.v[1]) + ','
				+ bm_floor(itemData.c.v[2]) + ')';
		}
		if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {
			styleElem.coOp = itemData.o.v * groupTransform.opacity;
		}
	};

	CVShapeElement.prototype.renderGradientFill = function(styleData,itemData, groupTransform){
		var styleElem = itemData.style;
		if(!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {
			var ctx = this.globalData.canvasContext;
			var grd;
			var pt1 = itemData.s.v, pt2 = itemData.e.v;
			if (styleData.t === 1) {
				grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);
			} else {
				var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));
				var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);

				var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;
				var dist = rad * percent;
				var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];
				var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];
				var grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);
			}

			var i, len = styleData.g.p;
			var cValues = itemData.g.c;
			var opacity = 1;

			for (i = 0; i < len; i += 1){
				if(itemData.g._hasOpacity && itemData.g._collapsable) {
					opacity = itemData.g.o[i*2 + 1];
				}
				grd.addColorStop(cValues[i * 4] / 100,'rgba('+ cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ','+cValues[i * 4 + 3] + ',' + opacity + ')');
			}
			styleElem.grd = grd;
		}
		styleElem.coOp = itemData.o.v*groupTransform.opacity;

	};

	CVShapeElement.prototype.renderStroke = function(styleData,itemData, groupTransform){
		var styleElem = itemData.style;
		var d = itemData.d;
		if(d && (d._mdf  || this._isFirstFrame)){
			styleElem.da = d.dashArray;
			styleElem.do = d.dashoffset[0];
		}
		if(itemData.c._mdf || this._isFirstFrame){
			styleElem.co = 'rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')';
		}
		if(itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame){
			styleElem.coOp = itemData.o.v*groupTransform.opacity;
		}
		if(itemData.w._mdf || this._isFirstFrame){
			styleElem.wi = itemData.w.v;
		}
	};


	CVShapeElement.prototype.destroy = function(){
		this.shapesData = null;
		this.globalData = null;
		this.canvasContext = null;
		this.stylesList.length = 0;
		this.itemsData.length = 0;
	};


	function CVSolidElement(data, globalData, comp) {
		this.initElement(data,globalData,comp);
	}
	extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);

	CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;
	CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;

	CVSolidElement.prototype.renderInnerContent = function() {
		var ctx = this.canvasContext;
		ctx.fillStyle = this.data.sc;
		ctx.fillRect(0, 0, this.data.sw, this.data.sh);
		//
	};
	function CVTextElement(data, globalData, comp){
		this.textSpans = [];
		this.yOffset = 0;
		this.fillColorAnim = false;
		this.strokeColorAnim = false;
		this.strokeWidthAnim = false;
		this.stroke = false;
		this.fill = false;
		this.justifyOffset = 0;
		this.currentRender = null;
		this.renderType = 'canvas';
		this.values = {
			fill: 'rgba(0,0,0,0)',
			stroke: 'rgba(0,0,0,0)',
			sWidth: 0,
			fValue: ''
		};
		this.initElement(data,globalData,comp);
	}
	extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement], CVTextElement);

	CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');

	CVTextElement.prototype.buildNewText = function(){
		var documentData = this.textProperty.currentData;
		this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);

		var hasFill = false;
		if(documentData.fc) {
			hasFill = true;
			this.values.fill = this.buildColor(documentData.fc);
		}else{
			this.values.fill = 'rgba(0,0,0,0)';
		}
		this.fill = hasFill;
		var hasStroke = false;
		if(documentData.sc){
			hasStroke = true;
			this.values.stroke = this.buildColor(documentData.sc);
			this.values.sWidth = documentData.sw;
		}
		var fontData = this.globalData.fontManager.getFontByName(documentData.f);
		var i, len;
		var letters = documentData.l;
		var matrixHelper = this.mHelper;
		this.stroke = hasStroke;
		this.values.fValue = documentData.finalSize + 'px '+ this.globalData.fontManager.getFontByName(documentData.f).fFamily;
		len = documentData.finalText.length;
		//this.tHelper.font = this.values.fValue;
		var charData, shapeData, k, kLen, shapes, j, jLen, pathNodes, commands, pathArr, singleShape = this.data.singleShape;
		var trackingOffset = documentData.tr/1000*documentData.finalSize;
		var xPos = 0, yPos = 0, firstLine = true;
		var cnt = 0;
		for (i = 0; i < len; i += 1) {
			charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);
			shapeData = charData && charData.data || {};
			matrixHelper.reset();
			if(singleShape && letters[i].n) {
				xPos = -trackingOffset;
				yPos += documentData.yOffset;
				yPos += firstLine ? 1 : 0;
				firstLine = false;
			}

			shapes = shapeData.shapes ? shapeData.shapes[0].it : [];
			jLen = shapes.length;
			matrixHelper.scale(documentData.finalSize/100,documentData.finalSize/100);
			if(singleShape){
				this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);
			}
			commands = createSizedArray(jLen);
			for(j=0;j<jLen;j+=1){
				kLen = shapes[j].ks.k.i.length;
				pathNodes = shapes[j].ks.k;
				pathArr = [];
				for(k=1;k<kLen;k+=1){
					if(k==1){
						pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0],pathNodes.v[0][1],0),matrixHelper.applyToY(pathNodes.v[0][0],pathNodes.v[0][1],0));
					}
					pathArr.push(matrixHelper.applyToX(pathNodes.o[k-1][0],pathNodes.o[k-1][1],0),matrixHelper.applyToY(pathNodes.o[k-1][0],pathNodes.o[k-1][1],0),matrixHelper.applyToX(pathNodes.i[k][0],pathNodes.i[k][1],0),matrixHelper.applyToY(pathNodes.i[k][0],pathNodes.i[k][1],0),matrixHelper.applyToX(pathNodes.v[k][0],pathNodes.v[k][1],0),matrixHelper.applyToY(pathNodes.v[k][0],pathNodes.v[k][1],0));
				}
				pathArr.push(matrixHelper.applyToX(pathNodes.o[k-1][0],pathNodes.o[k-1][1],0),matrixHelper.applyToY(pathNodes.o[k-1][0],pathNodes.o[k-1][1],0),matrixHelper.applyToX(pathNodes.i[0][0],pathNodes.i[0][1],0),matrixHelper.applyToY(pathNodes.i[0][0],pathNodes.i[0][1],0),matrixHelper.applyToX(pathNodes.v[0][0],pathNodes.v[0][1],0),matrixHelper.applyToY(pathNodes.v[0][0],pathNodes.v[0][1],0));
				commands[j] = pathArr;
			}
			if(singleShape){
				xPos += letters[i].l;
				xPos += trackingOffset;
			}
			if(this.textSpans[cnt]){
				this.textSpans[cnt].elem = commands;
			} else {
				this.textSpans[cnt] = {elem: commands};
			}
			cnt +=1;
		}
	};

	CVTextElement.prototype.renderInnerContent = function(){
		var ctx = this.canvasContext;
		var finalMat = this.finalTransform.mat.props;
		ctx.font = this.values.fValue;
		ctx.lineCap = 'butt';
		ctx.lineJoin = 'miter';
		ctx.miterLimit = 4;

		if(!this.data.singleShape){
			this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);
		}

		var  i,len, j, jLen, k, kLen;
		var renderedLetters = this.textAnimator.renderedLetters;

		var letters = this.textProperty.currentData.l;

		len = letters.length;
		var renderedLetter;
		var lastFill = null, lastStroke = null, lastStrokeW = null, commands, pathArr;
		for(i=0;i<len;i+=1){
			if(letters[i].n){
				continue;
			}
			renderedLetter = renderedLetters[i];
			if(renderedLetter){
				this.globalData.renderer.save();
				this.globalData.renderer.ctxTransform(renderedLetter.p);
				this.globalData.renderer.ctxOpacity(renderedLetter.o);
			}
			if(this.fill){
				if(renderedLetter && renderedLetter.fc){
					if(lastFill !== renderedLetter.fc){
						lastFill = renderedLetter.fc;
						ctx.fillStyle = renderedLetter.fc;
					}
				}else if(lastFill !== this.values.fill){
					lastFill = this.values.fill;
					ctx.fillStyle = this.values.fill;
				}
				commands = this.textSpans[i].elem;
				jLen = commands.length;
				this.globalData.canvasContext.beginPath();
				for(j=0;j<jLen;j+=1) {
					pathArr = commands[j];
					kLen = pathArr.length;
					this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);
					for (k = 2; k < kLen; k += 6) {
						this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);
					}
				}
				this.globalData.canvasContext.closePath();
				this.globalData.canvasContext.fill();
				///ctx.fillText(this.textSpans[i].val,0,0);
			}
			if(this.stroke){
				if(renderedLetter && renderedLetter.sw){
					if(lastStrokeW !== renderedLetter.sw){
						lastStrokeW = renderedLetter.sw;
						ctx.lineWidth = renderedLetter.sw;
					}
				}else if(lastStrokeW !== this.values.sWidth){
					lastStrokeW = this.values.sWidth;
					ctx.lineWidth = this.values.sWidth;
				}
				if(renderedLetter && renderedLetter.sc){
					if(lastStroke !== renderedLetter.sc){
						lastStroke = renderedLetter.sc;
						ctx.strokeStyle = renderedLetter.sc;
					}
				}else if(lastStroke !== this.values.stroke){
					lastStroke = this.values.stroke;
					ctx.strokeStyle = this.values.stroke;
				}
				commands = this.textSpans[i].elem;
				jLen = commands.length;
				this.globalData.canvasContext.beginPath();
				for(j=0;j<jLen;j+=1) {
					pathArr = commands[j];
					kLen = pathArr.length;
					this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);
					for (k = 2; k < kLen; k += 6) {
						this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);
					}
				}
				this.globalData.canvasContext.closePath();
				this.globalData.canvasContext.stroke();
				///ctx.strokeText(letters[i].val,0,0);
			}
			if(renderedLetter) {
				this.globalData.renderer.restore();
			}
		}
	};
	function CVEffects() {

	}
	CVEffects.prototype.renderFrame = function(){};
	function HBaseElement(data,globalData,comp){}
	HBaseElement.prototype = {
		checkBlendMode: function(){},
		initRendererElement: function(){
			this.baseElement = createTag(this.data.tg || 'div');
			if(this.data.hasMask) {
				this.svgElement = createNS('svg');
				this.layerElement = createNS('g');
				this.maskedElement = this.layerElement;
				this.svgElement.appendChild(this.layerElement);
				this.baseElement.appendChild(this.svgElement);
			} else {
				this.layerElement = this.baseElement;
			}
			styleDiv(this.baseElement);
		},
		createContainerElements: function(){
			this.renderableEffectsManager = new CVEffects(this);
			this.transformedElement = this.baseElement;
			this.maskedElement = this.layerElement;
			if (this.data.ln) {
				this.layerElement.setAttribute('id',this.data.ln);
			}
			if (this.data.cl) {
				this.layerElement.setAttribute('class', this.data.cl);
			}
			if (this.data.bm !== 0) {
				this.setBlendMode();
			}
		},
		renderElement: function() {
			if(this.finalTransform._matMdf){
				this.transformedElement.style.transform = this.transformedElement.style.webkitTransform = this.finalTransform.mat.toCSS();
			}
			if(this.finalTransform._opMdf){
				this.transformedElement.style.opacity = this.finalTransform.mProp.o.v;
			}
		},
		renderFrame: function() {
			//If it is exported as hidden (data.hd === true) no need to render
			//If it is not visible no need to render
			if (this.data.hd || this.hidden) {
				return;
			}
			this.renderTransform();
			this.renderRenderable();
			this.renderElement();
			this.renderInnerContent();
			if (this._isFirstFrame) {
				this._isFirstFrame = false;
			}
		},
		destroy: function(){
			this.layerElement = null;
			this.transformedElement = null;
			if(this.matteElement) {
				this.matteElement = null;
			}
			if(this.maskManager) {
				this.maskManager.destroy();
				this.maskManager = null;
			}
		},
		createRenderableComponents: function(){
			this.maskManager = new MaskElement(this.data, this, this.globalData);
		},
		addEffects: function(){
		},
		setMatte: function(){}
	};
	HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;
	HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;
	HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;
	function HSolidElement(data,globalData,comp){
		this.initElement(data,globalData,comp);
	}
	extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], HSolidElement);

	HSolidElement.prototype.createContent = function(){
		var rect;
		if(this.data.hasMask){
			rect = createNS('rect');
			rect.setAttribute('width',this.data.sw);
			rect.setAttribute('height',this.data.sh);
			rect.setAttribute('fill',this.data.sc);
			this.svgElement.setAttribute('width',this.data.sw);
			this.svgElement.setAttribute('height',this.data.sh);
		} else {
			rect = createTag('div');
			rect.style.width = this.data.sw + 'px';
			rect.style.height = this.data.sh + 'px';
			rect.style.backgroundColor = this.data.sc;
		}
		this.layerElement.appendChild(rect);
	};

	function HCompElement(data,globalData,comp){
		this.layers = data.layers;
		this.supports3d = !data.hasMask;
		this.completeLayers = false;
		this.pendingElements = [];
		this.elements = this.layers ? createSizedArray(this.layers.length) : [];
		this.initElement(data,globalData,comp);
		this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate,this) : {_placeholder:true};
	}

	extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);
	HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;

	HCompElement.prototype.createContainerElements = function(){
		this._createBaseContainerElements();
		//divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';
		if(this.data.hasMask){
			this.svgElement.setAttribute('width',this.data.w);
			this.svgElement.setAttribute('height',this.data.h);
			this.transformedElement = this.baseElement;
		} else {
			this.transformedElement = this.layerElement;
		}
	};

	HCompElement.prototype.addTo3dContainer = function(elem,pos) {
		var j = 0;
		var nextElement;
		while(j<pos){
			if(this.elements[j] && this.elements[j].getBaseElement){
				nextElement = this.elements[j].getBaseElement();
			}
			j += 1;
		}
		if(nextElement){
			this.layerElement.insertBefore(elem, nextElement);
		} else {
			this.layerElement.appendChild(elem);
		}
	}

	function HShapeElement(data,globalData,comp){
		//List of drawable elements
		this.shapes = [];
		// Full shape data
		this.shapesData = data.shapes;
		//List of styles that will be applied to shapes
		this.stylesList = [];
		//List of modifiers that will be applied to shapes
		this.shapeModifiers = [];
		//List of items in shape tree
		this.itemsData = [];
		//List of items in previous shape tree
		this.processedElements = [];
		// List of animated components
		this.animatedContents = [];
		this.shapesContainer = createNS('g');
		this.initElement(data,globalData,comp);
		//Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.
		// List of elements that have been created
		this.prevViewData = [];
		this.currentBBox = {
			x:999999,
			y: -999999,
			h: 0,
			w: 0
		};
	}
	extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement], HShapeElement);
	HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;

	HShapeElement.prototype.createContent = function(){
		var cont;
		this.baseElement.style.fontSize = 0;
		if (this.data.hasMask) {
			this.layerElement.appendChild(this.shapesContainer);
			cont = this.svgElement;
		} else {
			cont = createNS('svg');
			var size = this.comp.data ? this.comp.data : this.globalData.compSize;
			cont.setAttribute('width',size.w);
			cont.setAttribute('height',size.h);
			cont.appendChild(this.shapesContainer);
			this.layerElement.appendChild(cont);
		}

		this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0, [], true);
		this.filterUniqueShapes();
		this.shapeCont = cont;
	};

	HShapeElement.prototype.getTransformedPoint = function(transformers, point) {
		var i, len = transformers.length;
		for(i = 0; i < len; i += 1) {
			point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);
		}
		return point;
	}

	HShapeElement.prototype.calculateShapeBoundingBox = function(item, boundingBox) {
		var shape = item.sh.v;
		var transformers = item.transformers;
		var i, len = shape._length, vPoint, oPoint, nextIPoint, nextVPoint, bounds;
		if (len <= 1) {
			return;
		}
		for (i = 0; i < len - 1; i += 1) {
			vPoint = this.getTransformedPoint(transformers, shape.v[i]);
			oPoint = this.getTransformedPoint(transformers, shape.o[i]);
			nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);
			nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);
			this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);
		}
		if(shape.c) {
			vPoint = this.getTransformedPoint(transformers, shape.v[i]);
			oPoint = this.getTransformedPoint(transformers, shape.o[i]);
			nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);
			nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);
			this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);
		}
	}

	HShapeElement.prototype.checkBounds = function(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {
		this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);
		var bounds = this.shapeBoundingBox;
		boundingBox.x = bm_min(bounds.left, boundingBox.x);
		boundingBox.xMax = bm_max(bounds.right, boundingBox.xMax);
		boundingBox.y = bm_min(bounds.top, boundingBox.y);
		boundingBox.yMax = bm_max(bounds.bottom, boundingBox.yMax);
	}

	HShapeElement.prototype.shapeBoundingBox = {
		left:0,
		right:0,
		top:0,
		bottom:0,
	}

	HShapeElement.prototype.tempBoundingBox = {
		x:0,
		xMax:0,
		y:0,
		yMax:0,
		width:0,
		height:0
	}

	HShapeElement.prototype.getBoundsOfCurve = function(p0, p1, p2, p3) {

		var bounds = [[p0[0],p3[0]], [p0[1],p3[1]]];

		for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {

			b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];
			a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];
			c = 3 * p1[i] - 3 * p0[i];

			b = b | 0;
			a = a | 0;
			c = c | 0;

			if (a === 0) {

				if (b === 0) {
					continue;
				}

				t = -c / b;

				if (0 < t && t < 1) {
					bounds[i].push(this.calculateF(t,p0,p1,p2,p3,i));
				}
				continue;
			}

			b2ac = b * b - 4 * c * a;

			if (b2ac < 0) {
				continue;
			}

			t1 = (-b + bm_sqrt(b2ac))/(2 * a);
			if (0 < t1 && t1 < 1) bounds[i].push(this.calculateF(t1,p0,p1,p2,p3,i));

			t2 = (-b - bm_sqrt(b2ac))/(2 * a);
			if (0 < t2 && t2 < 1) bounds[i].push(this.calculateF(t2,p0,p1,p2,p3,i));

		}

		this.shapeBoundingBox.left = bm_min.apply(null, bounds[0]);
		this.shapeBoundingBox.top = bm_min.apply(null, bounds[1]);
		this.shapeBoundingBox.right = bm_max.apply(null, bounds[0]);
		this.shapeBoundingBox.bottom = bm_max.apply(null, bounds[1]);
	};

	HShapeElement.prototype.calculateF = function(t, p0, p1, p2, p3, i) {
		return bm_pow(1-t, 3) * p0[i]
			+ 3 * bm_pow(1-t, 2) * t * p1[i]
			+ 3 * (1-t) * bm_pow(t, 2) * p2[i]
			+ bm_pow(t, 3) * p3[i];
	}

	HShapeElement.prototype.calculateBoundingBox = function(itemsData, boundingBox) {
		var i, len = itemsData.length, path;
		for(i = 0; i < len; i += 1) {
			if(itemsData[i] && itemsData[i].sh) {
				this.calculateShapeBoundingBox(itemsData[i], boundingBox)
			} else if(itemsData[i] && itemsData[i].it) {
				this.calculateBoundingBox(itemsData[i].it, boundingBox)
			}
		}
	}

	HShapeElement.prototype.currentBoxContains = function(box) {
		return this.currentBBox.x <= box.x
			&& this.currentBBox.y <= box.y
			&& this.currentBBox.width + this.currentBBox.x >= box.x + box.width
			&& this.currentBBox.height + this.currentBBox.y >= box.y + box.height
	}

	HShapeElement.prototype.renderInnerContent = function() {
		this._renderShapeFrame();

		if(!this.hidden && (this._isFirstFrame || this._mdf)) {
			var tempBoundingBox = this.tempBoundingBox;
			var max = 999999;
			tempBoundingBox.x = max;
			tempBoundingBox.xMax = -max;
			tempBoundingBox.y = max;
			tempBoundingBox.yMax = -max;
			this.calculateBoundingBox(this.itemsData, tempBoundingBox);
			tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;
			tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;
			//var tempBoundingBox = this.shapeCont.getBBox();
			if(this.currentBoxContains(tempBoundingBox)) {
				return;
			}
			var changed = false;
			if(this.currentBBox.w !== tempBoundingBox.width){
				this.currentBBox.w = tempBoundingBox.width;
				this.shapeCont.setAttribute('width',tempBoundingBox.width);
				changed = true;
			}
			if(this.currentBBox.h !== tempBoundingBox.height){
				this.currentBBox.h = tempBoundingBox.height;
				this.shapeCont.setAttribute('height',tempBoundingBox.height);
				changed = true;
			}
			if(changed  || this.currentBBox.x !== tempBoundingBox.x  || this.currentBBox.y !== tempBoundingBox.y){
				this.currentBBox.w = tempBoundingBox.width;
				this.currentBBox.h = tempBoundingBox.height;
				this.currentBBox.x = tempBoundingBox.x;
				this.currentBBox.y = tempBoundingBox.y;

				this.shapeCont.setAttribute('viewBox',this.currentBBox.x+' '+this.currentBBox.y+' '+this.currentBBox.w+' '+this.currentBBox.h);
				this.shapeCont.style.transform = this.shapeCont.style.webkitTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';
			}
		}

	};
	function HTextElement(data,globalData,comp){
		this.textSpans = [];
		this.textPaths = [];
		this.currentBBox = {
			x:999999,
			y: -999999,
			h: 0,
			w: 0
		};
		this.renderType = 'svg';
		this.isMasked = false;
		this.initElement(data,globalData,comp);

	}
	extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement], HTextElement);

	HTextElement.prototype.createContent = function(){
		this.isMasked = this.checkMasks();
		if(this.isMasked){
			this.renderType = 'svg';
			this.compW = this.comp.data.w;
			this.compH = this.comp.data.h;
			this.svgElement.setAttribute('width',this.compW);
			this.svgElement.setAttribute('height',this.compH);
			var g = createNS('g');
			this.maskedElement.appendChild(g);
			this.innerElem = g;
		} else {
			this.renderType = 'html';
			this.innerElem = this.layerElement;
		}

		this.checkParenting();

	};

	HTextElement.prototype.buildNewText = function(){
		var documentData = this.textProperty.currentData;
		this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);
		var innerElemStyle = this.innerElem.style;
		innerElemStyle.color = innerElemStyle.fill = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';
		if(documentData.sc){
			innerElemStyle.stroke = this.buildColor(documentData.sc);
			innerElemStyle.strokeWidth = documentData.sw+'px';
		}
		var fontData = this.globalData.fontManager.getFontByName(documentData.f);
		if(!this.globalData.fontManager.chars){
			innerElemStyle.fontSize = documentData.finalSize+'px';
			innerElemStyle.lineHeight = documentData.finalSize+'px';
			if(fontData.fClass){
				this.innerElem.className = fontData.fClass;
			} else {
				innerElemStyle.fontFamily = fontData.fFamily;
				var fWeight = documentData.fWeight, fStyle = documentData.fStyle;
				innerElemStyle.fontStyle = fStyle;
				innerElemStyle.fontWeight = fWeight;
			}
		}
		var i, len;

		var letters = documentData.l;
		len = letters.length;
		var tSpan,tParent,tCont;
		var matrixHelper = this.mHelper;
		var shapes, shapeStr = '';
		var cnt = 0;
		for (i = 0;i < len ;i += 1) {
			if(this.globalData.fontManager.chars){
				if(!this.textPaths[cnt]){
					tSpan = createNS('path');
					tSpan.setAttribute('stroke-linecap', 'butt');
					tSpan.setAttribute('stroke-linejoin','round');
					tSpan.setAttribute('stroke-miterlimit','4');
				} else {
					tSpan = this.textPaths[cnt];
				}
				if(!this.isMasked){
					if(this.textSpans[cnt]){
						tParent = this.textSpans[cnt];
						tCont = tParent.children[0];
					} else {

						tParent = createTag('div');
						tParent.style.lineHeight = 0;
						tCont = createNS('svg');
						tCont.appendChild(tSpan);
						styleDiv(tParent);
					}
				}
			}else{
				if(!this.isMasked){
					if(this.textSpans[cnt]){
						tParent = this.textSpans[cnt];
						tSpan = this.textPaths[cnt];
					} else {
						tParent = createTag('span');
						styleDiv(tParent);
						tSpan = createTag('span');
						styleDiv(tSpan);
						tParent.appendChild(tSpan);
					}
				} else {
					tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');
				}
			}
			//tSpan.setAttribute('visibility', 'hidden');
			if(this.globalData.fontManager.chars){
				var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);
				var shapeData;
				if(charData){
					shapeData = charData.data;
				} else {
					shapeData = null;
				}
				matrixHelper.reset();
				if(shapeData && shapeData.shapes){
					shapes = shapeData.shapes[0].it;
					matrixHelper.scale(documentData.finalSize/100,documentData.finalSize/100);
					shapeStr = this.createPathShape(matrixHelper,shapes);
					tSpan.setAttribute('d',shapeStr);
				}
				if(!this.isMasked){
					this.innerElem.appendChild(tParent);
					if(shapeData && shapeData.shapes){

						//document.body.appendChild is needed to get exact measure of shape
						document.body.appendChild(tCont);
						var boundingBox = tCont.getBBox();
						tCont.setAttribute('width',boundingBox.width + 2);
						tCont.setAttribute('height',boundingBox.height + 2);
						tCont.setAttribute('viewBox',(boundingBox.x-1)+' '+ (boundingBox.y-1)+' '+ (boundingBox.width+2)+' '+ (boundingBox.height+2));
						tCont.style.transform = tCont.style.webkitTransform = 'translate(' + (boundingBox.x-1) + 'px,' + (boundingBox.y-1) + 'px)';

						letters[i].yOffset = boundingBox.y-1;

					} else{
						tCont.setAttribute('width',1);
						tCont.setAttribute('height',1);
					}
					tParent.appendChild(tCont);
				}else{
					this.innerElem.appendChild(tSpan);
				}
			}else{
				tSpan.textContent = letters[i].val;
				tSpan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space","preserve");
				if(!this.isMasked){
					this.innerElem.appendChild(tParent);
					//
					tSpan.style.transform = tSpan.style.webkitTransform = 'translate3d(0,'+ -documentData.finalSize/1.2+'px,0)';
				} else {
					this.innerElem.appendChild(tSpan);
				}
			}
			//
			if(!this.isMasked){
				this.textSpans[cnt] = tParent;
			}else{
				this.textSpans[cnt] = tSpan;
			}
			this.textSpans[cnt].style.display = 'block';
			this.textPaths[cnt] = tSpan;
			cnt += 1;
		}
		while(cnt < this.textSpans.length){
			this.textSpans[cnt].style.display = 'none';
			cnt += 1;
		}
	};

	HTextElement.prototype.renderInnerContent = function() {

		if(this.data.singleShape){
			if(!this._isFirstFrame && !this.lettersChangedFlag){
				return;
			} else {
				// Todo Benchmark if using this is better than getBBox
				if(this.isMasked && this.finalTransform._matMdf){
					this.svgElement.setAttribute('viewBox',-this.finalTransform.mProp.p.v[0]+' '+ -this.finalTransform.mProp.p.v[1]+' '+this.compW+' '+this.compH);
					this.svgElement.style.transform = this.svgElement.style.webkitTransform = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';
				}
			}
		}

		this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);
		if(!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag){
			return;
		}
		var  i,len, count = 0;
		var renderedLetters = this.textAnimator.renderedLetters;

		var letters = this.textProperty.currentData.l;

		len = letters.length;
		var renderedLetter, textSpan, textPath;
		for(i=0;i<len;i+=1){
			if(letters[i].n){
				count += 1;
				continue;
			}
			textSpan = this.textSpans[i];
			textPath = this.textPaths[i];
			renderedLetter = renderedLetters[count];
			count += 1;
			if(renderedLetter._mdf.m) {
				if(!this.isMasked){
					textSpan.style.transform = textSpan.style.webkitTransform = renderedLetter.m;
				}else{
					textSpan.setAttribute('transform',renderedLetter.m);
				}
			}
			////textSpan.setAttribute('opacity',renderedLetter.o);
			textSpan.style.opacity = renderedLetter.o;
			if(renderedLetter.sw && renderedLetter._mdf.sw){
				textPath.setAttribute('stroke-width',renderedLetter.sw);
			}
			if(renderedLetter.sc && renderedLetter._mdf.sc){
				textPath.setAttribute('stroke',renderedLetter.sc);
			}
			if(renderedLetter.fc && renderedLetter._mdf.fc){
				textPath.setAttribute('fill',renderedLetter.fc);
				textPath.style.color = renderedLetter.fc;
			}
		}

		if(this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)){
			var boundingBox = this.innerElem.getBBox();

			if(this.currentBBox.w !== boundingBox.width){
				this.currentBBox.w = boundingBox.width;
				this.svgElement.setAttribute('width',boundingBox.width);
			}
			if(this.currentBBox.h !== boundingBox.height){
				this.currentBBox.h = boundingBox.height;
				this.svgElement.setAttribute('height',boundingBox.height);
			}

			var margin = 1;
			if(this.currentBBox.w !== (boundingBox.width + margin*2) || this.currentBBox.h !== (boundingBox.height + margin*2)  || this.currentBBox.x !== (boundingBox.x - margin)  || this.currentBBox.y !== (boundingBox.y - margin)){
				this.currentBBox.w = boundingBox.width + margin*2;
				this.currentBBox.h = boundingBox.height + margin*2;
				this.currentBBox.x = boundingBox.x - margin;
				this.currentBBox.y = boundingBox.y - margin;

				this.svgElement.setAttribute('viewBox',this.currentBBox.x+' '+this.currentBBox.y+' '+this.currentBBox.w+' '+this.currentBBox.h);
				this.svgElement.style.transform = this.svgElement.style.webkitTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';
			}
		}
	};
	function HImageElement(data,globalData,comp){
		this.assetData = globalData.getAssetData(data.refId);
		this.initElement(data,globalData,comp);
	}

	extendPrototype([BaseElement,TransformElement,HBaseElement,HSolidElement,HierarchyElement,FrameElement,RenderableElement], HImageElement);


	HImageElement.prototype.createContent = function(){
		var assetPath = this.globalData.getAssetsPath(this.assetData);
		var img = new Image();

		if(this.data.hasMask){
			this.imageElem = createNS('image');
			this.imageElem.setAttribute('width',this.assetData.w+"px");
			this.imageElem.setAttribute('height',this.assetData.h+"px");
			this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);
			this.layerElement.appendChild(this.imageElem);
			this.baseElement.setAttribute('width',this.assetData.w);
			this.baseElement.setAttribute('height',this.assetData.h);
		} else {
			this.layerElement.appendChild(img);
		}
		img.src = assetPath;
		if(this.data.ln){
			this.baseElement.setAttribute('id',this.data.ln);
		}
	};
	function HCameraElement(data,globalData,comp){
		this.initFrame();
		this.initBaseData(data,globalData,comp);
		this.initHierarchy();
		var getProp = PropertyFactory.getProp;
		this.pe = getProp(this,data.pe,0,0,this);
		if(data.ks.p.s){
			this.px = getProp(this,data.ks.p.x,1,0,this);
			this.py = getProp(this,data.ks.p.y,1,0,this);
			this.pz = getProp(this,data.ks.p.z,1,0,this);
		}else{
			this.p = getProp(this,data.ks.p,1,0,this);
		}
		if(data.ks.a){
			this.a = getProp(this,data.ks.a,1,0,this);
		}
		if(data.ks.or.k.length && data.ks.or.k[0].to){
			var i,len = data.ks.or.k.length;
			for(i=0;i<len;i+=1){
				data.ks.or.k[i].to = null;
				data.ks.or.k[i].ti = null;
			}
		}
		this.or = getProp(this,data.ks.or,1,degToRads,this);
		this.or.sh = true;
		this.rx = getProp(this,data.ks.rx,0,degToRads,this);
		this.ry = getProp(this,data.ks.ry,0,degToRads,this);
		this.rz = getProp(this,data.ks.rz,0,degToRads,this);
		this.mat = new Matrix();
		this._prevMat = new Matrix();
		this._isFirstFrame = true;

		// TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.
		this.finalTransform = {
			mProp: this
		};
	}
	extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);

	HCameraElement.prototype.setup = function() {
		var i, len = this.comp.threeDElements.length, comp;
		for(i=0;i<len;i+=1){
			//[perspectiveElem,container]
			comp = this.comp.threeDElements[i];
			if(comp.type === '3d') {
				comp.perspectiveElem.style.perspective = comp.perspectiveElem.style.webkitPerspective = this.pe.v+'px';
				comp.container.style.transformOrigin = comp.container.style.mozTransformOrigin = comp.container.style.webkitTransformOrigin = "0px 0px 0px";
				comp.perspectiveElem.style.transform = comp.perspectiveElem.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';
			}
		}
	};

	HCameraElement.prototype.createElements = function(){
	};

	HCameraElement.prototype.hide = function(){
	};

	HCameraElement.prototype.renderFrame = function(){
		var _mdf = this._isFirstFrame;
		var i, len;
		if(this.hierarchy){
			len = this.hierarchy.length;
			for(i=0;i<len;i+=1){
				_mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;
			}
		}
		if(_mdf || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf)) {
			this.mat.reset();

			if(this.hierarchy){
				var mat;
				len = this.hierarchy.length - 1;
				for (i = len; i >= 0; i -= 1) {
					var mTransf = this.hierarchy[i].finalTransform.mProp;
					this.mat.translate(-mTransf.p.v[0],-mTransf.p.v[1],mTransf.p.v[2]);
					this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);
					this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);
					this.mat.scale(1/mTransf.s.v[0],1/mTransf.s.v[1],1/mTransf.s.v[2]);
					this.mat.translate(mTransf.a.v[0],mTransf.a.v[1],mTransf.a.v[2]);
				}
			}
			if (this.p) {
				this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]);
			} else {
				this.mat.translate(-this.px.v,-this.py.v,this.pz.v);
			}
			if (this.a) {
				var diffVector
				if (this.p) {
					diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];
				} else {
					diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];
				}
				var mag = Math.sqrt(Math.pow(diffVector[0],2)+Math.pow(diffVector[1],2)+Math.pow(diffVector[2],2));
				//var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));
				var lookDir = [diffVector[0]/mag,diffVector[1]/mag,diffVector[2]/mag];
				var lookLengthOnXZ = Math.sqrt( lookDir[2]*lookDir[2] + lookDir[0]*lookDir[0] );
				var m_rotationX = (Math.atan2( lookDir[1], lookLengthOnXZ ));
				var m_rotationY = (Math.atan2( lookDir[0], -lookDir[2]));
				this.mat.rotateY(m_rotationY).rotateX(-m_rotationX);

			}
			this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);
			this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);
			this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0);
			this.mat.translate(0,0,this.pe.v);




			var hasMatrixChanged = !this._prevMat.equals(this.mat);
			if((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {
				len = this.comp.threeDElements.length;
				var comp;
				for(i=0;i<len;i+=1){
					comp = this.comp.threeDElements[i];
					if(comp.type === '3d') {
						if(hasMatrixChanged) {
							comp.container.style.transform = comp.container.style.webkitTransform = this.mat.toCSS();
						}
						if(this.pe._mdf) {
							comp.perspectiveElem.style.perspective = comp.perspectiveElem.style.webkitPerspective = this.pe.v+'px';
						}
					}
				}
				this.mat.clone(this._prevMat);
			}
		}
		this._isFirstFrame = false;
	};

	HCameraElement.prototype.prepareFrame = function(num) {
		this.prepareProperties(num, true);
	};

	HCameraElement.prototype.destroy = function(){
	};
	HCameraElement.prototype.getBaseElement = function(){return null;};
	function HEffects() {
	}
	HEffects.prototype.renderFrame = function(){};
	var animationManager = (function(){
		var moduleOb = {};
		var registeredAnimations = [];
		var initTime = 0;
		var len = 0;
		var playingAnimationsNum = 0;
		var _stopped = true;
		var _isFrozen = false;

		function removeElement(ev){
			var i = 0;
			var animItem = ev.target;
			while(i<len) {
				if (registeredAnimations[i].animation === animItem) {
					registeredAnimations.splice(i, 1);
					i -= 1;
					len -= 1;
					if(!animItem.isPaused){
						subtractPlayingCount();
					}
				}
				i += 1;
			}
		}

		function registerAnimation(element, animationData){
			if(!element){
				return null;
			}
			var i=0;
			while(i<len){
				if(registeredAnimations[i].elem == element && registeredAnimations[i].elem !== null ){
					return registeredAnimations[i].animation;
				}
				i+=1;
			}
			var animItem = new AnimationItem();
			setupAnimation(animItem, element);
			animItem.setData(element, animationData);
			return animItem;
		}

		function getRegisteredAnimations() {
			var i, len = registeredAnimations.length;
			var animations = [];
			for(i = 0; i < len; i += 1) {
				animations.push(registeredAnimations[i].animation);
			}
			return animations;
		}

		function addPlayingCount(){
			playingAnimationsNum += 1;
			activate();
		}

		function subtractPlayingCount(){
			playingAnimationsNum -= 1;
		}

		function setupAnimation(animItem, element){
			animItem.addEventListener('destroy',removeElement);
			animItem.addEventListener('_active',addPlayingCount);
			animItem.addEventListener('_idle',subtractPlayingCount);
			registeredAnimations.push({elem: element,animation:animItem});
			len += 1;
		}

		function loadAnimation(params){
			var animItem = new AnimationItem();
			setupAnimation(animItem, null);
			animItem.setParams(params);
			return animItem;
		}


		function setSpeed(val,animation){
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.setSpeed(val, animation);
			}
		}

		function setDirection(val, animation){
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.setDirection(val, animation);
			}
		}

		function play(animation){
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.play(animation);
			}
		}
		function resume(nowTime) {
			var elapsedTime = nowTime - initTime;
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.advanceTime(elapsedTime);
			}
			initTime = nowTime;
			if(playingAnimationsNum && !_isFrozen) {
				window.requestAnimationFrame(resume);
			} else {
				_stopped = true;
			}
		}

		function first(nowTime){
			initTime = nowTime;
			window.requestAnimationFrame(resume);
		}

		function pause(animation) {
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.pause(animation);
			}
		}

		function goToAndStop(value,isFrame,animation) {
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.goToAndStop(value,isFrame,animation);
			}
		}

		function stop(animation) {
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.stop(animation);
			}
		}

		function togglePause(animation) {
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.togglePause(animation);
			}
		}

		function destroy(animation) {
			var i;
			for(i=(len-1);i>=0;i-=1){
				registeredAnimations[i].animation.destroy(animation);
			}
		}

		function searchAnimations(animationData, standalone, renderer){
			var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),
				[].slice.call(document.getElementsByClassName('bodymovin')));
			var i, len = animElements.length;
			for(i=0;i<len;i+=1){
				if(renderer){
					animElements[i].setAttribute('data-bm-type',renderer);
				}
				registerAnimation(animElements[i], animationData);
			}
			if(standalone && len === 0){
				if(!renderer){
					renderer = 'svg';
				}
				var body = document.getElementsByTagName('body')[0];
				body.innerHTML = '';
				var div = createTag('div');
				div.style.width = '100%';
				div.style.height = '100%';
				div.setAttribute('data-bm-type',renderer);
				body.appendChild(div);
				registerAnimation(div, animationData);
			}
		}

		function resize(){
			var i;
			for(i=0;i<len;i+=1){
				registeredAnimations[i].animation.resize();
			}
		}

		function activate(){
			if(!_isFrozen && playingAnimationsNum){
				if(_stopped) {
					window.requestAnimationFrame(first);
					_stopped = false;
				}
			}
		}

		function freeze() {
			_isFrozen = true;
		}

		function unfreeze() {
			_isFrozen = false;
			activate();
		}

		moduleOb.registerAnimation = registerAnimation;
		moduleOb.loadAnimation = loadAnimation;
		moduleOb.setSpeed = setSpeed;
		moduleOb.setDirection = setDirection;
		moduleOb.play = play;
		moduleOb.pause = pause;
		moduleOb.stop = stop;
		moduleOb.togglePause = togglePause;
		moduleOb.searchAnimations = searchAnimations;
		moduleOb.resize = resize;
		//moduleOb.start = start;
		moduleOb.goToAndStop = goToAndStop;
		moduleOb.destroy = destroy;
		moduleOb.freeze = freeze;
		moduleOb.unfreeze = unfreeze;
		moduleOb.getRegisteredAnimations = getRegisteredAnimations;
		return moduleOb;
	}());

	var AnimationItem = function () {
		this._cbs = [];
		this.name = '';
		this.path = '';
		this.isLoaded = false;
		this.currentFrame = 0;
		this.currentRawFrame = 0;
		this.firstFrame = 0;
		this.totalFrames = 0;
		this.frameRate = 0;
		this.frameMult = 0;
		this.playSpeed = 1;
		this.playDirection = 1;
		this.playCount = 0;
		this.animationData = {};
		this.assets = [];
		this.isPaused = true;
		this.autoplay = false;
		this.loop = true;
		this.renderer = null;
		this.animationID = createElementID();
		this.assetsPath = '';
		this.timeCompleted = 0;
		this.segmentPos = 0;
		this.subframeEnabled = subframeEnabled;
		this.segments = [];
		this._idle = true;
		this._completedLoop = false;
		this.projectInterface = ProjectInterface();
		this.imagePreloader = new ImagePreloader();
	};

	extendPrototype([BaseEvent], AnimationItem);

	AnimationItem.prototype.setParams = function(params) {
		if(params.context){
			this.context = params.context;
		}
		if(params.wrapper || params.container){
			this.wrapper = params.wrapper || params.container;
		}
		var animType = params.animType ? params.animType : params.renderer ? params.renderer : 'svg';
		switch(animType){
			case 'canvas':
				this.renderer = new CanvasRenderer(this, params.rendererSettings);
				break;
			case 'svg':
				this.renderer = new SVGRenderer(this, params.rendererSettings);
				break;
			default:
				this.renderer = new HybridRenderer(this, params.rendererSettings);
				break;
		}
		this.renderer.setProjectInterface(this.projectInterface);
		this.animType = animType;

		if(params.loop === '' || params.loop === null){
		}else if(params.loop === false){
			this.loop = false;
		}else if(params.loop === true){
			this.loop = true;
		}else{
			this.loop = parseInt(params.loop);
		}
		this.autoplay = 'autoplay' in params ? params.autoplay : true;
		this.name = params.name ? params.name :  '';
		this.autoloadSegments = params.hasOwnProperty('autoloadSegments') ? params.autoloadSegments :  true;
		this.assetsPath = params.assetsPath;
		this.initialSegment = params.initialSegment;
		if (params.animationData) {
			this.configAnimation(params.animationData);
		} else if(params.path){

			if( params.path.lastIndexOf('\\') !== -1){
				this.path = params.path.substr(0,params.path.lastIndexOf('\\')+1);
			} else {
				this.path = params.path.substr(0,params.path.lastIndexOf('/')+1);
			}
			this.fileName = params.path.substr(params.path.lastIndexOf('/')+1);
			this.fileName = this.fileName.substr(0,this.fileName.lastIndexOf('.json'));

			assetLoader.load(params.path, this.configAnimation.bind(this), function() {
				this.trigger('data_failed');
			}.bind(this));
		}

	};

	AnimationItem.prototype.setData = function (wrapper, animationData) {
		var params = {
			wrapper: wrapper,
			animationData: animationData ? (typeof animationData  === "object") ? animationData : JSON.parse(animationData) : null
		};
		var wrapperAttributes = wrapper.attributes;

		params.path = wrapperAttributes.getNamedItem('data-animation-path') ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') ? wrapperAttributes.getNamedItem('data-bm-path').value :  wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';
		params.animType = wrapperAttributes.getNamedItem('data-anim-type') ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') ? wrapperAttributes.getNamedItem('bm-type').value :  wrapperAttributes.getNamedItem('data-bm-renderer') ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';

		var loop = wrapperAttributes.getNamedItem('data-anim-loop') ? wrapperAttributes.getNamedItem('data-anim-loop').value :  wrapperAttributes.getNamedItem('data-bm-loop') ? wrapperAttributes.getNamedItem('data-bm-loop').value :  wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';
		if(loop === ''){
		}else if(loop === 'false'){
			params.loop = false;
		}else if(loop === 'true'){
			params.loop = true;
		}else{
			params.loop = parseInt(loop);
		}
		var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') ? wrapperAttributes.getNamedItem('data-anim-autoplay').value :  wrapperAttributes.getNamedItem('data-bm-autoplay') ? wrapperAttributes.getNamedItem('data-bm-autoplay').value :  wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;
		params.autoplay = autoplay !== "false";

		params.name = wrapperAttributes.getNamedItem('data-name') ? wrapperAttributes.getNamedItem('data-name').value :  wrapperAttributes.getNamedItem('data-bm-name') ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value :  '';
		var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') ? wrapperAttributes.getNamedItem('data-anim-prerender').value :  wrapperAttributes.getNamedItem('data-bm-prerender') ? wrapperAttributes.getNamedItem('data-bm-prerender').value :  wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';

		if(prerender === 'false'){
			params.prerender = false;
		}
		this.setParams(params);
	};

	AnimationItem.prototype.includeLayers = function(data) {
		if(data.op > this.animationData.op){
			this.animationData.op = data.op;
			this.totalFrames = Math.floor(data.op - this.animationData.ip);
		}
		var layers = this.animationData.layers;
		var i, len = layers.length;
		var newLayers = data.layers;
		var j, jLen = newLayers.length;
		for(j=0;j<jLen;j+=1){
			i = 0;
			while(i<len){
				if(layers[i].id == newLayers[j].id){
					layers[i] = newLayers[j];
					break;
				}
				i += 1;
			}
		}
		if(data.chars || data.fonts){
			this.renderer.globalData.fontManager.addChars(data.chars);
			this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);
		}
		if(data.assets){
			len = data.assets.length;
			for(i = 0; i < len; i += 1){
				this.animationData.assets.push(data.assets[i]);
			}
		}
		this.animationData.__complete = false;
		dataManager.completeData(this.animationData,this.renderer.globalData.fontManager);
		this.renderer.includeLayers(data.layers);
		if(expressionsPlugin){
			expressionsPlugin.initExpressions(this);
		}
		this.loadNextSegment();
	};

	AnimationItem.prototype.loadNextSegment = function() {
		var segments = this.animationData.segments;
		if(!segments || segments.length === 0 || !this.autoloadSegments){
			this.trigger('data_ready');
			this.timeCompleted = this.totalFrames;
			return;
		}
		var segment = segments.shift();
		this.timeCompleted = segment.time * this.frameRate;
		var segmentPath = this.path+this.fileName+'_' + this.segmentPos + '.json';
		this.segmentPos += 1;
		assetLoader.load(segmentPath, this.includeLayers.bind(this), function() {
			this.trigger('data_failed');
		}.bind(this));
	};

	AnimationItem.prototype.loadSegments = function() {
		var segments = this.animationData.segments;
		if(!segments) {
			this.timeCompleted = this.totalFrames;
		}
		this.loadNextSegment();
	};

	AnimationItem.prototype.imagesLoaded = function() {
		this.trigger('loaded_images');
		this.checkLoaded()
	}

	AnimationItem.prototype.preloadImages = function() {
		this.imagePreloader.setAssetsPath(this.assetsPath);
		this.imagePreloader.setPath(this.path);
		this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));
	}

	AnimationItem.prototype.configAnimation = function (animData) {
		if(!this.renderer){
			return;
		}
		try {
			this.animationData = animData;

			if (this.initialSegment) {
				this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);
				this.firstFrame = Math.round(this.initialSegment[0]);
			} else {
				this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);
				this.firstFrame = Math.round(this.animationData.ip);
			}
			this.renderer.configAnimation(animData);
			if(!animData.assets){
				animData.assets = [];
			}

			this.assets = this.animationData.assets;
			this.frameRate = this.animationData.fr;
			this.frameMult = this.animationData.fr / 1000;
			this.renderer.searchExtraCompositions(animData.assets);
			this.trigger('config_ready');
			this.preloadImages();
			this.loadSegments();
			this.updaFrameModifier();
			this.waitForFontsLoaded();
		} catch(error) {
			this.triggerConfigError(error);
		}
	};

	AnimationItem.prototype.waitForFontsLoaded = function(){
		if(!this.renderer) {
			return;
		}
		if(this.renderer.globalData.fontManager.loaded()){
			this.checkLoaded();
		}else{
			setTimeout(this.waitForFontsLoaded.bind(this),20);
		}
	}

	AnimationItem.prototype.checkLoaded = function () {
		if (!this.isLoaded && this.renderer.globalData.fontManager.loaded() && (this.imagePreloader.loaded() || this.renderer.rendererType !== 'canvas')) {
			this.isLoaded = true;
			dataManager.completeData(this.animationData, this.renderer.globalData.fontManager);
			if(expressionsPlugin){
				expressionsPlugin.initExpressions(this);
			}
			this.renderer.initItems();
			setTimeout(function() {
				this.trigger('DOMLoaded');
			}.bind(this), 0);
			this.gotoFrame();
			if(this.autoplay){
				this.play();
			}
		}
	};

	AnimationItem.prototype.resize = function () {
		this.renderer.updateContainerSize();
	};

	AnimationItem.prototype.setSubframe = function(flag){
		this.subframeEnabled = flag ? true : false;
	};

	AnimationItem.prototype.gotoFrame = function () {
		this.currentFrame = this.subframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame;

		if(this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted){
			this.currentFrame = this.timeCompleted;
		}
		this.trigger('enterFrame');
		this.renderFrame();
	};

	AnimationItem.prototype.renderFrame = function () {
		if(this.isLoaded === false){
			return;
		}
		try {
			this.renderer.renderFrame(this.currentFrame + this.firstFrame);
		} catch(error) {
			this.triggerRenderFrameError(error);
		}
	};

	AnimationItem.prototype.play = function (name) {
		if(name && this.name != name){
			return;
		}
		if(this.isPaused === true){
			this.isPaused = false;
			if(this._idle){
				this._idle = false;
				this.trigger('_active');
			}
		}
	};

	AnimationItem.prototype.pause = function (name) {
		if(name && this.name != name){
			return;
		}
		if(this.isPaused === false){
			this.isPaused = true;
			this._idle = true;
			this.trigger('_idle');
		}
	};

	AnimationItem.prototype.togglePause = function (name) {
		if(name && this.name != name){
			return;
		}
		if(this.isPaused === true){
			this.play();
		}else{
			this.pause();
		}
	};

	AnimationItem.prototype.stop = function (name) {
		if(name && this.name != name){
			return;
		}
		this.pause();
		this.playCount = 0;
		this._completedLoop = false;
		this.setCurrentRawFrameValue(0);
	};

	AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {
		if(name && this.name != name){
			return;
		}
		if(isFrame){
			this.setCurrentRawFrameValue(value);
		}else{
			this.setCurrentRawFrameValue(value * this.frameModifier);
		}
		this.pause();
	};

	AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {
		this.goToAndStop(value, isFrame, name);
		this.play();
	};

	AnimationItem.prototype.advanceTime = function (value) {
		if (this.isPaused === true || this.isLoaded === false) {
			return;
		}
		var nextValue = this.currentRawFrame + value * this.frameModifier;
		var _isComplete = false;
		// Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.
		// If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.
		if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {
			if (!this.loop || this.playCount === this.loop) {
				if (!this.checkSegments(nextValue >  this.totalFrames ? nextValue % this.totalFrames : 0)) {
					_isComplete = true;
					nextValue = this.totalFrames - 1;
				}
			} else if (nextValue >= this.totalFrames) {
				this.playCount += 1;
				if (!this.checkSegments(nextValue % this.totalFrames)) {
					this.setCurrentRawFrameValue(nextValue % this.totalFrames);
					this._completedLoop = true;
					this.trigger('loopComplete');
				}
			} else {
				this.setCurrentRawFrameValue(nextValue);
			}
		} else if(nextValue < 0) {
			if (!this.checkSegments(nextValue % this.totalFrames)) {
				if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {
					this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));
					if(!this._completedLoop) {
						this._completedLoop = true;
					} else {
						this.trigger('loopComplete');
					}
				} else {
					_isComplete = true;
					nextValue = 0;
				}
			}
		} else {
			this.setCurrentRawFrameValue(nextValue);
		}
		if (_isComplete) {
			this.setCurrentRawFrameValue(nextValue);
			this.pause();
			this.trigger('complete');
		}
	};

	AnimationItem.prototype.adjustSegment = function(arr, offset){
		this.playCount = 0;
		if(arr[1] < arr[0]){
			if(this.frameModifier > 0){
				if(this.playSpeed < 0){
					this.setSpeed(-this.playSpeed);
				} else {
					this.setDirection(-1);
				}
			}
			this.timeCompleted = this.totalFrames = arr[0] - arr[1];
			this.firstFrame = arr[1];
			this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);
		} else if(arr[1] > arr[0]){
			if(this.frameModifier < 0){
				if(this.playSpeed < 0){
					this.setSpeed(-this.playSpeed);
				} else {
					this.setDirection(1);
				}
			}
			this.timeCompleted = this.totalFrames = arr[1] - arr[0];
			this.firstFrame = arr[0];
			this.setCurrentRawFrameValue(0.001 + offset);
		}
		this.trigger('segmentStart');
	};
	AnimationItem.prototype.setSegment = function (init,end) {
		var pendingFrame = -1;
		if(this.isPaused) {
			if (this.currentRawFrame + this.firstFrame < init) {
				pendingFrame = init;
			} else if (this.currentRawFrame + this.firstFrame > end) {
				pendingFrame = end - init;
			}
		}

		this.firstFrame = init;
		this.timeCompleted = this.totalFrames = end - init;
		if(pendingFrame !== -1) {
			this.goToAndStop(pendingFrame,true);
		}
	};

	AnimationItem.prototype.playSegments = function (arr, forceFlag) {
		if (forceFlag) {
			this.segments.length = 0;
		}
		if (typeof arr[0] === 'object') {
			var i, len = arr.length;
			for (i = 0; i < len; i += 1) {
				this.segments.push(arr[i]);
			}
		} else {
			this.segments.push(arr);
		}
		if (this.segments.length && forceFlag) {
			this.adjustSegment(this.segments.shift(), 0);
		}
		if (this.isPaused) {
			this.play();
		}
	};

	AnimationItem.prototype.resetSegments = function (forceFlag) {
		this.segments.length = 0;
		this.segments.push([this.animationData.ip,this.animationData.op]);
		//this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);
		if (forceFlag) {
			this.checkSegments(0);
		}
	};
	AnimationItem.prototype.checkSegments = function(offset) {
		if (this.segments.length) {
			this.adjustSegment(this.segments.shift(), offset);
			return true;
		}
		return false;
	};

	AnimationItem.prototype.destroy = function (name) {
		if ((name && this.name != name) || !this.renderer) {
			return;
		}
		this.renderer.destroy();
		this.imagePreloader.destroy();
		this.trigger('destroy');
		this._cbs = null;
		this.onEnterFrame = this.onLoopComplete = this.onComplete = this.onSegmentStart = this.onDestroy = null;
		this.renderer = null;
	};

	AnimationItem.prototype.setCurrentRawFrameValue = function(value){
		this.currentRawFrame = value;
		this.gotoFrame();
	};

	AnimationItem.prototype.setSpeed = function (val) {
		this.playSpeed = val;
		this.updaFrameModifier();
	};

	AnimationItem.prototype.setDirection = function (val) {
		this.playDirection = val < 0 ? -1 : 1;
		this.updaFrameModifier();
	};

	AnimationItem.prototype.updaFrameModifier = function () {
		this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;
	};

	AnimationItem.prototype.getPath = function () {
		return this.path;
	};

	AnimationItem.prototype.getAssetsPath = function (assetData) {
		var path = '';
		if(assetData.e) {
			path = assetData.p;
		} else if(this.assetsPath){
			var imagePath = assetData.p;
			if(imagePath.indexOf('images/') !== -1){
				imagePath = imagePath.split('/')[1];
			}
			path = this.assetsPath + imagePath;
		} else {
			path = this.path;
			path += assetData.u ? assetData.u : '';
			path += assetData.p;
		}
		return path;
	};

	AnimationItem.prototype.getAssetData = function (id) {
		var i = 0, len = this.assets.length;
		while (i < len) {
			if(id == this.assets[i].id){
				return this.assets[i];
			}
			i += 1;
		}
	};

	AnimationItem.prototype.hide = function () {
		this.renderer.hide();
	};

	AnimationItem.prototype.show = function () {
		this.renderer.show();
	};

	AnimationItem.prototype.getDuration = function (isFrame) {
		return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;
	};

	AnimationItem.prototype.trigger = function(name){
		if(this._cbs && this._cbs[name]){
			switch(name){
				case 'enterFrame':
					this.triggerEvent(name,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameModifier));
					break;
				case 'loopComplete':
					this.triggerEvent(name,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));
					break;
				case 'complete':
					this.triggerEvent(name,new BMCompleteEvent(name,this.frameMult));
					break;
				case 'segmentStart':
					this.triggerEvent(name,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));
					break;
				case 'destroy':
					this.triggerEvent(name,new BMDestroyEvent(name,this));
					break;
				default:
					this.triggerEvent(name);
			}
		}
		if(name === 'enterFrame' && this.onEnterFrame){
			this.onEnterFrame.call(this,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));
		}
		if(name === 'loopComplete' && this.onLoopComplete){
			this.onLoopComplete.call(this,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));
		}
		if(name === 'complete' && this.onComplete){
			this.onComplete.call(this,new BMCompleteEvent(name,this.frameMult));
		}
		if(name === 'segmentStart' && this.onSegmentStart){
			this.onSegmentStart.call(this,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));
		}
		if(name === 'destroy' && this.onDestroy){
			this.onDestroy.call(this,new BMDestroyEvent(name,this));
		}
	};

	AnimationItem.prototype.triggerRenderFrameError = function(nativeError) {

		var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);
		this.triggerEvent('error', error);

		if (this.onError) {
			this.onError.call(this, error);
		}
	}

	AnimationItem.prototype.triggerConfigError = function(nativeError) {

		var error = new BMConfigErrorEvent(nativeError, this.currentFrame);
		this.triggerEvent('error', error);

		if (this.onError) {
			this.onError.call(this, error);
		}
	}
	var Expressions = (function(){
		var ob = {};
		ob.initExpressions = initExpressions;


		function initExpressions(animation){

			var stackCount = 0;
			var registers = [];

			function pushExpression() {
				stackCount += 1;
			}

			function popExpression() {
				stackCount -= 1;
				if (stackCount === 0) {
					releaseInstances();
				}
			}

			function registerExpressionProperty(expression) {
				if (registers.indexOf(expression) === -1) {
					registers.push(expression)
				}
			}

			function releaseInstances() {
				var i, len = registers.length;
				for (i = 0; i < len; i += 1) {
					registers[i].release();
				}
				registers.length = 0;
			}

			animation.renderer.compInterface = CompExpressionInterface(animation.renderer);
			animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);
			animation.renderer.globalData.pushExpression = pushExpression;
			animation.renderer.globalData.popExpression = popExpression;
			animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;
		}
		return ob;
	}());

	expressionsPlugin = Expressions;

	var ExpressionManager = (function(){
		'use strict';
		var ob = {};
		var Math = BMMath;
		var window = null;
		var document = null;

		function $bm_isInstanceOfArray(arr) {
			return arr.constructor === Array || arr.constructor === Float32Array;
		}

		function isNumerable(tOfV, v) {
			return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;
		}

		function $bm_neg(a){
			var tOfA = typeof a;
			if(tOfA === 'number' || tOfA === 'boolean'  || a instanceof Number ){
				return -a;
			}
			if($bm_isInstanceOfArray(a)){
				var i, lenA = a.length;
				var retArr = [];
				for(i=0;i<lenA;i+=1){
					retArr[i] = -a[i];
				}
				return retArr;
			}
			if (a.propType) {
				return a.v;
			}
		}

		var easeInBez = BezierFactory.getBezierEasing(0.333,0,.833,.833, 'easeIn').get;
		var easeOutBez = BezierFactory.getBezierEasing(0.167,0.167,.667,1, 'easeOut').get;
		var easeInOutBez = BezierFactory.getBezierEasing(.33,0,.667,1, 'easeInOut').get;

		function sum(a,b) {
			var tOfA = typeof a;
			var tOfB = typeof b;
			if(tOfA === 'string' || tOfB === 'string'){
				return a + b;
			}
			if(isNumerable(tOfA, a) && isNumerable(tOfB, b)) {
				return a + b;
			}
			if($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)){
				a = a.slice(0);
				a[0] = a[0] + b;
				return a;
			}
			if(isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)){
				b = b.slice(0);
				b[0] = a + b[0];
				return b;
			}
			if($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)){

				var i = 0, lenA = a.length, lenB = b.length;
				var retArr = [];
				while(i<lenA || i < lenB){
					if((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)){
						retArr[i] = a[i] + b[i];
					}else{
						retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];
					}
					i += 1;
				}
				return retArr;
			}
			return 0;
		}
		var add = sum;

		function sub(a,b) {
			var tOfA = typeof a;
			var tOfB = typeof b;
			if(isNumerable(tOfA, a) && isNumerable(tOfB, b)) {
				if(tOfA === 'string') {
					a = parseInt(a);
				}
				if(tOfB === 'string') {
					b = parseInt(b);
				}
				return a - b;
			}
			if( $bm_isInstanceOfArray(a) && isNumerable(tOfB, b)){
				a = a.slice(0);
				a[0] = a[0] - b;
				return a;
			}
			if(isNumerable(tOfA, a) &&  $bm_isInstanceOfArray(b)){
				b = b.slice(0);
				b[0] = a - b[0];
				return b;
			}
			if($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)){
				var i = 0, lenA = a.length, lenB = b.length;
				var retArr = [];
				while(i<lenA || i < lenB){
					if((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)){
						retArr[i] = a[i] - b[i];
					}else{
						retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];
					}
					i += 1;
				}
				return retArr;
			}
			return 0;
		}

		function mul(a,b) {
			var tOfA = typeof a;
			var tOfB = typeof b;
			var arr;
			if(isNumerable(tOfA, a) && isNumerable(tOfB, b)) {
				return a * b;
			}

			var i, len;
			if($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)){
				len = a.length;
				arr = createTypedArray('float32', len);
				for(i=0;i<len;i+=1){
					arr[i] = a[i] * b;
				}
				return arr;
			}
			if(isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)){
				len = b.length;
				arr = createTypedArray('float32', len);
				for(i=0;i<len;i+=1){
					arr[i] = a * b[i];
				}
				return arr;
			}
			return 0;
		}

		function div(a,b) {
			var tOfA = typeof a;
			var tOfB = typeof b;
			var arr;
			if(isNumerable(tOfA, a) && isNumerable(tOfB, b)) {
				return a / b;
			}
			var i, len;
			if($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)){
				len = a.length;
				arr = createTypedArray('float32', len);
				for(i=0;i<len;i+=1){
					arr[i] = a[i] / b;
				}
				return arr;
			}
			if(isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)){
				len = b.length;
				arr = createTypedArray('float32', len);
				for(i=0;i<len;i+=1){
					arr[i] = a / b[i];
				}
				return arr;
			}
			return 0;
		}
		function mod(a,b) {
			if(typeof a === 'string') {
				a = parseInt(a);
			}
			if(typeof b === 'string') {
				b = parseInt(b);
			}
			return a % b;
		}
		var $bm_sum = sum;
		var $bm_sub = sub;
		var $bm_mul = mul;
		var $bm_div = div;
		var $bm_mod = mod;

		function clamp(num, min, max) {
			if(min > max){
				var mm = max;
				max = min;
				min = mm;
			}
			return Math.min(Math.max(num, min), max);
		}

		function radiansToDegrees(val) {
			return val/degToRads;
		}
		var radians_to_degrees = radiansToDegrees;

		function degreesToRadians(val) {
			return val*degToRads;
		}
		var degrees_to_radians = radiansToDegrees;

		var helperLengthArray = [0,0,0,0,0,0];

		function length(arr1, arr2) {
			if (typeof arr1 === 'number' || arr1 instanceof Number) {
				arr2 = arr2 || 0;
				return Math.abs(arr1 - arr2);
			}
			if(!arr2) {
				arr2 = helperLengthArray;
			}
			var i, len = Math.min(arr1.length, arr2.length);
			var addedLength = 0;
			for (i = 0; i < len; i += 1) {
				addedLength += Math.pow(arr2[i] - arr1[i], 2);
			}
			return Math.sqrt(addedLength);
		}

		function normalize(vec) {
			return div(vec, length(vec));
		}

		function rgbToHsl(val) {
			var r = val[0]; var g = val[1]; var b = val[2];
			var max = Math.max(r, g, b), min = Math.min(r, g, b);
			var h, s, l = (max + min) / 2;

			if(max == min){
				h = s = 0; // achromatic
			}else{
				var d = max - min;
				s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
				switch(max){
					case r: h = (g - b) / d + (g < b ? 6 : 0); break;
					case g: h = (b - r) / d + 2; break;
					case b: h = (r - g) / d + 4; break;
				}
				h /= 6;
			}

			return [h, s, l,val[3]];
		}

		function hue2rgb(p, q, t){
			if(t < 0) t += 1;
			if(t > 1) t -= 1;
			if(t < 1/6) return p + (q - p) * 6 * t;
			if(t < 1/2) return q;
			if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
			return p;
		}

		function hslToRgb(val){
			var h = val[0];
			var s = val[1];
			var l = val[2];

			var r, g, b;

			if(s === 0){
				r = g = b = l; // achromatic
			}else{

				var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
				var p = 2 * l - q;
				r = hue2rgb(p, q, h + 1/3);
				g = hue2rgb(p, q, h);
				b = hue2rgb(p, q, h - 1/3);
			}

			return [r, g , b, val[3]];
		}

		function linear(t, tMin, tMax, value1, value2){
			if(value1 === undefined || value2 === undefined){
				value1 = tMin;
				value2 = tMax;
				tMin = 0;
				tMax = 1;
			}
			if(tMax < tMin) {
				var _tMin = tMax;
				tMax = tMin;
				tMin = _tMin;
			}
			if(t <= tMin) {
				return value1;
			}else if(t >= tMax){
				return value2;
			}
			var perc = tMax === tMin ? 0 : (t-tMin)/(tMax-tMin);
			if(!value1.length){
				return value1 + (value2-value1)*perc;
			}
			var i, len = value1.length;
			var arr = createTypedArray('float32', len);
			for(i=0;i<len;i+=1){
				arr[i] = value1[i] + (value2[i]-value1[i])*perc;
			}
			return arr;
		}
		function random(min,max){
			if(max === undefined){
				if(min === undefined){
					min = 0;
					max = 1;
				} else {
					max = min;
					min = undefined;
				}
			}
			if(max.length){
				var i, len = max.length;
				if(!min){
					min = createTypedArray('float32', len);
				}
				var arr = createTypedArray('float32', len);
				var rnd = BMMath.random();
				for(i=0;i<len;i+=1){
					arr[i] = min[i] + rnd*(max[i]-min[i]);
				}
				return arr;
			}
			if(min === undefined){
				min = 0;
			}
			var rndm = BMMath.random();
			return min + rndm*(max-min);
		}

		function createPath(points, inTangents, outTangents, closed) {
			var i, len = points.length;
			var path = shape_pool.newElement();
			path.setPathData(!!closed, len);
			var arrPlaceholder = [0,0], inVertexPoint, outVertexPoint;
			for(i = 0; i < len; i += 1) {
				inVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;
				outVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;
				path.setTripleAt(points[i][0],points[i][1],outVertexPoint[0] + points[i][0],outVertexPoint[1] + points[i][1],inVertexPoint[0] + points[i][0],inVertexPoint[1] + points[i][1],i,true);
			}
			return path;
		}

		function initiateExpression(elem,data,property){
			var val = data.x;
			var needsVelocity = /velocity(?![\w\d])/.test(val);
			var _needsRandom = val.indexOf('random') !== -1;
			var elemType = elem.data.ty;
			var transform,$bm_transform,content,effect;
			var thisProperty = property;
			thisProperty.valueAtTime = thisProperty.getValueAtTime;
			Object.defineProperty(thisProperty, 'value', {
				get: function() {
					return thisProperty.v
				}
			})
			elem.comp.frameDuration = 1/elem.comp.globalData.frameRate;
			elem.comp.displayStartTime = 0;
			var inPoint = elem.data.ip/elem.comp.globalData.frameRate;
			var outPoint = elem.data.op/elem.comp.globalData.frameRate;
			var width = elem.data.sw ? elem.data.sw : 0;
			var height = elem.data.sh ? elem.data.sh : 0;
			var name = elem.data.nm;
			var loopIn, loop_in, loopOut, loop_out, smooth;
			var toWorld,fromWorld,fromComp,toComp,fromCompToSurface, position, rotation, anchorPoint, scale, thisLayer, thisComp,mask,valueAtTime,velocityAtTime;
			var __expression_functions = [];
			if(data.xf) {
				var i, len = data.xf.length;
				for(i = 0; i < len; i += 1) {
					__expression_functions[i] = eval('(function(){ return ' + data.xf[i] + '}())');
				}
			}

			var scoped_bm_rt;
			var expression_function = eval('[function _expression_function(){' + val+';scoped_bm_rt=$bm_rt}' + ']')[0];
			var numKeys = property.kf ? data.k.length : 0;

			var active = !this.data || this.data.hd !== true;

			var wiggle = function wiggle(freq,amp){
				var i,j, len = this.pv.length ? this.pv.length : 1;
				var addedAmps = createTypedArray('float32', len);
				freq = 5;
				var iterations = Math.floor(time*freq);
				i = 0;
				j = 0;
				while(i<iterations){
					//var rnd = BMMath.random();
					for(j=0;j<len;j+=1){
						addedAmps[j] += -amp + amp*2*BMMath.random();
						//addedAmps[j] += -amp + amp*2*rnd;
					}
					i += 1;
				}
				//var rnd2 = BMMath.random();
				var periods = time*freq;
				var perc = periods - Math.floor(periods);
				var arr = createTypedArray('float32', len);
				if(len>1){
					for(j=0;j<len;j+=1){
						arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*BMMath.random())*perc;
						//arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;
						//arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);
					}
					return arr;
				} else {
					return this.pv + addedAmps[0] + (-amp + amp*2*BMMath.random())*perc;
				}
			}.bind(this);

			if(thisProperty.loopIn) {
				loopIn = thisProperty.loopIn.bind(thisProperty);
				loop_in = loopIn;
			}

			if(thisProperty.loopOut) {
				loopOut = thisProperty.loopOut.bind(thisProperty);
				loop_out = loopOut;
			}

			if(thisProperty.smooth) {
				smooth = thisProperty.smooth.bind(thisProperty);
			}

			function loopInDuration(type,duration){
				return loopIn(type,duration,true);
			}

			function loopOutDuration(type,duration){
				return loopOut(type,duration,true);
			}

			if(this.getValueAtTime) {
				valueAtTime = this.getValueAtTime.bind(this);
			}

			if(this.getVelocityAtTime) {
				velocityAtTime = this.getVelocityAtTime.bind(this);
			}

			var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);

			function lookAt(elem1,elem2){
				var fVec = [elem2[0]-elem1[0],elem2[1]-elem1[1],elem2[2]-elem1[2]];
				var pitch = Math.atan2(fVec[0],Math.sqrt(fVec[1]*fVec[1]+fVec[2]*fVec[2]))/degToRads;
				var yaw = -Math.atan2(fVec[1],fVec[2])/degToRads;
				return [yaw,pitch,0];
			}

			function easeOut(t, tMin, tMax, val1, val2){
				return applyEase(easeOutBez, t, tMin, tMax, val1, val2);
			}

			function easeIn(t, tMin, tMax, val1, val2){
				return applyEase(easeInBez, t, tMin, tMax, val1, val2);
			}

			function ease(t, tMin, tMax, val1, val2){
				return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);
			}

			function applyEase(fn, t, tMin, tMax, val1, val2) {
				if(val1 === undefined){
					val1 = tMin;
					val2 = tMax;
				} else {
					t = (t - tMin) / (tMax - tMin);
				}
				t = t > 1 ? 1 : t < 0 ? 0 : t;
				var mult = fn(t);
				if($bm_isInstanceOfArray(val1)) {
					var i, len = val1.length;
					var arr = createTypedArray('float32', len);
					for (i = 0; i < len; i += 1) {
						arr[i] = (val2[i] - val1[i]) * mult + val1[i];
					}
					return arr;
				} else {
					return (val2 - val1) * mult + val1;
				}
			}

			function nearestKey(time){
				var i, len = data.k.length,index,keyTime;
				if(!data.k.length || typeof(data.k[0]) === 'number'){
					index = 0;
					keyTime = 0;
				} else {
					index = -1;
					time *= elem.comp.globalData.frameRate;
					if (time < data.k[0].t) {
						index = 1;
						keyTime = data.k[0].t;
					} else {
						for(i=0;i<len-1;i+=1){
							if(time === data.k[i].t){
								index = i + 1;
								keyTime = data.k[i].t;
								break;
							}else if(time>data.k[i].t && time<data.k[i+1].t){
								if(time-data.k[i].t > data.k[i+1].t - time){
									index = i + 2;
									keyTime = data.k[i+1].t;
								} else {
									index = i + 1;
									keyTime = data.k[i].t;
								}
								break;
							}
						}
						if(index === -1){
							index = i + 1;
							keyTime = data.k[i].t;
						}
					}

				}
				var ob = {};
				ob.index = index;
				ob.time = keyTime/elem.comp.globalData.frameRate;
				return ob;
			}

			function key(ind){
				var ob, i, len;
				if(!data.k.length || typeof(data.k[0]) === 'number'){
					throw new Error('The property has no keyframe at index ' + ind);
				}
				ind -= 1;
				ob = {
					time: data.k[ind].t/elem.comp.globalData.frameRate,
					value: []
				};
				var arr = data.k[ind].hasOwnProperty('s') ? data.k[ind].s : data.k[ind - 1].e;

				len = arr.length;
				for(i=0;i<len;i+=1){
					ob[i] = arr[i];
					ob.value[i] = arr[i]
				}
				return ob;
			}

			function framesToTime(frames, fps) {
				if (!fps) {
					fps = elem.comp.globalData.frameRate;
				}
				return frames / fps;
			}

			function timeToFrames(t, fps) {
				if (!t && t !== 0) {
					t = time;
				}
				if (!fps) {
					fps = elem.comp.globalData.frameRate;
				}
				return t * fps;
			}

			function seedRandom(seed){
				BMMath.seedrandom(randSeed + seed);
			}

			function sourceRectAtTime() {
				return elem.sourceRectAtTime();
			}

			function substring(init, end) {
				if(typeof value === 'string') {
					if(end === undefined) {
						return value.substring(init)
					}
					return value.substring(init, end)
				}
				return '';
			}

			function substr(init, end) {
				if(typeof value === 'string') {
					if(end === undefined) {
						return value.substr(init)
					}
					return value.substr(init, end)
				}
				return '';
			}

			function posterizeTime(framesPerSecond) {
				time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond
				value = valueAtTime(time)
			}

			var time, velocity, value, text, textIndex, textTotal, selectorValue;
			var index = elem.data.ind;
			var hasParent = !!(elem.hierarchy && elem.hierarchy.length);
			var parent;
			var randSeed = Math.floor(Math.random()*1000000);
			var globalData = elem.globalData;
			function executeExpression(_value) {
				// globalData.pushExpression();
				value = _value;
				if (_needsRandom) {
					seedRandom(randSeed);
				}
				if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {
					return value;
				}
				if(this.propType === 'textSelector'){
					textIndex = this.textIndex;
					textTotal = this.textTotal;
					selectorValue = this.selectorValue;
				}
				if (!thisLayer) {
					text = elem.layerInterface.text;
					thisLayer = elem.layerInterface;
					thisComp = elem.comp.compInterface;
					toWorld = thisLayer.toWorld.bind(thisLayer);
					fromWorld = thisLayer.fromWorld.bind(thisLayer);
					fromComp = thisLayer.fromComp.bind(thisLayer);
					toComp = thisLayer.toComp.bind(thisLayer);
					mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;
					fromCompToSurface = fromComp;
				}
				if (!transform) {
					transform = elem.layerInterface("ADBE Transform Group");
					$bm_transform = transform;
					if(transform) {
						anchorPoint = transform.anchorPoint;
						/*position = transform.position;
                    rotation = transform.rotation;
                    scale = transform.scale;*/
					}
				}

				if (elemType === 4 && !content) {
					content = thisLayer("ADBE Root Vectors Group");
				}
				if (!effect) {
					effect = thisLayer(4);
				}
				hasParent = !!(elem.hierarchy && elem.hierarchy.length);
				if (hasParent && !parent) {
					parent = elem.hierarchy[0].layerInterface;
				}
				time = this.comp.renderedFrame/this.comp.globalData.frameRate;
				if (needsVelocity) {
					velocity = velocityAtTime(time);
				}
				expression_function();
				this.frameExpressionId = elem.globalData.frameId;


				//TODO: Check if it's possible to return on ShapeInterface the .v value
				if (scoped_bm_rt.propType === "shape") {
					scoped_bm_rt = scoped_bm_rt.v;
				}
				// globalData.popExpression();
				return scoped_bm_rt;
			}
			return executeExpression;
		}

		ob.initiateExpression = initiateExpression;
		return ob;
	}());
	var expressionHelpers = (function(){

		function searchExpressions(elem,data,prop){
			if(data.x){
				prop.k = true;
				prop.x = true;
				prop.initiateExpression = ExpressionManager.initiateExpression;
				prop.effectsSequence.push(prop.initiateExpression(elem,data,prop).bind(prop));
			}
		}

		function getValueAtTime(frameNum) {
			frameNum *= this.elem.globalData.frameRate;
			frameNum -= this.offsetTime;
			if(frameNum !== this._cachingAtTime.lastFrame) {
				this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;
				this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);
				this._cachingAtTime.lastFrame = frameNum;
			}
			return this._cachingAtTime.value;

		}

		function getSpeedAtTime(frameNum) {
			var delta = -0.01;
			var v1 = this.getValueAtTime(frameNum);
			var v2 = this.getValueAtTime(frameNum + delta);
			var speed = 0;
			if(v1.length){
				var i;
				for(i=0;i<v1.length;i+=1){
					speed += Math.pow(v2[i] - v1[i], 2);
				}
				speed = Math.sqrt(speed) * 100;
			} else {
				speed = 0;
			}
			return speed;
		}

		function getVelocityAtTime(frameNum) {
			if(this.vel !== undefined){
				return this.vel;
			}
			var delta = -0.001;
			//frameNum += this.elem.data.st;
			var v1 = this.getValueAtTime(frameNum);
			var v2 = this.getValueAtTime(frameNum + delta);
			var velocity;
			if(v1.length){
				velocity = createTypedArray('float32', v1.length);
				var i;
				for(i=0;i<v1.length;i+=1){
					//removing frameRate
					//if needed, don't add it here
					//velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);
					velocity[i] = (v2[i] - v1[i])/delta;
				}
			} else {
				velocity = (v2 - v1)/delta;
			}
			return velocity;
		}

		function getStaticValueAtTime() {
			return this.pv;
		}

		function setGroupProperty(propertyGroup){
			this.propertyGroup = propertyGroup;
		}

		return {
			searchExpressions: searchExpressions,
			getSpeedAtTime: getSpeedAtTime,
			getVelocityAtTime: getVelocityAtTime,
			getValueAtTime: getValueAtTime,
			getStaticValueAtTime: getStaticValueAtTime,
			setGroupProperty: setGroupProperty,
		}
	}());
	(function addPropertyDecorator() {

		function loopOut(type,duration,durationFlag){
			if(!this.k || !this.keyframes){
				return this.pv;
			}
			type = type ? type.toLowerCase() : '';
			var currentFrame = this.comp.renderedFrame;
			var keyframes = this.keyframes;
			var lastKeyFrame = keyframes[keyframes.length - 1].t;
			if(currentFrame<=lastKeyFrame){
				return this.pv;
			}else{
				var cycleDuration, firstKeyFrame;
				if(!durationFlag){
					if(!duration || duration > keyframes.length - 1){
						duration = keyframes.length - 1;
					}
					firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;
					cycleDuration = lastKeyFrame - firstKeyFrame;
				} else {
					if(!duration){
						cycleDuration = Math.max(0,lastKeyFrame - this.elem.data.ip);
					} else {
						cycleDuration = Math.abs(lastKeyFrame - elem.comp.globalData.frameRate*duration);
					}
					firstKeyFrame = lastKeyFrame - cycleDuration;
				}
				var i, len, ret;
				if(type === 'pingpong') {
					var iterations = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);
					if(iterations % 2 !== 0){
						return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration +  firstKeyFrame)) / this.comp.globalData.frameRate, 0);
					}
				} else if(type === 'offset'){
					var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);
					var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);
					var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration +  firstKeyFrame) / this.comp.globalData.frameRate, 0);
					var repeats = Math.floor((currentFrame - firstKeyFrame)/cycleDuration);
					if(this.pv.length){
						ret = new Array(initV.length);
						len = ret.length;
						for(i=0;i<len;i+=1){
							ret[i] = (endV[i]-initV[i])*repeats + current[i];
						}
						return ret;
					}
					return (endV-initV)*repeats + current;
				} else if(type === 'continue'){
					var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);
					var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);
					if(this.pv.length){
						ret = new Array(lastValue.length);
						len = ret.length;
						for(i=0;i<len;i+=1){
							ret[i] = lastValue[i] + (lastValue[i]-nextLastValue[i])*((currentFrame - lastKeyFrame)/ this.comp.globalData.frameRate)/0.0005;
						}
						return ret;
					}
					return lastValue + (lastValue-nextLastValue)*(((currentFrame - lastKeyFrame))/0.001);
				}
				return this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration +  firstKeyFrame)) / this.comp.globalData.frameRate, 0);
			}
		}

		function loopIn(type,duration, durationFlag) {
			if(!this.k){
				return this.pv;
			}
			type = type ? type.toLowerCase() : '';
			var currentFrame = this.comp.renderedFrame;
			var keyframes = this.keyframes;
			var firstKeyFrame = keyframes[0].t;
			if(currentFrame>=firstKeyFrame){
				return this.pv;
			}else{
				var cycleDuration, lastKeyFrame;
				if(!durationFlag){
					if(!duration || duration > keyframes.length - 1){
						duration = keyframes.length - 1;
					}
					lastKeyFrame = keyframes[duration].t;
					cycleDuration = lastKeyFrame - firstKeyFrame;
				} else {
					if(!duration){
						cycleDuration = Math.max(0,this.elem.data.op - firstKeyFrame);
					} else {
						cycleDuration = Math.abs(elem.comp.globalData.frameRate*duration);
					}
					lastKeyFrame = firstKeyFrame + cycleDuration;
				}
				var i, len, ret;
				if(type === 'pingpong') {
					var iterations = Math.floor((firstKeyFrame - currentFrame)/cycleDuration);
					if(iterations % 2 === 0){
						return this.getValueAtTime((((firstKeyFrame - currentFrame)%cycleDuration +  firstKeyFrame)) / this.comp.globalData.frameRate, 0);
					}
				} else if(type === 'offset'){
					var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);
					var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);
					var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame)%cycleDuration +  firstKeyFrame) / this.comp.globalData.frameRate, 0);
					var repeats = Math.floor((firstKeyFrame - currentFrame)/cycleDuration)+1;
					if(this.pv.length){
						ret = new Array(initV.length);
						len = ret.length;
						for(i=0;i<len;i+=1){
							ret[i] = current[i]-(endV[i]-initV[i])*repeats;
						}
						return ret;
					}
					return current-(endV-initV)*repeats;
				} else if(type === 'continue'){
					var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);
					var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);
					if(this.pv.length){
						ret = new Array(firstValue.length);
						len = ret.length;
						for(i=0;i<len;i+=1){
							ret[i] = firstValue[i] + (firstValue[i]-nextFirstValue[i])*(firstKeyFrame - currentFrame)/0.001;
						}
						return ret;
					}
					return firstValue + (firstValue-nextFirstValue)*(firstKeyFrame - currentFrame)/0.001;
				}
				return this.getValueAtTime(((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration +  firstKeyFrame)) / this.comp.globalData.frameRate, 0);
			}
		}

		function smooth(width, samples) {
			if (!this.k){
				return this.pv;
			}
			width = (width || 0.4) * 0.5;
			samples = Math.floor(samples || 5);
			if (samples <= 1) {
				return this.pv;
			}
			var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;
			var initFrame = currentTime - width;
			var endFrame = currentTime + width;
			var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;
			var i = 0, j = 0;
			var value;
			if (this.pv.length) {
				value = createTypedArray('float32', this.pv.length);
			} else {
				value = 0;
			}
			var sampleValue;
			while (i < samples) {
				sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);
				if(this.pv.length) {
					for (j = 0; j < this.pv.length; j += 1) {
						value[j] += sampleValue[j];
					}
				} else {
					value += sampleValue;
				}
				i += 1;
			}
			if(this.pv.length) {
				for (j = 0; j < this.pv.length; j += 1) {
					value[j] /= samples;
				}
			} else {
				value /= samples;
			}
			return value;
		}

		function getValueAtTime(frameNum) {
			frameNum *= this.elem.globalData.frameRate;
			frameNum -= this.offsetTime;
			if(frameNum !== this._cachingAtTime.lastFrame) {
				this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;
				this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);
				this._cachingAtTime.lastFrame = frameNum;
			}
			return this._cachingAtTime.value;

		}

		function getTransformValueAtTime(time) {
			console.warn('Transform at time not supported');
		}

		function getTransformStaticValueAtTime(time) {

		}

		var getTransformProperty = TransformPropertyFactory.getTransformProperty;
		TransformPropertyFactory.getTransformProperty = function(elem, data, container) {
			var prop = getTransformProperty(elem, data, container);
			if(prop.dynamicProperties.length) {
				prop.getValueAtTime = getTransformValueAtTime.bind(prop);
			} else {
				prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);
			}
			prop.setGroupProperty = expressionHelpers.setGroupProperty;
			return prop;
		};

		var propertyGetProp = PropertyFactory.getProp;
		PropertyFactory.getProp = function(elem,data,type, mult, container){
			var prop = propertyGetProp(elem,data,type, mult, container);
			//prop.getVelocityAtTime = getVelocityAtTime;
			//prop.loopOut = loopOut;
			//prop.loopIn = loopIn;
			if(prop.kf){
				prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);
			} else {
				prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);
			}
			prop.setGroupProperty = expressionHelpers.setGroupProperty;
			prop.loopOut = loopOut;
			prop.loopIn = loopIn;
			prop.smooth = smooth;
			prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);
			prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);
			prop.numKeys = data.a === 1 ? data.k.length : 0;
			prop.propertyIndex = data.ix;
			var value = 0;
			if(type !== 0) {
				value = createTypedArray('float32', data.a === 1 ?  data.k[0].s.length : data.k.length);
			}
			prop._cachingAtTime = {
				lastFrame: initialDefaultFrame,
				lastIndex: 0,
				value: value
			};
			expressionHelpers.searchExpressions(elem,data,prop);
			if(prop.k){
				container.addDynamicProperty(prop);
			}

			return prop;
		};

		function getShapeValueAtTime(frameNum) {
			//For now this caching object is created only when needed instead of creating it when the shape is initialized.
			if (!this._cachingAtTime) {
				this._cachingAtTime = {
					shapeValue: shape_pool.clone(this.pv),
					lastIndex: 0,
					lastTime: initialDefaultFrame
				};
			}

			frameNum *= this.elem.globalData.frameRate;
			frameNum -= this.offsetTime;
			if(frameNum !== this._cachingAtTime.lastTime) {
				this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;
				this._cachingAtTime.lastTime = frameNum;
				this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);
			}
			return this._cachingAtTime.shapeValue;
		}

		var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();
		var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();

		function ShapeExpressions(){}
		ShapeExpressions.prototype = {
			vertices: function(prop, time){
				if (this.k) {
					this.getValue();
				}
				var shapePath = this.v;
				if(time !== undefined) {
					shapePath = this.getValueAtTime(time, 0);
				}
				var i, len = shapePath._length;
				var vertices = shapePath[prop];
				var points = shapePath.v;
				var arr = createSizedArray(len);
				for(i = 0; i < len; i += 1) {
					if(prop === 'i' || prop === 'o') {
						arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];
					} else {
						arr[i] = [vertices[i][0], vertices[i][1]];
					}

				}
				return arr;
			},
			points: function(time){
				return this.vertices('v', time);
			},
			inTangents: function(time){
				return this.vertices('i', time);
			},
			outTangents: function(time){
				return this.vertices('o', time);
			},
			isClosed: function(){
				return this.v.c;
			},
			pointOnPath: function(perc, time){
				var shapePath = this.v;
				if(time !== undefined) {
					shapePath = this.getValueAtTime(time, 0);
				}
				if(!this._segmentsLength) {
					this._segmentsLength = bez.getSegmentsLength(shapePath);
				}

				var segmentsLength = this._segmentsLength;
				var lengths = segmentsLength.lengths;
				var lengthPos = segmentsLength.totalLength * perc;
				var i = 0, len = lengths.length;
				var j = 0, jLen;
				var accumulatedLength = 0, pt;
				while(i < len) {
					if(accumulatedLength + lengths[i].addedLength > lengthPos) {
						var initIndex = i;
						var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;
						var segmentPerc = (lengthPos - accumulatedLength)/lengths[i].addedLength;
						pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);
						break;
					} else {
						accumulatedLength += lengths[i].addedLength;
					}
					i += 1;
				}
				if(!pt){
					pt = shapePath.c ? [shapePath.v[0][0],shapePath.v[0][1]]:[shapePath.v[shapePath._length-1][0],shapePath.v[shapePath._length-1][1]];
				}
				return pt;
			},
			vectorOnPath: function(perc, time, vectorType){
				//perc doesn't use triple equality because it can be a Number object as well as a primitive.
				perc = perc == 1 ? this.v.c ? 0 : 0.999 : perc;
				var pt1 = this.pointOnPath(perc, time);
				var pt2 = this.pointOnPath(perc + 0.001, time);
				var xLength = pt2[0] - pt1[0];
				var yLength = pt2[1] - pt1[1];
				var magnitude = Math.sqrt(Math.pow(xLength,2) + Math.pow(yLength,2));
				if (magnitude === 0) {
					return [0,0];
				}
				var unitVector = vectorType === 'tangent' ? [xLength/magnitude, yLength/magnitude] : [-yLength/magnitude, xLength/magnitude];
				return unitVector;
			},
			tangentOnPath: function(perc, time){
				return this.vectorOnPath(perc, time, 'tangent');
			},
			normalOnPath: function(perc, time){
				return this.vectorOnPath(perc, time, 'normal');
			},
			setGroupProperty: expressionHelpers.setGroupProperty,
			getValueAtTime: expressionHelpers.getStaticValueAtTime
		};
		extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);
		extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);
		KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;
		KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;

		var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;
		ShapePropertyFactory.getShapeProp = function(elem,data,type, arr, trims){
			var prop = propertyGetShapeProp(elem,data,type, arr, trims);
			prop.propertyIndex = data.ix;
			prop.lock = false;
			if(type === 3){
				expressionHelpers.searchExpressions(elem,data.pt,prop);
			} else if(type === 4){
				expressionHelpers.searchExpressions(elem,data.ks,prop);
			}
			if(prop.k){
				elem.addDynamicProperty(prop);
			}
			return prop;
		};
	}());
	(function addDecorator() {

		function searchExpressions(){
			if(this.data.d.x){
				this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this);
				this.addEffect(this.getExpressionValue.bind(this));
				return true;
			}
		}

		TextProperty.prototype.getExpressionValue = function(currentValue, text) {
			var newValue = this.calculateExpression(text);
			if(currentValue.t !== newValue) {
				var newData = {};
				this.copyData(newData, currentValue);
				newData.t = newValue.toString();
				newData.__complete = false;
				return newData;
			}
			return currentValue;
		}

		TextProperty.prototype.searchProperty = function(){

			var isKeyframed = this.searchKeyframes();
			var hasExpressions = this.searchExpressions();
			this.kf = isKeyframed || hasExpressions;
			return this.kf;
		};

		TextProperty.prototype.searchExpressions = searchExpressions;

	}());
	var ShapeExpressionInterface = (function(){

		function iterateElements(shapes,view, propertyGroup){
			var arr = [];
			var i, len = shapes ? shapes.length : 0;
			for(i=0;i<len;i+=1){
				if(shapes[i].ty == 'gr'){
					arr.push(groupInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'fl'){
					arr.push(fillInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'st'){
					arr.push(strokeInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'tm'){
					arr.push(trimInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'tr'){
					//arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'el'){
					arr.push(ellipseInterfaceFactory(shapes[i],view[i],propertyGroup));
				}else if(shapes[i].ty == 'sr'){
					arr.push(starInterfaceFactory(shapes[i],view[i],propertyGroup));
				} else if(shapes[i].ty == 'sh'){
					arr.push(pathInterfaceFactory(shapes[i],view[i],propertyGroup));
				} else if(shapes[i].ty == 'rc'){
					arr.push(rectInterfaceFactory(shapes[i],view[i],propertyGroup));
				} else if(shapes[i].ty == 'rd'){
					arr.push(roundedInterfaceFactory(shapes[i],view[i],propertyGroup));
				} else if(shapes[i].ty == 'rp'){
					arr.push(repeaterInterfaceFactory(shapes[i],view[i],propertyGroup));
				}
			}
			return arr;
		}

		function contentsInterfaceFactory(shape,view, propertyGroup){
			var interfaces;
			var interfaceFunction = function _interfaceFunction(value){
				var i = 0, len = interfaces.length;
				while(i<len){
					if(interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value){
						return interfaces[i];
					}
					i+=1;
				}
				if(typeof value === 'number'){
					return interfaces[value-1];
				}
			};
			interfaceFunction.propertyGroup = function(val){
				if(val === 1){
					return interfaceFunction;
				} else{
					return propertyGroup(val-1);
				}
			};
			interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);
			interfaceFunction.numProperties = interfaces.length;
			interfaceFunction.propertyIndex = shape.cix;
			interfaceFunction._name = shape.nm;

			return interfaceFunction;
		}

		function groupInterfaceFactory(shape,view, propertyGroup){
			var interfaceFunction = function _interfaceFunction(value){
				switch(value){
					case 'ADBE Vectors Group':
					case 'Contents':
					case 2:
						return interfaceFunction.content;
					//Not necessary for now. Keeping them here in case a new case appears
					//case 'ADBE Vector Transform Group':
					//case 3:
					default:
						return interfaceFunction.transform;
				}
			};
			interfaceFunction.propertyGroup = function(val){
				if(val === 1){
					return interfaceFunction;
				} else{
					return propertyGroup(val-1);
				}
			};
			var content = contentsInterfaceFactory(shape,view,interfaceFunction.propertyGroup);
			var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1],view.it[view.it.length - 1],interfaceFunction.propertyGroup);
			interfaceFunction.content = content;
			interfaceFunction.transform = transformInterface;
			Object.defineProperty(interfaceFunction, '_name', {
				get: function(){
					return shape.nm;
				}
			});
			//interfaceFunction.content = interfaceFunction;
			interfaceFunction.numProperties = shape.np;
			interfaceFunction.propertyIndex = shape.ix;
			interfaceFunction.nm = shape.nm;
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function fillInterfaceFactory(shape,view,propertyGroup){
			function interfaceFunction(val){
				if(val === 'Color' || val === 'color'){
					return interfaceFunction.color;
				} else if(val === 'Opacity' || val === 'opacity'){
					return interfaceFunction.opacity;
				}
			}
			Object.defineProperties(interfaceFunction, {
				'color': {
					get: ExpressionPropertyInterface(view.c)
				},
				'opacity': {
					get: ExpressionPropertyInterface(view.o)
				},
				'_name': { value: shape.nm },
				'mn': { value: shape.mn }
			});

			view.c.setGroupProperty(propertyGroup);
			view.o.setGroupProperty(propertyGroup);
			return interfaceFunction;
		}

		function strokeInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val === 1){
					return ob;
				} else{
					return propertyGroup(val-1);
				}
			}
			function _dashPropertyGroup(val){
				if(val === 1){
					return dashOb;
				} else{
					return _propertyGroup(val-1);
				}
			}
			function addPropertyToDashOb(i) {
				Object.defineProperty(dashOb, shape.d[i].nm, {
					get: ExpressionPropertyInterface(view.d.dataProps[i].p)
				});
			}
			var i, len = shape.d ? shape.d.length : 0;
			var dashOb = {};
			for (i = 0; i < len; i += 1) {
				addPropertyToDashOb(i);
				view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);
			}

			function interfaceFunction(val){
				if(val === 'Color' || val === 'color'){
					return interfaceFunction.color;
				} else if(val === 'Opacity' || val === 'opacity'){
					return interfaceFunction.opacity;
				} else if(val === 'Stroke Width' || val === 'stroke width'){
					return interfaceFunction.strokeWidth;
				}
			}
			Object.defineProperties(interfaceFunction, {
				'color': {
					get: ExpressionPropertyInterface(view.c)
				},
				'opacity': {
					get: ExpressionPropertyInterface(view.o)
				},
				'strokeWidth': {
					get: ExpressionPropertyInterface(view.w)
				},
				'dash': {
					get: function() {
						return dashOb;
					}
				},
				'_name': { value: shape.nm },
				'mn': { value: shape.mn }
			});

			view.c.setGroupProperty(_propertyGroup);
			view.o.setGroupProperty(_propertyGroup);
			view.w.setGroupProperty(_propertyGroup);
			return interfaceFunction;
		}

		function trimInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			interfaceFunction.propertyIndex = shape.ix;

			view.s.setGroupProperty(_propertyGroup);
			view.e.setGroupProperty(_propertyGroup);
			view.o.setGroupProperty(_propertyGroup);

			function interfaceFunction(val){
				if(val === shape.e.ix || val === 'End' || val === 'end'){
					return interfaceFunction.end;
				}
				if(val === shape.s.ix){
					return interfaceFunction.start;
				}
				if(val === shape.o.ix){
					return interfaceFunction.offset;
				}
			}
			interfaceFunction.propertyIndex = shape.ix;
			interfaceFunction.propertyGroup = propertyGroup;

			Object.defineProperties(interfaceFunction, {
				'start': {
					get: ExpressionPropertyInterface(view.s)
				},
				'end': {
					get: ExpressionPropertyInterface(view.e)
				},
				'offset': {
					get: ExpressionPropertyInterface(view.o)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function transformInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			view.transform.mProps.o.setGroupProperty(_propertyGroup);
			view.transform.mProps.p.setGroupProperty(_propertyGroup);
			view.transform.mProps.a.setGroupProperty(_propertyGroup);
			view.transform.mProps.s.setGroupProperty(_propertyGroup);
			view.transform.mProps.r.setGroupProperty(_propertyGroup);
			if(view.transform.mProps.sk){
				view.transform.mProps.sk.setGroupProperty(_propertyGroup);
				view.transform.mProps.sa.setGroupProperty(_propertyGroup);
			}
			view.transform.op.setGroupProperty(_propertyGroup);

			function interfaceFunction(value){
				if(shape.a.ix === value || value === 'Anchor Point'){
					return interfaceFunction.anchorPoint;
				}
				if(shape.o.ix === value || value === 'Opacity'){
					return interfaceFunction.opacity;
				}
				if(shape.p.ix === value || value === 'Position'){
					return interfaceFunction.position;
				}
				if(shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation'){
					return interfaceFunction.rotation;
				}
				if(shape.s.ix === value || value === 'Scale'){
					return interfaceFunction.scale;
				}
				if(shape.sk && shape.sk.ix === value || value === 'Skew'){
					return interfaceFunction.skew;
				}
				if(shape.sa && shape.sa.ix === value || value === 'Skew Axis'){
					return interfaceFunction.skewAxis;
				}

			}
			Object.defineProperties(interfaceFunction, {
				'opacity': {
					get: ExpressionPropertyInterface(view.transform.mProps.o)
				},
				'position': {
					get: ExpressionPropertyInterface(view.transform.mProps.p)
				},
				'anchorPoint': {
					get: ExpressionPropertyInterface(view.transform.mProps.a)
				},
				'scale': {
					get: ExpressionPropertyInterface(view.transform.mProps.s)
				},
				'rotation': {
					get: ExpressionPropertyInterface(view.transform.mProps.r)
				},
				'skew': {
					get: ExpressionPropertyInterface(view.transform.mProps.sk)
				},
				'skewAxis': {
					get: ExpressionPropertyInterface(view.transform.mProps.sa)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.ty = 'tr';
			interfaceFunction.mn = shape.mn;
			interfaceFunction.propertyGroup = propertyGroup;
			return interfaceFunction;
		}

		function ellipseInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			interfaceFunction.propertyIndex = shape.ix;
			var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
			prop.s.setGroupProperty(_propertyGroup);
			prop.p.setGroupProperty(_propertyGroup);
			function interfaceFunction(value){
				if(shape.p.ix === value){
					return interfaceFunction.position;
				}
				if(shape.s.ix === value){
					return interfaceFunction.size;
				}
			}

			Object.defineProperties(interfaceFunction, {
				'size': {
					get: ExpressionPropertyInterface(prop.s)
				},
				'position': {
					get: ExpressionPropertyInterface(prop.p)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function starInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
			interfaceFunction.propertyIndex = shape.ix;
			prop.or.setGroupProperty(_propertyGroup);
			prop.os.setGroupProperty(_propertyGroup);
			prop.pt.setGroupProperty(_propertyGroup);
			prop.p.setGroupProperty(_propertyGroup);
			prop.r.setGroupProperty(_propertyGroup);
			if(shape.ir){
				prop.ir.setGroupProperty(_propertyGroup);
				prop.is.setGroupProperty(_propertyGroup);
			}

			function interfaceFunction(value){
				if(shape.p.ix === value){
					return interfaceFunction.position;
				}
				if(shape.r.ix === value){
					return interfaceFunction.rotation;
				}
				if(shape.pt.ix === value){
					return interfaceFunction.points;
				}
				if(shape.or.ix === value || 'ADBE Vector Star Outer Radius' === value){
					return interfaceFunction.outerRadius;
				}
				if(shape.os.ix === value){
					return interfaceFunction.outerRoundness;
				}
				if(shape.ir && (shape.ir.ix === value || 'ADBE Vector Star Inner Radius' === value)){
					return interfaceFunction.innerRadius;
				}
				if(shape.is && shape.is.ix === value){
					return interfaceFunction.innerRoundness;
				}

			}

			Object.defineProperties(interfaceFunction, {
				'position': {
					get: ExpressionPropertyInterface(prop.p)
				},
				'rotation': {
					get: ExpressionPropertyInterface(prop.r)
				},
				'points': {
					get: ExpressionPropertyInterface(prop.pt)
				},
				'outerRadius': {
					get: ExpressionPropertyInterface(prop.or)
				},
				'outerRoundness': {
					get: ExpressionPropertyInterface(prop.os)
				},
				'innerRadius': {
					get: ExpressionPropertyInterface(prop.ir)
				},
				'innerRoundness': {
					get: ExpressionPropertyInterface(prop.is)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function rectInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;
			interfaceFunction.propertyIndex = shape.ix;
			prop.p.setGroupProperty(_propertyGroup);
			prop.s.setGroupProperty(_propertyGroup);
			prop.r.setGroupProperty(_propertyGroup);

			function interfaceFunction(value){
				if(shape.p.ix === value){
					return interfaceFunction.position;
				}
				if(shape.r.ix === value){
					return interfaceFunction.roundness;
				}
				if(shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size'){
					return interfaceFunction.size;
				}

			}
			Object.defineProperties(interfaceFunction, {
				'position': {
					get: ExpressionPropertyInterface(prop.p)
				},
				'roundness': {
					get: ExpressionPropertyInterface(prop.r)
				},
				'size': {
					get: ExpressionPropertyInterface(prop.s)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function roundedInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			var prop = view;
			interfaceFunction.propertyIndex = shape.ix;
			prop.rd.setGroupProperty(_propertyGroup);

			function interfaceFunction(value){
				if(shape.r.ix === value || 'Round Corners 1' === value){
					return interfaceFunction.radius;
				}

			}
			Object.defineProperties(interfaceFunction, {
				'radius': {
					get: ExpressionPropertyInterface(prop.rd)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function repeaterInterfaceFactory(shape,view,propertyGroup){
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			var prop = view;
			interfaceFunction.propertyIndex = shape.ix;
			prop.c.setGroupProperty(_propertyGroup);
			prop.o.setGroupProperty(_propertyGroup);

			function interfaceFunction(value){
				if(shape.c.ix === value || 'Copies' === value){
					return interfaceFunction.copies;
				} else if(shape.o.ix === value || 'Offset' === value){
					return interfaceFunction.offset;
				}

			}
			Object.defineProperties(interfaceFunction, {
				'copies': {
					get: ExpressionPropertyInterface(prop.c)
				},
				'offset': {
					get: ExpressionPropertyInterface(prop.o)
				},
				'_name': { value: shape.nm }
			});
			interfaceFunction.mn = shape.mn;
			return interfaceFunction;
		}

		function pathInterfaceFactory(shape,view,propertyGroup){
			var prop = view.sh;
			function _propertyGroup(val){
				if(val == 1){
					return interfaceFunction;
				} else {
					return propertyGroup(--val);
				}
			}
			prop.setGroupProperty(_propertyGroup);

			function interfaceFunction(val){
				if(val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2){
					return interfaceFunction.path;
				}
			}
			Object.defineProperties(interfaceFunction, {
				'path': {
					get: function(){
						if(prop.k){
							prop.getValue();
						}
						return prop;
					}
				},
				'shape': {
					get: function(){
						if(prop.k){
							prop.getValue();
						}
						return prop;
					}
				},
				'_name': { value: shape.nm },
				'ix': { value: shape.ix },
				'propertyIndex': { value: shape.ix },
				'mn': { value: shape.mn }
			});
			return interfaceFunction;
		}

		return function(shapes,view,propertyGroup) {
			var interfaces;
			function _interfaceFunction(value){
				if(typeof value === 'number'){
					return interfaces[value-1];
				} else {
					var i = 0, len = interfaces.length;
					while(i<len){
						if(interfaces[i]._name === value){
							return interfaces[i];
						}
						i+=1;
					}
				}
			}
			_interfaceFunction.propertyGroup = propertyGroup;
			interfaces = iterateElements(shapes, view, _interfaceFunction);
			_interfaceFunction.numProperties = interfaces.length;
			return _interfaceFunction;
		};
	}());

	var TextExpressionInterface = (function(){
		return function(elem){
			var _prevValue, _sourceText;
			function _thisLayerFunction(){
			}
			Object.defineProperty(_thisLayerFunction, "sourceText", {
				get: function(){
					elem.textProperty.getValue()
					var stringValue = elem.textProperty.currentData.t;
					if(stringValue !== _prevValue) {
						elem.textProperty.currentData.t = _prevValue;
						_sourceText = new String(stringValue);
						//If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive
						_sourceText.value = stringValue ? stringValue : new String(stringValue);
					}
					return _sourceText;
				}
			});
			return _thisLayerFunction;
		};
	}());
	var LayerExpressionInterface = (function (){
		function toWorld(arr, time){
			var toWorldMat = new Matrix();
			toWorldMat.reset();
			var transformMat;
			if(time) {
				//Todo implement value at time on transform properties
				//transformMat = this._elem.finalTransform.mProp.getValueAtTime(time);
				transformMat = this._elem.finalTransform.mProp;
			} else {
				transformMat = this._elem.finalTransform.mProp;
			}
			transformMat.applyToMatrix(toWorldMat);
			if(this._elem.hierarchy && this._elem.hierarchy.length){
				var i, len = this._elem.hierarchy.length;
				for(i=0;i<len;i+=1){
					this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);
				}
				return toWorldMat.applyToPointArray(arr[0],arr[1],arr[2]||0);
			}
			return toWorldMat.applyToPointArray(arr[0],arr[1],arr[2]||0);
		}
		function fromWorld(arr, time){
			var toWorldMat = new Matrix();
			toWorldMat.reset();
			var transformMat;
			if(time) {
				//Todo implement value at time on transform properties
				//transformMat = this._elem.finalTransform.mProp.getValueAtTime(time);
				transformMat = this._elem.finalTransform.mProp;
			} else {
				transformMat = this._elem.finalTransform.mProp;
			}
			transformMat.applyToMatrix(toWorldMat);
			if(this._elem.hierarchy && this._elem.hierarchy.length){
				var i, len = this._elem.hierarchy.length;
				for(i=0;i<len;i+=1){
					this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);
				}
				return toWorldMat.inversePoint(arr);
			}
			return toWorldMat.inversePoint(arr);
		}
		function fromComp(arr){
			var toWorldMat = new Matrix();
			toWorldMat.reset();
			this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);
			if(this._elem.hierarchy && this._elem.hierarchy.length){
				var i, len = this._elem.hierarchy.length;
				for(i=0;i<len;i+=1){
					this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);
				}
				return toWorldMat.inversePoint(arr);
			}
			return toWorldMat.inversePoint(arr);
		}

		function sampleImage() {
			return [1,1,1,1];
		}


		return function(elem){

			var transformInterface;

			function _registerMaskInterface(maskManager){
				_thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);
			}
			function _registerEffectsInterface(effects){
				_thisLayerFunction.effect = effects;
			}

			function _thisLayerFunction(name){
				switch(name){
					case "ADBE Root Vectors Group":
					case "Contents":
					case 2:
						return _thisLayerFunction.shapeInterface;
					case 1:
					case 6:
					case "Transform":
					case "transform":
					case "ADBE Transform Group":
						return transformInterface;
					case 4:
					case "ADBE Effect Parade":
					case "effects":
					case "Effects":
						return _thisLayerFunction.effect;
				}
			}
			_thisLayerFunction.toWorld = toWorld;
			_thisLayerFunction.fromWorld = fromWorld;
			_thisLayerFunction.toComp = toWorld;
			_thisLayerFunction.fromComp = fromComp;
			_thisLayerFunction.sampleImage = sampleImage;
			_thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);
			_thisLayerFunction._elem = elem;
			transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);
			var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');
			Object.defineProperties(_thisLayerFunction,{
				hasParent: {
					get: function(){
						return elem.hierarchy.length;
					}
				},
				parent: {
					get: function(){
						return elem.hierarchy[0].layerInterface;
					}
				},
				rotation: getDescriptor(transformInterface, 'rotation'),
				scale: getDescriptor(transformInterface, 'scale'),
				position: getDescriptor(transformInterface, 'position'),
				opacity: getDescriptor(transformInterface, 'opacity'),
				anchorPoint: anchorPointDescriptor,
				anchor_point: anchorPointDescriptor,
				transform: {
					get: function () {
						return transformInterface;
					}
				},
				active: {
					get: function(){
						return elem.isInRange;
					}
				}
			});

			_thisLayerFunction.startTime = elem.data.st;
			_thisLayerFunction.index = elem.data.ind;
			_thisLayerFunction.source = elem.data.refId;
			_thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;
			_thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;
			_thisLayerFunction.inPoint = elem.data.ip/elem.comp.globalData.frameRate;
			_thisLayerFunction.outPoint = elem.data.op/elem.comp.globalData.frameRate;
			_thisLayerFunction._name = elem.data.nm;

			_thisLayerFunction.registerMaskInterface = _registerMaskInterface;
			_thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;
			return _thisLayerFunction;
		};
	}());

	var CompExpressionInterface = (function () {
		return function(comp) {
			function _thisLayerFunction(name) {
				var i = 0, len = comp.layers.length;
				while ( i < len) {
					if (comp.layers[i].nm === name || comp.layers[i].ind === name) {
						return comp.elements[i].layerInterface;
					}
					i += 1;
				}
				return null;
				//return {active:false};
			}
			Object.defineProperty(_thisLayerFunction, "_name", { value: comp.data.nm });
			_thisLayerFunction.layer = _thisLayerFunction;
			_thisLayerFunction.pixelAspect = 1;
			_thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;
			_thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;
			_thisLayerFunction.pixelAspect = 1;
			_thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;
			_thisLayerFunction.displayStartTime = 0;
			_thisLayerFunction.numLayers = comp.layers.length;
			return _thisLayerFunction;
		};
	}());
	var TransformExpressionInterface = (function (){
		return function(transform){
			function _thisFunction(name){
				switch(name){
					case "scale":
					case "Scale":
					case "ADBE Scale":
					case 6:
						return _thisFunction.scale;
					case "rotation":
					case "Rotation":
					case "ADBE Rotation":
					case "ADBE Rotate Z":
					case 10:
						return _thisFunction.rotation;
					case "ADBE Rotate X":
						return _thisFunction.xRotation;
					case "ADBE Rotate Y":
						return _thisFunction.yRotation;
					case "position":
					case "Position":
					case "ADBE Position":
					case 2:
						return _thisFunction.position;
					case 'ADBE Position_0':
						return _thisFunction.xPosition;
					case 'ADBE Position_1':
						return _thisFunction.yPosition;
					case 'ADBE Position_2':
						return _thisFunction.zPosition;
					case "anchorPoint":
					case "AnchorPoint":
					case "Anchor Point":
					case "ADBE AnchorPoint":
					case 1:
						return _thisFunction.anchorPoint;
					case "opacity":
					case "Opacity":
					case 11:
						return _thisFunction.opacity;
				}
			}

			Object.defineProperty(_thisFunction, "rotation", {
				get: ExpressionPropertyInterface(transform.r || transform.rz)
			});

			Object.defineProperty(_thisFunction, "zRotation", {
				get: ExpressionPropertyInterface(transform.rz || transform.r)
			});

			Object.defineProperty(_thisFunction, "xRotation", {
				get: ExpressionPropertyInterface(transform.rx)
			});

			Object.defineProperty(_thisFunction, "yRotation", {
				get: ExpressionPropertyInterface(transform.ry)
			});
			Object.defineProperty(_thisFunction, "scale", {
				get: ExpressionPropertyInterface(transform.s)
			});

			if(transform.p) {
				var _transformFactory = ExpressionPropertyInterface(transform.p);
			}
			Object.defineProperty(_thisFunction, "position", {
				get: function () {
					if(transform.p) {
						return _transformFactory();
					} else {
						return [transform.px.v, transform.py.v, transform.pz ? transform.pz.v : 0];
					}
				}
			});

			Object.defineProperty(_thisFunction, "xPosition", {
				get: ExpressionPropertyInterface(transform.px)
			});

			Object.defineProperty(_thisFunction, "yPosition", {
				get: ExpressionPropertyInterface(transform.py)
			});

			Object.defineProperty(_thisFunction, "zPosition", {
				get: ExpressionPropertyInterface(transform.pz)
			});

			Object.defineProperty(_thisFunction, "anchorPoint", {
				get: ExpressionPropertyInterface(transform.a)
			});

			Object.defineProperty(_thisFunction, "opacity", {
				get: ExpressionPropertyInterface(transform.o)
			});

			Object.defineProperty(_thisFunction, "skew", {
				get: ExpressionPropertyInterface(transform.sk)
			});

			Object.defineProperty(_thisFunction, "skewAxis", {
				get: ExpressionPropertyInterface(transform.sa)
			});

			Object.defineProperty(_thisFunction, "orientation", {
				get: ExpressionPropertyInterface(transform.or)
			});

			return _thisFunction;
		};
	}());
	var ProjectInterface = (function (){

		function registerComposition(comp){
			this.compositions.push(comp);
		}

		return function(){
			function _thisProjectFunction(name){
				var i = 0, len = this.compositions.length;
				while(i<len){
					if(this.compositions[i].data && this.compositions[i].data.nm === name){
						if(this.compositions[i].prepareFrame && this.compositions[i].data.xt) {
							this.compositions[i].prepareFrame(this.currentFrame);
						}
						return this.compositions[i].compInterface;
					}
					i+=1;
				}
			}

			_thisProjectFunction.compositions = [];
			_thisProjectFunction.currentFrame = 0;

			_thisProjectFunction.registerComposition = registerComposition;



			return _thisProjectFunction;
		};
	}());
	var EffectsExpressionInterface = (function (){
		var ob = {
			createEffectsInterface: createEffectsInterface
		};

		function createEffectsInterface(elem, propertyGroup){
			if(elem.effectsManager){

				var effectElements = [];
				var effectsData = elem.data.ef;
				var i, len = elem.effectsManager.effectElements.length;
				for(i=0;i<len;i+=1){
					effectElements.push(createGroupInterface(effectsData[i],elem.effectsManager.effectElements[i],propertyGroup,elem));
				}

				return function(name){
					var effects = elem.data.ef || [], i = 0, len = effects.length;
					while(i<len) {
						if(name === effects[i].nm || name === effects[i].mn || name === effects[i].ix){
							return effectElements[i];
						}
						i += 1;
					}
				};
			}
		}

		function createGroupInterface(data,elements, propertyGroup, elem){
			var effectElements = [];
			var i, len = data.ef.length;
			for(i=0;i<len;i+=1){
				if(data.ef[i].ty === 5){
					effectElements.push(createGroupInterface(data.ef[i],elements.effectElements[i],elements.effectElements[i].propertyGroup, elem));
				} else {
					effectElements.push(createValueInterface(elements.effectElements[i],data.ef[i].ty, elem, _propertyGroup));
				}
			}

			function _propertyGroup(val) {
				if(val === 1){
					return groupInterface;
				} else{
					return propertyGroup(val-1);
				}
			}

			var groupInterface = function(name){
				var effects = data.ef, i = 0, len = effects.length;
				while(i<len) {
					if(name === effects[i].nm || name === effects[i].mn || name === effects[i].ix){
						if(effects[i].ty === 5){
							return effectElements[i];
						} else {
							return effectElements[i]();
						}
					}
					i += 1;
				}
				return effectElements[0]();
			};

			groupInterface.propertyGroup = _propertyGroup;

			if(data.mn === 'ADBE Color Control'){
				Object.defineProperty(groupInterface, 'color', {
					get: function(){
						return effectElements[0]();
					}
				});
			}
			Object.defineProperty(groupInterface, 'numProperties', {
				get: function(){
					return data.np;
				}
			});
			groupInterface.active = groupInterface.enabled = data.en !== 0;
			return groupInterface;
		}

		function createValueInterface(element, type, elem, propertyGroup){
			var expressionProperty = ExpressionPropertyInterface(element.p);
			function interfaceFunction(){
				if(type === 10){
					return elem.comp.compInterface(element.p.v);
				}
				return expressionProperty();
			}

			if(element.p.setGroupProperty) {
				element.p.setGroupProperty(propertyGroup);
			}

			return interfaceFunction;
		}

		return ob;

	}());
	var MaskManagerInterface = (function(){

		function MaskInterface(mask, data){
			this._mask = mask;
			this._data = data;
		}
		Object.defineProperty(MaskInterface.prototype, 'maskPath', {
			get: function(){
				if(this._mask.prop.k){
					this._mask.prop.getValue();
				}
				return this._mask.prop;
			}
		});
		Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {
			get: function(){
				if(this._mask.op.k){
					this._mask.op.getValue();
				}
				return this._mask.op.v * 100;
			}
		});

		var MaskManager = function(maskManager, elem){
			var _maskManager = maskManager;
			var _elem = elem;
			var _masksInterfaces = createSizedArray(maskManager.viewData.length);
			var i, len = maskManager.viewData.length;
			for(i = 0; i < len; i += 1) {
				_masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);
			}

			var maskFunction = function(name){
				i = 0;
				while(i<len){
					if(maskManager.masksProperties[i].nm === name){
						return _masksInterfaces[i];
					}
					i += 1;
				}
			};
			return maskFunction;
		};
		return MaskManager;
	}());

	var ExpressionPropertyInterface = (function() {

		var defaultUnidimensionalValue = {pv:0, v:0, mult: 1}
		var defaultMultidimensionalValue = {pv:[0,0,0], v:[0,0,0], mult: 1}

		function completeProperty(expressionValue, property, type) {
			Object.defineProperty(expressionValue, 'velocity', {
				get: function(){
					return property.getVelocityAtTime(property.comp.currentFrame);
				}
			});
			expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;
			expressionValue.key = function(pos) {
				if (!expressionValue.numKeys) {
					return 0;
				} else {
					var value = '';
					if ('s' in property.keyframes[pos-1]) {
						value = property.keyframes[pos-1].s;
					} else if ('e' in property.keyframes[pos-2]) {
						value = property.keyframes[pos-2].e;
					} else {
						value = property.keyframes[pos-2].s;
					}
					var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value);
					valueProp.time = property.keyframes[pos-1].t / property.elem.comp.globalData.frameRate;
					return valueProp;
				}
			};
			expressionValue.valueAtTime = property.getValueAtTime;
			expressionValue.speedAtTime = property.getSpeedAtTime;
			expressionValue.velocityAtTime = property.getVelocityAtTime;
			expressionValue.propertyGroup = property.propertyGroup;
		}

		function UnidimensionalPropertyInterface(property) {
			if(!property || !('pv' in property)) {
				property = defaultUnidimensionalValue;
			}
			var mult = 1 / property.mult;
			var val = property.pv * mult;
			var expressionValue = new Number(val);
			expressionValue.value = val;
			completeProperty(expressionValue, property, 'unidimensional');

			return function() {
				if (property.k) {
					property.getValue();
				}
				val = property.v * mult;
				if(expressionValue.value !== val) {
					expressionValue = new Number(val);
					expressionValue.value = val;
					completeProperty(expressionValue, property, 'unidimensional');
				}
				return expressionValue;
			}
		}

		function MultidimensionalPropertyInterface(property) {
			if(!property || !('pv' in property)) {
				property = defaultMultidimensionalValue;
			}
			var mult = 1 / property.mult;
			var len = property.pv.length;
			var expressionValue = createTypedArray('float32', len);
			var arrValue = createTypedArray('float32', len);
			expressionValue.value = arrValue;
			completeProperty(expressionValue, property, 'multidimensional');

			return function() {
				if (property.k) {
					property.getValue();
				}
				for (var i = 0; i < len; i += 1) {
					expressionValue[i] = arrValue[i] = property.v[i] * mult;
				}
				return expressionValue;
			}
		}

		//TODO: try to avoid using this getter
		function defaultGetter() {
			return defaultUnidimensionalValue;
		}

		return function(property) {
			if(!property) {
				return defaultGetter;
			} else if (property.propType === 'unidimensional') {
				return UnidimensionalPropertyInterface(property);
			} else {
				return MultidimensionalPropertyInterface(property);
			}
		}
	}());

	(function(){

		var TextExpressionSelectorProp = (function(){

			function getValueProxy(index,total){
				this.textIndex = index+1;
				this.textTotal = total;
				this.v = this.getValue() * this.mult;
				return this.v;
			}

			return function TextExpressionSelectorProp(elem,data){
				this.pv = 1;
				this.comp = elem.comp;
				this.elem = elem;
				this.mult = 0.01;
				this.propType = 'textSelector';
				this.textTotal = data.totalChars;
				this.selectorValue = 100;
				this.lastValue = [1,1,1];
				this.k = true;
				this.x = true;
				this.getValue = ExpressionManager.initiateExpression.bind(this)(elem,data,this);
				this.getMult = getValueProxy;
				this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;
				if(this.kf){
					this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);
				} else {
					this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);
				}
				this.setGroupProperty = expressionHelpers.setGroupProperty;
			};
		}());

		var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;
		TextSelectorProp.getTextSelectorProp = function(elem, data,arr){
			if(data.t === 1){
				return new TextExpressionSelectorProp(elem, data,arr);
			} else {
				return propertyGetTextProp(elem,data,arr);
			}
		};
	}());
	function SliderEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,0,0,container);
	}
	function AngleEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,0,0,container);
	}
	function ColorEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,1,0,container);
	}
	function PointEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,1,0,container);
	}
	function LayerIndexEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,0,0,container);
	}
	function MaskIndexEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,0,0,container);
	}
	function CheckboxEffect(data,elem, container){
		this.p = PropertyFactory.getProp(elem,data.v,0,0,container);
	}
	function NoValueEffect(){
		this.p = {};
	}
	function EffectsManager(){}
	function EffectsManager(data,element){
		var effects = data.ef || [];
		this.effectElements = [];
		var i,len = effects.length;
		var effectItem;
		for(i=0;i<len;i++) {
			effectItem = new GroupEffect(effects[i],element);
			this.effectElements.push(effectItem);
		}
	}

	function GroupEffect(data,element){
		this.init(data,element);
	}

	extendPrototype([DynamicPropertyContainer], GroupEffect);

	GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;

	GroupEffect.prototype.init = function(data,element){
		this.data = data;
		this.effectElements = [];
		this.initDynamicPropertyContainer(element);
		var i, len = this.data.ef.length;
		var eff, effects = this.data.ef;
		for(i=0;i<len;i+=1){
			eff = null;
			switch(effects[i].ty){
				case 0:
					eff = new SliderEffect(effects[i],element,this);
					break;
				case 1:
					eff = new AngleEffect(effects[i],element,this);
					break;
				case 2:
					eff = new ColorEffect(effects[i],element,this);
					break;
				case 3:
					eff = new PointEffect(effects[i],element,this);
					break;
				case 4:
				case 7:
					eff = new CheckboxEffect(effects[i],element,this);
					break;
				case 10:
					eff = new LayerIndexEffect(effects[i],element,this);
					break;
				case 11:
					eff = new MaskIndexEffect(effects[i],element,this);
					break;
				case 5:
					eff = new EffectsManager(effects[i],element,this);
					break;
				//case 6:
				default:
					eff = new NoValueEffect(effects[i],element,this);
					break;
			}
			if(eff) {
				this.effectElements.push(eff);
			}
		}
	};

	var lottie = {};

	var _isFrozen = false;

	function setLocationHref (href) {
		locationHref = href;
	}

	function searchAnimations() {
		if (standalone === true) {
			animationManager.searchAnimations(animationData, standalone, renderer);
		} else {
			animationManager.searchAnimations();
		}
	}

	function setSubframeRendering(flag) {
		subframeEnabled = flag;
	}

	function loadAnimation(params) {
		if (standalone === true) {
			params.animationData = JSON.parse(animationData);
		}
		return animationManager.loadAnimation(params);
	}

	function setQuality(value) {
		if (typeof value === 'string') {
			switch (value) {
				case 'high':
					defaultCurveSegments = 200;
					break;
				case 'medium':
					defaultCurveSegments = 50;
					break;
				case 'low':
					defaultCurveSegments = 10;
					break;
			}
		} else if (!isNaN(value) && value > 1) {
			defaultCurveSegments = value;
		}
		if (defaultCurveSegments >= 50) {
			roundValues(false);
		} else {
			roundValues(true);
		}
	}

	function inBrowser() {
		return typeof navigator !== 'undefined';
	}

	function installPlugin(type, plugin) {
		if (type === 'expressions') {
			expressionsPlugin = plugin;
		}
	}

	function getFactory(name) {
		switch (name) {
			case "propertyFactory":
				return PropertyFactory;
			case "shapePropertyFactory":
				return ShapePropertyFactory;
			case "matrix":
				return Matrix;
		}
	}

	lottie.play = animationManager.play;
	lottie.pause = animationManager.pause;
	lottie.setLocationHref = setLocationHref;
	lottie.togglePause = animationManager.togglePause;
	lottie.setSpeed = animationManager.setSpeed;
	lottie.setDirection = animationManager.setDirection;
	lottie.stop = animationManager.stop;
	lottie.searchAnimations = searchAnimations;
	lottie.registerAnimation = animationManager.registerAnimation;
	lottie.loadAnimation = loadAnimation;
	lottie.setSubframeRendering = setSubframeRendering;
	lottie.resize = animationManager.resize;
//lottie.start = start;
	lottie.goToAndStop = animationManager.goToAndStop;
	lottie.destroy = animationManager.destroy;
	lottie.setQuality = setQuality;
	lottie.inBrowser = inBrowser;
	lottie.installPlugin = installPlugin;
	lottie.freeze = animationManager.freeze;
	lottie.unfreeze = animationManager.unfreeze;
	lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;
	lottie.__getFactory = getFactory;
	lottie.version = '5.6.8';

	function checkReady() {
		if (document.readyState === "complete") {
			clearInterval(readyStateCheckInterval);
			searchAnimations();
		}
	}

	function getQueryVariable(variable) {
		var vars = queryString.split('&');
		for (var i = 0; i < vars.length; i++) {
			var pair = vars[i].split('=');
			if (decodeURIComponent(pair[0]) == variable) {
				return decodeURIComponent(pair[1]);
			}
		}
	}
	var standalone = '__[STANDALONE]__';
	var animationData = '__[ANIMATIONDATA]__';
	var renderer = '';
	if (standalone) {
		var scripts = document.getElementsByTagName('script');
		var index = scripts.length - 1;
		var myScript = scripts[index] || {
			src: ''
		};
		var queryString = myScript.src.replace(/^[^\?]+\??/, '');
		renderer = getQueryVariable('renderer');
	}
	var readyStateCheckInterval = setInterval(checkReady, 100);

	return lottie;
}));
PK!ь�#z!z!"assets/lib/sticky/jquery.sticky.jsnu�[���/*
 * By Elementor Team
 */
( function( $ ) {
	var Sticky = function( element, userSettings ) {
		var $element,
			isSticky = false,
			isFollowingParent = false,
			isReachedEffectsPoint = false,
			elements = {},
			settings;

		var defaultSettings = {
			to: 'top',
			offset: 0,
			effectsOffset: 0,
			parent: false,
			classes: {
				sticky: 'sticky',
				stickyActive: 'sticky-active',
				stickyEffects: 'sticky-effects',
				spacer: 'sticky-spacer',
			},
		};

		var initElements = function() {
			$element = $( element ).addClass( settings.classes.sticky );

			elements.$window = $( window );

			if ( settings.parent ) {
				if ( 'parent' === settings.parent ) {
					elements.$parent = $element.parent();
				} else {
					elements.$parent = $element.closest( settings.parent );
				}
			}
		};

		var initSettings = function() {
			settings = jQuery.extend( true, defaultSettings, userSettings );
		};

		var bindEvents = function() {
			elements.$window.on( {
				scroll: onWindowScroll,
				resize: onWindowResize,
			} );
		};

		var unbindEvents = function() {
			elements.$window
				.off( 'scroll', onWindowScroll )
				.off( 'resize', onWindowResize );
		};

		var init = function() {
			initSettings();

			initElements();

			bindEvents();

			checkPosition();
		};

		var backupCSS = function( $elementBackupCSS, backupState, properties ) {
			var css = {},
				elementStyle = $elementBackupCSS[ 0 ].style;

			properties.forEach( function( property ) {
				css[ property ] = undefined !== elementStyle[ property ] ? elementStyle[ property ] : '';
			} );

			$elementBackupCSS.data( 'css-backup-' + backupState, css );
		};

		var getCSSBackup = function( $elementCSSBackup, backupState ) {
			return $elementCSSBackup.data( 'css-backup-' + backupState );
		};

		var addSpacer = function() {
			elements.$spacer = $element.clone()
				.addClass( settings.classes.spacer )
				.css( {
					visibility: 'hidden',
					transition: 'none',
					animation: 'none',
				} );

			$element.after( elements.$spacer );
		};

		var removeSpacer = function() {
			elements.$spacer.remove();
		};

		var stickElement = function() {
			backupCSS( $element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom' ] );

			var css = {
				position: 'fixed',
				width: getElementOuterSize( $element, 'width' ),
				marginTop: 0,
				marginBottom: 0,
			};

			css[ settings.to ] = settings.offset;

			css[ 'top' === settings.to ? 'bottom' : 'top' ] = '';

			$element
				.css( css )
				.addClass( settings.classes.stickyActive );
		};

		var unstickElement = function() {
			$element
				.css( getCSSBackup( $element, 'unsticky' ) )
				.removeClass( settings.classes.stickyActive );
		};

		var followParent = function() {
			backupCSS( elements.$parent, 'childNotFollowing', [ 'position' ] );

			elements.$parent.css( 'position', 'relative' );

			backupCSS( $element, 'notFollowing', [ 'position', 'top', 'bottom' ] );

			var css = {
				position: 'absolute',
			};

			css[ settings.to ] = '';

			css[ 'top' === settings.to ? 'bottom' : 'top' ] = 0;

			$element.css( css );

			isFollowingParent = true;
		};

		var unfollowParent = function() {
			elements.$parent.css( getCSSBackup( elements.$parent, 'childNotFollowing' ) );

			$element.css( getCSSBackup( $element, 'notFollowing' ) );

			isFollowingParent = false;
		};

		var getElementOuterSize = function( $elementOuterSize, dimension, includeMargins ) {
			var computedStyle = getComputedStyle( $elementOuterSize[ 0 ] ),
				elementSize = parseFloat( computedStyle[ dimension ] ),
				sides = 'height' === dimension ? [ 'top', 'bottom' ] : [ 'left', 'right' ],
				propertiesToAdd = [];

			if ( 'border-box' !== computedStyle.boxSizing ) {
				propertiesToAdd.push( 'border', 'padding' );
			}

			if ( includeMargins ) {
				propertiesToAdd.push( 'margin' );
			}

			propertiesToAdd.forEach( function( property ) {
				sides.forEach( function( side ) {
					elementSize += parseFloat( computedStyle[ property + '-' + side ] );
				} );
			} );

			return elementSize;
		};

		var getElementViewportOffset = function( $elementViewportOffset ) {
			var windowScrollTop = elements.$window.scrollTop(),
				elementHeight = getElementOuterSize( $elementViewportOffset, 'height' ),
				viewportHeight = innerHeight,
				elementOffsetFromTop = $elementViewportOffset.offset().top,
				distanceFromTop = elementOffsetFromTop - windowScrollTop,
				topFromBottom = distanceFromTop - viewportHeight;

			return {
				top: {
					fromTop: distanceFromTop,
					fromBottom: topFromBottom,
				},
				bottom: {
					fromTop: distanceFromTop + elementHeight,
					fromBottom: topFromBottom + elementHeight,
				},
			};
		};

		var stick = function() {
			addSpacer();

			stickElement();

			isSticky = true;

			$element.trigger( 'sticky:stick' );
		};

		var unstick = function() {
			unstickElement();

			removeSpacer();

			isSticky = false;

			$element.trigger( 'sticky:unstick' );
		};

		var checkParent = function() {
			var elementOffset = getElementViewportOffset( $element ),
				isTop = 'top' === settings.to;

			if ( isFollowingParent ) {
				var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset;

				if ( isNeedUnfollowing ) {
					unfollowParent();
				}
			} else {
				var parentOffset = getElementViewportOffset( elements.$parent ),
					parentStyle = getComputedStyle( elements.$parent[ 0 ] ),
					borderWidthToDecrease = parseFloat( parentStyle[ isTop ? 'borderBottomWidth' : 'borderTopWidth' ] ),
					parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease,
					isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom;

				if ( isNeedFollowing ) {
					followParent();
				}
			}
		};

		var checkEffectsPoint = function( distanceFromTriggerPoint ) {
			if ( isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset ) {
				$element.removeClass( settings.classes.stickyEffects );

				isReachedEffectsPoint = false;
			} else if ( ! isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset ) {
				$element.addClass( settings.classes.stickyEffects );

				isReachedEffectsPoint = true;
			}
		};

		var checkPosition = function() {
			var offset = settings.offset,
				distanceFromTriggerPoint;

			if ( isSticky ) {
				var spacerViewportOffset = getElementViewportOffset( elements.$spacer );

				distanceFromTriggerPoint = 'top' === settings.to ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset;

				if ( settings.parent ) {
					checkParent();
				}

				if ( distanceFromTriggerPoint > 0 ) {
					unstick();
				}
			} else {
				var elementViewportOffset = getElementViewportOffset( $element );

				distanceFromTriggerPoint = 'top' === settings.to ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset;

				if ( distanceFromTriggerPoint <= 0 ) {
					stick();

					if ( settings.parent ) {
						checkParent();
					}
				}
			}

			checkEffectsPoint( distanceFromTriggerPoint );
		};

		var onWindowScroll = function() {
			checkPosition();
		};

		var onWindowResize = function() {
			if ( ! isSticky ) {
				return;
			}

			unstickElement();

			stickElement();

			if ( settings.parent ) {
				// Force recalculation of the relation between the element and its parent
				isFollowingParent = false;

				checkParent();
			}
		};

		this.destroy = function() {
			if ( isSticky ) {
				unstick();
			}

			unbindEvents();

			$element.removeClass( settings.classes.sticky );
		};

		init();
	};

	$.fn.sticky = function( settings ) {
		var isCommand = 'string' === typeof settings;

		this.each( function() {
			var $this = $( this );

			if ( ! isCommand ) {
				$this.data( 'sticky', new Sticky( this, settings ) );

				return;
			}

			var instance = $this.data( 'sticky' );

			if ( ! instance ) {
				throw Error( 'Trying to perform the `' + settings + '` method prior to initialization' );
			}

			if ( ! instance[ settings ] ) {
				throw ReferenceError( 'Method `' + settings + '` not found in sticky instance' );
			}

			instance[ settings ].apply( instance, Array.prototype.slice.call( arguments, 1 ) );

			if ( 'destroy' === settings ) {
				$this.removeData( 'sticky' );
			}
		} );

		return this;
	};

	window.Sticky = Sticky;
} )( jQuery );
PK!�c���&assets/lib/sticky/jquery.sticky.min.jsnu�[���(function($){var Sticky=function(element,userSettings){var $element,isSticky=false,isFollowingParent=false,isReachedEffectsPoint=false,elements={},settings;var defaultSettings={to:"top",offset:0,effectsOffset:0,parent:false,classes:{sticky:"sticky",stickyActive:"sticky-active",stickyEffects:"sticky-effects",spacer:"sticky-spacer"}};var initElements=function(){$element=$(element).addClass(settings.classes.sticky);elements.$window=$(window);if(settings.parent){if("parent"===settings.parent){elements.$parent=$element.parent()}else{elements.$parent=$element.closest(settings.parent)}}};var initSettings=function(){settings=jQuery.extend(true,defaultSettings,userSettings)};var bindEvents=function(){elements.$window.on({scroll:onWindowScroll,resize:onWindowResize})};var unbindEvents=function(){elements.$window.off("scroll",onWindowScroll).off("resize",onWindowResize)};var init=function(){initSettings();initElements();bindEvents();checkPosition()};var backupCSS=function($elementBackupCSS,backupState,properties){var css={},elementStyle=$elementBackupCSS[0].style;properties.forEach(function(property){css[property]=undefined!==elementStyle[property]?elementStyle[property]:""});$elementBackupCSS.data("css-backup-"+backupState,css)};var getCSSBackup=function($elementCSSBackup,backupState){return $elementCSSBackup.data("css-backup-"+backupState)};var addSpacer=function(){elements.$spacer=$element.clone().addClass(settings.classes.spacer).css({visibility:"hidden",transition:"none",animation:"none"});$element.after(elements.$spacer)};var removeSpacer=function(){elements.$spacer.remove()};var stickElement=function(){backupCSS($element,"unsticky",["position","width","margin-top","margin-bottom","top","bottom"]);var css={position:"fixed",width:getElementOuterSize($element,"width"),marginTop:0,marginBottom:0};css[settings.to]=settings.offset;css["top"===settings.to?"bottom":"top"]="";$element.css(css).addClass(settings.classes.stickyActive)};var unstickElement=function(){$element.css(getCSSBackup($element,"unsticky")).removeClass(settings.classes.stickyActive)};var followParent=function(){backupCSS(elements.$parent,"childNotFollowing",["position"]);elements.$parent.css("position","relative");backupCSS($element,"notFollowing",["position","top","bottom"]);var css={position:"absolute"};css[settings.to]="";css["top"===settings.to?"bottom":"top"]=0;$element.css(css);isFollowingParent=true};var unfollowParent=function(){elements.$parent.css(getCSSBackup(elements.$parent,"childNotFollowing"));$element.css(getCSSBackup($element,"notFollowing"));isFollowingParent=false};var getElementOuterSize=function($elementOuterSize,dimension,includeMargins){var computedStyle=getComputedStyle($elementOuterSize[0]),elementSize=parseFloat(computedStyle[dimension]),sides="height"===dimension?["top","bottom"]:["left","right"],propertiesToAdd=[];if("border-box"!==computedStyle.boxSizing){propertiesToAdd.push("border","padding")}if(includeMargins){propertiesToAdd.push("margin")}propertiesToAdd.forEach(function(property){sides.forEach(function(side){elementSize+=parseFloat(computedStyle[property+"-"+side])})});return elementSize};var getElementViewportOffset=function($elementViewportOffset){var windowScrollTop=elements.$window.scrollTop(),elementHeight=getElementOuterSize($elementViewportOffset,"height"),viewportHeight=innerHeight,elementOffsetFromTop=$elementViewportOffset.offset().top,distanceFromTop=elementOffsetFromTop-windowScrollTop,topFromBottom=distanceFromTop-viewportHeight;return{top:{fromTop:distanceFromTop,fromBottom:topFromBottom},bottom:{fromTop:distanceFromTop+elementHeight,fromBottom:topFromBottom+elementHeight}}};var stick=function(){addSpacer();stickElement();isSticky=true;$element.trigger("sticky:stick")};var unstick=function(){unstickElement();removeSpacer();isSticky=false;$element.trigger("sticky:unstick")};var checkParent=function(){var elementOffset=getElementViewportOffset($element),isTop="top"===settings.to;if(isFollowingParent){var isNeedUnfollowing=isTop?elementOffset.top.fromTop>settings.offset:elementOffset.bottom.fromBottom<-settings.offset;if(isNeedUnfollowing){unfollowParent()}}else{var parentOffset=getElementViewportOffset(elements.$parent),parentStyle=getComputedStyle(elements.$parent[0]),borderWidthToDecrease=parseFloat(parentStyle[isTop?"borderBottomWidth":"borderTopWidth"]),parentViewportDistance=isTop?parentOffset.bottom.fromTop-borderWidthToDecrease:parentOffset.top.fromBottom+borderWidthToDecrease,isNeedFollowing=isTop?parentViewportDistance<=elementOffset.bottom.fromTop:parentViewportDistance>=elementOffset.top.fromBottom;if(isNeedFollowing){followParent()}}};var checkEffectsPoint=function(distanceFromTriggerPoint){if(isReachedEffectsPoint&&-distanceFromTriggerPoint<settings.effectsOffset){$element.removeClass(settings.classes.stickyEffects);isReachedEffectsPoint=false}else if(!isReachedEffectsPoint&&-distanceFromTriggerPoint>=settings.effectsOffset){$element.addClass(settings.classes.stickyEffects);isReachedEffectsPoint=true}};var checkPosition=function(){var offset=settings.offset,distanceFromTriggerPoint;if(isSticky){var spacerViewportOffset=getElementViewportOffset(elements.$spacer);distanceFromTriggerPoint="top"===settings.to?spacerViewportOffset.top.fromTop-offset:-spacerViewportOffset.bottom.fromBottom-offset;if(settings.parent){checkParent()}if(distanceFromTriggerPoint>0){unstick()}}else{var elementViewportOffset=getElementViewportOffset($element);distanceFromTriggerPoint="top"===settings.to?elementViewportOffset.top.fromTop-offset:-elementViewportOffset.bottom.fromBottom-offset;if(distanceFromTriggerPoint<=0){stick();if(settings.parent){checkParent()}}}checkEffectsPoint(distanceFromTriggerPoint)};var onWindowScroll=function(){checkPosition()};var onWindowResize=function(){if(!isSticky){return}unstickElement();stickElement();if(settings.parent){isFollowingParent=false;checkParent()}};this.destroy=function(){if(isSticky){unstick()}unbindEvents();$element.removeClass(settings.classes.sticky)};init()};$.fn.sticky=function(settings){var isCommand="string"===typeof settings;this.each(function(){var $this=$(this);if(!isCommand){$this.data("sticky",new Sticky(this,settings));return}var instance=$this.data("sticky");if(!instance){throw Error("Trying to perform the `"+settings+"` method prior to initialization")}if(!instance[settings]){throw ReferenceError("Method `"+settings+"` not found in sticky instance")}instance[settings].apply(instance,Array.prototype.slice.call(arguments,1));if("destroy"===settings){$this.removeData("sticky")}});return this};window.Sticky=Sticky})(jQuery);PK!ˆa�$�$.assets/lib/dom-to-image/js/dom-to-image.min.jsnu�[���/*! dom-to-image 10-06-2017 */
/**
 * Dom-To-Image 2.6.0
 * https://github.com/tsayen/dom-to-image
 *
 * Released under the MIT license
 * https://github.com/tsayen/dom-to-image/blob/master/LICENSE
 */
!function(a){"use strict";function b(a,b){function c(a){return b.bgcolor&&(a.style.backgroundColor=b.bgcolor),b.width&&(a.style.width=b.width+"px"),b.height&&(a.style.height=b.height+"px"),b.style&&Object.keys(b.style).forEach(function(c){a.style[c]=b.style[c]}),a}return b=b||{},g(b),Promise.resolve(a).then(function(a){return i(a,b.filter,!0)}).then(j).then(k).then(c).then(function(c){return l(c,b.width||q.width(a),b.height||q.height(a))})}function c(a,b){return h(a,b||{}).then(function(b){return b.getContext("2d").getImageData(0,0,q.width(a),q.height(a)).data})}function d(a,b){return h(a,b||{}).then(function(a){return a.toDataURL()})}function e(a,b){return b=b||{},h(a,b).then(function(a){return a.toDataURL("image/jpeg",b.quality||1)})}function f(a,b){return h(a,b||{}).then(q.canvasToBlob)}function g(a){"undefined"==typeof a.imagePlaceholder?v.impl.options.imagePlaceholder=u.imagePlaceholder:v.impl.options.imagePlaceholder=a.imagePlaceholder,"undefined"==typeof a.cacheBust?v.impl.options.cacheBust=u.cacheBust:v.impl.options.cacheBust=a.cacheBust}function h(a,c){function d(a){var b=document.createElement("canvas");if(b.width=c.width||q.width(a),b.height=c.height||q.height(a),c.bgcolor){var d=b.getContext("2d");d.fillStyle=c.bgcolor,d.fillRect(0,0,b.width,b.height)}return b}return b(a,c).then(q.makeImage).then(q.delay(100)).then(function(b){var c=d(a);return c.getContext("2d").drawImage(b,0,0),c})}function i(a,b,c){function d(a){return a instanceof HTMLCanvasElement?q.makeImage(a.toDataURL()):a.cloneNode(!1)}function e(a,b,c){function d(a,b,c){var d=Promise.resolve();return b.forEach(function(b){d=d.then(function(){return i(b,c)}).then(function(b){b&&a.appendChild(b)})}),d}var e=a.childNodes;return 0===e.length?Promise.resolve(b):d(b,q.asArray(e),c).then(function(){return b})}function f(a,b){function c(){function c(a,b){function c(a,b){q.asArray(a).forEach(function(c){b.setProperty(c,a.getPropertyValue(c),a.getPropertyPriority(c))})}a.cssText?b.cssText=a.cssText:c(a,b)}c(window.getComputedStyle(a),b.style)}function d(){function c(c){function d(a,b,c){function d(a){var b=a.getPropertyValue("content");return a.cssText+" content: "+b+";"}function e(a){function b(b){return b+": "+a.getPropertyValue(b)+(a.getPropertyPriority(b)?" !important":"")}return q.asArray(a).map(b).join("; ")+";"}var f="."+a+":"+b,g=c.cssText?d(c):e(c);return document.createTextNode(f+"{"+g+"}")}var e=window.getComputedStyle(a,c),f=e.getPropertyValue("content");if(""!==f&&"none"!==f){var g=q.uid();b.className=b.className+" "+g;var h=document.createElement("style");h.appendChild(d(g,c,e)),b.appendChild(h)}}[":before",":after"].forEach(function(a){c(a)})}function e(){a instanceof HTMLTextAreaElement&&(b.innerHTML=a.value),a instanceof HTMLInputElement&&b.setAttribute("value",a.value)}function f(){b instanceof SVGElement&&(b.setAttribute("xmlns","http://www.w3.org/2000/svg"),b instanceof SVGRectElement&&["width","height"].forEach(function(a){var c=b.getAttribute(a);c&&b.style.setProperty(a,c)}))}return b instanceof Element?Promise.resolve().then(c).then(d).then(e).then(f).then(function(){return b}):b}return c||!b||b(a)?Promise.resolve(a).then(d).then(function(c){return e(a,c,b)}).then(function(b){return f(a,b)}):Promise.resolve()}function j(a){return s.resolveAll().then(function(b){var c=document.createElement("style");return a.appendChild(c),c.appendChild(document.createTextNode(b)),a})}function k(a){return t.inlineAll(a).then(function(){return a})}function l(a,b,c){return Promise.resolve(a).then(function(a){return a.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(a)}).then(q.escapeXhtml).then(function(a){return'<foreignObject x="0" y="0" width="100%" height="100%">'+a+"</foreignObject>"}).then(function(a){return'<svg xmlns="http://www.w3.org/2000/svg" width="'+b+'" height="'+c+'">'+a+"</svg>"}).then(function(a){return"data:image/svg+xml;charset=utf-8,"+a})}function m(){function a(){var a="application/font-woff",b="image/jpeg";return{woff:a,woff2:a,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:b,jpeg:b,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}function b(a){var b=/\.([^\.\/]*?)$/g.exec(a);return b?b[1]:""}function c(c){var d=b(c).toLowerCase();return a()[d]||""}function d(a){return a.search(/^(data:)/)!==-1}function e(a){return new Promise(function(b){for(var c=window.atob(a.toDataURL().split(",")[1]),d=c.length,e=new Uint8Array(d),f=0;f<d;f++)e[f]=c.charCodeAt(f);b(new Blob([e],{type:"image/png"}))})}function f(a){return a.toBlob?new Promise(function(b){a.toBlob(b)}):e(a)}function g(a,b){var c=document.implementation.createHTMLDocument(),d=c.createElement("base");c.head.appendChild(d);var e=c.createElement("a");return c.body.appendChild(e),d.href=b,e.href=a,e.href}function h(){var a=0;return function(){function b(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}return"u"+b()+a++}}function i(a){return new Promise(function(b,c){var d=new Image;d.onload=function(){b(d)},d.onerror=c,d.src=a})}function j(a){var b=3e4;return v.impl.options.cacheBust&&(a+=(/\?/.test(a)?"&":"?")+(new Date).getTime()),new Promise(function(c){function d(){if(4===g.readyState){if(200!==g.status)return void(h?c(h):f("cannot fetch resource: "+a+", status: "+g.status));var b=new FileReader;b.onloadend=function(){var a=b.result.split(/,/)[1];c(a)},b.readAsDataURL(g.response)}}function e(){h?c(h):f("timeout of "+b+"ms occured while fetching resource: "+a)}function f(a){console.error(a),c("")}var g=new XMLHttpRequest;g.onreadystatechange=d,g.ontimeout=e,g.responseType="blob",g.timeout=b,g.open("GET",a,!0),g.send();var h;if(v.impl.options.imagePlaceholder){var i=v.impl.options.imagePlaceholder.split(/,/);i&&i[1]&&(h=i[1])}})}function k(a,b){return"data:"+b+";base64,"+a}function l(a){return a.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")}function m(a){return function(b){return new Promise(function(c){setTimeout(function(){c(b)},a)})}}function n(a){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}function o(a){return a.replace(/#/g,"%23").replace(/\n/g,"%0A")}function p(a){var b=r(a,"border-left-width"),c=r(a,"border-right-width");return a.scrollWidth+b+c}function q(a){var b=r(a,"border-top-width"),c=r(a,"border-bottom-width");return a.scrollHeight+b+c}function r(a,b){var c=window.getComputedStyle(a).getPropertyValue(b);return parseFloat(c.replace("px",""))}return{escape:l,parseExtension:b,mimeType:c,dataAsUrl:k,isDataUrl:d,canvasToBlob:f,resolveUrl:g,getAndEncode:j,uid:h(),delay:m,asArray:n,escapeXhtml:o,makeImage:i,width:p,height:q}}function n(){function a(a){return a.search(e)!==-1}function b(a){for(var b,c=[];null!==(b=e.exec(a));)c.push(b[1]);return c.filter(function(a){return!q.isDataUrl(a)})}function c(a,b,c,d){function e(a){return new RegExp("(url\\(['\"]?)("+q.escape(a)+")(['\"]?\\))","g")}return Promise.resolve(b).then(function(a){return c?q.resolveUrl(a,c):a}).then(d||q.getAndEncode).then(function(a){return q.dataAsUrl(a,q.mimeType(b))}).then(function(c){return a.replace(e(b),"$1"+c+"$3")})}function d(d,e,f){function g(){return!a(d)}return g()?Promise.resolve(d):Promise.resolve(d).then(b).then(function(a){var b=Promise.resolve(d);return a.forEach(function(a){b=b.then(function(b){return c(b,a,e,f)})}),b})}var e=/url\(['"]?([^'"]+?)['"]?\)/g;return{inlineAll:d,shouldProcess:a,impl:{readUrls:b,inline:c}}}function o(){function a(){return b(document).then(function(a){return Promise.all(a.map(function(a){return a.resolve()}))}).then(function(a){return a.join("\n")})}function b(){function a(a){return a.filter(function(a){return a.type===CSSRule.FONT_FACE_RULE}).filter(function(a){return r.shouldProcess(a.style.getPropertyValue("src"))})}function b(a){var b=[];return a.forEach(function(a){try{q.asArray(a.cssRules||[]).forEach(b.push.bind(b))}catch(c){console.log("Error while reading CSS rules from "+a.href,c.toString())}}),b}function c(a){return{resolve:function(){var b=(a.parentStyleSheet||{}).href;return r.inlineAll(a.cssText,b)},src:function(){return a.style.getPropertyValue("src")}}}return Promise.resolve(q.asArray(document.styleSheets)).then(b).then(a).then(function(a){return a.map(c)})}return{resolveAll:a,impl:{readAll:b}}}function p(){function a(a){function b(b){return q.isDataUrl(a.src)?Promise.resolve():Promise.resolve(a.src).then(b||q.getAndEncode).then(function(b){return q.dataAsUrl(b,q.mimeType(a.src))}).then(function(b){return new Promise(function(c,d){a.onload=c,a.onerror=d,a.src=b})})}return{inline:b}}function b(c){function d(a){var b=a.style.getPropertyValue("background");return b?r.inlineAll(b).then(function(b){a.style.setProperty("background",b,a.style.getPropertyPriority("background"))}).then(function(){return a}):Promise.resolve(a)}return c instanceof Element?d(c).then(function(){return c instanceof HTMLImageElement?a(c).inline():Promise.all(q.asArray(c.childNodes).map(function(a){return b(a)}))}):Promise.resolve(c)}return{inlineAll:b,impl:{newImage:a}}}var q=m(),r=n(),s=o(),t=p(),u={imagePlaceholder:void 0,cacheBust:!1},v={toSvg:b,toPng:d,toJpeg:e,toBlob:f,toPixelData:c,impl:{fontFaces:s,images:t,util:q,inliner:r,options:{}}};"undefined"!=typeof module?module.exports=v:a.domtoimage=v}(this);
PK!B����R�R*assets/lib/dom-to-image/js/dom-to-image.jsnu�[���/**
 * Dom-To-Image 2.6.0
 * https://github.com/tsayen/dom-to-image
 *
 * Released under the MIT license
 * https://github.com/tsayen/dom-to-image/blob/master/LICENSE
 */

(function ( global ) {
	'use strict';

	var util = newUtil();
	var inliner = newInliner();
	var fontFaces = newFontFaces();
	var images = newImages();

	// Default impl options
	var defaultOptions = {
		// Default is to fail on error, no placeholder
		imagePlaceholder: undefined,
		// Default cache bust is false, it will use the cache
		cacheBust: false
	};

	var domtoimage = {
		toSvg: toSvg,
		toPng: toPng,
		toJpeg: toJpeg,
		toBlob: toBlob,
		toPixelData: toPixelData,
		impl: {
			fontFaces: fontFaces,
			images: images,
			util: util,
			inliner: inliner,
			options: {}
		}
	};

	if ( typeof module !== 'undefined' )
		module.exports = domtoimage;
	else
		global.domtoimage = domtoimage;


	/**
	 * @param {Node} node - The DOM Node object to render
	 * @param {Object} options - Rendering options
	 * @param {Function} options.filter - Should return true if passed node should be included in the output
	 *          (excluding node means excluding it's children as well). Not called on the root node.
	 * @param {String} options.bgcolor - color for the background, any valid CSS color value.
	 * @param {Number} options.width - width to be applied to node before rendering.
	 * @param {Number} options.height - height to be applied to node before rendering.
	 * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.
	 * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),
                defaults to 1.0.
	 * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch
	 * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url
	 * @return {Promise} - A promise that is fulfilled with a SVG image data URL
	 * */
	function toSvg( node, options ) {
		options = options || {};
		copyOptions( options );
		return Promise.resolve( node )
			.then( embedFonts )
			.then( function ( node ) {
				return cloneNode( node, options.filter, true );
			} )
			.then( inlineImages )
			.then( applyOptions )
			.then( function ( clone ) {
				return makeSvgDataUri( clone,
					options.width || util.width( node ),
					options.height || util.height( node )
				);
			} );

		function applyOptions( clone ) {
			if ( options.bgcolor ) clone.style.backgroundColor = options.bgcolor;

			if ( options.width ) clone.style.width = options.width + 'px';
			if ( options.height ) clone.style.height = options.height + 'px';

			if ( options.style )
				Object.keys( options.style ).forEach( function ( property ) {
					clone.style[ property ] = options.style[ property ];
				} );

			return clone;
		}
	}

	/**
	 * @param {Node} node - The DOM Node object to render
	 * @param {Object} options - Rendering options, @see {@link toSvg}
	 * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.
	 * */
	function toPixelData( node, options ) {
		return draw( node, options || {} )
			.then( function ( canvas ) {
				return canvas.getContext( '2d' ).getImageData(
					0,
					0,
					util.width( node ),
					util.height( node )
				).data;
			} );
	}

	/**
	 * @param {Node} node - The DOM Node object to render
	 * @param {Object} options - Rendering options, @see {@link toSvg}
	 * @return {Promise} - A promise that is fulfilled with a PNG image data URL
	 * */
	function toPng( node, options ) {
		return draw( node, options || {} )
			.then( function ( canvas ) {
				return canvas.toDataURL();
			} );
	}

	/**
	 * @param {Node} node - The DOM Node object to render
	 * @param {Object} options - Rendering options, @see {@link toSvg}
	 * @return {Promise} - A promise that is fulfilled with a JPEG image data URL
	 * */
	function toJpeg( node, options ) {
		options = options || {};
		return draw( node, options )
			.then( function ( canvas ) {
				return canvas.toDataURL( 'image/jpeg', options.quality || 1.0 );
			} );
	}

	/**
	 * @param {Node} node - The DOM Node object to render
	 * @param {Object} options - Rendering options, @see {@link toSvg}
	 * @return {Promise} - A promise that is fulfilled with a PNG image blob
	 * */
	function toBlob( node, options ) {
		return draw( node, options || {} )
			.then( util.canvasToBlob );
	}

	function copyOptions( options ) {
		// Copy options to impl options for use in impl
		if ( typeof (options.imagePlaceholder) === 'undefined' ) {
			domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;
		} else {
			domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;
		}

		if ( typeof (options.cacheBust) === 'undefined' ) {
			domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;
		} else {
			domtoimage.impl.options.cacheBust = options.cacheBust;
		}
	}

	function draw( domNode, options ) {
		return toSvg( domNode, options )
			.then( util.makeImage )
			.then( util.delay( 100 ) )
			.then( function ( image ) {
				var canvas = newCanvas( domNode );
				canvas.getContext( '2d' ).drawImage( image, 0, 0 );
				return canvas;
			} );

		function newCanvas( domNode ) {
			var canvas = document.createElement( 'canvas' );
			canvas.width = options.width || util.width( domNode );
			canvas.height = options.height || util.height( domNode );

			if ( options.bgcolor ) {
				var ctx = canvas.getContext( '2d' );
				ctx.fillStyle = options.bgcolor;
				ctx.fillRect( 0, 0, canvas.width, canvas.height );
			}

			return canvas;
		}
	}

	function cloneNode( node, filter, root ) {
		if ( ! root && filter && ! filter( node ) ) return Promise.resolve();

		return Promise.resolve( node )
			.then( makeNodeCopy )
			.then( function ( clone ) {
				return cloneChildren( node, clone, filter );
			} )
			.then( function ( clone ) {
				return processClone( node, clone );
			} );

		function makeNodeCopy( node ) {
			if ( node instanceof HTMLCanvasElement ) return util.makeImage( node.toDataURL() );
			return node.cloneNode( false );
		}

		function cloneChildren( original, clone, filter ) {
			var children = original.childNodes;
			if ( children.length === 0 ) return Promise.resolve( clone );

			return cloneChildrenInOrder( clone, util.asArray( children ), filter )
				.then( function () {
					return clone;
				} );

			function cloneChildrenInOrder( parent, children, filter ) {
				var done = Promise.resolve();
				children.forEach( function ( child ) {
					done = done
						.then( function () {
							return cloneNode( child, filter );
						} )
						.then( function ( childClone ) {
							if ( childClone ) parent.appendChild( childClone );
						} );
				} );
				return done;
			}
		}

		function processClone( original, clone ) {
			if ( ! (clone instanceof Element) ) return clone;

			return Promise.resolve()
				.then( cloneStyle )
				.then( clonePseudoElements )
				.then( copyUserInput )
				.then( fixSvg )
				.then( function () {
					return clone;
				} );

			function cloneStyle() {
				copyStyle( window.getComputedStyle( original ), clone.style );

				function copyStyle( source, target ) {
					if ( source.cssText ) target.cssText = source.cssText;
					else copyProperties( source, target );

					function copyProperties( source, target ) {
						util.asArray( source ).forEach( function ( name ) {
							target.setProperty(
								name,
								source.getPropertyValue( name ),
								source.getPropertyPriority( name )
							);
						} );
					}
				}
			}

			function clonePseudoElements() {
				[':before', ':after'].forEach( function ( element ) {
					clonePseudoElement( element );
				} );

				function clonePseudoElement( element ) {
					var style = window.getComputedStyle( original, element );
					var content = style.getPropertyValue( 'content' );

					if ( content === '' || content === 'none' ) return;

					var className = util.uid();
					clone.className = clone.className + ' ' + className;
					var styleElement = document.createElement( 'style' );
					styleElement.appendChild( formatPseudoElementStyle( className, element, style ) );
					clone.appendChild( styleElement );

					function formatPseudoElementStyle( className, element, style ) {
						var selector = '.' + className + ':' + element;
						var cssText = style.cssText ? formatCssText( style ) : formatCssProperties( style );
						return document.createTextNode( selector + '{' + cssText + '}' );

						function formatCssText( style ) {
							var content = style.getPropertyValue( 'content' );
							return style.cssText + ' content: ' + content + ';';
						}

						function formatCssProperties( style ) {

							return util.asArray( style )
								.map( formatProperty )
								.join( '; ' ) + ';';

							function formatProperty( name ) {
								return name + ': ' +
									style.getPropertyValue( name ) +
									(style.getPropertyPriority( name ) ? ' !important' : '');
							}
						}
					}
				}
			}

			function copyUserInput() {
				if ( original instanceof HTMLTextAreaElement ) clone.innerHTML = original.value;
				if ( original instanceof HTMLInputElement ) clone.setAttribute( "value", original.value );
			}

			function fixSvg() {
				if ( ! (clone instanceof SVGElement) ) return;
				clone.setAttribute( 'xmlns', 'http://www.w3.org/2000/svg' );

				if ( ! (clone instanceof SVGRectElement) ) return;
				['width', 'height'].forEach( function ( attribute ) {
					var value = clone.getAttribute( attribute );
					if ( ! value ) return;

					clone.style.setProperty( attribute, value );
				} );
			}
		}
	}

	function embedFonts( node ) {
		return fontFaces.resolveAll()
			.then( function ( cssText ) {
				var styleNode = document.createElement( 'style' );
				node.appendChild( styleNode );
				styleNode.appendChild( document.createTextNode( cssText ) );
				return node;
			} );
	}

	function inlineImages( node ) {
		return images.inlineAll( node )
			.then( function () {
				return node;
			} );
	}

	function makeSvgDataUri( node, width, height ) {
		return Promise.resolve( node )
			.then( function ( node ) {
				node.setAttribute( 'xmlns', 'http://www.w3.org/1999/xhtml' );
				return new XMLSerializer().serializeToString( node );
			} )
			.then( util.escapeXhtml )
			.then( function ( xhtml ) {
				return '<foreignObject x="0" y="0" width="100%" height="100%">' + xhtml + '</foreignObject>';
			} )
			.then( function ( foreignObject ) {
				return '<svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '">' +
					foreignObject + '</svg>';
			} )
			.then( function ( svg ) {
				return 'data:image/svg+xml;charset=utf-8,' + svg;
			} );
	}

	function newUtil() {
		return {
			escape: escape,
			parseExtension: parseExtension,
			mimeType: mimeType,
			dataAsUrl: dataAsUrl,
			isDataUrl: isDataUrl,
			canvasToBlob: canvasToBlob,
			resolveUrl: resolveUrl,
			getAndEncode: getAndEncode,
			uid: uid(),
			delay: delay,
			asArray: asArray,
			escapeXhtml: escapeXhtml,
			makeImage: makeImage,
			width: width,
			height: height
		};

		function mimes() {
			/*
			 * Only WOFF and EOT mime types for fonts are 'real'
			 * see http://www.iana.org/assignments/media-types/media-types.xhtml
			 */
			var WOFF = 'application/font-woff';
			var JPEG = 'image/jpeg';

			return {
				'woff': WOFF,
				'woff2': WOFF,
				'ttf': 'application/font-truetype',
				'eot': 'application/vnd.ms-fontobject',
				'png': 'image/png',
				'jpg': JPEG,
				'jpeg': JPEG,
				'gif': 'image/gif',
				'tiff': 'image/tiff',
				'svg': 'image/svg+xml'
			};
		}

		function parseExtension( url ) {
			var match = /\.([^\.\/]*?)$/g.exec( url );
			if ( match ) return match[ 1 ];
			else return '';
		}

		function mimeType( url ) {
			var extension = parseExtension( url ).toLowerCase();
			return mimes()[ extension ] || '';
		}

		function isDataUrl( url ) {
			return url.search( /^(data:)/ ) !== -1;
		}

		function toBlob( canvas ) {
			return new Promise( function ( resolve ) {
				var binaryString = window.atob( canvas.toDataURL().split( ',' )[ 1 ] );
				var length = binaryString.length;
				var binaryArray = new Uint8Array( length );

				for ( var i = 0; i < length; i++ )
					binaryArray[ i ] = binaryString.charCodeAt( i );

				resolve( new Blob( [binaryArray], {
					type: 'image/png'
				} ) );
			} );
		}

		function canvasToBlob( canvas ) {
			if ( canvas.toBlob )
				return new Promise( function ( resolve ) {
					canvas.toBlob( resolve );
				} );

			return toBlob( canvas );
		}

		function resolveUrl( url, baseUrl ) {
			var doc = document.implementation.createHTMLDocument();
			var base = doc.createElement( 'base' );
			doc.head.appendChild( base );
			var a = doc.createElement( 'a' );
			doc.body.appendChild( a );
			base.href = baseUrl;
			a.href = url;
			return a.href;
		}

		function uid() {
			var index = 0;

			return function () {
				return 'u' + fourRandomChars() + index++;

				function fourRandomChars() {
					/* see http://stackoverflow.com/a/6248722/2519373 */
					return ('0000' + (Math.random() * Math.pow( 36, 4 ) << 0).toString( 36 )).slice( -4 );
				}
			};
		}

		function makeImage( uri ) {
			return new Promise( function ( resolve, reject ) {
				var image = new Image();
				image.onload = function () {
					resolve( image );
				};
				image.onerror = reject;
				image.src = uri;
			} );
		}

		function getAndEncode( url ) {
			var TIMEOUT = 30000;
			if ( domtoimage.impl.options.cacheBust ) {
				// Cache bypass so we dont have CORS issues with cached images
				// Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
				url += ((/\?/).test( url ) ? "&" : "?") + (new Date()).getTime();
			}

			return new Promise( function ( resolve ) {
				var request = new XMLHttpRequest();

				request.onreadystatechange = done;
				request.ontimeout = timeout;
				request.responseType = 'blob';
				request.timeout = TIMEOUT;
				request.open( 'GET', url, true );
				request.send();

				var placeholder;
				if ( domtoimage.impl.options.imagePlaceholder ) {
					var split = domtoimage.impl.options.imagePlaceholder.split( /,/ );
					if ( split && split[ 1 ] ) {
						placeholder = split[ 1 ];
					}
				}

				function done() {
					if ( request.readyState !== 4 ) return;

					if ( request.status !== 200 ) {
						if ( placeholder ) {
							resolve( placeholder );
						} else {
							fail( 'cannot fetch resource: ' + url + ', status: ' + request.status );
						}

						return;
					}

					var encoder = new FileReader();
					encoder.onloadend = function () {
						var content = encoder.result.split( /,/ )[ 1 ];
						resolve( content );
					};
					encoder.readAsDataURL( request.response );
				}

				function timeout() {
					if ( placeholder ) {
						resolve( placeholder );
					} else {
						fail( 'timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url );
					}
				}

				function fail( message ) {
					console.error( message );
					resolve( '' );
				}
			} );
		}

		function dataAsUrl( content, type ) {
			return 'data:' + type + ';base64,' + content;
		}

		function escape( string ) {
			return string.replace( /([.*+?^${}()|\[\]\/\\])/g, '\\$1' );
		}

		function delay( ms ) {
			return function ( arg ) {
				return new Promise( function ( resolve ) {
					setTimeout( function () {
						resolve( arg );
					}, ms );
				} );
			};
		}

		function asArray( arrayLike ) {
			var array = [];
			var length = arrayLike.length;
			for ( var i = 0; i < length; i++ ) array.push( arrayLike[ i ] );
			return array;
		}

		function escapeXhtml( string ) {
			return string.replace( /#/g, '%23' ).replace( /\n/g, '%0A' );
		}

		function width( node ) {
			var leftBorder = px( node, 'border-left-width' );
			var rightBorder = px( node, 'border-right-width' );
			return node.scrollWidth + leftBorder + rightBorder;
		}

		function height( node ) {
			var topBorder = px( node, 'border-top-width' );
			var bottomBorder = px( node, 'border-bottom-width' );
			return node.scrollHeight + topBorder + bottomBorder;
		}

		function px( node, styleProperty ) {
			var value = window.getComputedStyle( node ).getPropertyValue( styleProperty );
			return parseFloat( value.replace( 'px', '' ) );
		}
	}

	function newInliner() {
		var URL_REGEX = /url\(['"]?([^'"]+?)['"]?\)/g;

		return {
			inlineAll: inlineAll,
			shouldProcess: shouldProcess,
			impl: {
				readUrls: readUrls,
				inline: inline
			}
		};

		function shouldProcess( string ) {
			return string.search( URL_REGEX ) !== -1;
		}

		function readUrls( string ) {
			var result = [];
			var match;
			while ( (match = URL_REGEX.exec( string )) !== null ) {
				result.push( match[ 1 ] );
			}
			return result.filter( function ( url ) {
				return ! util.isDataUrl( url );
			} );
		}

		function inline( string, url, baseUrl, get ) {
			return Promise.resolve( url )
				.then( function ( url ) {
					return baseUrl ? util.resolveUrl( url, baseUrl ) : url;
				} )
				.then( get || util.getAndEncode )
				.then( function ( data ) {
					return util.dataAsUrl( data, util.mimeType( url ) );
				} )
				.then( function ( dataUrl ) {
					return string.replace( urlAsRegex( url ), '$1' + dataUrl + '$3' );
				} );

			function urlAsRegex( url ) {
				return new RegExp( '(url\\([\'"]?)(' + util.escape( url ) + ')([\'"]?\\))', 'g' );
			}
		}

		function inlineAll( string, baseUrl, get ) {
			if ( nothingToInline() ) return Promise.resolve( string );

			return Promise.resolve( string )
				.then( readUrls )
				.then( function ( urls ) {
					var done = Promise.resolve( string );
					urls.forEach( function ( url ) {
						done = done.then( function ( string ) {
							return inline( string, url, baseUrl, get );
						} );
					} );
					return done;
				} );

			function nothingToInline() {
				return ! shouldProcess( string );
			}
		}
	}

	function newFontFaces() {
		return {
			resolveAll: resolveAll,
			impl: {
				readAll: readAll
			}
		};

		function resolveAll() {
			return readAll( document )
				.then( function ( webFonts ) {
					return Promise.all(
						webFonts.map( function ( webFont ) {
							return webFont.resolve();
						} )
					);
				} )
				.then( function ( cssStrings ) {
					return cssStrings.join( '\n' );
				} );
		}

		function readAll() {
			return Promise.resolve( util.asArray( document.styleSheets ) )
				.then( getCssRules )
				.then( selectWebFontRules )
				.then( function ( rules ) {
					return rules.map( newWebFont );
				} );

			function selectWebFontRules( cssRules ) {
				return cssRules
					.filter( function ( rule ) {
						return rule.type === CSSRule.FONT_FACE_RULE;
					} )
					.filter( function ( rule ) {
						return inliner.shouldProcess( rule.style.getPropertyValue( 'src' ) );
					} );
			}

			function getCssRules( styleSheets ) {
				var cssRules = [];
				styleSheets.forEach( function ( sheet ) {
					try {
						util.asArray( sheet.cssRules || [] ).forEach( cssRules.push.bind( cssRules ) );
					} catch ( e ) {
						console.log( 'Error while reading CSS rules from ' + sheet.href, e.toString() );
					}
				} );
				return cssRules;
			}

			function newWebFont( webFontRule ) {
				return {
					resolve: function resolve() {
						var baseUrl = (webFontRule.parentStyleSheet || {}).href;
						return inliner.inlineAll( webFontRule.cssText, baseUrl );
					},
					src: function () {
						return webFontRule.style.getPropertyValue( 'src' );
					}
				};
			}
		}
	}

	function newImages() {
		return {
			inlineAll: inlineAll,
			impl: {
				newImage: newImage
			}
		};

		function newImage( element ) {
			return {
				inline: inline
			};

			function inline( get ) {
				if ( util.isDataUrl( element.src ) ) return Promise.resolve();

				return Promise.resolve( element.src )
					.then( get || util.getAndEncode )
					.then( function ( data ) {
						return util.dataAsUrl( data, util.mimeType( element.src ) );
					} )
					.then( function ( dataUrl ) {
						return new Promise( function ( resolve, reject ) {
							element.onload = resolve;
							element.onerror = reject;
							element.src = dataUrl;
						} );
					} );
			}
		}

		function inlineAll( node ) {
			if ( ! (node instanceof Element) ) return Promise.resolve( node );

			return inlineBackground( node )
				.then( function () {
					if ( node instanceof HTMLImageElement )
						return newImage( node ).inline();
					else
						return Promise.all(
							util.asArray( node.childNodes ).map( function ( child ) {
								return inlineAll( child );
							} )
						);
				} );

			function inlineBackground( node ) {
				var background = node.style.getPropertyValue( 'background' );

				if ( ! background ) return Promise.resolve( node );

				return inliner.inlineAll( background )
					.then( function ( inlined ) {
						node.style.setProperty(
							'background',
							inlined,
							node.style.getPropertyPriority( 'background' )
						);
					} )
					.then( function () {
						return node;
					} );
			}
		}
	}
})( this );
PK!R-jS��*assets/lib/smartmenus/jquery.smartmenus.jsnu�[���/*!
 * SmartMenus jQuery Plugin - v1.0.1 - November 1, 2016
 * http://www.smartmenus.org/
 *
 * Copyright Vasil Dinkov, Vadikom Web Ltd.
 * http://vadikom.com
 *
 * Licensed MIT
 */

(function(factory) {
	if (typeof define === 'function' && define.amd) {
		// AMD
		define(['jquery'], factory);
	} else if (typeof module === 'object' && typeof module.exports === 'object') {
		// CommonJS
		module.exports = factory(require('jquery'));
	} else {
		// Global jQuery
		factory(jQuery);
	}
} (function($) {

	var menuTrees = [],
		IE = !!window.createPopup, // detect it for the iframe shim
		mouse = false, // optimize for touch by default - we will detect for mouse input
		touchEvents = 'ontouchstart' in window, // we use this just to choose between toucn and pointer events, not for touch screen detection
		mouseDetectionEnabled = false,
		requestAnimationFrame = window.requestAnimationFrame || function(callback) { return setTimeout(callback, 1000 / 60); },
		cancelAnimationFrame = window.cancelAnimationFrame || function(id) { clearTimeout(id); };

	// Handle detection for mouse input (i.e. desktop browsers, tablets with a mouse, etc.)
	function initMouseDetection(disable) {
		var eNS = '.smartmenus_mouse';
		if (!mouseDetectionEnabled && !disable) {
			// if we get two consecutive mousemoves within 2 pixels from each other and within 300ms, we assume a real mouse/cursor is present
			// in practice, this seems like impossible to trick unintentianally with a real mouse and a pretty safe detection on touch devices (even with older browsers that do not support touch events)
			var firstTime = true,
				lastMove = null;
			$(document).bind(getEventsNS([
				['mousemove', function(e) {
					var thisMove = { x: e.pageX, y: e.pageY, timeStamp: new Date().getTime() };
					if (lastMove) {
						var deltaX = Math.abs(lastMove.x - thisMove.x),
							deltaY = Math.abs(lastMove.y - thisMove.y);
	 					if ((deltaX > 0 || deltaY > 0) && deltaX <= 2 && deltaY <= 2 && thisMove.timeStamp - lastMove.timeStamp <= 300) {
							mouse = true;
							// if this is the first check after page load, check if we are not over some item by chance and call the mouseenter handler if yes
							if (firstTime) {
								var $a = $(e.target).closest('a');
								if ($a.is('a')) {
									$.each(menuTrees, function() {
										if ($.contains(this.$root[0], $a[0])) {
											this.itemEnter({ currentTarget: $a[0] });
											return false;
										}
									});
								}
								firstTime = false;
							}
						}
					}
					lastMove = thisMove;
				}],
				[touchEvents ? 'touchstart' : 'pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut', function(e) {
					if (isTouchEvent(e.originalEvent)) {
						mouse = false;
					}
				}]
			], eNS));
			mouseDetectionEnabled = true;
		} else if (mouseDetectionEnabled && disable) {
			$(document).unbind(eNS);
			mouseDetectionEnabled = false;
		}
	}

	function isTouchEvent(e) {
		return !/^(4|mouse)$/.test(e.pointerType);
	}

	// returns a jQuery bind() ready object
	function getEventsNS(defArr, eNS) {
		if (!eNS) {
			eNS = '';
		}
		var obj = {};
		$.each(defArr, function(index, value) {
			obj[value[0].split(' ').join(eNS + ' ') + eNS] = value[1];
		});
		return obj;
	}

	$.SmartMenus = function(elm, options) {
		this.$root = $(elm);
		this.opts = options;
		this.rootId = ''; // internal
		this.accessIdPrefix = '';
		this.$subArrow = null;
		this.activatedItems = []; // stores last activated A's for each level
		this.visibleSubMenus = []; // stores visible sub menus UL's (might be in no particular order)
		this.showTimeout = 0;
		this.hideTimeout = 0;
		this.scrollTimeout = 0;
		this.clickActivated = false;
		this.focusActivated = false;
		this.zIndexInc = 0;
		this.idInc = 0;
		this.$firstLink = null; // we'll use these for some tests
		this.$firstSub = null; // at runtime so we'll cache them
		this.disabled = false;
		this.$disableOverlay = null;
		this.$touchScrollingSub = null;
		this.cssTransforms3d = 'perspective' in elm.style || 'webkitPerspective' in elm.style;
		this.wasCollapsible = false;
		this.init();
	};

	$.extend($.SmartMenus, {
		hideAll: function() {
			$.each(menuTrees, function() {
				this.menuHideAll();
			});
		},
		destroy: function() {
			while (menuTrees.length) {
				menuTrees[0].destroy();
			}
			initMouseDetection(true);
		},
		prototype: {
			init: function(refresh) {
				var self = this;

				if (!refresh) {
					menuTrees.push(this);

					this.rootId = (new Date().getTime() + Math.random() + '').replace(/\D/g, '');
					this.accessIdPrefix = 'sm-' + this.rootId + '-';

					if (this.$root.hasClass('sm-rtl')) {
						this.opts.rightToLeftSubMenus = true;
					}

					// init root (main menu)
					var eNS = '.smartmenus';
					this.$root
						.data('smartmenus', this)
						.attr('data-smartmenus-id', this.rootId)
						.dataSM('level', 1)
						.bind(getEventsNS([
							['mouseover focusin', $.proxy(this.rootOver, this)],
							['mouseout focusout', $.proxy(this.rootOut, this)],
							['keydown', $.proxy(this.rootKeyDown, this)]
						], eNS))
						.delegate('a', getEventsNS([
							['mouseenter', $.proxy(this.itemEnter, this)],
							['mouseleave', $.proxy(this.itemLeave, this)],
							['mousedown', $.proxy(this.itemDown, this)],
							['focus', $.proxy(this.itemFocus, this)],
							['blur', $.proxy(this.itemBlur, this)],
							['click', $.proxy(this.itemClick, this)]
						], eNS));

					// hide menus on tap or click outside the root UL
					eNS += this.rootId;
					if (this.opts.hideOnClick) {
						$(document).bind(getEventsNS([
							['touchstart', $.proxy(this.docTouchStart, this)],
							['touchmove', $.proxy(this.docTouchMove, this)],
							['touchend', $.proxy(this.docTouchEnd, this)],
							// for Opera Mobile < 11.5, webOS browser, etc. we'll check click too
							['click', $.proxy(this.docClick, this)]
						], eNS));
					}
					// hide sub menus on resize
					$(window).bind(getEventsNS([['resize orientationchange', $.proxy(this.winResize, this)]], eNS));

					if (this.opts.subIndicators) {
						this.$subArrow = $('<span/>').addClass('sub-arrow');
						if (this.opts.subIndicatorsText) {
							this.$subArrow.html(this.opts.subIndicatorsText);
						}
					}

					// make sure mouse detection is enabled
					initMouseDetection();
				}

				// init sub menus
				this.$firstSub = this.$root.find('ul').each(function() { self.menuInit($(this)); }).eq(0);

				this.$firstLink = this.$root.find('a').eq(0);

				// find current item
				if (this.opts.markCurrentItem) {
					var reDefaultDoc = /(index|default)\.[^#\?\/]*/i,
						reHash = /#.*/,
						locHref = window.location.href.replace(reDefaultDoc, ''),
						locHrefNoHash = locHref.replace(reHash, '');
					this.$root.find('a').each(function() {
						var href = this.href.replace(reDefaultDoc, ''),
							$this = $(this);
						if (href == locHref || href == locHrefNoHash) {
							$this.addClass('current');
							if (self.opts.markCurrentTree) {
								$this.parentsUntil('[data-smartmenus-id]', 'ul').each(function() {
									$(this).dataSM('parent-a').addClass('current');
								});
							}
						}
					});
				}

				// save initial state
				this.wasCollapsible = this.isCollapsible();
			},
			destroy: function(refresh) {
				if (!refresh) {
					var eNS = '.smartmenus';
					this.$root
						.removeData('smartmenus')
						.removeAttr('data-smartmenus-id')
						.removeDataSM('level')
						.unbind(eNS)
						.undelegate(eNS);
					eNS += this.rootId;
					$(document).unbind(eNS);
					$(window).unbind(eNS);
					if (this.opts.subIndicators) {
						this.$subArrow = null;
					}
				}
				this.menuHideAll();
				var self = this;
				this.$root.find('ul').each(function() {
						var $this = $(this);
						if ($this.dataSM('scroll-arrows')) {
							$this.dataSM('scroll-arrows').remove();
						}
						if ($this.dataSM('shown-before')) {
							if (self.opts.subMenusMinWidth || self.opts.subMenusMaxWidth) {
								$this.css({ width: '', minWidth: '', maxWidth: '' }).removeClass('sm-nowrap');
							}
							if ($this.dataSM('scroll-arrows')) {
								$this.dataSM('scroll-arrows').remove();
							}
							$this.css({ zIndex: '', top: '', left: '', marginLeft: '', marginTop: '', display: '' });
						}
						if (($this.attr('id') || '').indexOf(self.accessIdPrefix) == 0) {
							$this.removeAttr('id');
						}
					})
					.removeDataSM('in-mega')
					.removeDataSM('shown-before')
					.removeDataSM('ie-shim')
					.removeDataSM('scroll-arrows')
					.removeDataSM('parent-a')
					.removeDataSM('level')
					.removeDataSM('beforefirstshowfired')
					.removeAttr('role')
					.removeAttr('aria-hidden')
					.removeAttr('aria-labelledby')
					.removeAttr('aria-expanded');
				this.$root.find('a.has-submenu').each(function() {
						var $this = $(this);
						if ($this.attr('id').indexOf(self.accessIdPrefix) == 0) {
							$this.removeAttr('id');
						}
					})
					.removeClass('has-submenu')
					.removeDataSM('sub')
					.removeAttr('aria-haspopup')
					.removeAttr('aria-controls')
					.removeAttr('aria-expanded')
					.closest('li').removeDataSM('sub');
				if (this.opts.subIndicators) {
					this.$root.find('span.sub-arrow').remove();
				}
				if (this.opts.markCurrentItem) {
					this.$root.find('a.current').removeClass('current');
				}
				if (!refresh) {
					this.$root = null;
					this.$firstLink = null;
					this.$firstSub = null;
					if (this.$disableOverlay) {
						this.$disableOverlay.remove();
						this.$disableOverlay = null;
					}
					menuTrees.splice($.inArray(this, menuTrees), 1);
				}
			},
			disable: function(noOverlay) {
				if (!this.disabled) {
					this.menuHideAll();
					// display overlay over the menu to prevent interaction
					if (!noOverlay && !this.opts.isPopup && this.$root.is(':visible')) {
						var pos = this.$root.offset();
						this.$disableOverlay = $('<div class="sm-jquery-disable-overlay"/>').css({
							position: 'absolute',
							top: pos.top,
							left: pos.left,
							width: this.$root.outerWidth(),
							height: this.$root.outerHeight(),
							zIndex: this.getStartZIndex(true),
							opacity: 0
						}).appendTo(document.body);
					}
					this.disabled = true;
				}
			},
			docClick: function(e) {
				if (this.$touchScrollingSub) {
					this.$touchScrollingSub = null;
					return;
				}
				// hide on any click outside the menu or on a menu link
				if (this.visibleSubMenus.length && !$.contains(this.$root[0], e.target) || $(e.target).is('a')) {
					this.menuHideAll();
				}
			},
			docTouchEnd: function(e) {
				if (!this.lastTouch) {
					return;
				}
				if (this.visibleSubMenus.length && (this.lastTouch.x2 === undefined || this.lastTouch.x1 == this.lastTouch.x2) && (this.lastTouch.y2 === undefined || this.lastTouch.y1 == this.lastTouch.y2) && (!this.lastTouch.target || !$.contains(this.$root[0], this.lastTouch.target))) {
					if (this.hideTimeout) {
						clearTimeout(this.hideTimeout);
						this.hideTimeout = 0;
					}
					// hide with a delay to prevent triggering accidental unwanted click on some page element
					var self = this;
					this.hideTimeout = setTimeout(function() { self.menuHideAll(); }, 350);
				}
				this.lastTouch = null;
			},
			docTouchMove: function(e) {
				if (!this.lastTouch) {
					return;
				}
				var touchPoint = e.originalEvent.touches[0];
				this.lastTouch.x2 = touchPoint.pageX;
				this.lastTouch.y2 = touchPoint.pageY;
			},
			docTouchStart: function(e) {
				var touchPoint = e.originalEvent.touches[0];
				this.lastTouch = { x1: touchPoint.pageX, y1: touchPoint.pageY, target: touchPoint.target };
			},
			enable: function() {
				if (this.disabled) {
					if (this.$disableOverlay) {
						this.$disableOverlay.remove();
						this.$disableOverlay = null;
					}
					this.disabled = false;
				}
			},
			getClosestMenu: function(elm) {
				var $closestMenu = $(elm).closest('ul');
				while ($closestMenu.dataSM('in-mega')) {
					$closestMenu = $closestMenu.parent().closest('ul');
				}
				return $closestMenu[0] || null;
			},
			getHeight: function($elm) {
				return this.getOffset($elm, true);
			},
			// returns precise width/height float values
			getOffset: function($elm, height) {
				var old;
				if ($elm.css('display') == 'none') {
					old = { position: $elm[0].style.position, visibility: $elm[0].style.visibility };
					$elm.css({ position: 'absolute', visibility: 'hidden' }).show();
				}
				var box = $elm[0].getBoundingClientRect && $elm[0].getBoundingClientRect(),
					val = box && (height ? box.height || box.bottom - box.top : box.width || box.right - box.left);
				if (!val && val !== 0) {
					val = height ? $elm[0].offsetHeight : $elm[0].offsetWidth;
				}
				if (old) {
					$elm.hide().css(old);
				}
				return val;
			},
			getStartZIndex: function(root) {
				var zIndex = parseInt(this[root ? '$root' : '$firstSub'].css('z-index'));
				if (!root && isNaN(zIndex)) {
					zIndex = parseInt(this.$root.css('z-index'));
				}
				return !isNaN(zIndex) ? zIndex : 1;
			},
			getTouchPoint: function(e) {
				return e.touches && e.touches[0] || e.changedTouches && e.changedTouches[0] || e;
			},
			getViewport: function(height) {
				var name = height ? 'Height' : 'Width',
					val = document.documentElement['client' + name],
					val2 = window['inner' + name];
				if (val2) {
					val = Math.min(val, val2);
				}
				return val;
			},
			getViewportHeight: function() {
				return this.getViewport(true);
			},
			getViewportWidth: function() {
				return this.getViewport();
			},
			getWidth: function($elm) {
				return this.getOffset($elm);
			},
			handleEvents: function() {
				return !this.disabled && this.isCSSOn();
			},
			handleItemEvents: function($a) {
				return this.handleEvents() && !this.isLinkInMegaMenu($a);
			},
			isCollapsible: function() {
				return this.$firstSub.css('position') == 'static';
			},
			isCSSOn: function() {
				return this.$firstLink.css('display') == 'block';
			},
			isFixed: function() {
				var isFixed = this.$root.css('position') == 'fixed';
				if (!isFixed) {
					this.$root.parentsUntil('body').each(function() {
						if ($(this).css('position') == 'fixed') {
							isFixed = true;
							return false;
						}
					});
				}
				return isFixed;
			},
			isLinkInMegaMenu: function($a) {
				return $(this.getClosestMenu($a[0])).hasClass('mega-menu');
			},
			isTouchMode: function() {
				return !mouse || this.opts.noMouseOver || this.isCollapsible();
			},
			itemActivate: function($a, focus) {
				var $ul = $a.closest('ul'),
					level = $ul.dataSM('level');
				// if for some reason the parent item is not activated (e.g. this is an API call to activate the item), activate all parent items first
				if (level > 1 && (!this.activatedItems[level - 2] || this.activatedItems[level - 2][0] != $ul.dataSM('parent-a')[0])) {
					var self = this;
					$($ul.parentsUntil('[data-smartmenus-id]', 'ul').get().reverse()).add($ul).each(function() {
						self.itemActivate($(this).dataSM('parent-a'));
					});
				}
				// hide any visible deeper level sub menus
				if (!this.isCollapsible() || focus) {
					this.menuHideSubMenus(!this.activatedItems[level - 1] || this.activatedItems[level - 1][0] != $a[0] ? level - 1 : level);
				}
				// save new active item for this level
				this.activatedItems[level - 1] = $a;
				if (this.$root.triggerHandler('activate.smapi', $a[0]) === false) {
					return;
				}
				// show the sub menu if this item has one
				var $sub = $a.dataSM('sub');
				if ($sub && (this.isTouchMode() || (!this.opts.showOnClick || this.clickActivated))) {
					this.menuShow($sub);
				}
			},
			itemBlur: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				this.$root.triggerHandler('blur.smapi', $a[0]);
			},
			itemClick: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				if (this.$touchScrollingSub && this.$touchScrollingSub[0] == $a.closest('ul')[0]) {
					this.$touchScrollingSub = null;
					e.stopPropagation();
					return false;
				}
				if (this.$root.triggerHandler('click.smapi', $a[0]) === false) {
					return false;
				}
				var subArrowClicked = $(e.target).is('span.sub-arrow'),
					$sub = $a.dataSM('sub'),
					firstLevelSub = $sub ? $sub.dataSM('level') == 2 : false;
				// if the sub is not visible
				if ($sub && !$sub.is(':visible')) {
					if (this.opts.showOnClick && firstLevelSub) {
						this.clickActivated = true;
					}
					// try to activate the item and show the sub
					this.itemActivate($a);
					// if "itemActivate" showed the sub, prevent the click so that the link is not loaded
					// if it couldn't show it, then the sub menus are disabled with an !important declaration (e.g. via mobile styles) so let the link get loaded
					if ($sub.is(':visible')) {
						this.focusActivated = true;
						return false;
					}
				} else if (this.isCollapsible() && subArrowClicked) {
					this.itemActivate($a);
					this.menuHide($sub);
					return false;
				}
				if (this.opts.showOnClick && firstLevelSub || $a.hasClass('disabled') || this.$root.triggerHandler('select.smapi', $a[0]) === false) {
					return false;
				}
			},
			itemDown: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				$a.dataSM('mousedown', true);
			},
			itemEnter: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				if (!this.isTouchMode()) {
					if (this.showTimeout) {
						clearTimeout(this.showTimeout);
						this.showTimeout = 0;
					}
					var self = this;
					this.showTimeout = setTimeout(function() { self.itemActivate($a); }, this.opts.showOnClick && $a.closest('ul').dataSM('level') == 1 ? 1 : this.opts.showTimeout);
				}
				this.$root.triggerHandler('mouseenter.smapi', $a[0]);
			},
			itemFocus: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				// fix (the mousedown check): in some browsers a tap/click produces consecutive focus + click events so we don't need to activate the item on focus
				if (this.focusActivated && (!this.isTouchMode() || !$a.dataSM('mousedown')) && (!this.activatedItems.length || this.activatedItems[this.activatedItems.length - 1][0] != $a[0])) {
					this.itemActivate($a, true);
				}
				this.$root.triggerHandler('focus.smapi', $a[0]);
			},
			itemLeave: function(e) {
				var $a = $(e.currentTarget);
				if (!this.handleItemEvents($a)) {
					return;
				}
				if (!this.isTouchMode()) {
					$a[0].blur();
					if (this.showTimeout) {
						clearTimeout(this.showTimeout);
						this.showTimeout = 0;
					}
				}
				$a.removeDataSM('mousedown');
				this.$root.triggerHandler('mouseleave.smapi', $a[0]);
			},
			menuHide: function($sub) {
				if (this.$root.triggerHandler('beforehide.smapi', $sub[0]) === false) {
					return;
				}
				$sub.stop(true, true);
				if ($sub.css('display') != 'none') {
					var complete = function() {
						// unset z-index
						$sub.css('z-index', '');
					};
					// if sub is collapsible (mobile view)
					if (this.isCollapsible()) {
						if (this.opts.collapsibleHideFunction) {
							this.opts.collapsibleHideFunction.call(this, $sub, complete);
						} else {
							$sub.hide(this.opts.collapsibleHideDuration, complete);
						}
					} else {
						if (this.opts.hideFunction) {
							this.opts.hideFunction.call(this, $sub, complete);
						} else {
							$sub.hide(this.opts.hideDuration, complete);
						}
					}
					// remove IE iframe shim
					if ($sub.dataSM('ie-shim')) {
						$sub.dataSM('ie-shim').remove().css({ '-webkit-transform': '', transform: '' });
					}
					// deactivate scrolling if it is activated for this sub
					if ($sub.dataSM('scroll')) {
						this.menuScrollStop($sub);
						$sub.css({ 'touch-action': '', '-ms-touch-action': '', '-webkit-transform': '', transform: '' })
							.unbind('.smartmenus_scroll').removeDataSM('scroll').dataSM('scroll-arrows').hide();
					}
					// unhighlight parent item + accessibility
					$sub.dataSM('parent-a').removeClass('highlighted').attr('aria-expanded', 'false');
					$sub.attr({
						'aria-expanded': 'false',
						'aria-hidden': 'true'
					});
					var level = $sub.dataSM('level');
					this.activatedItems.splice(level - 1, 1);
					this.visibleSubMenus.splice($.inArray($sub, this.visibleSubMenus), 1);
					this.$root.triggerHandler('hide.smapi', $sub[0]);
				}
			},
			menuHideAll: function() {
				if (this.showTimeout) {
					clearTimeout(this.showTimeout);
					this.showTimeout = 0;
				}
				// hide all subs
				// if it's a popup, this.visibleSubMenus[0] is the root UL
				var level = this.opts.isPopup ? 1 : 0;
				for (var i = this.visibleSubMenus.length - 1; i >= level; i--) {
					this.menuHide(this.visibleSubMenus[i]);
				}
				// hide root if it's popup
				if (this.opts.isPopup) {
					this.$root.stop(true, true);
					if (this.$root.is(':visible')) {
						if (this.opts.hideFunction) {
							this.opts.hideFunction.call(this, this.$root);
						} else {
							this.$root.hide(this.opts.hideDuration);
						}
						// remove IE iframe shim
						if (this.$root.dataSM('ie-shim')) {
							this.$root.dataSM('ie-shim').remove();
						}
					}
				}
				this.activatedItems = [];
				this.visibleSubMenus = [];
				this.clickActivated = false;
				this.focusActivated = false;
				// reset z-index increment
				this.zIndexInc = 0;
				this.$root.triggerHandler('hideAll.smapi');
			},
			menuHideSubMenus: function(level) {
				for (var i = this.activatedItems.length - 1; i >= level; i--) {
					var $sub = this.activatedItems[i].dataSM('sub');
					if ($sub) {
						this.menuHide($sub);
					}
				}
			},
			menuIframeShim: function($ul) {
				// create iframe shim for the menu
				if (IE && this.opts.overlapControlsInIE && !$ul.dataSM('ie-shim')) {
					$ul.dataSM('ie-shim', $('<iframe/>').attr({ src: 'javascript:0', tabindex: -9 })
						.css({ position: 'absolute', top: 'auto', left: '0', opacity: 0, border: '0' })
					);
				}
			},
			menuInit: function($ul) {
				if (!$ul.dataSM('in-mega')) {
					// mark UL's in mega drop downs (if any) so we can neglect them
					if ($ul.hasClass('mega-menu')) {
						$ul.find('ul').dataSM('in-mega', true);
					}
					// get level (much faster than, for example, using parentsUntil)
					var level = 2,
						par = $ul[0];
					while ((par = par.parentNode.parentNode) != this.$root[0]) {
						level++;
					}
					// cache stuff for quick access
					var $a = $ul.prevAll('a').eq(-1);
					// if the link is nested (e.g. in a heading)
					if (!$a.length) {
						$a = $ul.prevAll().find('a').eq(-1);
					}
					$a.addClass('has-submenu').dataSM('sub', $ul);
					$ul.dataSM('parent-a', $a)
						.dataSM('level', level)
						.parent().dataSM('sub', $ul);
					// accessibility
					var aId = $a.attr('id') || this.accessIdPrefix + (++this.idInc),
						ulId = $ul.attr('id') || this.accessIdPrefix + (++this.idInc);
					$a.attr({
						id: aId,
						'aria-haspopup': 'true',
						'aria-controls': ulId,
						'aria-expanded': 'false'
					});
					$ul.attr({
						id: ulId,
						'role': 'group',
						'aria-hidden': 'true',
						'aria-labelledby': aId,
						'aria-expanded': 'false'
					});
					// add sub indicator to parent item
					if (this.opts.subIndicators) {
						$a[this.opts.subIndicatorsPos](this.$subArrow.clone());
					}
				}
			},
			menuPosition: function($sub) {
				var $a = $sub.dataSM('parent-a'),
					$li = $a.closest('li'),
					$ul = $li.parent(),
					level = $sub.dataSM('level'),
					subW = this.getWidth($sub),
					subH = this.getHeight($sub),
					itemOffset = $a.offset(),
					itemX = itemOffset.left,
					itemY = itemOffset.top,
					itemW = this.getWidth($a),
					itemH = this.getHeight($a),
					$win = $(window),
					winX = $win.scrollLeft(),
					winY = $win.scrollTop(),
					winW = this.getViewportWidth(),
					winH = this.getViewportHeight(),
					horizontalParent = $ul.parent().is('[data-sm-horizontal-sub]') || level == 2 && !$ul.hasClass('sm-vertical'),
					rightToLeft = this.opts.rightToLeftSubMenus && !$li.is('[data-sm-reverse]') || !this.opts.rightToLeftSubMenus && $li.is('[data-sm-reverse]'),
					subOffsetX = level == 2 ? this.opts.mainMenuSubOffsetX : this.opts.subMenusSubOffsetX,
					subOffsetY = level == 2 ? this.opts.mainMenuSubOffsetY : this.opts.subMenusSubOffsetY,
					x, y;
				if (horizontalParent) {
					x = rightToLeft ? itemW - subW - subOffsetX : subOffsetX;
					y = this.opts.bottomToTopSubMenus ? -subH - subOffsetY : itemH + subOffsetY;
				} else {
					x = rightToLeft ? subOffsetX - subW : itemW - subOffsetX;
					y = this.opts.bottomToTopSubMenus ? itemH - subOffsetY - subH : subOffsetY;
				}
				if (this.opts.keepInViewport) {
					var absX = itemX + x,
						absY = itemY + y;
					if (rightToLeft && absX < winX) {
						x = horizontalParent ? winX - absX + x : itemW - subOffsetX;
					} else if (!rightToLeft && absX + subW > winX + winW) {
						x = horizontalParent ? winX + winW - subW - absX + x : subOffsetX - subW;
					}
					if (!horizontalParent) {
						if (subH < winH && absY + subH > winY + winH) {
							y += winY + winH - subH - absY;
						} else if (subH >= winH || absY < winY) {
							y += winY - absY;
						}
					}
					// do we need scrolling?
					// 0.49 used for better precision when dealing with float values
					if (horizontalParent && (absY + subH > winY + winH + 0.49 || absY < winY) || !horizontalParent && subH > winH + 0.49) {
						var self = this;
						if (!$sub.dataSM('scroll-arrows')) {
							$sub.dataSM('scroll-arrows', $([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0], $('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]])
								.bind({
									mouseenter: function() {
										$sub.dataSM('scroll').up = $(this).hasClass('scroll-up');
										self.menuScroll($sub);
									},
									mouseleave: function(e) {
										self.menuScrollStop($sub);
										self.menuScrollOut($sub, e);
									},
									'mousewheel DOMMouseScroll': function(e) { e.preventDefault(); }
								})
								.insertAfter($sub)
							);
						}
						// bind scroll events and save scroll data for this sub
						var eNS = '.smartmenus_scroll';
						$sub.dataSM('scroll', {
								y: this.cssTransforms3d ? 0 : y - itemH,
								step: 1,
								// cache stuff for faster recalcs later
								itemH: itemH,
								subH: subH,
								arrowDownH: this.getHeight($sub.dataSM('scroll-arrows').eq(1))
							})
							.bind(getEventsNS([
								['mouseover', function(e) { self.menuScrollOver($sub, e); }],
								['mouseout', function(e) { self.menuScrollOut($sub, e); }],
								['mousewheel DOMMouseScroll', function(e) { self.menuScrollMousewheel($sub, e); }]
							], eNS))
							.dataSM('scroll-arrows').css({ top: 'auto', left: '0', marginLeft: x + (parseInt($sub.css('border-left-width')) || 0), width: subW - (parseInt($sub.css('border-left-width')) || 0) - (parseInt($sub.css('border-right-width')) || 0), zIndex: $sub.css('z-index') })
								.eq(horizontalParent && this.opts.bottomToTopSubMenus ? 0 : 1).show();
						// when a menu tree is fixed positioned we allow scrolling via touch too
						// since there is no other way to access such long sub menus if no mouse is present
						if (this.isFixed()) {
							$sub.css({ 'touch-action': 'none', '-ms-touch-action': 'none' })
								.bind(getEventsNS([
									[touchEvents ? 'touchstart touchmove touchend' : 'pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp', function(e) {
										self.menuScrollTouch($sub, e);
									}]
								], eNS));
						}
					}
				}
				$sub.css({ top: 'auto', left: '0', marginLeft: x, marginTop: y - itemH });
				// IE iframe shim
				this.menuIframeShim($sub);
				if ($sub.dataSM('ie-shim')) {
					$sub.dataSM('ie-shim').css({ zIndex: $sub.css('z-index'), width: subW, height: subH, marginLeft: x, marginTop: y - itemH });
				}
			},
			menuScroll: function($sub, once, step) {
				var data = $sub.dataSM('scroll'),
					$arrows = $sub.dataSM('scroll-arrows'),
					end = data.up ? data.upEnd : data.downEnd,
					diff;
				if (!once && data.momentum) {
					data.momentum *= 0.92;
					diff = data.momentum;
					if (diff < 0.5) {
						this.menuScrollStop($sub);
						return;
					}
				} else {
					diff = step || (once || !this.opts.scrollAccelerate ? this.opts.scrollStep : Math.floor(data.step));
				}
				// hide any visible deeper level sub menus
				var level = $sub.dataSM('level');
				if (this.activatedItems[level - 1] && this.activatedItems[level - 1].dataSM('sub') && this.activatedItems[level - 1].dataSM('sub').is(':visible')) {
					this.menuHideSubMenus(level - 1);
				}
				data.y = data.up && end <= data.y || !data.up && end >= data.y ? data.y : (Math.abs(end - data.y) > diff ? data.y + (data.up ? diff : -diff) : end);
				$sub.add($sub.dataSM('ie-shim')).css(this.cssTransforms3d ? { '-webkit-transform': 'translate3d(0, ' + data.y + 'px, 0)', transform: 'translate3d(0, ' + data.y + 'px, 0)' } : { marginTop: data.y });
				// show opposite arrow if appropriate
				if (mouse && (data.up && data.y > data.downEnd || !data.up && data.y < data.upEnd)) {
					$arrows.eq(data.up ? 1 : 0).show();
				}
				// if we've reached the end
				if (data.y == end) {
					if (mouse) {
						$arrows.eq(data.up ? 0 : 1).hide();
					}
					this.menuScrollStop($sub);
				} else if (!once) {
					if (this.opts.scrollAccelerate && data.step < this.opts.scrollStep) {
						data.step += 0.2;
					}
					var self = this;
					this.scrollTimeout = requestAnimationFrame(function() { self.menuScroll($sub); });
				}
			},
			menuScrollMousewheel: function($sub, e) {
				if (this.getClosestMenu(e.target) == $sub[0]) {
					e = e.originalEvent;
					var up = (e.wheelDelta || -e.detail) > 0;
					if ($sub.dataSM('scroll-arrows').eq(up ? 0 : 1).is(':visible')) {
						$sub.dataSM('scroll').up = up;
						this.menuScroll($sub, true);
					}
				}
				e.preventDefault();
			},
			menuScrollOut: function($sub, e) {
				if (mouse) {
					if (!/^scroll-(up|down)/.test((e.relatedTarget || '').className) && ($sub[0] != e.relatedTarget && !$.contains($sub[0], e.relatedTarget) || this.getClosestMenu(e.relatedTarget) != $sub[0])) {
						$sub.dataSM('scroll-arrows').css('visibility', 'hidden');
					}
				}
			},
			menuScrollOver: function($sub, e) {
				if (mouse) {
					if (!/^scroll-(up|down)/.test(e.target.className) && this.getClosestMenu(e.target) == $sub[0]) {
						this.menuScrollRefreshData($sub);
						var data = $sub.dataSM('scroll'),
							upEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH;
						$sub.dataSM('scroll-arrows').eq(0).css('margin-top', upEnd).end()
							.eq(1).css('margin-top', upEnd + this.getViewportHeight() - data.arrowDownH).end()
							.css('visibility', 'visible');
					}
				}
			},
			menuScrollRefreshData: function($sub) {
				var data = $sub.dataSM('scroll'),
					upEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH;
				if (this.cssTransforms3d) {
					upEnd = -(parseFloat($sub.css('margin-top')) - upEnd);
				}
				$.extend(data, {
					upEnd: upEnd,
					downEnd: upEnd + this.getViewportHeight() - data.subH
				});
			},
			menuScrollStop: function($sub) {
				if (this.scrollTimeout) {
					cancelAnimationFrame(this.scrollTimeout);
					this.scrollTimeout = 0;
					$sub.dataSM('scroll').step = 1;
					return true;
				}
			},
			menuScrollTouch: function($sub, e) {
				e = e.originalEvent;
				if (isTouchEvent(e)) {
					var touchPoint = this.getTouchPoint(e);
					// neglect event if we touched a visible deeper level sub menu
					if (this.getClosestMenu(touchPoint.target) == $sub[0]) {
						var data = $sub.dataSM('scroll');
						if (/(start|down)$/i.test(e.type)) {
							if (this.menuScrollStop($sub)) {
								// if we were scrolling, just stop and don't activate any link on the first touch
								e.preventDefault();
								this.$touchScrollingSub = $sub;
							} else {
								this.$touchScrollingSub = null;
							}
							// update scroll data since the user might have zoomed, etc.
							this.menuScrollRefreshData($sub);
							// extend it with the touch properties
							$.extend(data, {
								touchStartY: touchPoint.pageY,
								touchStartTime: e.timeStamp
							});
						} else if (/move$/i.test(e.type)) {
							var prevY = data.touchY !== undefined ? data.touchY : data.touchStartY;
							if (prevY !== undefined && prevY != touchPoint.pageY) {
								this.$touchScrollingSub = $sub;
								var up = prevY < touchPoint.pageY;
								// changed direction? reset...
								if (data.up !== undefined && data.up != up) {
									$.extend(data, {
										touchStartY: touchPoint.pageY,
										touchStartTime: e.timeStamp
									});
								}
								$.extend(data, {
									up: up,
									touchY: touchPoint.pageY
								});
								this.menuScroll($sub, true, Math.abs(touchPoint.pageY - prevY));
							}
							e.preventDefault();
						} else { // touchend/pointerup
							if (data.touchY !== undefined) {
								if (data.momentum = Math.pow(Math.abs(touchPoint.pageY - data.touchStartY) / (e.timeStamp - data.touchStartTime), 2) * 15) {
									this.menuScrollStop($sub);
									this.menuScroll($sub);
									e.preventDefault();
								}
								delete data.touchY;
							}
						}
					}
				}
			},
			menuShow: function($sub) {
				if (!$sub.dataSM('beforefirstshowfired')) {
					$sub.dataSM('beforefirstshowfired', true);
					if (this.$root.triggerHandler('beforefirstshow.smapi', $sub[0]) === false) {
						return;
					}
				}
				if (this.$root.triggerHandler('beforeshow.smapi', $sub[0]) === false) {
					return;
				}
				$sub.dataSM('shown-before', true)
					.stop(true, true);
				if (!$sub.is(':visible')) {
					// highlight parent item
					var $a = $sub.dataSM('parent-a');
					if (this.opts.keepHighlighted || this.isCollapsible()) {
						$a.addClass('highlighted');
					}
					if (this.isCollapsible()) {
						$sub.removeClass('sm-nowrap').css({ zIndex: '', width: 'auto', minWidth: '', maxWidth: '', top: '', left: '', marginLeft: '', marginTop: '' });
					} else {
						// set z-index
						$sub.css('z-index', this.zIndexInc = (this.zIndexInc || this.getStartZIndex()) + 1);
						// min/max-width fix - no way to rely purely on CSS as all UL's are nested
						if (this.opts.subMenusMinWidth || this.opts.subMenusMaxWidth) {
							$sub.css({ width: 'auto', minWidth: '', maxWidth: '' }).addClass('sm-nowrap');
							if (this.opts.subMenusMinWidth) {
							 	$sub.css('min-width', this.opts.subMenusMinWidth);
							}
							if (this.opts.subMenusMaxWidth) {
							 	var noMaxWidth = this.getWidth($sub);
							 	$sub.css('max-width', this.opts.subMenusMaxWidth);
								if (noMaxWidth > this.getWidth($sub)) {
									$sub.removeClass('sm-nowrap').css('width', this.opts.subMenusMaxWidth);
								}
							}
						}
						this.menuPosition($sub);
						// insert IE iframe shim
						if ($sub.dataSM('ie-shim')) {
							$sub.dataSM('ie-shim').insertBefore($sub);
						}
					}
					var complete = function() {
						// fix: "overflow: hidden;" is not reset on animation complete in jQuery < 1.9.0 in Chrome when global "box-sizing: border-box;" is used
						$sub.css('overflow', '');
					};
					// if sub is collapsible (mobile view)
					if (this.isCollapsible()) {
						if (this.opts.collapsibleShowFunction) {
							this.opts.collapsibleShowFunction.call(this, $sub, complete);
						} else {
							$sub.show(this.opts.collapsibleShowDuration, complete);
						}
					} else {
						if (this.opts.showFunction) {
							this.opts.showFunction.call(this, $sub, complete);
						} else {
							$sub.show(this.opts.showDuration, complete);
						}
					}
					// accessibility
					$a.attr('aria-expanded', 'true');
					$sub.attr({
						'aria-expanded': 'true',
						'aria-hidden': 'false'
					});
					// store sub menu in visible array
					this.visibleSubMenus.push($sub);
					this.$root.triggerHandler('show.smapi', $sub[0]);
				}
			},
			popupHide: function(noHideTimeout) {
				if (this.hideTimeout) {
					clearTimeout(this.hideTimeout);
					this.hideTimeout = 0;
				}
				var self = this;
				this.hideTimeout = setTimeout(function() {
					self.menuHideAll();
				}, noHideTimeout ? 1 : this.opts.hideTimeout);
			},
			popupShow: function(left, top) {
				if (!this.opts.isPopup) {
					alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');
					return;
				}
				if (this.hideTimeout) {
					clearTimeout(this.hideTimeout);
					this.hideTimeout = 0;
				}
				this.$root.dataSM('shown-before', true)
					.stop(true, true);
				if (!this.$root.is(':visible')) {
					this.$root.css({ left: left, top: top });
					// IE iframe shim
					this.menuIframeShim(this.$root);
					if (this.$root.dataSM('ie-shim')) {
						this.$root.dataSM('ie-shim').css({ zIndex: this.$root.css('z-index'), width: this.getWidth(this.$root), height: this.getHeight(this.$root), left: left, top: top }).insertBefore(this.$root);
					}
					// show menu
					var self = this,
						complete = function() {
							self.$root.css('overflow', '');
						};
					if (this.opts.showFunction) {
						this.opts.showFunction.call(this, this.$root, complete);
					} else {
						this.$root.show(this.opts.showDuration, complete);
					}
					this.visibleSubMenus[0] = this.$root;
				}
			},
			refresh: function() {
				this.destroy(true);
				this.init(true);
			},
			rootKeyDown: function(e) {
				if (!this.handleEvents()) {
					return;
				}
				switch (e.keyCode) {
					case 27: // reset on Esc
						var $activeTopItem = this.activatedItems[0];
						if ($activeTopItem) {
							this.menuHideAll();
							$activeTopItem[0].focus();
							var $sub = $activeTopItem.dataSM('sub');
							if ($sub) {
								this.menuHide($sub);
							}
						}
						break;
					case 32: // activate item's sub on Space
						var $target = $(e.target);
						if ($target.is('a') && this.handleItemEvents($target)) {
							var $sub = $target.dataSM('sub');
							if ($sub && !$sub.is(':visible')) {
								this.itemClick({ currentTarget: e.target });
								e.preventDefault();
							}
						}
						break;
				}
			},
			rootOut: function(e) {
				if (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) {
					return;
				}
				if (this.hideTimeout) {
					clearTimeout(this.hideTimeout);
					this.hideTimeout = 0;
				}
				if (!this.opts.showOnClick || !this.opts.hideOnClick) {
					var self = this;
					this.hideTimeout = setTimeout(function() { self.menuHideAll(); }, this.opts.hideTimeout);
				}
			},
			rootOver: function(e) {
				if (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) {
					return;
				}
				if (this.hideTimeout) {
					clearTimeout(this.hideTimeout);
					this.hideTimeout = 0;
				}
			},
			winResize: function(e) {
				if (!this.handleEvents()) {
					// we still need to resize the disable overlay if it's visible
					if (this.$disableOverlay) {
						var pos = this.$root.offset();
	 					this.$disableOverlay.css({
							top: pos.top,
							left: pos.left,
							width: this.$root.outerWidth(),
							height: this.$root.outerHeight()
						});
					}
					return;
				}
				// hide sub menus on resize - on mobile do it only on orientation change
				if (!('onorientationchange' in window) || e.type == 'orientationchange') {
					var isCollapsible = this.isCollapsible();
					// if it was collapsible before resize and still is, don't do it
					if (!(this.wasCollapsible && isCollapsible)) { 
						if (this.activatedItems.length) {
							this.activatedItems[this.activatedItems.length - 1][0].blur();
						}
						this.menuHideAll();
					}
					this.wasCollapsible = isCollapsible;
				}
			}
		}
	});

	$.fn.dataSM = function(key, val) {
		if (val) {
			return this.data(key + '_smartmenus', val);
		}
		return this.data(key + '_smartmenus');
	};

	$.fn.removeDataSM = function(key) {
		return this.removeData(key + '_smartmenus');
	};

	$.fn.smartmenus = function(options) {
		if (typeof options == 'string') {
			var args = arguments,
				method = options;
			Array.prototype.shift.call(args);
			return this.each(function() {
				var smartmenus = $(this).data('smartmenus');
				if (smartmenus && smartmenus[method]) {
					smartmenus[method].apply(smartmenus, args);
				}
			});
		}
		// [data-sm-options] attribute on the root UL
		var dataOpts = this.data('sm-options') || null;
		if (dataOpts) {
			try {
				dataOpts = eval('(' + dataOpts + ')');
			} catch(e) {
				dataOpts = null;
				alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.');
			};
		}
		return this.each(function() {
			new $.SmartMenus(this, $.extend({}, $.fn.smartmenus.defaults, options, dataOpts));
		});
	};

	// default settings
	$.fn.smartmenus.defaults = {
		isPopup:		false,		// is this a popup menu (can be shown via the popupShow/popupHide methods) or a permanent menu bar
		mainMenuSubOffsetX:	0,		// pixels offset from default position
		mainMenuSubOffsetY:	0,		// pixels offset from default position
		subMenusSubOffsetX:	0,		// pixels offset from default position
		subMenusSubOffsetY:	0,		// pixels offset from default position
		subMenusMinWidth:	'10em',		// min-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored
		subMenusMaxWidth:	'20em',		// max-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored
		subIndicators: 		true,		// create sub menu indicators - creates a SPAN and inserts it in the A
		subIndicatorsPos: 	'prepend',	// position of the SPAN relative to the menu item content ('prepend', 'append')
		subIndicatorsText:	'+',		// [optionally] add text in the SPAN (e.g. '+') (you may want to check the CSS for the sub indicators too)
		scrollStep: 		30,		// pixels step when scrolling long sub menus that do not fit in the viewport height
		scrollAccelerate:	true,		// accelerate scrolling or use a fixed step
		showTimeout:		250,		// timeout before showing the sub menus
		hideTimeout:		500,		// timeout before hiding the sub menus
		showDuration:		0,		// duration for show animation - set to 0 for no animation - matters only if showFunction:null
		showFunction:		null,		// custom function to use when showing a sub menu (the default is the jQuery 'show')
							// don't forget to call complete() at the end of whatever you do
							// e.g.: function($ul, complete) { $ul.fadeIn(250, complete); }
		hideDuration:		0,		// duration for hide animation - set to 0 for no animation - matters only if hideFunction:null
		hideFunction:		function($ul, complete) { $ul.fadeOut(200, complete); },	// custom function to use when hiding a sub menu (the default is the jQuery 'hide')
							// don't forget to call complete() at the end of whatever you do
							// e.g.: function($ul, complete) { $ul.fadeOut(250, complete); }
		collapsibleShowDuration:0,		// duration for show animation for collapsible sub menus - matters only if collapsibleShowFunction:null
		collapsibleShowFunction:function($ul, complete) { $ul.slideDown(200, complete); },	// custom function to use when showing a collapsible sub menu
							// (i.e. when mobile styles are used to make the sub menus collapsible)
		collapsibleHideDuration:0,		// duration for hide animation for collapsible sub menus - matters only if collapsibleHideFunction:null
		collapsibleHideFunction:function($ul, complete) { $ul.slideUp(200, complete); },	// custom function to use when hiding a collapsible sub menu
							// (i.e. when mobile styles are used to make the sub menus collapsible)
		showOnClick:		false,		// show the first-level sub menus onclick instead of onmouseover (i.e. mimic desktop app menus) (matters only for mouse input)
		hideOnClick:		true,		// hide the sub menus on click/tap anywhere on the page
		noMouseOver:		false,		// disable sub menus activation onmouseover (i.e. behave like in touch mode - use just mouse clicks) (matters only for mouse input)
		keepInViewport:		true,		// reposition the sub menus if needed to make sure they always appear inside the viewport
		keepHighlighted:	true,		// keep all ancestor items of the current sub menu highlighted (adds the 'highlighted' class to the A's)
		markCurrentItem:	false,		// automatically add the 'current' class to the A element of the item linking to the current URL
		markCurrentTree:	true,		// add the 'current' class also to the A elements of all ancestor items of the current item
		rightToLeftSubMenus:	false,		// right to left display of the sub menus (check the CSS for the sub indicators' position)
		bottomToTopSubMenus:	false,		// bottom to top display of the sub menus
		overlapControlsInIE:	true		// make sure sub menus appear on top of special OS controls in IE (i.e. SELECT, OBJECT, EMBED, etc.)
	};

	return $;
}));PK!��Qrbrb.assets/lib/smartmenus/jquery.smartmenus.min.jsnu�[���/*! SmartMenus jQuery Plugin - v1.0.1 - November 1, 2016
 * http://www.smartmenus.org/
 * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).unbind(e),mouseDetectionEnabled=!1);else{var i=!0,s=null;$(document).bind(getEventsNS([["mousemove",function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}],[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)}]],e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};return $.each(t,function(t,s){i[s[0].split(" ").join(e+" ")+e]=s[1]}),i}var menuTrees=[],IE=!!window.createPopup,mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)};return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(getEventsNS([["mouseover focusin",$.proxy(this.rootOver,this)],["mouseout focusout",$.proxy(this.rootOut,this)],["keydown",$.proxy(this.rootKeyDown,this)]],i)).delegate("a",getEventsNS([["mouseenter",$.proxy(this.itemEnter,this)],["mouseleave",$.proxy(this.itemLeave,this)],["mousedown",$.proxy(this.itemDown,this)],["focus",$.proxy(this.itemFocus,this)],["blur",$.proxy(this.itemBlur,this)],["click",$.proxy(this.itemClick,this)]],i)),i+=this.rootId,this.opts.hideOnClick&&$(document).bind(getEventsNS([["touchstart",$.proxy(this.docTouchStart,this)],["touchmove",$.proxy(this.docTouchMove,this)],["touchend",$.proxy(this.docTouchEnd,this)],["click",$.proxy(this.docClick,this)]],i)),$(window).bind(getEventsNS([["resize orientationchange",$.proxy(this.winResize,this)]],i)),this.opts.subIndicators&&(this.$subArrow=$("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(e).undelegate(e),e+=this.rootId,$(document).unbind(e),$(window).unbind(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).is("a"))&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"block"==this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is("span.sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1;if(s&&!s.is(":visible")){if(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e),s.is(":visible"))return this.focusActivated=!0,!1}else if(this.isCollapsible()&&i)return this.itemActivate(e),this.menuHide(s),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("ie-shim")&&t.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""}),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(this.$root.stop(!0,!0),this.$root.is(":visible")&&(this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration),this.$root.dataSM("ie-shim")&&this.$root.dataSM("ie-shim").remove())),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuIframeShim:function(t){IE&&this.opts.overlapControlsInIE&&!t.dataSM("ie-shim")&&t.dataSM("ie-shim",$("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),S=this.getViewportWidth(),b=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+S&&(e=g?f+S-r-y+e:w-r),g||(b>h&&I+h>v+b?i+=v+b-h-I:(h>=b||v>I)&&(i+=v-I)),g&&(I+h>v+b+.49||v>I)||!g&&h>b+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],$('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var C=".smartmenus_scroll";t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).bind(getEventsNS([["mouseover",function(e){x.menuScrollOver(t,e)}],["mouseout",function(e){x.menuScrollOut(t,e)}],["mousewheel DOMMouseScroll",function(e){x.menuScrollMousewheel(t,e)}]],C)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()&&t.css({"touch-action":"none","-ms-touch-action":"none"}).bind(getEventsNS([[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(e){x.menuScrollTouch(t,e)}]],C))}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m}),this.menuIframeShim(t),t.dataSM("ie-shim")&&t.dataSM("ie-shim").css({zIndex:t.css("z-index"),width:r,height:h,marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.add(t.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(e.wheelDelta||-e.detail)>0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0).stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a");if((this.opts.keepHighlighted||this.isCollapsible())&&e.addClass("highlighted"),this.isCollapsible())t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var i=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),i>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t),t.dataSM("ie-shim")&&t.dataSM("ie-shim").insertBefore(t)}var s=function(){t.css("overflow","")};this.isCollapsible()?this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,s):t.show(this.opts.collapsibleShowDuration,s):this.opts.showFunction?this.opts.showFunction.call(this,t,s):t.show(this.opts.showDuration,s),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0).stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e}),this.menuIframeShim(this.$root),this.$root.dataSM("ie-shim")&&this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:t,top:e}).insertBefore(this.$root);var i=this,s=function(){i.$root.css("overflow","")};this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}var dataOpts=this.data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}return this.each(function(){new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,overlapControlsInIE:!0},$});PK!X�n�n&assets/lib/font-awesome-pro/regular.jsnu�[���{
  "icons": [
	"abacus",
	"acorn",
	"ad",
	"address-book",
	"address-card",
	"adjust",
	"air-conditioner",
	"air-freshener",
	"alarm-clock",
	"alarm-exclamation",
	"alarm-plus",
	"alarm-snooze",
	"album",
	"album-collection",
	"alicorn",
	"alien",
	"alien-monster",
	"align-center",
	"align-justify",
	"align-left",
	"align-right",
	"align-slash",
	"allergies",
	"ambulance",
	"american-sign-language-interpreting",
	"amp-guitar",
	"analytics",
	"anchor",
	"angel",
	"angle-double-down",
	"angle-double-left",
	"angle-double-right",
	"angle-double-up",
	"angle-down",
	"angle-left",
	"angle-right",
	"angle-up",
	"angry",
	"ankh",
	"apple-alt",
	"apple-crate",
	"archive",
	"archway",
	"arrow-alt-circle-down",
	"arrow-alt-circle-left",
	"arrow-alt-circle-right",
	"arrow-alt-circle-up",
	"arrow-alt-down",
	"arrow-alt-from-bottom",
	"arrow-alt-from-left",
	"arrow-alt-from-right",
	"arrow-alt-from-top",
	"arrow-alt-left",
	"arrow-alt-right",
	"arrow-alt-square-down",
	"arrow-alt-square-left",
	"arrow-alt-square-right",
	"arrow-alt-square-up",
	"arrow-alt-to-bottom",
	"arrow-alt-to-left",
	"arrow-alt-to-right",
	"arrow-alt-to-top",
	"arrow-alt-up",
	"arrow-circle-down",
	"arrow-circle-left",
	"arrow-circle-right",
	"arrow-circle-up",
	"arrow-down",
	"arrow-from-bottom",
	"arrow-from-left",
	"arrow-from-right",
	"arrow-from-top",
	"arrow-left",
	"arrow-right",
	"arrow-square-down",
	"arrow-square-left",
	"arrow-square-right",
	"arrow-square-up",
	"arrow-to-bottom",
	"arrow-to-left",
	"arrow-to-right",
	"arrow-to-top",
	"arrow-up",
	"arrows",
	"arrows-alt",
	"arrows-alt-h",
	"arrows-alt-v",
	"arrows-h",
	"arrows-v",
	"assistive-listening-systems",
	"asterisk",
	"at",
	"atlas",
	"atom",
	"atom-alt",
	"audio-description",
	"award",
	"axe",
	"axe-battle",
	"baby",
	"baby-carriage",
	"backpack",
	"backspace",
	"backward",
	"bacon",
	"bacteria",
	"bacterium",
	"badge",
	"badge-check",
	"badge-dollar",
	"badge-percent",
	"badge-sheriff",
	"badger-honey",
	"bags-shopping",
	"bahai",
	"balance-scale",
	"balance-scale-left",
	"balance-scale-right",
	"ball-pile",
	"ballot",
	"ballot-check",
	"ban",
	"band-aid",
	"banjo",
	"barcode",
	"barcode-alt",
	"barcode-read",
	"barcode-scan",
	"bars",
	"baseball",
	"baseball-ball",
	"basketball-ball",
	"basketball-hoop",
	"bat",
	"bath",
	"battery-bolt",
	"battery-empty",
	"battery-full",
	"battery-half",
	"battery-quarter",
	"battery-slash",
	"battery-three-quarters",
	"bed",
	"bed-alt",
	"bed-bunk",
	"bed-empty",
	"beer",
	"bell",
	"bell-exclamation",
	"bell-on",
	"bell-plus",
	"bell-school",
	"bell-school-slash",
	"bell-slash",
	"bells",
	"betamax",
	"bezier-curve",
	"bible",
	"bicycle",
	"biking",
	"biking-mountain",
	"binoculars",
	"biohazard",
	"birthday-cake",
	"blanket",
	"blender",
	"blender-phone",
	"blind",
	"blinds",
	"blinds-open",
	"blinds-raised",
	"blog",
	"bold",
	"bolt",
	"bomb",
	"bone",
	"bone-break",
	"bong",
	"book",
	"book-alt",
	"book-dead",
	"book-heart",
	"book-medical",
	"book-open",
	"book-reader",
	"book-spells",
	"book-user",
	"bookmark",
	"books",
	"books-medical",
	"boombox",
	"boot",
	"booth-curtain",
	"border-all",
	"border-bottom",
	"border-center-h",
	"border-center-v",
	"border-inner",
	"border-left",
	"border-none",
	"border-outer",
	"border-right",
	"border-style",
	"border-style-alt",
	"border-top",
	"bow-arrow",
	"bowling-ball",
	"bowling-pins",
	"box",
	"box-alt",
	"box-ballot",
	"box-check",
	"box-fragile",
	"box-full",
	"box-heart",
	"box-open",
	"box-tissue",
	"box-up",
	"box-usd",
	"boxes",
	"boxes-alt",
	"boxing-glove",
	"brackets",
	"brackets-curly",
	"braille",
	"brain",
	"bread-loaf",
	"bread-slice",
	"briefcase",
	"briefcase-medical",
	"bring-forward",
	"bring-front",
	"broadcast-tower",
	"broom",
	"browser",
	"brush",
	"bug",
	"building",
	"bullhorn",
	"bullseye",
	"bullseye-arrow",
	"bullseye-pointer",
	"burger-soda",
	"burn",
	"burrito",
	"bus",
	"bus-alt",
	"bus-school",
	"business-time",
	"cabinet-filing",
	"cactus",
	"calculator",
	"calculator-alt",
	"calendar",
	"calendar-alt",
	"calendar-check",
	"calendar-day",
	"calendar-edit",
	"calendar-exclamation",
	"calendar-minus",
	"calendar-plus",
	"calendar-star",
	"calendar-times",
	"calendar-week",
	"camcorder",
	"camera",
	"camera-alt",
	"camera-home",
	"camera-movie",
	"camera-polaroid",
	"camera-retro",
	"campfire",
	"campground",
	"candle-holder",
	"candy-cane",
	"candy-corn",
	"cannabis",
	"capsules",
	"car",
	"car-alt",
	"car-battery",
	"car-building",
	"car-bump",
	"car-bus",
	"car-crash",
	"car-garage",
	"car-mechanic",
	"car-side",
	"car-tilt",
	"car-wash",
	"caravan",
	"caravan-alt",
	"caret-circle-down",
	"caret-circle-left",
	"caret-circle-right",
	"caret-circle-up",
	"caret-down",
	"caret-left",
	"caret-right",
	"caret-square-down",
	"caret-square-left",
	"caret-square-right",
	"caret-square-up",
	"caret-up",
	"carrot",
	"cars",
	"cart-arrow-down",
	"cart-plus",
	"cash-register",
	"cassette-tape",
	"cat",
	"cat-space",
	"cauldron",
	"cctv",
	"certificate",
	"chair",
	"chair-office",
	"chalkboard",
	"chalkboard-teacher",
	"charging-station",
	"chart-area",
	"chart-bar",
	"chart-line",
	"chart-line-down",
	"chart-network",
	"chart-pie",
	"chart-pie-alt",
	"chart-scatter",
	"check",
	"check-circle",
	"check-double",
	"check-square",
	"cheese",
	"cheese-swiss",
	"cheeseburger",
	"chess",
	"chess-bishop",
	"chess-bishop-alt",
	"chess-board",
	"chess-clock",
	"chess-clock-alt",
	"chess-king",
	"chess-king-alt",
	"chess-knight",
	"chess-knight-alt",
	"chess-pawn",
	"chess-pawn-alt",
	"chess-queen",
	"chess-queen-alt",
	"chess-rook",
	"chess-rook-alt",
	"chevron-circle-down",
	"chevron-circle-left",
	"chevron-circle-right",
	"chevron-circle-up",
	"chevron-double-down",
	"chevron-double-left",
	"chevron-double-right",
	"chevron-double-up",
	"chevron-down",
	"chevron-left",
	"chevron-right",
	"chevron-square-down",
	"chevron-square-left",
	"chevron-square-right",
	"chevron-square-up",
	"chevron-up",
	"child",
	"chimney",
	"church",
	"circle",
	"circle-notch",
	"city",
	"clarinet",
	"claw-marks",
	"clinic-medical",
	"clipboard",
	"clipboard-check",
	"clipboard-list",
	"clipboard-list-check",
	"clipboard-prescription",
	"clipboard-user",
	"clock",
	"clone",
	"closed-captioning",
	"cloud",
	"cloud-download",
	"cloud-download-alt",
	"cloud-drizzle",
	"cloud-hail",
	"cloud-hail-mixed",
	"cloud-meatball",
	"cloud-moon",
	"cloud-moon-rain",
	"cloud-music",
	"cloud-rain",
	"cloud-rainbow",
	"cloud-showers",
	"cloud-showers-heavy",
	"cloud-sleet",
	"cloud-snow",
	"cloud-sun",
	"cloud-sun-rain",
	"cloud-upload",
	"cloud-upload-alt",
	"clouds",
	"clouds-moon",
	"clouds-sun",
	"club",
	"cocktail",
	"code",
	"code-branch",
	"code-commit",
	"code-merge",
	"coffee",
	"coffee-pot",
	"coffee-togo",
	"coffin",
	"coffin-cross",
	"cog",
	"cogs",
	"coin",
	"coins",
	"columns",
	"comet",
	"comment",
	"comment-alt",
	"comment-alt-check",
	"comment-alt-dollar",
	"comment-alt-dots",
	"comment-alt-edit",
	"comment-alt-exclamation",
	"comment-alt-lines",
	"comment-alt-medical",
	"comment-alt-minus",
	"comment-alt-music",
	"comment-alt-plus",
	"comment-alt-slash",
	"comment-alt-smile",
	"comment-alt-times",
	"comment-check",
	"comment-dollar",
	"comment-dots",
	"comment-edit",
	"comment-exclamation",
	"comment-lines",
	"comment-medical",
	"comment-minus",
	"comment-music",
	"comment-plus",
	"comment-slash",
	"comment-smile",
	"comment-times",
	"comments",
	"comments-alt",
	"comments-alt-dollar",
	"comments-dollar",
	"compact-disc",
	"compass",
	"compass-slash",
	"compress",
	"compress-alt",
	"compress-arrows-alt",
	"compress-wide",
	"computer-classic",
	"computer-speaker",
	"concierge-bell",
	"construction",
	"container-storage",
	"conveyor-belt",
	"conveyor-belt-alt",
	"cookie",
	"cookie-bite",
	"copy",
	"copyright",
	"corn",
	"couch",
	"cow",
	"cowbell",
	"cowbell-more",
	"credit-card",
	"credit-card-blank",
	"credit-card-front",
	"cricket",
	"croissant",
	"crop",
	"crop-alt",
	"cross",
	"crosshairs",
	"crow",
	"crown",
	"crutch",
	"crutches",
	"cube",
	"cubes",
	"curling",
	"cut",
	"dagger",
	"database",
	"deaf",
	"debug",
	"deer",
	"deer-rudolph",
	"democrat",
	"desktop",
	"desktop-alt",
	"dewpoint",
	"dharmachakra",
	"diagnoses",
	"diamond",
	"dice",
	"dice-d10",
	"dice-d12",
	"dice-d20",
	"dice-d4",
	"dice-d6",
	"dice-d8",
	"dice-five",
	"dice-four",
	"dice-one",
	"dice-six",
	"dice-three",
	"dice-two",
	"digging",
	"digital-tachograph",
	"diploma",
	"directions",
	"disc-drive",
	"disease",
	"divide",
	"dizzy",
	"dna",
	"do-not-enter",
	"dog",
	"dog-leashed",
	"dollar-sign",
	"dolly",
	"dolly-empty",
	"dolly-flatbed",
	"dolly-flatbed-alt",
	"dolly-flatbed-empty",
	"donate",
	"door-closed",
	"door-open",
	"dot-circle",
	"dove",
	"download",
	"drafting-compass",
	"dragon",
	"draw-circle",
	"draw-polygon",
	"draw-square",
	"dreidel",
	"drone",
	"drone-alt",
	"drum",
	"drum-steelpan",
	"drumstick",
	"drumstick-bite",
	"dryer",
	"dryer-alt",
	"duck",
	"dumbbell",
	"dumpster",
	"dumpster-fire",
	"dungeon",
	"ear",
	"ear-muffs",
	"eclipse",
	"eclipse-alt",
	"edit",
	"egg",
	"egg-fried",
	"eject",
	"elephant",
	"ellipsis-h",
	"ellipsis-h-alt",
	"ellipsis-v",
	"ellipsis-v-alt",
	"empty-set",
	"engine-warning",
	"envelope",
	"envelope-open",
	"envelope-open-dollar",
	"envelope-open-text",
	"envelope-square",
	"equals",
	"eraser",
	"ethernet",
	"euro-sign",
	"exchange",
	"exchange-alt",
	"exclamation",
	"exclamation-circle",
	"exclamation-square",
	"exclamation-triangle",
	"expand",
	"expand-alt",
	"expand-arrows",
	"expand-arrows-alt",
	"expand-wide",
	"external-link",
	"external-link-alt",
	"external-link-square",
	"external-link-square-alt",
	"eye",
	"eye-dropper",
	"eye-evil",
	"eye-slash",
	"fan",
	"fan-table",
	"farm",
	"fast-backward",
	"fast-forward",
	"faucet",
	"faucet-drip",
	"fax",
	"feather",
	"feather-alt",
	"female",
	"field-hockey",
	"fighter-jet",
	"file",
	"file-alt",
	"file-archive",
	"file-audio",
	"file-certificate",
	"file-chart-line",
	"file-chart-pie",
	"file-check",
	"file-code",
	"file-contract",
	"file-csv",
	"file-download",
	"file-edit",
	"file-excel",
	"file-exclamation",
	"file-export",
	"file-image",
	"file-import",
	"file-invoice",
	"file-invoice-dollar",
	"file-medical",
	"file-medical-alt",
	"file-minus",
	"file-music",
	"file-pdf",
	"file-plus",
	"file-powerpoint",
	"file-prescription",
	"file-search",
	"file-signature",
	"file-spreadsheet",
	"file-times",
	"file-upload",
	"file-user",
	"file-video",
	"file-word",
	"files-medical",
	"fill",
	"fill-drip",
	"film",
	"film-alt",
	"film-canister",
	"filter",
	"fingerprint",
	"fire",
	"fire-alt",
	"fire-extinguisher",
	"fire-smoke",
	"fireplace",
	"first-aid",
	"fish",
	"fish-cooked",
	"fist-raised",
	"flag",
	"flag-alt",
	"flag-checkered",
	"flag-usa",
	"flame",
	"flashlight",
	"flask",
	"flask-poison",
	"flask-potion",
	"flower",
	"flower-daffodil",
	"flower-tulip",
	"flushed",
	"flute",
	"flux-capacitor",
	"fog",
	"folder",
	"folder-download",
	"folder-minus",
	"folder-open",
	"folder-plus",
	"folder-times",
	"folder-tree",
	"folder-upload",
	"folders",
	"font",
	"font-awesome-logo-full",
	"font-case",
	"football-ball",
	"football-helmet",
	"forklift",
	"forward",
	"fragile",
	"french-fries",
	"frog",
	"frosty-head",
	"frown",
	"frown-open",
	"function",
	"funnel-dollar",
	"futbol",
	"galaxy",
	"game-board",
	"game-board-alt",
	"game-console-handheld",
	"gamepad",
	"gamepad-alt",
	"garage",
	"garage-car",
	"garage-open",
	"gas-pump",
	"gas-pump-slash",
	"gavel",
	"gem",
	"genderless",
	"ghost",
	"gift",
	"gift-card",
	"gifts",
	"gingerbread-man",
	"glass",
	"glass-champagne",
	"glass-cheers",
	"glass-citrus",
	"glass-martini",
	"glass-martini-alt",
	"glass-whiskey",
	"glass-whiskey-rocks",
	"glasses",
	"glasses-alt",
	"globe",
	"globe-africa",
	"globe-americas",
	"globe-asia",
	"globe-europe",
	"globe-snow",
	"globe-stand",
	"golf-ball",
	"golf-club",
	"gopuram",
	"graduation-cap",
	"gramophone",
	"greater-than",
	"greater-than-equal",
	"grimace",
	"grin",
	"grin-alt",
	"grin-beam",
	"grin-beam-sweat",
	"grin-hearts",
	"grin-squint",
	"grin-squint-tears",
	"grin-stars",
	"grin-tears",
	"grin-tongue",
	"grin-tongue-squint",
	"grin-tongue-wink",
	"grin-wink",
	"grip-horizontal",
	"grip-lines",
	"grip-lines-vertical",
	"grip-vertical",
	"guitar",
	"guitar-electric",
	"guitars",
	"h-square",
	"h1",
	"h2",
	"h3",
	"h4",
	"hamburger",
	"hammer",
	"hammer-war",
	"hamsa",
	"hand-heart",
	"hand-holding",
	"hand-holding-box",
	"hand-holding-heart",
	"hand-holding-magic",
	"hand-holding-medical",
	"hand-holding-seedling",
	"hand-holding-usd",
	"hand-holding-water",
	"hand-lizard",
	"hand-middle-finger",
	"hand-paper",
	"hand-peace",
	"hand-point-down",
	"hand-point-left",
	"hand-point-right",
	"hand-point-up",
	"hand-pointer",
	"hand-receiving",
	"hand-rock",
	"hand-scissors",
	"hand-sparkles",
	"hand-spock",
	"hands",
	"hands-heart",
	"hands-helping",
	"hands-usd",
	"hands-wash",
	"handshake",
	"handshake-alt",
	"handshake-alt-slash",
	"handshake-slash",
	"hanukiah",
	"hard-hat",
	"hashtag",
	"hat-chef",
	"hat-cowboy",
	"hat-cowboy-side",
	"hat-santa",
	"hat-winter",
	"hat-witch",
	"hat-wizard",
	"hdd",
	"head-side",
	"head-side-brain",
	"head-side-cough",
	"head-side-cough-slash",
	"head-side-headphones",
	"head-side-mask",
	"head-side-medical",
	"head-side-virus",
	"head-vr",
	"heading",
	"headphones",
	"headphones-alt",
	"headset",
	"heart",
	"heart-broken",
	"heart-circle",
	"heart-rate",
	"heart-square",
	"heartbeat",
	"heat",
	"helicopter",
	"helmet-battle",
	"hexagon",
	"highlighter",
	"hiking",
	"hippo",
	"history",
	"hockey-mask",
	"hockey-puck",
	"hockey-sticks",
	"holly-berry",
	"home",
	"home-alt",
	"home-heart",
	"home-lg",
	"home-lg-alt",
	"hood-cloak",
	"horizontal-rule",
	"horse",
	"horse-head",
	"horse-saddle",
	"hospital",
	"hospital-alt",
	"hospital-symbol",
	"hospital-user",
	"hospitals",
	"hot-tub",
	"hotdog",
	"hotel",
	"hourglass",
	"hourglass-end",
	"hourglass-half",
	"hourglass-start",
	"house",
	"house-damage",
	"house-day",
	"house-flood",
	"house-leave",
	"house-night",
	"house-return",
	"house-signal",
	"house-user",
	"hryvnia",
	"humidity",
	"hurricane",
	"i-cursor",
	"ice-cream",
	"ice-skate",
	"icicles",
	"icons",
	"icons-alt",
	"id-badge",
	"id-card",
	"id-card-alt",
	"igloo",
	"image",
	"image-polaroid",
	"images",
	"inbox",
	"inbox-in",
	"inbox-out",
	"indent",
	"industry",
	"industry-alt",
	"infinity",
	"info",
	"info-circle",
	"info-square",
	"inhaler",
	"integral",
	"intersection",
	"inventory",
	"island-tropical",
	"italic",
	"jack-o-lantern",
	"jedi",
	"joint",
	"journal-whills",
	"joystick",
	"jug",
	"kaaba",
	"kazoo",
	"kerning",
	"key",
	"key-skeleton",
	"keyboard",
	"keynote",
	"khanda",
	"kidneys",
	"kiss",
	"kiss-beam",
	"kiss-wink-heart",
	"kite",
	"kiwi-bird",
	"knife-kitchen",
	"lambda",
	"lamp",
	"lamp-desk",
	"lamp-floor",
	"landmark",
	"landmark-alt",
	"language",
	"laptop",
	"laptop-code",
	"laptop-house",
	"laptop-medical",
	"lasso",
	"laugh",
	"laugh-beam",
	"laugh-squint",
	"laugh-wink",
	"layer-group",
	"layer-minus",
	"layer-plus",
	"leaf",
	"leaf-heart",
	"leaf-maple",
	"leaf-oak",
	"lemon",
	"less-than",
	"less-than-equal",
	"level-down",
	"level-down-alt",
	"level-up",
	"level-up-alt",
	"life-ring",
	"light-ceiling",
	"light-switch",
	"light-switch-off",
	"light-switch-on",
	"lightbulb",
	"lightbulb-dollar",
	"lightbulb-exclamation",
	"lightbulb-on",
	"lightbulb-slash",
	"lights-holiday",
	"line-columns",
	"line-height",
	"link",
	"lips",
	"lira-sign",
	"list",
	"list-alt",
	"list-music",
	"list-ol",
	"list-ul",
	"location",
	"location-arrow",
	"location-circle",
	"location-slash",
	"lock",
	"lock-alt",
	"lock-open",
	"lock-open-alt",
	"long-arrow-alt-down",
	"long-arrow-alt-left",
	"long-arrow-alt-right",
	"long-arrow-alt-up",
	"long-arrow-down",
	"long-arrow-left",
	"long-arrow-right",
	"long-arrow-up",
	"loveseat",
	"low-vision",
	"luchador",
	"luggage-cart",
	"lungs",
	"lungs-virus",
	"mace",
	"magic",
	"magnet",
	"mail-bulk",
	"mailbox",
	"male",
	"mandolin",
	"map",
	"map-marked",
	"map-marked-alt",
	"map-marker",
	"map-marker-alt",
	"map-marker-alt-slash",
	"map-marker-check",
	"map-marker-edit",
	"map-marker-exclamation",
	"map-marker-minus",
	"map-marker-plus",
	"map-marker-question",
	"map-marker-slash",
	"map-marker-smile",
	"map-marker-times",
	"map-pin",
	"map-signs",
	"marker",
	"mars",
	"mars-double",
	"mars-stroke",
	"mars-stroke-h",
	"mars-stroke-v",
	"mask",
	"meat",
	"medal",
	"medkit",
	"megaphone",
	"meh",
	"meh-blank",
	"meh-rolling-eyes",
	"memory",
	"menorah",
	"mercury",
	"meteor",
	"microchip",
	"microphone",
	"microphone-alt",
	"microphone-alt-slash",
	"microphone-slash",
	"microphone-stand",
	"microscope",
	"microwave",
	"mind-share",
	"minus",
	"minus-circle",
	"minus-hexagon",
	"minus-octagon",
	"minus-square",
	"mistletoe",
	"mitten",
	"mobile",
	"mobile-alt",
	"mobile-android",
	"mobile-android-alt",
	"money-bill",
	"money-bill-alt",
	"money-bill-wave",
	"money-bill-wave-alt",
	"money-check",
	"money-check-alt",
	"money-check-edit",
	"money-check-edit-alt",
	"monitor-heart-rate",
	"monkey",
	"monument",
	"moon",
	"moon-cloud",
	"moon-stars",
	"mortar-pestle",
	"mosque",
	"motorcycle",
	"mountain",
	"mountains",
	"mouse",
	"mouse-alt",
	"mouse-pointer",
	"mp3-player",
	"mug",
	"mug-hot",
	"mug-marshmallows",
	"mug-tea",
	"music",
	"music-alt",
	"music-alt-slash",
	"music-slash",
	"narwhal",
	"network-wired",
	"neuter",
	"newspaper",
	"not-equal",
	"notes-medical",
	"object-group",
	"object-ungroup",
	"octagon",
	"oil-can",
	"oil-temp",
	"om",
	"omega",
	"ornament",
	"otter",
	"outdent",
	"outlet",
	"oven",
	"overline",
	"page-break",
	"pager",
	"paint-brush",
	"paint-brush-alt",
	"paint-roller",
	"palette",
	"pallet",
	"pallet-alt",
	"paper-plane",
	"paperclip",
	"parachute-box",
	"paragraph",
	"paragraph-rtl",
	"parking",
	"parking-circle",
	"parking-circle-slash",
	"parking-slash",
	"passport",
	"pastafarianism",
	"paste",
	"pause",
	"pause-circle",
	"paw",
	"paw-alt",
	"paw-claws",
	"peace",
	"pegasus",
	"pen",
	"pen-alt",
	"pen-fancy",
	"pen-nib",
	"pen-square",
	"pencil",
	"pencil-alt",
	"pencil-paintbrush",
	"pencil-ruler",
	"pennant",
	"people-arrows",
	"people-carry",
	"pepper-hot",
	"percent",
	"percentage",
	"person-booth",
	"person-carry",
	"person-dolly",
	"person-dolly-empty",
	"person-sign",
	"phone",
	"phone-alt",
	"phone-laptop",
	"phone-office",
	"phone-plus",
	"phone-rotary",
	"phone-slash",
	"phone-square",
	"phone-square-alt",
	"phone-volume",
	"photo-video",
	"pi",
	"piano",
	"piano-keyboard",
	"pie",
	"pig",
	"piggy-bank",
	"pills",
	"pizza",
	"pizza-slice",
	"place-of-worship",
	"plane",
	"plane-alt",
	"plane-arrival",
	"plane-departure",
	"plane-slash",
	"planet-moon",
	"planet-ringed",
	"play",
	"play-circle",
	"plug",
	"plus",
	"plus-circle",
	"plus-hexagon",
	"plus-octagon",
	"plus-square",
	"podcast",
	"podium",
	"podium-star",
	"police-box",
	"poll",
	"poll-h",
	"poll-people",
	"poo",
	"poo-storm",
	"poop",
	"popcorn",
	"portal-enter",
	"portal-exit",
	"portrait",
	"pound-sign",
	"power-off",
	"pray",
	"praying-hands",
	"prescription",
	"prescription-bottle",
	"prescription-bottle-alt",
	"presentation",
	"print",
	"print-search",
	"print-slash",
	"procedures",
	"project-diagram",
	"projector",
	"pump-medical",
	"pump-soap",
	"pumpkin",
	"puzzle-piece",
	"qrcode",
	"question",
	"question-circle",
	"question-square",
	"quidditch",
	"quote-left",
	"quote-right",
	"quran",
	"rabbit",
	"rabbit-fast",
	"racquet",
	"radar",
	"radiation",
	"radiation-alt",
	"radio",
	"radio-alt",
	"rainbow",
	"raindrops",
	"ram",
	"ramp-loading",
	"random",
	"raygun",
	"receipt",
	"record-vinyl",
	"rectangle-landscape",
	"rectangle-portrait",
	"rectangle-wide",
	"recycle",
	"redo",
	"redo-alt",
	"refrigerator",
	"registered",
	"remove-format",
	"repeat",
	"repeat-1",
	"repeat-1-alt",
	"repeat-alt",
	"reply",
	"reply-all",
	"republican",
	"restroom",
	"retweet",
	"retweet-alt",
	"ribbon",
	"ring",
	"rings-wedding",
	"road",
	"robot",
	"rocket",
	"rocket-launch",
	"route",
	"route-highway",
	"route-interstate",
	"router",
	"rss",
	"rss-square",
	"ruble-sign",
	"ruler",
	"ruler-combined",
	"ruler-horizontal",
	"ruler-triangle",
	"ruler-vertical",
	"running",
	"rupee-sign",
	"rv",
	"sack",
	"sack-dollar",
	"sad-cry",
	"sad-tear",
	"salad",
	"sandwich",
	"satellite",
	"satellite-dish",
	"sausage",
	"save",
	"sax-hot",
	"saxophone",
	"scalpel",
	"scalpel-path",
	"scanner",
	"scanner-image",
	"scanner-keyboard",
	"scanner-touchscreen",
	"scarecrow",
	"scarf",
	"school",
	"screwdriver",
	"scroll",
	"scroll-old",
	"scrubber",
	"scythe",
	"sd-card",
	"search",
	"search-dollar",
	"search-location",
	"search-minus",
	"search-plus",
	"seedling",
	"send-back",
	"send-backward",
	"sensor",
	"sensor-alert",
	"sensor-fire",
	"sensor-on",
	"sensor-smoke",
	"server",
	"shapes",
	"share",
	"share-all",
	"share-alt",
	"share-alt-square",
	"share-square",
	"sheep",
	"shekel-sign",
	"shield",
	"shield-alt",
	"shield-check",
	"shield-cross",
	"shield-virus",
	"ship",
	"shipping-fast",
	"shipping-timed",
	"shish-kebab",
	"shoe-prints",
	"shopping-bag",
	"shopping-basket",
	"shopping-cart",
	"shovel",
	"shovel-snow",
	"shower",
	"shredder",
	"shuttle-van",
	"shuttlecock",
	"sickle",
	"sigma",
	"sign",
	"sign-in",
	"sign-in-alt",
	"sign-language",
	"sign-out",
	"sign-out-alt",
	"signal",
	"signal-1",
	"signal-2",
	"signal-3",
	"signal-4",
	"signal-alt",
	"signal-alt-1",
	"signal-alt-2",
	"signal-alt-3",
	"signal-alt-slash",
	"signal-slash",
	"signal-stream",
	"signature",
	"sim-card",
	"sink",
	"siren",
	"siren-on",
	"sitemap",
	"skating",
	"skeleton",
	"ski-jump",
	"ski-lift",
	"skiing",
	"skiing-nordic",
	"skull",
	"skull-cow",
	"skull-crossbones",
	"slash",
	"sledding",
	"sleigh",
	"sliders-h",
	"sliders-h-square",
	"sliders-v",
	"sliders-v-square",
	"smile",
	"smile-beam",
	"smile-plus",
	"smile-wink",
	"smog",
	"smoke",
	"smoking",
	"smoking-ban",
	"sms",
	"snake",
	"snooze",
	"snow-blowing",
	"snowboarding",
	"snowflake",
	"snowflakes",
	"snowman",
	"snowmobile",
	"snowplow",
	"soap",
	"socks",
	"solar-panel",
	"solar-system",
	"sort",
	"sort-alpha-down",
	"sort-alpha-down-alt",
	"sort-alpha-up",
	"sort-alpha-up-alt",
	"sort-alt",
	"sort-amount-down",
	"sort-amount-down-alt",
	"sort-amount-up",
	"sort-amount-up-alt",
	"sort-circle",
	"sort-circle-down",
	"sort-circle-up",
	"sort-down",
	"sort-numeric-down",
	"sort-numeric-down-alt",
	"sort-numeric-up",
	"sort-numeric-up-alt",
	"sort-shapes-down",
	"sort-shapes-down-alt",
	"sort-shapes-up",
	"sort-shapes-up-alt",
	"sort-size-down",
	"sort-size-down-alt",
	"sort-size-up",
	"sort-size-up-alt",
	"sort-up",
	"soup",
	"spa",
	"space-shuttle",
	"space-station-moon",
	"space-station-moon-alt",
	"spade",
	"sparkles",
	"speaker",
	"speakers",
	"spell-check",
	"spider",
	"spider-black-widow",
	"spider-web",
	"spinner",
	"spinner-third",
	"splotch",
	"spray-can",
	"sprinkler",
	"square",
	"square-full",
	"square-root",
	"square-root-alt",
	"squirrel",
	"staff",
	"stamp",
	"star",
	"star-and-crescent",
	"star-christmas",
	"star-exclamation",
	"star-half",
	"star-half-alt",
	"star-of-david",
	"star-of-life",
	"star-shooting",
	"starfighter",
	"starfighter-alt",
	"stars",
	"starship",
	"starship-freighter",
	"steak",
	"steering-wheel",
	"step-backward",
	"step-forward",
	"stethoscope",
	"sticky-note",
	"stocking",
	"stomach",
	"stop",
	"stop-circle",
	"stopwatch",
	"stopwatch-20",
	"store",
	"store-alt",
	"store-alt-slash",
	"store-slash",
	"stream",
	"street-view",
	"stretcher",
	"strikethrough",
	"stroopwafel",
	"subscript",
	"subway",
	"suitcase",
	"suitcase-rolling",
	"sun",
	"sun-cloud",
	"sun-dust",
	"sun-haze",
	"sunglasses",
	"sunrise",
	"sunset",
	"superscript",
	"surprise",
	"swatchbook",
	"swimmer",
	"swimming-pool",
	"sword",
	"sword-laser",
	"sword-laser-alt",
	"swords",
	"swords-laser",
	"synagogue",
	"sync",
	"sync-alt",
	"syringe",
	"table",
	"table-tennis",
	"tablet",
	"tablet-alt",
	"tablet-android",
	"tablet-android-alt",
	"tablet-rugged",
	"tablets",
	"tachometer",
	"tachometer-alt",
	"tachometer-alt-average",
	"tachometer-alt-fast",
	"tachometer-alt-fastest",
	"tachometer-alt-slow",
	"tachometer-alt-slowest",
	"tachometer-average",
	"tachometer-fast",
	"tachometer-fastest",
	"tachometer-slow",
	"tachometer-slowest",
	"taco",
	"tag",
	"tags",
	"tally",
	"tanakh",
	"tape",
	"tasks",
	"tasks-alt",
	"taxi",
	"teeth",
	"teeth-open",
	"telescope",
	"temperature-down",
	"temperature-frigid",
	"temperature-high",
	"temperature-hot",
	"temperature-low",
	"temperature-up",
	"tenge",
	"tennis-ball",
	"terminal",
	"text",
	"text-height",
	"text-size",
	"text-width",
	"th",
	"th-large",
	"th-list",
	"theater-masks",
	"thermometer",
	"thermometer-empty",
	"thermometer-full",
	"thermometer-half",
	"thermometer-quarter",
	"thermometer-three-quarters",
	"theta",
	"thumbs-down",
	"thumbs-up",
	"thumbtack",
	"thunderstorm",
	"thunderstorm-moon",
	"thunderstorm-sun",
	"ticket",
	"ticket-alt",
	"tilde",
	"times",
	"times-circle",
	"times-hexagon",
	"times-octagon",
	"times-square",
	"tint",
	"tint-slash",
	"tire",
	"tire-flat",
	"tire-pressure-warning",
	"tire-rugged",
	"tired",
	"toggle-off",
	"toggle-on",
	"toilet",
	"toilet-paper",
	"toilet-paper-alt",
	"toilet-paper-slash",
	"tombstone",
	"tombstone-alt",
	"toolbox",
	"tools",
	"tooth",
	"toothbrush",
	"torah",
	"torii-gate",
	"tornado",
	"tractor",
	"trademark",
	"traffic-cone",
	"traffic-light",
	"traffic-light-go",
	"traffic-light-slow",
	"traffic-light-stop",
	"trailer",
	"train",
	"tram",
	"transgender",
	"transgender-alt",
	"transporter",
	"transporter-1",
	"transporter-2",
	"transporter-3",
	"transporter-empty",
	"trash",
	"trash-alt",
	"trash-restore",
	"trash-restore-alt",
	"trash-undo",
	"trash-undo-alt",
	"treasure-chest",
	"tree",
	"tree-alt",
	"tree-christmas",
	"tree-decorated",
	"tree-large",
	"tree-palm",
	"trees",
	"triangle",
	"triangle-music",
	"trophy",
	"trophy-alt",
	"truck",
	"truck-container",
	"truck-couch",
	"truck-loading",
	"truck-monster",
	"truck-moving",
	"truck-pickup",
	"truck-plow",
	"truck-ramp",
	"trumpet",
	"tshirt",
	"tty",
	"turkey",
	"turntable",
	"turtle",
	"tv",
	"tv-alt",
	"tv-music",
	"tv-retro",
	"typewriter",
	"ufo",
	"ufo-beam",
	"umbrella",
	"umbrella-beach",
	"underline",
	"undo",
	"undo-alt",
	"unicorn",
	"union",
	"universal-access",
	"university",
	"unlink",
	"unlock",
	"unlock-alt",
	"upload",
	"usb-drive",
	"usd-circle",
	"usd-square",
	"user",
	"user-alien",
	"user-alt",
	"user-alt-slash",
	"user-astronaut",
	"user-chart",
	"user-check",
	"user-circle",
	"user-clock",
	"user-cog",
	"user-cowboy",
	"user-crown",
	"user-edit",
	"user-friends",
	"user-graduate",
	"user-hard-hat",
	"user-headset",
	"user-injured",
	"user-lock",
	"user-md",
	"user-md-chat",
	"user-minus",
	"user-music",
	"user-ninja",
	"user-nurse",
	"user-plus",
	"user-robot",
	"user-secret",
	"user-shield",
	"user-slash",
	"user-tag",
	"user-tie",
	"user-times",
	"user-unlock",
	"user-visor",
	"users",
	"users-class",
	"users-cog",
	"users-crown",
	"users-medical",
	"users-slash",
	"utensil-fork",
	"utensil-knife",
	"utensil-spoon",
	"utensils",
	"utensils-alt",
	"vacuum",
	"vacuum-robot",
	"value-absolute",
	"vector-square",
	"venus",
	"venus-double",
	"venus-mars",
	"vest",
	"vest-patches",
	"vhs",
	"vial",
	"vials",
	"video",
	"video-plus",
	"video-slash",
	"vihara",
	"violin",
	"virus",
	"virus-slash",
	"viruses",
	"voicemail",
	"volcano",
	"volleyball-ball",
	"volume",
	"volume-down",
	"volume-mute",
	"volume-off",
	"volume-slash",
	"volume-up",
	"vote-nay",
	"vote-yea",
	"vr-cardboard",
	"wagon-covered",
	"walker",
	"walkie-talkie",
	"walking",
	"wallet",
	"wand",
	"wand-magic",
	"warehouse",
	"warehouse-alt",
	"washer",
	"watch",
	"watch-calculator",
	"watch-fitness",
	"water",
	"water-lower",
	"water-rise",
	"wave-sine",
	"wave-square",
	"wave-triangle",
	"waveform",
	"waveform-path",
	"webcam",
	"webcam-slash",
	"weight",
	"weight-hanging",
	"whale",
	"wheat",
	"wheelchair",
	"whistle",
	"wifi",
	"wifi-1",
	"wifi-2",
	"wifi-slash",
	"wind",
	"wind-turbine",
	"wind-warning",
	"window",
	"window-alt",
	"window-close",
	"window-frame",
	"window-frame-open",
	"window-maximize",
	"window-minimize",
	"window-restore",
	"windsock",
	"wine-bottle",
	"wine-glass",
	"wine-glass-alt",
	"won-sign",
	"wreath",
	"wrench",
	"x-ray",
	"yen-sign",
	"yin-yang"
	]
}
PK!X�n�n$assets/lib/font-awesome-pro/solid.jsnu�[���{
  "icons": [
	"abacus",
	"acorn",
	"ad",
	"address-book",
	"address-card",
	"adjust",
	"air-conditioner",
	"air-freshener",
	"alarm-clock",
	"alarm-exclamation",
	"alarm-plus",
	"alarm-snooze",
	"album",
	"album-collection",
	"alicorn",
	"alien",
	"alien-monster",
	"align-center",
	"align-justify",
	"align-left",
	"align-right",
	"align-slash",
	"allergies",
	"ambulance",
	"american-sign-language-interpreting",
	"amp-guitar",
	"analytics",
	"anchor",
	"angel",
	"angle-double-down",
	"angle-double-left",
	"angle-double-right",
	"angle-double-up",
	"angle-down",
	"angle-left",
	"angle-right",
	"angle-up",
	"angry",
	"ankh",
	"apple-alt",
	"apple-crate",
	"archive",
	"archway",
	"arrow-alt-circle-down",
	"arrow-alt-circle-left",
	"arrow-alt-circle-right",
	"arrow-alt-circle-up",
	"arrow-alt-down",
	"arrow-alt-from-bottom",
	"arrow-alt-from-left",
	"arrow-alt-from-right",
	"arrow-alt-from-top",
	"arrow-alt-left",
	"arrow-alt-right",
	"arrow-alt-square-down",
	"arrow-alt-square-left",
	"arrow-alt-square-right",
	"arrow-alt-square-up",
	"arrow-alt-to-bottom",
	"arrow-alt-to-left",
	"arrow-alt-to-right",
	"arrow-alt-to-top",
	"arrow-alt-up",
	"arrow-circle-down",
	"arrow-circle-left",
	"arrow-circle-right",
	"arrow-circle-up",
	"arrow-down",
	"arrow-from-bottom",
	"arrow-from-left",
	"arrow-from-right",
	"arrow-from-top",
	"arrow-left",
	"arrow-right",
	"arrow-square-down",
	"arrow-square-left",
	"arrow-square-right",
	"arrow-square-up",
	"arrow-to-bottom",
	"arrow-to-left",
	"arrow-to-right",
	"arrow-to-top",
	"arrow-up",
	"arrows",
	"arrows-alt",
	"arrows-alt-h",
	"arrows-alt-v",
	"arrows-h",
	"arrows-v",
	"assistive-listening-systems",
	"asterisk",
	"at",
	"atlas",
	"atom",
	"atom-alt",
	"audio-description",
	"award",
	"axe",
	"axe-battle",
	"baby",
	"baby-carriage",
	"backpack",
	"backspace",
	"backward",
	"bacon",
	"bacteria",
	"bacterium",
	"badge",
	"badge-check",
	"badge-dollar",
	"badge-percent",
	"badge-sheriff",
	"badger-honey",
	"bags-shopping",
	"bahai",
	"balance-scale",
	"balance-scale-left",
	"balance-scale-right",
	"ball-pile",
	"ballot",
	"ballot-check",
	"ban",
	"band-aid",
	"banjo",
	"barcode",
	"barcode-alt",
	"barcode-read",
	"barcode-scan",
	"bars",
	"baseball",
	"baseball-ball",
	"basketball-ball",
	"basketball-hoop",
	"bat",
	"bath",
	"battery-bolt",
	"battery-empty",
	"battery-full",
	"battery-half",
	"battery-quarter",
	"battery-slash",
	"battery-three-quarters",
	"bed",
	"bed-alt",
	"bed-bunk",
	"bed-empty",
	"beer",
	"bell",
	"bell-exclamation",
	"bell-on",
	"bell-plus",
	"bell-school",
	"bell-school-slash",
	"bell-slash",
	"bells",
	"betamax",
	"bezier-curve",
	"bible",
	"bicycle",
	"biking",
	"biking-mountain",
	"binoculars",
	"biohazard",
	"birthday-cake",
	"blanket",
	"blender",
	"blender-phone",
	"blind",
	"blinds",
	"blinds-open",
	"blinds-raised",
	"blog",
	"bold",
	"bolt",
	"bomb",
	"bone",
	"bone-break",
	"bong",
	"book",
	"book-alt",
	"book-dead",
	"book-heart",
	"book-medical",
	"book-open",
	"book-reader",
	"book-spells",
	"book-user",
	"bookmark",
	"books",
	"books-medical",
	"boombox",
	"boot",
	"booth-curtain",
	"border-all",
	"border-bottom",
	"border-center-h",
	"border-center-v",
	"border-inner",
	"border-left",
	"border-none",
	"border-outer",
	"border-right",
	"border-style",
	"border-style-alt",
	"border-top",
	"bow-arrow",
	"bowling-ball",
	"bowling-pins",
	"box",
	"box-alt",
	"box-ballot",
	"box-check",
	"box-fragile",
	"box-full",
	"box-heart",
	"box-open",
	"box-tissue",
	"box-up",
	"box-usd",
	"boxes",
	"boxes-alt",
	"boxing-glove",
	"brackets",
	"brackets-curly",
	"braille",
	"brain",
	"bread-loaf",
	"bread-slice",
	"briefcase",
	"briefcase-medical",
	"bring-forward",
	"bring-front",
	"broadcast-tower",
	"broom",
	"browser",
	"brush",
	"bug",
	"building",
	"bullhorn",
	"bullseye",
	"bullseye-arrow",
	"bullseye-pointer",
	"burger-soda",
	"burn",
	"burrito",
	"bus",
	"bus-alt",
	"bus-school",
	"business-time",
	"cabinet-filing",
	"cactus",
	"calculator",
	"calculator-alt",
	"calendar",
	"calendar-alt",
	"calendar-check",
	"calendar-day",
	"calendar-edit",
	"calendar-exclamation",
	"calendar-minus",
	"calendar-plus",
	"calendar-star",
	"calendar-times",
	"calendar-week",
	"camcorder",
	"camera",
	"camera-alt",
	"camera-home",
	"camera-movie",
	"camera-polaroid",
	"camera-retro",
	"campfire",
	"campground",
	"candle-holder",
	"candy-cane",
	"candy-corn",
	"cannabis",
	"capsules",
	"car",
	"car-alt",
	"car-battery",
	"car-building",
	"car-bump",
	"car-bus",
	"car-crash",
	"car-garage",
	"car-mechanic",
	"car-side",
	"car-tilt",
	"car-wash",
	"caravan",
	"caravan-alt",
	"caret-circle-down",
	"caret-circle-left",
	"caret-circle-right",
	"caret-circle-up",
	"caret-down",
	"caret-left",
	"caret-right",
	"caret-square-down",
	"caret-square-left",
	"caret-square-right",
	"caret-square-up",
	"caret-up",
	"carrot",
	"cars",
	"cart-arrow-down",
	"cart-plus",
	"cash-register",
	"cassette-tape",
	"cat",
	"cat-space",
	"cauldron",
	"cctv",
	"certificate",
	"chair",
	"chair-office",
	"chalkboard",
	"chalkboard-teacher",
	"charging-station",
	"chart-area",
	"chart-bar",
	"chart-line",
	"chart-line-down",
	"chart-network",
	"chart-pie",
	"chart-pie-alt",
	"chart-scatter",
	"check",
	"check-circle",
	"check-double",
	"check-square",
	"cheese",
	"cheese-swiss",
	"cheeseburger",
	"chess",
	"chess-bishop",
	"chess-bishop-alt",
	"chess-board",
	"chess-clock",
	"chess-clock-alt",
	"chess-king",
	"chess-king-alt",
	"chess-knight",
	"chess-knight-alt",
	"chess-pawn",
	"chess-pawn-alt",
	"chess-queen",
	"chess-queen-alt",
	"chess-rook",
	"chess-rook-alt",
	"chevron-circle-down",
	"chevron-circle-left",
	"chevron-circle-right",
	"chevron-circle-up",
	"chevron-double-down",
	"chevron-double-left",
	"chevron-double-right",
	"chevron-double-up",
	"chevron-down",
	"chevron-left",
	"chevron-right",
	"chevron-square-down",
	"chevron-square-left",
	"chevron-square-right",
	"chevron-square-up",
	"chevron-up",
	"child",
	"chimney",
	"church",
	"circle",
	"circle-notch",
	"city",
	"clarinet",
	"claw-marks",
	"clinic-medical",
	"clipboard",
	"clipboard-check",
	"clipboard-list",
	"clipboard-list-check",
	"clipboard-prescription",
	"clipboard-user",
	"clock",
	"clone",
	"closed-captioning",
	"cloud",
	"cloud-download",
	"cloud-download-alt",
	"cloud-drizzle",
	"cloud-hail",
	"cloud-hail-mixed",
	"cloud-meatball",
	"cloud-moon",
	"cloud-moon-rain",
	"cloud-music",
	"cloud-rain",
	"cloud-rainbow",
	"cloud-showers",
	"cloud-showers-heavy",
	"cloud-sleet",
	"cloud-snow",
	"cloud-sun",
	"cloud-sun-rain",
	"cloud-upload",
	"cloud-upload-alt",
	"clouds",
	"clouds-moon",
	"clouds-sun",
	"club",
	"cocktail",
	"code",
	"code-branch",
	"code-commit",
	"code-merge",
	"coffee",
	"coffee-pot",
	"coffee-togo",
	"coffin",
	"coffin-cross",
	"cog",
	"cogs",
	"coin",
	"coins",
	"columns",
	"comet",
	"comment",
	"comment-alt",
	"comment-alt-check",
	"comment-alt-dollar",
	"comment-alt-dots",
	"comment-alt-edit",
	"comment-alt-exclamation",
	"comment-alt-lines",
	"comment-alt-medical",
	"comment-alt-minus",
	"comment-alt-music",
	"comment-alt-plus",
	"comment-alt-slash",
	"comment-alt-smile",
	"comment-alt-times",
	"comment-check",
	"comment-dollar",
	"comment-dots",
	"comment-edit",
	"comment-exclamation",
	"comment-lines",
	"comment-medical",
	"comment-minus",
	"comment-music",
	"comment-plus",
	"comment-slash",
	"comment-smile",
	"comment-times",
	"comments",
	"comments-alt",
	"comments-alt-dollar",
	"comments-dollar",
	"compact-disc",
	"compass",
	"compass-slash",
	"compress",
	"compress-alt",
	"compress-arrows-alt",
	"compress-wide",
	"computer-classic",
	"computer-speaker",
	"concierge-bell",
	"construction",
	"container-storage",
	"conveyor-belt",
	"conveyor-belt-alt",
	"cookie",
	"cookie-bite",
	"copy",
	"copyright",
	"corn",
	"couch",
	"cow",
	"cowbell",
	"cowbell-more",
	"credit-card",
	"credit-card-blank",
	"credit-card-front",
	"cricket",
	"croissant",
	"crop",
	"crop-alt",
	"cross",
	"crosshairs",
	"crow",
	"crown",
	"crutch",
	"crutches",
	"cube",
	"cubes",
	"curling",
	"cut",
	"dagger",
	"database",
	"deaf",
	"debug",
	"deer",
	"deer-rudolph",
	"democrat",
	"desktop",
	"desktop-alt",
	"dewpoint",
	"dharmachakra",
	"diagnoses",
	"diamond",
	"dice",
	"dice-d10",
	"dice-d12",
	"dice-d20",
	"dice-d4",
	"dice-d6",
	"dice-d8",
	"dice-five",
	"dice-four",
	"dice-one",
	"dice-six",
	"dice-three",
	"dice-two",
	"digging",
	"digital-tachograph",
	"diploma",
	"directions",
	"disc-drive",
	"disease",
	"divide",
	"dizzy",
	"dna",
	"do-not-enter",
	"dog",
	"dog-leashed",
	"dollar-sign",
	"dolly",
	"dolly-empty",
	"dolly-flatbed",
	"dolly-flatbed-alt",
	"dolly-flatbed-empty",
	"donate",
	"door-closed",
	"door-open",
	"dot-circle",
	"dove",
	"download",
	"drafting-compass",
	"dragon",
	"draw-circle",
	"draw-polygon",
	"draw-square",
	"dreidel",
	"drone",
	"drone-alt",
	"drum",
	"drum-steelpan",
	"drumstick",
	"drumstick-bite",
	"dryer",
	"dryer-alt",
	"duck",
	"dumbbell",
	"dumpster",
	"dumpster-fire",
	"dungeon",
	"ear",
	"ear-muffs",
	"eclipse",
	"eclipse-alt",
	"edit",
	"egg",
	"egg-fried",
	"eject",
	"elephant",
	"ellipsis-h",
	"ellipsis-h-alt",
	"ellipsis-v",
	"ellipsis-v-alt",
	"empty-set",
	"engine-warning",
	"envelope",
	"envelope-open",
	"envelope-open-dollar",
	"envelope-open-text",
	"envelope-square",
	"equals",
	"eraser",
	"ethernet",
	"euro-sign",
	"exchange",
	"exchange-alt",
	"exclamation",
	"exclamation-circle",
	"exclamation-square",
	"exclamation-triangle",
	"expand",
	"expand-alt",
	"expand-arrows",
	"expand-arrows-alt",
	"expand-wide",
	"external-link",
	"external-link-alt",
	"external-link-square",
	"external-link-square-alt",
	"eye",
	"eye-dropper",
	"eye-evil",
	"eye-slash",
	"fan",
	"fan-table",
	"farm",
	"fast-backward",
	"fast-forward",
	"faucet",
	"faucet-drip",
	"fax",
	"feather",
	"feather-alt",
	"female",
	"field-hockey",
	"fighter-jet",
	"file",
	"file-alt",
	"file-archive",
	"file-audio",
	"file-certificate",
	"file-chart-line",
	"file-chart-pie",
	"file-check",
	"file-code",
	"file-contract",
	"file-csv",
	"file-download",
	"file-edit",
	"file-excel",
	"file-exclamation",
	"file-export",
	"file-image",
	"file-import",
	"file-invoice",
	"file-invoice-dollar",
	"file-medical",
	"file-medical-alt",
	"file-minus",
	"file-music",
	"file-pdf",
	"file-plus",
	"file-powerpoint",
	"file-prescription",
	"file-search",
	"file-signature",
	"file-spreadsheet",
	"file-times",
	"file-upload",
	"file-user",
	"file-video",
	"file-word",
	"files-medical",
	"fill",
	"fill-drip",
	"film",
	"film-alt",
	"film-canister",
	"filter",
	"fingerprint",
	"fire",
	"fire-alt",
	"fire-extinguisher",
	"fire-smoke",
	"fireplace",
	"first-aid",
	"fish",
	"fish-cooked",
	"fist-raised",
	"flag",
	"flag-alt",
	"flag-checkered",
	"flag-usa",
	"flame",
	"flashlight",
	"flask",
	"flask-poison",
	"flask-potion",
	"flower",
	"flower-daffodil",
	"flower-tulip",
	"flushed",
	"flute",
	"flux-capacitor",
	"fog",
	"folder",
	"folder-download",
	"folder-minus",
	"folder-open",
	"folder-plus",
	"folder-times",
	"folder-tree",
	"folder-upload",
	"folders",
	"font",
	"font-awesome-logo-full",
	"font-case",
	"football-ball",
	"football-helmet",
	"forklift",
	"forward",
	"fragile",
	"french-fries",
	"frog",
	"frosty-head",
	"frown",
	"frown-open",
	"function",
	"funnel-dollar",
	"futbol",
	"galaxy",
	"game-board",
	"game-board-alt",
	"game-console-handheld",
	"gamepad",
	"gamepad-alt",
	"garage",
	"garage-car",
	"garage-open",
	"gas-pump",
	"gas-pump-slash",
	"gavel",
	"gem",
	"genderless",
	"ghost",
	"gift",
	"gift-card",
	"gifts",
	"gingerbread-man",
	"glass",
	"glass-champagne",
	"glass-cheers",
	"glass-citrus",
	"glass-martini",
	"glass-martini-alt",
	"glass-whiskey",
	"glass-whiskey-rocks",
	"glasses",
	"glasses-alt",
	"globe",
	"globe-africa",
	"globe-americas",
	"globe-asia",
	"globe-europe",
	"globe-snow",
	"globe-stand",
	"golf-ball",
	"golf-club",
	"gopuram",
	"graduation-cap",
	"gramophone",
	"greater-than",
	"greater-than-equal",
	"grimace",
	"grin",
	"grin-alt",
	"grin-beam",
	"grin-beam-sweat",
	"grin-hearts",
	"grin-squint",
	"grin-squint-tears",
	"grin-stars",
	"grin-tears",
	"grin-tongue",
	"grin-tongue-squint",
	"grin-tongue-wink",
	"grin-wink",
	"grip-horizontal",
	"grip-lines",
	"grip-lines-vertical",
	"grip-vertical",
	"guitar",
	"guitar-electric",
	"guitars",
	"h-square",
	"h1",
	"h2",
	"h3",
	"h4",
	"hamburger",
	"hammer",
	"hammer-war",
	"hamsa",
	"hand-heart",
	"hand-holding",
	"hand-holding-box",
	"hand-holding-heart",
	"hand-holding-magic",
	"hand-holding-medical",
	"hand-holding-seedling",
	"hand-holding-usd",
	"hand-holding-water",
	"hand-lizard",
	"hand-middle-finger",
	"hand-paper",
	"hand-peace",
	"hand-point-down",
	"hand-point-left",
	"hand-point-right",
	"hand-point-up",
	"hand-pointer",
	"hand-receiving",
	"hand-rock",
	"hand-scissors",
	"hand-sparkles",
	"hand-spock",
	"hands",
	"hands-heart",
	"hands-helping",
	"hands-usd",
	"hands-wash",
	"handshake",
	"handshake-alt",
	"handshake-alt-slash",
	"handshake-slash",
	"hanukiah",
	"hard-hat",
	"hashtag",
	"hat-chef",
	"hat-cowboy",
	"hat-cowboy-side",
	"hat-santa",
	"hat-winter",
	"hat-witch",
	"hat-wizard",
	"hdd",
	"head-side",
	"head-side-brain",
	"head-side-cough",
	"head-side-cough-slash",
	"head-side-headphones",
	"head-side-mask",
	"head-side-medical",
	"head-side-virus",
	"head-vr",
	"heading",
	"headphones",
	"headphones-alt",
	"headset",
	"heart",
	"heart-broken",
	"heart-circle",
	"heart-rate",
	"heart-square",
	"heartbeat",
	"heat",
	"helicopter",
	"helmet-battle",
	"hexagon",
	"highlighter",
	"hiking",
	"hippo",
	"history",
	"hockey-mask",
	"hockey-puck",
	"hockey-sticks",
	"holly-berry",
	"home",
	"home-alt",
	"home-heart",
	"home-lg",
	"home-lg-alt",
	"hood-cloak",
	"horizontal-rule",
	"horse",
	"horse-head",
	"horse-saddle",
	"hospital",
	"hospital-alt",
	"hospital-symbol",
	"hospital-user",
	"hospitals",
	"hot-tub",
	"hotdog",
	"hotel",
	"hourglass",
	"hourglass-end",
	"hourglass-half",
	"hourglass-start",
	"house",
	"house-damage",
	"house-day",
	"house-flood",
	"house-leave",
	"house-night",
	"house-return",
	"house-signal",
	"house-user",
	"hryvnia",
	"humidity",
	"hurricane",
	"i-cursor",
	"ice-cream",
	"ice-skate",
	"icicles",
	"icons",
	"icons-alt",
	"id-badge",
	"id-card",
	"id-card-alt",
	"igloo",
	"image",
	"image-polaroid",
	"images",
	"inbox",
	"inbox-in",
	"inbox-out",
	"indent",
	"industry",
	"industry-alt",
	"infinity",
	"info",
	"info-circle",
	"info-square",
	"inhaler",
	"integral",
	"intersection",
	"inventory",
	"island-tropical",
	"italic",
	"jack-o-lantern",
	"jedi",
	"joint",
	"journal-whills",
	"joystick",
	"jug",
	"kaaba",
	"kazoo",
	"kerning",
	"key",
	"key-skeleton",
	"keyboard",
	"keynote",
	"khanda",
	"kidneys",
	"kiss",
	"kiss-beam",
	"kiss-wink-heart",
	"kite",
	"kiwi-bird",
	"knife-kitchen",
	"lambda",
	"lamp",
	"lamp-desk",
	"lamp-floor",
	"landmark",
	"landmark-alt",
	"language",
	"laptop",
	"laptop-code",
	"laptop-house",
	"laptop-medical",
	"lasso",
	"laugh",
	"laugh-beam",
	"laugh-squint",
	"laugh-wink",
	"layer-group",
	"layer-minus",
	"layer-plus",
	"leaf",
	"leaf-heart",
	"leaf-maple",
	"leaf-oak",
	"lemon",
	"less-than",
	"less-than-equal",
	"level-down",
	"level-down-alt",
	"level-up",
	"level-up-alt",
	"life-ring",
	"light-ceiling",
	"light-switch",
	"light-switch-off",
	"light-switch-on",
	"lightbulb",
	"lightbulb-dollar",
	"lightbulb-exclamation",
	"lightbulb-on",
	"lightbulb-slash",
	"lights-holiday",
	"line-columns",
	"line-height",
	"link",
	"lips",
	"lira-sign",
	"list",
	"list-alt",
	"list-music",
	"list-ol",
	"list-ul",
	"location",
	"location-arrow",
	"location-circle",
	"location-slash",
	"lock",
	"lock-alt",
	"lock-open",
	"lock-open-alt",
	"long-arrow-alt-down",
	"long-arrow-alt-left",
	"long-arrow-alt-right",
	"long-arrow-alt-up",
	"long-arrow-down",
	"long-arrow-left",
	"long-arrow-right",
	"long-arrow-up",
	"loveseat",
	"low-vision",
	"luchador",
	"luggage-cart",
	"lungs",
	"lungs-virus",
	"mace",
	"magic",
	"magnet",
	"mail-bulk",
	"mailbox",
	"male",
	"mandolin",
	"map",
	"map-marked",
	"map-marked-alt",
	"map-marker",
	"map-marker-alt",
	"map-marker-alt-slash",
	"map-marker-check",
	"map-marker-edit",
	"map-marker-exclamation",
	"map-marker-minus",
	"map-marker-plus",
	"map-marker-question",
	"map-marker-slash",
	"map-marker-smile",
	"map-marker-times",
	"map-pin",
	"map-signs",
	"marker",
	"mars",
	"mars-double",
	"mars-stroke",
	"mars-stroke-h",
	"mars-stroke-v",
	"mask",
	"meat",
	"medal",
	"medkit",
	"megaphone",
	"meh",
	"meh-blank",
	"meh-rolling-eyes",
	"memory",
	"menorah",
	"mercury",
	"meteor",
	"microchip",
	"microphone",
	"microphone-alt",
	"microphone-alt-slash",
	"microphone-slash",
	"microphone-stand",
	"microscope",
	"microwave",
	"mind-share",
	"minus",
	"minus-circle",
	"minus-hexagon",
	"minus-octagon",
	"minus-square",
	"mistletoe",
	"mitten",
	"mobile",
	"mobile-alt",
	"mobile-android",
	"mobile-android-alt",
	"money-bill",
	"money-bill-alt",
	"money-bill-wave",
	"money-bill-wave-alt",
	"money-check",
	"money-check-alt",
	"money-check-edit",
	"money-check-edit-alt",
	"monitor-heart-rate",
	"monkey",
	"monument",
	"moon",
	"moon-cloud",
	"moon-stars",
	"mortar-pestle",
	"mosque",
	"motorcycle",
	"mountain",
	"mountains",
	"mouse",
	"mouse-alt",
	"mouse-pointer",
	"mp3-player",
	"mug",
	"mug-hot",
	"mug-marshmallows",
	"mug-tea",
	"music",
	"music-alt",
	"music-alt-slash",
	"music-slash",
	"narwhal",
	"network-wired",
	"neuter",
	"newspaper",
	"not-equal",
	"notes-medical",
	"object-group",
	"object-ungroup",
	"octagon",
	"oil-can",
	"oil-temp",
	"om",
	"omega",
	"ornament",
	"otter",
	"outdent",
	"outlet",
	"oven",
	"overline",
	"page-break",
	"pager",
	"paint-brush",
	"paint-brush-alt",
	"paint-roller",
	"palette",
	"pallet",
	"pallet-alt",
	"paper-plane",
	"paperclip",
	"parachute-box",
	"paragraph",
	"paragraph-rtl",
	"parking",
	"parking-circle",
	"parking-circle-slash",
	"parking-slash",
	"passport",
	"pastafarianism",
	"paste",
	"pause",
	"pause-circle",
	"paw",
	"paw-alt",
	"paw-claws",
	"peace",
	"pegasus",
	"pen",
	"pen-alt",
	"pen-fancy",
	"pen-nib",
	"pen-square",
	"pencil",
	"pencil-alt",
	"pencil-paintbrush",
	"pencil-ruler",
	"pennant",
	"people-arrows",
	"people-carry",
	"pepper-hot",
	"percent",
	"percentage",
	"person-booth",
	"person-carry",
	"person-dolly",
	"person-dolly-empty",
	"person-sign",
	"phone",
	"phone-alt",
	"phone-laptop",
	"phone-office",
	"phone-plus",
	"phone-rotary",
	"phone-slash",
	"phone-square",
	"phone-square-alt",
	"phone-volume",
	"photo-video",
	"pi",
	"piano",
	"piano-keyboard",
	"pie",
	"pig",
	"piggy-bank",
	"pills",
	"pizza",
	"pizza-slice",
	"place-of-worship",
	"plane",
	"plane-alt",
	"plane-arrival",
	"plane-departure",
	"plane-slash",
	"planet-moon",
	"planet-ringed",
	"play",
	"play-circle",
	"plug",
	"plus",
	"plus-circle",
	"plus-hexagon",
	"plus-octagon",
	"plus-square",
	"podcast",
	"podium",
	"podium-star",
	"police-box",
	"poll",
	"poll-h",
	"poll-people",
	"poo",
	"poo-storm",
	"poop",
	"popcorn",
	"portal-enter",
	"portal-exit",
	"portrait",
	"pound-sign",
	"power-off",
	"pray",
	"praying-hands",
	"prescription",
	"prescription-bottle",
	"prescription-bottle-alt",
	"presentation",
	"print",
	"print-search",
	"print-slash",
	"procedures",
	"project-diagram",
	"projector",
	"pump-medical",
	"pump-soap",
	"pumpkin",
	"puzzle-piece",
	"qrcode",
	"question",
	"question-circle",
	"question-square",
	"quidditch",
	"quote-left",
	"quote-right",
	"quran",
	"rabbit",
	"rabbit-fast",
	"racquet",
	"radar",
	"radiation",
	"radiation-alt",
	"radio",
	"radio-alt",
	"rainbow",
	"raindrops",
	"ram",
	"ramp-loading",
	"random",
	"raygun",
	"receipt",
	"record-vinyl",
	"rectangle-landscape",
	"rectangle-portrait",
	"rectangle-wide",
	"recycle",
	"redo",
	"redo-alt",
	"refrigerator",
	"registered",
	"remove-format",
	"repeat",
	"repeat-1",
	"repeat-1-alt",
	"repeat-alt",
	"reply",
	"reply-all",
	"republican",
	"restroom",
	"retweet",
	"retweet-alt",
	"ribbon",
	"ring",
	"rings-wedding",
	"road",
	"robot",
	"rocket",
	"rocket-launch",
	"route",
	"route-highway",
	"route-interstate",
	"router",
	"rss",
	"rss-square",
	"ruble-sign",
	"ruler",
	"ruler-combined",
	"ruler-horizontal",
	"ruler-triangle",
	"ruler-vertical",
	"running",
	"rupee-sign",
	"rv",
	"sack",
	"sack-dollar",
	"sad-cry",
	"sad-tear",
	"salad",
	"sandwich",
	"satellite",
	"satellite-dish",
	"sausage",
	"save",
	"sax-hot",
	"saxophone",
	"scalpel",
	"scalpel-path",
	"scanner",
	"scanner-image",
	"scanner-keyboard",
	"scanner-touchscreen",
	"scarecrow",
	"scarf",
	"school",
	"screwdriver",
	"scroll",
	"scroll-old",
	"scrubber",
	"scythe",
	"sd-card",
	"search",
	"search-dollar",
	"search-location",
	"search-minus",
	"search-plus",
	"seedling",
	"send-back",
	"send-backward",
	"sensor",
	"sensor-alert",
	"sensor-fire",
	"sensor-on",
	"sensor-smoke",
	"server",
	"shapes",
	"share",
	"share-all",
	"share-alt",
	"share-alt-square",
	"share-square",
	"sheep",
	"shekel-sign",
	"shield",
	"shield-alt",
	"shield-check",
	"shield-cross",
	"shield-virus",
	"ship",
	"shipping-fast",
	"shipping-timed",
	"shish-kebab",
	"shoe-prints",
	"shopping-bag",
	"shopping-basket",
	"shopping-cart",
	"shovel",
	"shovel-snow",
	"shower",
	"shredder",
	"shuttle-van",
	"shuttlecock",
	"sickle",
	"sigma",
	"sign",
	"sign-in",
	"sign-in-alt",
	"sign-language",
	"sign-out",
	"sign-out-alt",
	"signal",
	"signal-1",
	"signal-2",
	"signal-3",
	"signal-4",
	"signal-alt",
	"signal-alt-1",
	"signal-alt-2",
	"signal-alt-3",
	"signal-alt-slash",
	"signal-slash",
	"signal-stream",
	"signature",
	"sim-card",
	"sink",
	"siren",
	"siren-on",
	"sitemap",
	"skating",
	"skeleton",
	"ski-jump",
	"ski-lift",
	"skiing",
	"skiing-nordic",
	"skull",
	"skull-cow",
	"skull-crossbones",
	"slash",
	"sledding",
	"sleigh",
	"sliders-h",
	"sliders-h-square",
	"sliders-v",
	"sliders-v-square",
	"smile",
	"smile-beam",
	"smile-plus",
	"smile-wink",
	"smog",
	"smoke",
	"smoking",
	"smoking-ban",
	"sms",
	"snake",
	"snooze",
	"snow-blowing",
	"snowboarding",
	"snowflake",
	"snowflakes",
	"snowman",
	"snowmobile",
	"snowplow",
	"soap",
	"socks",
	"solar-panel",
	"solar-system",
	"sort",
	"sort-alpha-down",
	"sort-alpha-down-alt",
	"sort-alpha-up",
	"sort-alpha-up-alt",
	"sort-alt",
	"sort-amount-down",
	"sort-amount-down-alt",
	"sort-amount-up",
	"sort-amount-up-alt",
	"sort-circle",
	"sort-circle-down",
	"sort-circle-up",
	"sort-down",
	"sort-numeric-down",
	"sort-numeric-down-alt",
	"sort-numeric-up",
	"sort-numeric-up-alt",
	"sort-shapes-down",
	"sort-shapes-down-alt",
	"sort-shapes-up",
	"sort-shapes-up-alt",
	"sort-size-down",
	"sort-size-down-alt",
	"sort-size-up",
	"sort-size-up-alt",
	"sort-up",
	"soup",
	"spa",
	"space-shuttle",
	"space-station-moon",
	"space-station-moon-alt",
	"spade",
	"sparkles",
	"speaker",
	"speakers",
	"spell-check",
	"spider",
	"spider-black-widow",
	"spider-web",
	"spinner",
	"spinner-third",
	"splotch",
	"spray-can",
	"sprinkler",
	"square",
	"square-full",
	"square-root",
	"square-root-alt",
	"squirrel",
	"staff",
	"stamp",
	"star",
	"star-and-crescent",
	"star-christmas",
	"star-exclamation",
	"star-half",
	"star-half-alt",
	"star-of-david",
	"star-of-life",
	"star-shooting",
	"starfighter",
	"starfighter-alt",
	"stars",
	"starship",
	"starship-freighter",
	"steak",
	"steering-wheel",
	"step-backward",
	"step-forward",
	"stethoscope",
	"sticky-note",
	"stocking",
	"stomach",
	"stop",
	"stop-circle",
	"stopwatch",
	"stopwatch-20",
	"store",
	"store-alt",
	"store-alt-slash",
	"store-slash",
	"stream",
	"street-view",
	"stretcher",
	"strikethrough",
	"stroopwafel",
	"subscript",
	"subway",
	"suitcase",
	"suitcase-rolling",
	"sun",
	"sun-cloud",
	"sun-dust",
	"sun-haze",
	"sunglasses",
	"sunrise",
	"sunset",
	"superscript",
	"surprise",
	"swatchbook",
	"swimmer",
	"swimming-pool",
	"sword",
	"sword-laser",
	"sword-laser-alt",
	"swords",
	"swords-laser",
	"synagogue",
	"sync",
	"sync-alt",
	"syringe",
	"table",
	"table-tennis",
	"tablet",
	"tablet-alt",
	"tablet-android",
	"tablet-android-alt",
	"tablet-rugged",
	"tablets",
	"tachometer",
	"tachometer-alt",
	"tachometer-alt-average",
	"tachometer-alt-fast",
	"tachometer-alt-fastest",
	"tachometer-alt-slow",
	"tachometer-alt-slowest",
	"tachometer-average",
	"tachometer-fast",
	"tachometer-fastest",
	"tachometer-slow",
	"tachometer-slowest",
	"taco",
	"tag",
	"tags",
	"tally",
	"tanakh",
	"tape",
	"tasks",
	"tasks-alt",
	"taxi",
	"teeth",
	"teeth-open",
	"telescope",
	"temperature-down",
	"temperature-frigid",
	"temperature-high",
	"temperature-hot",
	"temperature-low",
	"temperature-up",
	"tenge",
	"tennis-ball",
	"terminal",
	"text",
	"text-height",
	"text-size",
	"text-width",
	"th",
	"th-large",
	"th-list",
	"theater-masks",
	"thermometer",
	"thermometer-empty",
	"thermometer-full",
	"thermometer-half",
	"thermometer-quarter",
	"thermometer-three-quarters",
	"theta",
	"thumbs-down",
	"thumbs-up",
	"thumbtack",
	"thunderstorm",
	"thunderstorm-moon",
	"thunderstorm-sun",
	"ticket",
	"ticket-alt",
	"tilde",
	"times",
	"times-circle",
	"times-hexagon",
	"times-octagon",
	"times-square",
	"tint",
	"tint-slash",
	"tire",
	"tire-flat",
	"tire-pressure-warning",
	"tire-rugged",
	"tired",
	"toggle-off",
	"toggle-on",
	"toilet",
	"toilet-paper",
	"toilet-paper-alt",
	"toilet-paper-slash",
	"tombstone",
	"tombstone-alt",
	"toolbox",
	"tools",
	"tooth",
	"toothbrush",
	"torah",
	"torii-gate",
	"tornado",
	"tractor",
	"trademark",
	"traffic-cone",
	"traffic-light",
	"traffic-light-go",
	"traffic-light-slow",
	"traffic-light-stop",
	"trailer",
	"train",
	"tram",
	"transgender",
	"transgender-alt",
	"transporter",
	"transporter-1",
	"transporter-2",
	"transporter-3",
	"transporter-empty",
	"trash",
	"trash-alt",
	"trash-restore",
	"trash-restore-alt",
	"trash-undo",
	"trash-undo-alt",
	"treasure-chest",
	"tree",
	"tree-alt",
	"tree-christmas",
	"tree-decorated",
	"tree-large",
	"tree-palm",
	"trees",
	"triangle",
	"triangle-music",
	"trophy",
	"trophy-alt",
	"truck",
	"truck-container",
	"truck-couch",
	"truck-loading",
	"truck-monster",
	"truck-moving",
	"truck-pickup",
	"truck-plow",
	"truck-ramp",
	"trumpet",
	"tshirt",
	"tty",
	"turkey",
	"turntable",
	"turtle",
	"tv",
	"tv-alt",
	"tv-music",
	"tv-retro",
	"typewriter",
	"ufo",
	"ufo-beam",
	"umbrella",
	"umbrella-beach",
	"underline",
	"undo",
	"undo-alt",
	"unicorn",
	"union",
	"universal-access",
	"university",
	"unlink",
	"unlock",
	"unlock-alt",
	"upload",
	"usb-drive",
	"usd-circle",
	"usd-square",
	"user",
	"user-alien",
	"user-alt",
	"user-alt-slash",
	"user-astronaut",
	"user-chart",
	"user-check",
	"user-circle",
	"user-clock",
	"user-cog",
	"user-cowboy",
	"user-crown",
	"user-edit",
	"user-friends",
	"user-graduate",
	"user-hard-hat",
	"user-headset",
	"user-injured",
	"user-lock",
	"user-md",
	"user-md-chat",
	"user-minus",
	"user-music",
	"user-ninja",
	"user-nurse",
	"user-plus",
	"user-robot",
	"user-secret",
	"user-shield",
	"user-slash",
	"user-tag",
	"user-tie",
	"user-times",
	"user-unlock",
	"user-visor",
	"users",
	"users-class",
	"users-cog",
	"users-crown",
	"users-medical",
	"users-slash",
	"utensil-fork",
	"utensil-knife",
	"utensil-spoon",
	"utensils",
	"utensils-alt",
	"vacuum",
	"vacuum-robot",
	"value-absolute",
	"vector-square",
	"venus",
	"venus-double",
	"venus-mars",
	"vest",
	"vest-patches",
	"vhs",
	"vial",
	"vials",
	"video",
	"video-plus",
	"video-slash",
	"vihara",
	"violin",
	"virus",
	"virus-slash",
	"viruses",
	"voicemail",
	"volcano",
	"volleyball-ball",
	"volume",
	"volume-down",
	"volume-mute",
	"volume-off",
	"volume-slash",
	"volume-up",
	"vote-nay",
	"vote-yea",
	"vr-cardboard",
	"wagon-covered",
	"walker",
	"walkie-talkie",
	"walking",
	"wallet",
	"wand",
	"wand-magic",
	"warehouse",
	"warehouse-alt",
	"washer",
	"watch",
	"watch-calculator",
	"watch-fitness",
	"water",
	"water-lower",
	"water-rise",
	"wave-sine",
	"wave-square",
	"wave-triangle",
	"waveform",
	"waveform-path",
	"webcam",
	"webcam-slash",
	"weight",
	"weight-hanging",
	"whale",
	"wheat",
	"wheelchair",
	"whistle",
	"wifi",
	"wifi-1",
	"wifi-2",
	"wifi-slash",
	"wind",
	"wind-turbine",
	"wind-warning",
	"window",
	"window-alt",
	"window-close",
	"window-frame",
	"window-frame-open",
	"window-maximize",
	"window-minimize",
	"window-restore",
	"windsock",
	"wine-bottle",
	"wine-glass",
	"wine-glass-alt",
	"won-sign",
	"wreath",
	"wrench",
	"x-ray",
	"yen-sign",
	"yin-yang"
	]
}
PK!X�n�n&assets/lib/font-awesome-pro/duotone.jsnu�[���{
  "icons": [
	"abacus",
	"acorn",
	"ad",
	"address-book",
	"address-card",
	"adjust",
	"air-conditioner",
	"air-freshener",
	"alarm-clock",
	"alarm-exclamation",
	"alarm-plus",
	"alarm-snooze",
	"album",
	"album-collection",
	"alicorn",
	"alien",
	"alien-monster",
	"align-center",
	"align-justify",
	"align-left",
	"align-right",
	"align-slash",
	"allergies",
	"ambulance",
	"american-sign-language-interpreting",
	"amp-guitar",
	"analytics",
	"anchor",
	"angel",
	"angle-double-down",
	"angle-double-left",
	"angle-double-right",
	"angle-double-up",
	"angle-down",
	"angle-left",
	"angle-right",
	"angle-up",
	"angry",
	"ankh",
	"apple-alt",
	"apple-crate",
	"archive",
	"archway",
	"arrow-alt-circle-down",
	"arrow-alt-circle-left",
	"arrow-alt-circle-right",
	"arrow-alt-circle-up",
	"arrow-alt-down",
	"arrow-alt-from-bottom",
	"arrow-alt-from-left",
	"arrow-alt-from-right",
	"arrow-alt-from-top",
	"arrow-alt-left",
	"arrow-alt-right",
	"arrow-alt-square-down",
	"arrow-alt-square-left",
	"arrow-alt-square-right",
	"arrow-alt-square-up",
	"arrow-alt-to-bottom",
	"arrow-alt-to-left",
	"arrow-alt-to-right",
	"arrow-alt-to-top",
	"arrow-alt-up",
	"arrow-circle-down",
	"arrow-circle-left",
	"arrow-circle-right",
	"arrow-circle-up",
	"arrow-down",
	"arrow-from-bottom",
	"arrow-from-left",
	"arrow-from-right",
	"arrow-from-top",
	"arrow-left",
	"arrow-right",
	"arrow-square-down",
	"arrow-square-left",
	"arrow-square-right",
	"arrow-square-up",
	"arrow-to-bottom",
	"arrow-to-left",
	"arrow-to-right",
	"arrow-to-top",
	"arrow-up",
	"arrows",
	"arrows-alt",
	"arrows-alt-h",
	"arrows-alt-v",
	"arrows-h",
	"arrows-v",
	"assistive-listening-systems",
	"asterisk",
	"at",
	"atlas",
	"atom",
	"atom-alt",
	"audio-description",
	"award",
	"axe",
	"axe-battle",
	"baby",
	"baby-carriage",
	"backpack",
	"backspace",
	"backward",
	"bacon",
	"bacteria",
	"bacterium",
	"badge",
	"badge-check",
	"badge-dollar",
	"badge-percent",
	"badge-sheriff",
	"badger-honey",
	"bags-shopping",
	"bahai",
	"balance-scale",
	"balance-scale-left",
	"balance-scale-right",
	"ball-pile",
	"ballot",
	"ballot-check",
	"ban",
	"band-aid",
	"banjo",
	"barcode",
	"barcode-alt",
	"barcode-read",
	"barcode-scan",
	"bars",
	"baseball",
	"baseball-ball",
	"basketball-ball",
	"basketball-hoop",
	"bat",
	"bath",
	"battery-bolt",
	"battery-empty",
	"battery-full",
	"battery-half",
	"battery-quarter",
	"battery-slash",
	"battery-three-quarters",
	"bed",
	"bed-alt",
	"bed-bunk",
	"bed-empty",
	"beer",
	"bell",
	"bell-exclamation",
	"bell-on",
	"bell-plus",
	"bell-school",
	"bell-school-slash",
	"bell-slash",
	"bells",
	"betamax",
	"bezier-curve",
	"bible",
	"bicycle",
	"biking",
	"biking-mountain",
	"binoculars",
	"biohazard",
	"birthday-cake",
	"blanket",
	"blender",
	"blender-phone",
	"blind",
	"blinds",
	"blinds-open",
	"blinds-raised",
	"blog",
	"bold",
	"bolt",
	"bomb",
	"bone",
	"bone-break",
	"bong",
	"book",
	"book-alt",
	"book-dead",
	"book-heart",
	"book-medical",
	"book-open",
	"book-reader",
	"book-spells",
	"book-user",
	"bookmark",
	"books",
	"books-medical",
	"boombox",
	"boot",
	"booth-curtain",
	"border-all",
	"border-bottom",
	"border-center-h",
	"border-center-v",
	"border-inner",
	"border-left",
	"border-none",
	"border-outer",
	"border-right",
	"border-style",
	"border-style-alt",
	"border-top",
	"bow-arrow",
	"bowling-ball",
	"bowling-pins",
	"box",
	"box-alt",
	"box-ballot",
	"box-check",
	"box-fragile",
	"box-full",
	"box-heart",
	"box-open",
	"box-tissue",
	"box-up",
	"box-usd",
	"boxes",
	"boxes-alt",
	"boxing-glove",
	"brackets",
	"brackets-curly",
	"braille",
	"brain",
	"bread-loaf",
	"bread-slice",
	"briefcase",
	"briefcase-medical",
	"bring-forward",
	"bring-front",
	"broadcast-tower",
	"broom",
	"browser",
	"brush",
	"bug",
	"building",
	"bullhorn",
	"bullseye",
	"bullseye-arrow",
	"bullseye-pointer",
	"burger-soda",
	"burn",
	"burrito",
	"bus",
	"bus-alt",
	"bus-school",
	"business-time",
	"cabinet-filing",
	"cactus",
	"calculator",
	"calculator-alt",
	"calendar",
	"calendar-alt",
	"calendar-check",
	"calendar-day",
	"calendar-edit",
	"calendar-exclamation",
	"calendar-minus",
	"calendar-plus",
	"calendar-star",
	"calendar-times",
	"calendar-week",
	"camcorder",
	"camera",
	"camera-alt",
	"camera-home",
	"camera-movie",
	"camera-polaroid",
	"camera-retro",
	"campfire",
	"campground",
	"candle-holder",
	"candy-cane",
	"candy-corn",
	"cannabis",
	"capsules",
	"car",
	"car-alt",
	"car-battery",
	"car-building",
	"car-bump",
	"car-bus",
	"car-crash",
	"car-garage",
	"car-mechanic",
	"car-side",
	"car-tilt",
	"car-wash",
	"caravan",
	"caravan-alt",
	"caret-circle-down",
	"caret-circle-left",
	"caret-circle-right",
	"caret-circle-up",
	"caret-down",
	"caret-left",
	"caret-right",
	"caret-square-down",
	"caret-square-left",
	"caret-square-right",
	"caret-square-up",
	"caret-up",
	"carrot",
	"cars",
	"cart-arrow-down",
	"cart-plus",
	"cash-register",
	"cassette-tape",
	"cat",
	"cat-space",
	"cauldron",
	"cctv",
	"certificate",
	"chair",
	"chair-office",
	"chalkboard",
	"chalkboard-teacher",
	"charging-station",
	"chart-area",
	"chart-bar",
	"chart-line",
	"chart-line-down",
	"chart-network",
	"chart-pie",
	"chart-pie-alt",
	"chart-scatter",
	"check",
	"check-circle",
	"check-double",
	"check-square",
	"cheese",
	"cheese-swiss",
	"cheeseburger",
	"chess",
	"chess-bishop",
	"chess-bishop-alt",
	"chess-board",
	"chess-clock",
	"chess-clock-alt",
	"chess-king",
	"chess-king-alt",
	"chess-knight",
	"chess-knight-alt",
	"chess-pawn",
	"chess-pawn-alt",
	"chess-queen",
	"chess-queen-alt",
	"chess-rook",
	"chess-rook-alt",
	"chevron-circle-down",
	"chevron-circle-left",
	"chevron-circle-right",
	"chevron-circle-up",
	"chevron-double-down",
	"chevron-double-left",
	"chevron-double-right",
	"chevron-double-up",
	"chevron-down",
	"chevron-left",
	"chevron-right",
	"chevron-square-down",
	"chevron-square-left",
	"chevron-square-right",
	"chevron-square-up",
	"chevron-up",
	"child",
	"chimney",
	"church",
	"circle",
	"circle-notch",
	"city",
	"clarinet",
	"claw-marks",
	"clinic-medical",
	"clipboard",
	"clipboard-check",
	"clipboard-list",
	"clipboard-list-check",
	"clipboard-prescription",
	"clipboard-user",
	"clock",
	"clone",
	"closed-captioning",
	"cloud",
	"cloud-download",
	"cloud-download-alt",
	"cloud-drizzle",
	"cloud-hail",
	"cloud-hail-mixed",
	"cloud-meatball",
	"cloud-moon",
	"cloud-moon-rain",
	"cloud-music",
	"cloud-rain",
	"cloud-rainbow",
	"cloud-showers",
	"cloud-showers-heavy",
	"cloud-sleet",
	"cloud-snow",
	"cloud-sun",
	"cloud-sun-rain",
	"cloud-upload",
	"cloud-upload-alt",
	"clouds",
	"clouds-moon",
	"clouds-sun",
	"club",
	"cocktail",
	"code",
	"code-branch",
	"code-commit",
	"code-merge",
	"coffee",
	"coffee-pot",
	"coffee-togo",
	"coffin",
	"coffin-cross",
	"cog",
	"cogs",
	"coin",
	"coins",
	"columns",
	"comet",
	"comment",
	"comment-alt",
	"comment-alt-check",
	"comment-alt-dollar",
	"comment-alt-dots",
	"comment-alt-edit",
	"comment-alt-exclamation",
	"comment-alt-lines",
	"comment-alt-medical",
	"comment-alt-minus",
	"comment-alt-music",
	"comment-alt-plus",
	"comment-alt-slash",
	"comment-alt-smile",
	"comment-alt-times",
	"comment-check",
	"comment-dollar",
	"comment-dots",
	"comment-edit",
	"comment-exclamation",
	"comment-lines",
	"comment-medical",
	"comment-minus",
	"comment-music",
	"comment-plus",
	"comment-slash",
	"comment-smile",
	"comment-times",
	"comments",
	"comments-alt",
	"comments-alt-dollar",
	"comments-dollar",
	"compact-disc",
	"compass",
	"compass-slash",
	"compress",
	"compress-alt",
	"compress-arrows-alt",
	"compress-wide",
	"computer-classic",
	"computer-speaker",
	"concierge-bell",
	"construction",
	"container-storage",
	"conveyor-belt",
	"conveyor-belt-alt",
	"cookie",
	"cookie-bite",
	"copy",
	"copyright",
	"corn",
	"couch",
	"cow",
	"cowbell",
	"cowbell-more",
	"credit-card",
	"credit-card-blank",
	"credit-card-front",
	"cricket",
	"croissant",
	"crop",
	"crop-alt",
	"cross",
	"crosshairs",
	"crow",
	"crown",
	"crutch",
	"crutches",
	"cube",
	"cubes",
	"curling",
	"cut",
	"dagger",
	"database",
	"deaf",
	"debug",
	"deer",
	"deer-rudolph",
	"democrat",
	"desktop",
	"desktop-alt",
	"dewpoint",
	"dharmachakra",
	"diagnoses",
	"diamond",
	"dice",
	"dice-d10",
	"dice-d12",
	"dice-d20",
	"dice-d4",
	"dice-d6",
	"dice-d8",
	"dice-five",
	"dice-four",
	"dice-one",
	"dice-six",
	"dice-three",
	"dice-two",
	"digging",
	"digital-tachograph",
	"diploma",
	"directions",
	"disc-drive",
	"disease",
	"divide",
	"dizzy",
	"dna",
	"do-not-enter",
	"dog",
	"dog-leashed",
	"dollar-sign",
	"dolly",
	"dolly-empty",
	"dolly-flatbed",
	"dolly-flatbed-alt",
	"dolly-flatbed-empty",
	"donate",
	"door-closed",
	"door-open",
	"dot-circle",
	"dove",
	"download",
	"drafting-compass",
	"dragon",
	"draw-circle",
	"draw-polygon",
	"draw-square",
	"dreidel",
	"drone",
	"drone-alt",
	"drum",
	"drum-steelpan",
	"drumstick",
	"drumstick-bite",
	"dryer",
	"dryer-alt",
	"duck",
	"dumbbell",
	"dumpster",
	"dumpster-fire",
	"dungeon",
	"ear",
	"ear-muffs",
	"eclipse",
	"eclipse-alt",
	"edit",
	"egg",
	"egg-fried",
	"eject",
	"elephant",
	"ellipsis-h",
	"ellipsis-h-alt",
	"ellipsis-v",
	"ellipsis-v-alt",
	"empty-set",
	"engine-warning",
	"envelope",
	"envelope-open",
	"envelope-open-dollar",
	"envelope-open-text",
	"envelope-square",
	"equals",
	"eraser",
	"ethernet",
	"euro-sign",
	"exchange",
	"exchange-alt",
	"exclamation",
	"exclamation-circle",
	"exclamation-square",
	"exclamation-triangle",
	"expand",
	"expand-alt",
	"expand-arrows",
	"expand-arrows-alt",
	"expand-wide",
	"external-link",
	"external-link-alt",
	"external-link-square",
	"external-link-square-alt",
	"eye",
	"eye-dropper",
	"eye-evil",
	"eye-slash",
	"fan",
	"fan-table",
	"farm",
	"fast-backward",
	"fast-forward",
	"faucet",
	"faucet-drip",
	"fax",
	"feather",
	"feather-alt",
	"female",
	"field-hockey",
	"fighter-jet",
	"file",
	"file-alt",
	"file-archive",
	"file-audio",
	"file-certificate",
	"file-chart-line",
	"file-chart-pie",
	"file-check",
	"file-code",
	"file-contract",
	"file-csv",
	"file-download",
	"file-edit",
	"file-excel",
	"file-exclamation",
	"file-export",
	"file-image",
	"file-import",
	"file-invoice",
	"file-invoice-dollar",
	"file-medical",
	"file-medical-alt",
	"file-minus",
	"file-music",
	"file-pdf",
	"file-plus",
	"file-powerpoint",
	"file-prescription",
	"file-search",
	"file-signature",
	"file-spreadsheet",
	"file-times",
	"file-upload",
	"file-user",
	"file-video",
	"file-word",
	"files-medical",
	"fill",
	"fill-drip",
	"film",
	"film-alt",
	"film-canister",
	"filter",
	"fingerprint",
	"fire",
	"fire-alt",
	"fire-extinguisher",
	"fire-smoke",
	"fireplace",
	"first-aid",
	"fish",
	"fish-cooked",
	"fist-raised",
	"flag",
	"flag-alt",
	"flag-checkered",
	"flag-usa",
	"flame",
	"flashlight",
	"flask",
	"flask-poison",
	"flask-potion",
	"flower",
	"flower-daffodil",
	"flower-tulip",
	"flushed",
	"flute",
	"flux-capacitor",
	"fog",
	"folder",
	"folder-download",
	"folder-minus",
	"folder-open",
	"folder-plus",
	"folder-times",
	"folder-tree",
	"folder-upload",
	"folders",
	"font",
	"font-awesome-logo-full",
	"font-case",
	"football-ball",
	"football-helmet",
	"forklift",
	"forward",
	"fragile",
	"french-fries",
	"frog",
	"frosty-head",
	"frown",
	"frown-open",
	"function",
	"funnel-dollar",
	"futbol",
	"galaxy",
	"game-board",
	"game-board-alt",
	"game-console-handheld",
	"gamepad",
	"gamepad-alt",
	"garage",
	"garage-car",
	"garage-open",
	"gas-pump",
	"gas-pump-slash",
	"gavel",
	"gem",
	"genderless",
	"ghost",
	"gift",
	"gift-card",
	"gifts",
	"gingerbread-man",
	"glass",
	"glass-champagne",
	"glass-cheers",
	"glass-citrus",
	"glass-martini",
	"glass-martini-alt",
	"glass-whiskey",
	"glass-whiskey-rocks",
	"glasses",
	"glasses-alt",
	"globe",
	"globe-africa",
	"globe-americas",
	"globe-asia",
	"globe-europe",
	"globe-snow",
	"globe-stand",
	"golf-ball",
	"golf-club",
	"gopuram",
	"graduation-cap",
	"gramophone",
	"greater-than",
	"greater-than-equal",
	"grimace",
	"grin",
	"grin-alt",
	"grin-beam",
	"grin-beam-sweat",
	"grin-hearts",
	"grin-squint",
	"grin-squint-tears",
	"grin-stars",
	"grin-tears",
	"grin-tongue",
	"grin-tongue-squint",
	"grin-tongue-wink",
	"grin-wink",
	"grip-horizontal",
	"grip-lines",
	"grip-lines-vertical",
	"grip-vertical",
	"guitar",
	"guitar-electric",
	"guitars",
	"h-square",
	"h1",
	"h2",
	"h3",
	"h4",
	"hamburger",
	"hammer",
	"hammer-war",
	"hamsa",
	"hand-heart",
	"hand-holding",
	"hand-holding-box",
	"hand-holding-heart",
	"hand-holding-magic",
	"hand-holding-medical",
	"hand-holding-seedling",
	"hand-holding-usd",
	"hand-holding-water",
	"hand-lizard",
	"hand-middle-finger",
	"hand-paper",
	"hand-peace",
	"hand-point-down",
	"hand-point-left",
	"hand-point-right",
	"hand-point-up",
	"hand-pointer",
	"hand-receiving",
	"hand-rock",
	"hand-scissors",
	"hand-sparkles",
	"hand-spock",
	"hands",
	"hands-heart",
	"hands-helping",
	"hands-usd",
	"hands-wash",
	"handshake",
	"handshake-alt",
	"handshake-alt-slash",
	"handshake-slash",
	"hanukiah",
	"hard-hat",
	"hashtag",
	"hat-chef",
	"hat-cowboy",
	"hat-cowboy-side",
	"hat-santa",
	"hat-winter",
	"hat-witch",
	"hat-wizard",
	"hdd",
	"head-side",
	"head-side-brain",
	"head-side-cough",
	"head-side-cough-slash",
	"head-side-headphones",
	"head-side-mask",
	"head-side-medical",
	"head-side-virus",
	"head-vr",
	"heading",
	"headphones",
	"headphones-alt",
	"headset",
	"heart",
	"heart-broken",
	"heart-circle",
	"heart-rate",
	"heart-square",
	"heartbeat",
	"heat",
	"helicopter",
	"helmet-battle",
	"hexagon",
	"highlighter",
	"hiking",
	"hippo",
	"history",
	"hockey-mask",
	"hockey-puck",
	"hockey-sticks",
	"holly-berry",
	"home",
	"home-alt",
	"home-heart",
	"home-lg",
	"home-lg-alt",
	"hood-cloak",
	"horizontal-rule",
	"horse",
	"horse-head",
	"horse-saddle",
	"hospital",
	"hospital-alt",
	"hospital-symbol",
	"hospital-user",
	"hospitals",
	"hot-tub",
	"hotdog",
	"hotel",
	"hourglass",
	"hourglass-end",
	"hourglass-half",
	"hourglass-start",
	"house",
	"house-damage",
	"house-day",
	"house-flood",
	"house-leave",
	"house-night",
	"house-return",
	"house-signal",
	"house-user",
	"hryvnia",
	"humidity",
	"hurricane",
	"i-cursor",
	"ice-cream",
	"ice-skate",
	"icicles",
	"icons",
	"icons-alt",
	"id-badge",
	"id-card",
	"id-card-alt",
	"igloo",
	"image",
	"image-polaroid",
	"images",
	"inbox",
	"inbox-in",
	"inbox-out",
	"indent",
	"industry",
	"industry-alt",
	"infinity",
	"info",
	"info-circle",
	"info-square",
	"inhaler",
	"integral",
	"intersection",
	"inventory",
	"island-tropical",
	"italic",
	"jack-o-lantern",
	"jedi",
	"joint",
	"journal-whills",
	"joystick",
	"jug",
	"kaaba",
	"kazoo",
	"kerning",
	"key",
	"key-skeleton",
	"keyboard",
	"keynote",
	"khanda",
	"kidneys",
	"kiss",
	"kiss-beam",
	"kiss-wink-heart",
	"kite",
	"kiwi-bird",
	"knife-kitchen",
	"lambda",
	"lamp",
	"lamp-desk",
	"lamp-floor",
	"landmark",
	"landmark-alt",
	"language",
	"laptop",
	"laptop-code",
	"laptop-house",
	"laptop-medical",
	"lasso",
	"laugh",
	"laugh-beam",
	"laugh-squint",
	"laugh-wink",
	"layer-group",
	"layer-minus",
	"layer-plus",
	"leaf",
	"leaf-heart",
	"leaf-maple",
	"leaf-oak",
	"lemon",
	"less-than",
	"less-than-equal",
	"level-down",
	"level-down-alt",
	"level-up",
	"level-up-alt",
	"life-ring",
	"light-ceiling",
	"light-switch",
	"light-switch-off",
	"light-switch-on",
	"lightbulb",
	"lightbulb-dollar",
	"lightbulb-exclamation",
	"lightbulb-on",
	"lightbulb-slash",
	"lights-holiday",
	"line-columns",
	"line-height",
	"link",
	"lips",
	"lira-sign",
	"list",
	"list-alt",
	"list-music",
	"list-ol",
	"list-ul",
	"location",
	"location-arrow",
	"location-circle",
	"location-slash",
	"lock",
	"lock-alt",
	"lock-open",
	"lock-open-alt",
	"long-arrow-alt-down",
	"long-arrow-alt-left",
	"long-arrow-alt-right",
	"long-arrow-alt-up",
	"long-arrow-down",
	"long-arrow-left",
	"long-arrow-right",
	"long-arrow-up",
	"loveseat",
	"low-vision",
	"luchador",
	"luggage-cart",
	"lungs",
	"lungs-virus",
	"mace",
	"magic",
	"magnet",
	"mail-bulk",
	"mailbox",
	"male",
	"mandolin",
	"map",
	"map-marked",
	"map-marked-alt",
	"map-marker",
	"map-marker-alt",
	"map-marker-alt-slash",
	"map-marker-check",
	"map-marker-edit",
	"map-marker-exclamation",
	"map-marker-minus",
	"map-marker-plus",
	"map-marker-question",
	"map-marker-slash",
	"map-marker-smile",
	"map-marker-times",
	"map-pin",
	"map-signs",
	"marker",
	"mars",
	"mars-double",
	"mars-stroke",
	"mars-stroke-h",
	"mars-stroke-v",
	"mask",
	"meat",
	"medal",
	"medkit",
	"megaphone",
	"meh",
	"meh-blank",
	"meh-rolling-eyes",
	"memory",
	"menorah",
	"mercury",
	"meteor",
	"microchip",
	"microphone",
	"microphone-alt",
	"microphone-alt-slash",
	"microphone-slash",
	"microphone-stand",
	"microscope",
	"microwave",
	"mind-share",
	"minus",
	"minus-circle",
	"minus-hexagon",
	"minus-octagon",
	"minus-square",
	"mistletoe",
	"mitten",
	"mobile",
	"mobile-alt",
	"mobile-android",
	"mobile-android-alt",
	"money-bill",
	"money-bill-alt",
	"money-bill-wave",
	"money-bill-wave-alt",
	"money-check",
	"money-check-alt",
	"money-check-edit",
	"money-check-edit-alt",
	"monitor-heart-rate",
	"monkey",
	"monument",
	"moon",
	"moon-cloud",
	"moon-stars",
	"mortar-pestle",
	"mosque",
	"motorcycle",
	"mountain",
	"mountains",
	"mouse",
	"mouse-alt",
	"mouse-pointer",
	"mp3-player",
	"mug",
	"mug-hot",
	"mug-marshmallows",
	"mug-tea",
	"music",
	"music-alt",
	"music-alt-slash",
	"music-slash",
	"narwhal",
	"network-wired",
	"neuter",
	"newspaper",
	"not-equal",
	"notes-medical",
	"object-group",
	"object-ungroup",
	"octagon",
	"oil-can",
	"oil-temp",
	"om",
	"omega",
	"ornament",
	"otter",
	"outdent",
	"outlet",
	"oven",
	"overline",
	"page-break",
	"pager",
	"paint-brush",
	"paint-brush-alt",
	"paint-roller",
	"palette",
	"pallet",
	"pallet-alt",
	"paper-plane",
	"paperclip",
	"parachute-box",
	"paragraph",
	"paragraph-rtl",
	"parking",
	"parking-circle",
	"parking-circle-slash",
	"parking-slash",
	"passport",
	"pastafarianism",
	"paste",
	"pause",
	"pause-circle",
	"paw",
	"paw-alt",
	"paw-claws",
	"peace",
	"pegasus",
	"pen",
	"pen-alt",
	"pen-fancy",
	"pen-nib",
	"pen-square",
	"pencil",
	"pencil-alt",
	"pencil-paintbrush",
	"pencil-ruler",
	"pennant",
	"people-arrows",
	"people-carry",
	"pepper-hot",
	"percent",
	"percentage",
	"person-booth",
	"person-carry",
	"person-dolly",
	"person-dolly-empty",
	"person-sign",
	"phone",
	"phone-alt",
	"phone-laptop",
	"phone-office",
	"phone-plus",
	"phone-rotary",
	"phone-slash",
	"phone-square",
	"phone-square-alt",
	"phone-volume",
	"photo-video",
	"pi",
	"piano",
	"piano-keyboard",
	"pie",
	"pig",
	"piggy-bank",
	"pills",
	"pizza",
	"pizza-slice",
	"place-of-worship",
	"plane",
	"plane-alt",
	"plane-arrival",
	"plane-departure",
	"plane-slash",
	"planet-moon",
	"planet-ringed",
	"play",
	"play-circle",
	"plug",
	"plus",
	"plus-circle",
	"plus-hexagon",
	"plus-octagon",
	"plus-square",
	"podcast",
	"podium",
	"podium-star",
	"police-box",
	"poll",
	"poll-h",
	"poll-people",
	"poo",
	"poo-storm",
	"poop",
	"popcorn",
	"portal-enter",
	"portal-exit",
	"portrait",
	"pound-sign",
	"power-off",
	"pray",
	"praying-hands",
	"prescription",
	"prescription-bottle",
	"prescription-bottle-alt",
	"presentation",
	"print",
	"print-search",
	"print-slash",
	"procedures",
	"project-diagram",
	"projector",
	"pump-medical",
	"pump-soap",
	"pumpkin",
	"puzzle-piece",
	"qrcode",
	"question",
	"question-circle",
	"question-square",
	"quidditch",
	"quote-left",
	"quote-right",
	"quran",
	"rabbit",
	"rabbit-fast",
	"racquet",
	"radar",
	"radiation",
	"radiation-alt",
	"radio",
	"radio-alt",
	"rainbow",
	"raindrops",
	"ram",
	"ramp-loading",
	"random",
	"raygun",
	"receipt",
	"record-vinyl",
	"rectangle-landscape",
	"rectangle-portrait",
	"rectangle-wide",
	"recycle",
	"redo",
	"redo-alt",
	"refrigerator",
	"registered",
	"remove-format",
	"repeat",
	"repeat-1",
	"repeat-1-alt",
	"repeat-alt",
	"reply",
	"reply-all",
	"republican",
	"restroom",
	"retweet",
	"retweet-alt",
	"ribbon",
	"ring",
	"rings-wedding",
	"road",
	"robot",
	"rocket",
	"rocket-launch",
	"route",
	"route-highway",
	"route-interstate",
	"router",
	"rss",
	"rss-square",
	"ruble-sign",
	"ruler",
	"ruler-combined",
	"ruler-horizontal",
	"ruler-triangle",
	"ruler-vertical",
	"running",
	"rupee-sign",
	"rv",
	"sack",
	"sack-dollar",
	"sad-cry",
	"sad-tear",
	"salad",
	"sandwich",
	"satellite",
	"satellite-dish",
	"sausage",
	"save",
	"sax-hot",
	"saxophone",
	"scalpel",
	"scalpel-path",
	"scanner",
	"scanner-image",
	"scanner-keyboard",
	"scanner-touchscreen",
	"scarecrow",
	"scarf",
	"school",
	"screwdriver",
	"scroll",
	"scroll-old",
	"scrubber",
	"scythe",
	"sd-card",
	"search",
	"search-dollar",
	"search-location",
	"search-minus",
	"search-plus",
	"seedling",
	"send-back",
	"send-backward",
	"sensor",
	"sensor-alert",
	"sensor-fire",
	"sensor-on",
	"sensor-smoke",
	"server",
	"shapes",
	"share",
	"share-all",
	"share-alt",
	"share-alt-square",
	"share-square",
	"sheep",
	"shekel-sign",
	"shield",
	"shield-alt",
	"shield-check",
	"shield-cross",
	"shield-virus",
	"ship",
	"shipping-fast",
	"shipping-timed",
	"shish-kebab",
	"shoe-prints",
	"shopping-bag",
	"shopping-basket",
	"shopping-cart",
	"shovel",
	"shovel-snow",
	"shower",
	"shredder",
	"shuttle-van",
	"shuttlecock",
	"sickle",
	"sigma",
	"sign",
	"sign-in",
	"sign-in-alt",
	"sign-language",
	"sign-out",
	"sign-out-alt",
	"signal",
	"signal-1",
	"signal-2",
	"signal-3",
	"signal-4",
	"signal-alt",
	"signal-alt-1",
	"signal-alt-2",
	"signal-alt-3",
	"signal-alt-slash",
	"signal-slash",
	"signal-stream",
	"signature",
	"sim-card",
	"sink",
	"siren",
	"siren-on",
	"sitemap",
	"skating",
	"skeleton",
	"ski-jump",
	"ski-lift",
	"skiing",
	"skiing-nordic",
	"skull",
	"skull-cow",
	"skull-crossbones",
	"slash",
	"sledding",
	"sleigh",
	"sliders-h",
	"sliders-h-square",
	"sliders-v",
	"sliders-v-square",
	"smile",
	"smile-beam",
	"smile-plus",
	"smile-wink",
	"smog",
	"smoke",
	"smoking",
	"smoking-ban",
	"sms",
	"snake",
	"snooze",
	"snow-blowing",
	"snowboarding",
	"snowflake",
	"snowflakes",
	"snowman",
	"snowmobile",
	"snowplow",
	"soap",
	"socks",
	"solar-panel",
	"solar-system",
	"sort",
	"sort-alpha-down",
	"sort-alpha-down-alt",
	"sort-alpha-up",
	"sort-alpha-up-alt",
	"sort-alt",
	"sort-amount-down",
	"sort-amount-down-alt",
	"sort-amount-up",
	"sort-amount-up-alt",
	"sort-circle",
	"sort-circle-down",
	"sort-circle-up",
	"sort-down",
	"sort-numeric-down",
	"sort-numeric-down-alt",
	"sort-numeric-up",
	"sort-numeric-up-alt",
	"sort-shapes-down",
	"sort-shapes-down-alt",
	"sort-shapes-up",
	"sort-shapes-up-alt",
	"sort-size-down",
	"sort-size-down-alt",
	"sort-size-up",
	"sort-size-up-alt",
	"sort-up",
	"soup",
	"spa",
	"space-shuttle",
	"space-station-moon",
	"space-station-moon-alt",
	"spade",
	"sparkles",
	"speaker",
	"speakers",
	"spell-check",
	"spider",
	"spider-black-widow",
	"spider-web",
	"spinner",
	"spinner-third",
	"splotch",
	"spray-can",
	"sprinkler",
	"square",
	"square-full",
	"square-root",
	"square-root-alt",
	"squirrel",
	"staff",
	"stamp",
	"star",
	"star-and-crescent",
	"star-christmas",
	"star-exclamation",
	"star-half",
	"star-half-alt",
	"star-of-david",
	"star-of-life",
	"star-shooting",
	"starfighter",
	"starfighter-alt",
	"stars",
	"starship",
	"starship-freighter",
	"steak",
	"steering-wheel",
	"step-backward",
	"step-forward",
	"stethoscope",
	"sticky-note",
	"stocking",
	"stomach",
	"stop",
	"stop-circle",
	"stopwatch",
	"stopwatch-20",
	"store",
	"store-alt",
	"store-alt-slash",
	"store-slash",
	"stream",
	"street-view",
	"stretcher",
	"strikethrough",
	"stroopwafel",
	"subscript",
	"subway",
	"suitcase",
	"suitcase-rolling",
	"sun",
	"sun-cloud",
	"sun-dust",
	"sun-haze",
	"sunglasses",
	"sunrise",
	"sunset",
	"superscript",
	"surprise",
	"swatchbook",
	"swimmer",
	"swimming-pool",
	"sword",
	"sword-laser",
	"sword-laser-alt",
	"swords",
	"swords-laser",
	"synagogue",
	"sync",
	"sync-alt",
	"syringe",
	"table",
	"table-tennis",
	"tablet",
	"tablet-alt",
	"tablet-android",
	"tablet-android-alt",
	"tablet-rugged",
	"tablets",
	"tachometer",
	"tachometer-alt",
	"tachometer-alt-average",
	"tachometer-alt-fast",
	"tachometer-alt-fastest",
	"tachometer-alt-slow",
	"tachometer-alt-slowest",
	"tachometer-average",
	"tachometer-fast",
	"tachometer-fastest",
	"tachometer-slow",
	"tachometer-slowest",
	"taco",
	"tag",
	"tags",
	"tally",
	"tanakh",
	"tape",
	"tasks",
	"tasks-alt",
	"taxi",
	"teeth",
	"teeth-open",
	"telescope",
	"temperature-down",
	"temperature-frigid",
	"temperature-high",
	"temperature-hot",
	"temperature-low",
	"temperature-up",
	"tenge",
	"tennis-ball",
	"terminal",
	"text",
	"text-height",
	"text-size",
	"text-width",
	"th",
	"th-large",
	"th-list",
	"theater-masks",
	"thermometer",
	"thermometer-empty",
	"thermometer-full",
	"thermometer-half",
	"thermometer-quarter",
	"thermometer-three-quarters",
	"theta",
	"thumbs-down",
	"thumbs-up",
	"thumbtack",
	"thunderstorm",
	"thunderstorm-moon",
	"thunderstorm-sun",
	"ticket",
	"ticket-alt",
	"tilde",
	"times",
	"times-circle",
	"times-hexagon",
	"times-octagon",
	"times-square",
	"tint",
	"tint-slash",
	"tire",
	"tire-flat",
	"tire-pressure-warning",
	"tire-rugged",
	"tired",
	"toggle-off",
	"toggle-on",
	"toilet",
	"toilet-paper",
	"toilet-paper-alt",
	"toilet-paper-slash",
	"tombstone",
	"tombstone-alt",
	"toolbox",
	"tools",
	"tooth",
	"toothbrush",
	"torah",
	"torii-gate",
	"tornado",
	"tractor",
	"trademark",
	"traffic-cone",
	"traffic-light",
	"traffic-light-go",
	"traffic-light-slow",
	"traffic-light-stop",
	"trailer",
	"train",
	"tram",
	"transgender",
	"transgender-alt",
	"transporter",
	"transporter-1",
	"transporter-2",
	"transporter-3",
	"transporter-empty",
	"trash",
	"trash-alt",
	"trash-restore",
	"trash-restore-alt",
	"trash-undo",
	"trash-undo-alt",
	"treasure-chest",
	"tree",
	"tree-alt",
	"tree-christmas",
	"tree-decorated",
	"tree-large",
	"tree-palm",
	"trees",
	"triangle",
	"triangle-music",
	"trophy",
	"trophy-alt",
	"truck",
	"truck-container",
	"truck-couch",
	"truck-loading",
	"truck-monster",
	"truck-moving",
	"truck-pickup",
	"truck-plow",
	"truck-ramp",
	"trumpet",
	"tshirt",
	"tty",
	"turkey",
	"turntable",
	"turtle",
	"tv",
	"tv-alt",
	"tv-music",
	"tv-retro",
	"typewriter",
	"ufo",
	"ufo-beam",
	"umbrella",
	"umbrella-beach",
	"underline",
	"undo",
	"undo-alt",
	"unicorn",
	"union",
	"universal-access",
	"university",
	"unlink",
	"unlock",
	"unlock-alt",
	"upload",
	"usb-drive",
	"usd-circle",
	"usd-square",
	"user",
	"user-alien",
	"user-alt",
	"user-alt-slash",
	"user-astronaut",
	"user-chart",
	"user-check",
	"user-circle",
	"user-clock",
	"user-cog",
	"user-cowboy",
	"user-crown",
	"user-edit",
	"user-friends",
	"user-graduate",
	"user-hard-hat",
	"user-headset",
	"user-injured",
	"user-lock",
	"user-md",
	"user-md-chat",
	"user-minus",
	"user-music",
	"user-ninja",
	"user-nurse",
	"user-plus",
	"user-robot",
	"user-secret",
	"user-shield",
	"user-slash",
	"user-tag",
	"user-tie",
	"user-times",
	"user-unlock",
	"user-visor",
	"users",
	"users-class",
	"users-cog",
	"users-crown",
	"users-medical",
	"users-slash",
	"utensil-fork",
	"utensil-knife",
	"utensil-spoon",
	"utensils",
	"utensils-alt",
	"vacuum",
	"vacuum-robot",
	"value-absolute",
	"vector-square",
	"venus",
	"venus-double",
	"venus-mars",
	"vest",
	"vest-patches",
	"vhs",
	"vial",
	"vials",
	"video",
	"video-plus",
	"video-slash",
	"vihara",
	"violin",
	"virus",
	"virus-slash",
	"viruses",
	"voicemail",
	"volcano",
	"volleyball-ball",
	"volume",
	"volume-down",
	"volume-mute",
	"volume-off",
	"volume-slash",
	"volume-up",
	"vote-nay",
	"vote-yea",
	"vr-cardboard",
	"wagon-covered",
	"walker",
	"walkie-talkie",
	"walking",
	"wallet",
	"wand",
	"wand-magic",
	"warehouse",
	"warehouse-alt",
	"washer",
	"watch",
	"watch-calculator",
	"watch-fitness",
	"water",
	"water-lower",
	"water-rise",
	"wave-sine",
	"wave-square",
	"wave-triangle",
	"waveform",
	"waveform-path",
	"webcam",
	"webcam-slash",
	"weight",
	"weight-hanging",
	"whale",
	"wheat",
	"wheelchair",
	"whistle",
	"wifi",
	"wifi-1",
	"wifi-2",
	"wifi-slash",
	"wind",
	"wind-turbine",
	"wind-warning",
	"window",
	"window-alt",
	"window-close",
	"window-frame",
	"window-frame-open",
	"window-maximize",
	"window-minimize",
	"window-restore",
	"windsock",
	"wine-bottle",
	"wine-glass",
	"wine-glass-alt",
	"won-sign",
	"wreath",
	"wrench",
	"x-ray",
	"yen-sign",
	"yin-yang"
	]
}
PK!X�n�n$assets/lib/font-awesome-pro/light.jsnu�[���{
  "icons": [
	"abacus",
	"acorn",
	"ad",
	"address-book",
	"address-card",
	"adjust",
	"air-conditioner",
	"air-freshener",
	"alarm-clock",
	"alarm-exclamation",
	"alarm-plus",
	"alarm-snooze",
	"album",
	"album-collection",
	"alicorn",
	"alien",
	"alien-monster",
	"align-center",
	"align-justify",
	"align-left",
	"align-right",
	"align-slash",
	"allergies",
	"ambulance",
	"american-sign-language-interpreting",
	"amp-guitar",
	"analytics",
	"anchor",
	"angel",
	"angle-double-down",
	"angle-double-left",
	"angle-double-right",
	"angle-double-up",
	"angle-down",
	"angle-left",
	"angle-right",
	"angle-up",
	"angry",
	"ankh",
	"apple-alt",
	"apple-crate",
	"archive",
	"archway",
	"arrow-alt-circle-down",
	"arrow-alt-circle-left",
	"arrow-alt-circle-right",
	"arrow-alt-circle-up",
	"arrow-alt-down",
	"arrow-alt-from-bottom",
	"arrow-alt-from-left",
	"arrow-alt-from-right",
	"arrow-alt-from-top",
	"arrow-alt-left",
	"arrow-alt-right",
	"arrow-alt-square-down",
	"arrow-alt-square-left",
	"arrow-alt-square-right",
	"arrow-alt-square-up",
	"arrow-alt-to-bottom",
	"arrow-alt-to-left",
	"arrow-alt-to-right",
	"arrow-alt-to-top",
	"arrow-alt-up",
	"arrow-circle-down",
	"arrow-circle-left",
	"arrow-circle-right",
	"arrow-circle-up",
	"arrow-down",
	"arrow-from-bottom",
	"arrow-from-left",
	"arrow-from-right",
	"arrow-from-top",
	"arrow-left",
	"arrow-right",
	"arrow-square-down",
	"arrow-square-left",
	"arrow-square-right",
	"arrow-square-up",
	"arrow-to-bottom",
	"arrow-to-left",
	"arrow-to-right",
	"arrow-to-top",
	"arrow-up",
	"arrows",
	"arrows-alt",
	"arrows-alt-h",
	"arrows-alt-v",
	"arrows-h",
	"arrows-v",
	"assistive-listening-systems",
	"asterisk",
	"at",
	"atlas",
	"atom",
	"atom-alt",
	"audio-description",
	"award",
	"axe",
	"axe-battle",
	"baby",
	"baby-carriage",
	"backpack",
	"backspace",
	"backward",
	"bacon",
	"bacteria",
	"bacterium",
	"badge",
	"badge-check",
	"badge-dollar",
	"badge-percent",
	"badge-sheriff",
	"badger-honey",
	"bags-shopping",
	"bahai",
	"balance-scale",
	"balance-scale-left",
	"balance-scale-right",
	"ball-pile",
	"ballot",
	"ballot-check",
	"ban",
	"band-aid",
	"banjo",
	"barcode",
	"barcode-alt",
	"barcode-read",
	"barcode-scan",
	"bars",
	"baseball",
	"baseball-ball",
	"basketball-ball",
	"basketball-hoop",
	"bat",
	"bath",
	"battery-bolt",
	"battery-empty",
	"battery-full",
	"battery-half",
	"battery-quarter",
	"battery-slash",
	"battery-three-quarters",
	"bed",
	"bed-alt",
	"bed-bunk",
	"bed-empty",
	"beer",
	"bell",
	"bell-exclamation",
	"bell-on",
	"bell-plus",
	"bell-school",
	"bell-school-slash",
	"bell-slash",
	"bells",
	"betamax",
	"bezier-curve",
	"bible",
	"bicycle",
	"biking",
	"biking-mountain",
	"binoculars",
	"biohazard",
	"birthday-cake",
	"blanket",
	"blender",
	"blender-phone",
	"blind",
	"blinds",
	"blinds-open",
	"blinds-raised",
	"blog",
	"bold",
	"bolt",
	"bomb",
	"bone",
	"bone-break",
	"bong",
	"book",
	"book-alt",
	"book-dead",
	"book-heart",
	"book-medical",
	"book-open",
	"book-reader",
	"book-spells",
	"book-user",
	"bookmark",
	"books",
	"books-medical",
	"boombox",
	"boot",
	"booth-curtain",
	"border-all",
	"border-bottom",
	"border-center-h",
	"border-center-v",
	"border-inner",
	"border-left",
	"border-none",
	"border-outer",
	"border-right",
	"border-style",
	"border-style-alt",
	"border-top",
	"bow-arrow",
	"bowling-ball",
	"bowling-pins",
	"box",
	"box-alt",
	"box-ballot",
	"box-check",
	"box-fragile",
	"box-full",
	"box-heart",
	"box-open",
	"box-tissue",
	"box-up",
	"box-usd",
	"boxes",
	"boxes-alt",
	"boxing-glove",
	"brackets",
	"brackets-curly",
	"braille",
	"brain",
	"bread-loaf",
	"bread-slice",
	"briefcase",
	"briefcase-medical",
	"bring-forward",
	"bring-front",
	"broadcast-tower",
	"broom",
	"browser",
	"brush",
	"bug",
	"building",
	"bullhorn",
	"bullseye",
	"bullseye-arrow",
	"bullseye-pointer",
	"burger-soda",
	"burn",
	"burrito",
	"bus",
	"bus-alt",
	"bus-school",
	"business-time",
	"cabinet-filing",
	"cactus",
	"calculator",
	"calculator-alt",
	"calendar",
	"calendar-alt",
	"calendar-check",
	"calendar-day",
	"calendar-edit",
	"calendar-exclamation",
	"calendar-minus",
	"calendar-plus",
	"calendar-star",
	"calendar-times",
	"calendar-week",
	"camcorder",
	"camera",
	"camera-alt",
	"camera-home",
	"camera-movie",
	"camera-polaroid",
	"camera-retro",
	"campfire",
	"campground",
	"candle-holder",
	"candy-cane",
	"candy-corn",
	"cannabis",
	"capsules",
	"car",
	"car-alt",
	"car-battery",
	"car-building",
	"car-bump",
	"car-bus",
	"car-crash",
	"car-garage",
	"car-mechanic",
	"car-side",
	"car-tilt",
	"car-wash",
	"caravan",
	"caravan-alt",
	"caret-circle-down",
	"caret-circle-left",
	"caret-circle-right",
	"caret-circle-up",
	"caret-down",
	"caret-left",
	"caret-right",
	"caret-square-down",
	"caret-square-left",
	"caret-square-right",
	"caret-square-up",
	"caret-up",
	"carrot",
	"cars",
	"cart-arrow-down",
	"cart-plus",
	"cash-register",
	"cassette-tape",
	"cat",
	"cat-space",
	"cauldron",
	"cctv",
	"certificate",
	"chair",
	"chair-office",
	"chalkboard",
	"chalkboard-teacher",
	"charging-station",
	"chart-area",
	"chart-bar",
	"chart-line",
	"chart-line-down",
	"chart-network",
	"chart-pie",
	"chart-pie-alt",
	"chart-scatter",
	"check",
	"check-circle",
	"check-double",
	"check-square",
	"cheese",
	"cheese-swiss",
	"cheeseburger",
	"chess",
	"chess-bishop",
	"chess-bishop-alt",
	"chess-board",
	"chess-clock",
	"chess-clock-alt",
	"chess-king",
	"chess-king-alt",
	"chess-knight",
	"chess-knight-alt",
	"chess-pawn",
	"chess-pawn-alt",
	"chess-queen",
	"chess-queen-alt",
	"chess-rook",
	"chess-rook-alt",
	"chevron-circle-down",
	"chevron-circle-left",
	"chevron-circle-right",
	"chevron-circle-up",
	"chevron-double-down",
	"chevron-double-left",
	"chevron-double-right",
	"chevron-double-up",
	"chevron-down",
	"chevron-left",
	"chevron-right",
	"chevron-square-down",
	"chevron-square-left",
	"chevron-square-right",
	"chevron-square-up",
	"chevron-up",
	"child",
	"chimney",
	"church",
	"circle",
	"circle-notch",
	"city",
	"clarinet",
	"claw-marks",
	"clinic-medical",
	"clipboard",
	"clipboard-check",
	"clipboard-list",
	"clipboard-list-check",
	"clipboard-prescription",
	"clipboard-user",
	"clock",
	"clone",
	"closed-captioning",
	"cloud",
	"cloud-download",
	"cloud-download-alt",
	"cloud-drizzle",
	"cloud-hail",
	"cloud-hail-mixed",
	"cloud-meatball",
	"cloud-moon",
	"cloud-moon-rain",
	"cloud-music",
	"cloud-rain",
	"cloud-rainbow",
	"cloud-showers",
	"cloud-showers-heavy",
	"cloud-sleet",
	"cloud-snow",
	"cloud-sun",
	"cloud-sun-rain",
	"cloud-upload",
	"cloud-upload-alt",
	"clouds",
	"clouds-moon",
	"clouds-sun",
	"club",
	"cocktail",
	"code",
	"code-branch",
	"code-commit",
	"code-merge",
	"coffee",
	"coffee-pot",
	"coffee-togo",
	"coffin",
	"coffin-cross",
	"cog",
	"cogs",
	"coin",
	"coins",
	"columns",
	"comet",
	"comment",
	"comment-alt",
	"comment-alt-check",
	"comment-alt-dollar",
	"comment-alt-dots",
	"comment-alt-edit",
	"comment-alt-exclamation",
	"comment-alt-lines",
	"comment-alt-medical",
	"comment-alt-minus",
	"comment-alt-music",
	"comment-alt-plus",
	"comment-alt-slash",
	"comment-alt-smile",
	"comment-alt-times",
	"comment-check",
	"comment-dollar",
	"comment-dots",
	"comment-edit",
	"comment-exclamation",
	"comment-lines",
	"comment-medical",
	"comment-minus",
	"comment-music",
	"comment-plus",
	"comment-slash",
	"comment-smile",
	"comment-times",
	"comments",
	"comments-alt",
	"comments-alt-dollar",
	"comments-dollar",
	"compact-disc",
	"compass",
	"compass-slash",
	"compress",
	"compress-alt",
	"compress-arrows-alt",
	"compress-wide",
	"computer-classic",
	"computer-speaker",
	"concierge-bell",
	"construction",
	"container-storage",
	"conveyor-belt",
	"conveyor-belt-alt",
	"cookie",
	"cookie-bite",
	"copy",
	"copyright",
	"corn",
	"couch",
	"cow",
	"cowbell",
	"cowbell-more",
	"credit-card",
	"credit-card-blank",
	"credit-card-front",
	"cricket",
	"croissant",
	"crop",
	"crop-alt",
	"cross",
	"crosshairs",
	"crow",
	"crown",
	"crutch",
	"crutches",
	"cube",
	"cubes",
	"curling",
	"cut",
	"dagger",
	"database",
	"deaf",
	"debug",
	"deer",
	"deer-rudolph",
	"democrat",
	"desktop",
	"desktop-alt",
	"dewpoint",
	"dharmachakra",
	"diagnoses",
	"diamond",
	"dice",
	"dice-d10",
	"dice-d12",
	"dice-d20",
	"dice-d4",
	"dice-d6",
	"dice-d8",
	"dice-five",
	"dice-four",
	"dice-one",
	"dice-six",
	"dice-three",
	"dice-two",
	"digging",
	"digital-tachograph",
	"diploma",
	"directions",
	"disc-drive",
	"disease",
	"divide",
	"dizzy",
	"dna",
	"do-not-enter",
	"dog",
	"dog-leashed",
	"dollar-sign",
	"dolly",
	"dolly-empty",
	"dolly-flatbed",
	"dolly-flatbed-alt",
	"dolly-flatbed-empty",
	"donate",
	"door-closed",
	"door-open",
	"dot-circle",
	"dove",
	"download",
	"drafting-compass",
	"dragon",
	"draw-circle",
	"draw-polygon",
	"draw-square",
	"dreidel",
	"drone",
	"drone-alt",
	"drum",
	"drum-steelpan",
	"drumstick",
	"drumstick-bite",
	"dryer",
	"dryer-alt",
	"duck",
	"dumbbell",
	"dumpster",
	"dumpster-fire",
	"dungeon",
	"ear",
	"ear-muffs",
	"eclipse",
	"eclipse-alt",
	"edit",
	"egg",
	"egg-fried",
	"eject",
	"elephant",
	"ellipsis-h",
	"ellipsis-h-alt",
	"ellipsis-v",
	"ellipsis-v-alt",
	"empty-set",
	"engine-warning",
	"envelope",
	"envelope-open",
	"envelope-open-dollar",
	"envelope-open-text",
	"envelope-square",
	"equals",
	"eraser",
	"ethernet",
	"euro-sign",
	"exchange",
	"exchange-alt",
	"exclamation",
	"exclamation-circle",
	"exclamation-square",
	"exclamation-triangle",
	"expand",
	"expand-alt",
	"expand-arrows",
	"expand-arrows-alt",
	"expand-wide",
	"external-link",
	"external-link-alt",
	"external-link-square",
	"external-link-square-alt",
	"eye",
	"eye-dropper",
	"eye-evil",
	"eye-slash",
	"fan",
	"fan-table",
	"farm",
	"fast-backward",
	"fast-forward",
	"faucet",
	"faucet-drip",
	"fax",
	"feather",
	"feather-alt",
	"female",
	"field-hockey",
	"fighter-jet",
	"file",
	"file-alt",
	"file-archive",
	"file-audio",
	"file-certificate",
	"file-chart-line",
	"file-chart-pie",
	"file-check",
	"file-code",
	"file-contract",
	"file-csv",
	"file-download",
	"file-edit",
	"file-excel",
	"file-exclamation",
	"file-export",
	"file-image",
	"file-import",
	"file-invoice",
	"file-invoice-dollar",
	"file-medical",
	"file-medical-alt",
	"file-minus",
	"file-music",
	"file-pdf",
	"file-plus",
	"file-powerpoint",
	"file-prescription",
	"file-search",
	"file-signature",
	"file-spreadsheet",
	"file-times",
	"file-upload",
	"file-user",
	"file-video",
	"file-word",
	"files-medical",
	"fill",
	"fill-drip",
	"film",
	"film-alt",
	"film-canister",
	"filter",
	"fingerprint",
	"fire",
	"fire-alt",
	"fire-extinguisher",
	"fire-smoke",
	"fireplace",
	"first-aid",
	"fish",
	"fish-cooked",
	"fist-raised",
	"flag",
	"flag-alt",
	"flag-checkered",
	"flag-usa",
	"flame",
	"flashlight",
	"flask",
	"flask-poison",
	"flask-potion",
	"flower",
	"flower-daffodil",
	"flower-tulip",
	"flushed",
	"flute",
	"flux-capacitor",
	"fog",
	"folder",
	"folder-download",
	"folder-minus",
	"folder-open",
	"folder-plus",
	"folder-times",
	"folder-tree",
	"folder-upload",
	"folders",
	"font",
	"font-awesome-logo-full",
	"font-case",
	"football-ball",
	"football-helmet",
	"forklift",
	"forward",
	"fragile",
	"french-fries",
	"frog",
	"frosty-head",
	"frown",
	"frown-open",
	"function",
	"funnel-dollar",
	"futbol",
	"galaxy",
	"game-board",
	"game-board-alt",
	"game-console-handheld",
	"gamepad",
	"gamepad-alt",
	"garage",
	"garage-car",
	"garage-open",
	"gas-pump",
	"gas-pump-slash",
	"gavel",
	"gem",
	"genderless",
	"ghost",
	"gift",
	"gift-card",
	"gifts",
	"gingerbread-man",
	"glass",
	"glass-champagne",
	"glass-cheers",
	"glass-citrus",
	"glass-martini",
	"glass-martini-alt",
	"glass-whiskey",
	"glass-whiskey-rocks",
	"glasses",
	"glasses-alt",
	"globe",
	"globe-africa",
	"globe-americas",
	"globe-asia",
	"globe-europe",
	"globe-snow",
	"globe-stand",
	"golf-ball",
	"golf-club",
	"gopuram",
	"graduation-cap",
	"gramophone",
	"greater-than",
	"greater-than-equal",
	"grimace",
	"grin",
	"grin-alt",
	"grin-beam",
	"grin-beam-sweat",
	"grin-hearts",
	"grin-squint",
	"grin-squint-tears",
	"grin-stars",
	"grin-tears",
	"grin-tongue",
	"grin-tongue-squint",
	"grin-tongue-wink",
	"grin-wink",
	"grip-horizontal",
	"grip-lines",
	"grip-lines-vertical",
	"grip-vertical",
	"guitar",
	"guitar-electric",
	"guitars",
	"h-square",
	"h1",
	"h2",
	"h3",
	"h4",
	"hamburger",
	"hammer",
	"hammer-war",
	"hamsa",
	"hand-heart",
	"hand-holding",
	"hand-holding-box",
	"hand-holding-heart",
	"hand-holding-magic",
	"hand-holding-medical",
	"hand-holding-seedling",
	"hand-holding-usd",
	"hand-holding-water",
	"hand-lizard",
	"hand-middle-finger",
	"hand-paper",
	"hand-peace",
	"hand-point-down",
	"hand-point-left",
	"hand-point-right",
	"hand-point-up",
	"hand-pointer",
	"hand-receiving",
	"hand-rock",
	"hand-scissors",
	"hand-sparkles",
	"hand-spock",
	"hands",
	"hands-heart",
	"hands-helping",
	"hands-usd",
	"hands-wash",
	"handshake",
	"handshake-alt",
	"handshake-alt-slash",
	"handshake-slash",
	"hanukiah",
	"hard-hat",
	"hashtag",
	"hat-chef",
	"hat-cowboy",
	"hat-cowboy-side",
	"hat-santa",
	"hat-winter",
	"hat-witch",
	"hat-wizard",
	"hdd",
	"head-side",
	"head-side-brain",
	"head-side-cough",
	"head-side-cough-slash",
	"head-side-headphones",
	"head-side-mask",
	"head-side-medical",
	"head-side-virus",
	"head-vr",
	"heading",
	"headphones",
	"headphones-alt",
	"headset",
	"heart",
	"heart-broken",
	"heart-circle",
	"heart-rate",
	"heart-square",
	"heartbeat",
	"heat",
	"helicopter",
	"helmet-battle",
	"hexagon",
	"highlighter",
	"hiking",
	"hippo",
	"history",
	"hockey-mask",
	"hockey-puck",
	"hockey-sticks",
	"holly-berry",
	"home",
	"home-alt",
	"home-heart",
	"home-lg",
	"home-lg-alt",
	"hood-cloak",
	"horizontal-rule",
	"horse",
	"horse-head",
	"horse-saddle",
	"hospital",
	"hospital-alt",
	"hospital-symbol",
	"hospital-user",
	"hospitals",
	"hot-tub",
	"hotdog",
	"hotel",
	"hourglass",
	"hourglass-end",
	"hourglass-half",
	"hourglass-start",
	"house",
	"house-damage",
	"house-day",
	"house-flood",
	"house-leave",
	"house-night",
	"house-return",
	"house-signal",
	"house-user",
	"hryvnia",
	"humidity",
	"hurricane",
	"i-cursor",
	"ice-cream",
	"ice-skate",
	"icicles",
	"icons",
	"icons-alt",
	"id-badge",
	"id-card",
	"id-card-alt",
	"igloo",
	"image",
	"image-polaroid",
	"images",
	"inbox",
	"inbox-in",
	"inbox-out",
	"indent",
	"industry",
	"industry-alt",
	"infinity",
	"info",
	"info-circle",
	"info-square",
	"inhaler",
	"integral",
	"intersection",
	"inventory",
	"island-tropical",
	"italic",
	"jack-o-lantern",
	"jedi",
	"joint",
	"journal-whills",
	"joystick",
	"jug",
	"kaaba",
	"kazoo",
	"kerning",
	"key",
	"key-skeleton",
	"keyboard",
	"keynote",
	"khanda",
	"kidneys",
	"kiss",
	"kiss-beam",
	"kiss-wink-heart",
	"kite",
	"kiwi-bird",
	"knife-kitchen",
	"lambda",
	"lamp",
	"lamp-desk",
	"lamp-floor",
	"landmark",
	"landmark-alt",
	"language",
	"laptop",
	"laptop-code",
	"laptop-house",
	"laptop-medical",
	"lasso",
	"laugh",
	"laugh-beam",
	"laugh-squint",
	"laugh-wink",
	"layer-group",
	"layer-minus",
	"layer-plus",
	"leaf",
	"leaf-heart",
	"leaf-maple",
	"leaf-oak",
	"lemon",
	"less-than",
	"less-than-equal",
	"level-down",
	"level-down-alt",
	"level-up",
	"level-up-alt",
	"life-ring",
	"light-ceiling",
	"light-switch",
	"light-switch-off",
	"light-switch-on",
	"lightbulb",
	"lightbulb-dollar",
	"lightbulb-exclamation",
	"lightbulb-on",
	"lightbulb-slash",
	"lights-holiday",
	"line-columns",
	"line-height",
	"link",
	"lips",
	"lira-sign",
	"list",
	"list-alt",
	"list-music",
	"list-ol",
	"list-ul",
	"location",
	"location-arrow",
	"location-circle",
	"location-slash",
	"lock",
	"lock-alt",
	"lock-open",
	"lock-open-alt",
	"long-arrow-alt-down",
	"long-arrow-alt-left",
	"long-arrow-alt-right",
	"long-arrow-alt-up",
	"long-arrow-down",
	"long-arrow-left",
	"long-arrow-right",
	"long-arrow-up",
	"loveseat",
	"low-vision",
	"luchador",
	"luggage-cart",
	"lungs",
	"lungs-virus",
	"mace",
	"magic",
	"magnet",
	"mail-bulk",
	"mailbox",
	"male",
	"mandolin",
	"map",
	"map-marked",
	"map-marked-alt",
	"map-marker",
	"map-marker-alt",
	"map-marker-alt-slash",
	"map-marker-check",
	"map-marker-edit",
	"map-marker-exclamation",
	"map-marker-minus",
	"map-marker-plus",
	"map-marker-question",
	"map-marker-slash",
	"map-marker-smile",
	"map-marker-times",
	"map-pin",
	"map-signs",
	"marker",
	"mars",
	"mars-double",
	"mars-stroke",
	"mars-stroke-h",
	"mars-stroke-v",
	"mask",
	"meat",
	"medal",
	"medkit",
	"megaphone",
	"meh",
	"meh-blank",
	"meh-rolling-eyes",
	"memory",
	"menorah",
	"mercury",
	"meteor",
	"microchip",
	"microphone",
	"microphone-alt",
	"microphone-alt-slash",
	"microphone-slash",
	"microphone-stand",
	"microscope",
	"microwave",
	"mind-share",
	"minus",
	"minus-circle",
	"minus-hexagon",
	"minus-octagon",
	"minus-square",
	"mistletoe",
	"mitten",
	"mobile",
	"mobile-alt",
	"mobile-android",
	"mobile-android-alt",
	"money-bill",
	"money-bill-alt",
	"money-bill-wave",
	"money-bill-wave-alt",
	"money-check",
	"money-check-alt",
	"money-check-edit",
	"money-check-edit-alt",
	"monitor-heart-rate",
	"monkey",
	"monument",
	"moon",
	"moon-cloud",
	"moon-stars",
	"mortar-pestle",
	"mosque",
	"motorcycle",
	"mountain",
	"mountains",
	"mouse",
	"mouse-alt",
	"mouse-pointer",
	"mp3-player",
	"mug",
	"mug-hot",
	"mug-marshmallows",
	"mug-tea",
	"music",
	"music-alt",
	"music-alt-slash",
	"music-slash",
	"narwhal",
	"network-wired",
	"neuter",
	"newspaper",
	"not-equal",
	"notes-medical",
	"object-group",
	"object-ungroup",
	"octagon",
	"oil-can",
	"oil-temp",
	"om",
	"omega",
	"ornament",
	"otter",
	"outdent",
	"outlet",
	"oven",
	"overline",
	"page-break",
	"pager",
	"paint-brush",
	"paint-brush-alt",
	"paint-roller",
	"palette",
	"pallet",
	"pallet-alt",
	"paper-plane",
	"paperclip",
	"parachute-box",
	"paragraph",
	"paragraph-rtl",
	"parking",
	"parking-circle",
	"parking-circle-slash",
	"parking-slash",
	"passport",
	"pastafarianism",
	"paste",
	"pause",
	"pause-circle",
	"paw",
	"paw-alt",
	"paw-claws",
	"peace",
	"pegasus",
	"pen",
	"pen-alt",
	"pen-fancy",
	"pen-nib",
	"pen-square",
	"pencil",
	"pencil-alt",
	"pencil-paintbrush",
	"pencil-ruler",
	"pennant",
	"people-arrows",
	"people-carry",
	"pepper-hot",
	"percent",
	"percentage",
	"person-booth",
	"person-carry",
	"person-dolly",
	"person-dolly-empty",
	"person-sign",
	"phone",
	"phone-alt",
	"phone-laptop",
	"phone-office",
	"phone-plus",
	"phone-rotary",
	"phone-slash",
	"phone-square",
	"phone-square-alt",
	"phone-volume",
	"photo-video",
	"pi",
	"piano",
	"piano-keyboard",
	"pie",
	"pig",
	"piggy-bank",
	"pills",
	"pizza",
	"pizza-slice",
	"place-of-worship",
	"plane",
	"plane-alt",
	"plane-arrival",
	"plane-departure",
	"plane-slash",
	"planet-moon",
	"planet-ringed",
	"play",
	"play-circle",
	"plug",
	"plus",
	"plus-circle",
	"plus-hexagon",
	"plus-octagon",
	"plus-square",
	"podcast",
	"podium",
	"podium-star",
	"police-box",
	"poll",
	"poll-h",
	"poll-people",
	"poo",
	"poo-storm",
	"poop",
	"popcorn",
	"portal-enter",
	"portal-exit",
	"portrait",
	"pound-sign",
	"power-off",
	"pray",
	"praying-hands",
	"prescription",
	"prescription-bottle",
	"prescription-bottle-alt",
	"presentation",
	"print",
	"print-search",
	"print-slash",
	"procedures",
	"project-diagram",
	"projector",
	"pump-medical",
	"pump-soap",
	"pumpkin",
	"puzzle-piece",
	"qrcode",
	"question",
	"question-circle",
	"question-square",
	"quidditch",
	"quote-left",
	"quote-right",
	"quran",
	"rabbit",
	"rabbit-fast",
	"racquet",
	"radar",
	"radiation",
	"radiation-alt",
	"radio",
	"radio-alt",
	"rainbow",
	"raindrops",
	"ram",
	"ramp-loading",
	"random",
	"raygun",
	"receipt",
	"record-vinyl",
	"rectangle-landscape",
	"rectangle-portrait",
	"rectangle-wide",
	"recycle",
	"redo",
	"redo-alt",
	"refrigerator",
	"registered",
	"remove-format",
	"repeat",
	"repeat-1",
	"repeat-1-alt",
	"repeat-alt",
	"reply",
	"reply-all",
	"republican",
	"restroom",
	"retweet",
	"retweet-alt",
	"ribbon",
	"ring",
	"rings-wedding",
	"road",
	"robot",
	"rocket",
	"rocket-launch",
	"route",
	"route-highway",
	"route-interstate",
	"router",
	"rss",
	"rss-square",
	"ruble-sign",
	"ruler",
	"ruler-combined",
	"ruler-horizontal",
	"ruler-triangle",
	"ruler-vertical",
	"running",
	"rupee-sign",
	"rv",
	"sack",
	"sack-dollar",
	"sad-cry",
	"sad-tear",
	"salad",
	"sandwich",
	"satellite",
	"satellite-dish",
	"sausage",
	"save",
	"sax-hot",
	"saxophone",
	"scalpel",
	"scalpel-path",
	"scanner",
	"scanner-image",
	"scanner-keyboard",
	"scanner-touchscreen",
	"scarecrow",
	"scarf",
	"school",
	"screwdriver",
	"scroll",
	"scroll-old",
	"scrubber",
	"scythe",
	"sd-card",
	"search",
	"search-dollar",
	"search-location",
	"search-minus",
	"search-plus",
	"seedling",
	"send-back",
	"send-backward",
	"sensor",
	"sensor-alert",
	"sensor-fire",
	"sensor-on",
	"sensor-smoke",
	"server",
	"shapes",
	"share",
	"share-all",
	"share-alt",
	"share-alt-square",
	"share-square",
	"sheep",
	"shekel-sign",
	"shield",
	"shield-alt",
	"shield-check",
	"shield-cross",
	"shield-virus",
	"ship",
	"shipping-fast",
	"shipping-timed",
	"shish-kebab",
	"shoe-prints",
	"shopping-bag",
	"shopping-basket",
	"shopping-cart",
	"shovel",
	"shovel-snow",
	"shower",
	"shredder",
	"shuttle-van",
	"shuttlecock",
	"sickle",
	"sigma",
	"sign",
	"sign-in",
	"sign-in-alt",
	"sign-language",
	"sign-out",
	"sign-out-alt",
	"signal",
	"signal-1",
	"signal-2",
	"signal-3",
	"signal-4",
	"signal-alt",
	"signal-alt-1",
	"signal-alt-2",
	"signal-alt-3",
	"signal-alt-slash",
	"signal-slash",
	"signal-stream",
	"signature",
	"sim-card",
	"sink",
	"siren",
	"siren-on",
	"sitemap",
	"skating",
	"skeleton",
	"ski-jump",
	"ski-lift",
	"skiing",
	"skiing-nordic",
	"skull",
	"skull-cow",
	"skull-crossbones",
	"slash",
	"sledding",
	"sleigh",
	"sliders-h",
	"sliders-h-square",
	"sliders-v",
	"sliders-v-square",
	"smile",
	"smile-beam",
	"smile-plus",
	"smile-wink",
	"smog",
	"smoke",
	"smoking",
	"smoking-ban",
	"sms",
	"snake",
	"snooze",
	"snow-blowing",
	"snowboarding",
	"snowflake",
	"snowflakes",
	"snowman",
	"snowmobile",
	"snowplow",
	"soap",
	"socks",
	"solar-panel",
	"solar-system",
	"sort",
	"sort-alpha-down",
	"sort-alpha-down-alt",
	"sort-alpha-up",
	"sort-alpha-up-alt",
	"sort-alt",
	"sort-amount-down",
	"sort-amount-down-alt",
	"sort-amount-up",
	"sort-amount-up-alt",
	"sort-circle",
	"sort-circle-down",
	"sort-circle-up",
	"sort-down",
	"sort-numeric-down",
	"sort-numeric-down-alt",
	"sort-numeric-up",
	"sort-numeric-up-alt",
	"sort-shapes-down",
	"sort-shapes-down-alt",
	"sort-shapes-up",
	"sort-shapes-up-alt",
	"sort-size-down",
	"sort-size-down-alt",
	"sort-size-up",
	"sort-size-up-alt",
	"sort-up",
	"soup",
	"spa",
	"space-shuttle",
	"space-station-moon",
	"space-station-moon-alt",
	"spade",
	"sparkles",
	"speaker",
	"speakers",
	"spell-check",
	"spider",
	"spider-black-widow",
	"spider-web",
	"spinner",
	"spinner-third",
	"splotch",
	"spray-can",
	"sprinkler",
	"square",
	"square-full",
	"square-root",
	"square-root-alt",
	"squirrel",
	"staff",
	"stamp",
	"star",
	"star-and-crescent",
	"star-christmas",
	"star-exclamation",
	"star-half",
	"star-half-alt",
	"star-of-david",
	"star-of-life",
	"star-shooting",
	"starfighter",
	"starfighter-alt",
	"stars",
	"starship",
	"starship-freighter",
	"steak",
	"steering-wheel",
	"step-backward",
	"step-forward",
	"stethoscope",
	"sticky-note",
	"stocking",
	"stomach",
	"stop",
	"stop-circle",
	"stopwatch",
	"stopwatch-20",
	"store",
	"store-alt",
	"store-alt-slash",
	"store-slash",
	"stream",
	"street-view",
	"stretcher",
	"strikethrough",
	"stroopwafel",
	"subscript",
	"subway",
	"suitcase",
	"suitcase-rolling",
	"sun",
	"sun-cloud",
	"sun-dust",
	"sun-haze",
	"sunglasses",
	"sunrise",
	"sunset",
	"superscript",
	"surprise",
	"swatchbook",
	"swimmer",
	"swimming-pool",
	"sword",
	"sword-laser",
	"sword-laser-alt",
	"swords",
	"swords-laser",
	"synagogue",
	"sync",
	"sync-alt",
	"syringe",
	"table",
	"table-tennis",
	"tablet",
	"tablet-alt",
	"tablet-android",
	"tablet-android-alt",
	"tablet-rugged",
	"tablets",
	"tachometer",
	"tachometer-alt",
	"tachometer-alt-average",
	"tachometer-alt-fast",
	"tachometer-alt-fastest",
	"tachometer-alt-slow",
	"tachometer-alt-slowest",
	"tachometer-average",
	"tachometer-fast",
	"tachometer-fastest",
	"tachometer-slow",
	"tachometer-slowest",
	"taco",
	"tag",
	"tags",
	"tally",
	"tanakh",
	"tape",
	"tasks",
	"tasks-alt",
	"taxi",
	"teeth",
	"teeth-open",
	"telescope",
	"temperature-down",
	"temperature-frigid",
	"temperature-high",
	"temperature-hot",
	"temperature-low",
	"temperature-up",
	"tenge",
	"tennis-ball",
	"terminal",
	"text",
	"text-height",
	"text-size",
	"text-width",
	"th",
	"th-large",
	"th-list",
	"theater-masks",
	"thermometer",
	"thermometer-empty",
	"thermometer-full",
	"thermometer-half",
	"thermometer-quarter",
	"thermometer-three-quarters",
	"theta",
	"thumbs-down",
	"thumbs-up",
	"thumbtack",
	"thunderstorm",
	"thunderstorm-moon",
	"thunderstorm-sun",
	"ticket",
	"ticket-alt",
	"tilde",
	"times",
	"times-circle",
	"times-hexagon",
	"times-octagon",
	"times-square",
	"tint",
	"tint-slash",
	"tire",
	"tire-flat",
	"tire-pressure-warning",
	"tire-rugged",
	"tired",
	"toggle-off",
	"toggle-on",
	"toilet",
	"toilet-paper",
	"toilet-paper-alt",
	"toilet-paper-slash",
	"tombstone",
	"tombstone-alt",
	"toolbox",
	"tools",
	"tooth",
	"toothbrush",
	"torah",
	"torii-gate",
	"tornado",
	"tractor",
	"trademark",
	"traffic-cone",
	"traffic-light",
	"traffic-light-go",
	"traffic-light-slow",
	"traffic-light-stop",
	"trailer",
	"train",
	"tram",
	"transgender",
	"transgender-alt",
	"transporter",
	"transporter-1",
	"transporter-2",
	"transporter-3",
	"transporter-empty",
	"trash",
	"trash-alt",
	"trash-restore",
	"trash-restore-alt",
	"trash-undo",
	"trash-undo-alt",
	"treasure-chest",
	"tree",
	"tree-alt",
	"tree-christmas",
	"tree-decorated",
	"tree-large",
	"tree-palm",
	"trees",
	"triangle",
	"triangle-music",
	"trophy",
	"trophy-alt",
	"truck",
	"truck-container",
	"truck-couch",
	"truck-loading",
	"truck-monster",
	"truck-moving",
	"truck-pickup",
	"truck-plow",
	"truck-ramp",
	"trumpet",
	"tshirt",
	"tty",
	"turkey",
	"turntable",
	"turtle",
	"tv",
	"tv-alt",
	"tv-music",
	"tv-retro",
	"typewriter",
	"ufo",
	"ufo-beam",
	"umbrella",
	"umbrella-beach",
	"underline",
	"undo",
	"undo-alt",
	"unicorn",
	"union",
	"universal-access",
	"university",
	"unlink",
	"unlock",
	"unlock-alt",
	"upload",
	"usb-drive",
	"usd-circle",
	"usd-square",
	"user",
	"user-alien",
	"user-alt",
	"user-alt-slash",
	"user-astronaut",
	"user-chart",
	"user-check",
	"user-circle",
	"user-clock",
	"user-cog",
	"user-cowboy",
	"user-crown",
	"user-edit",
	"user-friends",
	"user-graduate",
	"user-hard-hat",
	"user-headset",
	"user-injured",
	"user-lock",
	"user-md",
	"user-md-chat",
	"user-minus",
	"user-music",
	"user-ninja",
	"user-nurse",
	"user-plus",
	"user-robot",
	"user-secret",
	"user-shield",
	"user-slash",
	"user-tag",
	"user-tie",
	"user-times",
	"user-unlock",
	"user-visor",
	"users",
	"users-class",
	"users-cog",
	"users-crown",
	"users-medical",
	"users-slash",
	"utensil-fork",
	"utensil-knife",
	"utensil-spoon",
	"utensils",
	"utensils-alt",
	"vacuum",
	"vacuum-robot",
	"value-absolute",
	"vector-square",
	"venus",
	"venus-double",
	"venus-mars",
	"vest",
	"vest-patches",
	"vhs",
	"vial",
	"vials",
	"video",
	"video-plus",
	"video-slash",
	"vihara",
	"violin",
	"virus",
	"virus-slash",
	"viruses",
	"voicemail",
	"volcano",
	"volleyball-ball",
	"volume",
	"volume-down",
	"volume-mute",
	"volume-off",
	"volume-slash",
	"volume-up",
	"vote-nay",
	"vote-yea",
	"vr-cardboard",
	"wagon-covered",
	"walker",
	"walkie-talkie",
	"walking",
	"wallet",
	"wand",
	"wand-magic",
	"warehouse",
	"warehouse-alt",
	"washer",
	"watch",
	"watch-calculator",
	"watch-fitness",
	"water",
	"water-lower",
	"water-rise",
	"wave-sine",
	"wave-square",
	"wave-triangle",
	"waveform",
	"waveform-path",
	"webcam",
	"webcam-slash",
	"weight",
	"weight-hanging",
	"whale",
	"wheat",
	"wheelchair",
	"whistle",
	"wifi",
	"wifi-1",
	"wifi-2",
	"wifi-slash",
	"wind",
	"wind-turbine",
	"wind-warning",
	"window",
	"window-alt",
	"window-close",
	"window-frame",
	"window-frame-open",
	"window-maximize",
	"window-minimize",
	"window-restore",
	"windsock",
	"wine-bottle",
	"wine-glass",
	"wine-glass-alt",
	"won-sign",
	"wreath",
	"wrench",
	"x-ray",
	"yen-sign",
	"yin-yang"
	]
}
PK!�c|	%assets/lib/font-awesome-pro/brands.jsnu�[���{
  "icons": [
	"500px",
	"accessible-icon",
	"accusoft",
	"acquisitions-incorporated",
	"adn",
	"adobe",
	"adversal",
	"affiliatetheme",
	"airbnb",
	"algolia",
	"alipay",
	"amazon",
	"amazon-pay",
	"amilia",
	"android",
	"angellist",
	"angrycreative",
	"angular",
	"app-store",
	"app-store-ios",
	"apper",
	"apple",
	"apple-pay",
	"artstation",
	"asymmetrik",
	"atlassian",
	"audible",
	"autoprefixer",
	"avianex",
	"aviato",
	"aws",
	"bandcamp",
	"battle-net",
	"behance",
	"behance-square",
	"bimobject",
	"bitbucket",
	"bitcoin",
	"bity",
	"black-tie",
	"blackberry",
	"blogger",
	"blogger-b",
	"bluetooth",
	"bluetooth-b",
	"bootstrap",
	"btc",
	"buffer",
	"buromobelexperte",
	"buy-n-large",
	"buysellads",
	"canadian-maple-leaf",
	"cc-amazon-pay",
	"cc-amex",
	"cc-apple-pay",
	"cc-diners-club",
	"cc-discover",
	"cc-jcb",
	"cc-mastercard",
	"cc-paypal",
	"cc-stripe",
	"cc-visa",
	"centercode",
	"centos",
	"chrome",
	"chromecast",
	"cloudflare",
	"cloudscale",
	"cloudsmith",
	"cloudversify",
	"codepen",
	"codiepie",
	"confluence",
	"connectdevelop",
	"contao",
	"cotton-bureau",
	"cpanel",
	"creative-commons",
	"creative-commons-by",
	"creative-commons-nc",
	"creative-commons-nc-eu",
	"creative-commons-nc-jp",
	"creative-commons-nd",
	"creative-commons-pd",
	"creative-commons-pd-alt",
	"creative-commons-remix",
	"creative-commons-sa",
	"creative-commons-sampling",
	"creative-commons-sampling-plus",
	"creative-commons-share",
	"creative-commons-zero",
	"critical-role",
	"css3",
	"css3-alt",
	"cuttlefish",
	"d-and-d",
	"d-and-d-beyond",
	"dailymotion",
	"dashcube",
	"deezer",
	"delicious",
	"deploydog",
	"deskpro",
	"dev",
	"deviantart",
	"dhl",
	"diaspora",
	"digg",
	"digital-ocean",
	"discord",
	"discourse",
	"dochub",
	"docker",
	"draft2digital",
	"dribbble",
	"dribbble-square",
	"dropbox",
	"drupal",
	"dyalog",
	"earlybirds",
	"ebay",
	"edge",
	"edge-legacy",
	"elementor",
	"ello",
	"ember",
	"empire",
	"envira",
	"erlang",
	"ethereum",
	"etsy",
	"evernote",
	"expeditedssl",
	"facebook",
	"facebook-f",
	"facebook-messenger",
	"facebook-square",
	"fantasy-flight-games",
	"fedex",
	"fedora",
	"figma",
	"firefox",
	"firefox-browser",
	"first-order",
	"first-order-alt",
	"firstdraft",
	"flickr",
	"flipboard",
	"fly",
	"font-awesome",
	"font-awesome-alt",
	"font-awesome-flag",
	"font-awesome-logo-full",
	"fonticons",
	"fonticons-fi",
	"fort-awesome",
	"fort-awesome-alt",
	"forumbee",
	"foursquare",
	"free-code-camp",
	"freebsd",
	"fulcrum",
	"galactic-republic",
	"galactic-senate",
	"get-pocket",
	"gg",
	"gg-circle",
	"git",
	"git-alt",
	"git-square",
	"github",
	"github-alt",
	"github-square",
	"gitkraken",
	"gitlab",
	"gitter",
	"glide",
	"glide-g",
	"gofore",
	"goodreads",
	"goodreads-g",
	"google",
	"google-drive",
	"google-pay",
	"google-play",
	"google-plus",
	"google-plus-g",
	"google-plus-square",
	"google-wallet",
	"gratipay",
	"grav",
	"gripfire",
	"grunt",
	"guilded",
	"gulp",
	"hacker-news",
	"hacker-news-square",
	"hackerrank",
	"hips",
	"hire-a-helper",
	"hive",
	"hooli",
	"hornbill",
	"hotjar",
	"houzz",
	"html5",
	"hubspot",
	"ideal",
	"imdb",
	"innosoft",
	"instagram",
	"instagram-square",
	"instalod",
	"intercom",
	"internet-explorer",
	"invision",
	"ioxhost",
	"itch-io",
	"itunes",
	"itunes-note",
	"java",
	"jedi-order",
	"jenkins",
	"jira",
	"joget",
	"joomla",
	"js",
	"js-square",
	"jsfiddle",
	"kaggle",
	"keybase",
	"keycdn",
	"kickstarter",
	"kickstarter-k",
	"korvue",
	"laravel",
	"lastfm",
	"lastfm-square",
	"leanpub",
	"less",
	"line",
	"linkedin",
	"linkedin-in",
	"linode",
	"linux",
	"lyft",
	"magento",
	"mailchimp",
	"mandalorian",
	"markdown",
	"mastodon",
	"maxcdn",
	"mdb",
	"medapps",
	"medium",
	"medium-m",
	"medrt",
	"meetup",
	"megaport",
	"mendeley",
	"microblog",
	"microsoft",
	"mix",
	"mixcloud",
	"mixer",
	"mizuni",
	"modx",
	"monero",
	"napster",
	"neos",
	"nimblr",
	"node",
	"node-js",
	"npm",
	"ns8",
	"nutritionix",
	"octopus-deploy",
	"odnoklassniki",
	"odnoklassniki-square",
	"old-republic",
	"opencart",
	"openid",
	"opera",
	"optin-monster",
	"orcid",
	"osi",
	"page4",
	"pagelines",
	"palfed",
	"patreon",
	"paypal",
	"penny-arcade",
	"perbyte",
	"periscope",
	"phabricator",
	"phoenix-framework",
	"phoenix-squadron",
	"php",
	"pied-piper",
	"pied-piper-alt",
	"pied-piper-hat",
	"pied-piper-pp",
	"pied-piper-square",
	"pinterest",
	"pinterest-p",
	"pinterest-square",
	"playstation",
	"product-hunt",
	"pushed",
	"python",
	"qq",
	"quinscape",
	"quora",
	"r-project",
	"raspberry-pi",
	"ravelry",
	"react",
	"reacteurope",
	"readme",
	"rebel",
	"red-river",
	"reddit",
	"reddit-alien",
	"reddit-square",
	"redhat",
	"renren",
	"replyd",
	"researchgate",
	"resolving",
	"rev",
	"rocketchat",
	"rockrms",
	"rust",
	"safari",
	"salesforce",
	"sass",
	"schlix",
	"scribd",
	"searchengin",
	"sellcast",
	"sellsy",
	"servicestack",
	"shirtsinbulk",
	"shopify",
	"shopware",
	"simplybuilt",
	"sistrix",
	"sith",
	"sketch",
	"skyatlas",
	"skype",
	"slack",
	"slack-hash",
	"slideshare",
	"snapchat",
	"snapchat-ghost",
	"snapchat-square",
	"soundcloud",
	"sourcetree",
	"speakap",
	"speaker-deck",
	"spotify",
	"squarespace",
	"stack-exchange",
	"stack-overflow",
	"stackpath",
	"staylinked",
	"steam",
	"steam-square",
	"steam-symbol",
	"sticker-mule",
	"strava",
	"stripe",
	"stripe-s",
	"studiovinari",
	"stumbleupon",
	"stumbleupon-circle",
	"superpowers",
	"supple",
	"suse",
	"swift",
	"symfony",
	"teamspeak",
	"telegram",
	"telegram-plane",
	"tencent-weibo",
	"the-red-yeti",
	"themeco",
	"themeisle",
	"think-peaks",
	"tiktok",
	"trade-federation",
	"trello",
	"tripadvisor",
	"tumblr",
	"tumblr-square",
	"twitch",
	"twitter",
	"twitter-square",
	"typo3",
	"uber",
	"ubuntu",
	"uikit",
	"umbraco",
	"uncharted",
	"uniregistry",
	"unity",
	"unsplash",
	"untappd",
	"ups",
	"usb",
	"usps",
	"ussunnah",
	"vaadin",
	"viacoin",
	"viadeo",
	"viadeo-square",
	"viber",
	"vimeo",
	"vimeo-square",
	"vimeo-v",
	"vine",
	"vk",
	"vnv",
	"vuejs",
	"watchman-monitoring",
	"waze",
	"weebly",
	"weibo",
	"weixin",
	"whatsapp",
	"whatsapp-square",
	"whmcs",
	"wikipedia-w",
	"windows",
	"wix",
	"wizards-of-the-coast",
	"wodu",
	"wolf-pack-battalion",
	"wordpress",
	"wordpress-simple",
	"wpbeginner",
	"wpexplorer",
	"wpforms",
	"wpressr",
	"xbox",
	"xing",
	"xing-square",
	"y-combinator",
	"yahoo",
	"yammer",
	"yandex",
	"yandex-international",
	"yarn",
	"yelp",
	"yoast",
	"youtube",
	"youtube-square",
	"zhihu"
	]
}
PK!6�>�����,assets/lib/html2canvas/js/html2canvas.min.jsnu�[���/*!
 * html2canvas 1.0.0-rc.5 <https://html2canvas.hertzen.com>
 * Copyright (c) 2020 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
!function(A,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(A=A||self).html2canvas=e()}(this,function(){"use strict";
	/*! *****************************************************************************
		Copyright (c) Microsoft Corporation. All rights reserved.
		Licensed under the Apache License, Version 2.0 (the "License"); you may not use
		this file except in compliance with the License. You may obtain a copy of the
		License at http://www.apache.org/licenses/LICENSE-2.0

		THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
		KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
		WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
		MERCHANTABLITY OR NON-INFRINGEMENT.

		See the Apache Version 2.0 License for specific language governing permissions
		and limitations under the License.
		***************************************************************************** */var r=function(A,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])})(A,e)};function A(A,e){function t(){this.constructor=A}r(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}var K=function(){return(K=Object.assign||function(A){for(var e,t=1,r=arguments.length;t<r;t++)for(var n in e=arguments[t])Object.prototype.hasOwnProperty.call(e,n)&&(A[n]=e[n]);return A}).apply(this,arguments)};function a(B,s,o,i){return new(o||(o=Promise))(function(A,e){function t(A){try{n(i.next(A))}catch(A){e(A)}}function r(A){try{n(i.throw(A))}catch(A){e(A)}}function n(e){e.done?A(e.value):new o(function(A){A(e.value)}).then(t,r)}n((i=i.apply(B,s||[])).next())})}function S(t,r){var n,B,s,A,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return A={next:e(0),throw:e(1),return:e(2)},"function"==typeof Symbol&&(A[Symbol.iterator]=function(){return this}),A;function e(e){return function(A){return function(e){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,B&&(s=2&e[0]?B.return:e[0]?B.throw||((s=B.return)&&s.call(B),0):B.next)&&!(s=s.call(B,e[1])).done)return s;switch(B=0,s&&(e=[2&e[0],s.value]),e[0]){case 0:case 1:s=e;break;case 4:return o.label++,{value:e[1],done:!1};case 5:o.label++,B=e[1],e=[0];continue;case 7:e=o.ops.pop(),o.trys.pop();continue;default:if(!(s=0<(s=o.trys).length&&s[s.length-1])&&(6===e[0]||2===e[0])){o=0;continue}if(3===e[0]&&(!s||e[1]>s[0]&&e[1]<s[3])){o.label=e[1];break}if(6===e[0]&&o.label<s[1]){o.label=s[1],s=e;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(e);break}s[2]&&o.ops.pop(),o.trys.pop();continue}e=r.call(t,o)}catch(A){e=[6,A],B=0}finally{n=s=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([e,A])}}}var I=(n.prototype.add=function(A,e,t,r){return new n(this.left+A,this.top+e,this.width+t,this.height+r)},n.fromClientRect=function(A){return new n(A.left,A.top,A.width,A.height)},n);function n(A,e,t,r){this.left=A,this.top=e,this.width=t,this.height=r}for(var T=function(A){return I.fromClientRect(A.getBoundingClientRect())},c=function(A){for(var e=[],t=0,r=A.length;t<r;){var n=A.charCodeAt(t++);if(55296<=n&&n<=56319&&t<r){var B=A.charCodeAt(t++);56320==(64512&B)?e.push(((1023&n)<<10)+(1023&B)+65536):(e.push(n),t--)}else e.push(n)}return e},l=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];if(String.fromCodePoint)return String.fromCodePoint.apply(String,A);var t=A.length;if(!t)return"";for(var r=[],n=-1,B="";++n<t;){var s=A[n];s<=65535?r.push(s):(s-=65536,r.push(55296+(s>>10),s%1024+56320)),(n+1===t||16384<r.length)&&(B+=String.fromCharCode.apply(String,r),r.length=0)}return B},e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Q="undefined"==typeof Uint8Array?[]:new Uint8Array(256),t=0;t<e.length;t++)Q[e.charCodeAt(t)]=t;function B(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))}var s=(o.prototype.get=function(A){var e;if(0<=A){if(A<55296||56319<A&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A<this.highStart)return e=2080+(A>>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},o);function o(A,e,t,r,n,B){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=r,this.index=n,this.data=B}function C(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n)for(var B=t;B<=r.length;){if((i=r[++B])===e)return!0;if(i!==H)break}if(n===H)for(B=t;0<B;){var s=r[--B];if(Array.isArray(A)?-1!==A.indexOf(s):A===s)for(var o=t;o<=r.length;){var i;if((i=r[++o])===e)return!0;if(i!==H)break}if(s!==H)break}return!1}function g(A,e){for(var t=A;0<=t;){var r=e[t];if(r!==H)return r;t--}return 0}function w(A,e,t,r,n){if(0===t[r])return Y;var B=r-1;if(Array.isArray(n)&&!0===n[B])return Y;var s=B-1,o=1+B,i=e[B],a=0<=s?e[s]:0,c=e[o];if(2===i&&3===c)return Y;if(-1!==j.indexOf(i))return"!";if(-1!==j.indexOf(c))return Y;if(-1!==$.indexOf(c))return Y;if(8===g(B,e))return"÷";if(11===q.get(A[B])&&(c===X||c===P||c===x))return Y;if(7===i||7===c)return Y;if(9===i)return Y;if(-1===[H,d,f].indexOf(i)&&9===c)return Y;if(-1!==[p,N,m,O,y].indexOf(c))return Y;if(g(B,e)===v)return Y;if(C(23,v,B,e))return Y;if(C([p,N],L,B,e))return Y;if(C(12,12,B,e))return Y;if(i===H)return"÷";if(23===i||23===c)return Y;if(16===c||16===i)return"÷";if(-1!==[d,f,L].indexOf(c)||14===i)return Y;if(36===a&&-1!==rA.indexOf(i))return Y;if(i===y&&36===c)return Y;if(c===R&&-1!==Z.concat(R,m,D,X,P,x).indexOf(i))return Y;if(-1!==Z.indexOf(c)&&i===D||-1!==Z.indexOf(i)&&c===D)return Y;if(i===M&&-1!==[X,P,x].indexOf(c)||-1!==[X,P,x].indexOf(i)&&c===b)return Y;if(-1!==Z.indexOf(i)&&-1!==AA.indexOf(c)||-1!==AA.indexOf(i)&&-1!==Z.indexOf(c))return Y;if(-1!==[M,b].indexOf(i)&&(c===D||-1!==[v,f].indexOf(c)&&e[1+o]===D)||-1!==[v,f].indexOf(i)&&c===D||i===D&&-1!==[D,y,O].indexOf(c))return Y;if(-1!==[D,y,O,p,N].indexOf(c))for(var Q=B;0<=Q;){if((w=e[Q])===D)return Y;if(-1===[y,O].indexOf(w))break;Q--}if(-1!==[M,b].indexOf(c))for(Q=-1!==[p,N].indexOf(i)?s:B;0<=Q;){var w;if((w=e[Q])===D)return Y;if(-1===[y,O].indexOf(w))break;Q--}if(J===i&&-1!==[J,G,V,z].indexOf(c)||-1!==[G,V].indexOf(i)&&-1!==[G,k].indexOf(c)||-1!==[k,z].indexOf(i)&&c===k)return Y;if(-1!==tA.indexOf(i)&&-1!==[R,b].indexOf(c)||-1!==tA.indexOf(c)&&i===M)return Y;if(-1!==Z.indexOf(i)&&-1!==Z.indexOf(c))return Y;if(i===O&&-1!==Z.indexOf(c))return Y;if(-1!==Z.concat(D).indexOf(i)&&c===v||-1!==Z.concat(D).indexOf(c)&&i===N)return Y;if(41===i&&41===c){for(var u=t[B],U=1;0<u&&41===e[--u];)U++;if(U%2!=0)return Y}return i===P&&c===x?Y:"÷"}function u(t,A){A||(A={lineBreak:"normal",wordBreak:"normal"});var e=function(A,n){void 0===n&&(n="strict");var B=[],s=[],o=[];return A.forEach(function(A,e){var t=q.get(A);if(50<t?(o.push(!0),t-=50):o.push(!1),-1!==["normal","auto","loose"].indexOf(n)&&-1!==[8208,8211,12316,12448].indexOf(A))return s.push(e),B.push(16);if(4!==t&&11!==t)return s.push(e),31===t?B.push("strict"===n?L:X):t===W?B.push(_):29===t?B.push(_):43===t?131072<=A&&A<=196605||196608<=A&&A<=262141?B.push(X):B.push(_):void B.push(t);if(0===e)return s.push(e),B.push(_);var r=B[e-1];return-1===eA.indexOf(r)?(s.push(s[e-1]),B.push(r)):(s.push(e),B.push(_))}),[s,B,o]}(t,A.lineBreak),r=e[0],n=e[1],B=e[2];return"break-all"!==A.wordBreak&&"break-word"!==A.wordBreak||(n=n.map(function(A){return-1!==[D,_,W].indexOf(A)?X:A})),[r,n,"keep-all"===A.wordBreak?B.map(function(A,e){return A&&19968<=t[e]&&t[e]<=40959}):void 0]}var i,U,E,F,h,H=10,d=13,f=15,p=17,N=18,m=19,R=20,L=21,v=22,O=24,D=25,b=26,M=27,y=28,_=30,P=32,x=33,V=34,z=35,X=37,J=38,G=39,k=40,W=42,Y="×",q=(i=function(A){var e,t,r,n,B,s=.75*A.length,o=A.length,i=0;"="===A[A.length-1]&&(s--,"="===A[A.length-2]&&s--);var a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(s):new Array(s),c=Array.isArray(a)?a:new Uint8Array(a);for(e=0;e<o;e+=4)t=Q[A.charCodeAt(e)],r=Q[A.charCodeAt(e+1)],n=Q[A.charCodeAt(e+2)],B=Q[A.charCodeAt(e+3)],c[i++]=t<<2|r>>4,c[i++]=(15&r)<<4|n>>2,c[i++]=(3&n)<<6|63&B;return a}("KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA"),U=Array.isArray(i)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=4)t.push(A[r+3]<<24|A[r+2]<<16|A[r+1]<<8|A[r]);return t}(i):new Uint32Array(i),E=Array.isArray(i)?function(A){for(var e=A.length,t=[],r=0;r<e;r+=2)t.push(A[r+1]<<8|A[r]);return t}(i):new Uint16Array(i),F=B(E,12,U[4]/2),h=2===U[5]?B(E,(24+U[4])/2):function(A,e,t){return A.slice?A.slice(e,t):new Uint32Array(Array.prototype.slice.call(A,e,t))}(U,Math.ceil((24+U[4])/4)),new s(U[0],U[1],U[2],U[3],F,h)),Z=[_,36],j=[1,2,3,5],$=[H,8],AA=[M,b],eA=j.concat($),tA=[J,G,k,V,z],rA=[f,d],nA=(BA.prototype.slice=function(){return l.apply(void 0,this.codePoints.slice(this.start,this.end))},BA);function BA(A,e,t,r){this.codePoints=A,this.required="!"===e,this.start=t,this.end=r}var sA,oA;(oA=sA||(sA={}))[oA.STRING_TOKEN=0]="STRING_TOKEN",oA[oA.BAD_STRING_TOKEN=1]="BAD_STRING_TOKEN",oA[oA.LEFT_PARENTHESIS_TOKEN=2]="LEFT_PARENTHESIS_TOKEN",oA[oA.RIGHT_PARENTHESIS_TOKEN=3]="RIGHT_PARENTHESIS_TOKEN",oA[oA.COMMA_TOKEN=4]="COMMA_TOKEN",oA[oA.HASH_TOKEN=5]="HASH_TOKEN",oA[oA.DELIM_TOKEN=6]="DELIM_TOKEN",oA[oA.AT_KEYWORD_TOKEN=7]="AT_KEYWORD_TOKEN",oA[oA.PREFIX_MATCH_TOKEN=8]="PREFIX_MATCH_TOKEN",oA[oA.DASH_MATCH_TOKEN=9]="DASH_MATCH_TOKEN",oA[oA.INCLUDE_MATCH_TOKEN=10]="INCLUDE_MATCH_TOKEN",oA[oA.LEFT_CURLY_BRACKET_TOKEN=11]="LEFT_CURLY_BRACKET_TOKEN",oA[oA.RIGHT_CURLY_BRACKET_TOKEN=12]="RIGHT_CURLY_BRACKET_TOKEN",oA[oA.SUFFIX_MATCH_TOKEN=13]="SUFFIX_MATCH_TOKEN",oA[oA.SUBSTRING_MATCH_TOKEN=14]="SUBSTRING_MATCH_TOKEN",oA[oA.DIMENSION_TOKEN=15]="DIMENSION_TOKEN",oA[oA.PERCENTAGE_TOKEN=16]="PERCENTAGE_TOKEN",oA[oA.NUMBER_TOKEN=17]="NUMBER_TOKEN",oA[oA.FUNCTION=18]="FUNCTION",oA[oA.FUNCTION_TOKEN=19]="FUNCTION_TOKEN",oA[oA.IDENT_TOKEN=20]="IDENT_TOKEN",oA[oA.COLUMN_TOKEN=21]="COLUMN_TOKEN",oA[oA.URL_TOKEN=22]="URL_TOKEN",oA[oA.BAD_URL_TOKEN=23]="BAD_URL_TOKEN",oA[oA.CDC_TOKEN=24]="CDC_TOKEN",oA[oA.CDO_TOKEN=25]="CDO_TOKEN",oA[oA.COLON_TOKEN=26]="COLON_TOKEN",oA[oA.SEMICOLON_TOKEN=27]="SEMICOLON_TOKEN",oA[oA.LEFT_SQUARE_BRACKET_TOKEN=28]="LEFT_SQUARE_BRACKET_TOKEN",oA[oA.RIGHT_SQUARE_BRACKET_TOKEN=29]="RIGHT_SQUARE_BRACKET_TOKEN",oA[oA.UNICODE_RANGE_TOKEN=30]="UNICODE_RANGE_TOKEN",oA[oA.WHITESPACE_TOKEN=31]="WHITESPACE_TOKEN",oA[oA.EOF_TOKEN=32]="EOF_TOKEN";function iA(A){return 48<=A&&A<=57}function aA(A){return iA(A)||65<=A&&A<=70||97<=A&&A<=102}function cA(A){return 10===A||9===A||32===A}function QA(A){return function(A){return function(A){return 97<=A&&A<=122}(A)||function(A){return 65<=A&&A<=90}(A)}(A)||function(A){return 128<=A}(A)||95===A}function wA(A){return QA(A)||iA(A)||45===A}function uA(A,e){return 92===A&&10!==e}function UA(A,e,t){return 45===A?QA(e)||uA(e,t):!!QA(A)||!(92!==A||!uA(A,e))}function lA(A,e,t){return 43===A||45===A?!!iA(e)||46===e&&iA(t):iA(46===A?e:A)}var CA={type:sA.LEFT_PARENTHESIS_TOKEN},gA={type:sA.RIGHT_PARENTHESIS_TOKEN},EA={type:sA.COMMA_TOKEN},FA={type:sA.SUFFIX_MATCH_TOKEN},hA={type:sA.PREFIX_MATCH_TOKEN},HA={type:sA.COLUMN_TOKEN},dA={type:sA.DASH_MATCH_TOKEN},fA={type:sA.INCLUDE_MATCH_TOKEN},pA={type:sA.LEFT_CURLY_BRACKET_TOKEN},NA={type:sA.RIGHT_CURLY_BRACKET_TOKEN},KA={type:sA.SUBSTRING_MATCH_TOKEN},IA={type:sA.BAD_URL_TOKEN},TA={type:sA.BAD_STRING_TOKEN},mA={type:sA.CDO_TOKEN},RA={type:sA.CDC_TOKEN},LA={type:sA.COLON_TOKEN},vA={type:sA.SEMICOLON_TOKEN},OA={type:sA.LEFT_SQUARE_BRACKET_TOKEN},DA={type:sA.RIGHT_SQUARE_BRACKET_TOKEN},bA={type:sA.WHITESPACE_TOKEN},SA={type:sA.EOF_TOKEN},MA=(yA.prototype.write=function(A){this._value=this._value.concat(c(A))},yA.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==SA;)A.push(e),e=this.consumeToken();return A},yA.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(wA(e)||uA(t,r)){var n=UA(e,t,r)?2:1,B=this.consumeName();return{type:sA.HASH_TOKEN,value:B,flags:n}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),FA;break;case 39:return this.consumeStringToken(39);case 40:return CA;case 41:return gA;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),KA;break;case 43:if(lA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return EA;case 45:var s=A,o=this.peekCodePoint(0),i=this.peekCodePoint(1);if(lA(s,o,i))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(UA(s,o,i))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(45===o&&62===i)return this.consumeCodePoint(),this.consumeCodePoint(),RA;break;case 46:if(lA(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var a=this.consumeCodePoint();if(42===a&&47===(a=this.consumeCodePoint()))return this.consumeToken();if(-1===a)return this.consumeToken()}break;case 58:return LA;case 59:return vA;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),mA;break;case 64:var c=this.peekCodePoint(0),Q=this.peekCodePoint(1),w=this.peekCodePoint(2);if(UA(c,Q,w))return B=this.consumeName(),{type:sA.AT_KEYWORD_TOKEN,value:B};break;case 91:return OA;case 92:if(uA(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return DA;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),hA;break;case 123:return pA;case 125:return NA;case 117:case 85:var u=this.peekCodePoint(0),U=this.peekCodePoint(1);return 43!==u||!aA(U)&&63!==U||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),dA;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),HA;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),fA;break;case-1:return SA}return cA(A)?(this.consumeWhiteSpace(),bA):iA(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):QA(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:sA.DELIM_TOKEN,value:l(A)}},yA.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},yA.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},yA.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},yA.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();aA(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){var r=parseInt(l.apply(void 0,A.map(function(A){return 63===A?48:A})),16),n=parseInt(l.apply(void 0,A.map(function(A){return 63===A?70:A})),16);return{type:sA.UNICODE_RANGE_TOKEN,start:r,end:n}}var B=parseInt(l.apply(void 0,A),16);if(45===this.peekCodePoint(0)&&aA(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var s=[];aA(e)&&s.length<6;)s.push(e),e=this.consumeCodePoint();return n=parseInt(l.apply(void 0,s),16),{type:sA.UNICODE_RANGE_TOKEN,start:B,end:n}}return{type:sA.UNICODE_RANGE_TOKEN,start:B,end:B}},yA.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:sA.FUNCTION_TOKEN,value:A}):{type:sA.IDENT_TOKEN,value:A}},yA.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:sA.URL_TOKEN,value:""};var e,t=this.peekCodePoint(0);if(39===t||34===t){var r=this.consumeStringToken(this.consumeCodePoint());return r.type===sA.STRING_TOKEN&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:sA.URL_TOKEN,value:r.value}):(this.consumeBadUrlRemnants(),IA)}for(;;){var n=this.consumeCodePoint();if(-1===n||41===n)return{type:sA.URL_TOKEN,value:l.apply(void 0,A)};if(cA(n))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:sA.URL_TOKEN,value:l.apply(void 0,A)}):(this.consumeBadUrlRemnants(),IA);if(34===n||39===n||40===n||0<=(e=n)&&e<=8||11===e||14<=e&&e<=31||127===e)return this.consumeBadUrlRemnants(),IA;if(92===n){if(!uA(n,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),IA;A.push(this.consumeEscapedCodePoint())}else A.push(n)}},yA.prototype.consumeWhiteSpace=function(){for(;cA(this.peekCodePoint(0));)this.consumeCodePoint()},yA.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||-1===A)return;uA(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},yA.prototype.consumeStringSlice=function(A){for(var e="";0<A;){var t=Math.min(6e4,A);e+=l.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},yA.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var r=this._value[t];if(-1===r||void 0===r||r===A)return e+=this.consumeStringSlice(t),{type:sA.STRING_TOKEN,value:e};if(10===r)return this._value.splice(0,t),TA;if(92===r){var n=this._value[t+1];-1!==n&&void 0!==n&&(10===n?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):uA(r,n)&&(e+=this.consumeStringSlice(t),e+=l(this.consumeEscapedCodePoint()),t=-1))}t++}},yA.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(43!==t&&45!==t||A.push(this.consumeCodePoint());iA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(46===t&&iA(r))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;iA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((69===t||101===t)&&((43===r||45===r)&&iA(n)||iA(r)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;iA(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[function(A){var e=0,t=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(t=-1),e++);for(var r=[];iA(A[e]);)r.push(A[e++]);var n=r.length?parseInt(l.apply(void 0,r),10):0;46===A[e]&&e++;for(var B=[];iA(A[e]);)B.push(A[e++]);var s=B.length,o=s?parseInt(l.apply(void 0,B),10):0;69!==A[e]&&101!==A[e]||e++;var i=1;43!==A[e]&&45!==A[e]||(45===A[e]&&(i=-1),e++);for(var a=[];iA(A[e]);)a.push(A[e++]);var c=a.length?parseInt(l.apply(void 0,a),10):0;return t*(n+o*Math.pow(10,-s))*Math.pow(10,i*c)}(A),e]},yA.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),B=this.peekCodePoint(2);if(UA(r,n,B)){var s=this.consumeName();return{type:sA.DIMENSION_TOKEN,number:e,flags:t,unit:s}}return 37===r?(this.consumeCodePoint(),{type:sA.PERCENTAGE_TOKEN,number:e,flags:t}):{type:sA.NUMBER_TOKEN,number:e,flags:t}},yA.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(aA(A)){for(var e=l(A);aA(this.peekCodePoint(0))&&e.length<6;)e+=l(this.consumeCodePoint());cA(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return 55296<=A&&A<=57343}(t)||1114111<t?65533:t}return-1===A?65533:A},yA.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(wA(e))A+=l(e);else{if(!uA(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=l(this.consumeEscapedCodePoint())}}},yA);function yA(){this._value=[]}var _A=(PA.create=function(A){var e=new MA;return e.write(A),new PA(e.read())},PA.parseValue=function(A){return PA.create(A).parseComponentValue()},PA.parseValues=function(A){return PA.create(A).parseComponentValues()},PA.prototype.parseComponentValue=function(){for(var A=this.consumeToken();A.type===sA.WHITESPACE_TOKEN;)A=this.consumeToken();if(A.type===sA.EOF_TOKEN)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);for(var e=this.consumeComponentValue();(A=this.consumeToken()).type===sA.WHITESPACE_TOKEN;);if(A.type===sA.EOF_TOKEN)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},PA.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(e.type===sA.EOF_TOKEN)return A;A.push(e),A.push()}},PA.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case sA.LEFT_CURLY_BRACKET_TOKEN:case sA.LEFT_SQUARE_BRACKET_TOKEN:case sA.LEFT_PARENTHESIS_TOKEN:return this.consumeSimpleBlock(A.type);case sA.FUNCTION_TOKEN:return this.consumeFunction(A)}return A},PA.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(t.type===sA.EOF_TOKEN||Be(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},PA.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:sA.FUNCTION};;){var t=this.consumeToken();if(t.type===sA.EOF_TOKEN||t.type===sA.RIGHT_PARENTHESIS_TOKEN)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},PA.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?SA:A},PA.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},PA);function PA(A){this._tokens=A}function xA(A){return A.type===sA.DIMENSION_TOKEN}function VA(A){return A.type===sA.NUMBER_TOKEN}function zA(A){return A.type===sA.IDENT_TOKEN}function XA(A){return A.type===sA.STRING_TOKEN}function JA(A,e){return zA(A)&&A.value===e}function GA(A){return A.type!==sA.WHITESPACE_TOKEN}function kA(A){return A.type!==sA.WHITESPACE_TOKEN&&A.type!==sA.COMMA_TOKEN}function WA(A){var e=[],t=[];return A.forEach(function(A){if(A.type===sA.COMMA_TOKEN){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}A.type!==sA.WHITESPACE_TOKEN&&t.push(A)}),t.length&&e.push(t),e}function YA(A){return A.type===sA.NUMBER_TOKEN||A.type===sA.DIMENSION_TOKEN}function qA(A){return A.type===sA.PERCENTAGE_TOKEN||YA(A)}function ZA(A){return 1<A.length?[A[0],A[1]]:[A[0]]}function jA(A,e,t){var r=A[0],n=A[1];return[ae(r,e),ae(void 0!==n?n:r,t)]}function $A(A){return A.type===sA.DIMENSION_TOKEN&&("deg"===A.unit||"grad"===A.unit||"rad"===A.unit||"turn"===A.unit)}function Ae(A){switch(A.filter(zA).map(function(A){return A.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[se,se];case"to top":case"bottom":return Qe(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[se,ie];case"to right":case"left":return Qe(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ie,ie];case"to bottom":case"top":return Qe(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ie,se];case"to left":case"right":return Qe(270)}return 0}function ee(A){return 0==(255&A)}function te(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"}function re(A,e){if(A.type===sA.NUMBER_TOKEN)return A.number;if(A.type!==sA.PERCENTAGE_TOKEN)return 0;var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}function ne(A){var e=A.filter(kA);if(3===e.length){var t=e.map(re),r=t[0],n=t[1],B=t[2];return ue(r,n,B,1)}if(4!==e.length)return 0;var s=e.map(re),o=(r=s[0],n=s[1],B=s[2],s[3]);return ue(r,n,B,o)}var Be=function(A,e){return e===sA.LEFT_CURLY_BRACKET_TOKEN&&A.type===sA.RIGHT_CURLY_BRACKET_TOKEN||(e===sA.LEFT_SQUARE_BRACKET_TOKEN&&A.type===sA.RIGHT_SQUARE_BRACKET_TOKEN||e===sA.LEFT_PARENTHESIS_TOKEN&&A.type===sA.RIGHT_PARENTHESIS_TOKEN)},se={type:sA.NUMBER_TOKEN,number:0,flags:4},oe={type:sA.PERCENTAGE_TOKEN,number:50,flags:4},ie={type:sA.PERCENTAGE_TOKEN,number:100,flags:4},ae=function(A,e){if(A.type===sA.PERCENTAGE_TOKEN)return A.number/100*e;if(xA(A))switch(A.unit){case"rem":case"em":return 16*A.number;case"px":default:return A.number}return A.number},ce=function(A){if(A.type===sA.DIMENSION_TOKEN)switch(A.unit){case"deg":return Math.PI*A.number/180;case"grad":return Math.PI/200*A.number;case"rad":return A.number;case"turn":return 2*Math.PI*A.number}throw new Error("Unsupported angle type")},Qe=function(A){return Math.PI*A/180},we=function(A){if(A.type===sA.FUNCTION){var e=he[A.name];if(void 0===e)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return e(A.values)}if(A.type===sA.HASH_TOKEN){if(3===A.value.length){var t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);return ue(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),1)}if(4===A.value.length){t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);var B=A.value.substring(3,4);return ue(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),parseInt(B+B,16)/255)}if(6===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6);return ue(parseInt(t,16),parseInt(r,16),parseInt(n,16),1)}if(8===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6),B=A.value.substring(6,8);return ue(parseInt(t,16),parseInt(r,16),parseInt(n,16),parseInt(B,16)/255)}}if(A.type===sA.IDENT_TOKEN){var s=He[A.value.toUpperCase()];if(void 0!==s)return s}return He.TRANSPARENT},ue=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0};function Ue(A,e,t){return t<0&&(t+=1),1<=t&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}function le(A){var e=A.filter(kA),t=e[0],r=e[1],n=e[2],B=e[3],s=(t.type===sA.NUMBER_TOKEN?Qe(t.number):ce(t))/(2*Math.PI),o=qA(r)?r.number/100:0,i=qA(n)?n.number/100:0,a=void 0!==B&&qA(B)?ae(B,1):1;if(0==o)return ue(255*i,255*i,255*i,1);var c=i<=.5?i*(1+o):i+o-i*o,Q=2*i-c,w=Ue(Q,c,s+1/3),u=Ue(Q,c,s),U=Ue(Q,c,s-1/3);return ue(255*w,255*u,255*U,a)}var Ce,ge,Ee,Fe,he={hsl:le,hsla:le,rgb:ne,rgba:ne},He={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199};(ge=Ce||(Ce={}))[ge.VALUE=0]="VALUE",ge[ge.LIST=1]="LIST",ge[ge.IDENT_VALUE=2]="IDENT_VALUE",ge[ge.TYPE_VALUE=3]="TYPE_VALUE",ge[ge.TOKEN_VALUE=4]="TOKEN_VALUE",(Fe=Ee||(Ee={}))[Fe.BORDER_BOX=0]="BORDER_BOX",Fe[Fe.PADDING_BOX=1]="PADDING_BOX";function de(A){var e=we(A[0]),t=A[1];return t&&qA(t)?{color:e,stop:t}:{color:e,stop:null}}function fe(A,t){var e=A[0],r=A[A.length-1];null===e.stop&&(e.stop=se),null===r.stop&&(r.stop=ie);for(var n=[],B=0,s=0;s<A.length;s++){var o=A[s].stop;if(null!==o){var i=ae(o,t);B<i?n.push(i):n.push(B),B=i}else n.push(null)}var a=null;for(s=0;s<n.length;s++){var c=n[s];if(null===c)null===a&&(a=s);else if(null!==a){for(var Q=s-a,w=(c-n[a-1])/(1+Q),u=1;u<=Q;u++)n[a+u-1]=w*u;a=null}}return A.map(function(A,e){return{color:A.color,stop:Math.max(Math.min(1,n[e]/t),0)}})}function pe(A,e,t){var r="number"==typeof A?A:function(A,e,t){var r=e/2,n=t/2,B=ae(A[0],e)-r,s=n-ae(A[1],t);return(Math.atan2(s,B)+2*Math.PI)%(2*Math.PI)}(A,e,t),n=Math.abs(e*Math.sin(r))+Math.abs(t*Math.cos(r)),B=e/2,s=t/2,o=n/2,i=Math.sin(r-Math.PI/2)*o,a=Math.cos(r-Math.PI/2)*o;return[n,B-a,B+a,s-i,s+i]}function Ne(A,e){return Math.sqrt(A*A+e*e)}function Ke(A,e,B,s,o){return[[0,0],[0,e],[A,0],[A,e]].reduce(function(A,e){var t=e[0],r=e[1],n=Ne(B-t,s-r);return(o?n<A.optimumDistance:n>A.optimumDistance)?{optimumCorner:e,optimumDistance:n}:A},{optimumDistance:o?1/0:-1/0,optimumCorner:null}).optimumCorner}function Ie(A){var n=Qe(180),B=[];return WA(A).forEach(function(A,e){if(0===e){var t=A[0];if(t.type===sA.IDENT_TOKEN&&-1!==["top","left","right","bottom"].indexOf(t.value))return void(n=Ae(A));if($A(t))return void(n=(ce(t)+Qe(270))%Qe(360))}var r=de(A);B.push(r)}),{angle:n,stops:B,type:xe.LINEAR_GRADIENT}}function Te(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]}var me={name:"background-clip",initialValue:"border-box",prefix:!(Fe[Fe.CONTENT_BOX=2]="CONTENT_BOX"),type:Ce.LIST,parse:function(A){return A.map(function(A){if(zA(A))switch(A.value){case"padding-box":return Ee.PADDING_BOX;case"content-box":return Ee.CONTENT_BOX}return Ee.BORDER_BOX})}},Re={name:"background-color",initialValue:"transparent",prefix:!1,type:Ce.TYPE_VALUE,format:"color"},Le=function(A,e,t,r,n){var B="http://www.w3.org/2000/svg",s=document.createElementNS(B,"svg"),o=document.createElementNS(B,"foreignObject");return s.setAttributeNS(null,"width",A.toString()),s.setAttributeNS(null,"height",e.toString()),o.setAttributeNS(null,"width","100%"),o.setAttributeNS(null,"height","100%"),o.setAttributeNS(null,"x",t.toString()),o.setAttributeNS(null,"y",r.toString()),o.setAttributeNS(null,"externalResourcesRequired","true"),s.appendChild(o),o.appendChild(n),s},ve=function(r){return new Promise(function(A,e){var t=new Image;t.onload=function(){return A(t)},t.onerror=e,t.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(r))})},Oe={get SUPPORT_RANGE_BOUNDS(){var A=function(A){if(A.createRange){var e=A.createRange();if(e.getBoundingClientRect){var t=A.createElement("boundtest");t.style.height="123px",t.style.display="block",A.body.appendChild(t),e.selectNode(t);var r=e.getBoundingClientRect(),n=Math.round(r.height);if(A.body.removeChild(t),123===n)return!0}}return!1}(document);return Object.defineProperty(Oe,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";try{r.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Oe,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(r){var A=r.createElement("canvas"),n=100;A.width=n,A.height=n;var B=A.getContext("2d");if(!B)return Promise.reject(!1);B.fillStyle="rgb(0, 255, 0)",B.fillRect(0,0,n,n);var e=new Image,s=A.toDataURL();e.src=s;var t=Le(n,n,0,0,e);return B.fillStyle="red",B.fillRect(0,0,n,n),ve(t).then(function(A){B.drawImage(A,0,0);var e=B.getImageData(0,0,n,n).data;B.fillStyle="red",B.fillRect(0,0,n,n);var t=r.createElement("div");return t.style.backgroundImage="url("+s+")",t.style.height="100px",Te(e)?ve(Le(n,n,0,0,t)):Promise.reject(!1)}).then(function(A){return B.drawImage(A,0,0),Te(B.getImageData(0,0,n,n).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(Oe,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Oe,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Oe,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Oe,"SUPPORT_CORS_XHR",{value:A}),A}},De=(be.prototype.debug=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.debug?console.debug.apply(console,[this.id,this.getTime()+"ms"].concat(A)):this.info.apply(this,A))},be.prototype.getTime=function(){return Date.now()-this.start},be.create=function(A){be.instances[A.id]=new be(A)},be.destroy=function(A){delete be.instances[A]},be.getInstance=function(A){var e=be.instances[A];if(void 0===e)throw new Error("No logger instance found with id "+A);return e},be.prototype.info=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&"undefined"!=typeof window&&window.console&&"function"==typeof console.info&&console.info.apply(console,[this.id,this.getTime()+"ms"].concat(A))},be.prototype.error=function(){for(var A=[],e=0;e<arguments.length;e++)A[e]=arguments[e];this.enabled&&("undefined"!=typeof window&&window.console&&"function"==typeof console.error?console.error.apply(console,[this.id,this.getTime()+"ms"].concat(A)):this.info.apply(this,A))},be.instances={},be);function be(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}var Se=(Me.create=function(A,e){return Me._caches[A]=new ye(A,e)},Me.destroy=function(A){delete Me._caches[A]},Me.open=function(A){var e=Me._caches[A];if(void 0!==e)return e;throw new Error('Cache with key "'+A+'" not found')},Me.getOrigin=function(A){var e=Me._link;return e?(e.href=A,e.href=e.href,e.protocol+e.hostname+e.port):"about:blank"},Me.isSameOrigin=function(A){return Me.getOrigin(A)===Me._origin},Me.setContext=function(A){Me._link=A.document.createElement("a"),Me._origin=Me.getOrigin(A.location.href)},Me.getInstance=function(){var A=Me._current;if(null===A)throw new Error("No cache instance attached");return A},Me.attachInstance=function(A){Me._current=A},Me.detachInstance=function(){Me._current=null},Me._caches={},Me._origin="about:blank",Me._current=null,Me);function Me(){}var ye=(_e.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)||(Ye(A)||Ge(A))&&(this._cache[A]=this.loadImage(A)),e},_e.prototype.match=function(A){return this._cache[A]},_e.prototype.loadImage=function(s){return a(this,void 0,void 0,function(){var e,r,t,n,B=this;return S(this,function(A){switch(A.label){case 0:return e=Se.isSameOrigin(s),r=!ke(s)&&!0===this._options.useCORS&&Oe.SUPPORT_CORS_IMAGES&&!e,t=!ke(s)&&!e&&"string"==typeof this._options.proxy&&Oe.SUPPORT_CORS_XHR&&!r,e||!1!==this._options.allowTaint||ke(s)||t||r?(n=s,t?[4,this.proxy(n)]:[3,2]):[2];case 1:n=A.sent(),A.label=2;case 2:return De.getInstance(this.id).debug("Added image "+s.substring(0,256)),[4,new Promise(function(A,e){var t=new Image;t.onload=function(){return A(t)},t.onerror=e,(We(n)||r)&&(t.crossOrigin="anonymous"),t.src=n,!0===t.complete&&setTimeout(function(){return A(t)},500),0<B._options.imageTimeout&&setTimeout(function(){return e("Timed out ("+B._options.imageTimeout+"ms) loading image")},B._options.imageTimeout)})];case 3:return[2,A.sent()]}})})},_e.prototype.has=function(A){return void 0!==this._cache[A]},_e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},_e.prototype.proxy=function(B){var s=this,o=this._options.proxy;if(!o)throw new Error("No proxy defined");var i=B.substring(0,256);return new Promise(function(e,t){var r=Oe.SUPPORT_RESPONSE_TYPE?"blob":"text",n=new XMLHttpRequest;if(n.onload=function(){if(200===n.status)if("text"==r)e(n.response);else{var A=new FileReader;A.addEventListener("load",function(){return e(A.result)},!1),A.addEventListener("error",function(A){return t(A)},!1),A.readAsDataURL(n.response)}else t("Failed to proxy resource "+i+" with status code "+n.status)},n.onerror=t,n.open("GET",o+"?url="+encodeURIComponent(B)+"&responseType="+r),"text"!=r&&n instanceof XMLHttpRequest&&(n.responseType=r),s._options.imageTimeout){var A=s._options.imageTimeout;n.timeout=A,n.ontimeout=function(){return t("Timed out ("+A+"ms) proxying "+i)}}n.send()})},_e);function _e(A,e){this.id=A,this._options=e,this._cache={}}function Pe(A){var n=rt.CIRCLE,B=Bt.FARTHEST_CORNER,s=[],o=[];return WA(A).forEach(function(A,e){var t=!0;if(0===e?t=A.reduce(function(A,e){if(zA(e))switch(e.value){case"center":return o.push(oe),!1;case"top":case"left":return o.push(se),!1;case"right":case"bottom":return o.push(ie),!1}else if(qA(e)||YA(e))return o.push(e),!1;return A},t):1===e&&(t=A.reduce(function(A,e){if(zA(e))switch(e.value){case"circle":return n=rt.CIRCLE,!1;case et:return n=rt.ELLIPSE,!1;case tt:case Ze:return B=Bt.CLOSEST_SIDE,!1;case je:return B=Bt.FARTHEST_SIDE,!1;case $e:return B=Bt.CLOSEST_CORNER,!1;case"cover":case At:return B=Bt.FARTHEST_CORNER,!1}else if(YA(e)||qA(e))return Array.isArray(B)||(B=[]),B.push(e),!1;return A},t)),t){var r=de(A);s.push(r)}}),{size:B,shape:n,stops:s,position:o,type:xe.RADIAL_GRADIENT}}var xe,Ve,ze=/^data:image\/svg\+xml/i,Xe=/^data:image\/.*;base64,/i,Je=/^data:image\/.*/i,Ge=function(A){return Oe.SUPPORT_SVG_DRAWING||!qe(A)},ke=function(A){return Je.test(A)},We=function(A){return Xe.test(A)},Ye=function(A){return"blob"===A.substr(0,4)},qe=function(A){return"svg"===A.substr(-3).toLowerCase()||ze.test(A)},Ze="closest-side",je="farthest-side",$e="closest-corner",At="farthest-corner",et="ellipse",tt="contain";(Ve=xe||(xe={}))[Ve.URL=0]="URL",Ve[Ve.LINEAR_GRADIENT=1]="LINEAR_GRADIENT",Ve[Ve.RADIAL_GRADIENT=2]="RADIAL_GRADIENT";var rt,nt,Bt,st;(nt=rt||(rt={}))[nt.CIRCLE=0]="CIRCLE",nt[nt.ELLIPSE=1]="ELLIPSE",(st=Bt||(Bt={}))[st.CLOSEST_SIDE=0]="CLOSEST_SIDE",st[st.FARTHEST_SIDE=1]="FARTHEST_SIDE",st[st.CLOSEST_CORNER=2]="CLOSEST_CORNER",st[st.FARTHEST_CORNER=3]="FARTHEST_CORNER";var ot=function(A){if(A.type===sA.URL_TOKEN){var e={url:A.value,type:xe.URL};return Se.getInstance().addImage(A.value),e}if(A.type!==sA.FUNCTION)throw new Error("Unsupported image type");var t=ct[A.name];if(void 0===t)throw new Error('Attempting to parse an unsupported image function "'+A.name+'"');return t(A.values)};var it,at,ct={"linear-gradient":function(A){var n=Qe(180),B=[];return WA(A).forEach(function(A,e){if(0===e){var t=A[0];if(t.type===sA.IDENT_TOKEN&&"to"===t.value)return void(n=Ae(A));if($A(t))return void(n=ce(t))}var r=de(A);B.push(r)}),{angle:n,stops:B,type:xe.LINEAR_GRADIENT}},"-moz-linear-gradient":Ie,"-ms-linear-gradient":Ie,"-o-linear-gradient":Ie,"-webkit-linear-gradient":Ie,"radial-gradient":function(A){var B=rt.CIRCLE,s=Bt.FARTHEST_CORNER,o=[],i=[];return WA(A).forEach(function(A,e){var t=!0;if(0===e){var r=!1;t=A.reduce(function(A,e){if(r)if(zA(e))switch(e.value){case"center":return i.push(oe),A;case"top":case"left":return i.push(se),A;case"right":case"bottom":return i.push(ie),A}else(qA(e)||YA(e))&&i.push(e);else if(zA(e))switch(e.value){case"circle":return B=rt.CIRCLE,!1;case et:return B=rt.ELLIPSE,!1;case"at":return!(r=!0);case Ze:return s=Bt.CLOSEST_SIDE,!1;case"cover":case je:return s=Bt.FARTHEST_SIDE,!1;case tt:case $e:return s=Bt.CLOSEST_CORNER,!1;case At:return s=Bt.FARTHEST_CORNER,!1}else if(YA(e)||qA(e))return Array.isArray(s)||(s=[]),s.push(e),!1;return A},t)}if(t){var n=de(A);o.push(n)}}),{size:s,shape:B,stops:o,position:i,type:xe.RADIAL_GRADIENT}},"-moz-radial-gradient":Pe,"-ms-radial-gradient":Pe,"-o-radial-gradient":Pe,"-webkit-radial-gradient":Pe,"-webkit-gradient":function(A){var e=Qe(180),s=[],o=xe.LINEAR_GRADIENT,t=rt.CIRCLE,r=Bt.FARTHEST_CORNER;return WA(A).forEach(function(A,e){var t=A[0];if(0===e){if(zA(t)&&"linear"===t.value)return void(o=xe.LINEAR_GRADIENT);if(zA(t)&&"radial"===t.value)return void(o=xe.RADIAL_GRADIENT)}if(t.type===sA.FUNCTION)if("from"===t.name){var r=we(t.values[0]);s.push({stop:se,color:r})}else if("to"===t.name)r=we(t.values[0]),s.push({stop:ie,color:r});else if("color-stop"===t.name){var n=t.values.filter(kA);if(2===n.length){r=we(n[1]);var B=n[0];VA(B)&&s.push({stop:{type:sA.PERCENTAGE_TOKEN,number:100*B.number,flags:B.flags},color:r})}}}),o===xe.LINEAR_GRADIENT?{angle:(e+Qe(180))%Qe(360),stops:s,type:o}:{size:r,shape:t,stops:s,position:[],type:o}}},Qt={name:"background-image",initialValue:"none",type:Ce.LIST,prefix:!1,parse:function(A){if(0===A.length)return[];var e=A[0];return e.type===sA.IDENT_TOKEN&&"none"===e.value?[]:A.filter(function(A){return kA(A)&&function(A){return A.type!==sA.FUNCTION||ct[A.name]}(A)}).map(ot)}},wt={name:"background-origin",initialValue:"border-box",prefix:!1,type:Ce.LIST,parse:function(A){return A.map(function(A){if(zA(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},ut={name:"background-position",initialValue:"0% 0%",type:Ce.LIST,prefix:!1,parse:function(A){return WA(A).map(function(A){return A.filter(qA)}).map(ZA)}};(at=it||(it={}))[at.REPEAT=0]="REPEAT",at[at.NO_REPEAT=1]="NO_REPEAT",at[at.REPEAT_X=2]="REPEAT_X";var Ut,lt,Ct={name:"background-repeat",initialValue:"repeat",prefix:!(at[at.REPEAT_Y=3]="REPEAT_Y"),type:Ce.LIST,parse:function(A){return WA(A).map(function(A){return A.filter(zA).map(function(A){return A.value}).join(" ")}).map(gt)}},gt=function(A){switch(A){case"no-repeat":return it.NO_REPEAT;case"repeat-x":case"repeat no-repeat":return it.REPEAT_X;case"repeat-y":case"no-repeat repeat":return it.REPEAT_Y;case"repeat":default:return it.REPEAT}};(lt=Ut||(Ut={})).AUTO="auto",lt.CONTAIN="contain";function Et(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:Ce.TYPE_VALUE,format:"color"}}function Ft(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:Ce.LIST,parse:function(A){return ZA(A.filter(qA))}}}var ht,Ht,dt={name:"background-size",initialValue:"0",prefix:!(lt.COVER="cover"),type:Ce.LIST,parse:function(A){return WA(A).map(function(A){return A.filter(ft)})}},ft=function(A){return zA(A)||qA(A)},pt=Et("top"),Nt=Et("right"),Kt=Et("bottom"),It=Et("left"),Tt=Ft("top-left"),mt=Ft("top-right"),Rt=Ft("bottom-right"),Lt=Ft("bottom-left");(Ht=ht||(ht={}))[Ht.NONE=0]="NONE",Ht[Ht.SOLID=1]="SOLID";function vt(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"none":return ht.NONE}return ht.SOLID}}}function Ot(A){return{name:"border-"+A+"-width",initialValue:"0",type:Ce.VALUE,prefix:!1,parse:function(A){return xA(A)?A.number:0}}}var Dt,bt,St=vt("top"),Mt=vt("right"),yt=vt("bottom"),_t=vt("left"),Pt=Ot("top"),xt=Ot("right"),Vt=Ot("bottom"),zt=Ot("left"),Xt={name:"color",initialValue:"transparent",prefix:!1,type:Ce.TYPE_VALUE,format:"color"},Jt={name:"display",initialValue:"inline-block",prefix:!1,type:Ce.LIST,parse:function(A){return A.filter(zA).reduce(function(A,e){return A|Gt(e.value)},0)}},Gt=function(A){switch(A){case"block":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0};(bt=Dt||(Dt={}))[bt.NONE=0]="NONE",bt[bt.LEFT=1]="LEFT",bt[bt.RIGHT=2]="RIGHT",bt[bt.INLINE_START=3]="INLINE_START";var kt,Wt,Yt,qt,Zt={name:"float",initialValue:"none",prefix:!(bt[bt.INLINE_END=4]="INLINE_END"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"left":return Dt.LEFT;case"right":return Dt.RIGHT;case"inline-start":return Dt.INLINE_START;case"inline-end":return Dt.INLINE_END}return Dt.NONE}},jt={name:"letter-spacing",initialValue:"0",prefix:!1,type:Ce.VALUE,parse:function(A){return A.type===sA.IDENT_TOKEN&&"normal"===A.value?0:A.type===sA.NUMBER_TOKEN?A.number:A.type===sA.DIMENSION_TOKEN?A.number:0}},$t={name:"line-break",initialValue:(Wt=kt||(kt={})).NORMAL="normal",prefix:!(Wt.STRICT="strict"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"strict":return kt.STRICT;case"normal":default:return kt.NORMAL}}},Ar={name:"line-height",initialValue:"normal",prefix:!1,type:Ce.TOKEN_VALUE},er={name:"list-style-image",initialValue:"none",type:Ce.VALUE,prefix:!1,parse:function(A){return A.type===sA.IDENT_TOKEN&&"none"===A.value?null:ot(A)}};(qt=Yt||(Yt={}))[qt.INSIDE=0]="INSIDE";var tr,rr,nr={name:"list-style-position",initialValue:"outside",prefix:!(qt[qt.OUTSIDE=1]="OUTSIDE"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"inside":return Yt.INSIDE;case"outside":default:return Yt.OUTSIDE}}};(rr=tr||(tr={}))[rr.NONE=-1]="NONE",rr[rr.DISC=0]="DISC",rr[rr.CIRCLE=1]="CIRCLE",rr[rr.SQUARE=2]="SQUARE",rr[rr.DECIMAL=3]="DECIMAL",rr[rr.CJK_DECIMAL=4]="CJK_DECIMAL",rr[rr.DECIMAL_LEADING_ZERO=5]="DECIMAL_LEADING_ZERO",rr[rr.LOWER_ROMAN=6]="LOWER_ROMAN",rr[rr.UPPER_ROMAN=7]="UPPER_ROMAN",rr[rr.LOWER_GREEK=8]="LOWER_GREEK",rr[rr.LOWER_ALPHA=9]="LOWER_ALPHA",rr[rr.UPPER_ALPHA=10]="UPPER_ALPHA",rr[rr.ARABIC_INDIC=11]="ARABIC_INDIC",rr[rr.ARMENIAN=12]="ARMENIAN",rr[rr.BENGALI=13]="BENGALI",rr[rr.CAMBODIAN=14]="CAMBODIAN",rr[rr.CJK_EARTHLY_BRANCH=15]="CJK_EARTHLY_BRANCH",rr[rr.CJK_HEAVENLY_STEM=16]="CJK_HEAVENLY_STEM",rr[rr.CJK_IDEOGRAPHIC=17]="CJK_IDEOGRAPHIC",rr[rr.DEVANAGARI=18]="DEVANAGARI",rr[rr.ETHIOPIC_NUMERIC=19]="ETHIOPIC_NUMERIC",rr[rr.GEORGIAN=20]="GEORGIAN",rr[rr.GUJARATI=21]="GUJARATI",rr[rr.GURMUKHI=22]="GURMUKHI",rr[rr.HEBREW=22]="HEBREW",rr[rr.HIRAGANA=23]="HIRAGANA",rr[rr.HIRAGANA_IROHA=24]="HIRAGANA_IROHA",rr[rr.JAPANESE_FORMAL=25]="JAPANESE_FORMAL",rr[rr.JAPANESE_INFORMAL=26]="JAPANESE_INFORMAL",rr[rr.KANNADA=27]="KANNADA",rr[rr.KATAKANA=28]="KATAKANA",rr[rr.KATAKANA_IROHA=29]="KATAKANA_IROHA",rr[rr.KHMER=30]="KHMER",rr[rr.KOREAN_HANGUL_FORMAL=31]="KOREAN_HANGUL_FORMAL",rr[rr.KOREAN_HANJA_FORMAL=32]="KOREAN_HANJA_FORMAL",rr[rr.KOREAN_HANJA_INFORMAL=33]="KOREAN_HANJA_INFORMAL",rr[rr.LAO=34]="LAO",rr[rr.LOWER_ARMENIAN=35]="LOWER_ARMENIAN",rr[rr.MALAYALAM=36]="MALAYALAM",rr[rr.MONGOLIAN=37]="MONGOLIAN",rr[rr.MYANMAR=38]="MYANMAR",rr[rr.ORIYA=39]="ORIYA",rr[rr.PERSIAN=40]="PERSIAN",rr[rr.SIMP_CHINESE_FORMAL=41]="SIMP_CHINESE_FORMAL",rr[rr.SIMP_CHINESE_INFORMAL=42]="SIMP_CHINESE_INFORMAL",rr[rr.TAMIL=43]="TAMIL",rr[rr.TELUGU=44]="TELUGU",rr[rr.THAI=45]="THAI",rr[rr.TIBETAN=46]="TIBETAN",rr[rr.TRAD_CHINESE_FORMAL=47]="TRAD_CHINESE_FORMAL",rr[rr.TRAD_CHINESE_INFORMAL=48]="TRAD_CHINESE_INFORMAL",rr[rr.UPPER_ARMENIAN=49]="UPPER_ARMENIAN",rr[rr.DISCLOSURE_OPEN=50]="DISCLOSURE_OPEN";function Br(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:Ce.TOKEN_VALUE}}var sr,or,ir={name:"list-style-type",initialValue:"none",prefix:!(rr[rr.DISCLOSURE_CLOSED=51]="DISCLOSURE_CLOSED"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"disc":return tr.DISC;case"circle":return tr.CIRCLE;case"square":return tr.SQUARE;case"decimal":return tr.DECIMAL;case"cjk-decimal":return tr.CJK_DECIMAL;case"decimal-leading-zero":return tr.DECIMAL_LEADING_ZERO;case"lower-roman":return tr.LOWER_ROMAN;case"upper-roman":return tr.UPPER_ROMAN;case"lower-greek":return tr.LOWER_GREEK;case"lower-alpha":return tr.LOWER_ALPHA;case"upper-alpha":return tr.UPPER_ALPHA;case"arabic-indic":return tr.ARABIC_INDIC;case"armenian":return tr.ARMENIAN;case"bengali":return tr.BENGALI;case"cambodian":return tr.CAMBODIAN;case"cjk-earthly-branch":return tr.CJK_EARTHLY_BRANCH;case"cjk-heavenly-stem":return tr.CJK_HEAVENLY_STEM;case"cjk-ideographic":return tr.CJK_IDEOGRAPHIC;case"devanagari":return tr.DEVANAGARI;case"ethiopic-numeric":return tr.ETHIOPIC_NUMERIC;case"georgian":return tr.GEORGIAN;case"gujarati":return tr.GUJARATI;case"gurmukhi":return tr.GURMUKHI;case"hebrew":return tr.HEBREW;case"hiragana":return tr.HIRAGANA;case"hiragana-iroha":return tr.HIRAGANA_IROHA;case"japanese-formal":return tr.JAPANESE_FORMAL;case"japanese-informal":return tr.JAPANESE_INFORMAL;case"kannada":return tr.KANNADA;case"katakana":return tr.KATAKANA;case"katakana-iroha":return tr.KATAKANA_IROHA;case"khmer":return tr.KHMER;case"korean-hangul-formal":return tr.KOREAN_HANGUL_FORMAL;case"korean-hanja-formal":return tr.KOREAN_HANJA_FORMAL;case"korean-hanja-informal":return tr.KOREAN_HANJA_INFORMAL;case"lao":return tr.LAO;case"lower-armenian":return tr.LOWER_ARMENIAN;case"malayalam":return tr.MALAYALAM;case"mongolian":return tr.MONGOLIAN;case"myanmar":return tr.MYANMAR;case"oriya":return tr.ORIYA;case"persian":return tr.PERSIAN;case"simp-chinese-formal":return tr.SIMP_CHINESE_FORMAL;case"simp-chinese-informal":return tr.SIMP_CHINESE_INFORMAL;case"tamil":return tr.TAMIL;case"telugu":return tr.TELUGU;case"thai":return tr.THAI;case"tibetan":return tr.TIBETAN;case"trad-chinese-formal":return tr.TRAD_CHINESE_FORMAL;case"trad-chinese-informal":return tr.TRAD_CHINESE_INFORMAL;case"upper-armenian":return tr.UPPER_ARMENIAN;case"disclosure-open":return tr.DISCLOSURE_OPEN;case"disclosure-closed":return tr.DISCLOSURE_CLOSED;case"none":default:return tr.NONE}}},ar=Br("top"),cr=Br("right"),Qr=Br("bottom"),wr=Br("left");(or=sr||(sr={}))[or.VISIBLE=0]="VISIBLE",or[or.HIDDEN=1]="HIDDEN",or[or.SCROLL=2]="SCROLL";function ur(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:Ce.TYPE_VALUE,format:"length-percentage"}}var Ur,lr,Cr,gr,Er={name:"overflow",initialValue:"visible",prefix:!(or[or.AUTO=3]="AUTO"),type:Ce.LIST,parse:function(A){return A.filter(zA).map(function(A){switch(A.value){case"hidden":return sr.HIDDEN;case"scroll":return sr.SCROLL;case"auto":return sr.AUTO;case"visible":default:return sr.VISIBLE}})}},Fr={name:"overflow-wrap",initialValue:(lr=Ur||(Ur={})).NORMAL="normal",prefix:!(lr.BREAK_WORD="break-word"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"break-word":return Ur.BREAK_WORD;case"normal":default:return Ur.NORMAL}}},hr=ur("top"),Hr=ur("right"),dr=ur("bottom"),fr=ur("left");(gr=Cr||(Cr={}))[gr.LEFT=0]="LEFT",gr[gr.CENTER=1]="CENTER";var pr,Nr,Kr={name:"text-align",initialValue:"left",prefix:!(gr[gr.RIGHT=2]="RIGHT"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"right":return Cr.RIGHT;case"center":case"justify":return Cr.CENTER;case"left":default:return Cr.LEFT}}};(Nr=pr||(pr={}))[Nr.STATIC=0]="STATIC",Nr[Nr.RELATIVE=1]="RELATIVE",Nr[Nr.ABSOLUTE=2]="ABSOLUTE",Nr[Nr.FIXED=3]="FIXED";var Ir,Tr,mr={name:"position",initialValue:"static",prefix:!(Nr[Nr.STICKY=4]="STICKY"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"relative":return pr.RELATIVE;case"absolute":return pr.ABSOLUTE;case"fixed":return pr.FIXED;case"sticky":return pr.STICKY}return pr.STATIC}},Rr={name:"text-shadow",initialValue:"none",type:Ce.LIST,prefix:!1,parse:function(A){return 1===A.length&&JA(A[0],"none")?[]:WA(A).map(function(A){for(var e={color:He.TRANSPARENT,offsetX:se,offsetY:se,blur:se},t=0,r=0;r<A.length;r++){var n=A[r];YA(n)?(0===t?e.offsetX=n:1===t?e.offsetY=n:e.blur=n,t++):e.color=we(n)}return e})}};(Tr=Ir||(Ir={}))[Tr.NONE=0]="NONE",Tr[Tr.LOWERCASE=1]="LOWERCASE",Tr[Tr.UPPERCASE=2]="UPPERCASE";var Lr,vr,Or={name:"text-transform",initialValue:"none",prefix:!(Tr[Tr.CAPITALIZE=3]="CAPITALIZE"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"uppercase":return Ir.UPPERCASE;case"lowercase":return Ir.LOWERCASE;case"capitalize":return Ir.CAPITALIZE}return Ir.NONE}},Dr={name:"transform",initialValue:"none",prefix:!0,type:Ce.VALUE,parse:function(A){if(A.type===sA.IDENT_TOKEN&&"none"===A.value)return null;if(A.type!==sA.FUNCTION)return null;var e=br[A.name];if(void 0===e)throw new Error('Attempting to parse an unsupported transform function "'+A.name+'"');return e(A.values)}},br={matrix:function(A){var e=A.filter(function(A){return A.type===sA.NUMBER_TOKEN}).map(function(A){return A.number});return 6===e.length?e:null},matrix3d:function(A){var e=A.filter(function(A){return A.type===sA.NUMBER_TOKEN}).map(function(A){return A.number}),t=e[0],r=e[1],n=(e[2],e[3],e[4]),B=e[5],s=(e[6],e[7],e[8],e[9],e[10],e[11],e[12]),o=e[13];e[14],e[15];return 16===e.length?[t,r,n,B,s,o]:null}},Sr={type:sA.PERCENTAGE_TOKEN,number:50,flags:4},Mr=[Sr,Sr],yr={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:Ce.LIST,parse:function(A){var e=A.filter(qA);return 2!==e.length?Mr:[e[0],e[1]]}};(vr=Lr||(Lr={}))[vr.VISIBLE=0]="VISIBLE",vr[vr.HIDDEN=1]="HIDDEN";var _r,Pr,xr={name:"visible",initialValue:"none",prefix:!(vr[vr.COLLAPSE=2]="COLLAPSE"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"hidden":return Lr.HIDDEN;case"collapse":return Lr.COLLAPSE;case"visible":default:return Lr.VISIBLE}}};(Pr=_r||(_r={})).NORMAL="normal",Pr.BREAK_ALL="break-all";var Vr,zr,Xr={name:"word-break",initialValue:"normal",prefix:!(Pr.KEEP_ALL="keep-all"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"break-all":return _r.BREAK_ALL;case"keep-all":return _r.KEEP_ALL;case"normal":default:return _r.NORMAL}}},Jr={name:"z-index",initialValue:"auto",prefix:!1,type:Ce.VALUE,parse:function(A){if(A.type===sA.IDENT_TOKEN)return{auto:!0,order:0};if(VA(A))return{auto:!1,order:A.number};throw new Error("Invalid z-index number parsed")}},Gr={name:"opacity",initialValue:"1",type:Ce.VALUE,prefix:!1,parse:function(A){return VA(A)?A.number:1}},kr={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:Ce.TYPE_VALUE,format:"color"},Wr={name:"text-decoration-line",initialValue:"none",prefix:!1,type:Ce.LIST,parse:function(A){return A.filter(zA).map(function(A){switch(A.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(A){return 0!==A})}},Yr={name:"font-family",initialValue:"",prefix:!1,type:Ce.LIST,parse:function(A){return A.filter(qr).map(function(A){return A.value})}},qr=function(A){return A.type===sA.STRING_TOKEN||A.type===sA.IDENT_TOKEN},Zr={name:"font-size",initialValue:"0",prefix:!1,type:Ce.TYPE_VALUE,format:"length"},jr={name:"font-weight",initialValue:"normal",type:Ce.VALUE,prefix:!1,parse:function(A){if(VA(A))return A.number;if(zA(A))switch(A.value){case"bold":return 700;case"normal":default:return 400}return 400}},$r={name:"font-variant",initialValue:"none",type:Ce.LIST,prefix:!1,parse:function(A){return A.filter(zA).map(function(A){return A.value})}};(zr=Vr||(Vr={})).NORMAL="normal",zr.ITALIC="italic";function An(A,e){return 0!=(A&e)}function en(A,e,t){if(!A)return"";var r=A[Math.min(e,A.length-1)];return r?t?r.open:r.close:""}var tn={name:"font-style",initialValue:"normal",prefix:!(zr.OBLIQUE="oblique"),type:Ce.IDENT_VALUE,parse:function(A){switch(A){case"oblique":return Vr.OBLIQUE;case"italic":return Vr.ITALIC;case"normal":default:return Vr.NORMAL}}},rn={name:"content",initialValue:"none",type:Ce.LIST,prefix:!1,parse:function(A){if(0===A.length)return[];var e=A[0];return e.type===sA.IDENT_TOKEN&&"none"===e.value?[]:A}},nn={name:"counter-increment",initialValue:"none",prefix:!0,type:Ce.LIST,parse:function(A){if(0===A.length)return null;var e=A[0];if(e.type===sA.IDENT_TOKEN&&"none"===e.value)return null;for(var t=[],r=A.filter(GA),n=0;n<r.length;n++){var B=r[n],s=r[n+1];if(B.type===sA.IDENT_TOKEN){var o=s&&VA(s)?s.number:1;t.push({counter:B.value,increment:o})}}return t}},Bn={name:"counter-reset",initialValue:"none",prefix:!0,type:Ce.LIST,parse:function(A){if(0===A.length)return[];for(var e=[],t=A.filter(GA),r=0;r<t.length;r++){var n=t[r],B=t[r+1];if(zA(n)&&"none"!==n.value){var s=B&&VA(B)?B.number:0;e.push({counter:n.value,reset:s})}}return e}},sn={name:"quotes",initialValue:"none",prefix:!0,type:Ce.LIST,parse:function(A){if(0===A.length)return null;var e=A[0];if(e.type===sA.IDENT_TOKEN&&"none"===e.value)return null;var t=[],r=A.filter(XA);if(r.length%2!=0)return null;for(var n=0;n<r.length;n+=2){var B=r[n].value,s=r[n+1].value;t.push({open:B,close:s})}return t}},on={name:"box-shadow",initialValue:"none",type:Ce.LIST,prefix:!1,parse:function(A){return 1===A.length&&JA(A[0],"none")?[]:WA(A).map(function(A){for(var e={color:255,offsetX:se,offsetY:se,blur:se,spread:se,inset:!1},t=0,r=0;r<A.length;r++){var n=A[r];JA(n,"inset")?e.inset=!0:YA(n)?(0===t?e.offsetX=n:1===t?e.offsetY=n:2===t?e.blur=n:e.spread=n,t++):e.color=we(n)}return e})}},an=(cn.prototype.isVisible=function(){return 0<this.display&&0<this.opacity&&this.visibility===Lr.VISIBLE},cn.prototype.isTransparent=function(){return ee(this.backgroundColor)},cn.prototype.isTransformed=function(){return null!==this.transform},cn.prototype.isPositioned=function(){return this.position!==pr.STATIC},cn.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},cn.prototype.isFloating=function(){return this.float!==Dt.NONE},cn.prototype.isInlineLevel=function(){return An(this.display,4)||An(this.display,33554432)||An(this.display,268435456)||An(this.display,536870912)||An(this.display,67108864)||An(this.display,134217728)},cn);function cn(A){this.backgroundClip=Un(me,A.backgroundClip),this.backgroundColor=Un(Re,A.backgroundColor),this.backgroundImage=Un(Qt,A.backgroundImage),this.backgroundOrigin=Un(wt,A.backgroundOrigin),this.backgroundPosition=Un(ut,A.backgroundPosition),this.backgroundRepeat=Un(Ct,A.backgroundRepeat),this.backgroundSize=Un(dt,A.backgroundSize),this.borderTopColor=Un(pt,A.borderTopColor),this.borderRightColor=Un(Nt,A.borderRightColor),this.borderBottomColor=Un(Kt,A.borderBottomColor),this.borderLeftColor=Un(It,A.borderLeftColor),this.borderTopLeftRadius=Un(Tt,A.borderTopLeftRadius),this.borderTopRightRadius=Un(mt,A.borderTopRightRadius),this.borderBottomRightRadius=Un(Rt,A.borderBottomRightRadius),this.borderBottomLeftRadius=Un(Lt,A.borderBottomLeftRadius),this.borderTopStyle=Un(St,A.borderTopStyle),this.borderRightStyle=Un(Mt,A.borderRightStyle),this.borderBottomStyle=Un(yt,A.borderBottomStyle),this.borderLeftStyle=Un(_t,A.borderLeftStyle),this.borderTopWidth=Un(Pt,A.borderTopWidth),this.borderRightWidth=Un(xt,A.borderRightWidth),this.borderBottomWidth=Un(Vt,A.borderBottomWidth),this.borderLeftWidth=Un(zt,A.borderLeftWidth),this.boxShadow=Un(on,A.boxShadow),this.color=Un(Xt,A.color),this.display=Un(Jt,A.display),this.float=Un(Zt,A.cssFloat),this.fontFamily=Un(Yr,A.fontFamily),this.fontSize=Un(Zr,A.fontSize),this.fontStyle=Un(tn,A.fontStyle),this.fontVariant=Un($r,A.fontVariant),this.fontWeight=Un(jr,A.fontWeight),this.letterSpacing=Un(jt,A.letterSpacing),this.lineBreak=Un($t,A.lineBreak),this.lineHeight=Un(Ar,A.lineHeight),this.listStyleImage=Un(er,A.listStyleImage),this.listStylePosition=Un(nr,A.listStylePosition),this.listStyleType=Un(ir,A.listStyleType),this.marginTop=Un(ar,A.marginTop),this.marginRight=Un(cr,A.marginRight),this.marginBottom=Un(Qr,A.marginBottom),this.marginLeft=Un(wr,A.marginLeft),this.opacity=Un(Gr,A.opacity);var e=Un(Er,A.overflow);this.overflowX=e[0],this.overflowY=e[1<e.length?1:0],this.overflowWrap=Un(Fr,A.overflowWrap),this.paddingTop=Un(hr,A.paddingTop),this.paddingRight=Un(Hr,A.paddingRight),this.paddingBottom=Un(dr,A.paddingBottom),this.paddingLeft=Un(fr,A.paddingLeft),this.position=Un(mr,A.position),this.textAlign=Un(Kr,A.textAlign),this.textDecorationColor=Un(kr,A.textDecorationColor||A.color),this.textDecorationLine=Un(Wr,A.textDecorationLine),this.textShadow=Un(Rr,A.textShadow),this.textTransform=Un(Or,A.textTransform),this.transform=Un(Dr,A.transform),this.transformOrigin=Un(yr,A.transformOrigin),this.visibility=Un(xr,A.visibility),this.wordBreak=Un(Xr,A.wordBreak),this.zIndex=Un(Jr,A.zIndex)}var Qn,wn=function(A){this.content=Un(rn,A.content),this.quotes=Un(sn,A.quotes)},un=function(A){this.counterIncrement=Un(nn,A.counterIncrement),this.counterReset=Un(Bn,A.counterReset)},Un=function(A,e){var t=new MA,r=null!=e?e.toString():A.initialValue;t.write(r);var n=new _A(t.read());switch(A.type){case Ce.IDENT_VALUE:var B=n.parseComponentValue();return A.parse(zA(B)?B.value:A.initialValue);case Ce.VALUE:return A.parse(n.parseComponentValue());case Ce.LIST:return A.parse(n.parseComponentValues());case Ce.TOKEN_VALUE:return n.parseComponentValue();case Ce.TYPE_VALUE:switch(A.format){case"angle":return ce(n.parseComponentValue());case"color":return we(n.parseComponentValue());case"image":return ot(n.parseComponentValue());case"length":var s=n.parseComponentValue();return YA(s)?s:se;case"length-percentage":var o=n.parseComponentValue();return qA(o)?o:se}}throw new Error("Attempting to parse unsupported css format type "+A.format)},ln=function(A){this.styles=new an(window.getComputedStyle(A,null)),this.textNodes=[],this.elements=[],null!==this.styles.transform&&uB(A)&&(A.style.transform="none"),this.bounds=T(A),this.flags=0},Cn=function(A,e){this.text=A,this.bounds=e},gn=function(A){var e=A.ownerDocument;if(e){var t=e.createElement("html2canvaswrapper");t.appendChild(A.cloneNode(!0));var r=A.parentNode;if(r){r.replaceChild(t,A);var n=T(t);return t.firstChild&&r.replaceChild(t.firstChild,t),n}}return new I(0,0,0,0)},En=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),I.fromClientRect(n.getBoundingClientRect())},Fn=function(A,e){return 0!==e.letterSpacing?c(A).map(function(A){return l(A)}):hn(A,e)},hn=function(A,e){for(var t,r=function(A,e){var t=c(A),r=u(t,e),n=r[0],B=r[1],s=r[2],o=t.length,i=0,a=0;return{next:function(){if(o<=a)return{done:!0,value:null};for(var A=Y;a<o&&(A=w(t,B,n,++a,s))===Y;);if(A===Y&&a!==o)return{done:!0,value:null};var e=new nA(t,A,i,a);return i=a,{value:e,done:!1}}}}(A,{lineBreak:e.lineBreak,wordBreak:e.overflowWrap===Ur.BREAK_WORD?"break-word":e.wordBreak}),n=[];!(t=r.next()).done;)t.value&&n.push(t.value.slice());return n},Hn=function(A,e){this.text=dn(A.data,e.textTransform),this.textBounds=function(A,t,r){var e=Fn(A,t),n=[],B=0;return e.forEach(function(A){if(t.textDecorationLine.length||0<A.trim().length)if(Oe.SUPPORT_RANGE_BOUNDS)n.push(new Cn(A,En(r,B,A.length)));else{var e=r.splitText(A.length);n.push(new Cn(A,gn(r))),r=e}else Oe.SUPPORT_RANGE_BOUNDS||(r=r.splitText(A.length));B+=A.length}),n}(this.text,e,A)},dn=function(A,e){switch(e){case Ir.LOWERCASE:return A.toLowerCase();case Ir.CAPITALIZE:return A.replace(fn,pn);case Ir.UPPERCASE:return A.toUpperCase();default:return A}},fn=/(^|\s|:|-|\(|\))([a-z])/g,pn=function(A,e,t){return 0<A.length?e+t.toUpperCase():A},Nn=(A(Kn,Qn=ln),Kn);function Kn(A){var e=Qn.call(this,A)||this;return e.src=A.currentSrc||A.src,e.intrinsicWidth=A.naturalWidth,e.intrinsicHeight=A.naturalHeight,Se.getInstance().addImage(e.src),e}var In,Tn=(A(mn,In=ln),mn);function mn(A){var e=In.call(this,A)||this;return e.canvas=A,e.intrinsicWidth=A.width,e.intrinsicHeight=A.height,e}var Rn,Ln=(A(vn,Rn=ln),vn);function vn(A){var e=Rn.call(this,A)||this,t=new XMLSerializer;return e.svg="data:image/svg+xml,"+encodeURIComponent(t.serializeToString(A)),e.intrinsicWidth=A.width.baseVal.value,e.intrinsicHeight=A.height.baseVal.value,Se.getInstance().addImage(e.svg),e}var On,Dn=(A(bn,On=ln),bn);function bn(A){var e=On.call(this,A)||this;return e.value=A.value,e}var Sn,Mn=(A(yn,Sn=ln),yn);function yn(A){var e=Sn.call(this,A)||this;return e.start=A.start,e.reversed="boolean"==typeof A.reversed&&!0===A.reversed,e}var _n,Pn=[{type:sA.DIMENSION_TOKEN,flags:0,unit:"px",number:3}],xn=[{type:sA.PERCENTAGE_TOKEN,flags:0,number:50}],Vn="checkbox",zn="radio",Xn="password",Jn=707406591,Gn=(A(kn,_n=ln),kn);function kn(A){var e=_n.call(this,A)||this;switch(e.type=A.type.toLowerCase(),e.checked=A.checked,e.value=function(A){var e=A.type===Xn?new Array(A.value.length+1).join("•"):A.value;return 0===e.length?A.placeholder||"":e}(A),e.type!==Vn&&e.type!==zn||(e.styles.backgroundColor=3739148031,e.styles.borderTopColor=e.styles.borderRightColor=e.styles.borderBottomColor=e.styles.borderLeftColor=2779096575,e.styles.borderTopWidth=e.styles.borderRightWidth=e.styles.borderBottomWidth=e.styles.borderLeftWidth=1,e.styles.borderTopStyle=e.styles.borderRightStyle=e.styles.borderBottomStyle=e.styles.borderLeftStyle=ht.SOLID,e.styles.backgroundClip=[Ee.BORDER_BOX],e.styles.backgroundOrigin=[0],e.bounds=function(A){return A.width>A.height?new I(A.left+(A.width-A.height)/2,A.top,A.height,A.height):A.width<A.height?new I(A.left,A.top+(A.height-A.width)/2,A.width,A.width):A}(e.bounds)),e.type){case Vn:e.styles.borderTopRightRadius=e.styles.borderTopLeftRadius=e.styles.borderBottomRightRadius=e.styles.borderBottomLeftRadius=Pn;break;case zn:e.styles.borderTopRightRadius=e.styles.borderTopLeftRadius=e.styles.borderBottomRightRadius=e.styles.borderBottomLeftRadius=xn}return e}var Wn,Yn=(A(qn,Wn=ln),qn);function qn(A){var e=Wn.call(this,A)||this,t=A.options[A.selectedIndex||0];return e.value=t&&t.text||"",e}var Zn,jn=(A($n,Zn=ln),$n);function $n(A){var e=Zn.call(this,A)||this;return e.value=A.value,e}function AB(A){return we(_A.create(A).parseComponentValue())}var eB,tB=(A(rB,eB=ln),rB);function rB(A){var e=eB.call(this,A)||this;e.src=A.src,e.width=parseInt(A.width,10)||0,e.height=parseInt(A.height,10)||0,e.backgroundColor=e.styles.backgroundColor;try{if(A.contentWindow&&A.contentWindow.document&&A.contentWindow.document.documentElement){e.tree=iB(A.contentWindow.document.documentElement);var t=A.contentWindow.document.documentElement?AB(getComputedStyle(A.contentWindow.document.documentElement).backgroundColor):He.TRANSPARENT,r=A.contentWindow.document.body?AB(getComputedStyle(A.contentWindow.document.body).backgroundColor):He.TRANSPARENT;e.backgroundColor=ee(t)?ee(r)?e.styles.backgroundColor:r:t}}catch(A){}return e}function nB(A){return"STYLE"===A.tagName}var BB=["OL","UL","MENU"],sB=function(A,e,t){for(var r=A.firstChild,n=void 0;r;r=n)if(n=r.nextSibling,QB(r)&&0<r.data.trim().length)e.textNodes.push(new Hn(r,e.styles));else if(wB(r)){var B=oB(r);B.styles.isVisible()&&(aB(r,B,t)?B.flags|=4:cB(B.styles)&&(B.flags|=2),-1!==BB.indexOf(r.tagName)&&(B.flags|=8),e.elements.push(B),dB(r)||gB(r)||fB(r)||sB(r,B,t))}},oB=function(A){return hB(A)?new Nn(A):FB(A)?new Tn(A):gB(A)?new Ln(A):UB(A)?new Dn(A):lB(A)?new Mn(A):CB(A)?new Gn(A):fB(A)?new Yn(A):dB(A)?new jn(A):HB(A)?new tB(A):new ln(A)},iB=function(A){var e=oB(A);return e.flags|=4,sB(A,e,e),e},aB=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||EB(A)&&t.styles.isTransparent()},cB=function(A){return A.isPositioned()||A.isFloating()},QB=function(A){return A.nodeType===Node.TEXT_NODE},wB=function(A){return A.nodeType===Node.ELEMENT_NODE},uB=function(A){return void 0!==A.style},UB=function(A){return"LI"===A.tagName},lB=function(A){return"OL"===A.tagName},CB=function(A){return"INPUT"===A.tagName},gB=function(A){return"svg"===A.tagName},EB=function(A){return"BODY"===A.tagName},FB=function(A){return"CANVAS"===A.tagName},hB=function(A){return"IMG"===A.tagName},HB=function(A){return"IFRAME"===A.tagName},dB=function(A){return"TEXTAREA"===A.tagName},fB=function(A){return"SELECT"===A.tagName},pB=(NB.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},NB.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},NB.prototype.pop=function(A){var e=this;A.forEach(function(A){return e.counters[A].pop()})},NB.prototype.parse=function(A){var t=this,e=A.counterIncrement,r=A.counterReset,n=!0;null!==e&&e.forEach(function(A){var e=t.counters[A.counter];e&&0!==A.increment&&(n=!1,e[Math.max(0,e.length-1)]+=A.increment)});var B=[];return n&&r.forEach(function(A){var e=t.counters[A.counter];B.push(A.counter),e||(e=t.counters[A.counter]=[]),e.push(A.reset)}),B},NB);function NB(){this.counters={}}function KB(r,A,e,n,t,B){return r<A||e<r?yB(r,t,0<B.length):n.integers.reduce(function(A,e,t){for(;e<=r;)r-=e,A+=n.values[t];return A},"")+B}function IB(A,e,t,r){for(var n="";t||A--,n=r(A)+n,e<=(A/=e)*e;);return n}function TB(A,e,t,r,n){var B=t-e+1;return(A<0?"-":"")+(IB(Math.abs(A),B,r,function(A){return l(Math.floor(A%B)+e)})+n)}function mB(A,e,t){void 0===t&&(t=". ");var r=e.length;return IB(Math.abs(A),r,!1,function(A){return e[Math.floor(A%r)]})+t}function RB(A,e,t,r,n,B){if(A<-9999||9999<A)return yB(A,tr.CJK_DECIMAL,0<n.length);var s=Math.abs(A),o=n;if(0===s)return e[0]+o;for(var i=0;0<s&&i<=4;i++){var a=s%10;0==a&&An(B,1)&&""!==o?o=e[a]+o:1<a||1==a&&0===i||1==a&&1===i&&An(B,2)||1==a&&1===i&&An(B,4)&&100<A||1==a&&1<i&&An(B,8)?o=e[a]+(0<i?t[i-1]:"")+o:1==a&&0<i&&(o=t[i-1]+o),s=Math.floor(s/10)}return(A<0?r:"")+o}var LB,vB,OB={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},DB={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},bB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},SB={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},MB="마이너스",yB=function(A,e,t){var r=t?". ":"",n=t?"、":"",B=t?", ":"",s=t?" ":"";switch(e){case tr.DISC:return"•"+s;case tr.CIRCLE:return"◦"+s;case tr.SQUARE:return"◾"+s;case tr.DECIMAL_LEADING_ZERO:var o=TB(A,48,57,!0,r);return o.length<4?"0"+o:o;case tr.CJK_DECIMAL:return mB(A,"〇一二三四五六七八九",n);case tr.LOWER_ROMAN:return KB(A,1,3999,OB,tr.DECIMAL,r).toLowerCase();case tr.UPPER_ROMAN:return KB(A,1,3999,OB,tr.DECIMAL,r);case tr.LOWER_GREEK:return TB(A,945,969,!1,r);case tr.LOWER_ALPHA:return TB(A,97,122,!1,r);case tr.UPPER_ALPHA:return TB(A,65,90,!1,r);case tr.ARABIC_INDIC:return TB(A,1632,1641,!0,r);case tr.ARMENIAN:case tr.UPPER_ARMENIAN:return KB(A,1,9999,DB,tr.DECIMAL,r);case tr.LOWER_ARMENIAN:return KB(A,1,9999,DB,tr.DECIMAL,r).toLowerCase();case tr.BENGALI:return TB(A,2534,2543,!0,r);case tr.CAMBODIAN:case tr.KHMER:return TB(A,6112,6121,!0,r);case tr.CJK_EARTHLY_BRANCH:return mB(A,"子丑寅卯辰巳午未申酉戌亥",n);case tr.CJK_HEAVENLY_STEM:return mB(A,"甲乙丙丁戊己庚辛壬癸",n);case tr.CJK_IDEOGRAPHIC:case tr.TRAD_CHINESE_INFORMAL:return RB(A,"零一二三四五六七八九","十百千萬","負",n,14);case tr.TRAD_CHINESE_FORMAL:return RB(A,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",n,15);case tr.SIMP_CHINESE_INFORMAL:return RB(A,"零一二三四五六七八九","十百千萬","负",n,14);case tr.SIMP_CHINESE_FORMAL:return RB(A,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",n,15);case tr.JAPANESE_INFORMAL:return RB(A,"〇一二三四五六七八九","十百千万","マイナス",n,0);case tr.JAPANESE_FORMAL:return RB(A,"零壱弐参四伍六七八九","拾百千万","マイナス",n,7);case tr.KOREAN_HANGUL_FORMAL:return RB(A,"영일이삼사오육칠팔구","십백천만",MB,B,7);case tr.KOREAN_HANJA_INFORMAL:return RB(A,"零一二三四五六七八九","十百千萬",MB,B,0);case tr.KOREAN_HANJA_FORMAL:return RB(A,"零壹貳參四五六七八九","拾百千",MB,B,7);case tr.DEVANAGARI:return TB(A,2406,2415,!0,r);case tr.GEORGIAN:return KB(A,1,19999,SB,tr.DECIMAL,r);case tr.GUJARATI:return TB(A,2790,2799,!0,r);case tr.GURMUKHI:return TB(A,2662,2671,!0,r);case tr.HEBREW:return KB(A,1,10999,bB,tr.DECIMAL,r);case tr.HIRAGANA:return mB(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case tr.HIRAGANA_IROHA:return mB(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case tr.KANNADA:return TB(A,3302,3311,!0,r);case tr.KATAKANA:return mB(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case tr.KATAKANA_IROHA:return mB(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case tr.LAO:return TB(A,3792,3801,!0,r);case tr.MONGOLIAN:return TB(A,6160,6169,!0,r);case tr.MYANMAR:return TB(A,4160,4169,!0,r);case tr.ORIYA:return TB(A,2918,2927,!0,r);case tr.PERSIAN:return TB(A,1776,1785,!0,r);case tr.TAMIL:return TB(A,3046,3055,!0,r);case tr.TELUGU:return TB(A,3174,3183,!0,r);case tr.THAI:return TB(A,3664,3673,!0,r);case tr.TIBETAN:return TB(A,3872,3881,!0,r);case tr.DECIMAL:default:return TB(A,48,57,!0,r)}},_B="data-html2canvas-ignore",PB=(xB.prototype.toIFrame=function(A,t){var e=this,r=XB(A,t);if(!r.contentWindow)return Promise.reject("Unable to find iframe window");var n=A.defaultView.pageXOffset,B=A.defaultView.pageYOffset,s=r.contentWindow,o=s.document,i=JB(r).then(function(){return a(e,void 0,void 0,function(){var e;return S(this,function(A){switch(A.label){case 0:return this.scrolledElements.forEach(YB),s&&(s.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||s.scrollY===t.top&&s.scrollX===t.left||(o.documentElement.style.top=-t.top+"px",o.documentElement.style.left=-t.left+"px",o.documentElement.style.position="absolute")),e=this.options.onclone,void 0===this.clonedReferenceElement?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:o.fonts&&o.fonts.ready?[4,o.fonts.ready]:[3,2];case 1:A.sent(),A.label=2;case 2:return"function"==typeof e?[2,Promise.resolve().then(function(){return e(o)}).then(function(){return r})]:[2,r]}})})});return o.open(),o.write(kB(document.doctype)+"<html></html>"),WB(this.referenceElement.ownerDocument,n,B),o.replaceChild(o.adoptNode(this.documentElement),o.documentElement),o.close(),i},xB.prototype.createElementClone=function(A){return FB(A)?this.createCanvasClone(A):nB(A)?this.createStyleClone(A):A.cloneNode(!1)},xB.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce(function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A},""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(A){if(De.getInstance(this.options.id).error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},xB.prototype.createCanvasClone=function(A){if(this.options.inlineImages&&A.ownerDocument){var e=A.ownerDocument.createElement("img");try{return e.src=A.toDataURL(),e}catch(A){De.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted")}}var t=A.cloneNode(!1);try{t.width=A.width,t.height=A.height;var r=A.getContext("2d"),n=t.getContext("2d");return n&&(r?n.putImageData(r.getImageData(0,0,A.width,A.height),0,0):n.drawImage(A,0,0)),t}catch(A){}return t},xB.prototype.cloneNode=function(A){if(QB(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var e=A.ownerDocument.defaultView;if(uB(A)&&e){var t=this.createElementClone(A),r=e.getComputedStyle(A),n=e.getComputedStyle(A,":before"),B=e.getComputedStyle(A,":after");this.referenceElement===A&&(this.clonedReferenceElement=t),EB(t)&&$B(t);for(var s=this.counters.parse(new un(r)),o=this.resolvePseudoContent(A,t,n,LB.BEFORE),i=A.firstChild;i;i=i.nextSibling)wB(i)&&("SCRIPT"===i.tagName||i.hasAttribute(_B)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(i))||this.options.copyStyles&&wB(i)&&nB(i)||t.appendChild(this.cloneNode(i));o&&t.insertBefore(o,t.firstChild);var a=this.resolvePseudoContent(A,t,B,LB.AFTER);return a&&t.appendChild(a),this.counters.pop(s),r&&this.options.copyStyles&&!HB(A)&&GB(r,t),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([t,A.scrollLeft,A.scrollTop]),(dB(A)||fB(A))&&(dB(t)||fB(t))&&(t.value=A.value),t}return A.cloneNode(!1)},xB.prototype.resolvePseudoContent=function(U,A,e,t){var l=this;if(e){var r=e.content,C=A.ownerDocument;if(C&&r&&"none"!==r&&"-moz-alt-content"!==r&&"none"!==e.display){this.counters.parse(new un(e));var g=new wn(e),E=C.createElement("html2canvaspseudoelement");GB(e,E),g.content.forEach(function(A){if(A.type===sA.STRING_TOKEN)E.appendChild(C.createTextNode(A.value));else if(A.type===sA.URL_TOKEN){var e=C.createElement("img");e.src=A.value,e.style.opacity="1",E.appendChild(e)}else if(A.type===sA.FUNCTION){if("attr"===A.name){var t=A.values.filter(zA);t.length&&E.appendChild(C.createTextNode(U.getAttribute(t[0].value)||""))}else if("counter"===A.name){var r=A.values.filter(kA),n=r[0],B=r[1];if(n&&zA(n)){var s=l.counters.getCounterValue(n.value),o=B&&zA(B)?ir.parse(B.value):tr.DECIMAL;E.appendChild(C.createTextNode(yB(s,o,!1)))}}else if("counters"===A.name){var i=A.values.filter(kA),a=(n=i[0],i[1]);if(B=i[2],n&&zA(n)){var c=l.counters.getCounterValues(n.value),Q=B&&zA(B)?ir.parse(B.value):tr.DECIMAL,w=a&&a.type===sA.STRING_TOKEN?a.value:"",u=c.map(function(A){return yB(A,Q,!1)}).join(w);E.appendChild(C.createTextNode(u))}}}else if(A.type===sA.IDENT_TOKEN)switch(A.value){case"open-quote":E.appendChild(C.createTextNode(en(g.quotes,l.quoteDepth++,!0)));break;case"close-quote":E.appendChild(C.createTextNode(en(g.quotes,--l.quoteDepth,!1)));break;default:E.appendChild(C.createTextNode(A.value))}}),E.className=qB+" "+ZB;var n=t===LB.BEFORE?" "+qB:" "+ZB;return function(A){return"object"==typeof A.className}(A)?A.className.baseValue+=n:A.className+=n,E}}},xB.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},xB);function xB(A,e){if(this.options=e,this.scrolledElements=[],this.referenceElement=A,this.counters=new pB,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement)}(vB=LB||(LB={}))[vB.BEFORE=0]="BEFORE",vB[vB.AFTER=1]="AFTER";var VB,zB,XB=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(_B,"true"),A.body.appendChild(t),t},JB=function(n){return new Promise(function(e,A){var t=n.contentWindow;if(!t)return A("No window assigned for iframe");var r=t.document;t.onload=n.onload=r.onreadystatechange=function(){t.onload=n.onload=r.onreadystatechange=null;var A=setInterval(function(){0<r.body.childNodes.length&&"complete"===r.readyState&&(clearInterval(A),e(n))},50)}})},GB=function(A,e){for(var t=A.length-1;0<=t;t--){var r=A.item(t);"content"!==r&&e.style.setProperty(r,A.getPropertyValue(r))}return e},kB=function(A){var e="";return A&&(e+="<!DOCTYPE ",A.name&&(e+=A.name),A.internalSubset&&(e+=A.internalSubset),A.publicId&&(e+='"'+A.publicId+'"'),A.systemId&&(e+='"'+A.systemId+'"'),e+=">"),e},WB=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},YB=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},qB="___html2canvas___pseudoelement_before",ZB="___html2canvas___pseudoelement_after",jB='{\n    content: "" !important;\n    display: none !important;\n}',$B=function(A){As(A,"."+qB+":before"+jB+"\n         ."+ZB+":after"+jB)},As=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}};(zB=VB||(VB={}))[zB.VECTOR=0]="VECTOR",zB[zB.BEZIER_CURVE=1]="BEZIER_CURVE";function es(A,t){return A.length===t.length&&A.some(function(A,e){return A===t[e]})}var ts=(rs.prototype.add=function(A,e){return new rs(this.x+A,this.y+e)},rs);function rs(A,e){this.type=VB.VECTOR,this.x=A,this.y=e}function ns(A,e,t){return new ts(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)}var Bs=(ss.prototype.subdivide=function(A,e){var t=ns(this.start,this.startControl,A),r=ns(this.startControl,this.endControl,A),n=ns(this.endControl,this.end,A),B=ns(t,r,A),s=ns(r,n,A),o=ns(B,s,A);return e?new ss(this.start,t,B,o):new ss(o,s,n,this.end)},ss.prototype.add=function(A,e){return new ss(this.start.add(A,e),this.startControl.add(A,e),this.endControl.add(A,e),this.end.add(A,e))},ss.prototype.reverse=function(){return new ss(this.end,this.endControl,this.startControl,this.start)},ss);function ss(A,e,t,r){this.type=VB.BEZIER_CURVE,this.start=A,this.startControl=e,this.endControl=t,this.end=r}function os(A){return A.type===VB.BEZIER_CURVE}var is,as,cs=function(A){var e=A.styles,t=A.bounds,r=jA(e.borderTopLeftRadius,t.width,t.height),n=r[0],B=r[1],s=jA(e.borderTopRightRadius,t.width,t.height),o=s[0],i=s[1],a=jA(e.borderBottomRightRadius,t.width,t.height),c=a[0],Q=a[1],w=jA(e.borderBottomLeftRadius,t.width,t.height),u=w[0],U=w[1],l=[];l.push((n+o)/t.width),l.push((u+c)/t.width),l.push((B+U)/t.height),l.push((i+Q)/t.height);var C=Math.max.apply(Math,l);1<C&&(n/=C,B/=C,o/=C,i/=C,c/=C,Q/=C,u/=C,U/=C);var g=t.width-o,E=t.height-Q,F=t.width-c,h=t.height-U,H=e.borderTopWidth,d=e.borderRightWidth,f=e.borderBottomWidth,p=e.borderLeftWidth,N=ae(e.paddingTop,A.bounds.width),K=ae(e.paddingRight,A.bounds.width),I=ae(e.paddingBottom,A.bounds.width),T=ae(e.paddingLeft,A.bounds.width);this.topLeftBorderBox=0<n||0<B?us(t.left,t.top,n,B,is.TOP_LEFT):new ts(t.left,t.top),this.topRightBorderBox=0<o||0<i?us(t.left+g,t.top,o,i,is.TOP_RIGHT):new ts(t.left+t.width,t.top),this.bottomRightBorderBox=0<c||0<Q?us(t.left+F,t.top+E,c,Q,is.BOTTOM_RIGHT):new ts(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=0<u||0<U?us(t.left,t.top+h,u,U,is.BOTTOM_LEFT):new ts(t.left,t.top+t.height),this.topLeftPaddingBox=0<n||0<B?us(t.left+p,t.top+H,Math.max(0,n-p),Math.max(0,B-H),is.TOP_LEFT):new ts(t.left+p,t.top+H),this.topRightPaddingBox=0<o||0<i?us(t.left+Math.min(g,t.width+p),t.top+H,g>t.width+p?0:o-p,i-H,is.TOP_RIGHT):new ts(t.left+t.width-d,t.top+H),this.bottomRightPaddingBox=0<c||0<Q?us(t.left+Math.min(F,t.width-p),t.top+Math.min(E,t.height+H),Math.max(0,c-d),Q-f,is.BOTTOM_RIGHT):new ts(t.left+t.width-d,t.top+t.height-f),this.bottomLeftPaddingBox=0<u||0<U?us(t.left+p,t.top+h,Math.max(0,u-p),U-f,is.BOTTOM_LEFT):new ts(t.left+p,t.top+t.height-f),this.topLeftContentBox=0<n||0<B?us(t.left+p+T,t.top+H+N,Math.max(0,n-(p+T)),Math.max(0,B-(H+N)),is.TOP_LEFT):new ts(t.left+p+T,t.top+H+N),this.topRightContentBox=0<o||0<i?us(t.left+Math.min(g,t.width+p+T),t.top+H+N,g>t.width+p+T?0:o-p+T,i-(H+N),is.TOP_RIGHT):new ts(t.left+t.width-(d+K),t.top+H+N),this.bottomRightContentBox=0<c||0<Q?us(t.left+Math.min(F,t.width-(p+T)),t.top+Math.min(E,t.height+H+N),Math.max(0,c-(d+K)),Q-(f+I),is.BOTTOM_RIGHT):new ts(t.left+t.width-(d+K),t.top+t.height-(f+I)),this.bottomLeftContentBox=0<u||0<U?us(t.left+p+T,t.top+h,Math.max(0,u-(p+T)),U-(f+I),is.BOTTOM_LEFT):new ts(t.left+p+T,t.top+t.height-(f+I))};(as=is||(is={}))[as.TOP_LEFT=0]="TOP_LEFT",as[as.TOP_RIGHT=1]="TOP_RIGHT",as[as.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",as[as.BOTTOM_LEFT=3]="BOTTOM_LEFT";function Qs(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]}function ws(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]}var us=function(A,e,t,r,n){var B=(Math.sqrt(2)-1)/3*4,s=t*B,o=r*B,i=A+t,a=e+r;switch(n){case is.TOP_LEFT:return new Bs(new ts(A,a),new ts(A,a-o),new ts(i-s,e),new ts(i,e));case is.TOP_RIGHT:return new Bs(new ts(A,e),new ts(A+s,e),new ts(i,a-o),new ts(i,a));case is.BOTTOM_RIGHT:return new Bs(new ts(i,e),new ts(i,e+o),new ts(A+s,a),new ts(A,a));case is.BOTTOM_LEFT:default:return new Bs(new ts(i,a),new ts(i-s,a),new ts(A,e+o),new ts(A,e))}},Us=function(A,e,t){this.type=0,this.offsetX=A,this.offsetY=e,this.matrix=t,this.target=6},ls=function(A,e){this.type=1,this.target=e,this.path=A},Cs=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},gs=(Es.prototype.getParentEffects=function(){var A=this.effects.slice(0);if(this.container.styles.overflowX!==sr.VISIBLE){var e=Qs(this.curves),t=ws(this.curves);es(e,t)||A.push(new ls(t,6))}return A},Es);function Es(A,e){if(this.container=A,this.effects=e.slice(0),this.curves=new cs(A),null!==A.styles.transform){var t=A.bounds.left+A.styles.transformOrigin[0].number,r=A.bounds.top+A.styles.transformOrigin[1].number,n=A.styles.transform;this.effects.push(new Us(t,r,n))}if(A.styles.overflowX!==sr.VISIBLE){var B=Qs(this.curves),s=ws(this.curves);es(B,s)?this.effects.push(new ls(B,6)):(this.effects.push(new ls(B,2)),this.effects.push(new ls(s,4)))}}function Fs(A){var e=A.bounds,t=A.styles;return e.add(t.borderLeftWidth,t.borderTopWidth,-(t.borderRightWidth+t.borderLeftWidth),-(t.borderTopWidth+t.borderBottomWidth))}function hs(A){var e=A.styles,t=A.bounds,r=ae(e.paddingLeft,t.width),n=ae(e.paddingRight,t.width),B=ae(e.paddingTop,t.width),s=ae(e.paddingBottom,t.width);return t.add(r+e.borderLeftWidth,B+e.borderTopWidth,-(e.borderRightWidth+e.borderLeftWidth+r+n),-(e.borderTopWidth+e.borderBottomWidth+B+s))}function Hs(A,e,t){var r=function(A,e){return 0===A?e.bounds:2===A?hs(e):Fs(e)}(Ts(A.styles.backgroundOrigin,e),A),n=function(A,e){return A===Ee.BORDER_BOX?e.bounds:A===Ee.CONTENT_BOX?hs(e):Fs(e)}(Ts(A.styles.backgroundClip,e),A),B=Is(Ts(A.styles.backgroundSize,e),t,r),s=B[0],o=B[1],i=jA(Ts(A.styles.backgroundPosition,e),r.width-s,r.height-o);return[ms(Ts(A.styles.backgroundRepeat,e),i,B,r,n),Math.round(r.left+i[0]),Math.round(r.top+i[1]),s,o]}function ds(A){return zA(A)&&A.value===Ut.AUTO}function fs(A){return"number"==typeof A}var ps=function(c,Q,w,u){c.container.elements.forEach(function(A){var e=An(A.flags,4),t=An(A.flags,2),r=new gs(A,c.getParentEffects());An(A.styles.display,2048)&&u.push(r);var n=An(A.flags,8)?[]:u;if(e||t){var B=e||A.styles.isPositioned()?w:Q,s=new Cs(r);if(A.styles.isPositioned()||A.styles.opacity<1||A.styles.isTransformed()){var o=A.styles.zIndex.order;if(o<0){var i=0;B.negativeZIndex.some(function(A,e){return o>A.element.container.styles.zIndex.order?(i=e,!1):0<i}),B.negativeZIndex.splice(i,0,s)}else if(0<o){var a=0;B.positiveZIndex.some(function(A,e){return o>A.element.container.styles.zIndex.order?(a=e+1,!1):0<a}),B.positiveZIndex.splice(a,0,s)}else B.zeroOrAutoZIndexOrTransformedOrOpacity.push(s)}else A.styles.isFloating()?B.nonPositionedFloats.push(s):B.nonPositionedInlineLevel.push(s);ps(r,s,e?s:w,n)}else A.styles.isInlineLevel()?Q.inlineLevel.push(r):Q.nonInlineLevel.push(r),ps(r,Q,w,n);An(A.flags,8)&&Ns(A,n)})},Ns=function(A,e){for(var t=A instanceof Mn?A.start:1,r=A instanceof Mn&&A.reversed,n=0;n<e.length;n++){var B=e[n];B.container instanceof Dn&&"number"==typeof B.container.value&&0!==B.container.value&&(t=B.container.value),B.listValue=yB(t,B.container.styles.listStyleType,!0),t+=r?-1:1}},Ks=function(A,e,t,r){var n=[];return os(A)?n.push(A.subdivide(.5,!1)):n.push(A),os(t)?n.push(t.subdivide(.5,!0)):n.push(t),os(r)?n.push(r.subdivide(.5,!0).reverse()):n.push(r),os(e)?n.push(e.subdivide(.5,!1).reverse()):n.push(e),n},Is=function(A,e,t){var r=e[0],n=e[1],B=e[2],s=A[0],o=A[1];if(qA(s)&&o&&qA(o))return[ae(s,t.width),ae(o,t.height)];var i=fs(B);if(zA(s)&&(s.value===Ut.CONTAIN||s.value===Ut.COVER))return fs(B)?t.width/t.height<B!=(s.value===Ut.COVER)?[t.width,t.width/B]:[t.height*B,t.height]:[t.width,t.height];var a=fs(r),c=fs(n),Q=a||c;if(ds(s)&&(!o||ds(o)))return a&&c?[r,n]:i||Q?Q&&i?[a?r:n*B,c?n:r/B]:[a?r:t.width,c?n:t.height]:[t.width,t.height];if(i){var w=0,u=0;return qA(s)?w=ae(s,t.width):qA(o)&&(u=ae(o,t.height)),ds(s)?w=u*B:o&&!ds(o)||(u=w/B),[w,u]}var U=null,l=null;if(qA(s)?U=ae(s,t.width):o&&qA(o)&&(l=ae(o,t.height)),null===U||o&&!ds(o)||(l=a&&c?U/r*n:t.height),null!==l&&ds(s)&&(U=a&&c?l/n*r:t.width),null!==U&&null!==l)return[U,l];throw new Error("Unable to calculate background-size for element")},Ts=function(A,e){var t=A[e];return void 0===t?A[0]:t},ms=function(A,e,t,r,n){var B=e[0],s=e[1],o=t[0],i=t[1];switch(A){case it.REPEAT_X:return[new ts(Math.round(r.left),Math.round(r.top+s)),new ts(Math.round(r.left+r.width),Math.round(r.top+s)),new ts(Math.round(r.left+r.width),Math.round(i+r.top+s)),new ts(Math.round(r.left),Math.round(i+r.top+s))];case it.REPEAT_Y:return[new ts(Math.round(r.left+B),Math.round(r.top)),new ts(Math.round(r.left+B+o),Math.round(r.top)),new ts(Math.round(r.left+B+o),Math.round(r.height+r.top)),new ts(Math.round(r.left+B),Math.round(r.height+r.top))];case it.NO_REPEAT:return[new ts(Math.round(r.left+B),Math.round(r.top+s)),new ts(Math.round(r.left+B+o),Math.round(r.top+s)),new ts(Math.round(r.left+B+o),Math.round(r.top+s+i)),new ts(Math.round(r.left+B),Math.round(r.top+s+i))];default:return[new ts(Math.round(n.left),Math.round(n.top)),new ts(Math.round(n.left+n.width),Math.round(n.top)),new ts(Math.round(n.left+n.width),Math.round(n.height+n.top)),new ts(Math.round(n.left),Math.round(n.height+n.top))]}},Rs="Hidden Text",Ls=(vs.prototype.parseMetrics=function(A,e){var t=this._document.createElement("div"),r=this._document.createElement("img"),n=this._document.createElement("span"),B=this._document.body;t.style.visibility="hidden",t.style.fontFamily=A,t.style.fontSize=e,t.style.margin="0",t.style.padding="0",B.appendChild(t),r.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",r.width=1,r.height=1,r.style.margin="0",r.style.padding="0",r.style.verticalAlign="baseline",n.style.fontFamily=A,n.style.fontSize=e,n.style.margin="0",n.style.padding="0",n.appendChild(this._document.createTextNode(Rs)),t.appendChild(n),t.appendChild(r);var s=r.offsetTop-n.offsetTop+2;t.removeChild(n),t.appendChild(this._document.createTextNode(Rs)),t.style.lineHeight="normal",r.style.verticalAlign="super";var o=r.offsetTop-t.offsetTop+2;return B.removeChild(t),{baseline:s,middle:o}},vs.prototype.getMetrics=function(A,e){var t=A+" "+e;return void 0===this._data[t]&&(this._data[t]=this.parseMetrics(A,e)),this._data[t]},vs);function vs(A){this._data={},this._document=A}var Os=(Ds.prototype.applyEffects=function(A,e){for(var t=this;this._activeEffects.length;)this.popEffect();A.filter(function(A){return An(A.target,e)}).forEach(function(A){return t.applyEffect(A)})},Ds.prototype.applyEffect=function(A){this.ctx.save(),function(A){return 0===A.type}(A)&&(this.ctx.translate(A.offsetX,A.offsetY),this.ctx.transform(A.matrix[0],A.matrix[1],A.matrix[2],A.matrix[3],A.matrix[4],A.matrix[5]),this.ctx.translate(-A.offsetX,-A.offsetY)),function(A){return 1===A.type}(A)&&(this.path(A.path),this.ctx.clip()),this._activeEffects.push(A)},Ds.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},Ds.prototype.renderStack=function(t){return a(this,void 0,void 0,function(){var e;return S(this,function(A){switch(A.label){case 0:return(e=t.element.container.styles).isVisible()?(this.ctx.globalAlpha=e.opacity,[4,this.renderStackContent(t)]):[3,2];case 1:A.sent(),A.label=2;case 2:return[2]}})})},Ds.prototype.renderNode=function(e){return a(this,void 0,void 0,function(){return S(this,function(A){switch(A.label){case 0:return e.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(e)]:[3,3];case 1:return A.sent(),[4,this.renderNodeContent(e)];case 2:A.sent(),A.label=3;case 3:return[2]}})})},Ds.prototype.renderTextWithLetterSpacing=function(t,A){var r=this;0===A?this.ctx.fillText(t.text,t.bounds.left,t.bounds.top+t.bounds.height):c(t.text).map(function(A){return l(A)}).reduce(function(A,e){return r.ctx.fillText(e,A,t.bounds.top+t.bounds.height),A+r.ctx.measureText(e).width},t.bounds.left)},Ds.prototype.createFontStyle=function(A){var e=A.fontVariant.filter(function(A){return"normal"===A||"small-caps"===A}).join(""),t=A.fontFamily.join(", "),r=xA(A.fontSize)?""+A.fontSize.number+A.fontSize.unit:A.fontSize.number+"px";return[[A.fontStyle,e,A.fontWeight,r,t].join(" "),t,r]},Ds.prototype.renderTextNode=function(r,o){return a(this,void 0,void 0,function(){var e,t,n,B,s=this;return S(this,function(A){return e=this.createFontStyle(o),t=e[0],n=e[1],B=e[2],this.ctx.font=t,r.textBounds.forEach(function(r){s.ctx.fillStyle=te(o.color),s.renderTextWithLetterSpacing(r,o.letterSpacing);var A=o.textShadow;A.length&&r.text.trim().length&&(A.slice(0).reverse().forEach(function(A){s.ctx.shadowColor=te(A.color),s.ctx.shadowOffsetX=A.offsetX.number*s.options.scale,s.ctx.shadowOffsetY=A.offsetY.number*s.options.scale,s.ctx.shadowBlur=A.blur.number,s.ctx.fillText(r.text,r.bounds.left,r.bounds.top+r.bounds.height)}),s.ctx.shadowColor="",s.ctx.shadowOffsetX=0,s.ctx.shadowOffsetY=0,s.ctx.shadowBlur=0),o.textDecorationLine.length&&(s.ctx.fillStyle=te(o.textDecorationColor||o.color),o.textDecorationLine.forEach(function(A){switch(A){case 1:var e=s.fontMetrics.getMetrics(n,B).baseline;s.ctx.fillRect(r.bounds.left,Math.round(r.bounds.top+e),r.bounds.width,1);break;case 2:s.ctx.fillRect(r.bounds.left,Math.round(r.bounds.top),r.bounds.width,1);break;case 3:var t=s.fontMetrics.getMetrics(n,B).middle;s.ctx.fillRect(r.bounds.left,Math.ceil(r.bounds.top+t),r.bounds.width,1)}}))}),[2]})})},Ds.prototype.renderReplacedElement=function(A,e,t){if(t&&0<A.intrinsicWidth&&0<A.intrinsicHeight){var r=hs(A),n=ws(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},Ds.prototype.renderNodeContent=function(l){return a(this,void 0,void 0,function(){var e,t,r,n,B,s,o,i,a,c,Q,w,u,U;return S(this,function(A){switch(A.label){case 0:this.applyEffects(l.effects,4),e=l.container,t=l.curves,r=e.styles,n=0,B=e.textNodes,A.label=1;case 1:return n<B.length?(s=B[n],[4,this.renderTextNode(s,r)]):[3,4];case 2:A.sent(),A.label=3;case 3:return n++,[3,1];case 4:if(!(e instanceof Nn))return[3,8];A.label=5;case 5:return A.trys.push([5,7,,8]),[4,this.options.cache.match(e.src)];case 6:return w=A.sent(),this.renderReplacedElement(e,t,w),[3,8];case 7:return A.sent(),De.getInstance(this.options.id).error("Error loading image "+e.src),[3,8];case 8:if(e instanceof Tn&&this.renderReplacedElement(e,t,e.canvas),!(e instanceof Ln))return[3,12];A.label=9;case 9:return A.trys.push([9,11,,12]),[4,this.options.cache.match(e.svg)];case 10:return w=A.sent(),this.renderReplacedElement(e,t,w),[3,12];case 11:return A.sent(),De.getInstance(this.options.id).error("Error loading svg "+e.svg.substring(0,255)),[3,12];case 12:return e instanceof tB&&e.tree?[4,new Ds({id:this.options.id,scale:this.options.scale,backgroundColor:e.backgroundColor,x:0,y:0,scrollX:0,scrollY:0,width:e.width,height:e.height,cache:this.options.cache,windowWidth:e.width,windowHeight:e.height}).render(e.tree)]:[3,14];case 13:o=A.sent(),e.width&&e.height&&this.ctx.drawImage(o,0,0,e.width,e.height,e.bounds.left,e.bounds.top,e.bounds.width,e.bounds.height),A.label=14;case 14:if(e instanceof Gn&&(i=Math.min(e.bounds.width,e.bounds.height),e.type===Vn?e.checked&&(this.ctx.save(),this.path([new ts(e.bounds.left+.39363*i,e.bounds.top+.79*i),new ts(e.bounds.left+.16*i,e.bounds.top+.5549*i),new ts(e.bounds.left+.27347*i,e.bounds.top+.44071*i),new ts(e.bounds.left+.39694*i,e.bounds.top+.5649*i),new ts(e.bounds.left+.72983*i,e.bounds.top+.23*i),new ts(e.bounds.left+.84*i,e.bounds.top+.34085*i),new ts(e.bounds.left+.39363*i,e.bounds.top+.79*i)]),this.ctx.fillStyle=te(Jn),this.ctx.fill(),this.ctx.restore()):e.type===zn&&e.checked&&(this.ctx.save(),this.ctx.beginPath(),this.ctx.arc(e.bounds.left+i/2,e.bounds.top+i/2,i/4,0,2*Math.PI,!0),this.ctx.fillStyle=te(Jn),this.ctx.fill(),this.ctx.restore())),bs(e)&&e.value.length){switch(this.ctx.font=this.createFontStyle(r)[0],this.ctx.fillStyle=te(r.color),this.ctx.textBaseline="middle",this.ctx.textAlign=Ms(e.styles.textAlign),U=hs(e),a=0,e.styles.textAlign){case Cr.CENTER:a+=U.width/2;break;case Cr.RIGHT:a+=U.width}c=U.add(a,0,0,-U.height/2+1),this.ctx.save(),this.path([new ts(U.left,U.top),new ts(U.left+U.width,U.top),new ts(U.left+U.width,U.top+U.height),new ts(U.left,U.top+U.height)]),this.ctx.clip(),this.renderTextWithLetterSpacing(new Cn(e.value,c),r.letterSpacing),this.ctx.restore(),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"}if(!An(e.styles.display,2048))return[3,20];if(null===e.styles.listStyleImage)return[3,19];if((Q=e.styles.listStyleImage).type!==xe.URL)return[3,18];w=void 0,u=Q.url,A.label=15;case 15:return A.trys.push([15,17,,18]),[4,this.options.cache.match(u)];case 16:return w=A.sent(),this.ctx.drawImage(w,e.bounds.left-(w.width+10),e.bounds.top),[3,18];case 17:return A.sent(),De.getInstance(this.options.id).error("Error loading list-style-image "+u),[3,18];case 18:return[3,20];case 19:l.listValue&&e.styles.listStyleType!==tr.NONE&&(this.ctx.font=this.createFontStyle(r)[0],this.ctx.fillStyle=te(r.color),this.ctx.textBaseline="middle",this.ctx.textAlign="right",U=new I(e.bounds.left,e.bounds.top+ae(e.styles.paddingTop,e.bounds.width),e.bounds.width,function(A,e){return zA(A)&&"normal"===A.value?1.2*e:A.type===sA.NUMBER_TOKEN?e*A.number:qA(A)?ae(A,e):e}(r.lineHeight,r.fontSize.number)/2+1),this.renderTextWithLetterSpacing(new Cn(l.listValue,U),r.letterSpacing),this.ctx.textBaseline="bottom",this.ctx.textAlign="left"),A.label=20;case 20:return[2]}})})},Ds.prototype.renderStackContent=function(C){return a(this,void 0,void 0,function(){var e,t,r,n,B,s,o,i,a,c,Q,w,u,U,l;return S(this,function(A){switch(A.label){case 0:return[4,this.renderNodeBackgroundAndBorders(C.element)];case 1:A.sent(),e=0,t=C.negativeZIndex,A.label=2;case 2:return e<t.length?(l=t[e],[4,this.renderStack(l)]):[3,5];case 3:A.sent(),A.label=4;case 4:return e++,[3,2];case 5:return[4,this.renderNodeContent(C.element)];case 6:A.sent(),r=0,n=C.nonInlineLevel,A.label=7;case 7:return r<n.length?(l=n[r],[4,this.renderNode(l)]):[3,10];case 8:A.sent(),A.label=9;case 9:return r++,[3,7];case 10:B=0,s=C.nonPositionedFloats,A.label=11;case 11:return B<s.length?(l=s[B],[4,this.renderStack(l)]):[3,14];case 12:A.sent(),A.label=13;case 13:return B++,[3,11];case 14:o=0,i=C.nonPositionedInlineLevel,A.label=15;case 15:return o<i.length?(l=i[o],[4,this.renderStack(l)]):[3,18];case 16:A.sent(),A.label=17;case 17:return o++,[3,15];case 18:a=0,c=C.inlineLevel,A.label=19;case 19:return a<c.length?(l=c[a],[4,this.renderNode(l)]):[3,22];case 20:A.sent(),A.label=21;case 21:return a++,[3,19];case 22:Q=0,w=C.zeroOrAutoZIndexOrTransformedOrOpacity,A.label=23;case 23:return Q<w.length?(l=w[Q],[4,this.renderStack(l)]):[3,26];case 24:A.sent(),A.label=25;case 25:return Q++,[3,23];case 26:u=0,U=C.positiveZIndex,A.label=27;case 27:return u<U.length?(l=U[u],[4,this.renderStack(l)]):[3,30];case 28:A.sent(),A.label=29;case 29:return u++,[3,27];case 30:return[2]}})})},Ds.prototype.mask=function(A){this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.lineTo(this.canvas.width,0),this.ctx.lineTo(this.canvas.width,this.canvas.height),this.ctx.lineTo(0,this.canvas.height),this.ctx.lineTo(0,0),this.formatPath(A.slice(0).reverse()),this.ctx.closePath()},Ds.prototype.path=function(A){this.ctx.beginPath(),this.formatPath(A),this.ctx.closePath()},Ds.prototype.formatPath=function(A){var r=this;A.forEach(function(A,e){var t=os(A)?A.start:A;0===e?r.ctx.moveTo(t.x,t.y):r.ctx.lineTo(t.x,t.y),os(A)&&r.ctx.bezierCurveTo(A.startControl.x,A.startControl.y,A.endControl.x,A.endControl.y,A.end.x,A.end.y)})},Ds.prototype.renderRepeat=function(A,e,t,r){this.path(A),this.ctx.fillStyle=e,this.ctx.translate(t,r),this.ctx.fill(),this.ctx.translate(-t,-r)},Ds.prototype.resizeImage=function(A,e,t){if(A.width===e&&A.height===t)return A;var r=this.canvas.ownerDocument.createElement("canvas");return r.width=e,r.height=t,r.getContext("2d").drawImage(A,0,0,A.width,A.height,0,0,e,t),r},Ds.prototype.renderBackgroundImage=function(b){return a(this,void 0,void 0,function(){var O,e,D,t,r,n;return S(this,function(A){switch(A.label){case 0:O=b.styles.backgroundImage.length-1,e=function(e){var t,r,n,B,s,o,i,a,c,Q,w,u,U,l,C,g,E,F,h,H,d,f,p,N,K,I,T,m,R,L,v;return S(this,function(A){switch(A.label){case 0:if(e.type!==xe.URL)return[3,5];t=void 0,r=e.url,A.label=1;case 1:return A.trys.push([1,3,,4]),[4,D.options.cache.match(r)];case 2:return t=A.sent(),[3,4];case 3:return A.sent(),De.getInstance(D.options.id).error("Error loading background-image "+r),[3,4];case 4:return t&&(n=Hs(b,O,[t.width,t.height,t.width/t.height]),g=n[0],f=n[1],p=n[2],h=n[3],H=n[4],l=D.ctx.createPattern(D.resizeImage(t,h,H),"repeat"),D.renderRepeat(g,l,f,p)),[3,6];case 5:!function(A){return A.type===xe.LINEAR_GRADIENT}(e)?function(A){return A.type===xe.RADIAL_GRADIENT}(e)&&(C=Hs(b,O,[null,null,null]),g=C[0],E=C[1],F=C[2],h=C[3],H=C[4],d=0===e.position.length?[oe]:e.position,f=ae(d[0],h),p=ae(d[d.length-1],H),N=function(A,e,t,r,n){var B=0,s=0;switch(A.size){case Bt.CLOSEST_SIDE:A.shape===rt.CIRCLE?B=s=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===rt.ELLIPSE&&(B=Math.min(Math.abs(e),Math.abs(e-r)),s=Math.min(Math.abs(t),Math.abs(t-n)));break;case Bt.CLOSEST_CORNER:if(A.shape===rt.CIRCLE)B=s=Math.min(Ne(e,t),Ne(e,t-n),Ne(e-r,t),Ne(e-r,t-n));else if(A.shape===rt.ELLIPSE){var o=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),i=Ke(r,n,e,t,!0),a=i[0],c=i[1];s=o*(B=Ne(a-e,(c-t)/o))}break;case Bt.FARTHEST_SIDE:A.shape===rt.CIRCLE?B=s=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===rt.ELLIPSE&&(B=Math.max(Math.abs(e),Math.abs(e-r)),s=Math.max(Math.abs(t),Math.abs(t-n)));break;case Bt.FARTHEST_CORNER:if(A.shape===rt.CIRCLE)B=s=Math.max(Ne(e,t),Ne(e,t-n),Ne(e-r,t),Ne(e-r,t-n));else if(A.shape===rt.ELLIPSE){o=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var Q=Ke(r,n,e,t,!1);a=Q[0],c=Q[1],s=o*(B=Ne(a-e,(c-t)/o))}}return Array.isArray(A.size)&&(B=ae(A.size[0],r),s=2===A.size.length?ae(A.size[1],n):B),[B,s]}(e,f,p,h,H),K=N[0],I=N[1],0<K&&0<K&&(T=D.ctx.createRadialGradient(E+f,F+p,0,E+f,F+p,K),fe(e.stops,2*K).forEach(function(A){return T.addColorStop(A.stop,te(A.color))}),D.path(g),D.ctx.fillStyle=T,K!==I?(m=b.bounds.left+.5*b.bounds.width,R=b.bounds.top+.5*b.bounds.height,v=1/(L=I/K),D.ctx.save(),D.ctx.translate(m,R),D.ctx.transform(1,0,0,L,0,0),D.ctx.translate(-m,-R),D.ctx.fillRect(E,v*(F-R)+R,h,H*v),D.ctx.restore()):D.ctx.fill())):(B=Hs(b,O,[null,null,null]),g=B[0],f=B[1],p=B[2],h=B[3],H=B[4],s=pe(e.angle,h,H),o=s[0],i=s[1],a=s[2],c=s[3],Q=s[4],(w=document.createElement("canvas")).width=h,w.height=H,u=w.getContext("2d"),U=u.createLinearGradient(i,c,a,Q),fe(e.stops,o).forEach(function(A){return U.addColorStop(A.stop,te(A.color))}),u.fillStyle=U,u.fillRect(0,0,h,H),0<h&&0<H&&(l=D.ctx.createPattern(w,"repeat"),D.renderRepeat(g,l,f,p))),A.label=6;case 6:return O--,[2]}})},D=this,t=0,r=b.styles.backgroundImage.slice(0).reverse(),A.label=1;case 1:return t<r.length?(n=r[t],[5,e(n)]):[3,4];case 2:A.sent(),A.label=3;case 3:return t++,[3,1];case 4:return[2]}})})},Ds.prototype.renderBorder=function(e,t,r){return a(this,void 0,void 0,function(){return S(this,function(A){return this.path(function(A,e){switch(e){case 0:return Ks(A.topLeftBorderBox,A.topLeftPaddingBox,A.topRightBorderBox,A.topRightPaddingBox);case 1:return Ks(A.topRightBorderBox,A.topRightPaddingBox,A.bottomRightBorderBox,A.bottomRightPaddingBox);case 2:return Ks(A.bottomRightBorderBox,A.bottomRightPaddingBox,A.bottomLeftBorderBox,A.bottomLeftPaddingBox);case 3:default:return Ks(A.bottomLeftBorderBox,A.bottomLeftPaddingBox,A.topLeftBorderBox,A.topLeftPaddingBox)}}(r,t)),this.ctx.fillStyle=te(e),this.ctx.fill(),[2]})})},Ds.prototype.renderNodeBackgroundAndBorders=function(c){return a(this,void 0,void 0,function(){var e,t,r,n,B,s,o,i,a=this;return S(this,function(A){switch(A.label){case 0:return this.applyEffects(c.effects,2),e=c.container.styles,t=!ee(e.backgroundColor)||e.backgroundImage.length,r=[{style:e.borderTopStyle,color:e.borderTopColor},{style:e.borderRightStyle,color:e.borderRightColor},{style:e.borderBottomStyle,color:e.borderBottomColor},{style:e.borderLeftStyle,color:e.borderLeftColor}],n=Ss(Ts(e.backgroundClip,0),c.curves),t||e.boxShadow.length?(this.ctx.save(),this.path(n),this.ctx.clip(),ee(e.backgroundColor)||(this.ctx.fillStyle=te(e.backgroundColor),this.ctx.fill()),[4,this.renderBackgroundImage(c.container)]):[3,2];case 1:A.sent(),this.ctx.restore(),e.boxShadow.slice(0).reverse().forEach(function(A){a.ctx.save();var e=Qs(c.curves),t=A.inset?0:1e4,r=function(A,t,r,n,B){return A.map(function(A,e){switch(e){case 0:return A.add(t,r);case 1:return A.add(t+n,r);case 2:return A.add(t+n,r+B);case 3:return A.add(t,r+B)}return A})}(e,-t+(A.inset?1:-1)*A.spread.number,(A.inset?1:-1)*A.spread.number,A.spread.number*(A.inset?-2:2),A.spread.number*(A.inset?-2:2));A.inset?(a.path(e),a.ctx.clip(),a.mask(r)):(a.mask(e),a.ctx.clip(),a.path(r)),a.ctx.shadowOffsetX=A.offsetX.number+t,a.ctx.shadowOffsetY=A.offsetY.number,a.ctx.shadowColor=te(A.color),a.ctx.shadowBlur=A.blur.number,a.ctx.fillStyle=A.inset?te(A.color):"rgba(0,0,0,1)",a.ctx.fill(),a.ctx.restore()}),A.label=2;case 2:s=B=0,o=r,A.label=3;case 3:return s<o.length?(i=o[s]).style===ht.NONE||ee(i.color)?[3,5]:[4,this.renderBorder(i.color,B,c.curves)]:[3,7];case 4:A.sent(),A.label=5;case 5:B++,A.label=6;case 6:return s++,[3,3];case 7:return[2]}})})},Ds.prototype.render=function(t){return a(this,void 0,void 0,function(){var e;return S(this,function(A){switch(A.label){case 0:return this.options.backgroundColor&&(this.ctx.fillStyle=te(this.options.backgroundColor),this.ctx.fillRect(this.options.x-this.options.scrollX,this.options.y-this.options.scrollY,this.options.width,this.options.height)),e=function(A){var e=new gs(A,[]),t=new Cs(e),r=[];return ps(e,t,t,r),Ns(e.container,r),t}(t),[4,this.renderStack(e)];case 1:return A.sent(),this.applyEffects([],2),[2,this.canvas]}})})},Ds);function Ds(A){this._activeEffects=[],this.canvas=A.canvas?A.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),(this.options=A).canvas||(this.canvas.width=Math.floor(A.width*A.scale),this.canvas.height=Math.floor(A.height*A.scale),this.canvas.style.width=A.width+"px",this.canvas.style.height=A.height+"px"),this.fontMetrics=new Ls(document),this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-A.x+A.scrollX,-A.y+A.scrollY),this.ctx.textBaseline="bottom",this._activeEffects=[],De.getInstance(A.id).debug("Canvas renderer initialized ("+A.width+"x"+A.height+" at "+A.x+","+A.y+") with scale "+A.scale)}var bs=function(A){return A instanceof jn||(A instanceof Yn||A instanceof Gn&&A.type!==zn&&A.type!==Vn)},Ss=function(A,e){switch(A){case Ee.BORDER_BOX:return Qs(e);case Ee.CONTENT_BOX:return function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]}(e);case Ee.PADDING_BOX:default:return ws(e)}},Ms=function(A){switch(A){case Cr.CENTER:return"center";case Cr.RIGHT:return"right";case Cr.LEFT:default:return"left"}},ys=(_s.prototype.render=function(r){return a(this,void 0,void 0,function(){var e,t;return S(this,function(A){switch(A.label){case 0:return e=Le(Math.max(this.options.windowWidth,this.options.width)*this.options.scale,Math.max(this.options.windowHeight,this.options.height)*this.options.scale,this.options.scrollX*this.options.scale,this.options.scrollY*this.options.scale,r),[4,xs(e)];case 1:return t=A.sent(),this.options.backgroundColor&&(this.ctx.fillStyle=te(this.options.backgroundColor),this.ctx.fillRect(0,0,this.options.width*this.options.scale,this.options.height*this.options.scale)),this.ctx.drawImage(t,-this.options.x*this.options.scale,-this.options.y*this.options.scale),[2,this.canvas]}})})},_s);function _s(A){this.canvas=A.canvas?A.canvas:document.createElement("canvas"),this.ctx=this.canvas.getContext("2d"),this.options=A,this.canvas.width=Math.floor(A.width*A.scale),this.canvas.height=Math.floor(A.height*A.scale),this.canvas.style.width=A.width+"px",this.canvas.style.height=A.height+"px",this.ctx.scale(this.options.scale,this.options.scale),this.ctx.translate(-A.x+A.scrollX,-A.y+A.scrollY),De.getInstance(A.id).debug("EXPERIMENTAL ForeignObject renderer initialized ("+A.width+"x"+A.height+" at "+A.x+","+A.y+") with scale "+A.scale)}function Ps(A){return we(_A.create(A).parseComponentValue())}var xs=function(r){return new Promise(function(A,e){var t=new Image;t.onload=function(){A(t)},t.onerror=e,t.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(r))})};"undefined"!=typeof window&&Se.setContext(window);var Vs=function(p,N){return a(void 0,void 0,void 0,function(){var e,t,r,n,B,s,o,i,a,c,Q,w,u,U,l,C,g,E,F,h,H,d,f;return S(this,function(A){switch(A.label){case 0:if(!(e=p.ownerDocument))throw new Error("Element is not attached to a Document");if(!(t=e.defaultView))throw new Error("Document is not attached to a Window");return r=(Math.round(1e3*Math.random())+Date.now()).toString(16),n=EB(p)||function(A){return"HTML"===A.tagName}(p)?function(A){var e=A.body,t=A.documentElement;if(!e||!t)throw new Error("Unable to get document size");var r=Math.max(Math.max(e.scrollWidth,t.scrollWidth),Math.max(e.offsetWidth,t.offsetWidth),Math.max(e.clientWidth,t.clientWidth)),n=Math.max(Math.max(e.scrollHeight,t.scrollHeight),Math.max(e.offsetHeight,t.offsetHeight),Math.max(e.clientHeight,t.clientHeight));return new I(0,0,r,n)}(e):T(p),B=n.width,s=n.height,o=n.left,i=n.top,a=K({},{allowTaint:!1,imageTimeout:15e3,proxy:void 0,useCORS:!1},N),c={backgroundColor:"#ffffff",cache:N.cache?N.cache:Se.create(r,a),logging:!0,removeContainer:!0,foreignObjectRendering:!1,scale:t.devicePixelRatio||1,windowWidth:t.innerWidth,windowHeight:t.innerHeight,scrollX:t.pageXOffset,scrollY:t.pageYOffset,x:o,y:i,width:Math.ceil(B),height:Math.ceil(s),id:r},Q=K({},c,a,N),w=new I(Q.scrollX,Q.scrollY,Q.windowWidth,Q.windowHeight),De.create({id:r,enabled:Q.logging}),De.getInstance(r).debug("Starting document clone"),u=new PB(p,{id:r,onclone:Q.onclone,ignoreElements:Q.ignoreElements,inlineImages:Q.foreignObjectRendering,copyStyles:Q.foreignObjectRendering}),(U=u.clonedReferenceElement)?[4,u.toIFrame(e,w)]:[2,Promise.reject("Unable to find element in cloned iframe")];case 1:return l=A.sent(),C=e.documentElement?Ps(getComputedStyle(e.documentElement).backgroundColor):He.TRANSPARENT,g=e.body?Ps(getComputedStyle(e.body).backgroundColor):He.TRANSPARENT,E=N.backgroundColor,F="string"==typeof E?Ps(E):null===E?He.TRANSPARENT:4294967295,h=p===e.documentElement?ee(C)?ee(g)?F:g:C:F,H={id:r,cache:Q.cache,canvas:Q.canvas,backgroundColor:h,scale:Q.scale,x:Q.x,y:Q.y,scrollX:Q.scrollX,scrollY:Q.scrollY,width:Q.width,height:Q.height,windowWidth:Q.windowWidth,windowHeight:Q.windowHeight},Q.foreignObjectRendering?(De.getInstance(r).debug("Document cloned, using foreign object rendering"),[4,new ys(H).render(U)]):[3,3];case 2:return d=A.sent(),[3,5];case 3:return De.getInstance(r).debug("Document cloned, using computed rendering"),Se.attachInstance(Q.cache),De.getInstance(r).debug("Starting DOM parsing"),f=iB(U),Se.detachInstance(),h===f.styles.backgroundColor&&(f.styles.backgroundColor=He.TRANSPARENT),De.getInstance(r).debug("Starting renderer"),[4,new Os(H).render(f)];case 4:d=A.sent(),A.label=5;case 5:return!0===Q.removeContainer&&(PB.destroy(l)||De.getInstance(r).error("Cannot detach cloned iframe as it is not in the DOM anymore")),De.getInstance(r).debug("Finished rendering"),De.destroy(r),Se.destroy(r),[2,d]}})})};return function(A,e){return void 0===e&&(e={}),Vs(A,e)}});
PK!LJtaפפ(assets/lib/html2canvas/js/html2canvas.jsnu�[���/*!
 * html2canvas 1.0.0-rc.5 <https://html2canvas.hertzen.com>
 * Copyright (c) 2020 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
		typeof define === 'function' && define.amd ? define(factory) :
			(global = global || self, global.html2canvas = factory());
}(this, function () { 'use strict';

	/*! *****************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
    this file except in compliance with the License. You may obtain a copy of the
    License at http://www.apache.org/licenses/LICENSE-2.0

    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
    MERCHANTABLITY OR NON-INFRINGEMENT.

    See the Apache Version 2.0 License for specific language governing permissions
    and limitations under the License.
    ***************************************************************************** */
	/* global Reflect, Promise */

	var extendStatics = function(d, b) {
		extendStatics = Object.setPrototypeOf ||
			({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
			function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
		return extendStatics(d, b);
	};

	function __extends(d, b) {
		extendStatics(d, b);
		function __() { this.constructor = d; }
		d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
	}

	var __assign = function() {
		__assign = Object.assign || function __assign(t) {
			for (var s, i = 1, n = arguments.length; i < n; i++) {
				s = arguments[i];
				for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
			}
			return t;
		};
		return __assign.apply(this, arguments);
	};

	function __awaiter(thisArg, _arguments, P, generator) {
		return new (P || (P = Promise))(function (resolve, reject) {
			function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
			function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
			function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
			step((generator = generator.apply(thisArg, _arguments || [])).next());
		});
	}

	function __generator(thisArg, body) {
		var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
		return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
		function verb(n) { return function (v) { return step([n, v]); }; }
		function step(op) {
			if (f) throw new TypeError("Generator is already executing.");
			while (_) try {
				if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
				if (y = 0, t) op = [op[0] & 2, t.value];
				switch (op[0]) {
					case 0: case 1: t = op; break;
					case 4: _.label++; return { value: op[1], done: false };
					case 5: _.label++; y = op[1]; op = [0]; continue;
					case 7: op = _.ops.pop(); _.trys.pop(); continue;
					default:
						if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
						if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
						if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
						if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
						if (t[2]) _.ops.pop();
						_.trys.pop(); continue;
				}
				op = body.call(thisArg, _);
			} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
			if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
		}
	}

	var Bounds = /** @class */ (function () {
		function Bounds(x, y, w, h) {
			this.left = x;
			this.top = y;
			this.width = w;
			this.height = h;
		}
		Bounds.prototype.add = function (x, y, w, h) {
			return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);
		};
		Bounds.fromClientRect = function (clientRect) {
			return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);
		};
		return Bounds;
	}());
	var parseBounds = function (node) {
		return Bounds.fromClientRect(node.getBoundingClientRect());
	};
	var parseDocumentSize = function (document) {
		var body = document.body;
		var documentElement = document.documentElement;
		if (!body || !documentElement) {
			throw new Error("Unable to get document size");
		}
		var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));
		var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));
		return new Bounds(0, 0, width, height);
	};

	/*
     * css-line-break 1.1.1 <https://github.com/niklasvh/css-line-break#readme>
     * Copyright (c) 2019 Niklas von Hertzen <https://hertzen.com>
     * Released under MIT License
     */
	var toCodePoints = function (str) {
		var codePoints = [];
		var i = 0;
		var length = str.length;
		while (i < length) {
			var value = str.charCodeAt(i++);
			if (value >= 0xd800 && value <= 0xdbff && i < length) {
				var extra = str.charCodeAt(i++);
				if ((extra & 0xfc00) === 0xdc00) {
					codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
				}
				else {
					codePoints.push(value);
					i--;
				}
			}
			else {
				codePoints.push(value);
			}
		}
		return codePoints;
	};
	var fromCodePoint = function () {
		var codePoints = [];
		for (var _i = 0; _i < arguments.length; _i++) {
			codePoints[_i] = arguments[_i];
		}
		if (String.fromCodePoint) {
			return String.fromCodePoint.apply(String, codePoints);
		}
		var length = codePoints.length;
		if (!length) {
			return '';
		}
		var codeUnits = [];
		var index = -1;
		var result = '';
		while (++index < length) {
			var codePoint = codePoints[index];
			if (codePoint <= 0xffff) {
				codeUnits.push(codePoint);
			}
			else {
				codePoint -= 0x10000;
				codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00);
			}
			if (index + 1 === length || codeUnits.length > 0x4000) {
				result += String.fromCharCode.apply(String, codeUnits);
				codeUnits.length = 0;
			}
		}
		return result;
	};
	var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
	// Use a lookup table to find the index.
	var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
	for (var i = 0; i < chars.length; i++) {
		lookup[chars.charCodeAt(i)] = i;
	}
	var decode = function (base64) {
		var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
		if (base64[base64.length - 1] === '=') {
			bufferLength--;
			if (base64[base64.length - 2] === '=') {
				bufferLength--;
			}
		}
		var buffer = typeof ArrayBuffer !== 'undefined' &&
		typeof Uint8Array !== 'undefined' &&
		typeof Uint8Array.prototype.slice !== 'undefined'
			? new ArrayBuffer(bufferLength)
			: new Array(bufferLength);
		var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);
		for (i = 0; i < len; i += 4) {
			encoded1 = lookup[base64.charCodeAt(i)];
			encoded2 = lookup[base64.charCodeAt(i + 1)];
			encoded3 = lookup[base64.charCodeAt(i + 2)];
			encoded4 = lookup[base64.charCodeAt(i + 3)];
			bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
			bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
			bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
		}
		return buffer;
	};
	var polyUint16Array = function (buffer) {
		var length = buffer.length;
		var bytes = [];
		for (var i = 0; i < length; i += 2) {
			bytes.push((buffer[i + 1] << 8) | buffer[i]);
		}
		return bytes;
	};
	var polyUint32Array = function (buffer) {
		var length = buffer.length;
		var bytes = [];
		for (var i = 0; i < length; i += 4) {
			bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);
		}
		return bytes;
	};

	/** Shift size for getting the index-2 table offset. */
	var UTRIE2_SHIFT_2 = 5;
	/** Shift size for getting the index-1 table offset. */
	var UTRIE2_SHIFT_1 = 6 + 5;
	/**
	 * Shift size for shifting left the index array values.
	 * Increases possible data size with 16-bit index values at the cost
	 * of compactability.
	 * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.
	 */
	var UTRIE2_INDEX_SHIFT = 2;
	/**
	 * Difference between the two shift sizes,
	 * for getting an index-1 offset from an index-2 offset. 6=11-5
	 */
	var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;
	/**
	 * The part of the index-2 table for U+D800..U+DBFF stores values for
	 * lead surrogate code _units_ not code _points_.
	 * Values for lead surrogate code _points_ are indexed with this portion of the table.
	 * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)
	 */
	var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;
	/** Number of entries in a data block. 32=0x20 */
	var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;
	/** Mask for getting the lower bits for the in-data-block offset. */
	var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;
	var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;
	/** Count the lengths of both BMP pieces. 2080=0x820 */
	var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;
	/**
	 * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.
	 * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.
	 */
	var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;
	var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */
	/**
	 * The index-1 table, only used for supplementary code points, at offset 2112=0x840.
	 * Variable length, for code points up to highStart, where the last single-value range starts.
	 * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.
	 * (For 0x100000 supplementary code points U+10000..U+10ffff.)
	 *
	 * The part of the index-2 table for supplementary code points starts
	 * after this index-1 table.
	 *
	 * Both the index-1 table and the following part of the index-2 table
	 * are omitted completely if there is only BMP data.
	 */
	var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;
	/**
	 * Number of index-1 entries for the BMP. 32=0x20
	 * This part of the index-1 table is omitted from the serialized form.
	 */
	var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;
	/** Number of entries in an index-2 block. 64=0x40 */
	var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;
	/** Mask for getting the lower bits for the in-index-2-block offset. */
	var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;
	var slice16 = function (view, start, end) {
		if (view.slice) {
			return view.slice(start, end);
		}
		return new Uint16Array(Array.prototype.slice.call(view, start, end));
	};
	var slice32 = function (view, start, end) {
		if (view.slice) {
			return view.slice(start, end);
		}
		return new Uint32Array(Array.prototype.slice.call(view, start, end));
	};
	var createTrieFromBase64 = function (base64) {
		var buffer = decode(base64);
		var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);
		var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);
		var headerLength = 24;
		var index = slice16(view16, headerLength / 2, view32[4] / 2);
		var data = view32[5] === 2
			? slice16(view16, (headerLength + view32[4]) / 2)
			: slice32(view32, Math.ceil((headerLength + view32[4]) / 4));
		return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);
	};
	var Trie = /** @class */ (function () {
		function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {
			this.initialValue = initialValue;
			this.errorValue = errorValue;
			this.highStart = highStart;
			this.highValueIndex = highValueIndex;
			this.index = index;
			this.data = data;
		}
		/**
		 * Get the value for a code point as stored in the Trie.
		 *
		 * @param codePoint the code point
		 * @return the value
		 */
		Trie.prototype.get = function (codePoint) {
			var ix;
			if (codePoint >= 0) {
				if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {
					// Ordinary BMP code point, excluding leading surrogates.
					// BMP uses a single level lookup.  BMP index starts at offset 0 in the Trie2 index.
					// 16 bit data is stored in the index array itself.
					ix = this.index[codePoint >> UTRIE2_SHIFT_2];
					ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
					return this.data[ix];
				}
				if (codePoint <= 0xffff) {
					// Lead Surrogate Code Point.  A Separate index section is stored for
					// lead surrogate code units and code points.
					//   The main index has the code unit data.
					//   For this function, we need the code point data.
					// Note: this expression could be refactored for slightly improved efficiency, but
					//       surrogate code points will be so rare in practice that it's not worth it.
					ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];
					ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
					return this.data[ix];
				}
				if (codePoint < this.highStart) {
					// Supplemental code point, use two-level lookup.
					ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);
					ix = this.index[ix];
					ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;
					ix = this.index[ix];
					ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);
					return this.data[ix];
				}
				if (codePoint <= 0x10ffff) {
					return this.data[this.highValueIndex];
				}
			}
			// Fall through.  The code point is outside of the legal range of 0..0x10ffff.
			return this.errorValue;
		};
		return Trie;
	}());

	var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA';

	/* @flow */
	var LETTER_NUMBER_MODIFIER = 50;
	// Non-tailorable Line Breaking Classes
	var BK = 1; //  Cause a line break (after)
	var CR = 2; //  Cause a line break (after), except between CR and LF
	var LF = 3; //  Cause a line break (after)
	var CM = 4; //  Prohibit a line break between the character and the preceding character
	var NL = 5; //  Cause a line break (after)
	var WJ = 7; //  Prohibit line breaks before and after
	var ZW = 8; //  Provide a break opportunity
	var GL = 9; //  Prohibit line breaks before and after
	var SP = 10; // Enable indirect line breaks
	var ZWJ = 11; // Prohibit line breaks within joiner sequences
	// Break Opportunities
	var B2 = 12; //  Provide a line break opportunity before and after the character
	var BA = 13; //  Generally provide a line break opportunity after the character
	var BB = 14; //  Generally provide a line break opportunity before the character
	var HY = 15; //  Provide a line break opportunity after the character, except in numeric context
	var CB = 16; //   Provide a line break opportunity contingent on additional information
	// Characters Prohibiting Certain Breaks
	var CL = 17; //  Prohibit line breaks before
	var CP = 18; //  Prohibit line breaks before
	var EX = 19; //  Prohibit line breaks before
	var IN = 20; //  Allow only indirect line breaks between pairs
	var NS = 21; //  Allow only indirect line breaks before
	var OP = 22; //  Prohibit line breaks after
	var QU = 23; //  Act like they are both opening and closing
	// Numeric Context
	var IS = 24; //  Prevent breaks after any and before numeric
	var NU = 25; //  Form numeric expressions for line breaking purposes
	var PO = 26; //  Do not break following a numeric expression
	var PR = 27; //  Do not break in front of a numeric expression
	var SY = 28; //  Prevent a break before; and allow a break after
	// Other Characters
	var AI = 29; //  Act like AL when the resolvedEAW is N; otherwise; act as ID
	var AL = 30; //  Are alphabetic characters or symbols that are used with alphabetic characters
	var CJ = 31; //  Treat as NS or ID for strict or normal breaking.
	var EB = 32; //  Do not break from following Emoji Modifier
	var EM = 33; //  Do not break from preceding Emoji Base
	var H2 = 34; //  Form Korean syllable blocks
	var H3 = 35; //  Form Korean syllable blocks
	var HL = 36; //  Do not break around a following hyphen; otherwise act as Alphabetic
	var ID = 37; //  Break before or after; except in some numeric context
	var JL = 38; //  Form Korean syllable blocks
	var JV = 39; //  Form Korean syllable blocks
	var JT = 40; //  Form Korean syllable blocks
	var RI = 41; //  Keep pairs together. For pairs; break before and after other classes
	var SA = 42; //  Provide a line break opportunity contingent on additional, language-specific context analysis
	var XX = 43; //  Have as yet unknown line breaking behavior or unassigned code positions
	var BREAK_MANDATORY = '!';
	var BREAK_NOT_ALLOWED = '×';
	var BREAK_ALLOWED = '÷';
	var UnicodeTrie = createTrieFromBase64(base64);
	var ALPHABETICS = [AL, HL];
	var HARD_LINE_BREAKS = [BK, CR, LF, NL];
	var SPACE = [SP, ZW];
	var PREFIX_POSTFIX = [PR, PO];
	var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);
	var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];
	var HYPHEN = [HY, BA];
	var codePointsToCharacterClasses = function (codePoints, lineBreak) {
		if (lineBreak === void 0) { lineBreak = 'strict'; }
		var types = [];
		var indicies = [];
		var categories = [];
		codePoints.forEach(function (codePoint, index) {
			var classType = UnicodeTrie.get(codePoint);
			if (classType > LETTER_NUMBER_MODIFIER) {
				categories.push(true);
				classType -= LETTER_NUMBER_MODIFIER;
			}
			else {
				categories.push(false);
			}
			if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {
				// U+2010, – U+2013, 〜 U+301C, ゠ U+30A0
				if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {
					indicies.push(index);
					return types.push(CB);
				}
			}
			if (classType === CM || classType === ZWJ) {
				// LB10 Treat any remaining combining mark or ZWJ as AL.
				if (index === 0) {
					indicies.push(index);
					return types.push(AL);
				}
				// LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of
				// the base character in all of the following rules. Treat ZWJ as if it were CM.
				var prev = types[index - 1];
				if (LINE_BREAKS.indexOf(prev) === -1) {
					indicies.push(indicies[index - 1]);
					return types.push(prev);
				}
				indicies.push(index);
				return types.push(AL);
			}
			indicies.push(index);
			if (classType === CJ) {
				return types.push(lineBreak === 'strict' ? NS : ID);
			}
			if (classType === SA) {
				return types.push(AL);
			}
			if (classType === AI) {
				return types.push(AL);
			}
			// For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL
			// and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised
			// to take into account the actual line breaking properties for these characters.
			if (classType === XX) {
				if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {
					return types.push(ID);
				}
				else {
					return types.push(AL);
				}
			}
			types.push(classType);
		});
		return [indicies, types, categories];
	};
	var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {
		var current = classTypes[currentIndex];
		if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {
			var i = currentIndex;
			while (i <= classTypes.length) {
				i++;
				var next = classTypes[i];
				if (next === b) {
					return true;
				}
				if (next !== SP) {
					break;
				}
			}
		}
		if (current === SP) {
			var i = currentIndex;
			while (i > 0) {
				i--;
				var prev = classTypes[i];
				if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {
					var n = currentIndex;
					while (n <= classTypes.length) {
						n++;
						var next = classTypes[n];
						if (next === b) {
							return true;
						}
						if (next !== SP) {
							break;
						}
					}
				}
				if (prev !== SP) {
					break;
				}
			}
		}
		return false;
	};
	var previousNonSpaceClassType = function (currentIndex, classTypes) {
		var i = currentIndex;
		while (i >= 0) {
			var type = classTypes[i];
			if (type === SP) {
				i--;
			}
			else {
				return type;
			}
		}
		return 0;
	};
	var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {
		if (indicies[index] === 0) {
			return BREAK_NOT_ALLOWED;
		}
		var currentIndex = index - 1;
		if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {
			return BREAK_NOT_ALLOWED;
		}
		var beforeIndex = currentIndex - 1;
		var afterIndex = currentIndex + 1;
		var current = classTypes[currentIndex];
		// LB4 Always break after hard line breaks.
		// LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.
		var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;
		var next = classTypes[afterIndex];
		if (current === CR && next === LF) {
			return BREAK_NOT_ALLOWED;
		}
		if (HARD_LINE_BREAKS.indexOf(current) !== -1) {
			return BREAK_MANDATORY;
		}
		// LB6 Do not break before hard line breaks.
		if (HARD_LINE_BREAKS.indexOf(next) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB7 Do not break before spaces or zero width space.
		if (SPACE.indexOf(next) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB8 Break before any character following a zero-width space, even if one or more spaces intervene.
		if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {
			return BREAK_ALLOWED;
		}
		// LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier.
		if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB11 Do not break before or after Word joiner and related characters.
		if (current === WJ || next === WJ) {
			return BREAK_NOT_ALLOWED;
		}
		// LB12 Do not break after NBSP and related characters.
		if (current === GL) {
			return BREAK_NOT_ALLOWED;
		}
		// LB12a Do not break before NBSP and related characters, except after spaces and hyphens.
		if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {
			return BREAK_NOT_ALLOWED;
		}
		// LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.
		if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB14 Do not break after ‘[’, even after spaces.
		if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {
			return BREAK_NOT_ALLOWED;
		}
		// LB15 Do not break within ‘”[’, even with intervening spaces.
		if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.
		if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB17 Do not break within ‘——’, even with intervening spaces.
		if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB18 Break after spaces.
		if (current === SP) {
			return BREAK_ALLOWED;
		}
		// LB19 Do not break before or after quotation marks, such as ‘ ” ’.
		if (current === QU || next === QU) {
			return BREAK_NOT_ALLOWED;
		}
		// LB20 Break before and after unresolved CB.
		if (next === CB || current === CB) {
			return BREAK_ALLOWED;
		}
		// LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.
		if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {
			return BREAK_NOT_ALLOWED;
		}
		// LB21a Don't break after Hebrew + Hyphen.
		if (before === HL && HYPHEN.indexOf(current) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB21b Don’t break between Solidus and Hebrew letters.
		if (current === SY && next === HL) {
			return BREAK_NOT_ALLOWED;
		}
		// LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis.
		if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB23 Do not break between digits and letters.
		if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.
		if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||
			([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.
		if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||
			(PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB25 Do not break between the following pairs of classes relevant to numbers:
		if (
			// (PR | PO) × ( OP | HY )? NU
			([PR, PO].indexOf(current) !== -1 &&
				(next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||
			// ( OP | HY ) × NU
			([OP, HY].indexOf(current) !== -1 && next === NU) ||
			// NU ×	(NU | SY | IS)
			(current === NU && [NU, SY, IS].indexOf(next) !== -1)) {
			return BREAK_NOT_ALLOWED;
		}
		// NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)
		if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {
			var prevIndex = currentIndex;
			while (prevIndex >= 0) {
				var type = classTypes[prevIndex];
				if (type === NU) {
					return BREAK_NOT_ALLOWED;
				}
				else if ([SY, IS].indexOf(type) !== -1) {
					prevIndex--;
				}
				else {
					break;
				}
			}
		}
		// NU (NU | SY | IS)* (CL | CP)? × (PO | PR))
		if ([PR, PO].indexOf(next) !== -1) {
			var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;
			while (prevIndex >= 0) {
				var type = classTypes[prevIndex];
				if (type === NU) {
					return BREAK_NOT_ALLOWED;
				}
				else if ([SY, IS].indexOf(type) !== -1) {
					prevIndex--;
				}
				else {
					break;
				}
			}
		}
		// LB26 Do not break a Korean syllable.
		if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||
			([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||
			([JT, H3].indexOf(current) !== -1 && next === JT)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB27 Treat a Korean Syllable Block the same as ID.
		if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||
			(KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB28 Do not break between alphabetics (“at”).
		if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).
		if (current === IS && ALPHABETICS.indexOf(next) !== -1) {
			return BREAK_NOT_ALLOWED;
		}
		// LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.
		if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) ||
			(ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {
			return BREAK_NOT_ALLOWED;
		}
		// LB30a Break between two regional indicator symbols if and only if there are an even number of regional
		// indicators preceding the position of the break.
		if (current === RI && next === RI) {
			var i = indicies[currentIndex];
			var count = 1;
			while (i > 0) {
				i--;
				if (classTypes[i] === RI) {
					count++;
				}
				else {
					break;
				}
			}
			if (count % 2 !== 0) {
				return BREAK_NOT_ALLOWED;
			}
		}
		// LB30b Do not break between an emoji base and an emoji modifier.
		if (current === EB && next === EM) {
			return BREAK_NOT_ALLOWED;
		}
		return BREAK_ALLOWED;
	};
	var cssFormattedClasses = function (codePoints, options) {
		if (!options) {
			options = { lineBreak: 'normal', wordBreak: 'normal' };
		}
		var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];
		if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {
			classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });
		}
		var forbiddenBreakpoints = options.wordBreak === 'keep-all'
			? isLetterNumber.map(function (letterNumber, i) {
				return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;
			})
			: undefined;
		return [indicies, classTypes, forbiddenBreakpoints];
	};
	var Break = /** @class */ (function () {
		function Break(codePoints, lineBreak, start, end) {
			this.codePoints = codePoints;
			this.required = lineBreak === BREAK_MANDATORY;
			this.start = start;
			this.end = end;
		}
		Break.prototype.slice = function () {
			return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));
		};
		return Break;
	}());
	var LineBreaker = function (str, options) {
		var codePoints = toCodePoints(str);
		var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];
		var length = codePoints.length;
		var lastEnd = 0;
		var nextIndex = 0;
		return {
			next: function () {
				if (nextIndex >= length) {
					return { done: true, value: null };
				}
				var lineBreak = BREAK_NOT_ALLOWED;
				while (nextIndex < length &&
				(lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===
				BREAK_NOT_ALLOWED) { }
				if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {
					var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);
					lastEnd = nextIndex;
					return { value: value, done: false };
				}
				return { done: true, value: null };
			},
		};
	};

	// https://www.w3.org/TR/css-syntax-3
	var TokenType;
	(function (TokenType) {
		TokenType[TokenType["STRING_TOKEN"] = 0] = "STRING_TOKEN";
		TokenType[TokenType["BAD_STRING_TOKEN"] = 1] = "BAD_STRING_TOKEN";
		TokenType[TokenType["LEFT_PARENTHESIS_TOKEN"] = 2] = "LEFT_PARENTHESIS_TOKEN";
		TokenType[TokenType["RIGHT_PARENTHESIS_TOKEN"] = 3] = "RIGHT_PARENTHESIS_TOKEN";
		TokenType[TokenType["COMMA_TOKEN"] = 4] = "COMMA_TOKEN";
		TokenType[TokenType["HASH_TOKEN"] = 5] = "HASH_TOKEN";
		TokenType[TokenType["DELIM_TOKEN"] = 6] = "DELIM_TOKEN";
		TokenType[TokenType["AT_KEYWORD_TOKEN"] = 7] = "AT_KEYWORD_TOKEN";
		TokenType[TokenType["PREFIX_MATCH_TOKEN"] = 8] = "PREFIX_MATCH_TOKEN";
		TokenType[TokenType["DASH_MATCH_TOKEN"] = 9] = "DASH_MATCH_TOKEN";
		TokenType[TokenType["INCLUDE_MATCH_TOKEN"] = 10] = "INCLUDE_MATCH_TOKEN";
		TokenType[TokenType["LEFT_CURLY_BRACKET_TOKEN"] = 11] = "LEFT_CURLY_BRACKET_TOKEN";
		TokenType[TokenType["RIGHT_CURLY_BRACKET_TOKEN"] = 12] = "RIGHT_CURLY_BRACKET_TOKEN";
		TokenType[TokenType["SUFFIX_MATCH_TOKEN"] = 13] = "SUFFIX_MATCH_TOKEN";
		TokenType[TokenType["SUBSTRING_MATCH_TOKEN"] = 14] = "SUBSTRING_MATCH_TOKEN";
		TokenType[TokenType["DIMENSION_TOKEN"] = 15] = "DIMENSION_TOKEN";
		TokenType[TokenType["PERCENTAGE_TOKEN"] = 16] = "PERCENTAGE_TOKEN";
		TokenType[TokenType["NUMBER_TOKEN"] = 17] = "NUMBER_TOKEN";
		TokenType[TokenType["FUNCTION"] = 18] = "FUNCTION";
		TokenType[TokenType["FUNCTION_TOKEN"] = 19] = "FUNCTION_TOKEN";
		TokenType[TokenType["IDENT_TOKEN"] = 20] = "IDENT_TOKEN";
		TokenType[TokenType["COLUMN_TOKEN"] = 21] = "COLUMN_TOKEN";
		TokenType[TokenType["URL_TOKEN"] = 22] = "URL_TOKEN";
		TokenType[TokenType["BAD_URL_TOKEN"] = 23] = "BAD_URL_TOKEN";
		TokenType[TokenType["CDC_TOKEN"] = 24] = "CDC_TOKEN";
		TokenType[TokenType["CDO_TOKEN"] = 25] = "CDO_TOKEN";
		TokenType[TokenType["COLON_TOKEN"] = 26] = "COLON_TOKEN";
		TokenType[TokenType["SEMICOLON_TOKEN"] = 27] = "SEMICOLON_TOKEN";
		TokenType[TokenType["LEFT_SQUARE_BRACKET_TOKEN"] = 28] = "LEFT_SQUARE_BRACKET_TOKEN";
		TokenType[TokenType["RIGHT_SQUARE_BRACKET_TOKEN"] = 29] = "RIGHT_SQUARE_BRACKET_TOKEN";
		TokenType[TokenType["UNICODE_RANGE_TOKEN"] = 30] = "UNICODE_RANGE_TOKEN";
		TokenType[TokenType["WHITESPACE_TOKEN"] = 31] = "WHITESPACE_TOKEN";
		TokenType[TokenType["EOF_TOKEN"] = 32] = "EOF_TOKEN";
	})(TokenType || (TokenType = {}));
	var FLAG_UNRESTRICTED = 1 << 0;
	var FLAG_ID = 1 << 1;
	var FLAG_INTEGER = 1 << 2;
	var FLAG_NUMBER = 1 << 3;
	var LINE_FEED = 0x000a;
	var SOLIDUS = 0x002f;
	var REVERSE_SOLIDUS = 0x005c;
	var CHARACTER_TABULATION = 0x0009;
	var SPACE$1 = 0x0020;
	var QUOTATION_MARK = 0x0022;
	var EQUALS_SIGN = 0x003d;
	var NUMBER_SIGN = 0x0023;
	var DOLLAR_SIGN = 0x0024;
	var PERCENTAGE_SIGN = 0x0025;
	var APOSTROPHE = 0x0027;
	var LEFT_PARENTHESIS = 0x0028;
	var RIGHT_PARENTHESIS = 0x0029;
	var LOW_LINE = 0x005f;
	var HYPHEN_MINUS = 0x002d;
	var EXCLAMATION_MARK = 0x0021;
	var LESS_THAN_SIGN = 0x003c;
	var GREATER_THAN_SIGN = 0x003e;
	var COMMERCIAL_AT = 0x0040;
	var LEFT_SQUARE_BRACKET = 0x005b;
	var RIGHT_SQUARE_BRACKET = 0x005d;
	var CIRCUMFLEX_ACCENT = 0x003d;
	var LEFT_CURLY_BRACKET = 0x007b;
	var QUESTION_MARK = 0x003f;
	var RIGHT_CURLY_BRACKET = 0x007d;
	var VERTICAL_LINE = 0x007c;
	var TILDE = 0x007e;
	var CONTROL = 0x0080;
	var REPLACEMENT_CHARACTER = 0xfffd;
	var ASTERISK = 0x002a;
	var PLUS_SIGN = 0x002b;
	var COMMA = 0x002c;
	var COLON = 0x003a;
	var SEMICOLON = 0x003b;
	var FULL_STOP = 0x002e;
	var NULL = 0x0000;
	var BACKSPACE = 0x0008;
	var LINE_TABULATION = 0x000b;
	var SHIFT_OUT = 0x000e;
	var INFORMATION_SEPARATOR_ONE = 0x001f;
	var DELETE = 0x007f;
	var EOF = -1;
	var ZERO = 0x0030;
	var a = 0x0061;
	var e = 0x0065;
	var f = 0x0066;
	var u = 0x0075;
	var z = 0x007a;
	var A = 0x0041;
	var E = 0x0045;
	var F = 0x0046;
	var U = 0x0055;
	var Z = 0x005a;
	var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };
	var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };
	var isHex = function (codePoint) {
		return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);
	};
	var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };
	var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };
	var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };
	var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };
	var isWhiteSpace = function (codePoint) {
		return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1;
	};
	var isNameStartCodePoint = function (codePoint) {
		return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;
	};
	var isNameCodePoint = function (codePoint) {
		return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;
	};
	var isNonPrintableCodePoint = function (codePoint) {
		return ((codePoint >= NULL && codePoint <= BACKSPACE) ||
			codePoint === LINE_TABULATION ||
			(codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||
			codePoint === DELETE);
	};
	var isValidEscape = function (c1, c2) {
		if (c1 !== REVERSE_SOLIDUS) {
			return false;
		}
		return c2 !== LINE_FEED;
	};
	var isIdentifierStart = function (c1, c2, c3) {
		if (c1 === HYPHEN_MINUS) {
			return isNameStartCodePoint(c2) || isValidEscape(c2, c3);
		}
		else if (isNameStartCodePoint(c1)) {
			return true;
		}
		else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {
			return true;
		}
		return false;
	};
	var isNumberStart = function (c1, c2, c3) {
		if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {
			if (isDigit(c2)) {
				return true;
			}
			return c2 === FULL_STOP && isDigit(c3);
		}
		if (c1 === FULL_STOP) {
			return isDigit(c2);
		}
		return isDigit(c1);
	};
	var stringToNumber = function (codePoints) {
		var c = 0;
		var sign = 1;
		if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
			if (codePoints[c] === HYPHEN_MINUS) {
				sign = -1;
			}
			c++;
		}
		var integers = [];
		while (isDigit(codePoints[c])) {
			integers.push(codePoints[c++]);
		}
		var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0;
		if (codePoints[c] === FULL_STOP) {
			c++;
		}
		var fraction = [];
		while (isDigit(codePoints[c])) {
			fraction.push(codePoints[c++]);
		}
		var fracd = fraction.length;
		var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0;
		if (codePoints[c] === E || codePoints[c] === e) {
			c++;
		}
		var expsign = 1;
		if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {
			if (codePoints[c] === HYPHEN_MINUS) {
				expsign = -1;
			}
			c++;
		}
		var exponent = [];
		while (isDigit(codePoints[c])) {
			exponent.push(codePoints[c++]);
		}
		var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0;
		return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);
	};
	var LEFT_PARENTHESIS_TOKEN = {
		type: TokenType.LEFT_PARENTHESIS_TOKEN
	};
	var RIGHT_PARENTHESIS_TOKEN = {
		type: TokenType.RIGHT_PARENTHESIS_TOKEN
	};
	var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN };
	var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN };
	var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN };
	var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN };
	var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN };
	var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN };
	var LEFT_CURLY_BRACKET_TOKEN = {
		type: TokenType.LEFT_CURLY_BRACKET_TOKEN
	};
	var RIGHT_CURLY_BRACKET_TOKEN = {
		type: TokenType.RIGHT_CURLY_BRACKET_TOKEN
	};
	var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN };
	var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN };
	var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN };
	var CDO_TOKEN = { type: TokenType.CDO_TOKEN };
	var CDC_TOKEN = { type: TokenType.CDC_TOKEN };
	var COLON_TOKEN = { type: TokenType.COLON_TOKEN };
	var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN };
	var LEFT_SQUARE_BRACKET_TOKEN = {
		type: TokenType.LEFT_SQUARE_BRACKET_TOKEN
	};
	var RIGHT_SQUARE_BRACKET_TOKEN = {
		type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN
	};
	var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN };
	var EOF_TOKEN = { type: TokenType.EOF_TOKEN };
	var Tokenizer = /** @class */ (function () {
		function Tokenizer() {
			this._value = [];
		}
		Tokenizer.prototype.write = function (chunk) {
			this._value = this._value.concat(toCodePoints(chunk));
		};
		Tokenizer.prototype.read = function () {
			var tokens = [];
			var token = this.consumeToken();
			while (token !== EOF_TOKEN) {
				tokens.push(token);
				token = this.consumeToken();
			}
			return tokens;
		};
		Tokenizer.prototype.consumeToken = function () {
			var codePoint = this.consumeCodePoint();
			switch (codePoint) {
				case QUOTATION_MARK:
					return this.consumeStringToken(QUOTATION_MARK);
				case NUMBER_SIGN:
					var c1 = this.peekCodePoint(0);
					var c2 = this.peekCodePoint(1);
					var c3 = this.peekCodePoint(2);
					if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {
						var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;
						var value = this.consumeName();
						return { type: TokenType.HASH_TOKEN, value: value, flags: flags };
					}
					break;
				case DOLLAR_SIGN:
					if (this.peekCodePoint(0) === EQUALS_SIGN) {
						this.consumeCodePoint();
						return SUFFIX_MATCH_TOKEN;
					}
					break;
				case APOSTROPHE:
					return this.consumeStringToken(APOSTROPHE);
				case LEFT_PARENTHESIS:
					return LEFT_PARENTHESIS_TOKEN;
				case RIGHT_PARENTHESIS:
					return RIGHT_PARENTHESIS_TOKEN;
				case ASTERISK:
					if (this.peekCodePoint(0) === EQUALS_SIGN) {
						this.consumeCodePoint();
						return SUBSTRING_MATCH_TOKEN;
					}
					break;
				case PLUS_SIGN:
					if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {
						this.reconsumeCodePoint(codePoint);
						return this.consumeNumericToken();
					}
					break;
				case COMMA:
					return COMMA_TOKEN;
				case HYPHEN_MINUS:
					var e1 = codePoint;
					var e2 = this.peekCodePoint(0);
					var e3 = this.peekCodePoint(1);
					if (isNumberStart(e1, e2, e3)) {
						this.reconsumeCodePoint(codePoint);
						return this.consumeNumericToken();
					}
					if (isIdentifierStart(e1, e2, e3)) {
						this.reconsumeCodePoint(codePoint);
						return this.consumeIdentLikeToken();
					}
					if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {
						this.consumeCodePoint();
						this.consumeCodePoint();
						return CDC_TOKEN;
					}
					break;
				case FULL_STOP:
					if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {
						this.reconsumeCodePoint(codePoint);
						return this.consumeNumericToken();
					}
					break;
				case SOLIDUS:
					if (this.peekCodePoint(0) === ASTERISK) {
						this.consumeCodePoint();
						while (true) {
							var c = this.consumeCodePoint();
							if (c === ASTERISK) {
								c = this.consumeCodePoint();
								if (c === SOLIDUS) {
									return this.consumeToken();
								}
							}
							if (c === EOF) {
								return this.consumeToken();
							}
						}
					}
					break;
				case COLON:
					return COLON_TOKEN;
				case SEMICOLON:
					return SEMICOLON_TOKEN;
				case LESS_THAN_SIGN:
					if (this.peekCodePoint(0) === EXCLAMATION_MARK &&
						this.peekCodePoint(1) === HYPHEN_MINUS &&
						this.peekCodePoint(2) === HYPHEN_MINUS) {
						this.consumeCodePoint();
						this.consumeCodePoint();
						return CDO_TOKEN;
					}
					break;
				case COMMERCIAL_AT:
					var a1 = this.peekCodePoint(0);
					var a2 = this.peekCodePoint(1);
					var a3 = this.peekCodePoint(2);
					if (isIdentifierStart(a1, a2, a3)) {
						var value = this.consumeName();
						return { type: TokenType.AT_KEYWORD_TOKEN, value: value };
					}
					break;
				case LEFT_SQUARE_BRACKET:
					return LEFT_SQUARE_BRACKET_TOKEN;
				case REVERSE_SOLIDUS:
					if (isValidEscape(codePoint, this.peekCodePoint(0))) {
						this.reconsumeCodePoint(codePoint);
						return this.consumeIdentLikeToken();
					}
					break;
				case RIGHT_SQUARE_BRACKET:
					return RIGHT_SQUARE_BRACKET_TOKEN;
				case CIRCUMFLEX_ACCENT:
					if (this.peekCodePoint(0) === EQUALS_SIGN) {
						this.consumeCodePoint();
						return PREFIX_MATCH_TOKEN;
					}
					break;
				case LEFT_CURLY_BRACKET:
					return LEFT_CURLY_BRACKET_TOKEN;
				case RIGHT_CURLY_BRACKET:
					return RIGHT_CURLY_BRACKET_TOKEN;
				case u:
				case U:
					var u1 = this.peekCodePoint(0);
					var u2 = this.peekCodePoint(1);
					if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {
						this.consumeCodePoint();
						this.consumeUnicodeRangeToken();
					}
					this.reconsumeCodePoint(codePoint);
					return this.consumeIdentLikeToken();
				case VERTICAL_LINE:
					if (this.peekCodePoint(0) === EQUALS_SIGN) {
						this.consumeCodePoint();
						return DASH_MATCH_TOKEN;
					}
					if (this.peekCodePoint(0) === VERTICAL_LINE) {
						this.consumeCodePoint();
						return COLUMN_TOKEN;
					}
					break;
				case TILDE:
					if (this.peekCodePoint(0) === EQUALS_SIGN) {
						this.consumeCodePoint();
						return INCLUDE_MATCH_TOKEN;
					}
					break;
				case EOF:
					return EOF_TOKEN;
			}
			if (isWhiteSpace(codePoint)) {
				this.consumeWhiteSpace();
				return WHITESPACE_TOKEN;
			}
			if (isDigit(codePoint)) {
				this.reconsumeCodePoint(codePoint);
				return this.consumeNumericToken();
			}
			if (isNameStartCodePoint(codePoint)) {
				this.reconsumeCodePoint(codePoint);
				return this.consumeIdentLikeToken();
			}
			return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) };
		};
		Tokenizer.prototype.consumeCodePoint = function () {
			var value = this._value.shift();
			return typeof value === 'undefined' ? -1 : value;
		};
		Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {
			this._value.unshift(codePoint);
		};
		Tokenizer.prototype.peekCodePoint = function (delta) {
			if (delta >= this._value.length) {
				return -1;
			}
			return this._value[delta];
		};
		Tokenizer.prototype.consumeUnicodeRangeToken = function () {
			var digits = [];
			var codePoint = this.consumeCodePoint();
			while (isHex(codePoint) && digits.length < 6) {
				digits.push(codePoint);
				codePoint = this.consumeCodePoint();
			}
			var questionMarks = false;
			while (codePoint === QUESTION_MARK && digits.length < 6) {
				digits.push(codePoint);
				codePoint = this.consumeCodePoint();
				questionMarks = true;
			}
			if (questionMarks) {
				var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);
				var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);
				return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end };
			}
			var start = parseInt(fromCodePoint.apply(void 0, digits), 16);
			if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {
				this.consumeCodePoint();
				codePoint = this.consumeCodePoint();
				var endDigits = [];
				while (isHex(codePoint) && endDigits.length < 6) {
					endDigits.push(codePoint);
					codePoint = this.consumeCodePoint();
				}
				var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16);
				return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end };
			}
			else {
				return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start };
			}
		};
		Tokenizer.prototype.consumeIdentLikeToken = function () {
			var value = this.consumeName();
			if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {
				this.consumeCodePoint();
				return this.consumeUrlToken();
			}
			else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {
				this.consumeCodePoint();
				return { type: TokenType.FUNCTION_TOKEN, value: value };
			}
			return { type: TokenType.IDENT_TOKEN, value: value };
		};
		Tokenizer.prototype.consumeUrlToken = function () {
			var value = [];
			this.consumeWhiteSpace();
			if (this.peekCodePoint(0) === EOF) {
				return { type: TokenType.URL_TOKEN, value: '' };
			}
			var next = this.peekCodePoint(0);
			if (next === APOSTROPHE || next === QUOTATION_MARK) {
				var stringToken = this.consumeStringToken(this.consumeCodePoint());
				if (stringToken.type === TokenType.STRING_TOKEN) {
					this.consumeWhiteSpace();
					if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {
						this.consumeCodePoint();
						return { type: TokenType.URL_TOKEN, value: stringToken.value };
					}
				}
				this.consumeBadUrlRemnants();
				return BAD_URL_TOKEN;
			}
			while (true) {
				var codePoint = this.consumeCodePoint();
				if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {
					return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };
				}
				else if (isWhiteSpace(codePoint)) {
					this.consumeWhiteSpace();
					if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {
						this.consumeCodePoint();
						return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };
					}
					this.consumeBadUrlRemnants();
					return BAD_URL_TOKEN;
				}
				else if (codePoint === QUOTATION_MARK ||
					codePoint === APOSTROPHE ||
					codePoint === LEFT_PARENTHESIS ||
					isNonPrintableCodePoint(codePoint)) {
					this.consumeBadUrlRemnants();
					return BAD_URL_TOKEN;
				}
				else if (codePoint === REVERSE_SOLIDUS) {
					if (isValidEscape(codePoint, this.peekCodePoint(0))) {
						value.push(this.consumeEscapedCodePoint());
					}
					else {
						this.consumeBadUrlRemnants();
						return BAD_URL_TOKEN;
					}
				}
				else {
					value.push(codePoint);
				}
			}
		};
		Tokenizer.prototype.consumeWhiteSpace = function () {
			while (isWhiteSpace(this.peekCodePoint(0))) {
				this.consumeCodePoint();
			}
		};
		Tokenizer.prototype.consumeBadUrlRemnants = function () {
			while (true) {
				var codePoint = this.consumeCodePoint();
				if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {
					return;
				}
				if (isValidEscape(codePoint, this.peekCodePoint(0))) {
					this.consumeEscapedCodePoint();
				}
			}
		};
		Tokenizer.prototype.consumeStringSlice = function (count) {
			var SLICE_STACK_SIZE = 60000;
			var value = '';
			while (count > 0) {
				var amount = Math.min(SLICE_STACK_SIZE, count);
				value += fromCodePoint.apply(void 0, this._value.splice(0, amount));
				count -= amount;
			}
			this._value.shift();
			return value;
		};
		Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {
			var value = '';
			var i = 0;
			do {
				var codePoint = this._value[i];
				if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {
					value += this.consumeStringSlice(i);
					return { type: TokenType.STRING_TOKEN, value: value };
				}
				if (codePoint === LINE_FEED) {
					this._value.splice(0, i);
					return BAD_STRING_TOKEN;
				}
				if (codePoint === REVERSE_SOLIDUS) {
					var next = this._value[i + 1];
					if (next !== EOF && next !== undefined) {
						if (next === LINE_FEED) {
							value += this.consumeStringSlice(i);
							i = -1;
							this._value.shift();
						}
						else if (isValidEscape(codePoint, next)) {
							value += this.consumeStringSlice(i);
							value += fromCodePoint(this.consumeEscapedCodePoint());
							i = -1;
						}
					}
				}
				i++;
			} while (true);
		};
		Tokenizer.prototype.consumeNumber = function () {
			var repr = [];
			var type = FLAG_INTEGER;
			var c1 = this.peekCodePoint(0);
			if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {
				repr.push(this.consumeCodePoint());
			}
			while (isDigit(this.peekCodePoint(0))) {
				repr.push(this.consumeCodePoint());
			}
			c1 = this.peekCodePoint(0);
			var c2 = this.peekCodePoint(1);
			if (c1 === FULL_STOP && isDigit(c2)) {
				repr.push(this.consumeCodePoint(), this.consumeCodePoint());
				type = FLAG_NUMBER;
				while (isDigit(this.peekCodePoint(0))) {
					repr.push(this.consumeCodePoint());
				}
			}
			c1 = this.peekCodePoint(0);
			c2 = this.peekCodePoint(1);
			var c3 = this.peekCodePoint(2);
			if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {
				repr.push(this.consumeCodePoint(), this.consumeCodePoint());
				type = FLAG_NUMBER;
				while (isDigit(this.peekCodePoint(0))) {
					repr.push(this.consumeCodePoint());
				}
			}
			return [stringToNumber(repr), type];
		};
		Tokenizer.prototype.consumeNumericToken = function () {
			var _a = this.consumeNumber(), number = _a[0], flags = _a[1];
			var c1 = this.peekCodePoint(0);
			var c2 = this.peekCodePoint(1);
			var c3 = this.peekCodePoint(2);
			if (isIdentifierStart(c1, c2, c3)) {
				var unit = this.consumeName();
				return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit };
			}
			if (c1 === PERCENTAGE_SIGN) {
				this.consumeCodePoint();
				return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags };
			}
			return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags };
		};
		Tokenizer.prototype.consumeEscapedCodePoint = function () {
			var codePoint = this.consumeCodePoint();
			if (isHex(codePoint)) {
				var hex = fromCodePoint(codePoint);
				while (isHex(this.peekCodePoint(0)) && hex.length < 6) {
					hex += fromCodePoint(this.consumeCodePoint());
				}
				if (isWhiteSpace(this.peekCodePoint(0))) {
					this.consumeCodePoint();
				}
				var hexCodePoint = parseInt(hex, 16);
				if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {
					return REPLACEMENT_CHARACTER;
				}
				return hexCodePoint;
			}
			if (codePoint === EOF) {
				return REPLACEMENT_CHARACTER;
			}
			return codePoint;
		};
		Tokenizer.prototype.consumeName = function () {
			var result = '';
			while (true) {
				var codePoint = this.consumeCodePoint();
				if (isNameCodePoint(codePoint)) {
					result += fromCodePoint(codePoint);
				}
				else if (isValidEscape(codePoint, this.peekCodePoint(0))) {
					result += fromCodePoint(this.consumeEscapedCodePoint());
				}
				else {
					this.reconsumeCodePoint(codePoint);
					return result;
				}
			}
		};
		return Tokenizer;
	}());

	var Parser = /** @class */ (function () {
		function Parser(tokens) {
			this._tokens = tokens;
		}
		Parser.create = function (value) {
			var tokenizer = new Tokenizer();
			tokenizer.write(value);
			return new Parser(tokenizer.read());
		};
		Parser.parseValue = function (value) {
			return Parser.create(value).parseComponentValue();
		};
		Parser.parseValues = function (value) {
			return Parser.create(value).parseComponentValues();
		};
		Parser.prototype.parseComponentValue = function () {
			var token = this.consumeToken();
			while (token.type === TokenType.WHITESPACE_TOKEN) {
				token = this.consumeToken();
			}
			if (token.type === TokenType.EOF_TOKEN) {
				throw new SyntaxError("Error parsing CSS component value, unexpected EOF");
			}
			this.reconsumeToken(token);
			var value = this.consumeComponentValue();
			do {
				token = this.consumeToken();
			} while (token.type === TokenType.WHITESPACE_TOKEN);
			if (token.type === TokenType.EOF_TOKEN) {
				return value;
			}
			throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one");
		};
		Parser.prototype.parseComponentValues = function () {
			var values = [];
			while (true) {
				var value = this.consumeComponentValue();
				if (value.type === TokenType.EOF_TOKEN) {
					return values;
				}
				values.push(value);
				values.push();
			}
		};
		Parser.prototype.consumeComponentValue = function () {
			var token = this.consumeToken();
			switch (token.type) {
				case TokenType.LEFT_CURLY_BRACKET_TOKEN:
				case TokenType.LEFT_SQUARE_BRACKET_TOKEN:
				case TokenType.LEFT_PARENTHESIS_TOKEN:
					return this.consumeSimpleBlock(token.type);
				case TokenType.FUNCTION_TOKEN:
					return this.consumeFunction(token);
			}
			return token;
		};
		Parser.prototype.consumeSimpleBlock = function (type) {
			var block = { type: type, values: [] };
			var token = this.consumeToken();
			while (true) {
				if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {
					return block;
				}
				this.reconsumeToken(token);
				block.values.push(this.consumeComponentValue());
				token = this.consumeToken();
			}
		};
		Parser.prototype.consumeFunction = function (functionToken) {
			var cssFunction = {
				name: functionToken.value,
				values: [],
				type: TokenType.FUNCTION
			};
			while (true) {
				var token = this.consumeToken();
				if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {
					return cssFunction;
				}
				this.reconsumeToken(token);
				cssFunction.values.push(this.consumeComponentValue());
			}
		};
		Parser.prototype.consumeToken = function () {
			var token = this._tokens.shift();
			return typeof token === 'undefined' ? EOF_TOKEN : token;
		};
		Parser.prototype.reconsumeToken = function (token) {
			this._tokens.unshift(token);
		};
		return Parser;
	}());
	var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; };
	var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; };
	var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; };
	var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; };
	var isIdentWithValue = function (token, value) {
		return isIdentToken(token) && token.value === value;
	};
	var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; };
	var nonFunctionArgSeparator = function (token) {
		return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;
	};
	var parseFunctionArgs = function (tokens) {
		var args = [];
		var arg = [];
		tokens.forEach(function (token) {
			if (token.type === TokenType.COMMA_TOKEN) {
				if (arg.length === 0) {
					throw new Error("Error parsing function args, zero tokens for arg");
				}
				args.push(arg);
				arg = [];
				return;
			}
			if (token.type !== TokenType.WHITESPACE_TOKEN) {
				arg.push(token);
			}
		});
		if (arg.length) {
			args.push(arg);
		}
		return args;
	};
	var isEndingTokenFor = function (token, type) {
		if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {
			return true;
		}
		if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {
			return true;
		}
		return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;
	};

	var isLength = function (token) {
		return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;
	};

	var isLengthPercentage = function (token) {
		return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);
	};
	var parseLengthPercentageTuple = function (tokens) {
		return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];
	};
	var ZERO_LENGTH = {
		type: TokenType.NUMBER_TOKEN,
		number: 0,
		flags: FLAG_INTEGER
	};
	var FIFTY_PERCENT = {
		type: TokenType.PERCENTAGE_TOKEN,
		number: 50,
		flags: FLAG_INTEGER
	};
	var HUNDRED_PERCENT = {
		type: TokenType.PERCENTAGE_TOKEN,
		number: 100,
		flags: FLAG_INTEGER
	};
	var getAbsoluteValueForTuple = function (tuple, width, height) {
		var x = tuple[0], y = tuple[1];
		return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];
	};
	var getAbsoluteValue = function (token, parent) {
		if (token.type === TokenType.PERCENTAGE_TOKEN) {
			return (token.number / 100) * parent;
		}
		if (isDimensionToken(token)) {
			switch (token.unit) {
				case 'rem':
				case 'em':
					return 16 * token.number; // TODO use correct font-size
				case 'px':
				default:
					return token.number;
			}
		}
		return token.number;
	};

	var DEG = 'deg';
	var GRAD = 'grad';
	var RAD = 'rad';
	var TURN = 'turn';
	var angle = {
		name: 'angle',
		parse: function (value) {
			if (value.type === TokenType.DIMENSION_TOKEN) {
				switch (value.unit) {
					case DEG:
						return (Math.PI * value.number) / 180;
					case GRAD:
						return (Math.PI / 200) * value.number;
					case RAD:
						return value.number;
					case TURN:
						return Math.PI * 2 * value.number;
				}
			}
			throw new Error("Unsupported angle type");
		}
	};
	var isAngle = function (value) {
		if (value.type === TokenType.DIMENSION_TOKEN) {
			if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {
				return true;
			}
		}
		return false;
	};
	var parseNamedSide = function (tokens) {
		var sideOrCorner = tokens
			.filter(isIdentToken)
			.map(function (ident) { return ident.value; })
			.join(' ');
		switch (sideOrCorner) {
			case 'to bottom right':
			case 'to right bottom':
			case 'left top':
			case 'top left':
				return [ZERO_LENGTH, ZERO_LENGTH];
			case 'to top':
			case 'bottom':
				return deg(0);
			case 'to bottom left':
			case 'to left bottom':
			case 'right top':
			case 'top right':
				return [ZERO_LENGTH, HUNDRED_PERCENT];
			case 'to right':
			case 'left':
				return deg(90);
			case 'to top left':
			case 'to left top':
			case 'right bottom':
			case 'bottom right':
				return [HUNDRED_PERCENT, HUNDRED_PERCENT];
			case 'to bottom':
			case 'top':
				return deg(180);
			case 'to top right':
			case 'to right top':
			case 'left bottom':
			case 'bottom left':
				return [HUNDRED_PERCENT, ZERO_LENGTH];
			case 'to left':
			case 'right':
				return deg(270);
		}
		return 0;
	};
	var deg = function (deg) { return (Math.PI * deg) / 180; };

	var color = {
		name: 'color',
		parse: function (value) {
			if (value.type === TokenType.FUNCTION) {
				var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];
				if (typeof colorFunction === 'undefined') {
					throw new Error("Attempting to parse an unsupported color function \"" + value.name + "\"");
				}
				return colorFunction(value.values);
			}
			if (value.type === TokenType.HASH_TOKEN) {
				if (value.value.length === 3) {
					var r = value.value.substring(0, 1);
					var g = value.value.substring(1, 2);
					var b = value.value.substring(2, 3);
					return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);
				}
				if (value.value.length === 4) {
					var r = value.value.substring(0, 1);
					var g = value.value.substring(1, 2);
					var b = value.value.substring(2, 3);
					var a = value.value.substring(3, 4);
					return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);
				}
				if (value.value.length === 6) {
					var r = value.value.substring(0, 2);
					var g = value.value.substring(2, 4);
					var b = value.value.substring(4, 6);
					return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);
				}
				if (value.value.length === 8) {
					var r = value.value.substring(0, 2);
					var g = value.value.substring(2, 4);
					var b = value.value.substring(4, 6);
					var a = value.value.substring(6, 8);
					return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);
				}
			}
			if (value.type === TokenType.IDENT_TOKEN) {
				var namedColor = COLORS[value.value.toUpperCase()];
				if (typeof namedColor !== 'undefined') {
					return namedColor;
				}
			}
			return COLORS.TRANSPARENT;
		}
	};
	var isTransparent = function (color) { return (0xff & color) === 0; };
	var asString = function (color) {
		var alpha = 0xff & color;
		var blue = 0xff & (color >> 8);
		var green = 0xff & (color >> 16);
		var red = 0xff & (color >> 24);
		return alpha < 255 ? "rgba(" + red + "," + green + "," + blue + "," + alpha / 255 + ")" : "rgb(" + red + "," + green + "," + blue + ")";
	};
	var pack = function (r, g, b, a) {
		return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;
	};
	var getTokenColorValue = function (token, i) {
		if (token.type === TokenType.NUMBER_TOKEN) {
			return token.number;
		}
		if (token.type === TokenType.PERCENTAGE_TOKEN) {
			var max = i === 3 ? 1 : 255;
			return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);
		}
		return 0;
	};
	var rgb = function (args) {
		var tokens = args.filter(nonFunctionArgSeparator);
		if (tokens.length === 3) {
			var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];
			return pack(r, g, b, 1);
		}
		if (tokens.length === 4) {
			var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];
			return pack(r, g, b, a);
		}
		return 0;
	};
	function hue2rgb(t1, t2, hue) {
		if (hue < 0) {
			hue += 1;
		}
		if (hue >= 1) {
			hue -= 1;
		}
		if (hue < 1 / 6) {
			return (t2 - t1) * hue * 6 + t1;
		}
		else if (hue < 1 / 2) {
			return t2;
		}
		else if (hue < 2 / 3) {
			return (t2 - t1) * 6 * (2 / 3 - hue) + t1;
		}
		else {
			return t1;
		}
	}
	var hsl = function (args) {
		var tokens = args.filter(nonFunctionArgSeparator);
		var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];
		var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2);
		var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;
		var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;
		var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;
		if (s === 0) {
			return pack(l * 255, l * 255, l * 255, 1);
		}
		var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;
		var t1 = l * 2 - t2;
		var r = hue2rgb(t1, t2, h + 1 / 3);
		var g = hue2rgb(t1, t2, h);
		var b = hue2rgb(t1, t2, h - 1 / 3);
		return pack(r * 255, g * 255, b * 255, a);
	};
	var SUPPORTED_COLOR_FUNCTIONS = {
		hsl: hsl,
		hsla: hsl,
		rgb: rgb,
		rgba: rgb
	};
	var COLORS = {
		ALICEBLUE: 0xf0f8ffff,
		ANTIQUEWHITE: 0xfaebd7ff,
		AQUA: 0x00ffffff,
		AQUAMARINE: 0x7fffd4ff,
		AZURE: 0xf0ffffff,
		BEIGE: 0xf5f5dcff,
		BISQUE: 0xffe4c4ff,
		BLACK: 0x000000ff,
		BLANCHEDALMOND: 0xffebcdff,
		BLUE: 0x0000ffff,
		BLUEVIOLET: 0x8a2be2ff,
		BROWN: 0xa52a2aff,
		BURLYWOOD: 0xdeb887ff,
		CADETBLUE: 0x5f9ea0ff,
		CHARTREUSE: 0x7fff00ff,
		CHOCOLATE: 0xd2691eff,
		CORAL: 0xff7f50ff,
		CORNFLOWERBLUE: 0x6495edff,
		CORNSILK: 0xfff8dcff,
		CRIMSON: 0xdc143cff,
		CYAN: 0x00ffffff,
		DARKBLUE: 0x00008bff,
		DARKCYAN: 0x008b8bff,
		DARKGOLDENROD: 0xb886bbff,
		DARKGRAY: 0xa9a9a9ff,
		DARKGREEN: 0x006400ff,
		DARKGREY: 0xa9a9a9ff,
		DARKKHAKI: 0xbdb76bff,
		DARKMAGENTA: 0x8b008bff,
		DARKOLIVEGREEN: 0x556b2fff,
		DARKORANGE: 0xff8c00ff,
		DARKORCHID: 0x9932ccff,
		DARKRED: 0x8b0000ff,
		DARKSALMON: 0xe9967aff,
		DARKSEAGREEN: 0x8fbc8fff,
		DARKSLATEBLUE: 0x483d8bff,
		DARKSLATEGRAY: 0x2f4f4fff,
		DARKSLATEGREY: 0x2f4f4fff,
		DARKTURQUOISE: 0x00ced1ff,
		DARKVIOLET: 0x9400d3ff,
		DEEPPINK: 0xff1493ff,
		DEEPSKYBLUE: 0x00bfffff,
		DIMGRAY: 0x696969ff,
		DIMGREY: 0x696969ff,
		DODGERBLUE: 0x1e90ffff,
		FIREBRICK: 0xb22222ff,
		FLORALWHITE: 0xfffaf0ff,
		FORESTGREEN: 0x228b22ff,
		FUCHSIA: 0xff00ffff,
		GAINSBORO: 0xdcdcdcff,
		GHOSTWHITE: 0xf8f8ffff,
		GOLD: 0xffd700ff,
		GOLDENROD: 0xdaa520ff,
		GRAY: 0x808080ff,
		GREEN: 0x008000ff,
		GREENYELLOW: 0xadff2fff,
		GREY: 0x808080ff,
		HONEYDEW: 0xf0fff0ff,
		HOTPINK: 0xff69b4ff,
		INDIANRED: 0xcd5c5cff,
		INDIGO: 0x4b0082ff,
		IVORY: 0xfffff0ff,
		KHAKI: 0xf0e68cff,
		LAVENDER: 0xe6e6faff,
		LAVENDERBLUSH: 0xfff0f5ff,
		LAWNGREEN: 0x7cfc00ff,
		LEMONCHIFFON: 0xfffacdff,
		LIGHTBLUE: 0xadd8e6ff,
		LIGHTCORAL: 0xf08080ff,
		LIGHTCYAN: 0xe0ffffff,
		LIGHTGOLDENRODYELLOW: 0xfafad2ff,
		LIGHTGRAY: 0xd3d3d3ff,
		LIGHTGREEN: 0x90ee90ff,
		LIGHTGREY: 0xd3d3d3ff,
		LIGHTPINK: 0xffb6c1ff,
		LIGHTSALMON: 0xffa07aff,
		LIGHTSEAGREEN: 0x20b2aaff,
		LIGHTSKYBLUE: 0x87cefaff,
		LIGHTSLATEGRAY: 0x778899ff,
		LIGHTSLATEGREY: 0x778899ff,
		LIGHTSTEELBLUE: 0xb0c4deff,
		LIGHTYELLOW: 0xffffe0ff,
		LIME: 0x00ff00ff,
		LIMEGREEN: 0x32cd32ff,
		LINEN: 0xfaf0e6ff,
		MAGENTA: 0xff00ffff,
		MAROON: 0x800000ff,
		MEDIUMAQUAMARINE: 0x66cdaaff,
		MEDIUMBLUE: 0x0000cdff,
		MEDIUMORCHID: 0xba55d3ff,
		MEDIUMPURPLE: 0x9370dbff,
		MEDIUMSEAGREEN: 0x3cb371ff,
		MEDIUMSLATEBLUE: 0x7b68eeff,
		MEDIUMSPRINGGREEN: 0x00fa9aff,
		MEDIUMTURQUOISE: 0x48d1ccff,
		MEDIUMVIOLETRED: 0xc71585ff,
		MIDNIGHTBLUE: 0x191970ff,
		MINTCREAM: 0xf5fffaff,
		MISTYROSE: 0xffe4e1ff,
		MOCCASIN: 0xffe4b5ff,
		NAVAJOWHITE: 0xffdeadff,
		NAVY: 0x000080ff,
		OLDLACE: 0xfdf5e6ff,
		OLIVE: 0x808000ff,
		OLIVEDRAB: 0x6b8e23ff,
		ORANGE: 0xffa500ff,
		ORANGERED: 0xff4500ff,
		ORCHID: 0xda70d6ff,
		PALEGOLDENROD: 0xeee8aaff,
		PALEGREEN: 0x98fb98ff,
		PALETURQUOISE: 0xafeeeeff,
		PALEVIOLETRED: 0xdb7093ff,
		PAPAYAWHIP: 0xffefd5ff,
		PEACHPUFF: 0xffdab9ff,
		PERU: 0xcd853fff,
		PINK: 0xffc0cbff,
		PLUM: 0xdda0ddff,
		POWDERBLUE: 0xb0e0e6ff,
		PURPLE: 0x800080ff,
		REBECCAPURPLE: 0x663399ff,
		RED: 0xff0000ff,
		ROSYBROWN: 0xbc8f8fff,
		ROYALBLUE: 0x4169e1ff,
		SADDLEBROWN: 0x8b4513ff,
		SALMON: 0xfa8072ff,
		SANDYBROWN: 0xf4a460ff,
		SEAGREEN: 0x2e8b57ff,
		SEASHELL: 0xfff5eeff,
		SIENNA: 0xa0522dff,
		SILVER: 0xc0c0c0ff,
		SKYBLUE: 0x87ceebff,
		SLATEBLUE: 0x6a5acdff,
		SLATEGRAY: 0x708090ff,
		SLATEGREY: 0x708090ff,
		SNOW: 0xfffafaff,
		SPRINGGREEN: 0x00ff7fff,
		STEELBLUE: 0x4682b4ff,
		TAN: 0xd2b48cff,
		TEAL: 0x008080ff,
		THISTLE: 0xd8bfd8ff,
		TOMATO: 0xff6347ff,
		TRANSPARENT: 0x00000000,
		TURQUOISE: 0x40e0d0ff,
		VIOLET: 0xee82eeff,
		WHEAT: 0xf5deb3ff,
		WHITE: 0xffffffff,
		WHITESMOKE: 0xf5f5f5ff,
		YELLOW: 0xffff00ff,
		YELLOWGREEN: 0x9acd32ff
	};

	var PropertyDescriptorParsingType;
	(function (PropertyDescriptorParsingType) {
		PropertyDescriptorParsingType[PropertyDescriptorParsingType["VALUE"] = 0] = "VALUE";
		PropertyDescriptorParsingType[PropertyDescriptorParsingType["LIST"] = 1] = "LIST";
		PropertyDescriptorParsingType[PropertyDescriptorParsingType["IDENT_VALUE"] = 2] = "IDENT_VALUE";
		PropertyDescriptorParsingType[PropertyDescriptorParsingType["TYPE_VALUE"] = 3] = "TYPE_VALUE";
		PropertyDescriptorParsingType[PropertyDescriptorParsingType["TOKEN_VALUE"] = 4] = "TOKEN_VALUE";
	})(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {}));

	var BACKGROUND_CLIP;
	(function (BACKGROUND_CLIP) {
		BACKGROUND_CLIP[BACKGROUND_CLIP["BORDER_BOX"] = 0] = "BORDER_BOX";
		BACKGROUND_CLIP[BACKGROUND_CLIP["PADDING_BOX"] = 1] = "PADDING_BOX";
		BACKGROUND_CLIP[BACKGROUND_CLIP["CONTENT_BOX"] = 2] = "CONTENT_BOX";
	})(BACKGROUND_CLIP || (BACKGROUND_CLIP = {}));
	var backgroundClip = {
		name: 'background-clip',
		initialValue: 'border-box',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens.map(function (token) {
				if (isIdentToken(token)) {
					switch (token.value) {
						case 'padding-box':
							return BACKGROUND_CLIP.PADDING_BOX;
						case 'content-box':
							return BACKGROUND_CLIP.CONTENT_BOX;
					}
				}
				return BACKGROUND_CLIP.BORDER_BOX;
			});
		}
	};

	var backgroundColor = {
		name: "background-color",
		initialValue: 'transparent',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'color'
	};

	var parseColorStop = function (args) {
		var color$1 = color.parse(args[0]);
		var stop = args[1];
		return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null };
	};
	var processColorStops = function (stops, lineLength) {
		var first = stops[0];
		var last = stops[stops.length - 1];
		if (first.stop === null) {
			first.stop = ZERO_LENGTH;
		}
		if (last.stop === null) {
			last.stop = HUNDRED_PERCENT;
		}
		var processStops = [];
		var previous = 0;
		for (var i = 0; i < stops.length; i++) {
			var stop_1 = stops[i].stop;
			if (stop_1 !== null) {
				var absoluteValue = getAbsoluteValue(stop_1, lineLength);
				if (absoluteValue > previous) {
					processStops.push(absoluteValue);
				}
				else {
					processStops.push(previous);
				}
				previous = absoluteValue;
			}
			else {
				processStops.push(null);
			}
		}
		var gapBegin = null;
		for (var i = 0; i < processStops.length; i++) {
			var stop_2 = processStops[i];
			if (stop_2 === null) {
				if (gapBegin === null) {
					gapBegin = i;
				}
			}
			else if (gapBegin !== null) {
				var gapLength = i - gapBegin;
				var beforeGap = processStops[gapBegin - 1];
				var gapValue = (stop_2 - beforeGap) / (gapLength + 1);
				for (var g = 1; g <= gapLength; g++) {
					processStops[gapBegin + g - 1] = gapValue * g;
				}
				gapBegin = null;
			}
		}
		return stops.map(function (_a, i) {
			var color = _a.color;
			return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };
		});
	};
	var getAngleFromCorner = function (corner, width, height) {
		var centerX = width / 2;
		var centerY = height / 2;
		var x = getAbsoluteValue(corner[0], width) - centerX;
		var y = centerY - getAbsoluteValue(corner[1], height);
		return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);
	};
	var calculateGradientDirection = function (angle, width, height) {
		var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);
		var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));
		var halfWidth = width / 2;
		var halfHeight = height / 2;
		var halfLineLength = lineLength / 2;
		var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;
		var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;
		return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];
	};
	var distance = function (a, b) { return Math.sqrt(a * a + b * b); };
	var findCorner = function (width, height, x, y, closest) {
		var corners = [[0, 0], [0, height], [width, 0], [width, height]];
		return corners.reduce(function (stat, corner) {
			var cx = corner[0], cy = corner[1];
			var d = distance(x - cx, y - cy);
			if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {
				return {
					optimumCorner: corner,
					optimumDistance: d
				};
			}
			return stat;
		}, {
			optimumDistance: closest ? Infinity : -Infinity,
			optimumCorner: null
		}).optimumCorner;
	};
	var calculateRadius = function (gradient, x, y, width, height) {
		var rx = 0;
		var ry = 0;
		switch (gradient.size) {
			case CSSRadialExtent.CLOSEST_SIDE:
				// The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.
				// If the shape is an ellipse, it exactly meets the closest side in each dimension.
				if (gradient.shape === CSSRadialShape.CIRCLE) {
					rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));
				}
				else if (gradient.shape === CSSRadialShape.ELLIPSE) {
					rx = Math.min(Math.abs(x), Math.abs(x - width));
					ry = Math.min(Math.abs(y), Math.abs(y - height));
				}
				break;
			case CSSRadialExtent.CLOSEST_CORNER:
				// The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.
				// If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.
				if (gradient.shape === CSSRadialShape.CIRCLE) {
					rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));
				}
				else if (gradient.shape === CSSRadialShape.ELLIPSE) {
					// Compute the ratio ry/rx (which is to be the same as for "closest-side")
					var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));
					var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];
					rx = distance(cx - x, (cy - y) / c);
					ry = c * rx;
				}
				break;
			case CSSRadialExtent.FARTHEST_SIDE:
				// Same as closest-side, except the ending shape is sized based on the farthest side(s)
				if (gradient.shape === CSSRadialShape.CIRCLE) {
					rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));
				}
				else if (gradient.shape === CSSRadialShape.ELLIPSE) {
					rx = Math.max(Math.abs(x), Math.abs(x - width));
					ry = Math.max(Math.abs(y), Math.abs(y - height));
				}
				break;
			case CSSRadialExtent.FARTHEST_CORNER:
				// Same as closest-corner, except the ending shape is sized based on the farthest corner.
				// If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.
				if (gradient.shape === CSSRadialShape.CIRCLE) {
					rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));
				}
				else if (gradient.shape === CSSRadialShape.ELLIPSE) {
					// Compute the ratio ry/rx (which is to be the same as for "farthest-side")
					var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));
					var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];
					rx = distance(cx - x, (cy - y) / c);
					ry = c * rx;
				}
				break;
		}
		if (Array.isArray(gradient.size)) {
			rx = getAbsoluteValue(gradient.size[0], width);
			ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;
		}
		return [rx, ry];
	};

	var linearGradient = function (tokens) {
		var angle$1 = deg(180);
		var stops = [];
		parseFunctionArgs(tokens).forEach(function (arg, i) {
			if (i === 0) {
				var firstToken = arg[0];
				if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {
					angle$1 = parseNamedSide(arg);
					return;
				}
				else if (isAngle(firstToken)) {
					angle$1 = angle.parse(firstToken);
					return;
				}
			}
			var colorStop = parseColorStop(arg);
			stops.push(colorStop);
		});
		return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT };
	};

	var prefixLinearGradient = function (tokens) {
		var angle$1 = deg(180);
		var stops = [];
		parseFunctionArgs(tokens).forEach(function (arg, i) {
			if (i === 0) {
				var firstToken = arg[0];
				if (firstToken.type === TokenType.IDENT_TOKEN &&
					['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {
					angle$1 = parseNamedSide(arg);
					return;
				}
				else if (isAngle(firstToken)) {
					angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360);
					return;
				}
			}
			var colorStop = parseColorStop(arg);
			stops.push(colorStop);
		});
		return {
			angle: angle$1,
			stops: stops,
			type: CSSImageType.LINEAR_GRADIENT
		};
	};

	var testRangeBounds = function (document) {
		var TEST_HEIGHT = 123;
		if (document.createRange) {
			var range = document.createRange();
			if (range.getBoundingClientRect) {
				var testElement = document.createElement('boundtest');
				testElement.style.height = TEST_HEIGHT + "px";
				testElement.style.display = 'block';
				document.body.appendChild(testElement);
				range.selectNode(testElement);
				var rangeBounds = range.getBoundingClientRect();
				var rangeHeight = Math.round(rangeBounds.height);
				document.body.removeChild(testElement);
				if (rangeHeight === TEST_HEIGHT) {
					return true;
				}
			}
		}
		return false;
	};
	var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };
	var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };
	var testSVG = function (document) {
		var img = new Image();
		var canvas = document.createElement('canvas');
		var ctx = canvas.getContext('2d');
		if (!ctx) {
			return false;
		}
		img.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
		try {
			ctx.drawImage(img, 0, 0);
			canvas.toDataURL();
		}
		catch (e) {
			return false;
		}
		return true;
	};
	var isGreenPixel = function (data) {
		return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;
	};
	var testForeignObject = function (document) {
		var canvas = document.createElement('canvas');
		var size = 100;
		canvas.width = size;
		canvas.height = size;
		var ctx = canvas.getContext('2d');
		if (!ctx) {
			return Promise.reject(false);
		}
		ctx.fillStyle = 'rgb(0, 255, 0)';
		ctx.fillRect(0, 0, size, size);
		var img = new Image();
		var greenImageSrc = canvas.toDataURL();
		img.src = greenImageSrc;
		var svg = createForeignObjectSVG(size, size, 0, 0, img);
		ctx.fillStyle = 'red';
		ctx.fillRect(0, 0, size, size);
		return loadSerializedSVG(svg)
			.then(function (img) {
				ctx.drawImage(img, 0, 0);
				var data = ctx.getImageData(0, 0, size, size).data;
				ctx.fillStyle = 'red';
				ctx.fillRect(0, 0, size, size);
				var node = document.createElement('div');
				node.style.backgroundImage = "url(" + greenImageSrc + ")";
				node.style.height = size + "px";
				// Firefox 55 does not render inline <img /> tags
				return isGreenPixel(data)
					? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))
					: Promise.reject(false);
			})
			.then(function (img) {
				ctx.drawImage(img, 0, 0);
				// Edge does not render background-images
				return isGreenPixel(ctx.getImageData(0, 0, size, size).data);
			})
			.catch(function () { return false; });
	};
	var createForeignObjectSVG = function (width, height, x, y, node) {
		var xmlns = 'http://www.w3.org/2000/svg';
		var svg = document.createElementNS(xmlns, 'svg');
		var foreignObject = document.createElementNS(xmlns, 'foreignObject');
		svg.setAttributeNS(null, 'width', width.toString());
		svg.setAttributeNS(null, 'height', height.toString());
		foreignObject.setAttributeNS(null, 'width', '100%');
		foreignObject.setAttributeNS(null, 'height', '100%');
		foreignObject.setAttributeNS(null, 'x', x.toString());
		foreignObject.setAttributeNS(null, 'y', y.toString());
		foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');
		svg.appendChild(foreignObject);
		foreignObject.appendChild(node);
		return svg;
	};
	var loadSerializedSVG = function (svg) {
		return new Promise(function (resolve, reject) {
			var img = new Image();
			img.onload = function () { return resolve(img); };
			img.onerror = reject;
			img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg));
		});
	};
	var FEATURES = {
		get SUPPORT_RANGE_BOUNDS() {
			var value = testRangeBounds(document);
			Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });
			return value;
		},
		get SUPPORT_SVG_DRAWING() {
			var value = testSVG(document);
			Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });
			return value;
		},
		get SUPPORT_FOREIGNOBJECT_DRAWING() {
			var value = typeof Array.from === 'function' && typeof window.fetch === 'function'
				? testForeignObject(document)
				: Promise.resolve(false);
			Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });
			return value;
		},
		get SUPPORT_CORS_IMAGES() {
			var value = testCORS();
			Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });
			return value;
		},
		get SUPPORT_RESPONSE_TYPE() {
			var value = testResponseType();
			Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });
			return value;
		},
		get SUPPORT_CORS_XHR() {
			var value = 'withCredentials' in new XMLHttpRequest();
			Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });
			return value;
		}
	};

	var Logger = /** @class */ (function () {
		function Logger(_a) {
			var id = _a.id, enabled = _a.enabled;
			this.id = id;
			this.enabled = enabled;
			this.start = Date.now();
		}
		// eslint-disable-next-line @typescript-eslint/no-explicit-any
		Logger.prototype.debug = function () {
			var args = [];
			for (var _i = 0; _i < arguments.length; _i++) {
				args[_i] = arguments[_i];
			}
			if (this.enabled) {
				// eslint-disable-next-line no-console
				if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {
					// eslint-disable-next-line no-console
					console.debug.apply(console, [this.id, this.getTime() + "ms"].concat(args));
				}
				else {
					this.info.apply(this, args);
				}
			}
		};
		Logger.prototype.getTime = function () {
			return Date.now() - this.start;
		};
		Logger.create = function (options) {
			Logger.instances[options.id] = new Logger(options);
		};
		Logger.destroy = function (id) {
			delete Logger.instances[id];
		};
		Logger.getInstance = function (id) {
			var instance = Logger.instances[id];
			if (typeof instance === 'undefined') {
				throw new Error("No logger instance found with id " + id);
			}
			return instance;
		};
		// eslint-disable-next-line @typescript-eslint/no-explicit-any
		Logger.prototype.info = function () {
			var args = [];
			for (var _i = 0; _i < arguments.length; _i++) {
				args[_i] = arguments[_i];
			}
			if (this.enabled) {
				// eslint-disable-next-line no-console
				if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {
					// eslint-disable-next-line no-console
					console.info.apply(console, [this.id, this.getTime() + "ms"].concat(args));
				}
			}
		};
		// eslint-disable-next-line @typescript-eslint/no-explicit-any
		Logger.prototype.error = function () {
			var args = [];
			for (var _i = 0; _i < arguments.length; _i++) {
				args[_i] = arguments[_i];
			}
			if (this.enabled) {
				// eslint-disable-next-line no-console
				if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {
					// eslint-disable-next-line no-console
					console.error.apply(console, [this.id, this.getTime() + "ms"].concat(args));
				}
				else {
					this.info.apply(this, args);
				}
			}
		};
		Logger.instances = {};
		return Logger;
	}());

	var CacheStorage = /** @class */ (function () {
		function CacheStorage() {
		}
		CacheStorage.create = function (name, options) {
			return (CacheStorage._caches[name] = new Cache(name, options));
		};
		CacheStorage.destroy = function (name) {
			delete CacheStorage._caches[name];
		};
		CacheStorage.open = function (name) {
			var cache = CacheStorage._caches[name];
			if (typeof cache !== 'undefined') {
				return cache;
			}
			throw new Error("Cache with key \"" + name + "\" not found");
		};
		CacheStorage.getOrigin = function (url) {
			var link = CacheStorage._link;
			if (!link) {
				return 'about:blank';
			}
			link.href = url;
			link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/
			return link.protocol + link.hostname + link.port;
		};
		CacheStorage.isSameOrigin = function (src) {
			return CacheStorage.getOrigin(src) === CacheStorage._origin;
		};
		CacheStorage.setContext = function (window) {
			CacheStorage._link = window.document.createElement('a');
			CacheStorage._origin = CacheStorage.getOrigin(window.location.href);
		};
		CacheStorage.getInstance = function () {
			var current = CacheStorage._current;
			if (current === null) {
				throw new Error("No cache instance attached");
			}
			return current;
		};
		CacheStorage.attachInstance = function (cache) {
			CacheStorage._current = cache;
		};
		CacheStorage.detachInstance = function () {
			CacheStorage._current = null;
		};
		CacheStorage._caches = {};
		CacheStorage._origin = 'about:blank';
		CacheStorage._current = null;
		return CacheStorage;
	}());
	var Cache = /** @class */ (function () {
		function Cache(id, options) {
			this.id = id;
			this._options = options;
			this._cache = {};
		}
		Cache.prototype.addImage = function (src) {
			var result = Promise.resolve();
			if (this.has(src)) {
				return result;
			}
			if (isBlobImage(src) || isRenderable(src)) {
				this._cache[src] = this.loadImage(src);
				return result;
			}
			return result;
		};
		// eslint-disable-next-line @typescript-eslint/no-explicit-any
		Cache.prototype.match = function (src) {
			return this._cache[src];
		};
		Cache.prototype.loadImage = function (key) {
			return __awaiter(this, void 0, void 0, function () {
				var isSameOrigin, useCORS, useProxy, src;
				var _this = this;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							isSameOrigin = CacheStorage.isSameOrigin(key);
							useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;
							useProxy = !isInlineImage(key) &&
								!isSameOrigin &&
								typeof this._options.proxy === 'string' &&
								FEATURES.SUPPORT_CORS_XHR &&
								!useCORS;
							if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {
								return [2 /*return*/];
							}
							src = key;
							if (!useProxy) return [3 /*break*/, 2];
							return [4 /*yield*/, this.proxy(src)];
						case 1:
							src = _a.sent();
							_a.label = 2;
						case 2:
							Logger.getInstance(this.id).debug("Added image " + key.substring(0, 256));
							return [4 /*yield*/, new Promise(function (resolve, reject) {
								var img = new Image();
								img.onload = function () { return resolve(img); };
								img.onerror = reject;
								//ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous
								if (isInlineBase64Image(src) || useCORS) {
									img.crossOrigin = 'anonymous';
								}
								img.src = src;
								if (img.complete === true) {
									// Inline XML images may fail to parse, throwing an Error later on
									setTimeout(function () { return resolve(img); }, 500);
								}
								if (_this._options.imageTimeout > 0) {
									setTimeout(function () { return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); }, _this._options.imageTimeout);
								}
							})];
						case 3: return [2 /*return*/, _a.sent()];
					}
				});
			});
		};
		Cache.prototype.has = function (key) {
			return typeof this._cache[key] !== 'undefined';
		};
		Cache.prototype.keys = function () {
			return Promise.resolve(Object.keys(this._cache));
		};
		Cache.prototype.proxy = function (src) {
			var _this = this;
			var proxy = this._options.proxy;
			if (!proxy) {
				throw new Error('No proxy defined');
			}
			var key = src.substring(0, 256);
			return new Promise(function (resolve, reject) {
				var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';
				var xhr = new XMLHttpRequest();
				xhr.onload = function () {
					if (xhr.status === 200) {
						if (responseType === 'text') {
							resolve(xhr.response);
						}
						else {
							var reader_1 = new FileReader();
							reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);
							reader_1.addEventListener('error', function (e) { return reject(e); }, false);
							reader_1.readAsDataURL(xhr.response);
						}
					}
					else {
						reject("Failed to proxy resource " + key + " with status code " + xhr.status);
					}
				};
				xhr.onerror = reject;
				xhr.open('GET', proxy + "?url=" + encodeURIComponent(src) + "&responseType=" + responseType);
				if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {
					xhr.responseType = responseType;
				}
				if (_this._options.imageTimeout) {
					var timeout_1 = _this._options.imageTimeout;
					xhr.timeout = timeout_1;
					xhr.ontimeout = function () { return reject("Timed out (" + timeout_1 + "ms) proxying " + key); };
				}
				xhr.send();
			});
		};
		return Cache;
	}());
	var INLINE_SVG = /^data:image\/svg\+xml/i;
	var INLINE_BASE64 = /^data:image\/.*;base64,/i;
	var INLINE_IMG = /^data:image\/.*/i;
	var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };
	var isInlineImage = function (src) { return INLINE_IMG.test(src); };
	var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };
	var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };
	var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };

	var webkitGradient = function (tokens) {
		var angle = deg(180);
		var stops = [];
		var type = CSSImageType.LINEAR_GRADIENT;
		var shape = CSSRadialShape.CIRCLE;
		var size = CSSRadialExtent.FARTHEST_CORNER;
		var position = [];
		parseFunctionArgs(tokens).forEach(function (arg, i) {
			var firstToken = arg[0];
			if (i === 0) {
				if (isIdentToken(firstToken) && firstToken.value === 'linear') {
					type = CSSImageType.LINEAR_GRADIENT;
					return;
				}
				else if (isIdentToken(firstToken) && firstToken.value === 'radial') {
					type = CSSImageType.RADIAL_GRADIENT;
					return;
				}
			}
			if (firstToken.type === TokenType.FUNCTION) {
				if (firstToken.name === 'from') {
					var color$1 = color.parse(firstToken.values[0]);
					stops.push({ stop: ZERO_LENGTH, color: color$1 });
				}
				else if (firstToken.name === 'to') {
					var color$1 = color.parse(firstToken.values[0]);
					stops.push({ stop: HUNDRED_PERCENT, color: color$1 });
				}
				else if (firstToken.name === 'color-stop') {
					var values = firstToken.values.filter(nonFunctionArgSeparator);
					if (values.length === 2) {
						var color$1 = color.parse(values[1]);
						var stop_1 = values[0];
						if (isNumberToken(stop_1)) {
							stops.push({
								stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags },
								color: color$1
							});
						}
					}
				}
			}
		});
		return type === CSSImageType.LINEAR_GRADIENT
			? {
				angle: (angle + deg(180)) % deg(360),
				stops: stops,
				type: type
			}
			: { size: size, shape: shape, stops: stops, position: position, type: type };
	};

	var CLOSEST_SIDE = 'closest-side';
	var FARTHEST_SIDE = 'farthest-side';
	var CLOSEST_CORNER = 'closest-corner';
	var FARTHEST_CORNER = 'farthest-corner';
	var CIRCLE = 'circle';
	var ELLIPSE = 'ellipse';
	var COVER = 'cover';
	var CONTAIN = 'contain';
	var radialGradient = function (tokens) {
		var shape = CSSRadialShape.CIRCLE;
		var size = CSSRadialExtent.FARTHEST_CORNER;
		var stops = [];
		var position = [];
		parseFunctionArgs(tokens).forEach(function (arg, i) {
			var isColorStop = true;
			if (i === 0) {
				var isAtPosition_1 = false;
				isColorStop = arg.reduce(function (acc, token) {
					if (isAtPosition_1) {
						if (isIdentToken(token)) {
							switch (token.value) {
								case 'center':
									position.push(FIFTY_PERCENT);
									return acc;
								case 'top':
								case 'left':
									position.push(ZERO_LENGTH);
									return acc;
								case 'right':
								case 'bottom':
									position.push(HUNDRED_PERCENT);
									return acc;
							}
						}
						else if (isLengthPercentage(token) || isLength(token)) {
							position.push(token);
						}
					}
					else if (isIdentToken(token)) {
						switch (token.value) {
							case CIRCLE:
								shape = CSSRadialShape.CIRCLE;
								return false;
							case ELLIPSE:
								shape = CSSRadialShape.ELLIPSE;
								return false;
							case 'at':
								isAtPosition_1 = true;
								return false;
							case CLOSEST_SIDE:
								size = CSSRadialExtent.CLOSEST_SIDE;
								return false;
							case COVER:
							case FARTHEST_SIDE:
								size = CSSRadialExtent.FARTHEST_SIDE;
								return false;
							case CONTAIN:
							case CLOSEST_CORNER:
								size = CSSRadialExtent.CLOSEST_CORNER;
								return false;
							case FARTHEST_CORNER:
								size = CSSRadialExtent.FARTHEST_CORNER;
								return false;
						}
					}
					else if (isLength(token) || isLengthPercentage(token)) {
						if (!Array.isArray(size)) {
							size = [];
						}
						size.push(token);
						return false;
					}
					return acc;
				}, isColorStop);
			}
			if (isColorStop) {
				var colorStop = parseColorStop(arg);
				stops.push(colorStop);
			}
		});
		return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };
	};

	var prefixRadialGradient = function (tokens) {
		var shape = CSSRadialShape.CIRCLE;
		var size = CSSRadialExtent.FARTHEST_CORNER;
		var stops = [];
		var position = [];
		parseFunctionArgs(tokens).forEach(function (arg, i) {
			var isColorStop = true;
			if (i === 0) {
				isColorStop = arg.reduce(function (acc, token) {
					if (isIdentToken(token)) {
						switch (token.value) {
							case 'center':
								position.push(FIFTY_PERCENT);
								return false;
							case 'top':
							case 'left':
								position.push(ZERO_LENGTH);
								return false;
							case 'right':
							case 'bottom':
								position.push(HUNDRED_PERCENT);
								return false;
						}
					}
					else if (isLengthPercentage(token) || isLength(token)) {
						position.push(token);
						return false;
					}
					return acc;
				}, isColorStop);
			}
			else if (i === 1) {
				isColorStop = arg.reduce(function (acc, token) {
					if (isIdentToken(token)) {
						switch (token.value) {
							case CIRCLE:
								shape = CSSRadialShape.CIRCLE;
								return false;
							case ELLIPSE:
								shape = CSSRadialShape.ELLIPSE;
								return false;
							case CONTAIN:
							case CLOSEST_SIDE:
								size = CSSRadialExtent.CLOSEST_SIDE;
								return false;
							case FARTHEST_SIDE:
								size = CSSRadialExtent.FARTHEST_SIDE;
								return false;
							case CLOSEST_CORNER:
								size = CSSRadialExtent.CLOSEST_CORNER;
								return false;
							case COVER:
							case FARTHEST_CORNER:
								size = CSSRadialExtent.FARTHEST_CORNER;
								return false;
						}
					}
					else if (isLength(token) || isLengthPercentage(token)) {
						if (!Array.isArray(size)) {
							size = [];
						}
						size.push(token);
						return false;
					}
					return acc;
				}, isColorStop);
			}
			if (isColorStop) {
				var colorStop = parseColorStop(arg);
				stops.push(colorStop);
			}
		});
		return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };
	};

	var CSSImageType;
	(function (CSSImageType) {
		CSSImageType[CSSImageType["URL"] = 0] = "URL";
		CSSImageType[CSSImageType["LINEAR_GRADIENT"] = 1] = "LINEAR_GRADIENT";
		CSSImageType[CSSImageType["RADIAL_GRADIENT"] = 2] = "RADIAL_GRADIENT";
	})(CSSImageType || (CSSImageType = {}));
	var isLinearGradient = function (background) {
		return background.type === CSSImageType.LINEAR_GRADIENT;
	};
	var isRadialGradient = function (background) {
		return background.type === CSSImageType.RADIAL_GRADIENT;
	};
	var CSSRadialShape;
	(function (CSSRadialShape) {
		CSSRadialShape[CSSRadialShape["CIRCLE"] = 0] = "CIRCLE";
		CSSRadialShape[CSSRadialShape["ELLIPSE"] = 1] = "ELLIPSE";
	})(CSSRadialShape || (CSSRadialShape = {}));
	var CSSRadialExtent;
	(function (CSSRadialExtent) {
		CSSRadialExtent[CSSRadialExtent["CLOSEST_SIDE"] = 0] = "CLOSEST_SIDE";
		CSSRadialExtent[CSSRadialExtent["FARTHEST_SIDE"] = 1] = "FARTHEST_SIDE";
		CSSRadialExtent[CSSRadialExtent["CLOSEST_CORNER"] = 2] = "CLOSEST_CORNER";
		CSSRadialExtent[CSSRadialExtent["FARTHEST_CORNER"] = 3] = "FARTHEST_CORNER";
	})(CSSRadialExtent || (CSSRadialExtent = {}));
	var image = {
		name: 'image',
		parse: function (value) {
			if (value.type === TokenType.URL_TOKEN) {
				var image_1 = { url: value.value, type: CSSImageType.URL };
				CacheStorage.getInstance().addImage(value.value);
				return image_1;
			}
			if (value.type === TokenType.FUNCTION) {
				var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];
				if (typeof imageFunction === 'undefined') {
					throw new Error("Attempting to parse an unsupported image function \"" + value.name + "\"");
				}
				return imageFunction(value.values);
			}
			throw new Error("Unsupported image type");
		}
	};
	function isSupportedImage(value) {
		return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name];
	}
	var SUPPORTED_IMAGE_FUNCTIONS = {
		'linear-gradient': linearGradient,
		'-moz-linear-gradient': prefixLinearGradient,
		'-ms-linear-gradient': prefixLinearGradient,
		'-o-linear-gradient': prefixLinearGradient,
		'-webkit-linear-gradient': prefixLinearGradient,
		'radial-gradient': radialGradient,
		'-moz-radial-gradient': prefixRadialGradient,
		'-ms-radial-gradient': prefixRadialGradient,
		'-o-radial-gradient': prefixRadialGradient,
		'-webkit-radial-gradient': prefixRadialGradient,
		'-webkit-gradient': webkitGradient
	};

	var backgroundImage = {
		name: 'background-image',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			if (tokens.length === 0) {
				return [];
			}
			var first = tokens[0];
			if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {
				return [];
			}
			return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse);
		}
	};

	var backgroundOrigin = {
		name: 'background-origin',
		initialValue: 'border-box',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens.map(function (token) {
				if (isIdentToken(token)) {
					switch (token.value) {
						case 'padding-box':
							return 1 /* PADDING_BOX */;
						case 'content-box':
							return 2 /* CONTENT_BOX */;
					}
				}
				return 0 /* BORDER_BOX */;
			});
		}
	};

	var backgroundPosition = {
		name: 'background-position',
		initialValue: '0% 0%',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			return parseFunctionArgs(tokens)
				.map(function (values) { return values.filter(isLengthPercentage); })
				.map(parseLengthPercentageTuple);
		}
	};

	var BACKGROUND_REPEAT;
	(function (BACKGROUND_REPEAT) {
		BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT"] = 0] = "REPEAT";
		BACKGROUND_REPEAT[BACKGROUND_REPEAT["NO_REPEAT"] = 1] = "NO_REPEAT";
		BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_X"] = 2] = "REPEAT_X";
		BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_Y"] = 3] = "REPEAT_Y";
	})(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {}));
	var backgroundRepeat = {
		name: 'background-repeat',
		initialValue: 'repeat',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return parseFunctionArgs(tokens)
				.map(function (values) {
					return values
						.filter(isIdentToken)
						.map(function (token) { return token.value; })
						.join(' ');
				})
				.map(parseBackgroundRepeat);
		}
	};
	var parseBackgroundRepeat = function (value) {
		switch (value) {
			case 'no-repeat':
				return BACKGROUND_REPEAT.NO_REPEAT;
			case 'repeat-x':
			case 'repeat no-repeat':
				return BACKGROUND_REPEAT.REPEAT_X;
			case 'repeat-y':
			case 'no-repeat repeat':
				return BACKGROUND_REPEAT.REPEAT_Y;
			case 'repeat':
			default:
				return BACKGROUND_REPEAT.REPEAT;
		}
	};

	var BACKGROUND_SIZE;
	(function (BACKGROUND_SIZE) {
		BACKGROUND_SIZE["AUTO"] = "auto";
		BACKGROUND_SIZE["CONTAIN"] = "contain";
		BACKGROUND_SIZE["COVER"] = "cover";
	})(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));
	var backgroundSize = {
		name: 'background-size',
		initialValue: '0',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });
		}
	};
	var isBackgroundSizeInfoToken = function (value) {
		return isIdentToken(value) || isLengthPercentage(value);
	};

	var borderColorForSide = function (side) { return ({
		name: "border-" + side + "-color",
		initialValue: 'transparent',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'color'
	}); };
	var borderTopColor = borderColorForSide('top');
	var borderRightColor = borderColorForSide('right');
	var borderBottomColor = borderColorForSide('bottom');
	var borderLeftColor = borderColorForSide('left');

	var borderRadiusForSide = function (side) { return ({
		name: "border-radius-" + side,
		initialValue: '0 0',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); }
	}); };
	var borderTopLeftRadius = borderRadiusForSide('top-left');
	var borderTopRightRadius = borderRadiusForSide('top-right');
	var borderBottomRightRadius = borderRadiusForSide('bottom-right');
	var borderBottomLeftRadius = borderRadiusForSide('bottom-left');

	var BORDER_STYLE;
	(function (BORDER_STYLE) {
		BORDER_STYLE[BORDER_STYLE["NONE"] = 0] = "NONE";
		BORDER_STYLE[BORDER_STYLE["SOLID"] = 1] = "SOLID";
	})(BORDER_STYLE || (BORDER_STYLE = {}));
	var borderStyleForSide = function (side) { return ({
		name: "border-" + side + "-style",
		initialValue: 'solid',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (style) {
			switch (style) {
				case 'none':
					return BORDER_STYLE.NONE;
			}
			return BORDER_STYLE.SOLID;
		}
	}); };
	var borderTopStyle = borderStyleForSide('top');
	var borderRightStyle = borderStyleForSide('right');
	var borderBottomStyle = borderStyleForSide('bottom');
	var borderLeftStyle = borderStyleForSide('left');

	var borderWidthForSide = function (side) { return ({
		name: "border-" + side + "-width",
		initialValue: '0',
		type: PropertyDescriptorParsingType.VALUE,
		prefix: false,
		parse: function (token) {
			if (isDimensionToken(token)) {
				return token.number;
			}
			return 0;
		}
	}); };
	var borderTopWidth = borderWidthForSide('top');
	var borderRightWidth = borderWidthForSide('right');
	var borderBottomWidth = borderWidthForSide('bottom');
	var borderLeftWidth = borderWidthForSide('left');

	var color$1 = {
		name: "color",
		initialValue: 'transparent',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'color'
	};

	var display = {
		name: 'display',
		initialValue: 'inline-block',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens.filter(isIdentToken).reduce(function (bit, token) {
				return bit | parseDisplayValue(token.value);
			}, 0 /* NONE */);
		}
	};
	var parseDisplayValue = function (display) {
		switch (display) {
			case 'block':
				return 2 /* BLOCK */;
			case 'inline':
				return 4 /* INLINE */;
			case 'run-in':
				return 8 /* RUN_IN */;
			case 'flow':
				return 16 /* FLOW */;
			case 'flow-root':
				return 32 /* FLOW_ROOT */;
			case 'table':
				return 64 /* TABLE */;
			case 'flex':
			case '-webkit-flex':
				return 128 /* FLEX */;
			case 'grid':
			case '-ms-grid':
				return 256 /* GRID */;
			case 'ruby':
				return 512 /* RUBY */;
			case 'subgrid':
				return 1024 /* SUBGRID */;
			case 'list-item':
				return 2048 /* LIST_ITEM */;
			case 'table-row-group':
				return 4096 /* TABLE_ROW_GROUP */;
			case 'table-header-group':
				return 8192 /* TABLE_HEADER_GROUP */;
			case 'table-footer-group':
				return 16384 /* TABLE_FOOTER_GROUP */;
			case 'table-row':
				return 32768 /* TABLE_ROW */;
			case 'table-cell':
				return 65536 /* TABLE_CELL */;
			case 'table-column-group':
				return 131072 /* TABLE_COLUMN_GROUP */;
			case 'table-column':
				return 262144 /* TABLE_COLUMN */;
			case 'table-caption':
				return 524288 /* TABLE_CAPTION */;
			case 'ruby-base':
				return 1048576 /* RUBY_BASE */;
			case 'ruby-text':
				return 2097152 /* RUBY_TEXT */;
			case 'ruby-base-container':
				return 4194304 /* RUBY_BASE_CONTAINER */;
			case 'ruby-text-container':
				return 8388608 /* RUBY_TEXT_CONTAINER */;
			case 'contents':
				return 16777216 /* CONTENTS */;
			case 'inline-block':
				return 33554432 /* INLINE_BLOCK */;
			case 'inline-list-item':
				return 67108864 /* INLINE_LIST_ITEM */;
			case 'inline-table':
				return 134217728 /* INLINE_TABLE */;
			case 'inline-flex':
				return 268435456 /* INLINE_FLEX */;
			case 'inline-grid':
				return 536870912 /* INLINE_GRID */;
		}
		return 0 /* NONE */;
	};

	var FLOAT;
	(function (FLOAT) {
		FLOAT[FLOAT["NONE"] = 0] = "NONE";
		FLOAT[FLOAT["LEFT"] = 1] = "LEFT";
		FLOAT[FLOAT["RIGHT"] = 2] = "RIGHT";
		FLOAT[FLOAT["INLINE_START"] = 3] = "INLINE_START";
		FLOAT[FLOAT["INLINE_END"] = 4] = "INLINE_END";
	})(FLOAT || (FLOAT = {}));
	var float = {
		name: 'float',
		initialValue: 'none',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (float) {
			switch (float) {
				case 'left':
					return FLOAT.LEFT;
				case 'right':
					return FLOAT.RIGHT;
				case 'inline-start':
					return FLOAT.INLINE_START;
				case 'inline-end':
					return FLOAT.INLINE_END;
			}
			return FLOAT.NONE;
		}
	};

	var letterSpacing = {
		name: 'letter-spacing',
		initialValue: '0',
		prefix: false,
		type: PropertyDescriptorParsingType.VALUE,
		parse: function (token) {
			if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {
				return 0;
			}
			if (token.type === TokenType.NUMBER_TOKEN) {
				return token.number;
			}
			if (token.type === TokenType.DIMENSION_TOKEN) {
				return token.number;
			}
			return 0;
		}
	};

	var LINE_BREAK;
	(function (LINE_BREAK) {
		LINE_BREAK["NORMAL"] = "normal";
		LINE_BREAK["STRICT"] = "strict";
	})(LINE_BREAK || (LINE_BREAK = {}));
	var lineBreak = {
		name: 'line-break',
		initialValue: 'normal',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (lineBreak) {
			switch (lineBreak) {
				case 'strict':
					return LINE_BREAK.STRICT;
				case 'normal':
				default:
					return LINE_BREAK.NORMAL;
			}
		}
	};

	var lineHeight = {
		name: 'line-height',
		initialValue: 'normal',
		prefix: false,
		type: PropertyDescriptorParsingType.TOKEN_VALUE
	};
	var computeLineHeight = function (token, fontSize) {
		if (isIdentToken(token) && token.value === 'normal') {
			return 1.2 * fontSize;
		}
		else if (token.type === TokenType.NUMBER_TOKEN) {
			return fontSize * token.number;
		}
		else if (isLengthPercentage(token)) {
			return getAbsoluteValue(token, fontSize);
		}
		return fontSize;
	};

	var listStyleImage = {
		name: 'list-style-image',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.VALUE,
		prefix: false,
		parse: function (token) {
			if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {
				return null;
			}
			return image.parse(token);
		}
	};

	var LIST_STYLE_POSITION;
	(function (LIST_STYLE_POSITION) {
		LIST_STYLE_POSITION[LIST_STYLE_POSITION["INSIDE"] = 0] = "INSIDE";
		LIST_STYLE_POSITION[LIST_STYLE_POSITION["OUTSIDE"] = 1] = "OUTSIDE";
	})(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {}));
	var listStylePosition = {
		name: 'list-style-position',
		initialValue: 'outside',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (position) {
			switch (position) {
				case 'inside':
					return LIST_STYLE_POSITION.INSIDE;
				case 'outside':
				default:
					return LIST_STYLE_POSITION.OUTSIDE;
			}
		}
	};

	var LIST_STYLE_TYPE;
	(function (LIST_STYLE_TYPE) {
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["NONE"] = -1] = "NONE";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISC"] = 0] = "DISC";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CIRCLE"] = 1] = "CIRCLE";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["SQUARE"] = 2] = "SQUARE";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DECIMAL"] = 3] = "DECIMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_DECIMAL"] = 4] = "CJK_DECIMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DECIMAL_LEADING_ZERO"] = 5] = "DECIMAL_LEADING_ZERO";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ROMAN"] = 6] = "LOWER_ROMAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ROMAN"] = 7] = "UPPER_ROMAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_GREEK"] = 8] = "LOWER_GREEK";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ALPHA"] = 9] = "LOWER_ALPHA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ALPHA"] = 10] = "UPPER_ALPHA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["ARABIC_INDIC"] = 11] = "ARABIC_INDIC";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["ARMENIAN"] = 12] = "ARMENIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["BENGALI"] = 13] = "BENGALI";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CAMBODIAN"] = 14] = "CAMBODIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_EARTHLY_BRANCH"] = 15] = "CJK_EARTHLY_BRANCH";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_HEAVENLY_STEM"] = 16] = "CJK_HEAVENLY_STEM";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["CJK_IDEOGRAPHIC"] = 17] = "CJK_IDEOGRAPHIC";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DEVANAGARI"] = 18] = "DEVANAGARI";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["ETHIOPIC_NUMERIC"] = 19] = "ETHIOPIC_NUMERIC";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["GEORGIAN"] = 20] = "GEORGIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["GUJARATI"] = 21] = "GUJARATI";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["GURMUKHI"] = 22] = "GURMUKHI";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["HEBREW"] = 22] = "HEBREW";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["HIRAGANA"] = 23] = "HIRAGANA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["HIRAGANA_IROHA"] = 24] = "HIRAGANA_IROHA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["JAPANESE_FORMAL"] = 25] = "JAPANESE_FORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["JAPANESE_INFORMAL"] = 26] = "JAPANESE_INFORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KANNADA"] = 27] = "KANNADA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KATAKANA"] = 28] = "KATAKANA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KATAKANA_IROHA"] = 29] = "KATAKANA_IROHA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KHMER"] = 30] = "KHMER";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANGUL_FORMAL"] = 31] = "KOREAN_HANGUL_FORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANJA_FORMAL"] = 32] = "KOREAN_HANJA_FORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["KOREAN_HANJA_INFORMAL"] = 33] = "KOREAN_HANJA_INFORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["LAO"] = 34] = "LAO";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["LOWER_ARMENIAN"] = 35] = "LOWER_ARMENIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["MALAYALAM"] = 36] = "MALAYALAM";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["MONGOLIAN"] = 37] = "MONGOLIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["MYANMAR"] = 38] = "MYANMAR";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["ORIYA"] = 39] = "ORIYA";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["PERSIAN"] = 40] = "PERSIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["SIMP_CHINESE_FORMAL"] = 41] = "SIMP_CHINESE_FORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["SIMP_CHINESE_INFORMAL"] = 42] = "SIMP_CHINESE_INFORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["TAMIL"] = 43] = "TAMIL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["TELUGU"] = 44] = "TELUGU";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["THAI"] = 45] = "THAI";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["TIBETAN"] = 46] = "TIBETAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["TRAD_CHINESE_FORMAL"] = 47] = "TRAD_CHINESE_FORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["TRAD_CHINESE_INFORMAL"] = 48] = "TRAD_CHINESE_INFORMAL";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["UPPER_ARMENIAN"] = 49] = "UPPER_ARMENIAN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISCLOSURE_OPEN"] = 50] = "DISCLOSURE_OPEN";
		LIST_STYLE_TYPE[LIST_STYLE_TYPE["DISCLOSURE_CLOSED"] = 51] = "DISCLOSURE_CLOSED";
	})(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {}));
	var listStyleType = {
		name: 'list-style-type',
		initialValue: 'none',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (type) {
			switch (type) {
				case 'disc':
					return LIST_STYLE_TYPE.DISC;
				case 'circle':
					return LIST_STYLE_TYPE.CIRCLE;
				case 'square':
					return LIST_STYLE_TYPE.SQUARE;
				case 'decimal':
					return LIST_STYLE_TYPE.DECIMAL;
				case 'cjk-decimal':
					return LIST_STYLE_TYPE.CJK_DECIMAL;
				case 'decimal-leading-zero':
					return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;
				case 'lower-roman':
					return LIST_STYLE_TYPE.LOWER_ROMAN;
				case 'upper-roman':
					return LIST_STYLE_TYPE.UPPER_ROMAN;
				case 'lower-greek':
					return LIST_STYLE_TYPE.LOWER_GREEK;
				case 'lower-alpha':
					return LIST_STYLE_TYPE.LOWER_ALPHA;
				case 'upper-alpha':
					return LIST_STYLE_TYPE.UPPER_ALPHA;
				case 'arabic-indic':
					return LIST_STYLE_TYPE.ARABIC_INDIC;
				case 'armenian':
					return LIST_STYLE_TYPE.ARMENIAN;
				case 'bengali':
					return LIST_STYLE_TYPE.BENGALI;
				case 'cambodian':
					return LIST_STYLE_TYPE.CAMBODIAN;
				case 'cjk-earthly-branch':
					return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;
				case 'cjk-heavenly-stem':
					return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;
				case 'cjk-ideographic':
					return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;
				case 'devanagari':
					return LIST_STYLE_TYPE.DEVANAGARI;
				case 'ethiopic-numeric':
					return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;
				case 'georgian':
					return LIST_STYLE_TYPE.GEORGIAN;
				case 'gujarati':
					return LIST_STYLE_TYPE.GUJARATI;
				case 'gurmukhi':
					return LIST_STYLE_TYPE.GURMUKHI;
				case 'hebrew':
					return LIST_STYLE_TYPE.HEBREW;
				case 'hiragana':
					return LIST_STYLE_TYPE.HIRAGANA;
				case 'hiragana-iroha':
					return LIST_STYLE_TYPE.HIRAGANA_IROHA;
				case 'japanese-formal':
					return LIST_STYLE_TYPE.JAPANESE_FORMAL;
				case 'japanese-informal':
					return LIST_STYLE_TYPE.JAPANESE_INFORMAL;
				case 'kannada':
					return LIST_STYLE_TYPE.KANNADA;
				case 'katakana':
					return LIST_STYLE_TYPE.KATAKANA;
				case 'katakana-iroha':
					return LIST_STYLE_TYPE.KATAKANA_IROHA;
				case 'khmer':
					return LIST_STYLE_TYPE.KHMER;
				case 'korean-hangul-formal':
					return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;
				case 'korean-hanja-formal':
					return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;
				case 'korean-hanja-informal':
					return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;
				case 'lao':
					return LIST_STYLE_TYPE.LAO;
				case 'lower-armenian':
					return LIST_STYLE_TYPE.LOWER_ARMENIAN;
				case 'malayalam':
					return LIST_STYLE_TYPE.MALAYALAM;
				case 'mongolian':
					return LIST_STYLE_TYPE.MONGOLIAN;
				case 'myanmar':
					return LIST_STYLE_TYPE.MYANMAR;
				case 'oriya':
					return LIST_STYLE_TYPE.ORIYA;
				case 'persian':
					return LIST_STYLE_TYPE.PERSIAN;
				case 'simp-chinese-formal':
					return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;
				case 'simp-chinese-informal':
					return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;
				case 'tamil':
					return LIST_STYLE_TYPE.TAMIL;
				case 'telugu':
					return LIST_STYLE_TYPE.TELUGU;
				case 'thai':
					return LIST_STYLE_TYPE.THAI;
				case 'tibetan':
					return LIST_STYLE_TYPE.TIBETAN;
				case 'trad-chinese-formal':
					return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;
				case 'trad-chinese-informal':
					return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;
				case 'upper-armenian':
					return LIST_STYLE_TYPE.UPPER_ARMENIAN;
				case 'disclosure-open':
					return LIST_STYLE_TYPE.DISCLOSURE_OPEN;
				case 'disclosure-closed':
					return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;
				case 'none':
				default:
					return LIST_STYLE_TYPE.NONE;
			}
		}
	};

	var marginForSide = function (side) { return ({
		name: "margin-" + side,
		initialValue: '0',
		prefix: false,
		type: PropertyDescriptorParsingType.TOKEN_VALUE
	}); };
	var marginTop = marginForSide('top');
	var marginRight = marginForSide('right');
	var marginBottom = marginForSide('bottom');
	var marginLeft = marginForSide('left');

	var OVERFLOW;
	(function (OVERFLOW) {
		OVERFLOW[OVERFLOW["VISIBLE"] = 0] = "VISIBLE";
		OVERFLOW[OVERFLOW["HIDDEN"] = 1] = "HIDDEN";
		OVERFLOW[OVERFLOW["SCROLL"] = 2] = "SCROLL";
		OVERFLOW[OVERFLOW["AUTO"] = 3] = "AUTO";
	})(OVERFLOW || (OVERFLOW = {}));
	var overflow = {
		name: 'overflow',
		initialValue: 'visible',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens.filter(isIdentToken).map(function (overflow) {
				switch (overflow.value) {
					case 'hidden':
						return OVERFLOW.HIDDEN;
					case 'scroll':
						return OVERFLOW.SCROLL;
					case 'auto':
						return OVERFLOW.AUTO;
					case 'visible':
					default:
						return OVERFLOW.VISIBLE;
				}
			});
		}
	};

	var OVERFLOW_WRAP;
	(function (OVERFLOW_WRAP) {
		OVERFLOW_WRAP["NORMAL"] = "normal";
		OVERFLOW_WRAP["BREAK_WORD"] = "break-word";
	})(OVERFLOW_WRAP || (OVERFLOW_WRAP = {}));
	var overflowWrap = {
		name: 'overflow-wrap',
		initialValue: 'normal',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (overflow) {
			switch (overflow) {
				case 'break-word':
					return OVERFLOW_WRAP.BREAK_WORD;
				case 'normal':
				default:
					return OVERFLOW_WRAP.NORMAL;
			}
		}
	};

	var paddingForSide = function (side) { return ({
		name: "padding-" + side,
		initialValue: '0',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'length-percentage'
	}); };
	var paddingTop = paddingForSide('top');
	var paddingRight = paddingForSide('right');
	var paddingBottom = paddingForSide('bottom');
	var paddingLeft = paddingForSide('left');

	var TEXT_ALIGN;
	(function (TEXT_ALIGN) {
		TEXT_ALIGN[TEXT_ALIGN["LEFT"] = 0] = "LEFT";
		TEXT_ALIGN[TEXT_ALIGN["CENTER"] = 1] = "CENTER";
		TEXT_ALIGN[TEXT_ALIGN["RIGHT"] = 2] = "RIGHT";
	})(TEXT_ALIGN || (TEXT_ALIGN = {}));
	var textAlign = {
		name: 'text-align',
		initialValue: 'left',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (textAlign) {
			switch (textAlign) {
				case 'right':
					return TEXT_ALIGN.RIGHT;
				case 'center':
				case 'justify':
					return TEXT_ALIGN.CENTER;
				case 'left':
				default:
					return TEXT_ALIGN.LEFT;
			}
		}
	};

	var POSITION;
	(function (POSITION) {
		POSITION[POSITION["STATIC"] = 0] = "STATIC";
		POSITION[POSITION["RELATIVE"] = 1] = "RELATIVE";
		POSITION[POSITION["ABSOLUTE"] = 2] = "ABSOLUTE";
		POSITION[POSITION["FIXED"] = 3] = "FIXED";
		POSITION[POSITION["STICKY"] = 4] = "STICKY";
	})(POSITION || (POSITION = {}));
	var position = {
		name: 'position',
		initialValue: 'static',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (position) {
			switch (position) {
				case 'relative':
					return POSITION.RELATIVE;
				case 'absolute':
					return POSITION.ABSOLUTE;
				case 'fixed':
					return POSITION.FIXED;
				case 'sticky':
					return POSITION.STICKY;
			}
			return POSITION.STATIC;
		}
	};

	var textShadow = {
		name: 'text-shadow',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {
				return [];
			}
			return parseFunctionArgs(tokens).map(function (values) {
				var shadow = {
					color: COLORS.TRANSPARENT,
					offsetX: ZERO_LENGTH,
					offsetY: ZERO_LENGTH,
					blur: ZERO_LENGTH
				};
				var c = 0;
				for (var i = 0; i < values.length; i++) {
					var token = values[i];
					if (isLength(token)) {
						if (c === 0) {
							shadow.offsetX = token;
						}
						else if (c === 1) {
							shadow.offsetY = token;
						}
						else {
							shadow.blur = token;
						}
						c++;
					}
					else {
						shadow.color = color.parse(token);
					}
				}
				return shadow;
			});
		}
	};

	var TEXT_TRANSFORM;
	(function (TEXT_TRANSFORM) {
		TEXT_TRANSFORM[TEXT_TRANSFORM["NONE"] = 0] = "NONE";
		TEXT_TRANSFORM[TEXT_TRANSFORM["LOWERCASE"] = 1] = "LOWERCASE";
		TEXT_TRANSFORM[TEXT_TRANSFORM["UPPERCASE"] = 2] = "UPPERCASE";
		TEXT_TRANSFORM[TEXT_TRANSFORM["CAPITALIZE"] = 3] = "CAPITALIZE";
	})(TEXT_TRANSFORM || (TEXT_TRANSFORM = {}));
	var textTransform = {
		name: 'text-transform',
		initialValue: 'none',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (textTransform) {
			switch (textTransform) {
				case 'uppercase':
					return TEXT_TRANSFORM.UPPERCASE;
				case 'lowercase':
					return TEXT_TRANSFORM.LOWERCASE;
				case 'capitalize':
					return TEXT_TRANSFORM.CAPITALIZE;
			}
			return TEXT_TRANSFORM.NONE;
		}
	};

	var transform = {
		name: 'transform',
		initialValue: 'none',
		prefix: true,
		type: PropertyDescriptorParsingType.VALUE,
		parse: function (token) {
			if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {
				return null;
			}
			if (token.type === TokenType.FUNCTION) {
				var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];
				if (typeof transformFunction === 'undefined') {
					throw new Error("Attempting to parse an unsupported transform function \"" + token.name + "\"");
				}
				return transformFunction(token.values);
			}
			return null;
		}
	};
	var matrix = function (args) {
		var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });
		return values.length === 6 ? values : null;
	};
	// doesn't support 3D transforms at the moment
	var matrix3d = function (args) {
		var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });
		var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15];
		return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;
	};
	var SUPPORTED_TRANSFORM_FUNCTIONS = {
		matrix: matrix,
		matrix3d: matrix3d
	};

	var DEFAULT_VALUE = {
		type: TokenType.PERCENTAGE_TOKEN,
		number: 50,
		flags: FLAG_INTEGER
	};
	var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];
	var transformOrigin = {
		name: 'transform-origin',
		initialValue: '50% 50%',
		prefix: true,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			var origins = tokens.filter(isLengthPercentage);
			if (origins.length !== 2) {
				return DEFAULT;
			}
			return [origins[0], origins[1]];
		}
	};

	var VISIBILITY;
	(function (VISIBILITY) {
		VISIBILITY[VISIBILITY["VISIBLE"] = 0] = "VISIBLE";
		VISIBILITY[VISIBILITY["HIDDEN"] = 1] = "HIDDEN";
		VISIBILITY[VISIBILITY["COLLAPSE"] = 2] = "COLLAPSE";
	})(VISIBILITY || (VISIBILITY = {}));
	var visibility = {
		name: 'visible',
		initialValue: 'none',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (visibility) {
			switch (visibility) {
				case 'hidden':
					return VISIBILITY.HIDDEN;
				case 'collapse':
					return VISIBILITY.COLLAPSE;
				case 'visible':
				default:
					return VISIBILITY.VISIBLE;
			}
		}
	};

	var WORD_BREAK;
	(function (WORD_BREAK) {
		WORD_BREAK["NORMAL"] = "normal";
		WORD_BREAK["BREAK_ALL"] = "break-all";
		WORD_BREAK["KEEP_ALL"] = "keep-all";
	})(WORD_BREAK || (WORD_BREAK = {}));
	var wordBreak = {
		name: 'word-break',
		initialValue: 'normal',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (wordBreak) {
			switch (wordBreak) {
				case 'break-all':
					return WORD_BREAK.BREAK_ALL;
				case 'keep-all':
					return WORD_BREAK.KEEP_ALL;
				case 'normal':
				default:
					return WORD_BREAK.NORMAL;
			}
		}
	};

	var zIndex = {
		name: 'z-index',
		initialValue: 'auto',
		prefix: false,
		type: PropertyDescriptorParsingType.VALUE,
		parse: function (token) {
			if (token.type === TokenType.IDENT_TOKEN) {
				return { auto: true, order: 0 };
			}
			if (isNumberToken(token)) {
				return { auto: false, order: token.number };
			}
			throw new Error("Invalid z-index number parsed");
		}
	};

	var opacity = {
		name: 'opacity',
		initialValue: '1',
		type: PropertyDescriptorParsingType.VALUE,
		prefix: false,
		parse: function (token) {
			if (isNumberToken(token)) {
				return token.number;
			}
			return 1;
		}
	};

	var textDecorationColor = {
		name: "text-decoration-color",
		initialValue: 'transparent',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'color'
	};

	var textDecorationLine = {
		name: 'text-decoration-line',
		initialValue: 'none',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens
				.filter(isIdentToken)
				.map(function (token) {
					switch (token.value) {
						case 'underline':
							return 1 /* UNDERLINE */;
						case 'overline':
							return 2 /* OVERLINE */;
						case 'line-through':
							return 3 /* LINE_THROUGH */;
						case 'none':
							return 4 /* BLINK */;
					}
					return 0 /* NONE */;
				})
				.filter(function (line) { return line !== 0 /* NONE */; });
		}
	};

	var fontFamily = {
		name: "font-family",
		initialValue: '',
		prefix: false,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			return tokens.filter(isStringToken$1).map(function (token) { return token.value; });
		}
	};
	var isStringToken$1 = function (token) {
		return token.type === TokenType.STRING_TOKEN || token.type === TokenType.IDENT_TOKEN;
	};

	var fontSize = {
		name: "font-size",
		initialValue: '0',
		prefix: false,
		type: PropertyDescriptorParsingType.TYPE_VALUE,
		format: 'length'
	};

	var fontWeight = {
		name: 'font-weight',
		initialValue: 'normal',
		type: PropertyDescriptorParsingType.VALUE,
		prefix: false,
		parse: function (token) {
			if (isNumberToken(token)) {
				return token.number;
			}
			if (isIdentToken(token)) {
				switch (token.value) {
					case 'bold':
						return 700;
					case 'normal':
					default:
						return 400;
				}
			}
			return 400;
		}
	};

	var fontVariant = {
		name: 'font-variant',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			return tokens.filter(isIdentToken).map(function (token) { return token.value; });
		}
	};

	var FONT_STYLE;
	(function (FONT_STYLE) {
		FONT_STYLE["NORMAL"] = "normal";
		FONT_STYLE["ITALIC"] = "italic";
		FONT_STYLE["OBLIQUE"] = "oblique";
	})(FONT_STYLE || (FONT_STYLE = {}));
	var fontStyle = {
		name: 'font-style',
		initialValue: 'normal',
		prefix: false,
		type: PropertyDescriptorParsingType.IDENT_VALUE,
		parse: function (overflow) {
			switch (overflow) {
				case 'oblique':
					return FONT_STYLE.OBLIQUE;
				case 'italic':
					return FONT_STYLE.ITALIC;
				case 'normal':
				default:
					return FONT_STYLE.NORMAL;
			}
		}
	};

	var contains = function (bit, value) { return (bit & value) !== 0; };

	var content = {
		name: 'content',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			if (tokens.length === 0) {
				return [];
			}
			var first = tokens[0];
			if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {
				return [];
			}
			return tokens;
		}
	};

	var counterIncrement = {
		name: 'counter-increment',
		initialValue: 'none',
		prefix: true,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			if (tokens.length === 0) {
				return null;
			}
			var first = tokens[0];
			if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {
				return null;
			}
			var increments = [];
			var filtered = tokens.filter(nonWhiteSpace);
			for (var i = 0; i < filtered.length; i++) {
				var counter = filtered[i];
				var next = filtered[i + 1];
				if (counter.type === TokenType.IDENT_TOKEN) {
					var increment = next && isNumberToken(next) ? next.number : 1;
					increments.push({ counter: counter.value, increment: increment });
				}
			}
			return increments;
		}
	};

	var counterReset = {
		name: 'counter-reset',
		initialValue: 'none',
		prefix: true,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			if (tokens.length === 0) {
				return [];
			}
			var resets = [];
			var filtered = tokens.filter(nonWhiteSpace);
			for (var i = 0; i < filtered.length; i++) {
				var counter = filtered[i];
				var next = filtered[i + 1];
				if (isIdentToken(counter) && counter.value !== 'none') {
					var reset = next && isNumberToken(next) ? next.number : 0;
					resets.push({ counter: counter.value, reset: reset });
				}
			}
			return resets;
		}
	};

	var quotes = {
		name: 'quotes',
		initialValue: 'none',
		prefix: true,
		type: PropertyDescriptorParsingType.LIST,
		parse: function (tokens) {
			if (tokens.length === 0) {
				return null;
			}
			var first = tokens[0];
			if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {
				return null;
			}
			var quotes = [];
			var filtered = tokens.filter(isStringToken);
			if (filtered.length % 2 !== 0) {
				return null;
			}
			for (var i = 0; i < filtered.length; i += 2) {
				var open_1 = filtered[i].value;
				var close_1 = filtered[i + 1].value;
				quotes.push({ open: open_1, close: close_1 });
			}
			return quotes;
		}
	};
	var getQuote = function (quotes, depth, open) {
		if (!quotes) {
			return '';
		}
		var quote = quotes[Math.min(depth, quotes.length - 1)];
		if (!quote) {
			return '';
		}
		return open ? quote.open : quote.close;
	};

	var boxShadow = {
		name: 'box-shadow',
		initialValue: 'none',
		type: PropertyDescriptorParsingType.LIST,
		prefix: false,
		parse: function (tokens) {
			if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {
				return [];
			}
			return parseFunctionArgs(tokens).map(function (values) {
				var shadow = {
					color: 0x000000ff,
					offsetX: ZERO_LENGTH,
					offsetY: ZERO_LENGTH,
					blur: ZERO_LENGTH,
					spread: ZERO_LENGTH,
					inset: false
				};
				var c = 0;
				for (var i = 0; i < values.length; i++) {
					var token = values[i];
					if (isIdentWithValue(token, 'inset')) {
						shadow.inset = true;
					}
					else if (isLength(token)) {
						if (c === 0) {
							shadow.offsetX = token;
						}
						else if (c === 1) {
							shadow.offsetY = token;
						}
						else if (c === 2) {
							shadow.blur = token;
						}
						else {
							shadow.spread = token;
						}
						c++;
					}
					else {
						shadow.color = color.parse(token);
					}
				}
				return shadow;
			});
		}
	};

	var CSSParsedDeclaration = /** @class */ (function () {
		function CSSParsedDeclaration(declaration) {
			this.backgroundClip = parse(backgroundClip, declaration.backgroundClip);
			this.backgroundColor = parse(backgroundColor, declaration.backgroundColor);
			this.backgroundImage = parse(backgroundImage, declaration.backgroundImage);
			this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin);
			this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition);
			this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat);
			this.backgroundSize = parse(backgroundSize, declaration.backgroundSize);
			this.borderTopColor = parse(borderTopColor, declaration.borderTopColor);
			this.borderRightColor = parse(borderRightColor, declaration.borderRightColor);
			this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor);
			this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor);
			this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius);
			this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius);
			this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius);
			this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius);
			this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle);
			this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle);
			this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle);
			this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle);
			this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth);
			this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth);
			this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth);
			this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth);
			this.boxShadow = parse(boxShadow, declaration.boxShadow);
			this.color = parse(color$1, declaration.color);
			this.display = parse(display, declaration.display);
			this.float = parse(float, declaration.cssFloat);
			this.fontFamily = parse(fontFamily, declaration.fontFamily);
			this.fontSize = parse(fontSize, declaration.fontSize);
			this.fontStyle = parse(fontStyle, declaration.fontStyle);
			this.fontVariant = parse(fontVariant, declaration.fontVariant);
			this.fontWeight = parse(fontWeight, declaration.fontWeight);
			this.letterSpacing = parse(letterSpacing, declaration.letterSpacing);
			this.lineBreak = parse(lineBreak, declaration.lineBreak);
			this.lineHeight = parse(lineHeight, declaration.lineHeight);
			this.listStyleImage = parse(listStyleImage, declaration.listStyleImage);
			this.listStylePosition = parse(listStylePosition, declaration.listStylePosition);
			this.listStyleType = parse(listStyleType, declaration.listStyleType);
			this.marginTop = parse(marginTop, declaration.marginTop);
			this.marginRight = parse(marginRight, declaration.marginRight);
			this.marginBottom = parse(marginBottom, declaration.marginBottom);
			this.marginLeft = parse(marginLeft, declaration.marginLeft);
			this.opacity = parse(opacity, declaration.opacity);
			var overflowTuple = parse(overflow, declaration.overflow);
			this.overflowX = overflowTuple[0];
			this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];
			this.overflowWrap = parse(overflowWrap, declaration.overflowWrap);
			this.paddingTop = parse(paddingTop, declaration.paddingTop);
			this.paddingRight = parse(paddingRight, declaration.paddingRight);
			this.paddingBottom = parse(paddingBottom, declaration.paddingBottom);
			this.paddingLeft = parse(paddingLeft, declaration.paddingLeft);
			this.position = parse(position, declaration.position);
			this.textAlign = parse(textAlign, declaration.textAlign);
			this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color);
			this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine);
			this.textShadow = parse(textShadow, declaration.textShadow);
			this.textTransform = parse(textTransform, declaration.textTransform);
			this.transform = parse(transform, declaration.transform);
			this.transformOrigin = parse(transformOrigin, declaration.transformOrigin);
			this.visibility = parse(visibility, declaration.visibility);
			this.wordBreak = parse(wordBreak, declaration.wordBreak);
			this.zIndex = parse(zIndex, declaration.zIndex);
		}
		CSSParsedDeclaration.prototype.isVisible = function () {
			return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;
		};
		CSSParsedDeclaration.prototype.isTransparent = function () {
			return isTransparent(this.backgroundColor);
		};
		CSSParsedDeclaration.prototype.isTransformed = function () {
			return this.transform !== null;
		};
		CSSParsedDeclaration.prototype.isPositioned = function () {
			return this.position !== POSITION.STATIC;
		};
		CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {
			return this.isPositioned() && !this.zIndex.auto;
		};
		CSSParsedDeclaration.prototype.isFloating = function () {
			return this.float !== FLOAT.NONE;
		};
		CSSParsedDeclaration.prototype.isInlineLevel = function () {
			return (contains(this.display, 4 /* INLINE */) ||
				contains(this.display, 33554432 /* INLINE_BLOCK */) ||
				contains(this.display, 268435456 /* INLINE_FLEX */) ||
				contains(this.display, 536870912 /* INLINE_GRID */) ||
				contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||
				contains(this.display, 134217728 /* INLINE_TABLE */));
		};
		return CSSParsedDeclaration;
	}());
	var CSSParsedPseudoDeclaration = /** @class */ (function () {
		function CSSParsedPseudoDeclaration(declaration) {
			this.content = parse(content, declaration.content);
			this.quotes = parse(quotes, declaration.quotes);
		}
		return CSSParsedPseudoDeclaration;
	}());
	var CSSParsedCounterDeclaration = /** @class */ (function () {
		function CSSParsedCounterDeclaration(declaration) {
			this.counterIncrement = parse(counterIncrement, declaration.counterIncrement);
			this.counterReset = parse(counterReset, declaration.counterReset);
		}
		return CSSParsedCounterDeclaration;
	}());
	// eslint-disable-next-line @typescript-eslint/no-explicit-any
	var parse = function (descriptor, style) {
		var tokenizer = new Tokenizer();
		var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;
		tokenizer.write(value);
		var parser = new Parser(tokenizer.read());
		switch (descriptor.type) {
			case PropertyDescriptorParsingType.IDENT_VALUE:
				var token = parser.parseComponentValue();
				return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue);
			case PropertyDescriptorParsingType.VALUE:
				return descriptor.parse(parser.parseComponentValue());
			case PropertyDescriptorParsingType.LIST:
				return descriptor.parse(parser.parseComponentValues());
			case PropertyDescriptorParsingType.TOKEN_VALUE:
				return parser.parseComponentValue();
			case PropertyDescriptorParsingType.TYPE_VALUE:
				switch (descriptor.format) {
					case 'angle':
						return angle.parse(parser.parseComponentValue());
					case 'color':
						return color.parse(parser.parseComponentValue());
					case 'image':
						return image.parse(parser.parseComponentValue());
					case 'length':
						var length_1 = parser.parseComponentValue();
						return isLength(length_1) ? length_1 : ZERO_LENGTH;
					case 'length-percentage':
						var value_1 = parser.parseComponentValue();
						return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;
				}
		}
		throw new Error("Attempting to parse unsupported css format type " + descriptor.format);
	};

	var ElementContainer = /** @class */ (function () {
		function ElementContainer(element) {
			this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null));
			this.textNodes = [];
			this.elements = [];
			if (this.styles.transform !== null && isHTMLElementNode(element)) {
				// getBoundingClientRect takes transforms into account
				element.style.transform = 'none';
			}
			this.bounds = parseBounds(element);
			this.flags = 0;
		}
		return ElementContainer;
	}());

	var TextBounds = /** @class */ (function () {
		function TextBounds(text, bounds) {
			this.text = text;
			this.bounds = bounds;
		}
		return TextBounds;
	}());
	var parseTextBounds = function (value, styles, node) {
		var textList = breakText(value, styles);
		var textBounds = [];
		var offset = 0;
		textList.forEach(function (text) {
			if (styles.textDecorationLine.length || text.trim().length > 0) {
				if (FEATURES.SUPPORT_RANGE_BOUNDS) {
					textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));
				}
				else {
					var replacementNode = node.splitText(text.length);
					textBounds.push(new TextBounds(text, getWrapperBounds(node)));
					node = replacementNode;
				}
			}
			else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {
				node = node.splitText(text.length);
			}
			offset += text.length;
		});
		return textBounds;
	};
	var getWrapperBounds = function (node) {
		var ownerDocument = node.ownerDocument;
		if (ownerDocument) {
			var wrapper = ownerDocument.createElement('html2canvaswrapper');
			wrapper.appendChild(node.cloneNode(true));
			var parentNode = node.parentNode;
			if (parentNode) {
				parentNode.replaceChild(wrapper, node);
				var bounds = parseBounds(wrapper);
				if (wrapper.firstChild) {
					parentNode.replaceChild(wrapper.firstChild, wrapper);
				}
				return bounds;
			}
		}
		return new Bounds(0, 0, 0, 0);
	};
	var getRangeBounds = function (node, offset, length) {
		var ownerDocument = node.ownerDocument;
		if (!ownerDocument) {
			throw new Error('Node has no owner document');
		}
		var range = ownerDocument.createRange();
		range.setStart(node, offset);
		range.setEnd(node, offset + length);
		return Bounds.fromClientRect(range.getBoundingClientRect());
	};
	var breakText = function (value, styles) {
		return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles);
	};
	var breakWords = function (str, styles) {
		var breaker = LineBreaker(str, {
			lineBreak: styles.lineBreak,
			wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak
		});
		var words = [];
		var bk;
		while (!(bk = breaker.next()).done) {
			if (bk.value) {
				words.push(bk.value.slice());
			}
		}
		return words;
	};

	var TextContainer = /** @class */ (function () {
		function TextContainer(node, styles) {
			this.text = transform$1(node.data, styles.textTransform);
			this.textBounds = parseTextBounds(this.text, styles, node);
		}
		return TextContainer;
	}());
	var transform$1 = function (text, transform) {
		switch (transform) {
			case TEXT_TRANSFORM.LOWERCASE:
				return text.toLowerCase();
			case TEXT_TRANSFORM.CAPITALIZE:
				return text.replace(CAPITALIZE, capitalize);
			case TEXT_TRANSFORM.UPPERCASE:
				return text.toUpperCase();
			default:
				return text;
		}
	};
	var CAPITALIZE = /(^|\s|:|-|\(|\))([a-z])/g;
	var capitalize = function (m, p1, p2) {
		if (m.length > 0) {
			return p1 + p2.toUpperCase();
		}
		return m;
	};

	var ImageElementContainer = /** @class */ (function (_super) {
		__extends(ImageElementContainer, _super);
		function ImageElementContainer(img) {
			var _this = _super.call(this, img) || this;
			_this.src = img.currentSrc || img.src;
			_this.intrinsicWidth = img.naturalWidth;
			_this.intrinsicHeight = img.naturalHeight;
			CacheStorage.getInstance().addImage(_this.src);
			return _this;
		}
		return ImageElementContainer;
	}(ElementContainer));

	var CanvasElementContainer = /** @class */ (function (_super) {
		__extends(CanvasElementContainer, _super);
		function CanvasElementContainer(canvas) {
			var _this = _super.call(this, canvas) || this;
			_this.canvas = canvas;
			_this.intrinsicWidth = canvas.width;
			_this.intrinsicHeight = canvas.height;
			return _this;
		}
		return CanvasElementContainer;
	}(ElementContainer));

	var SVGElementContainer = /** @class */ (function (_super) {
		__extends(SVGElementContainer, _super);
		function SVGElementContainer(img) {
			var _this = _super.call(this, img) || this;
			var s = new XMLSerializer();
			_this.svg = "data:image/svg+xml," + encodeURIComponent(s.serializeToString(img));
			_this.intrinsicWidth = img.width.baseVal.value;
			_this.intrinsicHeight = img.height.baseVal.value;
			CacheStorage.getInstance().addImage(_this.svg);
			return _this;
		}
		return SVGElementContainer;
	}(ElementContainer));

	var LIElementContainer = /** @class */ (function (_super) {
		__extends(LIElementContainer, _super);
		function LIElementContainer(element) {
			var _this = _super.call(this, element) || this;
			_this.value = element.value;
			return _this;
		}
		return LIElementContainer;
	}(ElementContainer));

	var OLElementContainer = /** @class */ (function (_super) {
		__extends(OLElementContainer, _super);
		function OLElementContainer(element) {
			var _this = _super.call(this, element) || this;
			_this.start = element.start;
			_this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;
			return _this;
		}
		return OLElementContainer;
	}(ElementContainer));

	var CHECKBOX_BORDER_RADIUS = [
		{
			type: TokenType.DIMENSION_TOKEN,
			flags: 0,
			unit: 'px',
			number: 3
		}
	];
	var RADIO_BORDER_RADIUS = [
		{
			type: TokenType.PERCENTAGE_TOKEN,
			flags: 0,
			number: 50
		}
	];
	var reformatInputBounds = function (bounds) {
		if (bounds.width > bounds.height) {
			return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);
		}
		else if (bounds.width < bounds.height) {
			return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);
		}
		return bounds;
	};
	var getInputValue = function (node) {
		var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\u2022') : node.value;
		return value.length === 0 ? node.placeholder || '' : value;
	};
	var CHECKBOX = 'checkbox';
	var RADIO = 'radio';
	var PASSWORD = 'password';
	var INPUT_COLOR = 0x2a2a2aff;
	var InputElementContainer = /** @class */ (function (_super) {
		__extends(InputElementContainer, _super);
		function InputElementContainer(input) {
			var _this = _super.call(this, input) || this;
			_this.type = input.type.toLowerCase();
			_this.checked = input.checked;
			_this.value = getInputValue(input);
			if (_this.type === CHECKBOX || _this.type === RADIO) {
				_this.styles.backgroundColor = 0xdededeff;
				_this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff;
				_this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1;
				_this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle =
					BORDER_STYLE.SOLID;
				_this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];
				_this.styles.backgroundOrigin = [0 /* BORDER_BOX */];
				_this.bounds = reformatInputBounds(_this.bounds);
			}
			switch (_this.type) {
				case CHECKBOX:
					_this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS;
					break;
				case RADIO:
					_this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS;
					break;
			}
			return _this;
		}
		return InputElementContainer;
	}(ElementContainer));

	var SelectElementContainer = /** @class */ (function (_super) {
		__extends(SelectElementContainer, _super);
		function SelectElementContainer(element) {
			var _this = _super.call(this, element) || this;
			var option = element.options[element.selectedIndex || 0];
			_this.value = option ? option.text || '' : '';
			return _this;
		}
		return SelectElementContainer;
	}(ElementContainer));

	var TextareaElementContainer = /** @class */ (function (_super) {
		__extends(TextareaElementContainer, _super);
		function TextareaElementContainer(element) {
			var _this = _super.call(this, element) || this;
			_this.value = element.value;
			return _this;
		}
		return TextareaElementContainer;
	}(ElementContainer));

	var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };
	var IFrameElementContainer = /** @class */ (function (_super) {
		__extends(IFrameElementContainer, _super);
		function IFrameElementContainer(iframe) {
			var _this = _super.call(this, iframe) || this;
			_this.src = iframe.src;
			_this.width = parseInt(iframe.width, 10) || 0;
			_this.height = parseInt(iframe.height, 10) || 0;
			_this.backgroundColor = _this.styles.backgroundColor;
			try {
				if (iframe.contentWindow &&
					iframe.contentWindow.document &&
					iframe.contentWindow.document.documentElement) {
					_this.tree = parseTree(iframe.contentWindow.document.documentElement);
					// http://www.w3.org/TR/css3-background/#special-backgrounds
					var documentBackgroundColor = iframe.contentWindow.document.documentElement
						? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement)
							.backgroundColor)
						: COLORS.TRANSPARENT;
					var bodyBackgroundColor = iframe.contentWindow.document.body
						? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor)
						: COLORS.TRANSPARENT;
					_this.backgroundColor = isTransparent(documentBackgroundColor)
						? isTransparent(bodyBackgroundColor)
							? _this.styles.backgroundColor
							: bodyBackgroundColor
						: documentBackgroundColor;
				}
			}
			catch (e) { }
			return _this;
		}
		return IFrameElementContainer;
	}(ElementContainer));

	var LIST_OWNERS = ['OL', 'UL', 'MENU'];
	var parseNodeTree = function (node, parent, root) {
		for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {
			nextNode = childNode.nextSibling;
			if (isTextNode(childNode) && childNode.data.trim().length > 0) {
				parent.textNodes.push(new TextContainer(childNode, parent.styles));
			}
			else if (isElementNode(childNode)) {
				var container = createContainer(childNode);
				if (container.styles.isVisible()) {
					if (createsRealStackingContext(childNode, container, root)) {
						container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;
					}
					else if (createsStackingContext(container.styles)) {
						container.flags |= 2 /* CREATES_STACKING_CONTEXT */;
					}
					if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {
						container.flags |= 8 /* IS_LIST_OWNER */;
					}
					parent.elements.push(container);
					if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) {
						parseNodeTree(childNode, container, root);
					}
				}
			}
		}
	};
	var createContainer = function (element) {
		if (isImageElement(element)) {
			return new ImageElementContainer(element);
		}
		if (isCanvasElement(element)) {
			return new CanvasElementContainer(element);
		}
		if (isSVGElement(element)) {
			return new SVGElementContainer(element);
		}
		if (isLIElement(element)) {
			return new LIElementContainer(element);
		}
		if (isOLElement(element)) {
			return new OLElementContainer(element);
		}
		if (isInputElement(element)) {
			return new InputElementContainer(element);
		}
		if (isSelectElement(element)) {
			return new SelectElementContainer(element);
		}
		if (isTextareaElement(element)) {
			return new TextareaElementContainer(element);
		}
		if (isIFrameElement(element)) {
			return new IFrameElementContainer(element);
		}
		return new ElementContainer(element);
	};
	var parseTree = function (element) {
		var container = createContainer(element);
		container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;
		parseNodeTree(element, container, container);
		return container;
	};
	var createsRealStackingContext = function (node, container, root) {
		return (container.styles.isPositionedWithZIndex() ||
			container.styles.opacity < 1 ||
			container.styles.isTransformed() ||
			(isBodyElement(node) && root.styles.isTransparent()));
	};
	var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };
	var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };
	var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };
	var isHTMLElementNode = function (node) {
		return typeof node.style !== 'undefined';
	};
	var isSVGElementNode = function (element) {
		return typeof element.className === 'object';
	};
	var isLIElement = function (node) { return node.tagName === 'LI'; };
	var isOLElement = function (node) { return node.tagName === 'OL'; };
	var isInputElement = function (node) { return node.tagName === 'INPUT'; };
	var isHTMLElement = function (node) { return node.tagName === 'HTML'; };
	var isSVGElement = function (node) { return node.tagName === 'svg'; };
	var isBodyElement = function (node) { return node.tagName === 'BODY'; };
	var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };
	var isImageElement = function (node) { return node.tagName === 'IMG'; };
	var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };
	var isStyleElement = function (node) { return node.tagName === 'STYLE'; };
	var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };
	var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };
	var isSelectElement = function (node) { return node.tagName === 'SELECT'; };

	var CounterState = /** @class */ (function () {
		function CounterState() {
			this.counters = {};
		}
		CounterState.prototype.getCounterValue = function (name) {
			var counter = this.counters[name];
			if (counter && counter.length) {
				return counter[counter.length - 1];
			}
			return 1;
		};
		CounterState.prototype.getCounterValues = function (name) {
			var counter = this.counters[name];
			return counter ? counter : [];
		};
		CounterState.prototype.pop = function (counters) {
			var _this = this;
			counters.forEach(function (counter) { return _this.counters[counter].pop(); });
		};
		CounterState.prototype.parse = function (style) {
			var _this = this;
			var counterIncrement = style.counterIncrement;
			var counterReset = style.counterReset;
			var canReset = true;
			if (counterIncrement !== null) {
				counterIncrement.forEach(function (entry) {
					var counter = _this.counters[entry.counter];
					if (counter && entry.increment !== 0) {
						canReset = false;
						counter[Math.max(0, counter.length - 1)] += entry.increment;
					}
				});
			}
			var counterNames = [];
			if (canReset) {
				counterReset.forEach(function (entry) {
					var counter = _this.counters[entry.counter];
					counterNames.push(entry.counter);
					if (!counter) {
						counter = _this.counters[entry.counter] = [];
					}
					counter.push(entry.reset);
				});
			}
			return counterNames;
		};
		return CounterState;
	}());
	var ROMAN_UPPER = {
		integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
		values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
	};
	var ARMENIAN = {
		integers: [
			9000,
			8000,
			7000,
			6000,
			5000,
			4000,
			3000,
			2000,
			1000,
			900,
			800,
			700,
			600,
			500,
			400,
			300,
			200,
			100,
			90,
			80,
			70,
			60,
			50,
			40,
			30,
			20,
			10,
			9,
			8,
			7,
			6,
			5,
			4,
			3,
			2,
			1
		],
		values: [
			'Ք',
			'Փ',
			'Ւ',
			'Ց',
			'Ր',
			'Տ',
			'Վ',
			'Ս',
			'Ռ',
			'Ջ',
			'Պ',
			'Չ',
			'Ո',
			'Շ',
			'Ն',
			'Յ',
			'Մ',
			'Ճ',
			'Ղ',
			'Ձ',
			'Հ',
			'Կ',
			'Ծ',
			'Խ',
			'Լ',
			'Ի',
			'Ժ',
			'Թ',
			'Ը',
			'Է',
			'Զ',
			'Ե',
			'Դ',
			'Գ',
			'Բ',
			'Ա'
		]
	};
	var HEBREW = {
		integers: [
			10000,
			9000,
			8000,
			7000,
			6000,
			5000,
			4000,
			3000,
			2000,
			1000,
			400,
			300,
			200,
			100,
			90,
			80,
			70,
			60,
			50,
			40,
			30,
			20,
			19,
			18,
			17,
			16,
			15,
			10,
			9,
			8,
			7,
			6,
			5,
			4,
			3,
			2,
			1
		],
		values: [
			'י׳',
			'ט׳',
			'ח׳',
			'ז׳',
			'ו׳',
			'ה׳',
			'ד׳',
			'ג׳',
			'ב׳',
			'א׳',
			'ת',
			'ש',
			'ר',
			'ק',
			'צ',
			'פ',
			'ע',
			'ס',
			'נ',
			'מ',
			'ל',
			'כ',
			'יט',
			'יח',
			'יז',
			'טז',
			'טו',
			'י',
			'ט',
			'ח',
			'ז',
			'ו',
			'ה',
			'ד',
			'ג',
			'ב',
			'א'
		]
	};
	var GEORGIAN = {
		integers: [
			10000,
			9000,
			8000,
			7000,
			6000,
			5000,
			4000,
			3000,
			2000,
			1000,
			900,
			800,
			700,
			600,
			500,
			400,
			300,
			200,
			100,
			90,
			80,
			70,
			60,
			50,
			40,
			30,
			20,
			10,
			9,
			8,
			7,
			6,
			5,
			4,
			3,
			2,
			1
		],
		values: [
			'ჵ',
			'ჰ',
			'ჯ',
			'ჴ',
			'ხ',
			'ჭ',
			'წ',
			'ძ',
			'ც',
			'ჩ',
			'შ',
			'ყ',
			'ღ',
			'ქ',
			'ფ',
			'ჳ',
			'ტ',
			'ს',
			'რ',
			'ჟ',
			'პ',
			'ო',
			'ჲ',
			'ნ',
			'მ',
			'ლ',
			'კ',
			'ი',
			'თ',
			'ჱ',
			'ზ',
			'ვ',
			'ე',
			'დ',
			'გ',
			'ბ',
			'ა'
		]
	};
	var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {
		if (value < min || value > max) {
			return createCounterText(value, fallback, suffix.length > 0);
		}
		return (symbols.integers.reduce(function (string, integer, index) {
			while (value >= integer) {
				value -= integer;
				string += symbols.values[index];
			}
			return string;
		}, '') + suffix);
	};
	var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {
		var string = '';
		do {
			if (!isNumeric) {
				value--;
			}
			string = resolver(value) + string;
			value /= codePointRangeLength;
		} while (value * codePointRangeLength >= codePointRangeLength);
		return string;
	};
	var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {
		var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;
		return ((value < 0 ? '-' : '') +
			(createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {
					return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);
				}) +
				suffix));
	};
	var createCounterStyleFromSymbols = function (value, symbols, suffix) {
		if (suffix === void 0) { suffix = '. '; }
		var codePointRangeLength = symbols.length;
		return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);
	};
	var CJK_ZEROS = 1 << 0;
	var CJK_TEN_COEFFICIENTS = 1 << 1;
	var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;
	var CJK_HUNDRED_COEFFICIENTS = 1 << 3;
	var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {
		if (value < -9999 || value > 9999) {
			return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);
		}
		var tmp = Math.abs(value);
		var string = suffix;
		if (tmp === 0) {
			return numbers[0] + string;
		}
		for (var digit = 0; tmp > 0 && digit <= 4; digit++) {
			var coefficient = tmp % 10;
			if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {
				string = numbers[coefficient] + string;
			}
			else if (coefficient > 1 ||
				(coefficient === 1 && digit === 0) ||
				(coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||
				(coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||
				(coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {
				string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;
			}
			else if (coefficient === 1 && digit > 0) {
				string = multipliers[digit - 1] + string;
			}
			tmp = Math.floor(tmp / 10);
		}
		return (value < 0 ? negativeSign : '') + string;
	};
	var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';
	var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';
	var JAPANESE_NEGATIVE = 'マイナス';
	var KOREAN_NEGATIVE = '마이너스';
	var createCounterText = function (value, type, appendSuffix) {
		var defaultSuffix = appendSuffix ? '. ' : '';
		var cjkSuffix = appendSuffix ? '、' : '';
		var koreanSuffix = appendSuffix ? ', ' : '';
		var spaceSuffix = appendSuffix ? ' ' : '';
		switch (type) {
			case LIST_STYLE_TYPE.DISC:
				return '•' + spaceSuffix;
			case LIST_STYLE_TYPE.CIRCLE:
				return '◦' + spaceSuffix;
			case LIST_STYLE_TYPE.SQUARE:
				return '◾' + spaceSuffix;
			case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:
				var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);
				return string.length < 4 ? "0" + string : string;
			case LIST_STYLE_TYPE.CJK_DECIMAL:
				return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);
			case LIST_STYLE_TYPE.LOWER_ROMAN:
				return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();
			case LIST_STYLE_TYPE.UPPER_ROMAN:
				return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);
			case LIST_STYLE_TYPE.LOWER_GREEK:
				return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);
			case LIST_STYLE_TYPE.LOWER_ALPHA:
				return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);
			case LIST_STYLE_TYPE.UPPER_ALPHA:
				return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);
			case LIST_STYLE_TYPE.ARABIC_INDIC:
				return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);
			case LIST_STYLE_TYPE.ARMENIAN:
			case LIST_STYLE_TYPE.UPPER_ARMENIAN:
				return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);
			case LIST_STYLE_TYPE.LOWER_ARMENIAN:
				return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();
			case LIST_STYLE_TYPE.BENGALI:
				return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);
			case LIST_STYLE_TYPE.CAMBODIAN:
			case LIST_STYLE_TYPE.KHMER:
				return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);
			case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:
				return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);
			case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:
				return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);
			case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:
			case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:
				return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);
			case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:
				return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);
			case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:
				return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);
			case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:
				return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);
			case LIST_STYLE_TYPE.JAPANESE_INFORMAL:
				return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);
			case LIST_STYLE_TYPE.JAPANESE_FORMAL:
				return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);
			case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:
				return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);
			case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:
				return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);
			case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:
				return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);
			case LIST_STYLE_TYPE.DEVANAGARI:
				return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);
			case LIST_STYLE_TYPE.GEORGIAN:
				return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);
			case LIST_STYLE_TYPE.GUJARATI:
				return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);
			case LIST_STYLE_TYPE.GURMUKHI:
				return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);
			case LIST_STYLE_TYPE.HEBREW:
				return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);
			case LIST_STYLE_TYPE.HIRAGANA:
				return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');
			case LIST_STYLE_TYPE.HIRAGANA_IROHA:
				return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');
			case LIST_STYLE_TYPE.KANNADA:
				return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);
			case LIST_STYLE_TYPE.KATAKANA:
				return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);
			case LIST_STYLE_TYPE.KATAKANA_IROHA:
				return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);
			case LIST_STYLE_TYPE.LAO:
				return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);
			case LIST_STYLE_TYPE.MONGOLIAN:
				return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);
			case LIST_STYLE_TYPE.MYANMAR:
				return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);
			case LIST_STYLE_TYPE.ORIYA:
				return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);
			case LIST_STYLE_TYPE.PERSIAN:
				return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);
			case LIST_STYLE_TYPE.TAMIL:
				return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);
			case LIST_STYLE_TYPE.TELUGU:
				return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);
			case LIST_STYLE_TYPE.THAI:
				return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);
			case LIST_STYLE_TYPE.TIBETAN:
				return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);
			case LIST_STYLE_TYPE.DECIMAL:
			default:
				return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);
		}
	};

	var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';
	var DocumentCloner = /** @class */ (function () {
		function DocumentCloner(element, options) {
			this.options = options;
			this.scrolledElements = [];
			this.referenceElement = element;
			this.counters = new CounterState();
			this.quoteDepth = 0;
			if (!element.ownerDocument) {
				throw new Error('Cloned element does not have an owner document');
			}
			this.documentElement = this.cloneNode(element.ownerDocument.documentElement);
		}
		DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {
			var _this = this;
			var iframe = createIFrameContainer(ownerDocument, windowSize);
			if (!iframe.contentWindow) {
				return Promise.reject("Unable to find iframe window");
			}
			var scrollX = ownerDocument.defaultView.pageXOffset;
			var scrollY = ownerDocument.defaultView.pageYOffset;
			var cloneWindow = iframe.contentWindow;
			var documentClone = cloneWindow.document;
			/* Chrome doesn't detect relative background-images assigned in inline <style> sheets when fetched through getComputedStyle
             if window url is about:blank, we can assign the url to current by writing onto the document
             */
			var iframeLoad = iframeLoader(iframe).then(function () { return __awaiter(_this, void 0, void 0, function () {
				var onclone;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							this.scrolledElements.forEach(restoreNodeScroll);
							if (cloneWindow) {
								cloneWindow.scrollTo(windowSize.left, windowSize.top);
								if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent) &&
									(cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) {
									documentClone.documentElement.style.top = -windowSize.top + 'px';
									documentClone.documentElement.style.left = -windowSize.left + 'px';
									documentClone.documentElement.style.position = 'absolute';
								}
							}
							onclone = this.options.onclone;
							if (typeof this.clonedReferenceElement === 'undefined') {
								return [2 /*return*/, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")];
							}
							if (!(documentClone.fonts && documentClone.fonts.ready)) return [3 /*break*/, 2];
							return [4 /*yield*/, documentClone.fonts.ready];
						case 1:
							_a.sent();
							_a.label = 2;
						case 2:
							if (typeof onclone === 'function') {
								return [2 /*return*/, Promise.resolve()
									.then(function () { return onclone(documentClone); })
									.then(function () { return iframe; })];
							}
							return [2 /*return*/, iframe];
					}
				});
			}); });
			documentClone.open();
			documentClone.write(serializeDoctype(document.doctype) + "<html></html>");
			// Chrome scrolls the parent document for some reason after the write to the cloned window???
			restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY);
			documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement);
			documentClone.close();
			return iframeLoad;
		};
		DocumentCloner.prototype.createElementClone = function (node) {
			if (isCanvasElement(node)) {
				return this.createCanvasClone(node);
			}
			/*
            if (isIFrameElement(node)) {
                return this.createIFrameClone(node);
            }
    */
			if (isStyleElement(node)) {
				return this.createStyleClone(node);
			}
			return node.cloneNode(false);
		};
		DocumentCloner.prototype.createStyleClone = function (node) {
			try {
				var sheet = node.sheet;
				if (sheet && sheet.cssRules) {
					var css = [].slice.call(sheet.cssRules, 0).reduce(function (css, rule) {
						if (rule && typeof rule.cssText === 'string') {
							return css + rule.cssText;
						}
						return css;
					}, '');
					var style = node.cloneNode(false);
					style.textContent = css;
					return style;
				}
			}
			catch (e) {
				// accessing node.sheet.cssRules throws a DOMException
				Logger.getInstance(this.options.id).error('Unable to access cssRules property', e);
				if (e.name !== 'SecurityError') {
					throw e;
				}
			}
			return node.cloneNode(false);
		};
		DocumentCloner.prototype.createCanvasClone = function (canvas) {
			if (this.options.inlineImages && canvas.ownerDocument) {
				var img = canvas.ownerDocument.createElement('img');
				try {
					img.src = canvas.toDataURL();
					return img;
				}
				catch (e) {
					Logger.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted");
				}
			}
			var clonedCanvas = canvas.cloneNode(false);
			try {
				clonedCanvas.width = canvas.width;
				clonedCanvas.height = canvas.height;
				var ctx = canvas.getContext('2d');
				var clonedCtx = clonedCanvas.getContext('2d');
				if (clonedCtx) {
					if (ctx) {
						clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
					}
					else {
						clonedCtx.drawImage(canvas, 0, 0);
					}
				}
				return clonedCanvas;
			}
			catch (e) { }
			return clonedCanvas;
		};
		/*
        createIFrameClone(iframe: HTMLIFrameElement) {
            const tempIframe = <HTMLIFrameElement>iframe.cloneNode(false);
            const iframeKey = generateIframeKey();
            tempIframe.setAttribute('data-html2canvas-internal-iframe-key', iframeKey);

            const {width, height} = parseBounds(iframe);

            this.resourceLoader.cache[iframeKey] = getIframeDocumentElement(iframe, this.options)
                .then(documentElement => {
                    return this.renderer(
                        documentElement,
                        {
                            allowTaint: this.options.allowTaint,
                            backgroundColor: '#ffffff',
                            canvas: null,
                            imageTimeout: this.options.imageTimeout,
                            logging: this.options.logging,
                            proxy: this.options.proxy,
                            removeContainer: this.options.removeContainer,
                            scale: this.options.scale,
                            foreignObjectRendering: this.options.foreignObjectRendering,
                            useCORS: this.options.useCORS,
                            target: new CanvasRenderer(),
                            width,
                            height,
                            x: 0,
                            y: 0,
                            windowWidth: documentElement.ownerDocument.defaultView.innerWidth,
                            windowHeight: documentElement.ownerDocument.defaultView.innerHeight,
                            scrollX: documentElement.ownerDocument.defaultView.pageXOffset,
                            scrollY: documentElement.ownerDocument.defaultView.pageYOffset
                        },
                    );
                })
                .then(
                    (canvas: HTMLCanvasElement) =>
                        new Promise((resolve, reject) => {
                            const iframeCanvas = document.createElement('img');
                            iframeCanvas.onload = () => resolve(canvas);
                            iframeCanvas.onerror = (event) => {
                                // Empty iframes may result in empty "data:," URLs, which are invalid from the <img>'s point of view
                                // and instead of `onload` cause `onerror` and unhandled rejection warnings
                                // https://github.com/niklasvh/html2canvas/issues/1502
                                iframeCanvas.src == 'data:,' ? resolve(canvas) : reject(event);
                            };
                            iframeCanvas.src = canvas.toDataURL();
                            if (tempIframe.parentNode && iframe.ownerDocument && iframe.ownerDocument.defaultView) {
                                tempIframe.parentNode.replaceChild(
                                    copyCSSStyles(
                                        iframe.ownerDocument.defaultView.getComputedStyle(iframe),
                                        iframeCanvas
                                    ),
                                    tempIframe
                                );
                            }
                        })
                );
            return tempIframe;
        }
    */
		DocumentCloner.prototype.cloneNode = function (node) {
			if (isTextNode(node)) {
				return document.createTextNode(node.data);
			}
			if (!node.ownerDocument) {
				return node.cloneNode(false);
			}
			var window = node.ownerDocument.defaultView;
			if (isHTMLElementNode(node) && window) {
				var clone = this.createElementClone(node);
				var style = window.getComputedStyle(node);
				var styleBefore = window.getComputedStyle(node, ':before');
				var styleAfter = window.getComputedStyle(node, ':after');
				if (this.referenceElement === node) {
					this.clonedReferenceElement = clone;
				}
				if (isBodyElement(clone)) {
					createPseudoHideStyles(clone);
				}
				var counters = this.counters.parse(new CSSParsedCounterDeclaration(style));
				var before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE);
				for (var child = node.firstChild; child; child = child.nextSibling) {
					if (!isElementNode(child) ||
						(!isScriptElement(child) &&
							!child.hasAttribute(IGNORE_ATTRIBUTE) &&
							(typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) {
						if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) {
							clone.appendChild(this.cloneNode(child));
						}
					}
				}
				if (before) {
					clone.insertBefore(before, clone.firstChild);
				}
				var after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER);
				if (after) {
					clone.appendChild(after);
				}
				this.counters.pop(counters);
				if (style && this.options.copyStyles && !isIFrameElement(node)) {
					copyCSSStyles(style, clone);
				}
				//this.inlineAllImages(clone);
				if (node.scrollTop !== 0 || node.scrollLeft !== 0) {
					this.scrolledElements.push([clone, node.scrollLeft, node.scrollTop]);
				}
				if ((isTextareaElement(node) || isSelectElement(node)) &&
					(isTextareaElement(clone) || isSelectElement(clone))) {
					clone.value = node.value;
				}
				return clone;
			}
			return node.cloneNode(false);
		};
		DocumentCloner.prototype.resolvePseudoContent = function (node, clone, style, pseudoElt) {
			var _this = this;
			if (!style) {
				return;
			}
			var value = style.content;
			var document = clone.ownerDocument;
			if (!document || !value || value === 'none' || value === '-moz-alt-content' || style.display === 'none') {
				return;
			}
			this.counters.parse(new CSSParsedCounterDeclaration(style));
			var declaration = new CSSParsedPseudoDeclaration(style);
			var anonymousReplacedElement = document.createElement('html2canvaspseudoelement');
			copyCSSStyles(style, anonymousReplacedElement);
			declaration.content.forEach(function (token) {
				if (token.type === TokenType.STRING_TOKEN) {
					anonymousReplacedElement.appendChild(document.createTextNode(token.value));
				}
				else if (token.type === TokenType.URL_TOKEN) {
					var img = document.createElement('img');
					img.src = token.value;
					img.style.opacity = '1';
					anonymousReplacedElement.appendChild(img);
				}
				else if (token.type === TokenType.FUNCTION) {
					if (token.name === 'attr') {
						var attr = token.values.filter(isIdentToken);
						if (attr.length) {
							anonymousReplacedElement.appendChild(document.createTextNode(node.getAttribute(attr[0].value) || ''));
						}
					}
					else if (token.name === 'counter') {
						var _a = token.values.filter(nonFunctionArgSeparator), counter = _a[0], counterStyle = _a[1];
						if (counter && isIdentToken(counter)) {
							var counterState = _this.counters.getCounterValue(counter.value);
							var counterType = counterStyle && isIdentToken(counterStyle)
								? listStyleType.parse(counterStyle.value)
								: LIST_STYLE_TYPE.DECIMAL;
							anonymousReplacedElement.appendChild(document.createTextNode(createCounterText(counterState, counterType, false)));
						}
					}
					else if (token.name === 'counters') {
						var _b = token.values.filter(nonFunctionArgSeparator), counter = _b[0], delim = _b[1], counterStyle = _b[2];
						if (counter && isIdentToken(counter)) {
							var counterStates = _this.counters.getCounterValues(counter.value);
							var counterType_1 = counterStyle && isIdentToken(counterStyle)
								? listStyleType.parse(counterStyle.value)
								: LIST_STYLE_TYPE.DECIMAL;
							var separator = delim && delim.type === TokenType.STRING_TOKEN ? delim.value : '';
							var text = counterStates
								.map(function (value) { return createCounterText(value, counterType_1, false); })
								.join(separator);
							anonymousReplacedElement.appendChild(document.createTextNode(text));
						}
					}
				}
				else if (token.type === TokenType.IDENT_TOKEN) {
					switch (token.value) {
						case 'open-quote':
							anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, _this.quoteDepth++, true)));
							break;
						case 'close-quote':
							anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, --_this.quoteDepth, false)));
							break;
						default:
							// safari doesn't parse string tokens correctly because of lack of quotes
							anonymousReplacedElement.appendChild(document.createTextNode(token.value));
					}
				}
			});
			anonymousReplacedElement.className = PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;
			var newClassName = pseudoElt === PseudoElementType.BEFORE
				? " " + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE
				: " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;
			if (isSVGElementNode(clone)) {
				clone.className.baseValue += newClassName;
			}
			else {
				clone.className += newClassName;
			}
			return anonymousReplacedElement;
		};
		DocumentCloner.destroy = function (container) {
			if (container.parentNode) {
				container.parentNode.removeChild(container);
				return true;
			}
			return false;
		};
		return DocumentCloner;
	}());
	var PseudoElementType;
	(function (PseudoElementType) {
		PseudoElementType[PseudoElementType["BEFORE"] = 0] = "BEFORE";
		PseudoElementType[PseudoElementType["AFTER"] = 1] = "AFTER";
	})(PseudoElementType || (PseudoElementType = {}));
	var createIFrameContainer = function (ownerDocument, bounds) {
		var cloneIframeContainer = ownerDocument.createElement('iframe');
		cloneIframeContainer.className = 'html2canvas-container';
		cloneIframeContainer.style.visibility = 'hidden';
		cloneIframeContainer.style.position = 'fixed';
		cloneIframeContainer.style.left = '-10000px';
		cloneIframeContainer.style.top = '0px';
		cloneIframeContainer.style.border = '0';
		cloneIframeContainer.width = bounds.width.toString();
		cloneIframeContainer.height = bounds.height.toString();
		cloneIframeContainer.scrolling = 'no'; // ios won't scroll without it
		cloneIframeContainer.setAttribute(IGNORE_ATTRIBUTE, 'true');
		ownerDocument.body.appendChild(cloneIframeContainer);
		return cloneIframeContainer;
	};
	var iframeLoader = function (iframe) {
		return new Promise(function (resolve, reject) {
			var cloneWindow = iframe.contentWindow;
			if (!cloneWindow) {
				return reject("No window assigned for iframe");
			}
			var documentClone = cloneWindow.document;
			cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = function () {
				cloneWindow.onload = iframe.onload = documentClone.onreadystatechange = null;
				var interval = setInterval(function () {
					if (documentClone.body.childNodes.length > 0 && documentClone.readyState === 'complete') {
						clearInterval(interval);
						resolve(iframe);
					}
				}, 50);
			};
		});
	};
	var copyCSSStyles = function (style, target) {
		// Edge does not provide value for cssText
		for (var i = style.length - 1; i >= 0; i--) {
			var property = style.item(i);
			// Safari shows pseudoelements if content is set
			if (property !== 'content') {
				target.style.setProperty(property, style.getPropertyValue(property));
			}
		}
		return target;
	};
	var serializeDoctype = function (doctype) {
		var str = '';
		if (doctype) {
			str += '<!DOCTYPE ';
			if (doctype.name) {
				str += doctype.name;
			}
			if (doctype.internalSubset) {
				str += doctype.internalSubset;
			}
			if (doctype.publicId) {
				str += "\"" + doctype.publicId + "\"";
			}
			if (doctype.systemId) {
				str += "\"" + doctype.systemId + "\"";
			}
			str += '>';
		}
		return str;
	};
	var restoreOwnerScroll = function (ownerDocument, x, y) {
		if (ownerDocument &&
			ownerDocument.defaultView &&
			(x !== ownerDocument.defaultView.pageXOffset || y !== ownerDocument.defaultView.pageYOffset)) {
			ownerDocument.defaultView.scrollTo(x, y);
		}
	};
	var restoreNodeScroll = function (_a) {
		var element = _a[0], x = _a[1], y = _a[2];
		element.scrollLeft = x;
		element.scrollTop = y;
	};
	var PSEUDO_BEFORE = ':before';
	var PSEUDO_AFTER = ':after';
	var PSEUDO_HIDE_ELEMENT_CLASS_BEFORE = '___html2canvas___pseudoelement_before';
	var PSEUDO_HIDE_ELEMENT_CLASS_AFTER = '___html2canvas___pseudoelement_after';
	var PSEUDO_HIDE_ELEMENT_STYLE = "{\n    content: \"\" !important;\n    display: none !important;\n}";
	var createPseudoHideStyles = function (body) {
		createStyles(body, "." + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + PSEUDO_BEFORE + PSEUDO_HIDE_ELEMENT_STYLE + "\n         ." + PSEUDO_HIDE_ELEMENT_CLASS_AFTER + PSEUDO_AFTER + PSEUDO_HIDE_ELEMENT_STYLE);
	};
	var createStyles = function (body, styles) {
		var document = body.ownerDocument;
		if (document) {
			var style = document.createElement('style');
			style.textContent = styles;
			body.appendChild(style);
		}
	};

	var PathType;
	(function (PathType) {
		PathType[PathType["VECTOR"] = 0] = "VECTOR";
		PathType[PathType["BEZIER_CURVE"] = 1] = "BEZIER_CURVE";
	})(PathType || (PathType = {}));
	var equalPath = function (a, b) {
		if (a.length === b.length) {
			return a.some(function (v, i) { return v === b[i]; });
		}
		return false;
	};
	var transformPath = function (path, deltaX, deltaY, deltaW, deltaH) {
		return path.map(function (point, index) {
			switch (index) {
				case 0:
					return point.add(deltaX, deltaY);
				case 1:
					return point.add(deltaX + deltaW, deltaY);
				case 2:
					return point.add(deltaX + deltaW, deltaY + deltaH);
				case 3:
					return point.add(deltaX, deltaY + deltaH);
			}
			return point;
		});
	};

	var Vector = /** @class */ (function () {
		function Vector(x, y) {
			this.type = PathType.VECTOR;
			this.x = x;
			this.y = y;
		}
		Vector.prototype.add = function (deltaX, deltaY) {
			return new Vector(this.x + deltaX, this.y + deltaY);
		};
		return Vector;
	}());

	var lerp = function (a, b, t) {
		return new Vector(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);
	};
	var BezierCurve = /** @class */ (function () {
		function BezierCurve(start, startControl, endControl, end) {
			this.type = PathType.BEZIER_CURVE;
			this.start = start;
			this.startControl = startControl;
			this.endControl = endControl;
			this.end = end;
		}
		BezierCurve.prototype.subdivide = function (t, firstHalf) {
			var ab = lerp(this.start, this.startControl, t);
			var bc = lerp(this.startControl, this.endControl, t);
			var cd = lerp(this.endControl, this.end, t);
			var abbc = lerp(ab, bc, t);
			var bccd = lerp(bc, cd, t);
			var dest = lerp(abbc, bccd, t);
			return firstHalf ? new BezierCurve(this.start, ab, abbc, dest) : new BezierCurve(dest, bccd, cd, this.end);
		};
		BezierCurve.prototype.add = function (deltaX, deltaY) {
			return new BezierCurve(this.start.add(deltaX, deltaY), this.startControl.add(deltaX, deltaY), this.endControl.add(deltaX, deltaY), this.end.add(deltaX, deltaY));
		};
		BezierCurve.prototype.reverse = function () {
			return new BezierCurve(this.end, this.endControl, this.startControl, this.start);
		};
		return BezierCurve;
	}());
	var isBezierCurve = function (path) { return path.type === PathType.BEZIER_CURVE; };

	var BoundCurves = /** @class */ (function () {
		function BoundCurves(element) {
			var styles = element.styles;
			var bounds = element.bounds;
			var _a = getAbsoluteValueForTuple(styles.borderTopLeftRadius, bounds.width, bounds.height), tlh = _a[0], tlv = _a[1];
			var _b = getAbsoluteValueForTuple(styles.borderTopRightRadius, bounds.width, bounds.height), trh = _b[0], trv = _b[1];
			var _c = getAbsoluteValueForTuple(styles.borderBottomRightRadius, bounds.width, bounds.height), brh = _c[0], brv = _c[1];
			var _d = getAbsoluteValueForTuple(styles.borderBottomLeftRadius, bounds.width, bounds.height), blh = _d[0], blv = _d[1];
			var factors = [];
			factors.push((tlh + trh) / bounds.width);
			factors.push((blh + brh) / bounds.width);
			factors.push((tlv + blv) / bounds.height);
			factors.push((trv + brv) / bounds.height);
			var maxFactor = Math.max.apply(Math, factors);
			if (maxFactor > 1) {
				tlh /= maxFactor;
				tlv /= maxFactor;
				trh /= maxFactor;
				trv /= maxFactor;
				brh /= maxFactor;
				brv /= maxFactor;
				blh /= maxFactor;
				blv /= maxFactor;
			}
			var topWidth = bounds.width - trh;
			var rightHeight = bounds.height - brv;
			var bottomWidth = bounds.width - brh;
			var leftHeight = bounds.height - blv;
			var borderTopWidth = styles.borderTopWidth;
			var borderRightWidth = styles.borderRightWidth;
			var borderBottomWidth = styles.borderBottomWidth;
			var borderLeftWidth = styles.borderLeftWidth;
			var paddingTop = getAbsoluteValue(styles.paddingTop, element.bounds.width);
			var paddingRight = getAbsoluteValue(styles.paddingRight, element.bounds.width);
			var paddingBottom = getAbsoluteValue(styles.paddingBottom, element.bounds.width);
			var paddingLeft = getAbsoluteValue(styles.paddingLeft, element.bounds.width);
			this.topLeftBorderBox =
				tlh > 0 || tlv > 0
					? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT)
					: new Vector(bounds.left, bounds.top);
			this.topRightBorderBox =
				trh > 0 || trv > 0
					? getCurvePoints(bounds.left + topWidth, bounds.top, trh, trv, CORNER.TOP_RIGHT)
					: new Vector(bounds.left + bounds.width, bounds.top);
			this.bottomRightBorderBox =
				brh > 0 || brv > 0
					? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh, brv, CORNER.BOTTOM_RIGHT)
					: new Vector(bounds.left + bounds.width, bounds.top + bounds.height);
			this.bottomLeftBorderBox =
				blh > 0 || blv > 0
					? getCurvePoints(bounds.left, bounds.top + leftHeight, blh, blv, CORNER.BOTTOM_LEFT)
					: new Vector(bounds.left, bounds.top + bounds.height);
			this.topLeftPaddingBox =
				tlh > 0 || tlv > 0
					? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + borderTopWidth, Math.max(0, tlh - borderLeftWidth), Math.max(0, tlv - borderTopWidth), CORNER.TOP_LEFT)
					: new Vector(bounds.left + borderLeftWidth, bounds.top + borderTopWidth);
			this.topRightPaddingBox =
				trh > 0 || trv > 0
					? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth), bounds.top + borderTopWidth, topWidth > bounds.width + borderLeftWidth ? 0 : trh - borderLeftWidth, trv - borderTopWidth, CORNER.TOP_RIGHT)
					: new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + borderTopWidth);
			this.bottomRightPaddingBox =
				brh > 0 || brv > 0
					? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth), Math.max(0, brh - borderRightWidth), brv - borderBottomWidth, CORNER.BOTTOM_RIGHT)
					: new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + bounds.height - borderBottomWidth);
			this.bottomLeftPaddingBox =
				blh > 0 || blv > 0
					? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + leftHeight, Math.max(0, blh - borderLeftWidth), blv - borderBottomWidth, CORNER.BOTTOM_LEFT)
					: new Vector(bounds.left + borderLeftWidth, bounds.top + bounds.height - borderBottomWidth);
			this.topLeftContentBox =
				tlh > 0 || tlv > 0
					? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop, Math.max(0, tlh - (borderLeftWidth + paddingLeft)), Math.max(0, tlv - (borderTopWidth + paddingTop)), CORNER.TOP_LEFT)
					: new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop);
			this.topRightContentBox =
				trh > 0 || trv > 0
					? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth + paddingLeft), bounds.top + borderTopWidth + paddingTop, topWidth > bounds.width + borderLeftWidth + paddingLeft ? 0 : trh - borderLeftWidth + paddingLeft, trv - (borderTopWidth + paddingTop), CORNER.TOP_RIGHT)
					: new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + borderTopWidth + paddingTop);
			this.bottomRightContentBox =
				brh > 0 || brv > 0
					? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - (borderLeftWidth + paddingLeft)), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth + paddingTop), Math.max(0, brh - (borderRightWidth + paddingRight)), brv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_RIGHT)
					: new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + bounds.height - (borderBottomWidth + paddingBottom));
			this.bottomLeftContentBox =
				blh > 0 || blv > 0
					? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + leftHeight, Math.max(0, blh - (borderLeftWidth + paddingLeft)), blv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_LEFT)
					: new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + bounds.height - (borderBottomWidth + paddingBottom));
		}
		return BoundCurves;
	}());
	var CORNER;
	(function (CORNER) {
		CORNER[CORNER["TOP_LEFT"] = 0] = "TOP_LEFT";
		CORNER[CORNER["TOP_RIGHT"] = 1] = "TOP_RIGHT";
		CORNER[CORNER["BOTTOM_RIGHT"] = 2] = "BOTTOM_RIGHT";
		CORNER[CORNER["BOTTOM_LEFT"] = 3] = "BOTTOM_LEFT";
	})(CORNER || (CORNER = {}));
	var getCurvePoints = function (x, y, r1, r2, position) {
		var kappa = 4 * ((Math.sqrt(2) - 1) / 3);
		var ox = r1 * kappa; // control point offset horizontal
		var oy = r2 * kappa; // control point offset vertical
		var xm = x + r1; // x-middle
		var ym = y + r2; // y-middle
		switch (position) {
			case CORNER.TOP_LEFT:
				return new BezierCurve(new Vector(x, ym), new Vector(x, ym - oy), new Vector(xm - ox, y), new Vector(xm, y));
			case CORNER.TOP_RIGHT:
				return new BezierCurve(new Vector(x, y), new Vector(x + ox, y), new Vector(xm, ym - oy), new Vector(xm, ym));
			case CORNER.BOTTOM_RIGHT:
				return new BezierCurve(new Vector(xm, y), new Vector(xm, y + oy), new Vector(x + ox, ym), new Vector(x, ym));
			case CORNER.BOTTOM_LEFT:
			default:
				return new BezierCurve(new Vector(xm, ym), new Vector(xm - ox, ym), new Vector(x, y + oy), new Vector(x, y));
		}
	};
	var calculateBorderBoxPath = function (curves) {
		return [curves.topLeftBorderBox, curves.topRightBorderBox, curves.bottomRightBorderBox, curves.bottomLeftBorderBox];
	};
	var calculateContentBoxPath = function (curves) {
		return [
			curves.topLeftContentBox,
			curves.topRightContentBox,
			curves.bottomRightContentBox,
			curves.bottomLeftContentBox
		];
	};
	var calculatePaddingBoxPath = function (curves) {
		return [
			curves.topLeftPaddingBox,
			curves.topRightPaddingBox,
			curves.bottomRightPaddingBox,
			curves.bottomLeftPaddingBox
		];
	};

	var TransformEffect = /** @class */ (function () {
		function TransformEffect(offsetX, offsetY, matrix) {
			this.type = 0 /* TRANSFORM */;
			this.offsetX = offsetX;
			this.offsetY = offsetY;
			this.matrix = matrix;
			this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */;
		}
		return TransformEffect;
	}());
	var ClipEffect = /** @class */ (function () {
		function ClipEffect(path, target) {
			this.type = 1 /* CLIP */;
			this.target = target;
			this.path = path;
		}
		return ClipEffect;
	}());
	var isTransformEffect = function (effect) {
		return effect.type === 0 /* TRANSFORM */;
	};
	var isClipEffect = function (effect) { return effect.type === 1 /* CLIP */; };

	var StackingContext = /** @class */ (function () {
		function StackingContext(container) {
			this.element = container;
			this.inlineLevel = [];
			this.nonInlineLevel = [];
			this.negativeZIndex = [];
			this.zeroOrAutoZIndexOrTransformedOrOpacity = [];
			this.positiveZIndex = [];
			this.nonPositionedFloats = [];
			this.nonPositionedInlineLevel = [];
		}
		return StackingContext;
	}());
	var ElementPaint = /** @class */ (function () {
		function ElementPaint(element, parentStack) {
			this.container = element;
			this.effects = parentStack.slice(0);
			this.curves = new BoundCurves(element);
			if (element.styles.transform !== null) {
				var offsetX = element.bounds.left + element.styles.transformOrigin[0].number;
				var offsetY = element.bounds.top + element.styles.transformOrigin[1].number;
				var matrix = element.styles.transform;
				this.effects.push(new TransformEffect(offsetX, offsetY, matrix));
			}
			if (element.styles.overflowX !== OVERFLOW.VISIBLE) {
				var borderBox = calculateBorderBoxPath(this.curves);
				var paddingBox = calculatePaddingBoxPath(this.curves);
				if (equalPath(borderBox, paddingBox)) {
					this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));
				}
				else {
					this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */));
					this.effects.push(new ClipEffect(paddingBox, 4 /* CONTENT */));
				}
			}
		}
		ElementPaint.prototype.getParentEffects = function () {
			var effects = this.effects.slice(0);
			if (this.container.styles.overflowX !== OVERFLOW.VISIBLE) {
				var borderBox = calculateBorderBoxPath(this.curves);
				var paddingBox = calculatePaddingBoxPath(this.curves);
				if (!equalPath(borderBox, paddingBox)) {
					effects.push(new ClipEffect(paddingBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));
				}
			}
			return effects;
		};
		return ElementPaint;
	}());
	var parseStackTree = function (parent, stackingContext, realStackingContext, listItems) {
		parent.container.elements.forEach(function (child) {
			var treatAsRealStackingContext = contains(child.flags, 4 /* CREATES_REAL_STACKING_CONTEXT */);
			var createsStackingContext = contains(child.flags, 2 /* CREATES_STACKING_CONTEXT */);
			var paintContainer = new ElementPaint(child, parent.getParentEffects());
			if (contains(child.styles.display, 2048 /* LIST_ITEM */)) {
				listItems.push(paintContainer);
			}
			var listOwnerItems = contains(child.flags, 8 /* IS_LIST_OWNER */) ? [] : listItems;
			if (treatAsRealStackingContext || createsStackingContext) {
				var parentStack = treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext;
				var stack = new StackingContext(paintContainer);
				if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) {
					var order_1 = child.styles.zIndex.order;
					if (order_1 < 0) {
						var index_1 = 0;
						parentStack.negativeZIndex.some(function (current, i) {
							if (order_1 > current.element.container.styles.zIndex.order) {
								index_1 = i;
								return false;
							}
							else if (index_1 > 0) {
								return true;
							}
							return false;
						});
						parentStack.negativeZIndex.splice(index_1, 0, stack);
					}
					else if (order_1 > 0) {
						var index_2 = 0;
						parentStack.positiveZIndex.some(function (current, i) {
							if (order_1 > current.element.container.styles.zIndex.order) {
								index_2 = i + 1;
								return false;
							}
							else if (index_2 > 0) {
								return true;
							}
							return false;
						});
						parentStack.positiveZIndex.splice(index_2, 0, stack);
					}
					else {
						parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack);
					}
				}
				else {
					if (child.styles.isFloating()) {
						parentStack.nonPositionedFloats.push(stack);
					}
					else {
						parentStack.nonPositionedInlineLevel.push(stack);
					}
				}
				parseStackTree(paintContainer, stack, treatAsRealStackingContext ? stack : realStackingContext, listOwnerItems);
			}
			else {
				if (child.styles.isInlineLevel()) {
					stackingContext.inlineLevel.push(paintContainer);
				}
				else {
					stackingContext.nonInlineLevel.push(paintContainer);
				}
				parseStackTree(paintContainer, stackingContext, realStackingContext, listOwnerItems);
			}
			if (contains(child.flags, 8 /* IS_LIST_OWNER */)) {
				processListItems(child, listOwnerItems);
			}
		});
	};
	var processListItems = function (owner, elements) {
		var numbering = owner instanceof OLElementContainer ? owner.start : 1;
		var reversed = owner instanceof OLElementContainer ? owner.reversed : false;
		for (var i = 0; i < elements.length; i++) {
			var item = elements[i];
			if (item.container instanceof LIElementContainer &&
				typeof item.container.value === 'number' &&
				item.container.value !== 0) {
				numbering = item.container.value;
			}
			item.listValue = createCounterText(numbering, item.container.styles.listStyleType, true);
			numbering += reversed ? -1 : 1;
		}
	};
	var parseStackingContexts = function (container) {
		var paintContainer = new ElementPaint(container, []);
		var root = new StackingContext(paintContainer);
		var listItems = [];
		parseStackTree(paintContainer, root, root, listItems);
		processListItems(paintContainer.container, listItems);
		return root;
	};

	var parsePathForBorder = function (curves, borderSide) {
		switch (borderSide) {
			case 0:
				return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftPaddingBox, curves.topRightBorderBox, curves.topRightPaddingBox);
			case 1:
				return createPathFromCurves(curves.topRightBorderBox, curves.topRightPaddingBox, curves.bottomRightBorderBox, curves.bottomRightPaddingBox);
			case 2:
				return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox);
			case 3:
			default:
				return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox, curves.topLeftBorderBox, curves.topLeftPaddingBox);
		}
	};
	var createPathFromCurves = function (outer1, inner1, outer2, inner2) {
		var path = [];
		if (isBezierCurve(outer1)) {
			path.push(outer1.subdivide(0.5, false));
		}
		else {
			path.push(outer1);
		}
		if (isBezierCurve(outer2)) {
			path.push(outer2.subdivide(0.5, true));
		}
		else {
			path.push(outer2);
		}
		if (isBezierCurve(inner2)) {
			path.push(inner2.subdivide(0.5, true).reverse());
		}
		else {
			path.push(inner2);
		}
		if (isBezierCurve(inner1)) {
			path.push(inner1.subdivide(0.5, false).reverse());
		}
		else {
			path.push(inner1);
		}
		return path;
	};

	var paddingBox = function (element) {
		var bounds = element.bounds;
		var styles = element.styles;
		return bounds.add(styles.borderLeftWidth, styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth), -(styles.borderTopWidth + styles.borderBottomWidth));
	};
	var contentBox = function (element) {
		var styles = element.styles;
		var bounds = element.bounds;
		var paddingLeft = getAbsoluteValue(styles.paddingLeft, bounds.width);
		var paddingRight = getAbsoluteValue(styles.paddingRight, bounds.width);
		var paddingTop = getAbsoluteValue(styles.paddingTop, bounds.width);
		var paddingBottom = getAbsoluteValue(styles.paddingBottom, bounds.width);
		return bounds.add(paddingLeft + styles.borderLeftWidth, paddingTop + styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth + paddingLeft + paddingRight), -(styles.borderTopWidth + styles.borderBottomWidth + paddingTop + paddingBottom));
	};

	var calculateBackgroundPositioningArea = function (backgroundOrigin, element) {
		if (backgroundOrigin === 0 /* BORDER_BOX */) {
			return element.bounds;
		}
		if (backgroundOrigin === 2 /* CONTENT_BOX */) {
			return contentBox(element);
		}
		return paddingBox(element);
	};
	var calculateBackgroundPaintingArea = function (backgroundClip, element) {
		if (backgroundClip === BACKGROUND_CLIP.BORDER_BOX) {
			return element.bounds;
		}
		if (backgroundClip === BACKGROUND_CLIP.CONTENT_BOX) {
			return contentBox(element);
		}
		return paddingBox(element);
	};
	var calculateBackgroundRendering = function (container, index, intrinsicSize) {
		var backgroundPositioningArea = calculateBackgroundPositioningArea(getBackgroundValueForIndex(container.styles.backgroundOrigin, index), container);
		var backgroundPaintingArea = calculateBackgroundPaintingArea(getBackgroundValueForIndex(container.styles.backgroundClip, index), container);
		var backgroundImageSize = calculateBackgroundSize(getBackgroundValueForIndex(container.styles.backgroundSize, index), intrinsicSize, backgroundPositioningArea);
		var sizeWidth = backgroundImageSize[0], sizeHeight = backgroundImageSize[1];
		var position = getAbsoluteValueForTuple(getBackgroundValueForIndex(container.styles.backgroundPosition, index), backgroundPositioningArea.width - sizeWidth, backgroundPositioningArea.height - sizeHeight);
		var path = calculateBackgroundRepeatPath(getBackgroundValueForIndex(container.styles.backgroundRepeat, index), position, backgroundImageSize, backgroundPositioningArea, backgroundPaintingArea);
		var offsetX = Math.round(backgroundPositioningArea.left + position[0]);
		var offsetY = Math.round(backgroundPositioningArea.top + position[1]);
		return [path, offsetX, offsetY, sizeWidth, sizeHeight];
	};
	var isAuto = function (token) { return isIdentToken(token) && token.value === BACKGROUND_SIZE.AUTO; };
	var hasIntrinsicValue = function (value) { return typeof value === 'number'; };
	var calculateBackgroundSize = function (size, _a, bounds) {
		var intrinsicWidth = _a[0], intrinsicHeight = _a[1], intrinsicProportion = _a[2];
		var first = size[0], second = size[1];
		if (isLengthPercentage(first) && second && isLengthPercentage(second)) {
			return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)];
		}
		var hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion);
		if (isIdentToken(first) && (first.value === BACKGROUND_SIZE.CONTAIN || first.value === BACKGROUND_SIZE.COVER)) {
			if (hasIntrinsicValue(intrinsicProportion)) {
				var targetRatio = bounds.width / bounds.height;
				return targetRatio < intrinsicProportion !== (first.value === BACKGROUND_SIZE.COVER)
					? [bounds.width, bounds.width / intrinsicProportion]
					: [bounds.height * intrinsicProportion, bounds.height];
			}
			return [bounds.width, bounds.height];
		}
		var hasIntrinsicWidth = hasIntrinsicValue(intrinsicWidth);
		var hasIntrinsicHeight = hasIntrinsicValue(intrinsicHeight);
		var hasIntrinsicDimensions = hasIntrinsicWidth || hasIntrinsicHeight;
		// If the background-size is auto or auto auto:
		if (isAuto(first) && (!second || isAuto(second))) {
			// If the image has both horizontal and vertical intrinsic dimensions, it's rendered at that size.
			if (hasIntrinsicWidth && hasIntrinsicHeight) {
				return [intrinsicWidth, intrinsicHeight];
			}
			// If the image has no intrinsic dimensions and has no intrinsic proportions,
			// it's rendered at the size of the background positioning area.
			if (!hasIntrinsicProportion && !hasIntrinsicDimensions) {
				return [bounds.width, bounds.height];
			}
			// TODO If the image has no intrinsic dimensions but has intrinsic proportions, it's rendered as if contain had been specified instead.
			// If the image has only one intrinsic dimension and has intrinsic proportions, it's rendered at the size corresponding to that one dimension.
			// The other dimension is computed using the specified dimension and the intrinsic proportions.
			if (hasIntrinsicDimensions && hasIntrinsicProportion) {
				var width_1 = hasIntrinsicWidth
					? intrinsicWidth
					: intrinsicHeight * intrinsicProportion;
				var height_1 = hasIntrinsicHeight
					? intrinsicHeight
					: intrinsicWidth / intrinsicProportion;
				return [width_1, height_1];
			}
			// If the image has only one intrinsic dimension but has no intrinsic proportions,
			// it's rendered using the specified dimension and the other dimension of the background positioning area.
			var width_2 = hasIntrinsicWidth ? intrinsicWidth : bounds.width;
			var height_2 = hasIntrinsicHeight ? intrinsicHeight : bounds.height;
			return [width_2, height_2];
		}
		// If the image has intrinsic proportions, it's stretched to the specified dimension.
		// The unspecified dimension is computed using the specified dimension and the intrinsic proportions.
		if (hasIntrinsicProportion) {
			var width_3 = 0;
			var height_3 = 0;
			if (isLengthPercentage(first)) {
				width_3 = getAbsoluteValue(first, bounds.width);
			}
			else if (isLengthPercentage(second)) {
				height_3 = getAbsoluteValue(second, bounds.height);
			}
			if (isAuto(first)) {
				width_3 = height_3 * intrinsicProportion;
			}
			else if (!second || isAuto(second)) {
				height_3 = width_3 / intrinsicProportion;
			}
			return [width_3, height_3];
		}
		// If the image has no intrinsic proportions, it's stretched to the specified dimension.
		// The unspecified dimension is computed using the image's corresponding intrinsic dimension,
		// if there is one. If there is no such intrinsic dimension,
		// it becomes the corresponding dimension of the background positioning area.
		var width = null;
		var height = null;
		if (isLengthPercentage(first)) {
			width = getAbsoluteValue(first, bounds.width);
		}
		else if (second && isLengthPercentage(second)) {
			height = getAbsoluteValue(second, bounds.height);
		}
		if (width !== null && (!second || isAuto(second))) {
			height =
				hasIntrinsicWidth && hasIntrinsicHeight
					? (width / intrinsicWidth) * intrinsicHeight
					: bounds.height;
		}
		if (height !== null && isAuto(first)) {
			width =
				hasIntrinsicWidth && hasIntrinsicHeight
					? (height / intrinsicHeight) * intrinsicWidth
					: bounds.width;
		}
		if (width !== null && height !== null) {
			return [width, height];
		}
		throw new Error("Unable to calculate background-size for element");
	};
	var getBackgroundValueForIndex = function (values, index) {
		var value = values[index];
		if (typeof value === 'undefined') {
			return values[0];
		}
		return value;
	};
	var calculateBackgroundRepeatPath = function (repeat, _a, _b, backgroundPositioningArea, backgroundPaintingArea) {
		var x = _a[0], y = _a[1];
		var width = _b[0], height = _b[1];
		switch (repeat) {
			case BACKGROUND_REPEAT.REPEAT_X:
				return [
					new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)),
					new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)),
					new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)),
					new Vector(Math.round(backgroundPositioningArea.left), Math.round(height + backgroundPositioningArea.top + y))
				];
			case BACKGROUND_REPEAT.REPEAT_Y:
				return [
					new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)),
					new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)),
					new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)),
					new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top))
				];
			case BACKGROUND_REPEAT.NO_REPEAT:
				return [
					new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y)),
					new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y)),
					new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y + height)),
					new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y + height))
				];
			default:
				return [
					new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.top)),
					new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.top)),
					new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)),
					new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top))
				];
		}
	};

	var SMALL_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';

	var SAMPLE_TEXT = 'Hidden Text';
	var FontMetrics = /** @class */ (function () {
		function FontMetrics(document) {
			this._data = {};
			this._document = document;
		}
		FontMetrics.prototype.parseMetrics = function (fontFamily, fontSize) {
			var container = this._document.createElement('div');
			var img = this._document.createElement('img');
			var span = this._document.createElement('span');
			var body = this._document.body;
			container.style.visibility = 'hidden';
			container.style.fontFamily = fontFamily;
			container.style.fontSize = fontSize;
			container.style.margin = '0';
			container.style.padding = '0';
			body.appendChild(container);
			img.src = SMALL_IMAGE;
			img.width = 1;
			img.height = 1;
			img.style.margin = '0';
			img.style.padding = '0';
			img.style.verticalAlign = 'baseline';
			span.style.fontFamily = fontFamily;
			span.style.fontSize = fontSize;
			span.style.margin = '0';
			span.style.padding = '0';
			span.appendChild(this._document.createTextNode(SAMPLE_TEXT));
			container.appendChild(span);
			container.appendChild(img);
			var baseline = img.offsetTop - span.offsetTop + 2;
			container.removeChild(span);
			container.appendChild(this._document.createTextNode(SAMPLE_TEXT));
			container.style.lineHeight = 'normal';
			img.style.verticalAlign = 'super';
			var middle = img.offsetTop - container.offsetTop + 2;
			body.removeChild(container);
			return { baseline: baseline, middle: middle };
		};
		FontMetrics.prototype.getMetrics = function (fontFamily, fontSize) {
			var key = fontFamily + " " + fontSize;
			if (typeof this._data[key] === 'undefined') {
				this._data[key] = this.parseMetrics(fontFamily, fontSize);
			}
			return this._data[key];
		};
		return FontMetrics;
	}());

	var MASK_OFFSET = 10000;
	var CanvasRenderer = /** @class */ (function () {
		function CanvasRenderer(options) {
			this._activeEffects = [];
			this.canvas = options.canvas ? options.canvas : document.createElement('canvas');
			this.ctx = this.canvas.getContext('2d');
			this.options = options;
			if (!options.canvas) {
				this.canvas.width = Math.floor(options.width * options.scale);
				this.canvas.height = Math.floor(options.height * options.scale);
				this.canvas.style.width = options.width + "px";
				this.canvas.style.height = options.height + "px";
			}
			this.fontMetrics = new FontMetrics(document);
			this.ctx.scale(this.options.scale, this.options.scale);
			this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY);
			this.ctx.textBaseline = 'bottom';
			this._activeEffects = [];
			Logger.getInstance(options.id).debug("Canvas renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale);
		}
		CanvasRenderer.prototype.applyEffects = function (effects, target) {
			var _this = this;
			while (this._activeEffects.length) {
				this.popEffect();
			}
			effects.filter(function (effect) { return contains(effect.target, target); }).forEach(function (effect) { return _this.applyEffect(effect); });
		};
		CanvasRenderer.prototype.applyEffect = function (effect) {
			this.ctx.save();
			if (isTransformEffect(effect)) {
				this.ctx.translate(effect.offsetX, effect.offsetY);
				this.ctx.transform(effect.matrix[0], effect.matrix[1], effect.matrix[2], effect.matrix[3], effect.matrix[4], effect.matrix[5]);
				this.ctx.translate(-effect.offsetX, -effect.offsetY);
			}
			if (isClipEffect(effect)) {
				this.path(effect.path);
				this.ctx.clip();
			}
			this._activeEffects.push(effect);
		};
		CanvasRenderer.prototype.popEffect = function () {
			this._activeEffects.pop();
			this.ctx.restore();
		};
		CanvasRenderer.prototype.renderStack = function (stack) {
			return __awaiter(this, void 0, void 0, function () {
				var styles;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							styles = stack.element.container.styles;
							if (!styles.isVisible()) return [3 /*break*/, 2];
							this.ctx.globalAlpha = styles.opacity;
							return [4 /*yield*/, this.renderStackContent(stack)];
						case 1:
							_a.sent();
							_a.label = 2;
						case 2: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.renderNode = function (paint) {
			return __awaiter(this, void 0, void 0, function () {
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							if (!paint.container.styles.isVisible()) return [3 /*break*/, 3];
							return [4 /*yield*/, this.renderNodeBackgroundAndBorders(paint)];
						case 1:
							_a.sent();
							return [4 /*yield*/, this.renderNodeContent(paint)];
						case 2:
							_a.sent();
							_a.label = 3;
						case 3: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.renderTextWithLetterSpacing = function (text, letterSpacing) {
			var _this = this;
			if (letterSpacing === 0) {
				this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height);
			}
			else {
				var letters = toCodePoints(text.text).map(function (i) { return fromCodePoint(i); });
				letters.reduce(function (left, letter) {
					_this.ctx.fillText(letter, left, text.bounds.top + text.bounds.height);
					return left + _this.ctx.measureText(letter).width;
				}, text.bounds.left);
			}
		};
		CanvasRenderer.prototype.createFontStyle = function (styles) {
			var fontVariant = styles.fontVariant
				.filter(function (variant) { return variant === 'normal' || variant === 'small-caps'; })
				.join('');
			var fontFamily = styles.fontFamily.join(', ');
			var fontSize = isDimensionToken(styles.fontSize)
				? "" + styles.fontSize.number + styles.fontSize.unit
				: styles.fontSize.number + "px";
			return [
				[styles.fontStyle, fontVariant, styles.fontWeight, fontSize, fontFamily].join(' '),
				fontFamily,
				fontSize
			];
		};
		CanvasRenderer.prototype.renderTextNode = function (text, styles) {
			return __awaiter(this, void 0, void 0, function () {
				var _a, font, fontFamily, fontSize;
				var _this = this;
				return __generator(this, function (_b) {
					_a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2];
					this.ctx.font = font;
					text.textBounds.forEach(function (text) {
						_this.ctx.fillStyle = asString(styles.color);
						_this.renderTextWithLetterSpacing(text, styles.letterSpacing);
						var textShadows = styles.textShadow;
						if (textShadows.length && text.text.trim().length) {
							textShadows
								.slice(0)
								.reverse()
								.forEach(function (textShadow) {
									_this.ctx.shadowColor = asString(textShadow.color);
									_this.ctx.shadowOffsetX = textShadow.offsetX.number * _this.options.scale;
									_this.ctx.shadowOffsetY = textShadow.offsetY.number * _this.options.scale;
									_this.ctx.shadowBlur = textShadow.blur.number;
									_this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + text.bounds.height);
								});
							_this.ctx.shadowColor = '';
							_this.ctx.shadowOffsetX = 0;
							_this.ctx.shadowOffsetY = 0;
							_this.ctx.shadowBlur = 0;
						}
						if (styles.textDecorationLine.length) {
							_this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color);
							styles.textDecorationLine.forEach(function (textDecorationLine) {
								switch (textDecorationLine) {
									case 1 /* UNDERLINE */:
										// Draws a line at the baseline of the font
										// TODO As some browsers display the line as more than 1px if the font-size is big,
										// need to take that into account both in position and size
										var baseline = _this.fontMetrics.getMetrics(fontFamily, fontSize).baseline;
										_this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top + baseline), text.bounds.width, 1);
										break;
									case 2 /* OVERLINE */:
										_this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top), text.bounds.width, 1);
										break;
									case 3 /* LINE_THROUGH */:
										// TODO try and find exact position for line-through
										var middle = _this.fontMetrics.getMetrics(fontFamily, fontSize).middle;
										_this.ctx.fillRect(text.bounds.left, Math.ceil(text.bounds.top + middle), text.bounds.width, 1);
										break;
								}
							});
						}
					});
					return [2 /*return*/];
				});
			});
		};
		CanvasRenderer.prototype.renderReplacedElement = function (container, curves, image) {
			if (image && container.intrinsicWidth > 0 && container.intrinsicHeight > 0) {
				var box = contentBox(container);
				var path = calculatePaddingBoxPath(curves);
				this.path(path);
				this.ctx.save();
				this.ctx.clip();
				this.ctx.drawImage(image, 0, 0, container.intrinsicWidth, container.intrinsicHeight, box.left, box.top, box.width, box.height);
				this.ctx.restore();
			}
		};
		CanvasRenderer.prototype.renderNodeContent = function (paint) {
			return __awaiter(this, void 0, void 0, function () {
				var container, curves, styles, _i, _a, child, image, e_1, image, e_2, iframeRenderer, canvas, size, bounds, x, textBounds, img, image, url, e_3, bounds;
				return __generator(this, function (_b) {
					switch (_b.label) {
						case 0:
							this.applyEffects(paint.effects, 4 /* CONTENT */);
							container = paint.container;
							curves = paint.curves;
							styles = container.styles;
							_i = 0, _a = container.textNodes;
							_b.label = 1;
						case 1:
							if (!(_i < _a.length)) return [3 /*break*/, 4];
							child = _a[_i];
							return [4 /*yield*/, this.renderTextNode(child, styles)];
						case 2:
							_b.sent();
							_b.label = 3;
						case 3:
							_i++;
							return [3 /*break*/, 1];
						case 4:
							if (!(container instanceof ImageElementContainer)) return [3 /*break*/, 8];
							_b.label = 5;
						case 5:
							_b.trys.push([5, 7, , 8]);
							return [4 /*yield*/, this.options.cache.match(container.src)];
						case 6:
							image = _b.sent();
							this.renderReplacedElement(container, curves, image);
							return [3 /*break*/, 8];
						case 7:
							e_1 = _b.sent();
							Logger.getInstance(this.options.id).error("Error loading image " + container.src);
							return [3 /*break*/, 8];
						case 8:
							if (container instanceof CanvasElementContainer) {
								this.renderReplacedElement(container, curves, container.canvas);
							}
							if (!(container instanceof SVGElementContainer)) return [3 /*break*/, 12];
							_b.label = 9;
						case 9:
							_b.trys.push([9, 11, , 12]);
							return [4 /*yield*/, this.options.cache.match(container.svg)];
						case 10:
							image = _b.sent();
							this.renderReplacedElement(container, curves, image);
							return [3 /*break*/, 12];
						case 11:
							e_2 = _b.sent();
							Logger.getInstance(this.options.id).error("Error loading svg " + container.svg.substring(0, 255));
							return [3 /*break*/, 12];
						case 12:
							if (!(container instanceof IFrameElementContainer && container.tree)) return [3 /*break*/, 14];
							iframeRenderer = new CanvasRenderer({
								id: this.options.id,
								scale: this.options.scale,
								backgroundColor: container.backgroundColor,
								x: 0,
								y: 0,
								scrollX: 0,
								scrollY: 0,
								width: container.width,
								height: container.height,
								cache: this.options.cache,
								windowWidth: container.width,
								windowHeight: container.height
							});
							return [4 /*yield*/, iframeRenderer.render(container.tree)];
						case 13:
							canvas = _b.sent();
							if (container.width && container.height) {
								this.ctx.drawImage(canvas, 0, 0, container.width, container.height, container.bounds.left, container.bounds.top, container.bounds.width, container.bounds.height);
							}
							_b.label = 14;
						case 14:
							if (container instanceof InputElementContainer) {
								size = Math.min(container.bounds.width, container.bounds.height);
								if (container.type === CHECKBOX) {
									if (container.checked) {
										this.ctx.save();
										this.path([
											new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79),
											new Vector(container.bounds.left + size * 0.16, container.bounds.top + size * 0.5549),
											new Vector(container.bounds.left + size * 0.27347, container.bounds.top + size * 0.44071),
											new Vector(container.bounds.left + size * 0.39694, container.bounds.top + size * 0.5649),
											new Vector(container.bounds.left + size * 0.72983, container.bounds.top + size * 0.23),
											new Vector(container.bounds.left + size * 0.84, container.bounds.top + size * 0.34085),
											new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79)
										]);
										this.ctx.fillStyle = asString(INPUT_COLOR);
										this.ctx.fill();
										this.ctx.restore();
									}
								}
								else if (container.type === RADIO) {
									if (container.checked) {
										this.ctx.save();
										this.ctx.beginPath();
										this.ctx.arc(container.bounds.left + size / 2, container.bounds.top + size / 2, size / 4, 0, Math.PI * 2, true);
										this.ctx.fillStyle = asString(INPUT_COLOR);
										this.ctx.fill();
										this.ctx.restore();
									}
								}
							}
							if (isTextInputElement(container) && container.value.length) {
								this.ctx.font = this.createFontStyle(styles)[0];
								this.ctx.fillStyle = asString(styles.color);
								this.ctx.textBaseline = 'middle';
								this.ctx.textAlign = canvasTextAlign(container.styles.textAlign);
								bounds = contentBox(container);
								x = 0;
								switch (container.styles.textAlign) {
									case TEXT_ALIGN.CENTER:
										x += bounds.width / 2;
										break;
									case TEXT_ALIGN.RIGHT:
										x += bounds.width;
										break;
								}
								textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1);
								this.ctx.save();
								this.path([
									new Vector(bounds.left, bounds.top),
									new Vector(bounds.left + bounds.width, bounds.top),
									new Vector(bounds.left + bounds.width, bounds.top + bounds.height),
									new Vector(bounds.left, bounds.top + bounds.height)
								]);
								this.ctx.clip();
								this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing);
								this.ctx.restore();
								this.ctx.textBaseline = 'bottom';
								this.ctx.textAlign = 'left';
							}
							if (!contains(container.styles.display, 2048 /* LIST_ITEM */)) return [3 /*break*/, 20];
							if (!(container.styles.listStyleImage !== null)) return [3 /*break*/, 19];
							img = container.styles.listStyleImage;
							if (!(img.type === CSSImageType.URL)) return [3 /*break*/, 18];
							image = void 0;
							url = img.url;
							_b.label = 15;
						case 15:
							_b.trys.push([15, 17, , 18]);
							return [4 /*yield*/, this.options.cache.match(url)];
						case 16:
							image = _b.sent();
							this.ctx.drawImage(image, container.bounds.left - (image.width + 10), container.bounds.top);
							return [3 /*break*/, 18];
						case 17:
							e_3 = _b.sent();
							Logger.getInstance(this.options.id).error("Error loading list-style-image " + url);
							return [3 /*break*/, 18];
						case 18: return [3 /*break*/, 20];
						case 19:
							if (paint.listValue && container.styles.listStyleType !== LIST_STYLE_TYPE.NONE) {
								this.ctx.font = this.createFontStyle(styles)[0];
								this.ctx.fillStyle = asString(styles.color);
								this.ctx.textBaseline = 'middle';
								this.ctx.textAlign = 'right';
								bounds = new Bounds(container.bounds.left, container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width), container.bounds.width, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1);
								this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing);
								this.ctx.textBaseline = 'bottom';
								this.ctx.textAlign = 'left';
							}
							_b.label = 20;
						case 20: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.renderStackContent = function (stack) {
			return __awaiter(this, void 0, void 0, function () {
				var _i, _a, child, _b, _c, child, _d, _e, child, _f, _g, child, _h, _j, child, _k, _l, child, _m, _o, child;
				return __generator(this, function (_p) {
					switch (_p.label) {
						case 0:
							// https://www.w3.org/TR/css-position-3/#painting-order
							// 1. the background and borders of the element forming the stacking context.
							return [4 /*yield*/, this.renderNodeBackgroundAndBorders(stack.element)];
						case 1:
							// https://www.w3.org/TR/css-position-3/#painting-order
							// 1. the background and borders of the element forming the stacking context.
							_p.sent();
							_i = 0, _a = stack.negativeZIndex;
							_p.label = 2;
						case 2:
							if (!(_i < _a.length)) return [3 /*break*/, 5];
							child = _a[_i];
							return [4 /*yield*/, this.renderStack(child)];
						case 3:
							_p.sent();
							_p.label = 4;
						case 4:
							_i++;
							return [3 /*break*/, 2];
						case 5:
							// 3. For all its in-flow, non-positioned, block-level descendants in tree order:
							return [4 /*yield*/, this.renderNodeContent(stack.element)];
						case 6:
							// 3. For all its in-flow, non-positioned, block-level descendants in tree order:
							_p.sent();
							_b = 0, _c = stack.nonInlineLevel;
							_p.label = 7;
						case 7:
							if (!(_b < _c.length)) return [3 /*break*/, 10];
							child = _c[_b];
							return [4 /*yield*/, this.renderNode(child)];
						case 8:
							_p.sent();
							_p.label = 9;
						case 9:
							_b++;
							return [3 /*break*/, 7];
						case 10:
							_d = 0, _e = stack.nonPositionedFloats;
							_p.label = 11;
						case 11:
							if (!(_d < _e.length)) return [3 /*break*/, 14];
							child = _e[_d];
							return [4 /*yield*/, this.renderStack(child)];
						case 12:
							_p.sent();
							_p.label = 13;
						case 13:
							_d++;
							return [3 /*break*/, 11];
						case 14:
							_f = 0, _g = stack.nonPositionedInlineLevel;
							_p.label = 15;
						case 15:
							if (!(_f < _g.length)) return [3 /*break*/, 18];
							child = _g[_f];
							return [4 /*yield*/, this.renderStack(child)];
						case 16:
							_p.sent();
							_p.label = 17;
						case 17:
							_f++;
							return [3 /*break*/, 15];
						case 18:
							_h = 0, _j = stack.inlineLevel;
							_p.label = 19;
						case 19:
							if (!(_h < _j.length)) return [3 /*break*/, 22];
							child = _j[_h];
							return [4 /*yield*/, this.renderNode(child)];
						case 20:
							_p.sent();
							_p.label = 21;
						case 21:
							_h++;
							return [3 /*break*/, 19];
						case 22:
							_k = 0, _l = stack.zeroOrAutoZIndexOrTransformedOrOpacity;
							_p.label = 23;
						case 23:
							if (!(_k < _l.length)) return [3 /*break*/, 26];
							child = _l[_k];
							return [4 /*yield*/, this.renderStack(child)];
						case 24:
							_p.sent();
							_p.label = 25;
						case 25:
							_k++;
							return [3 /*break*/, 23];
						case 26:
							_m = 0, _o = stack.positiveZIndex;
							_p.label = 27;
						case 27:
							if (!(_m < _o.length)) return [3 /*break*/, 30];
							child = _o[_m];
							return [4 /*yield*/, this.renderStack(child)];
						case 28:
							_p.sent();
							_p.label = 29;
						case 29:
							_m++;
							return [3 /*break*/, 27];
						case 30: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.mask = function (paths) {
			this.ctx.beginPath();
			this.ctx.moveTo(0, 0);
			this.ctx.lineTo(this.canvas.width, 0);
			this.ctx.lineTo(this.canvas.width, this.canvas.height);
			this.ctx.lineTo(0, this.canvas.height);
			this.ctx.lineTo(0, 0);
			this.formatPath(paths.slice(0).reverse());
			this.ctx.closePath();
		};
		CanvasRenderer.prototype.path = function (paths) {
			this.ctx.beginPath();
			this.formatPath(paths);
			this.ctx.closePath();
		};
		CanvasRenderer.prototype.formatPath = function (paths) {
			var _this = this;
			paths.forEach(function (point, index) {
				var start = isBezierCurve(point) ? point.start : point;
				if (index === 0) {
					_this.ctx.moveTo(start.x, start.y);
				}
				else {
					_this.ctx.lineTo(start.x, start.y);
				}
				if (isBezierCurve(point)) {
					_this.ctx.bezierCurveTo(point.startControl.x, point.startControl.y, point.endControl.x, point.endControl.y, point.end.x, point.end.y);
				}
			});
		};
		CanvasRenderer.prototype.renderRepeat = function (path, pattern, offsetX, offsetY) {
			this.path(path);
			this.ctx.fillStyle = pattern;
			this.ctx.translate(offsetX, offsetY);
			this.ctx.fill();
			this.ctx.translate(-offsetX, -offsetY);
		};
		CanvasRenderer.prototype.resizeImage = function (image, width, height) {
			if (image.width === width && image.height === height) {
				return image;
			}
			var canvas = this.canvas.ownerDocument.createElement('canvas');
			canvas.width = width;
			canvas.height = height;
			var ctx = canvas.getContext('2d');
			ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, width, height);
			return canvas;
		};
		CanvasRenderer.prototype.renderBackgroundImage = function (container) {
			return __awaiter(this, void 0, void 0, function () {
				var index, _loop_1, this_1, _i, _a, backgroundImage;
				return __generator(this, function (_b) {
					switch (_b.label) {
						case 0:
							index = container.styles.backgroundImage.length - 1;
							_loop_1 = function (backgroundImage) {
								var image, url, e_4, _a, path, x, y, width, height, pattern, _b, path, x, y, width, height, _c, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _d, path, left, top_1, width, height, position, x, y, _e, rx, ry, radialGradient_1, midX, midY, f, invF;
								return __generator(this, function (_f) {
									switch (_f.label) {
										case 0:
											if (!(backgroundImage.type === CSSImageType.URL)) return [3 /*break*/, 5];
											image = void 0;
											url = backgroundImage.url;
											_f.label = 1;
										case 1:
											_f.trys.push([1, 3, , 4]);
											return [4 /*yield*/, this_1.options.cache.match(url)];
										case 2:
											image = _f.sent();
											return [3 /*break*/, 4];
										case 3:
											e_4 = _f.sent();
											Logger.getInstance(this_1.options.id).error("Error loading background-image " + url);
											return [3 /*break*/, 4];
										case 4:
											if (image) {
												_a = calculateBackgroundRendering(container, index, [
													image.width,
													image.height,
													image.width / image.height
												]), path = _a[0], x = _a[1], y = _a[2], width = _a[3], height = _a[4];
												pattern = this_1.ctx.createPattern(this_1.resizeImage(image, width, height), 'repeat');
												this_1.renderRepeat(path, pattern, x, y);
											}
											return [3 /*break*/, 6];
										case 5:
											if (isLinearGradient(backgroundImage)) {
												_b = calculateBackgroundRendering(container, index, [null, null, null]), path = _b[0], x = _b[1], y = _b[2], width = _b[3], height = _b[4];
												_c = calculateGradientDirection(backgroundImage.angle, width, height), lineLength = _c[0], x0 = _c[1], x1 = _c[2], y0 = _c[3], y1 = _c[4];
												canvas = document.createElement('canvas');
												canvas.width = width;
												canvas.height = height;
												ctx = canvas.getContext('2d');
												gradient_1 = ctx.createLinearGradient(x0, y0, x1, y1);
												processColorStops(backgroundImage.stops, lineLength).forEach(function (colorStop) {
													return gradient_1.addColorStop(colorStop.stop, asString(colorStop.color));
												});
												ctx.fillStyle = gradient_1;
												ctx.fillRect(0, 0, width, height);
												if (width > 0 && height > 0) {
													pattern = this_1.ctx.createPattern(canvas, 'repeat');
													this_1.renderRepeat(path, pattern, x, y);
												}
											}
											else if (isRadialGradient(backgroundImage)) {
												_d = calculateBackgroundRendering(container, index, [
													null,
													null,
													null
												]), path = _d[0], left = _d[1], top_1 = _d[2], width = _d[3], height = _d[4];
												position = backgroundImage.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage.position;
												x = getAbsoluteValue(position[0], width);
												y = getAbsoluteValue(position[position.length - 1], height);
												_e = calculateRadius(backgroundImage, x, y, width, height), rx = _e[0], ry = _e[1];
												if (rx > 0 && rx > 0) {
													radialGradient_1 = this_1.ctx.createRadialGradient(left + x, top_1 + y, 0, left + x, top_1 + y, rx);
													processColorStops(backgroundImage.stops, rx * 2).forEach(function (colorStop) {
														return radialGradient_1.addColorStop(colorStop.stop, asString(colorStop.color));
													});
													this_1.path(path);
													this_1.ctx.fillStyle = radialGradient_1;
													if (rx !== ry) {
														midX = container.bounds.left + 0.5 * container.bounds.width;
														midY = container.bounds.top + 0.5 * container.bounds.height;
														f = ry / rx;
														invF = 1 / f;
														this_1.ctx.save();
														this_1.ctx.translate(midX, midY);
														this_1.ctx.transform(1, 0, 0, f, 0, 0);
														this_1.ctx.translate(-midX, -midY);
														this_1.ctx.fillRect(left, invF * (top_1 - midY) + midY, width, height * invF);
														this_1.ctx.restore();
													}
													else {
														this_1.ctx.fill();
													}
												}
											}
											_f.label = 6;
										case 6:
											index--;
											return [2 /*return*/];
									}
								});
							};
							this_1 = this;
							_i = 0, _a = container.styles.backgroundImage.slice(0).reverse();
							_b.label = 1;
						case 1:
							if (!(_i < _a.length)) return [3 /*break*/, 4];
							backgroundImage = _a[_i];
							return [5 /*yield**/, _loop_1(backgroundImage)];
						case 2:
							_b.sent();
							_b.label = 3;
						case 3:
							_i++;
							return [3 /*break*/, 1];
						case 4: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.renderBorder = function (color, side, curvePoints) {
			return __awaiter(this, void 0, void 0, function () {
				return __generator(this, function (_a) {
					this.path(parsePathForBorder(curvePoints, side));
					this.ctx.fillStyle = asString(color);
					this.ctx.fill();
					return [2 /*return*/];
				});
			});
		};
		CanvasRenderer.prototype.renderNodeBackgroundAndBorders = function (paint) {
			return __awaiter(this, void 0, void 0, function () {
				var styles, hasBackground, borders, backgroundPaintingArea, side, _i, borders_1, border;
				var _this = this;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							this.applyEffects(paint.effects, 2 /* BACKGROUND_BORDERS */);
							styles = paint.container.styles;
							hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length;
							borders = [
								{ style: styles.borderTopStyle, color: styles.borderTopColor },
								{ style: styles.borderRightStyle, color: styles.borderRightColor },
								{ style: styles.borderBottomStyle, color: styles.borderBottomColor },
								{ style: styles.borderLeftStyle, color: styles.borderLeftColor }
							];
							backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(getBackgroundValueForIndex(styles.backgroundClip, 0), paint.curves);
							if (!(hasBackground || styles.boxShadow.length)) return [3 /*break*/, 2];
							this.ctx.save();
							this.path(backgroundPaintingArea);
							this.ctx.clip();
							if (!isTransparent(styles.backgroundColor)) {
								this.ctx.fillStyle = asString(styles.backgroundColor);
								this.ctx.fill();
							}
							return [4 /*yield*/, this.renderBackgroundImage(paint.container)];
						case 1:
							_a.sent();
							this.ctx.restore();
							styles.boxShadow
								.slice(0)
								.reverse()
								.forEach(function (shadow) {
									_this.ctx.save();
									var borderBoxArea = calculateBorderBoxPath(paint.curves);
									var maskOffset = shadow.inset ? 0 : MASK_OFFSET;
									var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2));
									if (shadow.inset) {
										_this.path(borderBoxArea);
										_this.ctx.clip();
										_this.mask(shadowPaintingArea);
									}
									else {
										_this.mask(borderBoxArea);
										_this.ctx.clip();
										_this.path(shadowPaintingArea);
									}
									_this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset;
									_this.ctx.shadowOffsetY = shadow.offsetY.number;
									_this.ctx.shadowColor = asString(shadow.color);
									_this.ctx.shadowBlur = shadow.blur.number;
									_this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)';
									_this.ctx.fill();
									_this.ctx.restore();
								});
							_a.label = 2;
						case 2:
							side = 0;
							_i = 0, borders_1 = borders;
							_a.label = 3;
						case 3:
							if (!(_i < borders_1.length)) return [3 /*break*/, 7];
							border = borders_1[_i];
							if (!(border.style !== BORDER_STYLE.NONE && !isTransparent(border.color))) return [3 /*break*/, 5];
							return [4 /*yield*/, this.renderBorder(border.color, side, paint.curves)];
						case 4:
							_a.sent();
							_a.label = 5;
						case 5:
							side++;
							_a.label = 6;
						case 6:
							_i++;
							return [3 /*break*/, 3];
						case 7: return [2 /*return*/];
					}
				});
			});
		};
		CanvasRenderer.prototype.render = function (element) {
			return __awaiter(this, void 0, void 0, function () {
				var stack;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							if (this.options.backgroundColor) {
								this.ctx.fillStyle = asString(this.options.backgroundColor);
								this.ctx.fillRect(this.options.x - this.options.scrollX, this.options.y - this.options.scrollY, this.options.width, this.options.height);
							}
							stack = parseStackingContexts(element);
							return [4 /*yield*/, this.renderStack(stack)];
						case 1:
							_a.sent();
							this.applyEffects([], 2 /* BACKGROUND_BORDERS */);
							return [2 /*return*/, this.canvas];
					}
				});
			});
		};
		return CanvasRenderer;
	}());
	var isTextInputElement = function (container) {
		if (container instanceof TextareaElementContainer) {
			return true;
		}
		else if (container instanceof SelectElementContainer) {
			return true;
		}
		else if (container instanceof InputElementContainer && container.type !== RADIO && container.type !== CHECKBOX) {
			return true;
		}
		return false;
	};
	var calculateBackgroundCurvedPaintingArea = function (clip, curves) {
		switch (clip) {
			case BACKGROUND_CLIP.BORDER_BOX:
				return calculateBorderBoxPath(curves);
			case BACKGROUND_CLIP.CONTENT_BOX:
				return calculateContentBoxPath(curves);
			case BACKGROUND_CLIP.PADDING_BOX:
			default:
				return calculatePaddingBoxPath(curves);
		}
	};
	var canvasTextAlign = function (textAlign) {
		switch (textAlign) {
			case TEXT_ALIGN.CENTER:
				return 'center';
			case TEXT_ALIGN.RIGHT:
				return 'right';
			case TEXT_ALIGN.LEFT:
			default:
				return 'left';
		}
	};

	var ForeignObjectRenderer = /** @class */ (function () {
		function ForeignObjectRenderer(options) {
			this.canvas = options.canvas ? options.canvas : document.createElement('canvas');
			this.ctx = this.canvas.getContext('2d');
			this.options = options;
			this.canvas.width = Math.floor(options.width * options.scale);
			this.canvas.height = Math.floor(options.height * options.scale);
			this.canvas.style.width = options.width + "px";
			this.canvas.style.height = options.height + "px";
			this.ctx.scale(this.options.scale, this.options.scale);
			this.ctx.translate(-options.x + options.scrollX, -options.y + options.scrollY);
			Logger.getInstance(options.id).debug("EXPERIMENTAL ForeignObject renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale);
		}
		ForeignObjectRenderer.prototype.render = function (element) {
			return __awaiter(this, void 0, void 0, function () {
				var svg, img;
				return __generator(this, function (_a) {
					switch (_a.label) {
						case 0:
							svg = createForeignObjectSVG(Math.max(this.options.windowWidth, this.options.width) * this.options.scale, Math.max(this.options.windowHeight, this.options.height) * this.options.scale, this.options.scrollX * this.options.scale, this.options.scrollY * this.options.scale, element);
							return [4 /*yield*/, loadSerializedSVG$1(svg)];
						case 1:
							img = _a.sent();
							if (this.options.backgroundColor) {
								this.ctx.fillStyle = asString(this.options.backgroundColor);
								this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale);
							}
							this.ctx.drawImage(img, -this.options.x * this.options.scale, -this.options.y * this.options.scale);
							return [2 /*return*/, this.canvas];
					}
				});
			});
		};
		return ForeignObjectRenderer;
	}());
	var loadSerializedSVG$1 = function (svg) {
		return new Promise(function (resolve, reject) {
			var img = new Image();
			img.onload = function () {
				resolve(img);
			};
			img.onerror = reject;
			img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg));
		});
	};

	var _this = undefined;
	var parseColor$1 = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };
	var html2canvas = function (element, options) {
		if (options === void 0) { options = {}; }
		return renderElement(element, options);
	};
	if (typeof window !== "undefined") {
		CacheStorage.setContext(window);
	}
	var renderElement = function (element, opts) { return __awaiter(_this, void 0, void 0, function () {
		var ownerDocument, defaultView, instanceName, _a, width, height, left, top, defaultResourceOptions, resourceOptions, defaultOptions, options, windowBounds, documentCloner, clonedElement, container, documentBackgroundColor, bodyBackgroundColor, bgColor, defaultBackgroundColor, backgroundColor, renderOptions, canvas, renderer, root, renderer;
		return __generator(this, function (_b) {
			switch (_b.label) {
				case 0:
					ownerDocument = element.ownerDocument;
					if (!ownerDocument) {
						throw new Error("Element is not attached to a Document");
					}
					defaultView = ownerDocument.defaultView;
					if (!defaultView) {
						throw new Error("Document is not attached to a Window");
					}
					instanceName = (Math.round(Math.random() * 1000) + Date.now()).toString(16);
					_a = isBodyElement(element) || isHTMLElement(element) ? parseDocumentSize(ownerDocument) : parseBounds(element), width = _a.width, height = _a.height, left = _a.left, top = _a.top;
					defaultResourceOptions = {
						allowTaint: false,
						imageTimeout: 15000,
						proxy: undefined,
						useCORS: false
					};
					resourceOptions = __assign({}, defaultResourceOptions, opts);
					defaultOptions = {
						backgroundColor: '#ffffff',
						cache: opts.cache ? opts.cache : CacheStorage.create(instanceName, resourceOptions),
						logging: true,
						removeContainer: true,
						foreignObjectRendering: false,
						scale: defaultView.devicePixelRatio || 1,
						windowWidth: defaultView.innerWidth,
						windowHeight: defaultView.innerHeight,
						scrollX: defaultView.pageXOffset,
						scrollY: defaultView.pageYOffset,
						x: left,
						y: top,
						width: Math.ceil(width),
						height: Math.ceil(height),
						id: instanceName
					};
					options = __assign({}, defaultOptions, resourceOptions, opts);
					windowBounds = new Bounds(options.scrollX, options.scrollY, options.windowWidth, options.windowHeight);
					Logger.create({ id: instanceName, enabled: options.logging });
					Logger.getInstance(instanceName).debug("Starting document clone");
					documentCloner = new DocumentCloner(element, {
						id: instanceName,
						onclone: options.onclone,
						ignoreElements: options.ignoreElements,
						inlineImages: options.foreignObjectRendering,
						copyStyles: options.foreignObjectRendering
					});
					clonedElement = documentCloner.clonedReferenceElement;
					if (!clonedElement) {
						return [2 /*return*/, Promise.reject("Unable to find element in cloned iframe")];
					}
					return [4 /*yield*/, documentCloner.toIFrame(ownerDocument, windowBounds)];
				case 1:
					container = _b.sent();
					documentBackgroundColor = ownerDocument.documentElement
						? parseColor$1(getComputedStyle(ownerDocument.documentElement).backgroundColor)
						: COLORS.TRANSPARENT;
					bodyBackgroundColor = ownerDocument.body
						? parseColor$1(getComputedStyle(ownerDocument.body).backgroundColor)
						: COLORS.TRANSPARENT;
					bgColor = opts.backgroundColor;
					defaultBackgroundColor = typeof bgColor === 'string' ? parseColor$1(bgColor) : bgColor === null ? COLORS.TRANSPARENT : 0xffffffff;
					backgroundColor = element === ownerDocument.documentElement
						? isTransparent(documentBackgroundColor)
							? isTransparent(bodyBackgroundColor)
								? defaultBackgroundColor
								: bodyBackgroundColor
							: documentBackgroundColor
						: defaultBackgroundColor;
					renderOptions = {
						id: instanceName,
						cache: options.cache,
						canvas: options.canvas,
						backgroundColor: backgroundColor,
						scale: options.scale,
						x: options.x,
						y: options.y,
						scrollX: options.scrollX,
						scrollY: options.scrollY,
						width: options.width,
						height: options.height,
						windowWidth: options.windowWidth,
						windowHeight: options.windowHeight
					};
					if (!options.foreignObjectRendering) return [3 /*break*/, 3];
					Logger.getInstance(instanceName).debug("Document cloned, using foreign object rendering");
					renderer = new ForeignObjectRenderer(renderOptions);
					return [4 /*yield*/, renderer.render(clonedElement)];
				case 2:
					canvas = _b.sent();
					return [3 /*break*/, 5];
				case 3:
					Logger.getInstance(instanceName).debug("Document cloned, using computed rendering");
					CacheStorage.attachInstance(options.cache);
					Logger.getInstance(instanceName).debug("Starting DOM parsing");
					root = parseTree(clonedElement);
					CacheStorage.detachInstance();
					if (backgroundColor === root.styles.backgroundColor) {
						root.styles.backgroundColor = COLORS.TRANSPARENT;
					}
					Logger.getInstance(instanceName).debug("Starting renderer");
					renderer = new CanvasRenderer(renderOptions);
					return [4 /*yield*/, renderer.render(root)];
				case 4:
					canvas = _b.sent();
					_b.label = 5;
				case 5:
					if (options.removeContainer === true) {
						if (!DocumentCloner.destroy(container)) {
							Logger.getInstance(instanceName).error("Cannot detach cloned iframe as it is not in the DOM anymore");
						}
					}
					Logger.getInstance(instanceName).debug("Finished rendering");
					Logger.destroy(instanceName);
					CacheStorage.destroy(instanceName);
					return [2 /*return*/, canvas];
			}
		});
	}); };

	return html2canvas;

}));
//# sourceMappingURL=html2canvas.js.map
PK!k���5assets/js/nav-menu.fd64b77e7258ee4c6205.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[42],{5389:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=elementorModules.frontend.handlers.Base.extend({stretchElement:null,getDefaultSettings:()=>({selectors:{menu:".elementor-nav-menu",anchorLink:".elementor-nav-menu--main .elementor-item-anchor",dropdownMenu:".elementor-nav-menu__container.elementor-nav-menu--dropdown",menuToggle:".elementor-menu-toggle"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$menu=this.$element.find(e.menu),t.$anchorLink=this.$element.find(e.anchorLink),t.$dropdownMenu=this.$element.find(e.dropdownMenu),t.$dropdownMenuFinalItems=t.$dropdownMenu.find(".menu-item:not(.menu-item-has-children) > a"),t.$menuToggle=this.$element.find(e.menuToggle),t.$links=t.$dropdownMenu.find("a.elementor-item"),t},bindEvents(){this.elements.$menu.length&&(this.elements.$menuToggle.on("click",this.toggleMenu.bind(this)),this.getElementSettings("full_width")&&this.elements.$dropdownMenuFinalItems.on("click",this.toggleMenu.bind(this,!1)),elementorFrontend.addListenerOnce(this.$element.data("model-cid"),"resize",this.stretchMenu))},initStretchElement(){this.stretchElement=new elementorModules.frontend.tools.StretchElement({element:this.elements.$dropdownMenu})},toggleNavLinksTabIndex(e=!0){this.elements.$links.attr("tabindex",e?0:-1)},toggleMenu(e){var t=this.elements.$menuToggle.hasClass("elementor-active");"boolean"!=typeof e&&(e=!t),this.elements.$menuToggle.attr("aria-expanded",e),this.elements.$dropdownMenu.attr("aria-hidden",!e),this.elements.$menuToggle.toggleClass("elementor-active",e),this.toggleNavLinksTabIndex(e),e&&this.getElementSettings("full_width")&&this.stretchElement.stretch()},followMenuAnchors(){var e=this;e.elements.$anchorLink.each((function(){location.pathname===this.pathname&&""!==this.hash&&e.followMenuAnchor(jQuery(this))}))},followMenuAnchor(e){const t=e[0].hash;let n,s=-300;try{n=jQuery(decodeURIComponent(t))}catch(e){return}if(n.length){if(!n.hasClass("elementor-menu-anchor")){var o=jQuery(window).height()/2;s=-n.outerHeight()+o}elementorFrontend.waypoint(n,(function(t){"down"===t?e.addClass("elementor-item-active"):e.removeClass("elementor-item-active")}),{offset:"50%",triggerOnce:!1}),elementorFrontend.waypoint(n,(function(t){"down"===t?e.removeClass("elementor-item-active"):e.addClass("elementor-item-active")}),{offset:s,triggerOnce:!1})}},stretchMenu(){this.getElementSettings("full_width")?(this.stretchElement.stretch(),this.elements.$dropdownMenu.css("top",this.elements.$menuToggle.outerHeight())):this.stretchElement.reset()},onInit(){if(elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),!this.elements.$menu.length)return;const e=this.getElementSettings().submenu_icon.value;let t="";e&&(t=e.indexOf("<")>-1?e:`<i class="${e}"></i>`),this.elements.$menu.smartmenus({subIndicators:""!==t,subIndicatorsText:t,subIndicatorsPos:"append",subMenusMaxWidth:"1000px"}),this.initStretchElement(),this.stretchMenu(),elementorFrontend.isEditMode()||this.followMenuAnchors()},onElementChange(e){"full_width"===e&&this.stretchMenu()}});t.default=n}}]);PK!�m�����(assets/js/preloaded-elements-handlers.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["preloaded-elements-handlers"],{

/***/ "../assets/dev/js/frontend/preloaded-elements-handlers.js":
/*!****************************************************************!*\
  !*** ../assets/dev/js/frontend/preloaded-elements-handlers.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

var _frontendLegacy = _interopRequireDefault(__webpack_require__(/*! modules/animated-headline/assets/js/frontend/frontend-legacy */ "../modules/animated-headline/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy2 = _interopRequireDefault(__webpack_require__(/*! modules/carousel/assets/js/frontend/frontend-legacy */ "../modules/carousel/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy3 = _interopRequireDefault(__webpack_require__(/*! modules/countdown/assets/js/frontend/frontend-legacy */ "../modules/countdown/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy4 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/frontend/frontend-legacy */ "../modules/forms/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy5 = _interopRequireDefault(__webpack_require__(/*! modules/gallery/assets/js/frontend/frontend-legacy */ "../modules/gallery/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy6 = _interopRequireDefault(__webpack_require__(/*! modules/hotspot/assets/js/frontend/frontend-legacy */ "../modules/hotspot/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy7 = _interopRequireDefault(__webpack_require__(/*! modules/lottie/assets/js/frontend/frontend-legacy */ "../modules/lottie/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy8 = _interopRequireDefault(__webpack_require__(/*! modules/nav-menu/assets/js/frontend/frontend-legacy */ "../modules/nav-menu/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy9 = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/frontend/frontend-legacy */ "../modules/popup/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy10 = _interopRequireDefault(__webpack_require__(/*! modules/posts/assets/js/frontend/frontend-legacy */ "../modules/posts/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy11 = _interopRequireDefault(__webpack_require__(/*! modules/share-buttons/assets/js/frontend/frontend-legacy */ "../modules/share-buttons/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy12 = _interopRequireDefault(__webpack_require__(/*! modules/slides/assets/js/frontend/frontend-legacy */ "../modules/slides/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy13 = _interopRequireDefault(__webpack_require__(/*! modules/social/assets/js/frontend/frontend-legacy */ "../modules/social/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy14 = _interopRequireDefault(__webpack_require__(/*! modules/table-of-contents/assets/js/frontend/frontend-legacy */ "../modules/table-of-contents/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy15 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/frontend/frontend-legacy */ "../modules/theme-builder/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy16 = _interopRequireDefault(__webpack_require__(/*! modules/theme-elements/assets/js/frontend/frontend-legacy */ "../modules/theme-elements/assets/js/frontend/frontend-legacy.js"));

var _frontendLegacy17 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/frontend/frontend-legacy */ "../modules/woocommerce/assets/js/frontend/frontend-legacy.js"));

const extendDefaultHandlers = defaultHandlers => {
  const handlers = {
    animatedText: _frontendLegacy.default,
    carousel: _frontendLegacy2.default,
    countdown: _frontendLegacy3.default,
    form: _frontendLegacy4.default,
    gallery: _frontendLegacy5.default,
    hotspot: _frontendLegacy6.default,
    lottie: _frontendLegacy7.default,
    nav_menu: _frontendLegacy8.default,
    popup: _frontendLegacy9.default,
    posts: _frontendLegacy10.default,
    share_buttons: _frontendLegacy11.default,
    slides: _frontendLegacy12.default,
    social: _frontendLegacy13.default,
    themeBuilder: _frontendLegacy15.default,
    themeElements: _frontendLegacy16.default,
    woocommerce: _frontendLegacy17.default,
    tableOfContents: _frontendLegacy14.default
  };
  return { ...defaultHandlers,
    ...handlers
  };
};

elementorProFrontend.on('elementor-pro/modules/init:before', () => {
  elementorFrontend.hooks.addFilter('elementor-pro/frontend/handlers', extendDefaultHandlers);
});

/***/ }),

/***/ "../assets/dev/js/frontend/utils/icons/e-icons.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/frontend/utils/icons/e-icons.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.close = void 0;

var _manager = _interopRequireDefault(__webpack_require__(/*! ./manager */ "../assets/dev/js/frontend/utils/icons/manager.js"));

// This file is automatically generated, please don't change anything in this file.
const iconsManager = new _manager.default('eicon');
const close = {
  get element() {
    const svgData = {
      path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z',
      width: 1000,
      height: 1000
    };
    return iconsManager.createSvgElement('close', svgData);
  }

};
exports.close = close;

/***/ }),

/***/ "../assets/dev/js/frontend/utils/icons/manager.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/frontend/utils/icons/manager.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));

class IconsManager {
  constructor(elementsPrefix) {
    this.prefix = `${elementsPrefix}-`;

    if (!IconsManager.symbolsContainer) {
      const symbolsContainerId = 'e-font-icon-svg-symbols';
      IconsManager.symbolsContainer = document.getElementById(symbolsContainerId);

      if (!IconsManager.symbolsContainer) {
        IconsManager.symbolsContainer = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
        IconsManager.symbolsContainer.setAttributeNS(null, 'style', 'display: none;');
        IconsManager.symbolsContainer.setAttributeNS(null, 'class', symbolsContainerId);
        document.body.appendChild(IconsManager.symbolsContainer);
      }
    }
  }

  createSvgElement(name, {
    path,
    width,
    height
  }) {
    const elementName = this.prefix + name,
          elementSelector = '#' + this.prefix + name; // Create symbol if not exist yet.

    if (!IconsManager.iconsUsageList.includes(elementName)) {
      if (!IconsManager.symbolsContainer.querySelector(elementSelector)) {
        const symbol = document.createElementNS('http://www.w3.org/2000/svg', 'symbol');
        symbol.id = elementName;
        symbol.innerHTML = '<path d="' + path + '"></path>';
        symbol.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
        IconsManager.symbolsContainer.appendChild(symbol);
      }

      IconsManager.iconsUsageList.push(elementName);
    }

    const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
    svg.innerHTML = '<use xlink:href="' + elementSelector + '" />';
    svg.setAttributeNS(null, 'class', 'e-font-icon-svg e-' + elementName);
    return svg;
  }

}

exports.default = IconsManager;
(0, _defineProperty2.default)(IconsManager, "symbolsContainer", void 0);
(0, _defineProperty2.default)(IconsManager, "iconsUsageList", []);

/***/ }),

/***/ "../assets/dev/js/frontend/utils/scroll.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/frontend/utils/scroll.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

if (window.elementorCommon) {
  window.elementorCommon.helpers.softDeprecated('Scroll util from "/dev/js/frontend/utils/scroll"', '3.1.0', 'elementorModules.utils.Scroll');
}

var _default = elementorModules.utils.Scroll;
exports.default = _default;

/***/ }),

/***/ "../modules/animated-headline/assets/js/frontend/frontend-legacy.js":
/*!**************************************************************************!*\
  !*** ../modules/animated-headline/assets/js/frontend/frontend-legacy.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _animatedHeadlines = _interopRequireDefault(__webpack_require__(/*! ./handlers/animated-headlines */ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('animated-headline', _animatedHeadlines.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js":
/*!**************************************************************************************!*\
  !*** ../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _scroll = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/scroll */ "../assets/dev/js/frontend/utils/scroll.js"));

var _default = elementorModules.frontend.handlers.Base.extend({
  svgPaths: {
    circle: ['M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7'],
    underline_zigzag: ['M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9'],
    x: ['M497.4,23.9C301.6,40,155.9,80.6,4,144.4', 'M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7'],
    strikethrough: ['M3,75h493.5'],
    curly: ['M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6'],
    diagonal: ['M13.5,15.5c131,13.7,289.3,55.5,475,125.5'],
    double: ['M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2', 'M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8'],
    double_underline: ['M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6', 'M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4'],
    underline: ['M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7']
  },

  getDefaultSettings() {
    const iterationDelay = this.getElementSettings('rotate_iteration_delay'),
          settings = {
      animationDelay: iterationDelay || 2500,
      //letters effect
      lettersDelay: iterationDelay * 0.02 || 50,
      //typing effect
      typeLettersDelay: iterationDelay * 0.06 || 150,
      selectionDuration: iterationDelay * 0.2 || 500,
      //clip effect
      revealDuration: iterationDelay * 0.24 || 600,
      revealAnimationDelay: iterationDelay * 0.6 || 1500,
      // Highlighted headline
      highlightAnimationDuration: this.getElementSettings('highlight_animation_duration') || 1200,
      highlightAnimationDelay: this.getElementSettings('highlight_iteration_delay') || 8000
    };
    settings.typeAnimationDelay = settings.selectionDuration + 800;
    settings.selectors = {
      headline: '.elementor-headline',
      dynamicWrapper: '.elementor-headline-dynamic-wrapper',
      dynamicText: '.elementor-headline-dynamic-text'
    };
    settings.classes = {
      dynamicText: 'elementor-headline-dynamic-text',
      dynamicLetter: 'elementor-headline-dynamic-letter',
      textActive: 'elementor-headline-text-active',
      textInactive: 'elementor-headline-text-inactive',
      letters: 'elementor-headline-letters',
      animationIn: 'elementor-headline-animation-in',
      typeSelected: 'elementor-headline-typing-selected',
      activateHighlight: 'e-animated',
      hideHighlight: 'e-hide-highlight'
    };
    return settings;
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $headline: this.$element.find(selectors.headline),
      $dynamicWrapper: this.$element.find(selectors.dynamicWrapper),
      $dynamicText: this.$element.find(selectors.dynamicText)
    };
  },

  getNextWord($word) {
    return $word.is(':last-child') ? $word.parent().children().eq(0) : $word.next();
  },

  switchWord($oldWord, $newWord) {
    $oldWord.removeClass('elementor-headline-text-active').addClass('elementor-headline-text-inactive');
    $newWord.removeClass('elementor-headline-text-inactive').addClass('elementor-headline-text-active');
    this.setDynamicWrapperWidth($newWord);
  },

  singleLetters() {
    var classes = this.getSettings('classes');
    this.elements.$dynamicText.each(function () {
      var $word = jQuery(this),
          letters = $word.text().split(''),
          isActive = $word.hasClass(classes.textActive);
      $word.empty();
      letters.forEach(function (letter) {
        var $letter = jQuery('<span>', {
          class: classes.dynamicLetter
        }).text(letter);

        if (isActive) {
          $letter.addClass(classes.animationIn);
        }

        $word.append($letter);
      });
      $word.css('opacity', 1);
    });
  },

  showLetter($letter, $word, bool, duration) {
    var self = this,
        classes = this.getSettings('classes');
    $letter.addClass(classes.animationIn);

    if (!$letter.is(':last-child')) {
      setTimeout(function () {
        self.showLetter($letter.next(), $word, bool, duration);
      }, duration);
    } else if (!bool) {
      setTimeout(function () {
        self.hideWord($word);
      }, self.getSettings('animationDelay'));
    }
  },

  hideLetter($letter, $word, bool, duration) {
    var self = this,
        settings = this.getSettings();
    $letter.removeClass(settings.classes.animationIn);

    if (!$letter.is(':last-child')) {
      setTimeout(function () {
        self.hideLetter($letter.next(), $word, bool, duration);
      }, duration);
    } else if (bool) {
      setTimeout(function () {
        self.hideWord(self.getNextWord($word));
      }, self.getSettings('animationDelay'));
    }
  },

  showWord($word, $duration) {
    var self = this,
        settings = self.getSettings(),
        animationType = self.getElementSettings('animation_type');

    if ('typing' === animationType) {
      self.showLetter($word.find('.' + settings.classes.dynamicLetter).eq(0), $word, false, $duration);
      $word.addClass(settings.classes.textActive).removeClass(settings.classes.textInactive);
    } else if ('clip' === animationType) {
      self.elements.$dynamicWrapper.animate({
        width: $word.width() + 10
      }, settings.revealDuration, function () {
        setTimeout(function () {
          self.hideWord($word);
        }, settings.revealAnimationDelay);
      });
    }
  },

  hideWord($word) {
    var self = this,
        settings = self.getSettings(),
        classes = settings.classes,
        letterSelector = '.' + classes.dynamicLetter,
        animationType = self.getElementSettings('animation_type'),
        nextWord = self.getNextWord($word);

    if (!this.isLoopMode && $word.is(':last-child')) {
      return;
    }

    if ('typing' === animationType) {
      self.elements.$dynamicWrapper.addClass(classes.typeSelected);
      setTimeout(function () {
        self.elements.$dynamicWrapper.removeClass(classes.typeSelected);
        $word.addClass(settings.classes.textInactive).removeClass(classes.textActive).children(letterSelector).removeClass(classes.animationIn);
      }, settings.selectionDuration);
      setTimeout(function () {
        self.showWord(nextWord, settings.typeLettersDelay);
      }, settings.typeAnimationDelay);
    } else if (self.elements.$headline.hasClass(classes.letters)) {
      var bool = $word.children(letterSelector).length >= nextWord.children(letterSelector).length;
      self.hideLetter($word.find(letterSelector).eq(0), $word, bool, settings.lettersDelay);
      self.showLetter(nextWord.find(letterSelector).eq(0), nextWord, bool, settings.lettersDelay);
      self.setDynamicWrapperWidth(nextWord);
    } else if ('clip' === animationType) {
      self.elements.$dynamicWrapper.animate({
        width: '2px'
      }, settings.revealDuration, function () {
        self.switchWord($word, nextWord);
        self.showWord(nextWord);
      });
    } else {
      self.switchWord($word, nextWord);
      setTimeout(function () {
        self.hideWord(nextWord);
      }, settings.animationDelay);
    }
  },

  setDynamicWrapperWidth($word) {
    const animationType = this.getElementSettings('animation_type');

    if ('clip' !== animationType && 'typing' !== animationType) {
      this.elements.$dynamicWrapper.css('width', $word.width());
    }
  },

  animateHeadline() {
    var self = this,
        animationType = self.getElementSettings('animation_type'),
        $dynamicWrapper = self.elements.$dynamicWrapper;

    if ('clip' === animationType) {
      $dynamicWrapper.width($dynamicWrapper.width() + 10);
    } else if ('typing' !== animationType) {
      self.setDynamicWrapperWidth(self.elements.$dynamicText);
    } //trigger animation


    setTimeout(function () {
      self.hideWord(self.elements.$dynamicText.eq(0));
    }, self.getSettings('animationDelay'));
  },

  getSvgPaths(pathName) {
    var pathsInfo = this.svgPaths[pathName],
        $paths = jQuery();
    pathsInfo.forEach(function (pathInfo) {
      $paths = $paths.add(jQuery('<path>', {
        d: pathInfo
      }));
    });
    return $paths;
  },

  addHighlight() {
    const elementSettings = this.getElementSettings(),
          $svg = jQuery('<svg>', {
      xmlns: 'http://www.w3.org/2000/svg',
      viewBox: '0 0 500 150',
      preserveAspectRatio: 'none'
    }).html(this.getSvgPaths(elementSettings.marker));
    this.elements.$dynamicWrapper.append($svg[0].outerHTML);
  },

  rotateHeadline() {
    var settings = this.getSettings(); //insert <span> for each letter of a changing word

    if (this.elements.$headline.hasClass(settings.classes.letters)) {
      this.singleLetters();
    } //initialise headline animation


    this.animateHeadline();
  },

  initHeadline() {
    const headlineStyle = this.getElementSettings('headline_style');

    if ('rotate' === headlineStyle) {
      this.rotateHeadline();
    } else if ('highlight' === headlineStyle) {
      this.addHighlight();
      this.activateHighlightAnimation();
    }

    this.deactivateScrollListener();
  },

  activateHighlightAnimation() {
    const settings = this.getSettings(),
          classes = settings.classes,
          $headline = this.elements.$headline;
    $headline.removeClass(classes.hideHighlight).addClass(classes.activateHighlight);

    if (!this.isLoopMode) {
      return;
    }

    setTimeout(() => {
      $headline.removeClass(classes.activateHighligh).addClass(classes.hideHighlight);
    }, settings.highlightAnimationDuration + settings.highlightAnimationDelay * .8);
    setTimeout(() => {
      this.activateHighlightAnimation(false);
    }, settings.highlightAnimationDuration + settings.highlightAnimationDelay);
  },

  activateScrollListener() {
    const scrollBuffer = -100;
    this.intersectionObservers.startAnimation.observer = _scroll.default.scrollObserver({
      offset: `0px 0px ${scrollBuffer}px`,
      callback: event => {
        if (event.isInViewport) {
          this.initHeadline();
        }
      }
    });
    this.intersectionObservers.startAnimation.element = this.elements.$headline[0];
    this.intersectionObservers.startAnimation.observer.observe(this.intersectionObservers.startAnimation.element);
  },

  deactivateScrollListener() {
    this.intersectionObservers.startAnimation.observer.unobserve(this.intersectionObservers.startAnimation.element);
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.intersectionObservers = {
      startAnimation: {
        observer: null,
        element: null
      }
    };
    this.isLoopMode = 'yes' === this.getElementSettings('loop');
    this.activateScrollListener();
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/frontend-legacy.js":
/*!*****************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/frontend-legacy.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _mediaCarousel = _interopRequireDefault(__webpack_require__(/*! ./handlers/media-carousel */ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js"));

var _testimonialCarousel = _interopRequireDefault(__webpack_require__(/*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('media-carousel', _mediaCarousel.default);
    elementorFrontend.elementsHandler.attachHandler('testimonial-carousel', _testimonialCarousel.default);
    elementorFrontend.elementsHandler.attachHandler('reviews', _testimonialCarousel.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/handlers/base.js":
/*!***************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/base.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class CarouselBase extends elementorModules.frontend.handlers.SwiperBase {
  getDefaultSettings() {
    return {
      selectors: {
        swiperContainer: '.elementor-main-swiper',
        swiperSlide: '.swiper-slide'
      },
      slidesPerView: {
        widescreen: 3,
        desktop: 3,
        laptop: 3,
        tablet_extra: 3,
        tablet: 2,
        mobile_extra: 2,
        mobile: 1
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {
      $swiperContainer: this.$element.find(selectors.swiperContainer)
    };
    elements.$slides = elements.$swiperContainer.find(selectors.swiperSlide);
    return elements;
  }

  getEffect() {
    return this.getElementSettings('effect');
  }

  getDeviceSlidesPerView(device) {
    const slidesPerViewKey = 'slides_per_view' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesPerViewKey) || this.getSettings('slidesPerView')[device]);
  }

  getSlidesPerView(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesPerView(device);
    }

    return 1;
  }

  getDeviceSlidesToScroll(device) {
    const slidesToScrollKey = 'slides_to_scroll' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesToScrollKey) || 1);
  }

  getSlidesToScroll(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesToScroll(device);
    }

    return 1;
  }

  getSpaceBetween(device) {
    let propertyName = 'space_between';

    if (device && 'desktop' !== device) {
      propertyName += '_' + device;
    }

    return this.getElementSettings(propertyName).size || 0;
  }

  getSwiperOptions() {
    const elementSettings = this.getElementSettings();
    const swiperOptions = {
      grabCursor: true,
      initialSlide: this.getInitialSlide(),
      slidesPerView: this.getSlidesPerView('desktop'),
      slidesPerGroup: this.getSlidesToScroll('desktop'),
      spaceBetween: this.getSpaceBetween(),
      loop: 'yes' === elementSettings.loop,
      speed: elementSettings.speed,
      effect: this.getEffect(),
      preventClicksPropagation: false,
      slideToClickedSlide: true,
      handleElementorBreakpoints: true
    };

    if (elementSettings.show_arrows) {
      swiperOptions.navigation = {
        prevEl: '.elementor-swiper-button-prev',
        nextEl: '.elementor-swiper-button-next'
      };
    }

    if (elementSettings.pagination) {
      swiperOptions.pagination = {
        el: '.swiper-pagination',
        type: elementSettings.pagination,
        clickable: true
      };
    }

    if ('cube' !== this.getEffect()) {
      const breakpointsSettings = {},
            breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      Object.keys(breakpoints).forEach(breakpointName => {
        breakpointsSettings[breakpoints[breakpointName].value] = {
          slidesPerView: this.getSlidesPerView(breakpointName),
          slidesPerGroup: this.getSlidesToScroll(breakpointName),
          spaceBetween: this.getSpaceBetween(breakpointName)
        };
      });
      swiperOptions.breakpoints = breakpointsSettings;
    }

    if (!this.isEdit && elementSettings.autoplay) {
      swiperOptions.autoplay = {
        delay: elementSettings.autoplay_speed,
        disableOnInteraction: !!elementSettings.pause_on_interaction
      };
    }

    return swiperOptions;
  }

  getDeviceBreakpointValue(device) {
    if (!this.breakpointsDictionary) {
      const breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      this.breakpointsDictionary = {};
      Object.keys(breakpoints).forEach(breakpointName => {
        this.breakpointsDictionary[breakpointName] = breakpoints[breakpointName].value;
      });
    }

    return this.breakpointsDictionary[device];
  }

  updateSpaceBetween(propertyName) {
    const deviceMatch = propertyName.match('space_between_(.*)'),
          device = deviceMatch ? deviceMatch[1] : 'desktop',
          newSpaceBetween = this.getSpaceBetween(device);

    if ('desktop' !== device) {
      this.swiper.params.breakpoints[this.getDeviceBreakpointValue(device)].spaceBetween = newSpaceBetween;
    } else {
      this.swiper.params.spaceBetween = newSpaceBetween;
    }

    this.swiper.params.spaceBetween = newSpaceBetween;
    this.swiper.update();
  }

  async onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    const elementSettings = this.getElementSettings();

    if (1 >= this.getSlidesCount()) {
      return;
    }

    const Swiper = elementorFrontend.utils.swiper;
    this.swiper = await new Swiper(this.elements.$swiperContainer, this.getSwiperOptions());

    if ('yes' === elementSettings.pause_on_hover) {
      this.togglePauseOnHover(true);
    } // Expose the swiper instance in the frontend


    this.elements.$swiperContainer.data('swiper', this.swiper);
  }

  getChangeableProperties() {
    return {
      autoplay: 'autoplay',
      pause_on_hover: 'pauseOnHover',
      pause_on_interaction: 'disableOnInteraction',
      autoplay_speed: 'delay',
      speed: 'speed',
      width: 'width'
    };
  }

  updateSwiperOption(propertyName) {
    if (0 === propertyName.indexOf('width')) {
      this.swiper.update();
      return;
    }

    const elementSettings = this.getElementSettings(),
          newSettingValue = elementSettings[propertyName],
          changeableProperties = this.getChangeableProperties();
    let propertyToUpdate = changeableProperties[propertyName],
        valueToUpdate = newSettingValue; // Handle special cases where the value to update is not the value that the Swiper library accepts

    switch (propertyName) {
      case 'autoplay':
        if (newSettingValue) {
          valueToUpdate = {
            delay: elementSettings.autoplay_speed,
            disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
          };
        } else {
          valueToUpdate = false;
        }

        break;

      case 'autoplay_speed':
        propertyToUpdate = 'autoplay';
        valueToUpdate = {
          delay: newSettingValue,
          disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
        };
        break;

      case 'pause_on_hover':
        this.togglePauseOnHover('yes' === newSettingValue);
        break;

      case 'pause_on_interaction':
        valueToUpdate = 'yes' === newSettingValue;
        break;
    } // 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library


    if ('pause_on_hover' !== propertyName) {
      this.swiper.params[propertyToUpdate] = valueToUpdate;
    }

    this.swiper.update();
  }

  onElementChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if (0 === propertyName.indexOf('width')) {
      this.swiper.update(); // If there is another thumbs slider, like in the Media Carousel widget.

      if (this.thumbsSwiper) {
        this.thumbsSwiper.update();
      }

      return;
    } // This is for handling the responsive control 'space_between'.
    // Responsive controls require a separate way of handling, and some currently don't work
    // (Swiper bug, currently exists in v5.3.6) TODO: update Swiper when bug is fixed and handle responsive controls


    if (0 === propertyName.indexOf('space_between')) {
      this.updateSpaceBetween(propertyName);
      return;
    }

    const changeableProperties = this.getChangeableProperties();

    if (changeableProperties.hasOwnProperty(propertyName)) {
      this.updateSwiperOption(propertyName);
    }
  }

  onEditSettingsChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if ('activeItemIndex' === propertyName) {
      this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
    }
  }

}

exports.default = CarouselBase;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js":
/*!*************************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/media-carousel.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/carousel/assets/js/frontend/handlers/base.js"));

class MediaCarousel extends _base.default {
  isSlideshow() {
    return 'slideshow' === this.getElementSettings('skin');
  }

  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);

    if (this.isSlideshow()) {
      defaultSettings.selectors.thumbsSwiper = '.elementor-thumbnails-swiper';
      defaultSettings.slidesPerView = {
        widescreen: 5,
        desktop: 5,
        laptop: 5,
        tablet_extra: 5,
        tablet: 4,
        mobile_extra: 4,
        mobile: 3
      };
    }

    return defaultSettings;
  }

  getSlidesPerViewSettingNames() {
    if (!this.slideshowElementSettings) {
      this.slideshowElementSettings = ['slides_per_view'];
      const activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      Object.keys(activeBreakpoints).forEach(breakpointName => {
        this.slideshowElementSettings.push('slides_per_view_' + breakpointName);
      });
    }

    return this.slideshowElementSettings;
  }

  getElementSettings(setting) {
    if (-1 !== this.getSlidesPerViewSettingNames().indexOf(setting) && this.isSlideshow()) {
      setting = 'slideshow_' + setting;
    }

    return super.getElementSettings(setting);
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors'),
          defaultElements = super.getDefaultElements(...args);

    if (this.isSlideshow()) {
      defaultElements.$thumbsSwiper = this.$element.find(selectors.thumbsSwiper);
    }

    return defaultElements;
  }

  getEffect() {
    if ('coverflow' === this.getElementSettings('skin')) {
      return 'coverflow';
    }

    return super.getEffect();
  }

  getSlidesPerView(device) {
    if (this.isSlideshow()) {
      return 1;
    }

    if ('coverflow' === this.getElementSettings('skin')) {
      return this.getDeviceSlidesPerView(device);
    }

    return super.getSlidesPerView(device);
  }

  getSwiperOptions() {
    const options = super.getSwiperOptions();

    if (this.isSlideshow()) {
      options.loopedSlides = this.getSlidesCount();
      delete options.pagination;
      delete options.breakpoints;
    }

    return options;
  }

  async onInit() {
    await super.onInit();
    const slidesCount = this.getSlidesCount();

    if (!this.isSlideshow() || 1 >= slidesCount) {
      return;
    }

    const elementSettings = this.getElementSettings(),
          loop = 'yes' === elementSettings.loop,
          breakpointsSettings = {},
          breakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          desktopSlidesPerView = this.getDeviceSlidesPerView('desktop');
    Object.keys(breakpoints).forEach(breakpointName => {
      breakpointsSettings[breakpoints[breakpointName].value] = {
        slidesPerView: this.getDeviceSlidesPerView(breakpointName),
        spaceBetween: this.getSpaceBetween(breakpointName)
      };
    });
    const thumbsSliderOptions = {
      slidesPerView: desktopSlidesPerView,
      initialSlide: this.getInitialSlide(),
      centeredSlides: elementSettings.centered_slides,
      slideToClickedSlide: true,
      spaceBetween: this.getSpaceBetween(),
      loopedSlides: slidesCount,
      loop,
      breakpoints: breakpointsSettings,
      handleElementorBreakpoints: true
    };
    const Swiper = elementorFrontend.utils.swiper;
    this.swiper.controller.control = this.thumbsSwiper = await new Swiper(this.elements.$thumbsSwiper, thumbsSliderOptions); // Expose the swiper instance in the frontend

    this.elements.$thumbsSwiper.data('swiper', this.thumbsSwiper);
    this.thumbsSwiper.controller.control = this.swiper;
  }

}

exports.default = MediaCarousel;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js":
/*!*******************************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/carousel/assets/js/frontend/handlers/base.js"));

class TestimonialCarousel extends _base.default {
  getDefaultSettings() {
    const defaultSettings = super.getDefaultSettings();
    defaultSettings.slidesPerView = {
      desktop: 1
    };
    Object.keys(elementorFrontend.config.responsive.activeBreakpoints).forEach(breakpointName => {
      defaultSettings.slidesPerView[breakpointName] = 1;
    });

    if (defaultSettings.loop) {
      defaultSettings.loopedSlides = this.getSlidesCount();
    }

    return defaultSettings;
  }

  getEffect() {
    return 'slide';
  }

}

exports.default = TestimonialCarousel;

/***/ }),

/***/ "../modules/countdown/assets/js/frontend/frontend-legacy.js":
/*!******************************************************************!*\
  !*** ../modules/countdown/assets/js/frontend/frontend-legacy.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _countdown = _interopRequireDefault(__webpack_require__(/*! ./handlers/countdown */ "../modules/countdown/assets/js/frontend/handlers/countdown.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('countdown', _countdown.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/countdown/assets/js/frontend/handlers/countdown.js":
/*!*********************************************************************!*\
  !*** ../modules/countdown/assets/js/frontend/handlers/countdown.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  cache: null,

  cacheElements() {
    const $countDown = this.$element.find('.elementor-countdown-wrapper');
    this.cache = {
      $countDown,
      timeInterval: null,
      elements: {
        $countdown: $countDown.find('.elementor-countdown-wrapper'),
        $daysSpan: $countDown.find('.elementor-countdown-days'),
        $hoursSpan: $countDown.find('.elementor-countdown-hours'),
        $minutesSpan: $countDown.find('.elementor-countdown-minutes'),
        $secondsSpan: $countDown.find('.elementor-countdown-seconds'),
        $expireMessage: $countDown.parent().find('.elementor-countdown-expire--message')
      },
      data: {
        id: this.$element.data('id'),
        endTime: new Date($countDown.data('date') * 1000),
        actions: $countDown.data('expire-actions'),
        evergreenInterval: $countDown.data('evergreen-interval')
      }
    };
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.cacheElements();

    if (0 < this.cache.data.evergreenInterval) {
      this.cache.data.endTime = this.getEvergreenDate();
    }

    this.initializeClock();
  },

  updateClock() {
    const self = this,
          timeRemaining = this.getTimeRemaining(this.cache.data.endTime);
    jQuery.each(timeRemaining.parts, function (timePart) {
      const $element = self.cache.elements['$' + timePart + 'Span'];
      let partValue = this.toString();

      if (1 === partValue.length) {
        partValue = 0 + partValue;
      }

      if ($element.length) {
        $element.text(partValue);
      }
    });

    if (timeRemaining.total <= 0) {
      clearInterval(this.cache.timeInterval);
      this.runActions();
    }
  },

  initializeClock() {
    const self = this;
    this.updateClock();
    this.cache.timeInterval = setInterval(function () {
      self.updateClock();
    }, 1000);
  },

  runActions() {
    const self = this; // Trigger general event for 3rd patry actions

    self.$element.trigger('countdown_expire', self.$element);

    if (!this.cache.data.actions) {
      return;
    }

    this.cache.data.actions.forEach(function (action) {
      switch (action.type) {
        case 'hide':
          self.cache.$countDown.hide();
          break;

        case 'redirect':
          if (action.redirect_url) {
            window.location.href = action.redirect_url;
          }

          break;

        case 'message':
          self.cache.elements.$expireMessage.show();
          break;
      }
    });
  },

  getTimeRemaining(endTime) {
    const timeRemaining = endTime - new Date();
    let seconds = Math.floor(timeRemaining / 1000 % 60),
        minutes = Math.floor(timeRemaining / 1000 / 60 % 60),
        hours = Math.floor(timeRemaining / (1000 * 60 * 60) % 24),
        days = Math.floor(timeRemaining / (1000 * 60 * 60 * 24));

    if (days < 0 || hours < 0 || minutes < 0) {
      seconds = minutes = hours = days = 0;
    }

    return {
      total: timeRemaining,
      parts: {
        days,
        hours,
        minutes,
        seconds
      }
    };
  },

  getEvergreenDate() {
    const self = this,
          id = this.cache.data.id,
          interval = this.cache.data.evergreenInterval,
          dueDateKey = id + '-evergreen_due_date',
          intervalKey = id + '-evergreen_interval',
          localData = {
      dueDate: localStorage.getItem(dueDateKey),
      interval: localStorage.getItem(intervalKey)
    },
          initEvergreen = function () {
      var evergreenDueDate = new Date();
      self.cache.data.endTime = evergreenDueDate.setSeconds(evergreenDueDate.getSeconds() + interval);
      localStorage.setItem(dueDateKey, self.cache.data.endTime);
      localStorage.setItem(intervalKey, interval);
      return self.cache.data.endTime;
    };

    if (null === localData.dueDate && null === localData.interval) {
      return initEvergreen();
    }

    if (null !== localData.dueDate && interval !== parseInt(localData.interval, 10)) {
      return initEvergreen();
    }

    if (localData.dueDate > 0 && parseInt(localData.interval, 10) === interval) {
      return localData.dueDate;
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/frontend-legacy.js":
/*!**************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/frontend-legacy.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _formSteps = _interopRequireDefault(__webpack_require__(/*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js"));

var _formSender = _interopRequireDefault(__webpack_require__(/*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js"));

var _formRedirect = _interopRequireDefault(__webpack_require__(/*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js"));

var _recaptcha = _interopRequireDefault(__webpack_require__(/*! ./handlers/recaptcha */ "../modules/forms/assets/js/frontend/handlers/recaptcha.js"));

var _date = _interopRequireDefault(__webpack_require__(/*! ./handlers/fields/date */ "../modules/forms/assets/js/frontend/handlers/fields/date.js"));

var _time = _interopRequireDefault(__webpack_require__(/*! ./handlers/fields/time */ "../modules/forms/assets/js/frontend/handlers/fields/time.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    const formHandlers = [_formSteps.default, _formSender.default, _formRedirect.default];
    elementorFrontend.elementsHandler.attachHandler('form', [...formHandlers, _recaptcha.default, _date.default, _time.default]);
    elementorFrontend.elementsHandler.attachHandler('subscribe', formHandlers);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js":
/*!***********************************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class DataTimeFieldBase extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        fields: this.getFieldsSelector()
      },
      classes: {
        useNative: 'elementor-use-native'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getDefaultSettings();
    return {
      $fields: this.$element.find(selectors.fields)
    };
  }

  addPicker(element) {
    const {
      classes
    } = this.getDefaultSettings(),
          $element = jQuery(element);

    if ($element.hasClass(classes.useNative)) {
      return;
    }

    element.flatpickr(this.getPickerOptions(element));
  }

  onInit(...args) {
    super.onInit(...args);
    this.elements.$fields.each((index, element) => this.addPicker(element));
  }

}

exports.default = DataTimeFieldBase;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/fields/date.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/date.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _dataTimeFieldBase = _interopRequireDefault(__webpack_require__(/*! ./data-time-field-base */ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js"));

class DateField extends _dataTimeFieldBase.default {
  getFieldsSelector() {
    return '.elementor-date-field';
  }

  getPickerOptions(element) {
    const $element = jQuery(element);
    return {
      minDate: $element.attr('min') || null,
      maxDate: $element.attr('max') || null,
      allowInput: true
    };
  }

}

exports.default = DateField;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/fields/time.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/time.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _dataTimeFieldBase = _interopRequireDefault(__webpack_require__(/*! ./data-time-field-base */ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js"));

class TimeField extends _dataTimeFieldBase.default {
  getFieldsSelector() {
    return '.elementor-time-field';
  }

  getPickerOptions() {
    return {
      noCalendar: true,
      enableTime: true,
      allowInput: true
    };
  }

}

exports.default = TimeField;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-redirect.js":
/*!*********************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-redirect.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$form = this.$element.find(selectors.form);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('form_destruct', this.handleSubmit);
  },

  handleSubmit(event, response) {
    if ('undefined' !== typeof response.data.redirect_url) {
      location.href = response.data.redirect_url;
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-sender.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-sender.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form',
        submitButton: '[type="submit"]'
      },
      action: 'elementor_pro_forms_send_form',
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  },

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {};
    elements.$form = this.$element.find(selectors.form);
    elements.$submitButton = elements.$form.find(selectors.submitButton);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('submit', this.handleSubmit);
    const $fileInput = this.elements.$form.find('input[type=file]');

    if ($fileInput.length) {
      $fileInput.on('change', this.validateFileSize);
    }
  },

  validateFileSize(event) {
    const $field = jQuery(event.currentTarget),
          files = $field[0].files;

    if (!files.length) {
      return;
    }

    const maxSize = parseInt($field.attr('data-maxsize')) * 1024 * 1024,
          maxSizeMessage = $field.attr('data-maxsize-message');
    const filesArray = Array.prototype.slice.call(files);
    filesArray.forEach(file => {
      if (maxSize < file.size) {
        $field.parent().addClass('elementor-error').append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">' + maxSizeMessage + '</span>').find(':input').attr('aria-invalid', 'true');
        this.elements.$form.trigger('error');
      }
    });
  },

  beforeSend() {
    const $form = this.elements.$form;
    $form.animate({
      opacity: '0.45'
    }, 500).addClass('elementor-form-waiting');
    $form.find('.elementor-message').remove();
    $form.find('.elementor-error').removeClass('elementor-error');
    $form.find('div.elementor-field-group').removeClass('error').find('span.elementor-form-help-inline').remove().end().find(':input').attr('aria-invalid', 'false');
    this.elements.$submitButton.attr('disabled', 'disabled').find('> span').prepend('<span class="elementor-button-text elementor-form-spinner"><i class="fa fa-spinner fa-spin"></i>&nbsp;</span>');
  },

  getFormData() {
    const formData = new FormData(this.elements.$form[0]);
    formData.append('action', this.getSettings('action'));
    formData.append('referrer', location.toString());
    return formData;
  },

  onSuccess(response) {
    const $form = this.elements.$form;
    this.elements.$submitButton.removeAttr('disabled').find('.elementor-form-spinner').remove();
    $form.animate({
      opacity: '1'
    }, 100).removeClass('elementor-form-waiting');

    if (!response.success) {
      if (response.data.errors) {
        jQuery.each(response.data.errors, function (key, title) {
          $form.find('#form-field-' + key).parent().addClass('elementor-error').append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">' + title + '</span>').find(':input').attr('aria-invalid', 'true');
        });
        $form.trigger('error');
      }

      $form.append('<div class="elementor-message elementor-message-danger" role="alert">' + response.data.message + '</div>');
    } else {
      $form.trigger('submit_success', response.data); // For actions like redirect page

      $form.trigger('form_destruct', response.data);
      $form.trigger('reset');

      if ('undefined' !== typeof response.data.message && '' !== response.data.message) {
        $form.append('<div class="elementor-message elementor-message-success" role="alert">' + response.data.message + '</div>');
      }
    }
  },

  onError(xhr, desc) {
    const $form = this.elements.$form;
    $form.append('<div class="elementor-message elementor-message-danger" role="alert">' + desc + '</div>');
    this.elements.$submitButton.html(this.elements.$submitButton.text()).removeAttr('disabled');
    $form.animate({
      opacity: '1'
    }, 100).removeClass('elementor-form-waiting');
    $form.trigger('error');
  },

  handleSubmit(event) {
    const self = this,
          $form = this.elements.$form;
    event.preventDefault();

    if ($form.hasClass('elementor-form-waiting')) {
      return false;
    }

    this.beforeSend();
    jQuery.ajax({
      url: self.getSettings('ajaxUrl'),
      type: 'POST',
      dataType: 'json',
      data: self.getFormData(),
      processData: false,
      contentType: false,
      success: self.onSuccess,
      error: self.onError
    });
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-steps.js":
/*!******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-steps.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class FormSteps extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form',
        fieldsWrapper: '.elementor-form-fields-wrapper',
        fieldGroup: '.elementor-field-group',
        stepWrapper: '.elementor-field-type-step',
        stepField: '.e-field-step',
        submitWrapper: '.elementor-field-type-submit',
        submitButton: '[type="submit"]',
        buttons: '.e-form__buttons',
        buttonWrapper: '.e-form__buttons__wrapper',
        button: '.e-form__buttons__wrapper__button',
        indicator: '.e-form__indicators__indicator',
        indicatorProgress: '.e-form__indicators__indicator__progress',
        indicatorProgressMeter: '.e-form__indicators__indicator__progress__meter',
        formHelpInline: '.elementor-form-help-inline'
      },
      classes: {
        hidden: 'elementor-hidden',
        column: 'elementor-column',
        fieldGroup: 'elementor-field-group',
        elementorButton: 'elementor-button',
        step: 'e-form__step',
        buttons: 'e-form__buttons',
        buttonWrapper: 'e-form__buttons__wrapper',
        button: 'e-form__buttons__wrapper__button',
        indicators: 'e-form__indicators',
        indicator: 'e-form__indicators__indicator',
        indicatorIcon: 'e-form__indicators__indicator__icon',
        indicatorNumber: 'e-form__indicators__indicator__number',
        indicatorLabel: 'e-form__indicators__indicator__label',
        indicatorProgress: 'e-form__indicators__indicator__progress',
        indicatorProgressMeter: 'e-form__indicators__indicator__progress__meter',
        indicatorSeparator: 'e-form__indicators__indicator__separator',
        indicatorInactive: 'e-form__indicators__indicator--state-inactive',
        indicatorActive: 'e-form__indicators__indicator--state-active',
        indicatorCompleted: 'e-form__indicators__indicator--state-completed',
        indicatorShapeCircle: 'e-form__indicators__indicator--shape-circle',
        indicatorShapeSquare: 'e-form__indicators__indicator--shape-square',
        indicatorShapeRounded: 'e-form__indicators__indicator--shape-rounded',
        indicatorShapeNone: 'e-form__indicators__indicator--shape-none'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings(),
          elements = {
      $form: this.$element.find(selectors.form)
    };
    elements.$fieldsWrapper = elements.$form.children(selectors.fieldsWrapper);
    elements.$stepWrapper = elements.$fieldsWrapper.children(selectors.stepWrapper);
    elements.$stepField = elements.$stepWrapper.children(selectors.stepField);
    elements.$fieldGroup = elements.$fieldsWrapper.children(selectors.fieldGroup);
    elements.$submitWrapper = elements.$fieldsWrapper.children(selectors.submitWrapper);
    elements.$submitButton = elements.$submitWrapper.children(selectors.submitButton);
    return elements;
  }

  onInit(...args) {
    super.onInit(...args);

    if (!this.isStepsExist()) {
      return;
    }

    this.data = {
      steps: [],
      indicatorsWithObjectTags: []
    };
    this.state = {
      currentStep: 0,
      stepsType: '',
      stepsShape: ''
    };
    this.buildSteps();
    this.elements = { ...this.elements,
      ...this.createStepsIndicators(),
      ...this.createStepsButtons()
    };
    this.initProgressBar();
    this.extractResponsiveSizeFromSubmitWrapper();
  }

  bindEvents() {
    if (!this.isStepsExist()) {
      return;
    }

    this.elements.$form.on({
      submit: () => this.resetForm(),
      keydown: e => {
        if (13 === e.keyCode && !this.isLastStep() && 'textarea' !== e.target.localName) {
          e.preventDefault();
          this.applyStep('next');
        }
      },
      error: () => this.onFormError()
    });
  }

  isStepsExist() {
    return this.elements.$stepWrapper.length;
  }

  initProgressBar() {
    const stepsSettings = this.getElementSettings();

    if ('progress_bar' === stepsSettings.step_type) {
      this.setProgressBar();
    }
  }

  buildSteps() {
    this.elements.$stepWrapper.each((index, el) => {
      const {
        selectors,
        classes
      } = this.getSettings(),
            $currentStep = jQuery(el);
      $currentStep.addClass(classes.step).removeClass(classes.fieldGroup, classes.column);

      if (index) {
        $currentStep.addClass(classes.hidden);
      }

      this.setStepData($currentStep.children(selectors.stepField));
      $currentStep.append($currentStep.nextUntil(this.elements.$stepWrapper).not(this.elements.$submitWrapper));
    });
  }

  setStepData($stepElement) {
    const dataAttributes = ['label', 'previousButton', 'nextButton', 'iconUrl', 'iconLibrary', 'icon'],
          stepData = {};
    dataAttributes.forEach(attr => {
      const attrValue = $stepElement.attr('data-' + attr);

      if (attrValue) {
        stepData[attr] = attrValue;
      }
    });
    this.data.steps.push(stepData);
  }

  createStepsIndicators() {
    const stepsSettings = this.getElementSettings(),
          stepsElements = {};

    if ('none' !== stepsSettings.step_type) {
      const {
        selectors,
        classes
      } = this.getSettings(),
            indicatorsTypeClass = classes.indicators + '--type-' + stepsSettings.step_type,
            indicatorsClasses = [classes.indicators, indicatorsTypeClass];
      stepsElements.$indicatorsWrapper = jQuery('<div>', {
        class: indicatorsClasses.join(' ')
      });
      stepsElements.$indicatorsWrapper.append(this.buildIndicators());
      this.elements.$fieldsWrapper.before(stepsElements.$indicatorsWrapper);

      if ('progress_bar' === stepsSettings.step_type) {
        stepsElements.$progressBar = stepsElements.$indicatorsWrapper.find(selectors.indicatorProgress);
        stepsElements.$progressBarMeter = stepsElements.$indicatorsWrapper.find(selectors.indicatorProgressMeter);
      } else {
        stepsElements.$indicators = stepsElements.$indicatorsWrapper.find(selectors.indicator);
        stepsElements.$currentIndicator = stepsElements.$indicators.eq(this.state.currentStep);
      }
    }

    this.saveIndicatorsState();
    return stepsElements;
  }

  buildIndicators() {
    const stepsSettings = this.getElementSettings();
    return 'progress_bar' === stepsSettings.step_type ? this.buildProgressBar() : this.buildIndicatorsFromStepsData();
  }

  buildProgressBar() {
    const {
      classes
    } = this.getSettings(),
          $progressBar = jQuery('<div>', {
      class: classes.indicatorProgress
    }),
          $progressBarMeter = jQuery('<div>', {
      class: classes.indicatorProgressMeter
    });
    $progressBar.append($progressBarMeter);
    return $progressBar;
  }

  getProgressBarValue() {
    const totalSteps = this.data.steps.length,
          currentStep = this.state.currentStep,
          percentage = currentStep ? (currentStep + 1) / totalSteps * 100 : 100 / totalSteps;
    return Math.floor(percentage) + '%';
  }

  setProgressBar() {
    const progressBarValue = this.getProgressBarValue();
    this.updateProgressMeterCSSVariable(progressBarValue);
    this.elements.$progressBarMeter.text(progressBarValue);
  }

  updateProgressMeterCSSVariable(value) {
    this.$element[0].style.setProperty('--e-form-steps-indicator-progress-meter-width', value);
  }

  saveIndicatorsState() {
    const stepsSettings = this.getElementSettings();
    this.state.stepsType = stepsSettings.step_type;

    if (!['none', 'text', 'progress_bar'].includes(stepsSettings.step_type)) {
      this.state.stepsShape = stepsSettings.step_icon_shape;
    }
  }

  buildIndicatorsFromStepsData() {
    const indicators = [];
    this.data.steps.forEach((stepObj, index) => {
      if (index) {
        indicators.push(this.getStepSeparator());
      }

      indicators.push(this.getStepIndicatorElement(stepObj, index));
    });
    return indicators;
  }

  getStepIndicatorElement(stepObj, index) {
    const {
      classes
    } = this.getSettings(),
          stepsSettings = this.getElementSettings(),
          indicatorStateClass = this.getIndicatorStateClass(index),
          indicatorClasses = [classes.indicator, indicatorStateClass],
          $stepIndicator = jQuery('<div>', {
      class: indicatorClasses.join(' ')
    });

    if (stepsSettings.step_type.includes('icon')) {
      $stepIndicator.append(this.getStepIconElement(stepObj));
    }

    if (stepsSettings.step_type.includes('number')) {
      $stepIndicator.append(this.getStepNumberElement(index));
    }

    if (stepsSettings.step_type.includes('text')) {
      $stepIndicator.append(this.getStepLabelElement(stepObj.label));
    }

    return $stepIndicator;
  }

  getIndicatorStateClass(index) {
    const {
      classes
    } = this.getSettings();

    if (index < this.state.currentStep) {
      return classes.indicatorCompleted;
    } else if (index > this.state.currentStep) {
      return classes.indicatorInactive;
    }

    return classes.indicatorActive;
  }

  getIndicatorShapeClass() {
    const stepsSettings = this.getElementSettings(),
          {
      classes
    } = this.getSettings();
    return classes['indicatorShape' + this.firstLetterToUppercase(stepsSettings.step_icon_shape)];
  }

  firstLetterToUppercase(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  }

  getStepNumberElement(index) {
    const {
      classes
    } = this.getSettings(),
          numberClasses = [classes.indicatorNumber, this.getIndicatorShapeClass()];
    return jQuery('<div>', {
      class: numberClasses.join(' '),
      text: index + 1
    });
  }

  getStepIconElement(stepObj) {
    const {
      classes
    } = this.getSettings(),
          iconClasses = [classes.indicatorIcon, this.getIndicatorShapeClass()],
          $icon = jQuery('<div>', {
      class: iconClasses.join(' ')
    });

    if (stepObj.icon) {
      $icon.html(stepObj.icon);
    } else {
      let $iconElement;

      if (stepObj.iconLibrary) {
        $iconElement = jQuery('<i>', {
          class: stepObj.iconLibrary
        });
      } else {
        // Using the attributes inline when creating the object, otherwise the data attribute will not work.
        $iconElement = jQuery(`<object type="image/svg+xml" data="${stepObj.iconUrl}"></object>`); // Updating an indicator svg fill color, when loaded inside an object tag with a separated scope.

        $iconElement.on('load', event => {
          event.target.contentDocument.querySelector('svg').style.fill = $iconElement.css('fill');
        }); // Storing the indicators elements that contain object tags in order to change their fill color on steps change.

        this.data.indicatorsWithObjectTags.push($iconElement);
      }

      $icon.append($iconElement);
    }

    return $icon;
  }

  getStepLabelElement(label) {
    const {
      classes
    } = this.getSettings();
    return jQuery('<label>', {
      class: classes.indicatorLabel,
      text: label
    });
  }

  getStepSeparator() {
    const {
      classes
    } = this.getSettings();
    return jQuery('<div>', {
      class: classes.indicatorSeparator
    });
  }

  createStepsButtons() {
    const {
      selectors
    } = this.getSettings(),
          stepsElements = {};
    this.injectButtonsToSteps(stepsElements);
    stepsElements.$buttonsContainer = this.elements.$stepWrapper.find(selectors.buttons);
    stepsElements.$buttonsWrappers = stepsElements.$buttonsContainer.children(selectors.buttonWrapper);
    return stepsElements;
  }

  injectButtonsToSteps() {
    const totalSteps = this.elements.$stepWrapper.length;
    this.elements.$stepWrapper.each((index, el) => {
      const $el = jQuery(el),
            $container = this.getButtonsContainer();
      let $nextButton;

      if (index) {
        $container.append(this.getStepButton('previous', index));
        $nextButton = index === totalSteps - 1 ? this.getSubmitButton() : this.getStepButton('next', index);
      } else {
        $nextButton = this.getStepButton('next', index);
      }

      $container.append($nextButton);
      $el.append($container);
    });
  }

  getButtonsContainer() {
    const {
      classes
    } = this.getSettings(),
          stepsSettings = this.getElementSettings(),
          buttonColumnWidthClasses = [classes.buttons, classes.column, 'elementor-col-' + stepsSettings.button_width];
    return jQuery('<div>', {
      class: buttonColumnWidthClasses.join(' ')
    });
  }

  extractResponsiveSizeFromSubmitWrapper() {
    let sizeClasses = [];
    this.elements.$submitWrapper.removeClass((index, className) => {
      var _className$match;

      sizeClasses = (_className$match = className.match(/elementor-(sm|md)-[0-9]+/g)) === null || _className$match === void 0 ? void 0 : _className$match.join(' ');
      return sizeClasses;
    });
    this.elements.$buttonsContainer.addClass(sizeClasses);
  }

  getStepButton(buttonType, index) {
    const {
      classes
    } = this.getSettings(),
          $button = this.getButton(buttonType, index).on('click', () => this.applyStep(buttonType)),
          buttonWrapperClasses = [classes.fieldGroup, classes.buttonWrapper, 'elementor-field-type-' + buttonType];
    return jQuery('<div>', {
      class: buttonWrapperClasses.join(' ')
    }).append($button);
  }

  getSubmitButton() {
    const {
      classes
    } = this.getSettings();
    this.elements.$submitButton.addClass(classes.button); // TODO: When a solution for the conditions will be found, check if can remove the elementor-col-x manipulation.

    return this.elements.$submitWrapper.attr('class', (index, className) => {
      return this.replaceClassNameColSize(className, '');
    }).removeClass(classes.column).removeClass(classes.buttons).addClass(classes.buttonWrapper);
  }

  replaceClassNameColSize(className, value) {
    return className.replace(/elementor-col-([0-9]+)/g, value);
  }

  getButton(buttonType, index) {
    const {
      classes
    } = this.getSettings(),
          submitSizeClass = this.elements.$submitButton.attr('class').match(/elementor-size-([^\W\d]+)/g),
          buttonClasses = [classes.elementorButton, submitSizeClass, classes.button, classes.button + '-' + buttonType];
    return jQuery('<button>', {
      type: 'button',
      text: this.getButtonLabel(buttonType, index),
      class: buttonClasses.join(' ')
    });
  }

  getButtonLabel(buttonType, index) {
    const stepsSettings = this.getElementSettings(),
          stepData = this.data.steps[index],
          buttonName = buttonType + 'Button',
          buttonSettingsProp = `step_${buttonType}_label`;
    return stepData[buttonName] || stepsSettings[buttonSettingsProp];
  }

  applyStep(direction) {
    const nextIndex = 'next' === direction ? this.state.currentStep + 1 : this.state.currentStep - 1;

    if ('next' === direction && !this.isFieldsValid(this.elements.$stepWrapper)) {
      return false;
    }

    this.goToStep(nextIndex);
    this.state.currentStep = nextIndex;

    if ('progress_bar' === this.state.stepsType) {
      this.setProgressBar();
    } else if ('none' !== this.state.stepsType) {
      this.updateIndicatorsState(direction);
    }
  }

  goToStep(index) {
    const {
      classes
    } = this.getSettings();
    this.elements.$stepWrapper.eq(this.state.currentStep).addClass(classes.hidden);
    this.elements.$stepWrapper.eq(index).removeClass(classes.hidden).children(this.getSettings('selectors.fieldGroup')).first().find(':input').first().trigger('focus');
  }

  isFieldsValid($stepWrapper) {
    let isValid = true;
    $stepWrapper.eq(this.state.currentStep).find('.elementor-field-group :input').each((index, el) => {
      if (!el.checkValidity()) {
        el.reportValidity();
        return isValid = false;
      }
    });
    return isValid;
  }

  isLastStep() {
    return this.state.currentStep === this.data.steps.length - 1;
  }

  resetForm() {
    this.state.currentStep = 0;
    this.resetSteps();

    if ('progress_bar' === this.state.stepsType) {
      this.setProgressBar();
    } else if ('none' !== this.state.stepsType) {
      this.elements.$currentIndicator = this.elements.$indicators.eq(this.state.currentStep);
      this.resetIndicators();
    }
  }

  resetSteps() {
    const {
      classes
    } = this.getSettings();
    this.elements.$stepWrapper.addClass(classes.hidden).eq(0).removeClass(classes.hidden);
  }

  resetIndicators() {
    const {
      classes
    } = this.getSettings(),
          stateTypes = ['inactive', 'active', 'completed'],
          stateClasses = stateTypes.map(state => classes.indicator + '--state-' + state);
    this.elements.$indicators.removeClass(stateClasses.join(' ')).not(this.elements.$indicators.eq(0)).addClass(classes.indicatorInactive);
    this.elements.$indicators.eq(0).addClass(classes.indicatorActive);
  }

  updateIndicatorsState(direction) {
    const {
      classes
    } = this.getSettings(),
          indicatorsClasses = {
      current: {
        remove: classes.indicatorActive,
        add: 'next' === direction ? classes.indicatorCompleted : classes.indicatorInactive
      },
      next: {
        remove: 'next' === direction ? classes.indicatorInactive : classes.indicatorCompleted,
        add: classes.indicatorActive
      }
    };
    this.elements.$currentIndicator.removeClass(indicatorsClasses.current.remove).addClass(indicatorsClasses.current.add);
    this.elements.$currentIndicator = this.elements.$indicators.eq(this.state.currentStep);
    this.elements.$currentIndicator.removeClass(indicatorsClasses.next.remove).addClass(indicatorsClasses.next.add); // Updating an indicator svg fill color, if loaded inside an object tag.

    this.data.indicatorsWithObjectTags.forEach($element => {
      $element.contents().children('svg').css('fill', $element.css('fill'));
    });
  }

  updateValue(updatedValue) {
    const actionsMap = {
      step_type: () => this.updateStepsType(),
      step_icon_shape: () => this.updateStepsShape(),
      step_next_label: () => this.updateStepButtonsLabel('next'),
      step_previous_label: () => this.updateStepButtonsLabel('previous')
    };

    if (actionsMap[updatedValue]) {
      actionsMap[updatedValue]();
    }
  }

  updateStepsType() {
    const stepsSettings = this.getElementSettings();

    if (this.elements.$indicatorsWrapper) {
      this.elements.$indicatorsWrapper.remove();
    }

    if ('none' !== stepsSettings.step_type) {
      this.rebuildIndicators();
    }

    this.state.stepsType = stepsSettings.step_type;
  }

  rebuildIndicators() {
    this.elements = { ...this.elements,
      ...this.createStepsIndicators()
    };
    this.initProgressBar();
  }

  updateStepsShape() {
    const stepsSettings = this.getElementSettings(),
          {
      selectors,
      classes
    } = this.getSettings(),
          shapeClassStart = classes.indicator + '--shape-',
          currentShapeClass = shapeClassStart + this.state.stepsShape,
          newShapeClass = shapeClassStart + stepsSettings.step_icon_shape;
    let elementsTargetType = '';

    if (stepsSettings.step_type.includes('icon')) {
      elementsTargetType = 'icon';
    } else if (stepsSettings.step_type.includes('number')) {
      elementsTargetType = 'number';
    }

    this.elements.$indicators.children(selectors.indicator + '__' + elementsTargetType).removeClass(currentShapeClass).addClass(newShapeClass);
    this.state.stepsShape = stepsSettings.step_icon_shape;
  }

  updateStepButtonsLabel(buttonType) {
    const {
      selectors
    } = this.getSettings(),
          buttonSelector = {
      previous: selectors.button + '-previous',
      next: selectors.button + '-next'
    };
    this.elements.$stepWrapper.each((index, el) => {
      jQuery(el).find(buttonSelector[buttonType]).text(this.getButtonLabel(buttonType, index));
    });
  }

  onFormError() {
    const {
      selectors
    } = this.getSettings(),
          $errorStepElement = this.elements.$form.find(selectors.formHelpInline).closest(selectors.stepWrapper);

    if ($errorStepElement.length) {
      this.goToStep($errorStepElement.index());
    }
  }

  onElementChange(updatedValue) {
    if (!this.isStepsExist()) {
      return;
    }

    this.updateValue(updatedValue);
  }

}

exports.default = FormSteps;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/recaptcha.js":
/*!*****************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/recaptcha.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Recaptcha extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        recaptcha: '.elementor-g-recaptcha:last',
        submit: 'button[type="submit"]',
        recaptchaResponse: '[name="g-recaptcha-response"]'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getDefaultSettings(),
          elements = {
      $recaptcha: this.$element.find(selectors.recaptcha)
    };
    elements.$form = elements.$recaptcha.parents('form');
    elements.$submit = elements.$form.find(selectors.submit);
    return elements;
  }

  bindEvents() {
    this.onRecaptchaApiReady();
  }

  isActive(settings) {
    const {
      selectors
    } = this.getDefaultSettings();
    return settings.$element.find(selectors.recaptcha).length;
  }

  addRecaptcha() {
    const settings = this.elements.$recaptcha.data(),
          isV2 = 'v3' !== settings.type,
          captchaIds = [];
    captchaIds.forEach(id => window.grecaptcha.reset(id));
    const widgetId = window.grecaptcha.render(this.elements.$recaptcha[0], settings);
    this.elements.$form.on('reset error', () => {
      window.grecaptcha.reset(widgetId);
    });

    if (isV2) {
      this.elements.$recaptcha.data('widgetId', widgetId);
    } else {
      captchaIds.push(widgetId);
      this.elements.$submit.on('click', e => this.onV3FormSubmit(e, widgetId));
    }
  }

  onV3FormSubmit(e, widgetId) {
    e.preventDefault();
    window.grecaptcha.ready(() => {
      const $form = this.elements.$form;
      grecaptcha.execute(widgetId, {
        action: this.elements.$recaptcha.data('action')
      }).then(token => {
        if (this.elements.$recaptchaResponse) {
          this.elements.$recaptchaResponse.val(token);
        } else {
          this.elements.$recaptchaResponse = jQuery('<input>', {
            type: 'hidden',
            value: token,
            name: 'g-recaptcha-response'
          });
          $form.append(this.elements.$recaptchaResponse);
        } // Support old browsers.


        const bcSupport = !$form[0].reportValidity || 'function' !== typeof $form[0].reportValidity;

        if (bcSupport || $form[0].reportValidity()) {
          $form.trigger('submit');
        }
      });
    });
  }

  onRecaptchaApiReady() {
    if (window.grecaptcha && window.grecaptcha.render) {
      this.addRecaptcha();
    } else {
      // If not ready check again by timeout..
      setTimeout(() => this.onRecaptchaApiReady(), 350);
    }
  }

}

exports.default = Recaptcha;

/***/ }),

/***/ "../modules/gallery/assets/js/frontend/frontend-legacy.js":
/*!****************************************************************!*\
  !*** ../modules/gallery/assets/js/frontend/frontend-legacy.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/gallery/assets/js/frontend/handler.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('gallery', _handler.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/gallery/assets/js/frontend/handler.js":
/*!********************************************************!*\
  !*** ../modules/gallery/assets/js/frontend/handler.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class galleryHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.elementor-gallery__container',
        galleryTitles: '.elementor-gallery-title',
        galleryImages: '.e-gallery-image',
        galleryItemOverlay: '.elementor-gallery-item__overlay',
        galleryItemContent: '.elementor-gallery-item__content'
      },
      classes: {
        activeTitle: 'elementor-item-active'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings(),
          elements = {
      $container: this.$element.find(selectors.container),
      $titles: this.$element.find(selectors.galleryTitles)
    };
    elements.$items = elements.$container.children();
    elements.$images = elements.$items.children(selectors.galleryImages);
    elements.$itemsOverlay = elements.$items.children(selectors.galleryItemOverlay);
    elements.$itemsContent = elements.$items.children(selectors.galleryItemContent);
    elements.$itemsContentElements = elements.$itemsContent.children();
    return elements;
  }

  getGallerySettings() {
    const settings = this.getElementSettings(),
          activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          activeBreakpointsKeys = Object.keys(activeBreakpoints),
          breakPointSettings = {},
          desktopIdealRowHeight = elementorFrontend.getDeviceSetting('desktop', settings, 'ideal_row_height');
    activeBreakpointsKeys.forEach(breakpoint => {
      // The Gallery widget currently does not support widescreen.
      if ('widescreen' !== breakpoint) {
        const idealRowHeight = elementorFrontend.getDeviceSetting(breakpoint, settings, 'ideal_row_height');
        breakPointSettings[activeBreakpoints[breakpoint].value] = {
          horizontalGap: elementorFrontend.getDeviceSetting(breakpoint, settings, 'gap').size,
          verticalGap: elementorFrontend.getDeviceSetting(breakpoint, settings, 'gap').size,
          columns: elementorFrontend.getDeviceSetting(breakpoint, settings, 'columns'),
          idealRowHeight: idealRowHeight === null || idealRowHeight === void 0 ? void 0 : idealRowHeight.size
        };
      }
    });
    return {
      type: settings.gallery_layout,
      idealRowHeight: desktopIdealRowHeight === null || desktopIdealRowHeight === void 0 ? void 0 : desktopIdealRowHeight.size,
      container: this.elements.$container,
      columns: settings.columns,
      aspectRatio: settings.aspect_ratio,
      lastRow: 'normal',
      horizontalGap: elementorFrontend.getDeviceSetting('desktop', settings, 'gap').size,
      verticalGap: elementorFrontend.getDeviceSetting('desktop', settings, 'gap').size,
      animationDuration: settings.content_animation_duration,
      breakpoints: breakPointSettings,
      rtl: elementorFrontend.config.is_rtl,
      lazyLoad: 'yes' === settings.lazyload
    };
  }

  initGallery() {
    this.gallery = new EGallery(this.getGallerySettings());
    this.toggleAllAnimationsClasses();
  }

  removeAnimationClasses($element) {
    $element.removeClass((index, className) => (className.match(/elementor-animated-item-\S+/g) || []).join(' '));
  }

  toggleOverlayHoverAnimation() {
    this.removeAnimationClasses(this.elements.$itemsOverlay);
    const hoverAnimation = this.getElementSettings('background_overlay_hover_animation');

    if (hoverAnimation) {
      this.elements.$itemsOverlay.addClass('elementor-animated-item--' + hoverAnimation);
    }
  }

  toggleOverlayContentAnimation() {
    this.removeAnimationClasses(this.elements.$itemsContentElements);
    const contentHoverAnimation = this.getElementSettings('content_hover_animation');

    if (contentHoverAnimation) {
      this.elements.$itemsContentElements.addClass('elementor-animated-item--' + contentHoverAnimation);
    }
  }

  toggleOverlayContentSequencedAnimation() {
    this.elements.$itemsContent.toggleClass('elementor-gallery--sequenced-animation', 'yes' === this.getElementSettings('content_sequenced_animation'));
  }

  toggleImageHoverAnimation() {
    const imageHoverAnimation = this.getElementSettings('image_hover_animation');
    this.removeAnimationClasses(this.elements.$images);

    if (imageHoverAnimation) {
      this.elements.$images.addClass('elementor-animated-item--' + imageHoverAnimation);
    }
  }

  toggleAllAnimationsClasses() {
    const elementSettings = this.getElementSettings(),
          animation = elementSettings.background_overlay_hover_animation || elementSettings.content_hover_animation || elementSettings.image_hover_animation;
    this.elements.$items.toggleClass('elementor-animated-content', !!animation);
    this.toggleImageHoverAnimation();
    this.toggleOverlayHoverAnimation();
    this.toggleOverlayContentAnimation();
    this.toggleOverlayContentSequencedAnimation();
  }

  toggleAnimationClasses(settingKey) {
    if ('content_sequenced_animation' === settingKey) {
      this.toggleOverlayContentSequencedAnimation();
    }

    if ('background_overlay_hover_animation' === settingKey) {
      this.toggleOverlayHoverAnimation();
    }

    if ('content_hover_animation' === settingKey) {
      this.toggleOverlayContentAnimation();
    }

    if ('image_hover_animation' === settingKey) {
      this.toggleImageHoverAnimation();
    }
  }

  setGalleryTags(id) {
    this.gallery.setSettings('tags', 'all' === id ? [] : ['' + id]);
  }

  bindEvents() {
    this.elements.$titles.on('click', this.galleriesNavigationListener.bind(this));
  }

  galleriesNavigationListener(event) {
    const classes = this.getSettings('classes'),
          clickedElement = jQuery(event.target); // Make sure no other gallery title has an active class

    this.elements.$titles.removeClass(classes.activeTitle); // Give the gallery being activated the active class

    clickedElement.addClass(classes.activeTitle);
    this.setGalleryTags(clickedElement.data('gallery-index'));

    const updateLightboxGroup = () => this.setLightboxGalleryIndex(clickedElement.data('gallery-index')); // Wait for the gallery to filter before grouping items for the Light-box


    setTimeout(updateLightboxGroup, 1000);
  }

  setLightboxGalleryIndex(index = 'all') {
    if ('all' === index) {
      return this.elements.$items.attr('data-elementor-lightbox-slideshow', 'all_' + this.getID());
    }

    this.elements.$items.not('.e-gallery-item--hidden').attr('data-elementor-lightbox-slideshow', index + '_' + this.getID());
  }

  onInit(...args) {
    super.onInit(...args);

    if (elementorFrontend.isEditMode() && 1 <= this.$element.find('.elementor-widget-empty-icon').length) {
      this.$element.addClass('elementor-widget-empty');
    }

    if (!this.elements.$container.length) {
      return;
    }

    this.initGallery();
    this.elements.$titles.first().trigger('click');
  }

  getSettingsDictionary() {
    if (this.settingsDictionary) {
      return this.settingsDictionary;
    }

    const activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          activeBreakpointsKeys = Object.keys(activeBreakpoints);
    const settingsDictionary = {
      columns: ['columns'],
      gap: ['horizontalGap', 'verticalGap'],
      ideal_row_height: ['idealRowHeight']
    };
    activeBreakpointsKeys.forEach(breakpoint => {
      // The Gallery widget currently does not support widescreen.
      if ('widescreen' === breakpoint) {
        return;
      }

      settingsDictionary['columns_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.columns'];
      settingsDictionary['gap_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.horizontalGap', 'breakpoints.' + activeBreakpoints[breakpoint].value + '.verticalGap'];
      settingsDictionary['ideal_row_height_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.idealRowHeight'];
    });
    settingsDictionary.aspect_ratio = ['aspectRatio'];
    this.settingsDictionary = settingsDictionary;
    return this.settingsDictionary;
  }

  onElementChange(settingKey) {
    if (-1 !== ['background_overlay_hover_animation', 'content_hover_animation', 'image_hover_animation', 'content_sequenced_animation'].indexOf(settingKey)) {
      this.toggleAnimationClasses(settingKey);
      return;
    }

    const settingsDictionary = this.getSettingsDictionary();
    const settingsToUpdate = settingsDictionary[settingKey];

    if (settingsToUpdate) {
      const gallerySettings = this.getGallerySettings();
      settingsToUpdate.forEach(settingToUpdate => {
        this.gallery.setSettings(settingToUpdate, this.getItems(gallerySettings, settingToUpdate));
      });
    }
  }

  onDestroy() {
    super.onDestroy();

    if (this.gallery) {
      this.gallery.destroy();
    }
  }

}

exports.default = galleryHandler;

/***/ }),

/***/ "../modules/hotspot/assets/js/frontend/frontend-legacy.js":
/*!****************************************************************!*\
  !*** ../modules/hotspot/assets/js/frontend/frontend-legacy.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _hotspot = _interopRequireDefault(__webpack_require__(/*! ./handlers/hotspot */ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('hotspot', _hotspot.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js":
/*!*****************************************************************!*\
  !*** ../modules/hotspot/assets/js/frontend/handlers/hotspot.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Hotspot extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        hotspot: '.e-hotspot',
        tooltip: '.e-hotspot__tooltip'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $hotspot: this.$element.find(selectors.hotspot),
      $hotspotsExcludesLinks: this.$element.find(selectors.hotspot).filter(':not(.e-hotspot--no-tooltip)'),
      $tooltip: this.$element.find(selectors.tooltip)
    };
  }

  bindEvents() {
    const tooltipTrigger = this.getCurrentDeviceSetting('tooltip_trigger'),
          tooltipTriggerEvent = 'mouseenter' === tooltipTrigger ? 'mouseleave mouseenter' : tooltipTrigger;

    if (tooltipTriggerEvent !== 'none') {
      this.elements.$hotspotsExcludesLinks.on(tooltipTriggerEvent, event => this.onHotspotTriggerEvent(event));
    }
  }

  onDeviceModeChange() {
    this.elements.$hotspotsExcludesLinks.off();
    this.bindEvents();
  }

  onHotspotTriggerEvent(event) {
    const elementTarget = jQuery(event.target),
          isHotspotButtonEvent = elementTarget.closest('.e-hotspot__button').length,
          isTooltipMouseLeave = 'mouseleave' === event.type && (elementTarget.is('.e-hotspot--tooltip-position') || elementTarget.parents('.e-hotspot--tooltip-position').length),
          isMobile = 'mobile' === elementorFrontend.getCurrentDeviceMode(),
          isHotspotLink = elementTarget.closest('.e-hotspot--link').length,
          triggerTooltip = !(isHotspotLink && isMobile && ('mouseleave' === event.type || 'mouseenter' === event.type));

    if (triggerTooltip && (isHotspotButtonEvent || isTooltipMouseLeave)) {
      const currentHotspot = jQuery(event.currentTarget);
      this.elements.$hotspot.not(currentHotspot).removeClass('e-hotspot--active');
      currentHotspot.toggleClass('e-hotspot--active');
    }
  } // Fix bad UX of "Sequenced Animation" when editing other controls


  editorAddSequencedAnimation() {
    this.elements.$hotspot.toggleClass('e-hotspot--sequenced', 'yes' === this.getElementSettings('hotspot_sequenced_animation'));
  }

  hotspotSequencedAnimation() {
    const elementSettings = this.getElementSettings(),
          isSequencedAnimation = elementSettings.hotspot_sequenced_animation;

    if ('no' === isSequencedAnimation) {
      return;
    } //start sequenced animation when element on viewport


    const hotspotObserver = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (event.isInViewport) {
          hotspotObserver.unobserve(this.$element[0]); //add delay for each hotspot

          this.elements.$hotspot.each((index, element) => {
            if (0 === index) {
              return;
            }

            const sequencedAnimation = elementSettings.hotspot_sequenced_animation_duration,
                  sequencedAnimationDuration = sequencedAnimation ? sequencedAnimation.size : 1000,
                  animationDelay = index * (sequencedAnimationDuration / this.elements.$hotspot.length);
            element.style.animationDelay = animationDelay + 'ms';
          });
        }
      }
    });
    hotspotObserver.observe(this.$element[0]);
  }

  setTooltipPositionControl() {
    const elementSettings = this.getElementSettings(),
          isDirectionAnimation = 'undefined' !== typeof elementSettings.tooltip_animation && elementSettings.tooltip_animation.match(/^e-hotspot--(slide|fade)-direction/);

    if (isDirectionAnimation) {
      this.elements.$tooltip.removeClass('e-hotspot--tooltip-animation-from-left e-hotspot--tooltip-animation-from-top e-hotspot--tooltip-animation-from-right e-hotspot--tooltip-animation-from-bottom');
      this.elements.$tooltip.addClass('e-hotspot--tooltip-animation-from-' + elementSettings.tooltip_position);
    }
  }

  onInit(...args) {
    super.onInit(...args);
    this.hotspotSequencedAnimation();
    this.setTooltipPositionControl();

    if (window.elementor) {
      elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange());
    }
  }

  onElementChange(propertyName) {
    if (propertyName.startsWith('tooltip_position')) {
      this.setTooltipPositionControl();
    }

    if (propertyName.startsWith('hotspot_sequenced_animation')) {
      this.editorAddSequencedAnimation();
    }
  }

}

exports.default = Hotspot;

/***/ }),

/***/ "../modules/lottie/assets/js/frontend/frontend-legacy.js":
/*!***************************************************************!*\
  !*** ../modules/lottie/assets/js/frontend/frontend-legacy.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/lottie/assets/js/frontend/handler.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('lottie', _handler.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/lottie/assets/js/frontend/handler.js":
/*!*******************************************************!*\
  !*** ../modules/lottie/assets/js/frontend/handler.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class lottieHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.e-lottie__container',
        containerLink: '.e-lottie__container__link',
        animation: '.e-lottie__animation',
        caption: '.e-lottie__caption'
      },
      classes: {
        caption: 'e-lottie__caption'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings();
    return {
      $widgetWrapper: this.$element,
      $container: this.$element.find(selectors.container),
      $containerLink: this.$element.find(selectors.containerLink),
      $animation: this.$element.find(selectors.animation),
      $caption: this.$element.find(selectors.caption),
      $sectionParent: this.$element.closest('.elementor-section'),
      $columnParent: this.$element.closest('.elementor-column')
    };
  }

  onInit(...args) {
    super.onInit(...args);
    this.lottie = null;
    this.state = {
      isAnimationScrollUpdateNeededOnFirstLoad: true,
      isNewLoopCycle: false,
      isInViewport: false,
      loop: false,
      animationDirection: 'forward',
      currentAnimationTrigger: '',
      effectsRelativeTo: '',
      hoverOutMode: '',
      hoverArea: '',
      caption: '',
      playAnimationCount: 0,
      animationSpeed: 0,
      linkTimeout: 0,
      viewportOffset: {
        start: 0,
        end: 100
      }
    };
    this.intersectionObservers = {
      animation: {
        observer: null,
        element: null
      },
      lazyload: {
        observer: null,
        element: null
      }
    };
    this.animationFrameRequest = {
      timer: null,
      lastScrollY: 0
    };
    this.listeners = {
      collection: [],
      elements: {
        $widgetArea: {
          triggerAnimationHoverIn: null,
          triggerAnimationHoverOut: null
        },
        $container: {
          triggerAnimationClick: null
        }
      }
    };
    this.initLottie();
  }

  initLottie() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.lazyload) {
      this.lazyloadLottie();
    } else {
      this.generateLottie();
    }
  }

  lazyloadLottie() {
    const bufferHeightBeforeTriggerLottie = 200;
    this.intersectionObservers.lazyload.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `0px 0px ${bufferHeightBeforeTriggerLottie}px`,
      callback: event => {
        if (event.isInViewport) {
          this.generateLottie();
          this.intersectionObservers.lazyload.observer.unobserve(this.intersectionObservers.lazyload.element);
        }
      }
    });
    this.intersectionObservers.lazyload.element = this.elements.$container[0];
    this.intersectionObservers.lazyload.observer.observe(this.intersectionObservers.lazyload.element);
  }

  generateLottie() {
    this.createLottieInstance();
    this.setLottieEvents();
  }

  createLottieInstance() {
    const lottieSettings = this.getLottieSettings();
    this.lottie = bodymovin.loadAnimation({
      container: this.elements.$animation[0],
      path: this.getAnimationPath(),
      renderer: lottieSettings.renderer,
      autoplay: false,
      // We always want to trigger the animation manually for considering start/end frame.
      name: 'lottie-widget'
    }); // Expose the lottie instance in the frontend.

    this.elements.$animation.data('lottie', this.lottie);
  }

  getAnimationPath() {
    var _lottieSettings$sourc, _lottieSettings$sourc2;

    const lottieSettings = this.getLottieSettings();

    if ((_lottieSettings$sourc = lottieSettings.source_json) !== null && _lottieSettings$sourc !== void 0 && _lottieSettings$sourc.url && 'json' === lottieSettings.source_json.url.toLowerCase().substr(-4)) {
      return lottieSettings.source_json.url;
    } else if ((_lottieSettings$sourc2 = lottieSettings.source_external_url) !== null && _lottieSettings$sourc2 !== void 0 && _lottieSettings$sourc2.url) {
      return lottieSettings.source_external_url.url;
    } // Default animation path.


    return elementorProFrontend.config.lottie.defaultAnimationUrl;
  }

  setCaption() {
    const lottieSettings = this.getLottieSettings();

    if ('external_url' === lottieSettings.source || 'media_file' === lottieSettings.source && 'custom' === lottieSettings.caption_source) {
      const $captionElement = this.getCaptionElement();
      $captionElement.text(lottieSettings.caption);
    }
  }

  getCaptionElement() {
    if (!this.elements.$caption.length) {
      const {
        classes
      } = this.getSettings();
      this.elements.$caption = jQuery('<p>', {
        class: classes.caption
      });
      this.elements.$container.append(this.elements.$caption);
      return this.elements.$caption;
    }

    return this.elements.$caption;
  }

  setLottieEvents() {
    this.lottie.addEventListener('DOMLoaded', () => this.onLottieDomLoaded());
    this.lottie.addEventListener('complete', () => this.onComplete());
  }

  saveInitialValues() {
    var _lottieSettings$play_;

    const lottieSettings = this.getLottieSettings();
    /*
    These values of the animation are being changed during the animation runtime
    and saved in the lottie instance (and not in the state) for the instance expose in the frontend.
     */

    this.lottie.__initialTotalFrames = this.lottie.totalFrames;
    this.lottie.__initialFirstFrame = this.lottie.firstFrame;
    this.state.currentAnimationTrigger = lottieSettings.trigger;
    this.state.effectsRelativeTo = lottieSettings.effects_relative_to;
    this.state.viewportOffset.start = lottieSettings.viewport ? lottieSettings.viewport.sizes.start : 0;
    this.state.viewportOffset.end = lottieSettings.viewport ? lottieSettings.viewport.sizes.end : 100;
    this.state.animationSpeed = (_lottieSettings$play_ = lottieSettings.play_speed) === null || _lottieSettings$play_ === void 0 ? void 0 : _lottieSettings$play_.size;
    this.state.linkTimeout = lottieSettings.link_timeout;
    this.state.caption = lottieSettings.caption;
    this.state.loop = lottieSettings.loop;
  }

  setAnimationFirstFrame() {
    const frame = this.getAnimationFrames();
    /*
    We need to subtract the initial first frame from the first frame for handling scenarios
    when the animation first frame is not 0, this way we always get the relevant first frame.
    example: when start point is 70 and initial first frame is 60, the animation should start at 10.
     */

    frame.first = frame.first - this.lottie.__initialFirstFrame;
    this.lottie.goToAndStop(frame.first, true);
  }

  initAnimationTrigger() {
    const lottieSettings = this.getLottieSettings();

    switch (lottieSettings.trigger) {
      case 'none':
        this.playLottie();
        break;

      case 'arriving_to_viewport':
        this.playAnimationWhenArrivingToViewport();
        break;

      case 'bind_to_scroll':
        this.playAnimationWhenBindToScroll();
        break;

      case 'on_click':
        this.bindAnimationClickEvents();
        break;

      case 'on_hover':
        this.bindAnimationHoverEvents();
        break;
    }
  }

  playAnimationWhenArrivingToViewport() {
    const offset = this.getOffset();
    this.intersectionObservers.animation.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `${offset.end}% 0% ${offset.start}%`,
      callback: event => {
        if (event.isInViewport) {
          this.state.isInViewport = true;
          this.playLottie();
        } else {
          this.state.isInViewport = false;
          this.lottie.pause();
        }
      }
    });
    this.intersectionObservers.animation.element = this.elements.$widgetWrapper[0];
    this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element);
  }

  getOffset() {
    const lottieSettings = this.getLottieSettings(),
          start = -lottieSettings.viewport.sizes.start || 0,
          end = -(100 - lottieSettings.viewport.sizes.end) || 0;
    return {
      start,
      end
    };
  }

  playAnimationWhenBindToScroll() {
    const lottieSettings = this.getLottieSettings(),
          offset = this.getOffset(); // Generate scroll detection by Intersection Observer API

    this.intersectionObservers.animation.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `${offset.end}% 0% ${offset.start}%`,
      callback: event => this.onLottieIntersection(event)
    });
    this.intersectionObservers.animation.element = 'viewport' === lottieSettings.effects_relative_to ? this.elements.$widgetWrapper[0] : document.documentElement;
    this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element);
  }

  updateAnimationByScrollPosition() {
    const lottieSettings = this.getLottieSettings();
    let percentage;

    if ('page' === lottieSettings.effects_relative_to) {
      percentage = this.getLottiePagePercentage();
    } else if ('fixed' === this.getCurrentDeviceSetting('_position')) {
      percentage = this.getLottieViewportHeightPercentage();
    } else {
      percentage = this.getLottieViewportPercentage();
    }

    let nextFrameToPlay = this.getFrameNumberByPercent(percentage);
    nextFrameToPlay = nextFrameToPlay - this.lottie.__initialFirstFrame;
    this.lottie.goToAndStop(nextFrameToPlay, true);
  }

  getLottieViewportPercentage() {
    return elementorModules.utils.Scroll.getElementViewportPercentage(this.elements.$widgetWrapper, this.getOffset());
  }

  getLottiePagePercentage() {
    return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset());
  }

  getLottieViewportHeightPercentage() {
    return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset(), window.innerHeight);
  }
  /**
   * @param {number} percent - Percent value between 0-100
   */


  getFrameNumberByPercent(percent) {
    const frame = this.getAnimationFrames();
    /*
    In mobile devices the document height can be 'stretched' at the top and bottom points of the document,
    this 'stretched' will make percent to be either negative or larger than 100, therefore we need to limit percent between 0-100.
    */

    percent = Math.min(100, Math.max(0, percent)); // Getting frame number by percent of range, considering start/end frame values if exist.

    return frame.first + (frame.last - frame.first) * percent / 100;
  }

  getAnimationFrames() {
    const lottieSettings = this.getLottieSettings(),
          currentFrame = this.getAnimationCurrentFrame(),
          startPoint = this.getAnimationRange().start,
          endPoint = this.getAnimationRange().end;
    let firstFrame = this.lottie.__initialFirstFrame,
        lastFrame = 0 === this.lottie.__initialFirstFrame ? this.lottie.__initialTotalFrames : this.lottie.__initialFirstFrame + this.lottie.__initialTotalFrames; // Limiting min start point to animation first frame.

    if (startPoint && startPoint > firstFrame) {
      firstFrame = startPoint;
    } // limiting max end point to animation last frame.


    if (endPoint && endPoint < lastFrame) {
      lastFrame = endPoint;
    }
    /*
    Getting the relevant first frame after loop complete and when not bind to scroll.
    when the animation is in progress (no when a new loop start), the first frame should be the current frame.
    when the trigger is bind_to_scroll we DON'T need to get this functionality.
    */


    if (!this.state.isNewLoopCycle && 'bind_to_scroll' !== lottieSettings.trigger) {
      // When we have a custom start point, we need to check if the start point is larger than the last pause stop of the animation.
      firstFrame = startPoint && startPoint > currentFrame ? startPoint : currentFrame;
    } // Reverse Mode.


    if ('backward' === this.state.animationDirection && this.isReverseMode()) {
      firstFrame = currentFrame;
      lastFrame = startPoint && startPoint > this.lottie.__initialFirstFrame ? startPoint : this.lottie.__initialFirstFrame;
    }

    return {
      first: firstFrame,
      last: lastFrame,
      current: currentFrame,
      total: this.lottie.__initialTotalFrames
    };
  }

  getAnimationRange() {
    const lottieSettings = this.getLottieSettings();
    return {
      start: this.getInitialFrameNumberByPercent(lottieSettings.start_point.size),
      end: this.getInitialFrameNumberByPercent(lottieSettings.end_point.size)
    };
  }

  getInitialFrameNumberByPercent(percent) {
    percent = Math.min(100, Math.max(0, percent));
    return this.lottie.__initialFirstFrame + (this.lottie.__initialTotalFrames - this.lottie.__initialFirstFrame) * percent / 100;
  }

  getAnimationCurrentFrame() {
    // When pausing the animation (when out of viewport) the first frame of the animation changes.
    return 0 === this.lottie.firstFrame ? this.lottie.currentFrame : this.lottie.firstFrame + this.lottie.currentFrame;
  }

  setLinkTimeout() {
    var _lottieSettings$custo;

    const lottieSettings = this.getLottieSettings();

    if ('on_click' === lottieSettings.trigger && (_lottieSettings$custo = lottieSettings.custom_link) !== null && _lottieSettings$custo !== void 0 && _lottieSettings$custo.url && lottieSettings.link_timeout) {
      this.elements.$containerLink.on('click', event => {
        event.preventDefault();

        if (!this.isEdit) {
          setTimeout(() => {
            const tabTarget = 'on' === lottieSettings.custom_link.is_external ? '_blank' : '_self';
            window.open(lottieSettings.custom_link.url, tabTarget);
          }, lottieSettings.link_timeout);
        }
      });
    }
  }

  bindAnimationClickEvents() {
    this.listeners.elements.$container.triggerAnimationClick = () => {
      this.playLottie();
    };

    this.addSessionEventListener(this.elements.$container, 'click', this.listeners.elements.$container.triggerAnimationClick);
  }

  getLottieSettings() {
    const lottieSettings = this.getElementSettings();
    return { ...lottieSettings,
      lazyload: 'yes' === lottieSettings.lazyload,
      loop: 'yes' === lottieSettings.loop
    };
  }

  playLottie() {
    const frame = this.getAnimationFrames();
    this.lottie.stop();
    this.lottie.playSegments([frame.first, frame.last], true); // We reset the loop cycle state after playing the animation.

    this.state.isNewLoopCycle = false;
  }

  bindAnimationHoverEvents() {
    this.createAnimationHoverInEvents();
    this.createAnimationHoverOutEvents();
  }

  createAnimationHoverInEvents() {
    const lottieSettings = this.getLottieSettings(),
          $widgetArea = this.getHoverAreaElement();
    this.state.hoverArea = lottieSettings.hover_area;

    this.listeners.elements.$widgetArea.triggerAnimationHoverIn = () => {
      this.state.animationDirection = 'forward';
      this.playLottie();
    };

    this.addSessionEventListener($widgetArea, 'mouseenter', this.listeners.elements.$widgetArea.triggerAnimationHoverIn);
  }
  /**
   * @param {jQuery} $el
   * @param {string} event - event type
   * @param {Function} callback
   */


  addSessionEventListener($el, event, callback) {
    $el.on(event, callback);
    this.listeners.collection.push({
      $el,
      event,
      callback
    });
  }

  createAnimationHoverOutEvents() {
    const lottieSettings = this.getLottieSettings(),
          $widgetArea = this.getHoverAreaElement();

    if ('pause' === lottieSettings.on_hover_out || 'reverse' === lottieSettings.on_hover_out) {
      this.state.hoverOutMode = lottieSettings.on_hover_out;

      this.listeners.elements.$widgetArea.triggerAnimationHoverOut = () => {
        if ('pause' === lottieSettings.on_hover_out) {
          this.lottie.pause();
        } else {
          this.state.animationDirection = 'backward';
          this.playLottie();
        }
      };

      this.addSessionEventListener($widgetArea, 'mouseleave', this.listeners.elements.$widgetArea.triggerAnimationHoverOut);
    }
  }

  getHoverAreaElement() {
    const lottieSettings = this.getLottieSettings();

    if ('section' === lottieSettings.hover_area) {
      return this.elements.$sectionParent;
    } else if ('column' === lottieSettings.hover_area) {
      return this.elements.$columnParent;
    }

    return this.elements.$container;
  }

  setLoopOnAnimationComplete() {
    const lottieSettings = this.getLottieSettings();
    this.state.isNewLoopCycle = true;

    if (lottieSettings.loop && !this.isReverseMode()) {
      this.setLoopWhenNotReverse();
    } else if (lottieSettings.loop && this.isReverseMode()) {
      this.setReverseAnimationOnLoop();
    } else if (!lottieSettings.loop && this.isReverseMode()) {
      this.setReverseAnimationOnSingleTrigger();
    }
  }

  isReverseMode() {
    const lottieSettings = this.getLottieSettings();
    return 'yes' === lottieSettings.reverse_animation || 'reverse' === lottieSettings.on_hover_out && 'backward' === this.state.animationDirection;
  }

  setLoopWhenNotReverse() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.number_of_times > 0) {
      this.state.playAnimationCount++;

      if (this.state.playAnimationCount < lottieSettings.number_of_times) {
        this.playLottie();
      } else {
        this.state.playAnimationCount = 0;
      }
    } else {
      this.playLottie();
    }
  }

  setReverseAnimationOnLoop() {
    const lottieSettings = this.getLottieSettings();
    /*
    We trigger the reverse animation:
    either when we don't have any value in the 'Number of Times" field, and then it will be an infinite forward/backward loop,
    or, when we have a value in the 'Number of Times" field and then we need to limit the number of times of the loop cycles.
     */

    if (!lottieSettings.number_of_times || this.state.playAnimationCount < lottieSettings.number_of_times) {
      this.state.animationDirection = 'forward' === this.state.animationDirection ? 'backward' : 'forward';
      this.playLottie();
      /*
      We need to increment the count only on the backward movements,
      because forward movement + backward movement are equal together to one full movement count.
      */

      if ('backward' === this.state.animationDirection) {
        this.state.playAnimationCount++;
      }
    } else {
      // Reset the values for the loop counting for the next trigger.
      this.state.playAnimationCount = 0;
      this.state.animationDirection = 'forward';
    }
  }

  setReverseAnimationOnSingleTrigger() {
    if (this.state.playAnimationCount < 1) {
      this.state.playAnimationCount++;
      this.state.animationDirection = 'backward';
      this.playLottie();
    } else if (this.state.playAnimationCount >= 1 && 'forward' === this.state.animationDirection) {
      this.state.animationDirection = 'backward';
      this.playLottie();
    } else {
      this.state.playAnimationCount = 0;
      this.state.animationDirection = 'forward';
    }
  }

  setAnimationSpeed() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.play_speed) {
      this.lottie.setSpeed(lottieSettings.play_speed.size);
    }
  }

  onElementChange() {
    this.updateLottieValues();
    this.resetAnimationTrigger();
  }

  updateLottieValues() {
    var _lottieSettings$play_2;

    const lottieSettings = this.getLottieSettings(),
          valuesComparison = [{
      sourceVal: (_lottieSettings$play_2 = lottieSettings.play_speed) === null || _lottieSettings$play_2 === void 0 ? void 0 : _lottieSettings$play_2.size,
      stateProp: 'animationSpeed',
      callback: () => this.setAnimationSpeed()
    }, {
      sourceVal: lottieSettings.link_timeout,
      stateProp: 'linkTimeout',
      callback: () => this.setLinkTimeout()
    }, {
      sourceVal: lottieSettings.caption,
      stateProp: 'caption',
      callback: () => this.setCaption()
    }, {
      sourceVal: lottieSettings.effects_relative_to,
      stateProp: 'effectsRelativeTo',
      callback: () => this.updateAnimationByScrollPosition()
    }, {
      sourceVal: lottieSettings.loop,
      stateProp: 'loop',
      callback: () => this.onLoopStateChange()
    }];
    valuesComparison.forEach(item => {
      if ('undefined' !== typeof item.sourceVal && item.sourceVal !== this.state[item.stateProp]) {
        this.state[item.stateProp] = item.sourceVal;
        item.callback();
      }
    });
  }

  onLoopStateChange() {
    const isInActiveViewportMode = 'arriving_to_viewport' === this.state.currentAnimationTrigger && this.state.isInViewport;

    if (this.state.loop && (isInActiveViewportMode || 'none' === this.state.currentAnimationTrigger)) {
      this.playLottie();
    }
  }

  resetAnimationTrigger() {
    const lottieSettings = this.getLottieSettings(),
          isTriggerChange = lottieSettings.trigger !== this.state.currentAnimationTrigger,
          isViewportOffsetChange = lottieSettings.viewport ? this.isViewportOffsetChange() : false,
          isHoverOutModeChange = lottieSettings.on_hover_out ? this.isHoverOutModeChange() : false,
          isHoverAreaChange = lottieSettings.hover_area ? this.isHoverAreaChange() : false;

    if (isTriggerChange || isViewportOffsetChange || isHoverOutModeChange || isHoverAreaChange) {
      this.removeAnimationFrameRequests();
      this.removeObservers();
      this.removeEventListeners();
      this.initAnimationTrigger();
    }
  }

  isViewportOffsetChange() {
    const lottieSettings = this.getLottieSettings(),
          isStartOffsetChange = lottieSettings.viewport.sizes.start !== this.state.viewportOffset.start,
          isEndOffsetChange = lottieSettings.viewport.sizes.end !== this.state.viewportOffset.end;
    return isStartOffsetChange || isEndOffsetChange;
  }

  isHoverOutModeChange() {
    const lottieSettings = this.getLottieSettings();
    return lottieSettings.on_hover_out !== this.state.hoverOutMode;
  }

  isHoverAreaChange() {
    const lottieSettings = this.getLottieSettings();
    return lottieSettings.hover_area !== this.state.hoverArea;
  }

  removeEventListeners() {
    this.listeners.collection.forEach(listener => {
      listener.$el.off(listener.event, null, listener.callback);
    });
  }

  removeObservers() {
    // Removing all observers.
    for (const type in this.intersectionObservers) {
      if (this.intersectionObservers[type].observer && this.intersectionObservers[type].element) {
        this.intersectionObservers[type].observer.unobserve(this.intersectionObservers[type].element);
      }
    }
  }

  removeAnimationFrameRequests() {
    cancelAnimationFrame(this.animationFrameRequest.timer);
  }

  onDestroy() {
    super.onDestroy();
    this.destroyLottie();
  }

  destroyLottie() {
    this.removeAnimationFrameRequests();
    this.removeObservers();
    this.removeEventListeners();
    this.elements.$animation.removeData('lottie');

    if (this.lottie) {
      this.lottie.destroy();
    }
  }

  onLottieDomLoaded() {
    this.saveInitialValues();
    this.setAnimationSpeed();
    this.setLinkTimeout();
    this.setCaption();
    this.setAnimationFirstFrame();
    this.initAnimationTrigger();
  }

  onComplete() {
    this.setLoopOnAnimationComplete();
  }

  onLottieIntersection(event) {
    if (event.isInViewport) {
      /*
      It's required to update the animation progress on first load when lottie is inside the viewport on load
      but, there is a problem when the browser is refreshed when the scroll bar is not in 0 position,
      in this scenario, after the refresh the browser will trigger 2 scroll events
      one trigger on immediate load and second after a f ew ms to move the scroll bar to previous position (before refresh)
      therefore, we use the this.state.isAnimationScrollUpdateNeededOnFirstLoad flag
      to make sure that this.updateAnimationByScrollPosition() function will be triggered only once.
       */
      if (this.state.isAnimationScrollUpdateNeededOnFirstLoad) {
        this.state.isAnimationScrollUpdateNeededOnFirstLoad = false;
        this.updateAnimationByScrollPosition();
      }

      this.animationFrameRequest.timer = requestAnimationFrame(() => this.onAnimationFrameRequest());
    } else {
      const frame = this.getAnimationFrames(),
            finalFrame = 'up' === event.intersectionScrollDirection ? frame.first : frame.last;
      this.state.isAnimationScrollUpdateNeededOnFirstLoad = false;
      cancelAnimationFrame(this.animationFrameRequest.timer); // Set the animation values to min/max when out of viewport.

      this.lottie.goToAndStop(finalFrame, true);
    }
  }

  onAnimationFrameRequest() {
    // Making calculation only when there is a change with the scroll position.
    if (window.scrollY !== this.animationFrameRequest.lastScrollY) {
      this.updateAnimationByScrollPosition();
      this.animationFrameRequest.lastScrollY = window.scrollY;
    }

    this.animationFrameRequest.timer = requestAnimationFrame(() => this.onAnimationFrameRequest());
  }

}

exports.default = lottieHandler;

/***/ }),

/***/ "../modules/nav-menu/assets/js/frontend/frontend-legacy.js":
/*!*****************************************************************!*\
  !*** ../modules/nav-menu/assets/js/frontend/frontend-legacy.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _navMenu = _interopRequireDefault(__webpack_require__(/*! ./handlers/nav-menu */ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();

    if (jQuery.fn.smartmenus) {
      // Override the default stupid detection
      jQuery.SmartMenus.prototype.isCSSOn = function () {
        return true;
      };

      if (elementorFrontend.config.is_rtl) {
        jQuery.fn.smartmenus.defaults.rightToLeftSubMenus = true;
      }
    }

    elementorFrontend.elementsHandler.attachHandler('nav-menu', _navMenu.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js":
/*!*******************************************************************!*\
  !*** ../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  stretchElement: null,

  getDefaultSettings() {
    return {
      selectors: {
        menu: '.elementor-nav-menu',
        anchorLink: '.elementor-nav-menu--main .elementor-item-anchor',
        dropdownMenu: '.elementor-nav-menu__container.elementor-nav-menu--dropdown',
        menuToggle: '.elementor-menu-toggle'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$menu = this.$element.find(selectors.menu);
    elements.$anchorLink = this.$element.find(selectors.anchorLink);
    elements.$dropdownMenu = this.$element.find(selectors.dropdownMenu);
    elements.$dropdownMenuFinalItems = elements.$dropdownMenu.find('.menu-item:not(.menu-item-has-children) > a');
    elements.$menuToggle = this.$element.find(selectors.menuToggle);
    elements.$links = elements.$dropdownMenu.find('a.elementor-item');
    return elements;
  },

  bindEvents() {
    if (!this.elements.$menu.length) {
      return;
    }

    this.elements.$menuToggle.on('click', this.toggleMenu.bind(this));

    if (this.getElementSettings('full_width')) {
      this.elements.$dropdownMenuFinalItems.on('click', this.toggleMenu.bind(this, false));
    }

    elementorFrontend.addListenerOnce(this.$element.data('model-cid'), 'resize', this.stretchMenu);
  },

  initStretchElement() {
    this.stretchElement = new elementorModules.frontend.tools.StretchElement({
      element: this.elements.$dropdownMenu
    });
  },

  toggleNavLinksTabIndex(enabled = true) {
    this.elements.$links.attr('tabindex', enabled ? 0 : -1);
  },

  toggleMenu(show) {
    var isDropdownVisible = this.elements.$menuToggle.hasClass('elementor-active');

    if ('boolean' !== typeof show) {
      show = !isDropdownVisible;
    }

    this.elements.$menuToggle.attr('aria-expanded', show);
    this.elements.$dropdownMenu.attr('aria-hidden', !show);
    this.elements.$menuToggle.toggleClass('elementor-active', show);
    this.toggleNavLinksTabIndex(show);

    if (show && this.getElementSettings('full_width')) {
      this.stretchElement.stretch();
    }
  },

  followMenuAnchors() {
    var self = this;
    self.elements.$anchorLink.each(function () {
      if (location.pathname === this.pathname && '' !== this.hash) {
        self.followMenuAnchor(jQuery(this));
      }
    });
  },

  followMenuAnchor($element) {
    const anchorSelector = $element[0].hash;
    let offset = -300,
        $anchor;

    try {
      // `decodeURIComponent` for UTF8 characters in the hash.
      $anchor = jQuery(decodeURIComponent(anchorSelector));
    } catch (e) {
      return;
    }

    if (!$anchor.length) {
      return;
    }

    if (!$anchor.hasClass('elementor-menu-anchor')) {
      var halfViewport = jQuery(window).height() / 2;
      offset = -$anchor.outerHeight() + halfViewport;
    }

    elementorFrontend.waypoint($anchor, function (direction) {
      if ('down' === direction) {
        $element.addClass('elementor-item-active');
      } else {
        $element.removeClass('elementor-item-active');
      }
    }, {
      offset: '50%',
      triggerOnce: false
    });
    elementorFrontend.waypoint($anchor, function (direction) {
      if ('down' === direction) {
        $element.removeClass('elementor-item-active');
      } else {
        $element.addClass('elementor-item-active');
      }
    }, {
      offset,
      triggerOnce: false
    });
  },

  stretchMenu() {
    if (this.getElementSettings('full_width')) {
      this.stretchElement.stretch();
      this.elements.$dropdownMenu.css('top', this.elements.$menuToggle.outerHeight());
    } else {
      this.stretchElement.reset();
    }
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);

    if (!this.elements.$menu.length) {
      return;
    }

    const elementSettings = this.getElementSettings(),
          iconValue = elementSettings.submenu_icon.value;
    let subIndicatorsContent = '';

    if (iconValue) {
      // The value of iconValue can be either className inside the editor or a markup in the frontend.
      subIndicatorsContent = iconValue.indexOf('<') > -1 ? iconValue : `<i class="${iconValue}"></i>`;
    } // subIndicators param - Added for backwards compatibility:
    // If the old 'indicator' control value = 'none', the <span class="sub-arrow"> wrapper element is removed


    this.elements.$menu.smartmenus({
      subIndicators: '' !== subIndicatorsContent,
      subIndicatorsText: subIndicatorsContent,
      subIndicatorsPos: 'append',
      subMenusMaxWidth: '1000px'
    });
    this.initStretchElement();
    this.stretchMenu();

    if (!elementorFrontend.isEditMode()) {
      this.followMenuAnchors();
    }
  },

  onElementChange(propertyName) {
    if ('full_width' === propertyName) {
      this.stretchMenu();
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/document.js":
/*!*******************************************************!*\
  !*** ../modules/popup/assets/js/frontend/document.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _triggers = _interopRequireDefault(__webpack_require__(/*! ./triggers */ "../modules/popup/assets/js/frontend/triggers.js"));

var _timing = _interopRequireDefault(__webpack_require__(/*! ./timing */ "../modules/popup/assets/js/frontend/timing.js"));

var _eIcons = __webpack_require__(/*! @elementor-pro/e-icons */ "../assets/dev/js/frontend/utils/icons/e-icons.js");

// Temporary solution, when core 3.5.0 will be the minimum version, is should be replaced with @elementor/e-icons.
class _default extends elementorModules.frontend.Document {
  bindEvents() {
    const openSelector = this.getDocumentSettings('open_selector');

    if (openSelector) {
      elementorFrontend.elements.$body.on('click', openSelector, this.showModal.bind(this));
    }
  }

  startTiming() {
    const timing = new _timing.default(this.getDocumentSettings('timing'), this);

    if (timing.check()) {
      this.initTriggers();
    }
  }

  initTriggers() {
    this.triggers = new _triggers.default(this.getDocumentSettings('triggers'), this);
  }

  showModal(avoidMultiple) {
    const settings = this.getDocumentSettings();

    if (!this.isEdit) {
      if (!elementorFrontend.isWPPreviewMode()) {
        if (this.getStorage('disable')) {
          return;
        }

        if (avoidMultiple && elementorProFrontend.modules.popup.popupPopped && settings.avoid_multiple_popups) {
          return;
        }
      } // A clean copy of the element without previous initializations and events


      this.$element = jQuery(this.elementHTML);
      this.elements.$elements = this.$element.find(this.getSettings('selectors.elements'));
    }

    const modal = this.getModal(),
          $closeButton = modal.getElements('closeButton');
    modal.setMessage(this.$element).show();

    if (!this.isEdit) {
      if (settings.close_button_delay) {
        $closeButton.hide();
        clearTimeout(this.closeButtonTimeout);
        this.closeButtonTimeout = setTimeout(() => $closeButton.show(), settings.close_button_delay * 1000);
      }

      super.runElementsHandlers();
    }

    this.setEntranceAnimation();

    if (!settings.timing || !settings.timing.times_count) {
      this.countTimes();
    }

    elementorProFrontend.modules.popup.popupPopped = true;
  }

  setEntranceAnimation() {
    const $widgetContent = this.getModal().getElements('widgetContent'),
          settings = this.getDocumentSettings(),
          newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'entrance_animation');

    if (this.currentAnimation) {
      $widgetContent.removeClass(this.currentAnimation);
    }

    this.currentAnimation = newAnimation;

    if (!newAnimation) {
      return;
    }

    const animationDuration = settings.entrance_animation_duration.size;
    $widgetContent.addClass(newAnimation);
    setTimeout(() => $widgetContent.removeClass(newAnimation), animationDuration * 1000);
  }

  setExitAnimation() {
    const modal = this.getModal(),
          settings = this.getDocumentSettings(),
          $widgetContent = modal.getElements('widgetContent'),
          newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'exit_animation'),
          animationDuration = newAnimation ? settings.entrance_animation_duration.size : 0;
    setTimeout(() => {
      if (newAnimation) {
        $widgetContent.removeClass(newAnimation + ' reverse');
      }

      if (!this.isEdit) {
        this.$element.remove();
        modal.getElements('widget').hide();
      }
    }, animationDuration * 1000);

    if (newAnimation) {
      $widgetContent.addClass(newAnimation + ' reverse');
    }
  }

  initModal() {
    let modal;

    this.getModal = () => {
      if (!modal) {
        const settings = this.getDocumentSettings(),
              id = this.getSettings('id'),
              triggerPopupEvent = eventType => elementorFrontend.elements.$document.trigger('elementor/popup/' + eventType, [id, this]);

        let classes = 'elementor-popup-modal';

        if (settings.classes) {
          classes += ' ' + settings.classes;
        }

        const modalProperties = {
          id: 'elementor-popup-modal-' + id,
          className: classes,
          closeButton: true,
          preventScroll: settings.prevent_scroll,
          onShow: () => triggerPopupEvent('show'),
          onHide: () => triggerPopupEvent('hide'),
          effects: {
            hide: () => {
              if (settings.timing && settings.timing.times_count) {
                this.countTimes();
              }

              this.setExitAnimation();
            },
            show: 'show'
          },
          hide: {
            auto: !!settings.close_automatically,
            autoDelay: settings.close_automatically * 1000,
            onBackgroundClick: !settings.prevent_close_on_background_click,
            onOutsideClick: !settings.prevent_close_on_background_click,
            onEscKeyPress: !settings.prevent_close_on_esc_key,
            ignore: '.flatpickr-calendar'
          },
          position: {
            enable: false
          }
        };

        if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg) {
          modalProperties.closeButtonOptions = {
            iconElement: _eIcons.close.element
          };
        } // This line should be moved to the condition above, as an 'else' case, once the core minimum version is 3.5.0.


        modalProperties.closeButtonClass = 'eicon-close';
        modal = elementorFrontend.getDialogsManager().createWidget('lightbox', modalProperties);
        modal.getElements('widgetContent').addClass('animated');
        const $closeButton = modal.getElements('closeButton');

        if (this.isEdit) {
          $closeButton.off('click');

          modal.hide = () => {};
        }

        this.setCloseButtonPosition();
      }

      return modal;
    };
  }

  setCloseButtonPosition() {
    const modal = this.getModal(),
          closeButtonPosition = this.getDocumentSettings('close_button_position'),
          $closeButton = modal.getElements('closeButton');
    $closeButton.appendTo(modal.getElements('outside' === closeButtonPosition ? 'widget' : 'widgetContent'));
  }

  disable() {
    this.setStorage('disable', true);
  }

  setStorage(key, value, options) {
    elementorFrontend.storage.set(`popup_${this.getSettings('id')}_${key}`, value, options);
  }

  getStorage(key, options) {
    return elementorFrontend.storage.get(`popup_${this.getSettings('id')}_${key}`, options);
  }

  countTimes() {
    const displayTimes = this.getStorage('times') || 0;
    this.setStorage('times', displayTimes + 1);
  }

  runElementsHandlers() {}

  async onInit() {
    super.onInit(); // In case that the library was not loaded, it indicates a Core version that enables dynamic loading.

    if (!window.DialogsManager) {
      await elementorFrontend.utils.assetsLoader.load('script', 'dialog');
    }

    this.initModal();

    if (this.isEdit) {
      this.showModal();
      return;
    }

    this.$element.show().remove();
    this.elementHTML = this.$element[0].outerHTML;

    if (elementorFrontend.isEditMode()) {
      return;
    }

    if (elementorFrontend.isWPPreviewMode() && elementorFrontend.config.post.id === this.getSettings('id')) {
      this.showModal();
      return;
    }

    this.startTiming();
  }

  onSettingsChange(model) {
    const changedKey = Object.keys(model.changed)[0];

    if (-1 !== changedKey.indexOf('entrance_animation')) {
      this.setEntranceAnimation();
    }

    if ('exit_animation' === changedKey) {
      this.setExitAnimation();
    }

    if ('close_button_position' === changedKey) {
      this.setCloseButtonPosition();
    }
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/frontend-legacy.js":
/*!**************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/frontend-legacy.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../modules/popup/assets/js/frontend/document.js"));

var _formsAction = _interopRequireDefault(__webpack_require__(/*! ./handlers/forms-action */ "../modules/popup/assets/js/frontend/handlers/forms-action.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.hooks.addAction('elementor/frontend/documents-manager/init-classes', this.addDocumentClass);
    elementorFrontend.elementsHandler.attachHandler('form', _formsAction.default);
    elementorFrontend.on('components:init', () => this.onFrontendComponentsInit());

    if (!elementorFrontend.isEditMode() && !elementorFrontend.isWPPreviewMode()) {
      this.setViewsAndSessions();
    }
  }

  addDocumentClass(documentsManager) {
    documentsManager.addDocumentClass('popup', _document.default);
  }

  setViewsAndSessions() {
    const pageViews = elementorFrontend.storage.get('pageViews') || 0;
    elementorFrontend.storage.set('pageViews', pageViews + 1);
    const activeSession = elementorFrontend.storage.get('activeSession', {
      session: true
    });

    if (!activeSession) {
      elementorFrontend.storage.set('activeSession', true, {
        session: true
      });
      const sessions = elementorFrontend.storage.get('sessions') || 0;
      elementorFrontend.storage.set('sessions', sessions + 1);
    }
  }

  showPopup(settings) {
    const popup = elementorFrontend.documentsManager.documents[settings.id];

    if (!popup) {
      return;
    }

    const modal = popup.getModal();

    if (settings.toggle && modal.isVisible()) {
      modal.hide();
    } else {
      popup.showModal();
    }
  }

  closePopup(settings, event) {
    const popupID = jQuery(event.target).parents('[data-elementor-type="popup"]').data('elementorId');

    if (!popupID) {
      return;
    }

    const document = elementorFrontend.documentsManager.documents[popupID];
    document.getModal().hide();

    if (settings.do_not_show_again) {
      document.disable();
    }
  }

  onFrontendComponentsInit() {
    elementorFrontend.utils.urlActions.addAction('popup:open', settings => this.showPopup(settings));
    elementorFrontend.utils.urlActions.addAction('popup:close', (settings, event) => this.closePopup(settings, event));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/handlers/forms-action.js":
/*!********************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/handlers/forms-action.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$form = this.$element.find(selectors.form);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('submit_success', this.handleFormAction);
  },

  handleFormAction(event, response) {
    if ('undefined' === typeof response.data.popup) {
      return;
    }

    const popupSettings = response.data.popup;

    if ('open' === popupSettings.action) {
      return elementorProFrontend.modules.popup.showPopup(popupSettings);
    }

    setTimeout(() => {
      return elementorProFrontend.modules.popup.closePopup(popupSettings, event);
    }, 1000);
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing.js":
/*!*****************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _pageViews = _interopRequireDefault(__webpack_require__(/*! ./timing/page-views */ "../modules/popup/assets/js/frontend/timing/page-views.js"));

var _sessions = _interopRequireDefault(__webpack_require__(/*! ./timing/sessions */ "../modules/popup/assets/js/frontend/timing/sessions.js"));

var _url = _interopRequireDefault(__webpack_require__(/*! ./timing/url */ "../modules/popup/assets/js/frontend/timing/url.js"));

var _sources = _interopRequireDefault(__webpack_require__(/*! ./timing/sources */ "../modules/popup/assets/js/frontend/timing/sources.js"));

var _loggedIn = _interopRequireDefault(__webpack_require__(/*! ./timing/logged-in */ "../modules/popup/assets/js/frontend/timing/logged-in.js"));

var _devices = _interopRequireDefault(__webpack_require__(/*! ./timing/devices */ "../modules/popup/assets/js/frontend/timing/devices.js"));

var _times = _interopRequireDefault(__webpack_require__(/*! ./timing/times */ "../modules/popup/assets/js/frontend/timing/times.js"));

var _browsers = _interopRequireDefault(__webpack_require__(/*! ./timing/browsers */ "../modules/popup/assets/js/frontend/timing/browsers.js"));

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
    this.timingClasses = {
      page_views: _pageViews.default,
      sessions: _sessions.default,
      url: _url.default,
      sources: _sources.default,
      logged_in: _loggedIn.default,
      devices: _devices.default,
      times: _times.default,
      browsers: _browsers.default
    };
  }

  check() {
    const settings = this.getSettings();
    let checkPassed = true;
    jQuery.each(this.timingClasses, (key, TimingClass) => {
      if (!settings[key]) {
        return;
      }

      const timing = new TimingClass(settings, this.document);

      if (!timing.check()) {
        checkPassed = false;
      }
    });
    return checkPassed;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/base.js":
/*!**********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/base.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
  }

  getTimingSetting(settingKey) {
    return this.getSettings(this.getName() + '_' + settingKey);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/browsers.js":
/*!**************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/browsers.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'browsers';
  }

  check() {
    if ('all' === this.getTimingSetting('browsers')) {
      return true;
    }

    const targetedBrowsers = this.getTimingSetting('browsers_options'),
          browserDetectionFlags = elementorFrontend.utils.environment;
    return targetedBrowsers.some(browserName => browserDetectionFlags[browserName]);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/devices.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/devices.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'devices';
  }

  check() {
    return -1 !== this.getTimingSetting('devices').indexOf(elementorFrontend.getCurrentDeviceMode());
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/logged-in.js":
/*!***************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/logged-in.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'logged_in';
  }

  check() {
    const userConfig = elementorFrontend.config.user;

    if (!userConfig) {
      return true;
    }

    if ('all' === this.getTimingSetting('users')) {
      return false;
    }

    const userRolesInHideList = this.getTimingSetting('roles').filter(role => -1 !== userConfig.roles.indexOf(role));
    return !userRolesInHideList.length;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/page-views.js":
/*!****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/page-views.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'page_views';
  }

  check() {
    const pageViews = elementorFrontend.storage.get('pageViews'),
          name = this.getName();
    let initialPageViews = this.document.getStorage(name + '_initialPageViews');

    if (!initialPageViews) {
      this.document.setStorage(name + '_initialPageViews', pageViews);
      initialPageViews = pageViews;
    }

    return pageViews - initialPageViews >= this.getTimingSetting('views');
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/sessions.js":
/*!**************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/sessions.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'sessions';
  }

  check() {
    const sessions = elementorFrontend.storage.get('sessions'),
          name = this.getName();
    let initialSessions = this.document.getStorage(name + '_initialSessions');

    if (!initialSessions) {
      this.document.setStorage(name + '_initialSessions', sessions);
      initialSessions = sessions;
    }

    return sessions - initialSessions >= this.getTimingSetting('sessions');
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/sources.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/sources.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'sources';
  }

  check() {
    const sources = this.getTimingSetting('sources');

    if (3 === sources.length) {
      return true;
    }

    const referrer = document.referrer.replace(/https?:\/\/(?:www\.)?/, ''),
          isInternal = 0 === referrer.indexOf(location.host.replace('www.', ''));

    if (isInternal) {
      return -1 !== sources.indexOf('internal');
    }

    if (-1 !== sources.indexOf('external')) {
      return true;
    }

    if (-1 !== sources.indexOf('search')) {
      return /^(google|yahoo|bing|yandex|baidu)\./.test(referrer);
    }

    return false;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/times.js":
/*!***********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/times.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'times';
  }

  check() {
    const displayTimes = this.document.getStorage('times') || 0;
    return this.getTimingSetting('times') > displayTimes;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/url.js":
/*!*********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/url.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'url';
  }

  check() {
    const url = this.getTimingSetting('url'),
          action = this.getTimingSetting('action'),
          referrer = document.referrer;

    if ('regex' !== action) {
      return 'hide' === action ^ -1 !== referrer.indexOf(url);
    }

    let regexp;

    try {
      regexp = new RegExp(url);
    } catch (e) {
      return false;
    }

    return regexp.test(referrer);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers.js":
/*!*******************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _pageLoad = _interopRequireDefault(__webpack_require__(/*! ./triggers/page-load */ "../modules/popup/assets/js/frontend/triggers/page-load.js"));

var _scrolling = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling */ "../modules/popup/assets/js/frontend/triggers/scrolling.js"));

var _scrollingTo = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling-to */ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js"));

var _click = _interopRequireDefault(__webpack_require__(/*! ./triggers/click */ "../modules/popup/assets/js/frontend/triggers/click.js"));

var _inactivity = _interopRequireDefault(__webpack_require__(/*! ./triggers/inactivity */ "../modules/popup/assets/js/frontend/triggers/inactivity.js"));

var _exitIntent = _interopRequireDefault(__webpack_require__(/*! ./triggers/exit-intent */ "../modules/popup/assets/js/frontend/triggers/exit-intent.js"));

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
    this.triggers = [];
    this.triggerClasses = {
      page_load: _pageLoad.default,
      scrolling: _scrolling.default,
      scrolling_to: _scrollingTo.default,
      click: _click.default,
      inactivity: _inactivity.default,
      exit_intent: _exitIntent.default
    };
    this.runTriggers();
  }

  runTriggers() {
    const settings = this.getSettings();
    jQuery.each(this.triggerClasses, (key, TriggerClass) => {
      if (!settings[key]) {
        return;
      }

      const trigger = new TriggerClass(settings, () => this.onTriggerFired());
      trigger.run();
      this.triggers.push(trigger);
    });
  }

  destroyTriggers() {
    this.triggers.forEach(trigger => trigger.destroy());
    this.triggers = [];
  }

  onTriggerFired() {
    this.document.showModal(true);
    this.destroyTriggers();
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/base.js":
/*!************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/base.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor(settings, callback) {
    super(settings);
    this.callback = callback;
  }

  getTriggerSetting(settingKey) {
    return this.getSettings(this.getName() + '_' + settingKey);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/click.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/click.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.checkClick = this.checkClick.bind(this);
    this.clicksCount = 0;
  }

  getName() {
    return 'click';
  }

  checkClick() {
    this.clicksCount++;

    if (this.clicksCount === this.getTriggerSetting('times')) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$body.on('click', this.checkClick);
  }

  destroy() {
    elementorFrontend.elements.$body.off('click', this.checkClick);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/exit-intent.js":
/*!*******************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/exit-intent.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.detectExitIntent = this.detectExitIntent.bind(this);
  }

  getName() {
    return 'exit_intent';
  }

  detectExitIntent(event) {
    if (event.clientY <= 0) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$window.on('mouseleave', this.detectExitIntent);
  }

  destroy() {
    elementorFrontend.elements.$window.off('mouseleave', this.detectExitIntent);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/inactivity.js":
/*!******************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/inactivity.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.restartTimer = this.restartTimer.bind(this);
  }

  getName() {
    return 'inactivity';
  }

  run() {
    this.startTimer();
    elementorFrontend.elements.$document.on('keypress mousemove', this.restartTimer);
  }

  startTimer() {
    this.timeOut = setTimeout(this.callback, this.getTriggerSetting('time') * 1000);
  }

  clearTimer() {
    clearTimeout(this.timeOut);
  }

  restartTimer() {
    this.clearTimer();
    this.startTimer();
  }

  destroy() {
    this.clearTimer();
    elementorFrontend.elements.$document.off('keypress mousemove', this.restartTimer);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/page-load.js":
/*!*****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/page-load.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  getName() {
    return 'page_load';
  }

  run() {
    this.timeout = setTimeout(this.callback, this.getTriggerSetting('delay') * 1000);
  }

  destroy() {
    clearTimeout(this.timeout);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js":
/*!********************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/scrolling-to.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  getName() {
    return 'scrolling_to';
  }

  run() {
    let $targetElement;

    try {
      $targetElement = jQuery(this.getTriggerSetting('selector'));
    } catch (e) {
      return;
    }

    this.waypointInstance = elementorFrontend.waypoint($targetElement, this.callback)[0];
  }

  destroy() {
    if (this.waypointInstance) {
      this.waypointInstance.destroy();
    }
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/scrolling.js":
/*!*****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/scrolling.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.checkScroll = this.checkScroll.bind(this);
    this.lastScrollOffset = 0;
  }

  getName() {
    return 'scrolling';
  }

  checkScroll() {
    const scrollDirection = scrollY > this.lastScrollOffset ? 'down' : 'up',
          requestedDirection = this.getTriggerSetting('direction');
    this.lastScrollOffset = scrollY;

    if (scrollDirection !== requestedDirection) {
      return;
    }

    if ('up' === scrollDirection) {
      this.callback();
      return;
    }

    const fullScroll = elementorFrontend.elements.$document.height() - innerHeight,
          scrollPercent = scrollY / fullScroll * 100;

    if (scrollPercent >= this.getTriggerSetting('offset')) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$window.on('scroll', this.checkScroll);
  }

  destroy() {
    elementorFrontend.elements.$window.off('scroll', this.checkScroll);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/frontend-legacy.js":
/*!**************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/frontend-legacy.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _cards = _interopRequireDefault(__webpack_require__(/*! ./handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js"));

var _portfolio = _interopRequireDefault(__webpack_require__(/*! ./handlers/portfolio */ "../modules/posts/assets/js/frontend/handlers/portfolio.js"));

var _loadMore = _interopRequireDefault(__webpack_require__(/*! ./handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    ['classic', 'full_content', 'cards'].forEach(skinName => {
      elementorFrontend.elementsHandler.attachHandler('posts', _loadMore.default, skinName);
    });
    elementorFrontend.elementsHandler.attachHandler('posts', _posts.default, 'classic');
    elementorFrontend.elementsHandler.attachHandler('posts', _posts.default, 'full_content');
    elementorFrontend.elementsHandler.attachHandler('posts', _cards.default, 'cards');
    elementorFrontend.elementsHandler.attachHandler('portfolio', _portfolio.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/cards.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/cards.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  getSkinPrefix() {
    return 'cards_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/load-more.js":
/*!*****************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/load-more.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class LoadMore extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        postsContainer: '.elementor-posts-container',
        loadMoreButton: '.elementor-button',
        loadMoreSpinnerWrapper: '.e-load-more-spinner',
        loadMoreSpinner: '.e-load-more-spinner i, .e-load-more-spinner svg',
        loadMoreAnchor: '.e-load-more-anchor'
      },
      classes: {
        loadMoreSpin: 'eicon-animation-spin',
        loadMoreIsLoading: 'e-load-more-pagination-loading',
        loadMorePaginationEnd: 'e-load-more-pagination-end',
        loadMoreNoSpinner: 'e-load-more-no-spinner'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      postsWidgetWrapper: this.$element[0],
      postsContainer: this.$element[0].querySelector(selectors.postsContainer),
      loadMoreButton: this.$element[0].querySelector(selectors.loadMoreButton),
      loadMoreSpinnerWrapper: this.$element[0].querySelector(selectors.loadMoreSpinnerWrapper),
      loadMoreSpinner: this.$element[0].querySelector(selectors.loadMoreSpinner),
      loadMoreAnchor: this.$element[0].querySelector(selectors.loadMoreAnchor)
    };
  }

  bindEvents() {
    super.bindEvents(); // Handle load more functionality for on-click type.

    if (!this.elements.loadMoreButton) {
      return;
    }

    this.elements.loadMoreButton.addEventListener('click', event => {
      if (this.isLoading) {
        return;
      }

      event.preventDefault();
      this.handlePostsQuery();
    });
  }

  onInit() {
    super.onInit();
    this.classes = this.getSettings('classes');
    this.isLoading = false;
    const paginationType = this.getElementSettings('pagination_type');

    if ('load_more_on_click' !== paginationType && 'load_more_infinite_scroll' !== paginationType) {
      return;
    }

    this.isInfinteScroll = 'load_more_infinite_scroll' === paginationType; // When spinner is not available, the button's text should not be hidden.

    this.isSpinnerAvailable = this.getElementSettings('load_more_spinner').value;

    if (!this.isSpinnerAvailable) {
      this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner);
    }

    if (this.isInfinteScroll) {
      this.handleInfiniteScroll();
    } else if (this.elements.loadMoreSpinnerWrapper) {
      // Instead of creating 2 spinners for on-click and infinity-scroll, one spinner will be used so it should be appended to the button in on-click mode.
      this.elements.loadMoreButton.insertAdjacentElement('beforeEnd', this.elements.loadMoreSpinnerWrapper);
    } // Set the post id and element id for the ajax request.


    this.elementId = this.getID();
    this.postId = elementorFrontendConfig.post.id; // Set the current page and last page for handling the load more post and when no more posts to show.

    this.currentPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-page'));
    this.maxPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-max-page'));

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  } // Handle load more functionality for infinity-scroll type.


  handleInfiniteScroll() {
    if (this.isEdit) {
      return;
    }

    this.observer = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (!event.isInViewport || this.isLoading) {
          return;
        } // When the observer is triggered it won't be triggered without scrolling, but sometimes there will be no scrollbar to trigger it again.


        this.observer.unobserve(this.elements.loadMoreAnchor);
        this.handlePostsQuery().then(() => {
          if (this.currentPage !== this.maxPage) {
            this.observer.observe(this.elements.loadMoreAnchor);
          }
        });
      }
    });
    this.observer.observe(this.elements.loadMoreAnchor);
  }

  handleUiBeforeLoading() {
    this.isLoading = true;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin);
    }

    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading);
  }

  handleUiAfterLoading() {
    this.isLoading = false;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin);
    }

    if (this.isInfinteScroll && this.elements.loadMoreSpinnerWrapper) {
      // Since the spinner has to be shown after the new content (posts), it should be appended after the anchor element.
      this.elements.loadMoreAnchor.insertAdjacentElement('afterend', this.elements.loadMoreSpinnerWrapper);
    }

    this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading);
  }

  handleUiWhenNoPosts() {
    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd);
  }

  handleSuccessFetch(result) {
    this.handleUiAfterLoading();
    const posts = result.querySelectorAll('.elementor-posts-container > article');
    const nextPageUrl = result.querySelector('.e-load-more-anchor').getAttribute('data-next-page'); // Converting HTMLCollection to an Array and iterate it.

    const postsHTML = [...posts].reduce((accumulator, post) => {
      return accumulator + post.outerHTML;
    }, '');
    this.elements.postsContainer.insertAdjacentHTML('beforeend', postsHTML);
    this.elements.loadMoreAnchor.setAttribute('data-page', this.currentPage);
    this.elements.loadMoreAnchor.setAttribute('data-next-page', nextPageUrl);

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  }

  handlePostsQuery() {
    this.handleUiBeforeLoading();
    this.currentPage++;
    const nextPageUrl = this.elements.loadMoreAnchor.getAttribute('data-next-page');
    return fetch(nextPageUrl).then(response => response.text()).then(html => {
      // Convert the HTML string into a document object
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, 'text/html');
      this.handleSuccessFetch(doc);
    }).catch(err => {
      console.warn('Something went wrong.', err);
    });
  }

}

exports.default = LoadMore;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/portfolio.js":
/*!*****************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/portfolio.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  isActive(settings) {
    return settings.$element.find('.elementor-portfolio').length;
  },

  getSkinPrefix() {
    return '';
  },

  getDefaultSettings() {
    var settings = _posts.default.prototype.getDefaultSettings.apply(this, arguments);

    settings.transitionDuration = 450;
    jQuery.extend(settings.classes, {
      active: 'elementor-active',
      item: 'elementor-portfolio-item',
      ghostItem: 'elementor-portfolio-ghost-item'
    });
    return settings;
  },

  getDefaultElements() {
    var elements = _posts.default.prototype.getDefaultElements.apply(this, arguments);

    elements.$filterButtons = this.$element.find('.elementor-portfolio__filter');
    return elements;
  },

  getOffset(itemIndex, itemWidth, itemHeight) {
    var settings = this.getSettings(),
        itemGap = this.elements.$postsContainer.width() / settings.colsCount - itemWidth;
    itemGap += itemGap / (settings.colsCount - 1);
    return {
      start: (itemWidth + itemGap) * (itemIndex % settings.colsCount),
      top: (itemHeight + itemGap) * Math.floor(itemIndex / settings.colsCount)
    };
  },

  getClosureMethodsNames() {
    var baseClosureMethods = _posts.default.prototype.getClosureMethodsNames.apply(this, arguments);

    return baseClosureMethods.concat(['onFilterButtonClick']);
  },

  filterItems(term) {
    var $posts = this.elements.$posts,
        activeClass = this.getSettings('classes.active'),
        termSelector = '.elementor-filter-' + term;

    if ('__all' === term) {
      $posts.addClass(activeClass);
      return;
    }

    $posts.not(termSelector).removeClass(activeClass);
    $posts.filter(termSelector).addClass(activeClass);
  },

  removeExtraGhostItems() {
    var settings = this.getSettings(),
        $shownItems = this.elements.$posts.filter(':visible'),
        emptyColumns = (settings.colsCount - $shownItems.length % settings.colsCount) % settings.colsCount,
        $ghostItems = this.elements.$postsContainer.find('.' + settings.classes.ghostItem);
    $ghostItems.slice(emptyColumns).remove();
  },

  handleEmptyColumns() {
    this.removeExtraGhostItems();
    var settings = this.getSettings(),
        $shownItems = this.elements.$posts.filter(':visible'),
        $ghostItems = this.elements.$postsContainer.find('.' + settings.classes.ghostItem),
        emptyColumns = (settings.colsCount - ($shownItems.length + $ghostItems.length) % settings.colsCount) % settings.colsCount;

    for (var i = 0; i < emptyColumns; i++) {
      this.elements.$postsContainer.append(jQuery('<div>', {
        class: settings.classes.item + ' ' + settings.classes.ghostItem
      }));
    }
  },

  showItems($activeHiddenItems) {
    $activeHiddenItems.show();
    setTimeout(function () {
      $activeHiddenItems.css({
        opacity: 1
      });
    });
  },

  hideItems($inactiveShownItems) {
    $inactiveShownItems.hide();
  },

  arrangeGrid() {
    var $ = jQuery,
        self = this,
        settings = self.getSettings(),
        $activeItems = self.elements.$posts.filter('.' + settings.classes.active),
        $inactiveItems = self.elements.$posts.not('.' + settings.classes.active),
        $shownItems = self.elements.$posts.filter(':visible'),
        $activeOrShownItems = $activeItems.add($shownItems),
        $activeShownItems = $activeItems.filter(':visible'),
        $activeHiddenItems = $activeItems.filter(':hidden'),
        $inactiveShownItems = $inactiveItems.filter(':visible'),
        itemWidth = $shownItems.outerWidth(),
        itemHeight = $shownItems.outerHeight();
    self.elements.$posts.css('transition-duration', settings.transitionDuration + 'ms');
    self.showItems($activeHiddenItems);

    if (self.isEdit) {
      self.fitImages();
    }

    self.handleEmptyColumns();

    if (self.isMasonryEnabled()) {
      self.hideItems($inactiveShownItems);
      self.showItems($activeHiddenItems);
      self.handleEmptyColumns();
      self.runMasonry();
      return;
    }

    $inactiveShownItems.css({
      opacity: 0,
      transform: 'scale3d(0.2, 0.2, 1)'
    });
    $activeShownItems.each(function () {
      var $item = $(this),
          currentOffset = self.getOffset($activeOrShownItems.index($item), itemWidth, itemHeight),
          requiredOffset = self.getOffset($shownItems.index($item), itemWidth, itemHeight);

      if (currentOffset.start === requiredOffset.start && currentOffset.top === requiredOffset.top) {
        return;
      }

      requiredOffset.start -= currentOffset.start;
      requiredOffset.top -= currentOffset.top;

      if (elementorFrontend.config.is_rtl) {
        requiredOffset.start *= -1;
      }

      $item.css({
        transitionDuration: '',
        transform: 'translate3d(' + requiredOffset.start + 'px, ' + requiredOffset.top + 'px, 0)'
      });
    });
    setTimeout(function () {
      $activeItems.each(function () {
        var $item = $(this),
            currentOffset = self.getOffset($activeOrShownItems.index($item), itemWidth, itemHeight),
            requiredOffset = self.getOffset($activeItems.index($item), itemWidth, itemHeight);
        $item.css({
          transitionDuration: settings.transitionDuration + 'ms'
        });
        requiredOffset.start -= currentOffset.start;
        requiredOffset.top -= currentOffset.top;

        if (elementorFrontend.config.is_rtl) {
          requiredOffset.start *= -1;
        }

        setTimeout(function () {
          $item.css('transform', 'translate3d(' + requiredOffset.start + 'px, ' + requiredOffset.top + 'px, 0)');
        });
      });
    });
    setTimeout(function () {
      self.hideItems($inactiveShownItems);
      $activeItems.css({
        transitionDuration: '',
        transform: 'translate3d(0px, 0px, 0px)'
      });
      self.handleEmptyColumns();
    }, settings.transitionDuration);
  },

  activeFilterButton(filter) {
    var activeClass = this.getSettings('classes.active'),
        $filterButtons = this.elements.$filterButtons,
        $button = $filterButtons.filter('[data-filter="' + filter + '"]');
    $filterButtons.removeClass(activeClass);
    $button.addClass(activeClass);
  },

  setFilter(filter) {
    this.activeFilterButton(filter);
    this.filterItems(filter);
    this.arrangeGrid();
  },

  refreshGrid() {
    this.setColsCountSettings();
    this.arrangeGrid();
  },

  bindEvents() {
    _posts.default.prototype.bindEvents.apply(this, arguments);

    this.elements.$filterButtons.on('click', this.onFilterButtonClick);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings('masonry');
  },

  run() {
    _posts.default.prototype.run.apply(this, arguments);

    this.setColsCountSettings();
    this.setFilter('__all');
    this.handleEmptyColumns();
  },

  onFilterButtonClick(event) {
    this.setFilter(jQuery(event.currentTarget).data('filter'));
  },

  onWindowResize() {
    _posts.default.prototype.onWindowResize.apply(this, arguments);

    this.refreshGrid();
  },

  onElementChange(propertyName) {
    _posts.default.prototype.onElementChange.apply(this, arguments);

    if ('classic_item_ratio' === propertyName) {
      this.refreshGrid();
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/posts.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/posts.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getSkinPrefix() {
    return 'classic_';
  },

  bindEvents() {
    var cid = this.getModelCID();
    elementorFrontend.addListenerOnce(cid, 'resize', this.onWindowResize);
  },

  getClosureMethodsNames() {
    return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this, arguments).concat(['fitImages', 'onWindowResize', 'runMasonry']);
  },

  getDefaultSettings() {
    return {
      classes: {
        fitHeight: 'elementor-fit-height',
        hasItemRatio: 'elementor-has-item-ratio'
      },
      selectors: {
        postsContainer: '.elementor-posts-container',
        post: '.elementor-post',
        postThumbnail: '.elementor-post__thumbnail',
        postThumbnailImage: '.elementor-post__thumbnail img'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $postsContainer: this.$element.find(selectors.postsContainer),
      $posts: this.$element.find(selectors.post)
    };
  },

  fitImage($post) {
    var settings = this.getSettings(),
        $imageParent = $post.find(settings.selectors.postThumbnail),
        $image = $imageParent.find('img'),
        image = $image[0];

    if (!image) {
      return;
    }

    var imageParentRatio = $imageParent.outerHeight() / $imageParent.outerWidth(),
        imageRatio = image.naturalHeight / image.naturalWidth;
    $imageParent.toggleClass(settings.classes.fitHeight, imageRatio < imageParentRatio);
  },

  fitImages() {
    var $ = jQuery,
        self = this,
        itemRatio = getComputedStyle(this.$element[0], ':after').content,
        settings = this.getSettings();
    this.elements.$postsContainer.toggleClass(settings.classes.hasItemRatio, !!itemRatio.match(/\d/));

    if (self.isMasonryEnabled()) {
      return;
    }

    this.elements.$posts.each(function () {
      var $post = $(this),
          $image = $post.find(settings.selectors.postThumbnailImage);
      self.fitImage($post);
      $image.on('load', function () {
        self.fitImage($post);
      });
    });
  },

  setColsCountSettings() {
    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        settings = this.getElementSettings(),
        skinPrefix = this.getSkinPrefix(),
        colsCount;

    switch (currentDeviceMode) {
      case 'mobile':
        colsCount = settings[skinPrefix + 'columns_mobile'];
        break;

      case 'tablet':
        colsCount = settings[skinPrefix + 'columns_tablet'];
        break;

      default:
        colsCount = settings[skinPrefix + 'columns'];
    }

    this.setSettings('colsCount', colsCount);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings(this.getSkinPrefix() + 'masonry');
  },

  initMasonry() {
    imagesLoaded(this.elements.$posts, this.runMasonry);
  },

  runMasonry() {
    var elements = this.elements;
    elements.$posts.css({
      marginTop: '',
      transitionDuration: ''
    });
    this.setColsCountSettings();
    var colsCount = this.getSettings('colsCount'),
        hasMasonry = this.isMasonryEnabled() && colsCount >= 2;
    elements.$postsContainer.toggleClass('elementor-posts-masonry', hasMasonry);

    if (!hasMasonry) {
      elements.$postsContainer.height('');
      return;
    }
    /* The `verticalSpaceBetween` variable is setup in a way that supports older versions of the portfolio widget */


    var verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'row_gap.size');

    if ('' === this.getSkinPrefix() && '' === verticalSpaceBetween) {
      verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'item_gap.size');
    }

    var masonry = new elementorModules.utils.Masonry({
      container: elements.$postsContainer,
      items: elements.$posts.filter(':visible'),
      columnsCount: this.getSettings('colsCount'),
      verticalSpaceBetween
    });
    masonry.run();
  },

  run() {
    // For slow browsers
    setTimeout(this.fitImages, 0);
    this.initMasonry();
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.bindEvents();
    this.run();
  },

  onWindowResize() {
    this.fitImages();
    this.runMasonry();
  },

  onElementChange() {
    this.fitImages();
    setTimeout(this.runMasonry);
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/share-buttons/assets/js/frontend/frontend-legacy.js":
/*!**********************************************************************!*\
  !*** ../modules/share-buttons/assets/js/frontend/frontend-legacy.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _shareButtons = _interopRequireDefault(__webpack_require__(/*! ./handlers/share-buttons */ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('share-buttons', _shareButtons.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js":
/*!*****************************************************************************!*\
  !*** ../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  async onInit() {
    if (!this.isActive()) {
      return;
    }

    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    const elementSettings = this.getElementSettings(),
          classes = this.getSettings('classes'),
          isCustomURL = elementSettings.share_url && elementSettings.share_url.url,
          shareLinkSettings = {
      classPrefix: classes.shareLinkPrefix
    };

    if (isCustomURL) {
      shareLinkSettings.url = elementSettings.share_url.url;
    } else {
      shareLinkSettings.url = location.href;
      shareLinkSettings.title = elementorFrontend.config.post.title;
      shareLinkSettings.text = elementorFrontend.config.post.excerpt;
      shareLinkSettings.image = elementorFrontend.config.post.featuredImage;
    }
    /**
     * First check of the ShareLink is for detecting if the optimized mode is disabled and the library should be loaded dynamically.
     * Checking if the assetsLoader exist, in case that the library is not loaded due to Ad Blockers and not because the optimized mode is enabled.
     */


    if (!window.ShareLink && elementorFrontend.utils.assetsLoader) {
      await elementorFrontend.utils.assetsLoader.load('script', 'share-link');
    }
    /**
     * The following condition should remain regardless of the share-link dynamic loading.
     * Ad Blockers may block the share script. (/assets/lib/share-link/share-link.js).
     */


    if (!this.elements.$shareButton.shareLink) {
      return;
    }

    this.elements.$shareButton.shareLink(shareLinkSettings);
  },

  getDefaultSettings() {
    return {
      selectors: {
        shareButton: '.elementor-share-btn'
      },
      classes: {
        shareLinkPrefix: 'elementor-share-btn_'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $shareButton: this.$element.find(selectors.shareButton)
    };
  },

  isActive() {
    return !elementorFrontend.isEditMode();
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/slides/assets/js/frontend/frontend-legacy.js":
/*!***************************************************************!*\
  !*** ../modules/slides/assets/js/frontend/frontend-legacy.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _slides = _interopRequireDefault(__webpack_require__(/*! ./handlers/slides */ "../modules/slides/assets/js/frontend/handlers/slides.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('slides', _slides.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/slides/assets/js/frontend/handlers/slides.js":
/*!***************************************************************!*\
  !*** ../modules/slides/assets/js/frontend/handlers/slides.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class SlidesHandler extends elementorModules.frontend.handlers.SwiperBase {
  getDefaultSettings() {
    return {
      selectors: {
        slider: '.elementor-slides-wrapper',
        slide: '.swiper-slide',
        slideInnerContents: '.swiper-slide-contents',
        activeSlide: '.swiper-slide-active',
        activeDuplicate: '.swiper-slide-duplicate-active'
      },
      classes: {
        animated: 'animated',
        kenBurnsActive: 'elementor-ken-burns--active',
        slideBackground: 'swiper-slide-bg'
      },
      attributes: {
        dataSliderOptions: 'slider_options',
        dataAnimation: 'animation'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {
      $swiperContainer: this.$element.find(selectors.slider)
    };
    elements.$slides = elements.$swiperContainer.find(selectors.slide);
    return elements;
  }

  getSwiperOptions() {
    const elementSettings = this.getElementSettings(),
          swiperOptions = {
      autoplay: this.getAutoplayConfig(),
      grabCursor: true,
      initialSlide: this.getInitialSlide(),
      slidesPerView: 1,
      slidesPerGroup: 1,
      loop: 'yes' === elementSettings.infinite,
      speed: elementSettings.transition_speed,
      effect: elementSettings.transition,
      observeParents: true,
      observer: true,
      handleElementorBreakpoints: true,
      on: {
        slideChange: () => {
          this.handleKenBurns();
        }
      }
    };
    const showArrows = 'arrows' === elementSettings.navigation || 'both' === elementSettings.navigation,
          pagination = 'dots' === elementSettings.navigation || 'both' === elementSettings.navigation;

    if (showArrows) {
      swiperOptions.navigation = {
        prevEl: '.elementor-swiper-button-prev',
        nextEl: '.elementor-swiper-button-next'
      };
    }

    if (pagination) {
      swiperOptions.pagination = {
        el: '.swiper-pagination',
        type: 'bullets',
        clickable: true
      };
    }

    if (true === swiperOptions.loop) {
      swiperOptions.loopedSlides = this.getSlidesCount();
    }

    if ('fade' === swiperOptions.effect) {
      swiperOptions.fadeEffect = {
        crossFade: true
      };
    }

    return swiperOptions;
  }

  getAutoplayConfig() {
    const elementSettings = this.getElementSettings();

    if ('yes' !== elementSettings.autoplay) {
      return false;
    }

    return {
      stopOnLastSlide: true,
      // Has no effect in infinite mode by default.
      delay: elementSettings.autoplay_speed,
      disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
    };
  }

  initSingleSlideAnimations() {
    const settings = this.getSettings(),
          animation = this.elements.$swiperContainer.data(settings.attributes.dataAnimation);
    this.elements.$swiperContainer.find('.' + settings.classes.slideBackground).addClass(settings.classes.kenBurnsActive); // If there is an animation, get the container of the slide's inner contents and add the animation classes to it

    if (animation) {
      this.elements.$swiperContainer.find(settings.selectors.slideInnerContents).addClass(settings.classes.animated + ' ' + animation);
    }
  }

  async initSlider() {
    const $slider = this.elements.$swiperContainer,
          settings = this.getSettings(),
          elementSettings = this.getElementSettings(),
          animation = $slider.data(settings.attributes.dataAnimation);

    if (!$slider.length) {
      return;
    }

    if (1 >= this.getSlidesCount()) {
      return;
    }

    const Swiper = elementorFrontend.utils.swiper;
    this.swiper = await new Swiper($slider, this.getSwiperOptions()); // Expose the swiper instance in the frontend

    $slider.data('swiper', this.swiper); // The Ken Burns effect will only apply on the specific slides that toggled the effect ON,
    // since it depends on an additional class besides 'elementor-ken-burns--active'

    this.handleKenBurns();

    if (elementSettings.pause_on_hover) {
      this.togglePauseOnHover(true);
    }

    if (!animation) {
      return;
    }

    this.swiper.on('slideChangeTransitionStart', function () {
      const $sliderContent = $slider.find(settings.selectors.slideInnerContents);
      $sliderContent.removeClass(settings.classes.animated + ' ' + animation).hide();
    });
    this.swiper.on('slideChangeTransitionEnd', function () {
      const $currentSlide = $slider.find(settings.selectors.slideInnerContents);
      $currentSlide.show().addClass(settings.classes.animated + ' ' + animation);
    });
  }

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);

    if (2 > this.getSlidesCount()) {
      this.initSingleSlideAnimations();
      return;
    }

    this.initSlider();
  }

  getChangeableProperties() {
    return {
      pause_on_hover: 'pauseOnHover',
      pause_on_interaction: 'disableOnInteraction',
      autoplay_speed: 'delay',
      transition_speed: 'speed'
    };
  }

  updateSwiperOption(propertyName) {
    if (0 === propertyName.indexOf('width')) {
      this.swiper.update();
      return;
    }

    const elementSettings = this.getElementSettings(),
          newSettingValue = elementSettings[propertyName],
          changeableProperties = this.getChangeableProperties();
    let propertyToUpdate = changeableProperties[propertyName],
        valueToUpdate = newSettingValue; // Handle special cases where the value to update is not the value that the Swiper library accepts

    switch (propertyName) {
      case 'autoplay_speed':
        propertyToUpdate = 'autoplay';
        valueToUpdate = {
          delay: newSettingValue,
          disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
        };
        break;

      case 'pause_on_hover':
        this.togglePauseOnHover('yes' === newSettingValue);
        break;

      case 'pause_on_interaction':
        valueToUpdate = 'yes' === newSettingValue;
        break;
    } // 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library


    if ('pause_on_hover' !== propertyName) {
      this.swiper.params[propertyToUpdate] = valueToUpdate;
    }

    this.swiper.update();
  }

  onElementChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    const changeableProperties = this.getChangeableProperties();

    if (changeableProperties.hasOwnProperty(propertyName)) {
      this.updateSwiperOption(propertyName);
    }
  }

  onEditSettingsChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if ('activeItemIndex' === propertyName) {
      this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
    }
  }

}

exports.default = SlidesHandler;

/***/ }),

/***/ "../modules/social/assets/js/frontend/frontend-legacy.js":
/*!***************************************************************!*\
  !*** ../modules/social/assets/js/frontend/frontend-legacy.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _facebook = _interopRequireDefault(__webpack_require__(/*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('facebook-button', _facebook.default);
    elementorFrontend.elementsHandler.attachHandler('facebook-comments', _facebook.default);
    elementorFrontend.elementsHandler.attachHandler('facebook-embed', _facebook.default);
    elementorFrontend.elementsHandler.attachHandler('facebook-page', _facebook.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/social/assets/js/frontend/handlers/facebook.js":
/*!*****************************************************************!*\
  !*** ../modules/social/assets/js/frontend/handlers/facebook.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class FacebookHandler extends elementorModules.frontend.handlers.Base {
  getConfig() {
    return elementorProFrontend.config.facebook_sdk;
  }

  setConfig(prop, value) {
    elementorProFrontend.config.facebook_sdk[prop] = value;
  }

  parse() {
    // On FB SDK is loaded, parse current element
    FB.XFBML.parse(this.$element[0]);
  }

  loadSDK() {
    const config = this.getConfig(); // Preventing from ajax request to be sent multiple times when loading multiple widgets

    if (config.isLoading || config.isLoaded) {
      return;
    }

    this.setConfig('isLoading', true);
    jQuery.ajax({
      url: 'https://connect.facebook.net/' + config.lang + '/sdk.js',
      dataType: 'script',
      cache: true,
      success: () => {
        FB.init({
          appId: config.app_id,
          version: 'v2.10',
          xfbml: false
        });
        this.setConfig('isLoaded', true);
        this.setConfig('isLoading', false);
        elementorFrontend.elements.$document.trigger('fb:sdk:loaded');
      }
    });
  }

  onInit(...args) {
    super.onInit(...args);
    this.loadSDK();
    const config = this.getConfig();

    if (config.isLoaded) {
      this.parse();
    } else {
      elementorFrontend.elements.$document.on('fb:sdk:loaded', () => this.parse());
    }
  }

}

exports.default = FacebookHandler;

/***/ }),

/***/ "../modules/table-of-contents/assets/js/frontend/frontend-legacy.js":
/*!**************************************************************************!*\
  !*** ../modules/table-of-contents/assets/js/frontend/frontend-legacy.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _tableOfContents = _interopRequireDefault(__webpack_require__(/*! ./handlers/table-of-contents */ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('table-of-contents', _tableOfContents.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js":
/*!*************************************************************************************!*\
  !*** ../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class TOCHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    const elementSettings = this.getElementSettings(),
          listWrapperTag = 'numbers' === elementSettings.marker_view ? 'ol' : 'ul';
    return {
      selectors: {
        widgetContainer: '.elementor-widget-container',
        postContentContainer: '.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"])',
        expandButton: '.elementor-toc__toggle-button--expand',
        collapseButton: '.elementor-toc__toggle-button--collapse',
        body: '.elementor-toc__body',
        headerTitle: '.elementor-toc__header-title'
      },
      classes: {
        anchor: 'elementor-menu-anchor',
        listWrapper: 'elementor-toc__list-wrapper',
        listItem: 'elementor-toc__list-item',
        listTextWrapper: 'elementor-toc__list-item-text-wrapper',
        firstLevelListItem: 'elementor-toc__top-level',
        listItemText: 'elementor-toc__list-item-text',
        activeItem: 'elementor-item-active',
        headingAnchor: 'elementor-toc__heading-anchor',
        collapsed: 'elementor-toc--collapsed'
      },
      listWrapperTag
    };
  }

  getDefaultElements() {
    const settings = this.getSettings();
    return {
      $pageContainer: this.getContainer(),
      $widgetContainer: this.$element.find(settings.selectors.widgetContainer),
      $expandButton: this.$element.find(settings.selectors.expandButton),
      $collapseButton: this.$element.find(settings.selectors.collapseButton),
      $tocBody: this.$element.find(settings.selectors.body),
      $listItems: this.$element.find('.' + settings.classes.listItem)
    };
  }

  getContainer() {
    const settings = this.getSettings(),
          elementSettings = this.getElementSettings(); // If there is a custom container defined by the user, use it as the headings-scan container

    if (elementSettings.container) {
      return jQuery(elementSettings.container);
    } // Get the document wrapper element in which the TOC is located


    const $documentWrapper = this.$element.parents('.elementor'); // If the TOC container is a popup, only scan the popup for headings

    if ('popup' === $documentWrapper.attr('data-elementor-type')) {
      return $documentWrapper;
    } // If the TOC container is anything other than a popup, scan only the post/page content for headings


    return jQuery(settings.selectors.postContentContainer);
  }

  bindEvents() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.minimize_box) {
      this.elements.$expandButton.on('click', () => this.expandBox());
      this.elements.$collapseButton.on('click', () => this.collapseBox());
    }

    if (elementSettings.collapse_subitems) {
      this.elements.$listItems.on('hover', event => jQuery(event.target).slideToggle());
    }
  }

  getHeadings() {
    // Get all headings from document by user-selected tags
    const elementSettings = this.getElementSettings(),
          tags = elementSettings.headings_by_tags.join(','),
          selectors = this.getSettings('selectors'),
          excludedSelectors = elementSettings.exclude_headings_by_selector;
    return this.elements.$pageContainer.find(tags).not(selectors.headerTitle).filter((index, heading) => {
      return !jQuery(heading).closest(excludedSelectors).length; // Handle excluded selectors if there are any
    });
  }

  addAnchorsBeforeHeadings() {
    const classes = this.getSettings('classes'); // Add an anchor element right before each TOC heading to create anchors for TOC links

    this.elements.$headings.before(index => {
      // Check if the heading element itself has an ID, or if it is a widget which includes a main heading element, whether the widget wrapper has an ID
      if (jQuery(this.elements.$headings[index]).data('hasOwnID')) {
        return;
      }

      return `<span id="${classes.headingAnchor}-${index}" class="${classes.anchor} "></span>`;
    });
  }

  activateItem($listItem) {
    const classes = this.getSettings('classes');
    this.deactivateActiveItem($listItem);
    $listItem.addClass(classes.activeItem);
    this.$activeItem = $listItem;

    if (!this.getElementSettings('collapse_subitems')) {
      return;
    }

    let $activeList;

    if ($listItem.hasClass(classes.firstLevelListItem)) {
      $activeList = $listItem.parent().next();
    } else {
      $activeList = $listItem.parents('.' + classes.listWrapper).eq(-2);
    }

    if (!$activeList.length) {
      delete this.$activeList;
      return;
    }

    this.$activeList = $activeList;
    this.$activeList.stop().slideDown();
  }

  deactivateActiveItem($activeToBe) {
    if (!this.$activeItem || this.$activeItem.is($activeToBe)) {
      return;
    }

    const {
      classes
    } = this.getSettings();
    this.$activeItem.removeClass(classes.activeItem);

    if (this.$activeList && (!$activeToBe || !this.$activeList[0].contains($activeToBe[0]))) {
      this.$activeList.slideUp();
    }
  }

  followAnchor($element, index) {
    const anchorSelector = $element[0].hash;
    let $anchor;

    try {
      // `decodeURIComponent` for UTF8 characters in the hash.
      $anchor = jQuery(decodeURIComponent(anchorSelector));
    } catch (e) {
      return;
    }

    elementorFrontend.waypoint($anchor, direction => {
      if (this.itemClicked) {
        return;
      }

      const id = $anchor.attr('id');

      if ('down' === direction) {
        this.viewportItems[id] = true;
        this.activateItem($element);
      } else {
        delete this.viewportItems[id];
        this.activateItem(this.$listItemTexts.eq(index - 1));
      }
    }, {
      offset: 'bottom-in-view',
      triggerOnce: false
    });
    elementorFrontend.waypoint($anchor, direction => {
      if (this.itemClicked) {
        return;
      }

      const id = $anchor.attr('id');

      if ('down' === direction) {
        delete this.viewportItems[id];

        if (Object.keys(this.viewportItems).length) {
          this.activateItem(this.$listItemTexts.eq(index + 1));
        }
      } else {
        this.viewportItems[id] = true;
        this.activateItem($element);
      }
    }, {
      offset: 0,
      triggerOnce: false
    });
  }

  followAnchors() {
    this.$listItemTexts.each((index, element) => this.followAnchor(jQuery(element), index));
  }

  populateTOC() {
    this.listItemPointer = 0;
    const elementSettings = this.getElementSettings();

    if (elementSettings.hierarchical_view) {
      this.createNestedList();
    } else {
      this.createFlatList();
    }

    this.$listItemTexts = this.$element.find('.elementor-toc__list-item-text');
    this.$listItemTexts.on('click', this.onListItemClick.bind(this));

    if (!elementorFrontend.isEditMode()) {
      this.followAnchors();
    }
  }

  createNestedList() {
    this.headingsData.forEach((heading, index) => {
      heading.level = 0;

      for (let i = index - 1; i >= 0; i--) {
        const currentOrderedItem = this.headingsData[i];

        if (currentOrderedItem.tag <= heading.tag) {
          heading.level = currentOrderedItem.level;

          if (currentOrderedItem.tag < heading.tag) {
            heading.level++;
          }

          break;
        }
      }
    });
    this.elements.$tocBody.html(this.getNestedLevel(0));
  }

  createFlatList() {
    this.elements.$tocBody.html(this.getNestedLevel());
  }

  getNestedLevel(level) {
    const settings = this.getSettings(),
          elementSettings = this.getElementSettings(),
          icon = this.getElementSettings('icon');
    let renderedIcon;

    if (icon) {
      // We generate the icon markup in PHP and make it available via get_frontend_settings(). As a result, the
      // rendered icon is not available in the editor, so in the editor we use the regular <i> tag.
      if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg && !elementorFrontend.isEditMode()) {
        renderedIcon = icon.rendered_tag;
      } else {
        renderedIcon = `<i class="${icon.value}"></i>`;
      }
    } // Open new list/nested list


    let html = `<${settings.listWrapperTag} class="${settings.classes.listWrapper}">`; // for each list item, build its markup.

    while (this.listItemPointer < this.headingsData.length) {
      const currentItem = this.headingsData[this.listItemPointer];
      let listItemTextClasses = settings.classes.listItemText;

      if (0 === currentItem.level) {
        // If the current list item is a top level item, give it the first level class
        listItemTextClasses += ' ' + settings.classes.firstLevelListItem;
      }

      if (level > currentItem.level) {
        break;
      }

      if (level === currentItem.level) {
        html += `<li class="${settings.classes.listItem}">`;
        html += `<div class="${settings.classes.listTextWrapper}">`;
        let liContent = `<a href="#${currentItem.anchorLink}" class="${listItemTextClasses}">${currentItem.text}</a>`; // If list type is bullets, add the bullet icon as an <i> tag

        if ('bullets' === elementSettings.marker_view && icon) {
          liContent = `${renderedIcon}${liContent}`;
        }

        html += liContent;
        html += '</div>';
        this.listItemPointer++;
        const nextItem = this.headingsData[this.listItemPointer];

        if (nextItem && level < nextItem.level) {
          // If a new nested list has to be created under the current item,
          // this entire method is called recursively (outside the while loop, a list wrapper is created)
          html += this.getNestedLevel(nextItem.level);
        }

        html += '</li>';
      }
    }

    html += `</${settings.listWrapperTag}>`;
    return html;
  }

  handleNoHeadingsFound() {
    let noHeadingsText = elementorProFrontend.config.i18n.toc_no_headings_found;

    if (elementorFrontend.isEditMode()) {
      noHeadingsText = elementorPro.translate('toc_no_headings_found');
    }

    return this.elements.$tocBody.html(noHeadingsText);
  }

  collapseOnInit() {
    const minimizedOn = this.getElementSettings('minimized_on'),
          currentDeviceMode = elementorFrontend.getCurrentDeviceMode();

    if ('tablet' === minimizedOn && 'desktop' !== currentDeviceMode || 'mobile' === minimizedOn && 'mobile' === currentDeviceMode) {
      this.collapseBox();
    }
  }

  getHeadingAnchorLink(index, classes) {
    const headingID = this.elements.$headings[index].id,
          wrapperID = this.elements.$headings[index].closest('.elementor-widget').id;
    let anchorLink = '';

    if (headingID) {
      anchorLink = headingID;
    } else if (wrapperID) {
      // If the heading itself has an ID, we don't want to overwrite it
      anchorLink = wrapperID;
    } // If there is no existing ID, use the heading text to create a semantic ID


    if (headingID || wrapperID) {
      jQuery(this.elements.$headings[index]).data('hasOwnID', true);
    } else {
      anchorLink = `${classes.headingAnchor}-${index}`;
    }

    return anchorLink;
  }

  setHeadingsData() {
    this.headingsData = [];
    const classes = this.getSettings('classes'); // Create an array for simplifying TOC list creation

    this.elements.$headings.each((index, element) => {
      const anchorLink = this.getHeadingAnchorLink(index, classes);
      this.headingsData.push({
        tag: +element.nodeName.slice(1),
        text: element.textContent,
        anchorLink
      });
    });
  }

  run() {
    this.elements.$headings = this.getHeadings();

    if (!this.elements.$headings.length) {
      return this.handleNoHeadingsFound();
    }

    this.setHeadingsData();

    if (!elementorFrontend.isEditMode()) {
      this.addAnchorsBeforeHeadings();
    }

    this.populateTOC();

    if (this.getElementSettings('minimize_box')) {
      this.collapseOnInit();
    }
  }

  expandBox() {
    const boxHeight = this.getCurrentDeviceSetting('min_height');
    this.$element.removeClass(this.getSettings('classes.collapsed'));
    this.elements.$tocBody.slideDown(); // return container to the full height in case a min-height is defined by the user

    this.elements.$widgetContainer.css('min-height', boxHeight.size + boxHeight.unit);
  }

  collapseBox() {
    this.$element.addClass(this.getSettings('classes.collapsed'));
    this.elements.$tocBody.slideUp(); // close container in case a min-height is defined by the user

    this.elements.$widgetContainer.css('min-height', '0px');
  }

  onInit(...args) {
    super.onInit(...args);
    this.viewportItems = [];
    jQuery(() => this.run());
  }

  onListItemClick(event) {
    this.itemClicked = true;
    setTimeout(() => this.itemClicked = false, 2000);
    const $clickedItem = jQuery(event.target),
          $list = $clickedItem.parent().next(),
          collapseNestedList = this.getElementSettings('collapse_subitems');
    let listIsActive;

    if (collapseNestedList && $clickedItem.hasClass(this.getSettings('classes.firstLevelListItem'))) {
      if ($list.is(':visible')) {
        listIsActive = true;
      }
    }

    this.activateItem($clickedItem);

    if (collapseNestedList && listIsActive) {
      $list.slideUp();
    }
  }

}

exports.default = TOCHandler;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/frontend-legacy.js":
/*!**********************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/frontend-legacy.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _archivePostsSkinClassic = _interopRequireDefault(__webpack_require__(/*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js"));

var _archivePostsSkinCards = _interopRequireDefault(__webpack_require__(/*! ./handlers/archive-posts-skin-cards */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js"));

var _archivePostsLoadMore = _interopRequireDefault(__webpack_require__(/*! ./handlers/archive-posts-load-more */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    ['archive_classic', 'archive_full_content', 'archive_cards'].forEach(skinName => {
      elementorFrontend.elementsHandler.attachHandler('archive-posts', _archivePostsLoadMore.default, skinName);
    });
    elementorFrontend.elementsHandler.attachHandler('archive-posts', _archivePostsSkinClassic.default, 'archive_classic');
    elementorFrontend.elementsHandler.attachHandler('archive-posts', _archivePostsSkinClassic.default, 'archive_full_content');
    elementorFrontend.elementsHandler.attachHandler('archive-posts', _archivePostsSkinCards.default, 'archive_cards');
    jQuery(function () {
      // Go to elementor element - if the URL is something like http://domain.com/any-page?preview=true&theme_template_id=6479
      var match = location.search.match(/theme_template_id=(\d*)/),
          $element = match ? jQuery('.elementor-' + match[1]) : [];

      if ($element.length) {
        jQuery('html, body').animate({
          scrollTop: $element.offset().top - window.innerHeight / 2
        });
      }
    });
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js":
/*!***************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _loadMore = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js"));

class ArchivePostsLoadMore extends _loadMore.default {}

exports.default = ArchivePostsLoadMore;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js":
/*!****************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _cards = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js"));

var _default = _cards.default.extend({
  getSkinPrefix() {
    return 'archive_cards_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js":
/*!******************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  getSkinPrefix() {
    return 'archive_classic_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/theme-elements/assets/js/frontend/frontend-legacy.js":
/*!***********************************************************************!*\
  !*** ../modules/theme-elements/assets/js/frontend/frontend-legacy.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _searchForm = _interopRequireDefault(__webpack_require__(/*! ./handlers/search-form */ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('search-form', _searchForm.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js":
/*!****************************************************************************!*\
  !*** ../modules/theme-elements/assets/js/frontend/handlers/search-form.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        wrapper: '.elementor-search-form',
        container: '.elementor-search-form__container',
        icon: '.elementor-search-form__icon',
        input: '.elementor-search-form__input',
        toggle: '.elementor-search-form__toggle',
        submit: '.elementor-search-form__submit',
        closeButton: '.dialog-close-button'
      },
      classes: {
        isFocus: 'elementor-search-form--focus',
        isFullScreen: 'elementor-search-form--full-screen',
        lightbox: 'elementor-lightbox'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$wrapper = this.$element.find(selectors.wrapper);
    elements.$container = this.$element.find(selectors.container);
    elements.$input = this.$element.find(selectors.input);
    elements.$icon = this.$element.find(selectors.icon);
    elements.$toggle = this.$element.find(selectors.toggle);
    elements.$submit = this.$element.find(selectors.submit);
    elements.$closeButton = this.$element.find(selectors.closeButton);
    return elements;
  },

  bindEvents() {
    var self = this,
        $container = self.elements.$container,
        $closeButton = self.elements.$closeButton,
        $input = self.elements.$input,
        $wrapper = self.elements.$wrapper,
        $icon = self.elements.$icon,
        skin = this.getElementSettings('skin'),
        classes = this.getSettings('classes');

    if ('full_screen' === skin) {
      // Activate full-screen mode on click
      self.elements.$toggle.on('click', function () {
        $container.toggleClass(classes.isFullScreen).toggleClass(classes.lightbox);
        $input.trigger('focus');
      }); // Deactivate full-screen mode on click or on esc.

      $container.on('click', function (event) {
        if ($container.hasClass(classes.isFullScreen) && $container[0] === event.target) {
          $container.removeClass(classes.isFullScreen).removeClass(classes.lightbox);
        }
      });
      $closeButton.on('click', function () {
        $container.removeClass(classes.isFullScreen).removeClass(classes.lightbox);
      });
      elementorFrontend.elements.$document.on('keyup', function (event) {
        var ESC_KEY = 27;

        if (ESC_KEY === event.keyCode) {
          if ($container.hasClass(classes.isFullScreen)) {
            $container.trigger('click');
          }
        }
      });
    } else {
      // Apply focus style on wrapper element when input is focused
      $input.on({
        focus() {
          $wrapper.addClass(classes.isFocus);
        },

        blur() {
          $wrapper.removeClass(classes.isFocus);
        }

      });
    }

    if ('minimal' === skin) {
      // Apply focus style on wrapper element when icon is clicked in minimal skin
      $icon.on('click', function () {
        $wrapper.addClass(classes.isFocus);
        $input.trigger('focus');
      });
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/frontend-legacy.js":
/*!********************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/frontend-legacy.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _menuCart = _interopRequireDefault(__webpack_require__(/*! ./handlers/menu-cart */ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js"));

var _checkoutPage = _interopRequireDefault(__webpack_require__(/*! ./handlers/checkout-page */ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js"));

var _cart = _interopRequireDefault(__webpack_require__(/*! ./handlers/cart */ "../modules/woocommerce/assets/js/frontend/handlers/cart.js"));

var _myAccount = _interopRequireDefault(__webpack_require__(/*! ./handlers/my-account */ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('woocommerce-menu-cart', _menuCart.default);
    elementorFrontend.elementsHandler.attachHandler('woocommerce-checkout-page', _checkoutPage.default);
    elementorFrontend.elementsHandler.attachHandler('woocommerce-cart', _cart.default);
    elementorFrontend.elementsHandler.attachHandler('woocommerce-my-account', _myAccount.default);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Base extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        stickyRightColumn: '.e-sticky-right-column'
      },
      classes: {
        stickyRightColumnActive: 'e-sticky-right-column--active'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
    };
  }

  bindEvents() {
    // Add our wrapper class around the select2 whenever it is opened.
    elementorFrontend.elements.$document.on('select2:open', event => {
      this.addSelect2Wrapper(event);
    });
  }

  addSelect2Wrapper(event) {
    // The select element is recaptured every time because the markup can refresh
    const selectElement = jQuery(event.target).data('select2');

    if (selectElement.$dropdown) {
      selectElement.$dropdown.addClass('e-woo-select2-wrapper');
    }
  }

  isStickyRightColumnActive() {
    const classes = this.getSettings('classes');
    return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
  }

  activateStickyRightColumn() {
    const elementSettings = this.getElementSettings(),
          $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
          classes = this.getSettings('classes');
    let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;

    if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
      stickyOptionsOffset += $wpAdminBar.height();
    }

    if ('yes' === this.getElementSettings('sticky_right_column')) {
      this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
      this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
    }
  }

  deactivateStickyRightColumn() {
    if (!this.isStickyRightColumnActive()) {
      return;
    }

    const classes = this.getSettings('classes');
    this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
  }
  /**
   * Activates the sticky column
   *
   * @return {void}
   */


  toggleStickyRightColumn() {
    if (!this.getElementSettings('sticky_right_column')) {
      this.deactivateStickyRightColumn();
      return;
    }

    if (!this.isStickyRightColumnActive()) {
      this.activateStickyRightColumn();
    }
  }

  equalizeElementHeight($element) {
    if ($element.length) {
      $element.removeAttr('style'); // first remove the custom height we added so that the new height can be re-calculated according to the content

      let maxHeight = 0;
      $element.each((index, element) => {
        maxHeight = Math.max(maxHeight, element.offsetHeight);
      });

      if (0 < maxHeight) {
        $element.css({
          height: maxHeight + 'px'
        });
      }
    }
  }

}

exports.default = Base;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/cart.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/cart.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class Cart extends _base.default {
  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);
    return {
      selectors: { ...defaultSettings.selectors,
        shippingForm: '.shipping-calculator-form',
        quantityInput: '.qty',
        updateCartButton: 'button[name=update_cart]',
        wpHttpRefererInputs: '[name=_wp_http_referer]',
        hiddenInput: 'input[type=hidden]',
        productRemove: '.product-remove a'
      },
      classes: defaultSettings.classes,
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors');
    return { ...super.getDefaultElements(...args),
      $shippingForm: this.$element.find(selectors.shippingForm),
      $stickyColumn: this.$element.find(selectors.stickyColumn),
      $hiddenInput: this.$element.find(selectors.hiddenInput)
    };
  }

  bindEvents() {
    super.bindEvents();
    const selectors = this.getSettings('selectors');
    elementorFrontend.elements.$body.on('wc_fragments_refreshed', () => this.applyButtonsHoverAnimation());

    if ('yes' === this.getElementSettings('update_cart_automatically')) {
      this.$element.on('click', selectors.quantityInput, () => this.updateCart());
    }

    if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
      elementorFrontend.elements.$body.on('wc_fragments_loaded wc_fragments_refreshed', () => {
        this.modifyWpHttpReferer();
        this.disableActions();
      });
    }
  }

  onInit(...args) {
    super.onInit(...args);
    this.toggleStickyRightColumn();
    this.hideHiddenInputsParentElements();

    if (elementorFrontend.isEditMode()) {
      this.elements.$shippingForm.show();
    }

    this.applyButtonsHoverAnimation();

    if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
      this.modifyWpHttpReferer();
      this.disableActions();
    }
  }
  /**
   * Using the WooCommerce Cart controls (quantity, remove product) in the editor will cause the cart to disappear.
   * This is because WooCommerce does an ajax round trip where it modifies the cart, then loads that cart into the
   * current page and attempts to grab the elements from that page via ajax. In the Editor, if the page is not
   * published yet, it fetches an empty page that does not contain the required elements. As a result, the cart
   * is rendered empty.
   *
   * Due to this issue, the cart controls (quantity, remove product) need to be disabled in the Editor.
   */


  disableActions() {
    const selectors = this.getSettings('selectors');
    this.$element.find(selectors.updateCartButton).attr({
      disabled: 'disabled',
      'aria-disabled': 'true'
    });

    if (elementorFrontend.isEditMode()) {
      this.$element.find(selectors.quantityInput).attr('disabled', 'disabled');
      this.$element.find(selectors.productRemove).css('pointer-events', 'none');
    }
  }

  onElementChange(propertyName) {
    if ('sticky_right_column' === propertyName) {
      this.toggleStickyRightColumn();
    }
  }

  onDestroy(...args) {
    super.onDestroy(...args);
    this.deactivateStickyRightColumn();
  }

  updateCart() {
    const selectors = this.getSettings('selectors');
    clearTimeout(this._debounce);
    this._debounce = setTimeout(() => {
      this.$element.find(selectors.updateCartButton).trigger('click');
    }, 600);
  }

  applyButtonsHoverAnimation() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.checkout_button_hover_animation) {
      // This element is recaptured every time because the cart markup can refresh
      jQuery('.checkout-button').addClass('elementor-animation-' + elementSettings.checkout_button_hover_animation);
    }

    if (elementSettings.forms_buttons_hover_animation) {
      // This element is recaptured every time because the cart markup can refresh
      jQuery('.shop_table .button').addClass('elementor-animation-' + elementSettings.forms_buttons_hover_animation);
    }
  }
  /**
   * In the editor, WC Frontend JS does not fire (not registered).
   * This causes that hidden inputs parent paragraph elements do not get display:none
   * as they would have on the front end.
   * So this function manually display:none the parent elements of these hidden inputs to avoid having
   * gaps/spaces in the layout caused by these parent elements' margins/paddings.
   */


  hideHiddenInputsParentElements() {
    if (this.isEdit) {
      if (this.elements.$hiddenInput) {
        this.elements.$hiddenInput.parent('.form-row').addClass('elementor-hidden');
      }
    }
  }

  modifyWpHttpReferer() {
    const selectors = this.getSettings('selectors');

    if (elementorFrontend.isEditMode()) {
      this.$element.find(selectors.wpHttpRefererInputs).attr('value', elementor.documents.getCurrent().config.urls.wp_preview);
    }
  }

}

exports.default = Cart;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js":
/*!***************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class Checkout extends _base.default {
  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);
    return {
      selectors: { ...defaultSettings.selectors,
        container: '.elementor-widget-woocommerce-checkout-page',
        loginForm: '.e-woocommerce-login-anchor',
        loginSubmit: '.e-woocommerce-form-login-submit',
        loginSection: '.e-woocommerce-login-section',
        showCouponForm: '.e-show-coupon-form',
        couponSection: '.e-coupon-anchor',
        showLoginForm: '.e-show-login',
        applyCoupon: '.e-apply-coupon',
        checkoutForm: 'form.woocommerce-checkout',
        couponBox: '.e-coupon-box',
        address: 'address',
        wpHttpRefererInputs: '[name="_wp_http_referer"]'
      },
      classes: defaultSettings.classes,
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors');
    return { ...super.getDefaultElements(...args),
      $container: this.$element.find(selectors.container),
      $loginForm: this.$element.find(selectors.loginForm),
      $showCouponForm: this.$element.find(selectors.showCouponForm),
      $couponSection: this.$element.find(selectors.couponSection),
      $showLoginForm: this.$element.find(selectors.showLoginForm),
      $applyCoupon: this.$element.find(selectors.applyCoupon),
      $loginSubmit: this.$element.find(selectors.loginSubmit),
      $couponBox: this.$element.find(selectors.couponBox),
      $checkoutForm: this.$element.find(selectors.checkoutForm),
      $loginSection: this.$element.find(selectors.loginSection),
      $address: this.$element.find(selectors.address)
    };
  }

  bindEvents(...args) {
    super.bindEvents(...args);
    this.elements.$showCouponForm.on('click', event => {
      event.preventDefault();
      this.elements.$couponSection.slideToggle();
    });
    this.elements.$showLoginForm.on('click', event => {
      event.preventDefault();
      this.elements.$loginForm.slideToggle();
    });
    this.elements.$applyCoupon.on('click', event => {
      event.preventDefault();
      this.applyCoupon();
    });
    this.elements.$loginSubmit.on('click', event => {
      event.preventDefault();
      this.loginUser();
    });
    elementorFrontend.elements.$body.on('updated_checkout', () => {
      this.applyPurchaseButtonHoverAnimation();
      this.updateWpReferers();
    });
  }

  onInit(...args) {
    super.onInit(...args);
    this.toggleStickyRightColumn();
    this.updateWpReferers();
    this.equalizeElementHeight(this.elements.$address); // equalize <address> boxes height

    if (elementorFrontend.isEditMode()) {
      this.elements.$loginForm.show();
      this.elements.$couponSection.show();
      this.applyPurchaseButtonHoverAnimation();
    }
  }

  onElementChange(propertyName) {
    if ('sticky_right_column' === propertyName) {
      this.toggleStickyRightColumn();
    }
  }

  onDestroy(...args) {
    super.onDestroy(...args);
    this.deactivateStickyRightColumn();
  }

  applyPurchaseButtonHoverAnimation() {
    const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation');

    if (purchaseButtonHoverAnimation) {
      // This element is recaptured every time because the checkout markup can refresh
      jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation);
    }
  }

  applyCoupon() {
    // wc_checkout_params is required to continue, ensure the object exists
    // eslint-disable-next-line camelcase
    if (!wc_checkout_params) {
      return;
    }

    this.startProcessing(this.elements.$couponBox);
    const data = {
      security: wc_checkout_params.apply_coupon_nonce,
      coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val()
    };
    jQuery.ajax({
      type: 'POST',
      url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'),
      context: this,
      data,

      success(code) {
        jQuery('.woocommerce-error, .woocommerce-message').remove();
        this.elements.$couponBox.removeClass('processing').unblock();

        if (code) {
          this.elements.$checkoutForm.before(code);
          this.elements.$couponSection.slideUp();
          elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]);
          elementorFrontend.elements.$body.trigger('update_checkout', {
            update_shipping_method: false
          });
        }
      },

      dataType: 'html'
    });
  }

  loginUser() {
    this.startProcessing(this.elements.$loginSection);
    const data = {
      action: 'elementor_woocommerce_checkout_login_user',
      username: this.elements.$loginSection.find('input[name="username"]').val(),
      password: this.elements.$loginSection.find('input[name="password"]').val(),
      nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(),
      remember: this.elements.$loginSection.find('input#rememberme').prop('checked')
    };
    jQuery.ajax({
      type: 'POST',
      url: this.getSettings('ajaxUrl'),
      context: this,
      data,

      success(code) {
        code = JSON.parse(code);
        this.elements.$loginSection.removeClass('processing').unblock();
        const messages = jQuery('.woocommerce-error, .woocommerce-message');
        messages.remove();

        if (code.logged_in) {
          location.reload();
        } else {
          this.elements.$checkoutForm.before(code.message);
        }
      }

    });
  }

  startProcessing($form) {
    if ($form.is('.processing')) {
      return;
    }
    /**
     * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce
     * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages.
     */


    $form.addClass('processing').block({
      message: null,
      overlayCSS: {
        background: '#fff',
        opacity: 0.6
      }
    });
  }
  /**
   * `elementorPostId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then
   * received when WooCommerce does it's `update_order_review` ajax, and extracted from this url and used with our
   * `load_widget_before_wc_ajax` method.
   */


  updateWpReferers() {
    const selectors = this.getSettings('selectors'),
          wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs),
          url = new URL(document.location);
    url.searchParams.set('elementorPostId', elementorFrontend.config.post.id);
    url.searchParams.set('elementorWidgetId', this.getID());
    wpHttpRefererInputs.attr('value', url);
  }

}

exports.default = Checkout;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js":
/*!***********************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.elementor-menu-cart__container',
        main: '.elementor-menu-cart__main',
        toggle: '.elementor-menu-cart__toggle',
        toggleButton: '#elementor-menu-cart__toggle_button',
        toggleWrapper: '.elementor-menu-cart__toggle_wrapper',
        closeButton: '.elementor-menu-cart__close-button'
      },
      classes: {
        isShown: 'elementor-menu-cart--shown'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $container: this.$element.find(selectors.container),
      $main: this.$element.find(selectors.main),
      $toggleWrapper: this.$element.find(selectors.toggleWrapper),
      $closeButton: this.$element.find(selectors.closeButton)
    };
  }

  toggleCart() {
    if (!this.isCartOpen) {
      this.showCart();
    } else {
      this.hideCart();
    }
  }

  showCart() {
    if (this.isCartOpen) {
      return;
    }

    const classes = this.getSettings('classes'),
          selectors = this.getSettings('selectors');
    this.isCartOpen = true;
    this.$element.addClass(classes.isShown);
    this.$element.find(selectors.toggleButton).attr('aria-expanded', true);
    this.elements.$main.attr('aria-hidden', false);
    this.elements.$container.attr('aria-hidden', false);
  }

  hideCart() {
    if (!this.isCartOpen) {
      return;
    }

    const classes = this.getSettings('classes'),
          selectors = this.getSettings('selectors');
    this.isCartOpen = false;
    this.$element.removeClass(classes.isShown);
    this.$element.find(selectors.toggleButton).attr('aria-expanded', false);
    this.elements.$main.attr('aria-hidden', true);
    this.elements.$container.attr('aria-hidden', true);
  }

  automaticallyOpenCart() {
    const settings = this.getElementSettings();

    if ('yes' === settings.automatically_open_cart) {
      this.showCart();
    }
  }

  bindEvents() {
    const menuCart = elementorProFrontend.config.menu_cart,
          noQueryParams = -1 === menuCart.cart_page_url.indexOf('?'),
          currentUrl = noQueryParams ? window.location.origin + window.location.pathname : window.location.href,
          cartUrl = menuCart.cart_page_url,
          isCart = menuCart.cart_page_url === currentUrl,
          isCheckout = menuCart.checkout_page_url === currentUrl,
          selectors = this.getSettings('selectors'),
          settings = this.getElementSettings(),
          classes = this.getSettings('classes'); // If on cart page or checkout page don't open cart, rather stay on, or go to cart page, and bail from init.

    if (isCart && isCheckout) {
      this.$element.find(selectors.toggleButton).attr('href', cartUrl);
      return;
    } // Cache cart open state.


    this.isCartOpen = this.$element.hasClass(classes.isShown);

    if ('mouseover' === settings.open_cart) {
      // Enable opening of mini-cart and side-cart by hover (include click so we can `preventDefault()` page-top jump on click).
      this.elements.$toggleWrapper.on('mouseover click', selectors.toggleButton, event => {
        event.preventDefault();
        this.showCart();
      }); // Close Cart on mouseleave.

      this.elements.$toggleWrapper.on('mouseleave', () => this.hideCart());
    } else {
      // Enable opening of mini-cart and side-cart by click.
      this.elements.$toggleWrapper.on('click', selectors.toggleButton, event => {
        event.preventDefault();
        this.toggleCart();
      });
    } // Listen for clicks outside to close any open cart.


    elementorFrontend.elements.$document.on('click', event => {
      if (!this.isCartOpen) {
        return;
      }

      const $target = jQuery(event.target); // Don't close if this is click on the main panel or toggle button.

      if ($target.closest(this.elements.$main).length || $target.closest(selectors.toggle).length) {
        return;
      }

      this.hideCart();
    });
    this.elements.$closeButton.on('click', event => {
      event.preventDefault();
      this.hideCart();
    });
    elementorFrontend.elements.$document.on('keyup', event => {
      var ESC_KEY = 27;

      if (ESC_KEY === event.keyCode) {
        this.hideCart();
      }
    }); // Option to open cart on add to cart.

    elementorFrontend.elements.$body.on('added_to_cart', () => this.automaticallyOpenCart());
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js":
/*!************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/my-account.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class MyAccountHandler extends _base.default {
  getDefaultSettings() {
    return {
      selectors: {
        address: 'address',
        tabLinks: '.woocommerce-MyAccount-navigation-link a',
        viewOrderButtons: '.my_account_orders .woocommerce-button.view',
        viewOrderLinks: '.woocommerce-orders-table__cell-order-number a',
        authForms: 'form.login, form.register',
        tabWrapper: '.e-my-account-tab',
        tabItem: '.woocommerce-MyAccount-navigation li',
        allPageElements: '[e-my-account-page]',
        purchasenote: 'tr.product-purchase-note'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $address: this.$element.find(selectors.address),
      $tabLinks: this.$element.find(selectors.tabLinks),
      $viewOrderButtons: this.$element.find(selectors.viewOrderButtons),
      $viewOrderLinks: this.$element.find(selectors.viewOrderLinks),
      $authForms: this.$element.find(selectors.authForms),
      $tabWrapper: this.$element.find(selectors.tabWrapper),
      $tabItem: this.$element.find(selectors.tabItem),
      $allPageElements: this.$element.find(selectors.allPageElements),
      $purchasenote: this.$element.find(selectors.purchasenote)
    };
  }

  editorInitTabs() {
    this.elements.$allPageElements.each((index, element) => {
      const currentPage = element.getAttribute('e-my-account-page');
      let $linksToThisPage;

      switch (currentPage) {
        case 'view-order':
          $linksToThisPage = this.elements.$viewOrderLinks.add(this.elements.$viewOrderButtons);
          break;

        default:
          $linksToThisPage = this.$element.find('.woocommerce-MyAccount-navigation-link--' + currentPage);
      }

      $linksToThisPage.on('click', () => {
        this.currentPage = currentPage;
        this.editorShowTab();
      });
    });
  }

  editorShowTab() {
    const $currentPage = this.$element.find('[e-my-account-page="' + this.currentPage + '"]');
    this.$element.attr('e-my-account-page', this.currentPage);
    this.elements.$allPageElements.hide();
    $currentPage.show();
    this.toggleEndpointClasses();

    if ('view-order' !== this.currentPage) {
      this.elements.$tabItem.removeClass('is-active');
      this.$element.find('.woocommerce-MyAccount-navigation-link--' + this.currentPage).addClass('is-active');
    }
    /**
     * We need to run equalizeElementHeights() again when the 'edit-address' or 'view-order' tab is shown, because jQuery cannot
     * get the height of hidden elements, and this tab was hidden on initial page load in the editor.
     */


    if ('edit-address' === this.currentPage || 'view-order' === this.currentPage) {
      this.equalizeElementHeights();
    }
  }

  toggleEndpointClasses() {
    const wcPages = ['dashboard', 'orders', 'view-order', 'downloads', 'edit-account', 'edit-address', 'payment-methods'];
    this.elements.$tabWrapper.removeClass('e-my-account-tab__' + wcPages.join(' e-my-account-tab__'));

    if (wcPages.includes(this.currentPage)) {
      this.elements.$tabWrapper.addClass('e-my-account-tab__' + this.currentPage);
    }
  }

  applyButtonsHoverAnimation() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.forms_buttons_hover_animation) {
      this.$element.find('.woocommerce button.button').addClass('elementor-animation-' + elementSettings.forms_buttons_hover_animation);
    }

    if (elementSettings.tables_button_hover_animation) {
      this.$element.find('.order-again .button, td .button, .woocommerce-pagination .button').addClass('elementor-animation-' + elementSettings.tables_button_hover_animation);
    }
  }

  equalizeElementHeights() {
    this.equalizeElementHeight(this.elements.$address); // equalize <address> boxes height

    if (!this.isEdit) {
      // Auth forms do not display in the Editor
      this.equalizeElementHeight(this.elements.$authForms); // equalize login/reg boxes height
    }
  }
  /**
   * WooCommerce prints the Purchase Note separated from the product name by a border and padding.
   * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated.
   * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust
   * its padding. Since this cannot be achieved in CSS, it is done in this method.
   */


  removePaddingBetweenPurchaseNote() {
    if (this.elements.$purchasenote) {
      this.elements.$purchasenote.each((index, element) => {
        jQuery(element).prev().children('td').addClass('product-purchase-note-is-below');
      });
    }
  }

  onElementChange(propertyName) {
    // When the 'General Text' Typography or 'Section' Padding is changed, the height of the boxes need to update as well.
    if (0 === propertyName.indexOf('general_text_typography') || 0 === propertyName.indexOf('sections_padding')) {
      this.equalizeElementHeights();
    }

    if (0 === propertyName.indexOf('forms_rows_gap')) {
      this.removePaddingBetweenPurchaseNote();
    }
  }

  bindEvents() {
    super.bindEvents(); // The heights of the Registration and Login boxes need to be recaclulated and equalized when
    // WooCommerce adds validation messages (such as the password strength meter) into these sections.

    elementorFrontend.elements.$body.on('keyup change', '.register #reg_password', () => {
      this.equalizeElementHeights();
    });
  }

  onInit(...args) {
    super.onInit(...args);

    if (this.isEdit) {
      this.editorInitTabs();

      if (!this.$element.attr('e-my-account-page')) {
        this.currentPage = 'dashboard';
      } else {
        this.currentPage = this.$element.attr('e-my-account-page');
      }

      this.editorShowTab();
    }

    this.applyButtonsHoverAnimation();
    this.equalizeElementHeights();
    this.removePaddingBetweenPurchaseNote();
  }

}

exports.default = MyAccountHandler;

/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ "use strict";
/******/ 
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, ["frontend"], () => (__webpack_exec__("../assets/dev/js/frontend/preloaded-elements-handlers.js")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=preloaded-elements-handlers.js.mapPK!�Ƃ�>=>=6assets/js/archive-posts.22a6d49be96f6e1aa290.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["archive-posts"],{

/***/ "../modules/posts/assets/js/frontend/handlers/cards.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/cards.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  getSkinPrefix() {
    return 'cards_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/load-more.js":
/*!*****************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/load-more.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class LoadMore extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        postsContainer: '.elementor-posts-container',
        loadMoreButton: '.elementor-button',
        loadMoreSpinnerWrapper: '.e-load-more-spinner',
        loadMoreSpinner: '.e-load-more-spinner i, .e-load-more-spinner svg',
        loadMoreAnchor: '.e-load-more-anchor'
      },
      classes: {
        loadMoreSpin: 'eicon-animation-spin',
        loadMoreIsLoading: 'e-load-more-pagination-loading',
        loadMorePaginationEnd: 'e-load-more-pagination-end',
        loadMoreNoSpinner: 'e-load-more-no-spinner'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      postsWidgetWrapper: this.$element[0],
      postsContainer: this.$element[0].querySelector(selectors.postsContainer),
      loadMoreButton: this.$element[0].querySelector(selectors.loadMoreButton),
      loadMoreSpinnerWrapper: this.$element[0].querySelector(selectors.loadMoreSpinnerWrapper),
      loadMoreSpinner: this.$element[0].querySelector(selectors.loadMoreSpinner),
      loadMoreAnchor: this.$element[0].querySelector(selectors.loadMoreAnchor)
    };
  }

  bindEvents() {
    super.bindEvents(); // Handle load more functionality for on-click type.

    if (!this.elements.loadMoreButton) {
      return;
    }

    this.elements.loadMoreButton.addEventListener('click', event => {
      if (this.isLoading) {
        return;
      }

      event.preventDefault();
      this.handlePostsQuery();
    });
  }

  onInit() {
    super.onInit();
    this.classes = this.getSettings('classes');
    this.isLoading = false;
    const paginationType = this.getElementSettings('pagination_type');

    if ('load_more_on_click' !== paginationType && 'load_more_infinite_scroll' !== paginationType) {
      return;
    }

    this.isInfinteScroll = 'load_more_infinite_scroll' === paginationType; // When spinner is not available, the button's text should not be hidden.

    this.isSpinnerAvailable = this.getElementSettings('load_more_spinner').value;

    if (!this.isSpinnerAvailable) {
      this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner);
    }

    if (this.isInfinteScroll) {
      this.handleInfiniteScroll();
    } else if (this.elements.loadMoreSpinnerWrapper) {
      // Instead of creating 2 spinners for on-click and infinity-scroll, one spinner will be used so it should be appended to the button in on-click mode.
      this.elements.loadMoreButton.insertAdjacentElement('beforeEnd', this.elements.loadMoreSpinnerWrapper);
    } // Set the post id and element id for the ajax request.


    this.elementId = this.getID();
    this.postId = elementorFrontendConfig.post.id; // Set the current page and last page for handling the load more post and when no more posts to show.

    this.currentPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-page'));
    this.maxPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-max-page'));

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  } // Handle load more functionality for infinity-scroll type.


  handleInfiniteScroll() {
    if (this.isEdit) {
      return;
    }

    this.observer = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (!event.isInViewport || this.isLoading) {
          return;
        } // When the observer is triggered it won't be triggered without scrolling, but sometimes there will be no scrollbar to trigger it again.


        this.observer.unobserve(this.elements.loadMoreAnchor);
        this.handlePostsQuery().then(() => {
          if (this.currentPage !== this.maxPage) {
            this.observer.observe(this.elements.loadMoreAnchor);
          }
        });
      }
    });
    this.observer.observe(this.elements.loadMoreAnchor);
  }

  handleUiBeforeLoading() {
    this.isLoading = true;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin);
    }

    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading);
  }

  handleUiAfterLoading() {
    this.isLoading = false;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin);
    }

    if (this.isInfinteScroll && this.elements.loadMoreSpinnerWrapper) {
      // Since the spinner has to be shown after the new content (posts), it should be appended after the anchor element.
      this.elements.loadMoreAnchor.insertAdjacentElement('afterend', this.elements.loadMoreSpinnerWrapper);
    }

    this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading);
  }

  handleUiWhenNoPosts() {
    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd);
  }

  handleSuccessFetch(result) {
    this.handleUiAfterLoading();
    const posts = result.querySelectorAll('.elementor-posts-container > article');
    const nextPageUrl = result.querySelector('.e-load-more-anchor').getAttribute('data-next-page'); // Converting HTMLCollection to an Array and iterate it.

    const postsHTML = [...posts].reduce((accumulator, post) => {
      return accumulator + post.outerHTML;
    }, '');
    this.elements.postsContainer.insertAdjacentHTML('beforeend', postsHTML);
    this.elements.loadMoreAnchor.setAttribute('data-page', this.currentPage);
    this.elements.loadMoreAnchor.setAttribute('data-next-page', nextPageUrl);

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  }

  handlePostsQuery() {
    this.handleUiBeforeLoading();
    this.currentPage++;
    const nextPageUrl = this.elements.loadMoreAnchor.getAttribute('data-next-page');
    return fetch(nextPageUrl).then(response => response.text()).then(html => {
      // Convert the HTML string into a document object
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, 'text/html');
      this.handleSuccessFetch(doc);
    }).catch(err => {
      console.warn('Something went wrong.', err);
    });
  }

}

exports.default = LoadMore;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/posts.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/posts.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getSkinPrefix() {
    return 'classic_';
  },

  bindEvents() {
    var cid = this.getModelCID();
    elementorFrontend.addListenerOnce(cid, 'resize', this.onWindowResize);
  },

  getClosureMethodsNames() {
    return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this, arguments).concat(['fitImages', 'onWindowResize', 'runMasonry']);
  },

  getDefaultSettings() {
    return {
      classes: {
        fitHeight: 'elementor-fit-height',
        hasItemRatio: 'elementor-has-item-ratio'
      },
      selectors: {
        postsContainer: '.elementor-posts-container',
        post: '.elementor-post',
        postThumbnail: '.elementor-post__thumbnail',
        postThumbnailImage: '.elementor-post__thumbnail img'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $postsContainer: this.$element.find(selectors.postsContainer),
      $posts: this.$element.find(selectors.post)
    };
  },

  fitImage($post) {
    var settings = this.getSettings(),
        $imageParent = $post.find(settings.selectors.postThumbnail),
        $image = $imageParent.find('img'),
        image = $image[0];

    if (!image) {
      return;
    }

    var imageParentRatio = $imageParent.outerHeight() / $imageParent.outerWidth(),
        imageRatio = image.naturalHeight / image.naturalWidth;
    $imageParent.toggleClass(settings.classes.fitHeight, imageRatio < imageParentRatio);
  },

  fitImages() {
    var $ = jQuery,
        self = this,
        itemRatio = getComputedStyle(this.$element[0], ':after').content,
        settings = this.getSettings();
    this.elements.$postsContainer.toggleClass(settings.classes.hasItemRatio, !!itemRatio.match(/\d/));

    if (self.isMasonryEnabled()) {
      return;
    }

    this.elements.$posts.each(function () {
      var $post = $(this),
          $image = $post.find(settings.selectors.postThumbnailImage);
      self.fitImage($post);
      $image.on('load', function () {
        self.fitImage($post);
      });
    });
  },

  setColsCountSettings() {
    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        settings = this.getElementSettings(),
        skinPrefix = this.getSkinPrefix(),
        colsCount;

    switch (currentDeviceMode) {
      case 'mobile':
        colsCount = settings[skinPrefix + 'columns_mobile'];
        break;

      case 'tablet':
        colsCount = settings[skinPrefix + 'columns_tablet'];
        break;

      default:
        colsCount = settings[skinPrefix + 'columns'];
    }

    this.setSettings('colsCount', colsCount);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings(this.getSkinPrefix() + 'masonry');
  },

  initMasonry() {
    imagesLoaded(this.elements.$posts, this.runMasonry);
  },

  runMasonry() {
    var elements = this.elements;
    elements.$posts.css({
      marginTop: '',
      transitionDuration: ''
    });
    this.setColsCountSettings();
    var colsCount = this.getSettings('colsCount'),
        hasMasonry = this.isMasonryEnabled() && colsCount >= 2;
    elements.$postsContainer.toggleClass('elementor-posts-masonry', hasMasonry);

    if (!hasMasonry) {
      elements.$postsContainer.height('');
      return;
    }
    /* The `verticalSpaceBetween` variable is setup in a way that supports older versions of the portfolio widget */


    var verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'row_gap.size');

    if ('' === this.getSkinPrefix() && '' === verticalSpaceBetween) {
      verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'item_gap.size');
    }

    var masonry = new elementorModules.utils.Masonry({
      container: elements.$postsContainer,
      items: elements.$posts.filter(':visible'),
      columnsCount: this.getSettings('colsCount'),
      verticalSpaceBetween
    });
    masonry.run();
  },

  run() {
    // For slow browsers
    setTimeout(this.fitImages, 0);
    this.initMasonry();
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.bindEvents();
    this.run();
  },

  onWindowResize() {
    this.fitImages();
    this.runMasonry();
  },

  onElementChange() {
    this.fitImages();
    setTimeout(this.runMasonry);
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js":
/*!***************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _loadMore = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js"));

class ArchivePostsLoadMore extends _loadMore.default {}

exports.default = ArchivePostsLoadMore;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js":
/*!****************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _cards = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js"));

var _default = _cards.default.extend({
  getSkinPrefix() {
    return 'archive_cards_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js":
/*!******************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ../../../../../posts/assets/js/frontend/handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  getSkinPrefix() {
    return 'archive_classic_';
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=archive-posts.22a6d49be96f6e1aa290.bundle.js.mapPK!1��m��2assets/js/load-more.cd76720206dc6d21abc0.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["load-more"],{

/***/ "../modules/posts/assets/js/frontend/handlers/load-more.js":
/*!*****************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/load-more.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class LoadMore extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        postsContainer: '.elementor-posts-container',
        loadMoreButton: '.elementor-button',
        loadMoreSpinnerWrapper: '.e-load-more-spinner',
        loadMoreSpinner: '.e-load-more-spinner i, .e-load-more-spinner svg',
        loadMoreAnchor: '.e-load-more-anchor'
      },
      classes: {
        loadMoreSpin: 'eicon-animation-spin',
        loadMoreIsLoading: 'e-load-more-pagination-loading',
        loadMorePaginationEnd: 'e-load-more-pagination-end',
        loadMoreNoSpinner: 'e-load-more-no-spinner'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      postsWidgetWrapper: this.$element[0],
      postsContainer: this.$element[0].querySelector(selectors.postsContainer),
      loadMoreButton: this.$element[0].querySelector(selectors.loadMoreButton),
      loadMoreSpinnerWrapper: this.$element[0].querySelector(selectors.loadMoreSpinnerWrapper),
      loadMoreSpinner: this.$element[0].querySelector(selectors.loadMoreSpinner),
      loadMoreAnchor: this.$element[0].querySelector(selectors.loadMoreAnchor)
    };
  }

  bindEvents() {
    super.bindEvents(); // Handle load more functionality for on-click type.

    if (!this.elements.loadMoreButton) {
      return;
    }

    this.elements.loadMoreButton.addEventListener('click', event => {
      if (this.isLoading) {
        return;
      }

      event.preventDefault();
      this.handlePostsQuery();
    });
  }

  onInit() {
    super.onInit();
    this.classes = this.getSettings('classes');
    this.isLoading = false;
    const paginationType = this.getElementSettings('pagination_type');

    if ('load_more_on_click' !== paginationType && 'load_more_infinite_scroll' !== paginationType) {
      return;
    }

    this.isInfinteScroll = 'load_more_infinite_scroll' === paginationType; // When spinner is not available, the button's text should not be hidden.

    this.isSpinnerAvailable = this.getElementSettings('load_more_spinner').value;

    if (!this.isSpinnerAvailable) {
      this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner);
    }

    if (this.isInfinteScroll) {
      this.handleInfiniteScroll();
    } else if (this.elements.loadMoreSpinnerWrapper) {
      // Instead of creating 2 spinners for on-click and infinity-scroll, one spinner will be used so it should be appended to the button in on-click mode.
      this.elements.loadMoreButton.insertAdjacentElement('beforeEnd', this.elements.loadMoreSpinnerWrapper);
    } // Set the post id and element id for the ajax request.


    this.elementId = this.getID();
    this.postId = elementorFrontendConfig.post.id; // Set the current page and last page for handling the load more post and when no more posts to show.

    this.currentPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-page'));
    this.maxPage = parseInt(this.elements.loadMoreAnchor.getAttribute('data-max-page'));

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  } // Handle load more functionality for infinity-scroll type.


  handleInfiniteScroll() {
    if (this.isEdit) {
      return;
    }

    this.observer = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (!event.isInViewport || this.isLoading) {
          return;
        } // When the observer is triggered it won't be triggered without scrolling, but sometimes there will be no scrollbar to trigger it again.


        this.observer.unobserve(this.elements.loadMoreAnchor);
        this.handlePostsQuery().then(() => {
          if (this.currentPage !== this.maxPage) {
            this.observer.observe(this.elements.loadMoreAnchor);
          }
        });
      }
    });
    this.observer.observe(this.elements.loadMoreAnchor);
  }

  handleUiBeforeLoading() {
    this.isLoading = true;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin);
    }

    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading);
  }

  handleUiAfterLoading() {
    this.isLoading = false;

    if (this.elements.loadMoreSpinner) {
      this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin);
    }

    if (this.isInfinteScroll && this.elements.loadMoreSpinnerWrapper) {
      // Since the spinner has to be shown after the new content (posts), it should be appended after the anchor element.
      this.elements.loadMoreAnchor.insertAdjacentElement('afterend', this.elements.loadMoreSpinnerWrapper);
    }

    this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading);
  }

  handleUiWhenNoPosts() {
    this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd);
  }

  handleSuccessFetch(result) {
    this.handleUiAfterLoading();
    const posts = result.querySelectorAll('.elementor-posts-container > article');
    const nextPageUrl = result.querySelector('.e-load-more-anchor').getAttribute('data-next-page'); // Converting HTMLCollection to an Array and iterate it.

    const postsHTML = [...posts].reduce((accumulator, post) => {
      return accumulator + post.outerHTML;
    }, '');
    this.elements.postsContainer.insertAdjacentHTML('beforeend', postsHTML);
    this.elements.loadMoreAnchor.setAttribute('data-page', this.currentPage);
    this.elements.loadMoreAnchor.setAttribute('data-next-page', nextPageUrl);

    if (this.currentPage === this.maxPage) {
      this.handleUiWhenNoPosts();
    }
  }

  handlePostsQuery() {
    this.handleUiBeforeLoading();
    this.currentPage++;
    const nextPageUrl = this.elements.loadMoreAnchor.getAttribute('data-next-page');
    return fetch(nextPageUrl).then(response => response.text()).then(html => {
      // Convert the HTML string into a document object
      const parser = new DOMParser();
      const doc = parser.parseFromString(html, 'text/html');
      this.handleSuccessFetch(doc);
    }).catch(err => {
      console.warn('Something went wrong.', err);
    });
  }

}

exports.default = LoadMore;

/***/ })

}]);
//# sourceMappingURL=load-more.cd76720206dc6d21abc0.bundle.js.mapPK!(����>assets/js/table-of-contents.f5cd05278297a9d229e1.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[838],{5791:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class TOCHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{widgetContainer:".elementor-widget-container",postContentContainer:'.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"])',expandButton:".elementor-toc__toggle-button--expand",collapseButton:".elementor-toc__toggle-button--collapse",body:".elementor-toc__body",headerTitle:".elementor-toc__header-title"},classes:{anchor:"elementor-menu-anchor",listWrapper:"elementor-toc__list-wrapper",listItem:"elementor-toc__list-item",listTextWrapper:"elementor-toc__list-item-text-wrapper",firstLevelListItem:"elementor-toc__top-level",listItemText:"elementor-toc__list-item-text",activeItem:"elementor-item-active",headingAnchor:"elementor-toc__heading-anchor",collapsed:"elementor-toc--collapsed"},listWrapperTag:"numbers"===this.getElementSettings().marker_view?"ol":"ul"}}getDefaultElements(){const e=this.getSettings();return{$pageContainer:this.getContainer(),$widgetContainer:this.$element.find(e.selectors.widgetContainer),$expandButton:this.$element.find(e.selectors.expandButton),$collapseButton:this.$element.find(e.selectors.collapseButton),$tocBody:this.$element.find(e.selectors.body),$listItems:this.$element.find("."+e.classes.listItem)}}getContainer(){const e=this.getSettings(),t=this.getElementSettings();if(t.container)return jQuery(t.container);const s=this.$element.parents(".elementor");return"popup"===s.attr("data-elementor-type")?s:jQuery(e.selectors.postContentContainer)}bindEvents(){const e=this.getElementSettings();e.minimize_box&&(this.elements.$expandButton.on("click",(()=>this.expandBox())),this.elements.$collapseButton.on("click",(()=>this.collapseBox()))),e.collapse_subitems&&this.elements.$listItems.on("hover",(e=>jQuery(e.target).slideToggle()))}getHeadings(){const e=this.getElementSettings(),t=e.headings_by_tags.join(","),s=this.getSettings("selectors"),i=e.exclude_headings_by_selector;return this.elements.$pageContainer.find(t).not(s.headerTitle).filter(((e,t)=>!jQuery(t).closest(i).length))}addAnchorsBeforeHeadings(){const e=this.getSettings("classes");this.elements.$headings.before((t=>{if(!jQuery(this.elements.$headings[t]).data("hasOwnID"))return`<span id="${e.headingAnchor}-${t}" class="${e.anchor} "></span>`}))}activateItem(e){const t=this.getSettings("classes");if(this.deactivateActiveItem(e),e.addClass(t.activeItem),this.$activeItem=e,!this.getElementSettings("collapse_subitems"))return;let s;s=e.hasClass(t.firstLevelListItem)?e.parent().next():e.parents("."+t.listWrapper).eq(-2),s.length?(this.$activeList=s,this.$activeList.stop().slideDown()):delete this.$activeList}deactivateActiveItem(e){if(!this.$activeItem||this.$activeItem.is(e))return;const{classes:t}=this.getSettings();this.$activeItem.removeClass(t.activeItem),!this.$activeList||e&&this.$activeList[0].contains(e[0])||this.$activeList.slideUp()}followAnchor(e,t){const s=e[0].hash;let i;try{i=jQuery(decodeURIComponent(s))}catch(e){return}elementorFrontend.waypoint(i,(s=>{if(this.itemClicked)return;const n=i.attr("id");"down"===s?(this.viewportItems[n]=!0,this.activateItem(e)):(delete this.viewportItems[n],this.activateItem(this.$listItemTexts.eq(t-1)))}),{offset:"bottom-in-view",triggerOnce:!1}),elementorFrontend.waypoint(i,(s=>{if(this.itemClicked)return;const n=i.attr("id");"down"===s?(delete this.viewportItems[n],Object.keys(this.viewportItems).length&&this.activateItem(this.$listItemTexts.eq(t+1))):(this.viewportItems[n]=!0,this.activateItem(e))}),{offset:0,triggerOnce:!1})}followAnchors(){this.$listItemTexts.each(((e,t)=>this.followAnchor(jQuery(t),e)))}populateTOC(){this.listItemPointer=0;this.getElementSettings().hierarchical_view?this.createNestedList():this.createFlatList(),this.$listItemTexts=this.$element.find(".elementor-toc__list-item-text"),this.$listItemTexts.on("click",this.onListItemClick.bind(this)),elementorFrontend.isEditMode()||this.followAnchors()}createNestedList(){this.headingsData.forEach(((e,t)=>{e.level=0;for(let s=t-1;s>=0;s--){const t=this.headingsData[s];if(t.tag<=e.tag){e.level=t.level,t.tag<e.tag&&e.level++;break}}})),this.elements.$tocBody.html(this.getNestedLevel(0))}createFlatList(){this.elements.$tocBody.html(this.getNestedLevel())}getNestedLevel(e){const t=this.getSettings(),s=this.getElementSettings(),i=this.getElementSettings("icon");let n;i&&(n=elementorFrontend.config.experimentalFeatures.e_font_icon_svg&&!elementorFrontend.isEditMode()?i.rendered_tag:`<i class="${i.value}"></i>`);let l=`<${t.listWrapperTag} class="${t.classes.listWrapper}">`;for(;this.listItemPointer<this.headingsData.length;){const o=this.headingsData[this.listItemPointer];let a=t.classes.listItemText;if(0===o.level&&(a+=" "+t.classes.firstLevelListItem),e>o.level)break;if(e===o.level){l+=`<li class="${t.classes.listItem}">`,l+=`<div class="${t.classes.listTextWrapper}">`;let r=`<a href="#${o.anchorLink}" class="${a}">${o.text}</a>`;"bullets"===s.marker_view&&i&&(r=`${n}${r}`),l+=r,l+="</div>",this.listItemPointer++;const h=this.headingsData[this.listItemPointer];h&&e<h.level&&(l+=this.getNestedLevel(h.level)),l+="</li>"}}return l+=`</${t.listWrapperTag}>`,l}handleNoHeadingsFound(){let e=elementorProFrontend.config.i18n.toc_no_headings_found;return elementorFrontend.isEditMode()&&(e=elementorPro.translate("toc_no_headings_found")),this.elements.$tocBody.html(e)}collapseOnInit(){const e=this.getElementSettings("minimized_on"),t=elementorFrontend.getCurrentDeviceMode();("tablet"===e&&"desktop"!==t||"mobile"===e&&"mobile"===t)&&this.collapseBox()}getHeadingAnchorLink(e,t){const s=this.elements.$headings[e].id,i=this.elements.$headings[e].closest(".elementor-widget").id;let n="";return s?n=s:i&&(n=i),s||i?jQuery(this.elements.$headings[e]).data("hasOwnID",!0):n=`${t.headingAnchor}-${e}`,n}setHeadingsData(){this.headingsData=[];const e=this.getSettings("classes");this.elements.$headings.each(((t,s)=>{const i=this.getHeadingAnchorLink(t,e);this.headingsData.push({tag:+s.nodeName.slice(1),text:s.textContent,anchorLink:i})}))}run(){if(this.elements.$headings=this.getHeadings(),!this.elements.$headings.length)return this.handleNoHeadingsFound();this.setHeadingsData(),elementorFrontend.isEditMode()||this.addAnchorsBeforeHeadings(),this.populateTOC(),this.getElementSettings("minimize_box")&&this.collapseOnInit()}expandBox(){const e=this.getCurrentDeviceSetting("min_height");this.$element.removeClass(this.getSettings("classes.collapsed")),this.elements.$tocBody.slideDown(),this.elements.$widgetContainer.css("min-height",e.size+e.unit)}collapseBox(){this.$element.addClass(this.getSettings("classes.collapsed")),this.elements.$tocBody.slideUp(),this.elements.$widgetContainer.css("min-height","0px")}onInit(...e){super.onInit(...e),this.viewportItems=[],jQuery((()=>this.run()))}onListItemClick(e){this.itemClicked=!0,setTimeout((()=>this.itemClicked=!1),2e3);const t=jQuery(e.target),s=t.parent().next(),i=this.getElementSettings("collapse_subitems");let n;i&&t.hasClass(this.getSettings("classes.firstLevelListItem"))&&s.is(":visible")&&(n=!0),this.activateItem(t),i&&n&&s.slideUp()}}t.default=TOCHandler}}]);PK!I��e�e�7assets/js/video-playlist.5ee0445e2c9b1f2ed68f.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["video-playlist"],{

/***/ "../modules/video-playlist/assets/js/frontend/base-tabs.js":
/*!*****************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/base-tabs.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

// Copied from the core, original path: elementor/assets/dev/js/frontend/handlers/base-tabs.js.
class baseTabs extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        tablist: '[role="tablist"]',
        tabTitle: '.e-tab-title',
        tabContent: '.e-tab-content'
      },
      classes: {
        active: 'e-active'
      },
      showTabFn: 'show',
      hideTabFn: 'hide',
      toggleSelf: true,
      hidePrevious: true,
      autoExpand: true,
      keyDirection: {
        ArrowLeft: elementorFrontendConfig.is_rtl ? 1 : -1,
        ArrowUp: -1,
        ArrowRight: elementorFrontendConfig.is_rtl ? -1 : 1,
        ArrowDown: 1
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $tabTitles: this.findElement(selectors.tabTitle),
      $tabContents: this.findElement(selectors.tabContent)
    };
  }

  activateDefaultTab(videoId) {
    const settings = this.getSettings();

    if (!settings.autoExpand || 'editor' === settings.autoExpand && !this.isEdit) {
      return;
    }

    const defaultActiveTab = this.getEditSettings('activeItemIndex') || videoId || 1,
          originalToggleMethods = {
      showTabFn: settings.showTabFn,
      hideTabFn: settings.hideTabFn
    }; // Toggle tabs without animation to avoid jumping.

    this.setSettings({
      showTabFn: 'show',
      hideTabFn: 'hide'
    });
    this.changeActiveTab(defaultActiveTab); // Return back original toggle effects.

    this.setSettings(originalToggleMethods);
  }

  handleKeyboardNavigation(event) {
    const tab = event.currentTarget,
          $tabList = jQuery(tab.closest(this.getSettings('selectors').tablist)),
          $tabs = $tabList.find(this.getSettings('selectors').tabTitle),
          isVertical = 'vertical' === $tabList.attr('aria-orientation');

    switch (event.key) {
      case 'ArrowLeft':
      case 'ArrowRight':
        if (isVertical) {
          return;
        }

        break;

      case 'ArrowUp':
      case 'ArrowDown':
        if (!isVertical) {
          return;
        }

        event.preventDefault();
        break;

      case 'Home':
        event.preventDefault();
        $tabs.first().trigger('focus');
        return;

      case 'End':
        event.preventDefault();
        $tabs.last().trigger('focus');
        return;

      default:
        return;
    }

    const tabIndex = tab.getAttribute('data-tab') - 1,
          direction = this.getSettings('keyDirection')[event.key],
          nextTab = $tabs[tabIndex + direction];

    if (nextTab) {
      nextTab.focus();
    } else if (-1 === tabIndex + direction) {
      $tabs.last().trigger('focus');
    } else {
      $tabs.first().trigger('focus');
    }
  }

  deactivateActiveTab(tabIndex) {
    const settings = this.getSettings(),
          activeClass = settings.classes.active,
          activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : '.' + activeClass,
          $activeTitle = this.elements.$tabTitles.filter(activeFilter),
          $activeContent = this.elements.$tabContents.filter(activeFilter);
    $activeTitle.add($activeContent).removeClass(activeClass);
    $activeTitle.attr({
      tabindex: '-1',
      'aria-selected': 'false'
    });
    $activeContent[settings.hideTabFn]();
    $activeContent.attr('hidden', 'hidden');
  }

  activateTab(tabIndex) {
    const settings = this.getSettings(),
          activeClass = settings.classes.active,
          $requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
          $requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]'),
          animationDuration = 'show' === settings.showTabFn ? 0 : 400;
    $requestedTitle.add($requestedContent).addClass(activeClass);
    $requestedTitle.attr({
      tabindex: '0',
      'aria-selected': 'true'
    });
    $requestedContent[settings.showTabFn](animationDuration, () => elementorFrontend.elements.$window.trigger('resize'));
    $requestedContent.removeAttr('hidden');
  }

  isActiveTab(tabIndex) {
    return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings('classes.active'));
  }

  bindEvents() {
    this.elements.$tabTitles.on({
      keydown: event => {
        // Support for old markup that includes an `<a>` tag in the tab.
        if (jQuery(event.target).is('a') && `Enter` === event.key) {
          event.preventDefault();
        } // We listen to keydowon event for these keys in order to prevent undesired page scrolling.


        if (['End', 'Home', 'ArrowUp', 'ArrowDown'].includes(event.key)) {
          this.handleKeyboardNavigation(event);
        }
      },
      keyup: event => {
        switch (event.key) {
          case 'ArrowLeft':
          case 'ArrowRight':
            this.handleKeyboardNavigation(event);
            break;

          case 'Enter':
          case 'Space':
            event.preventDefault();
            this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
            break;
        }
      },
      click: event => {
        event.preventDefault();
        this.changeActiveTab(event.currentTarget.getAttribute('data-tab'));
      }
    });
  }

  onInit(...args) {
    super.onInit(...args); //this.activateDefaultTab();
  }

  changeActiveTab(tabIndex) {
    const isActiveTab = this.isActiveTab(tabIndex),
          settings = this.getSettings();

    if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
      this.deactivateActiveTab();
    }

    if (!settings.hidePrevious && isActiveTab) {
      this.deactivateActiveTab(tabIndex);
    }

    if (!isActiveTab) {
      this.activateTab(tabIndex);
    }
  }

}

exports.default = baseTabs;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/event-trigger.js":
/*!*********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/event-trigger.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = triggerEvent;

var _playlistEvent = _interopRequireDefault(__webpack_require__(/*! ./playlist-event */ "../modules/video-playlist/assets/js/frontend/playlist-event.js"));

// Functions to get objects for the playlist event object.
function getEventTabsObject(widgetObject) {
  const currentInnerTabsTitleElements = widgetObject.elements.$innerTabs.filter('.e-active').find('.e-inner-tabs-wrapper .e-inner-tab-title');

  if (currentInnerTabsTitleElements.length) {
    const activeInnerTabTitleElement = currentInnerTabsTitleElements.filter('.e-inner-tab-active');
    return {
      name: activeInnerTabTitleElement.text().trim(),
      index: activeInnerTabTitleElement.index() + 1
    };
  }

  return {
    name: 'none',
    index: 'none'
  };
}

function getEventPlaylistObject(widgetObject, positionInVideoList) {
  const currentVideoIndex = positionInVideoList || widgetObject.currentPlaylistItemIndex;
  return {
    name: widgetObject.getElementSettings('playlist_title'),
    currentItem: currentVideoIndex,
    amount: widgetObject.playlistItemsArray.filter(video => video.videoType !== 'section').length
  };
}

function getEventVideoObject(widgetObject, positionInVideoList) {
  const currentVideoIndex = positionInVideoList || widgetObject.currentPlaylistItemIndex,
        currentVideo = widgetObject.playlistItemsArray[currentVideoIndex - 1];
  return {
    provider: currentVideo.videoType,
    url: currentVideo.videoUrl,
    title: currentVideo.videoTitle,
    duration: currentVideo.videoDuration
  };
}

async function getEventEventObject(widgetObject, eventType, eventTrigger, positionInVideoList) {
  const currentVideoIndex = positionInVideoList || widgetObject.currentPlaylistItemIndex,
        currentVideo = widgetObject.playlistItemsArray[currentVideoIndex - 1];
  return {
    type: eventType,
    time: await currentVideo.playerInstance.getCurrentTime(),
    element: widgetObject.$element,
    trigger: eventTrigger,
    watchCount: currentVideo.playerInstance.watchCount
  };
}

async function triggerEvent(widgetObject, eventType, eventTrigger, positionInVideoList) {
  const currentEvent = new _playlistEvent.default({
    event: await getEventEventObject(widgetObject, eventType, eventTrigger, positionInVideoList),
    tab: getEventTabsObject(widgetObject),
    playlist: getEventPlaylistObject(widgetObject, positionInVideoList),
    video: getEventVideoObject(widgetObject, positionInVideoList)
  });
  jQuery('body').trigger('elementor-video-playList', currentEvent);
}

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/handler.js":
/*!***************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/handler.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _baseTabs = _interopRequireDefault(__webpack_require__(/*! ./base-tabs */ "../modules/video-playlist/assets/js/frontend/base-tabs.js"));

var _playerYoutube = _interopRequireDefault(__webpack_require__(/*! ./player-youtube */ "../modules/video-playlist/assets/js/frontend/player-youtube.js"));

var _playerVimeo = _interopRequireDefault(__webpack_require__(/*! ./player-vimeo */ "../modules/video-playlist/assets/js/frontend/player-vimeo.js"));

var _playerHosted = _interopRequireDefault(__webpack_require__(/*! ./player-hosted */ "../modules/video-playlist/assets/js/frontend/player-hosted.js"));

var _scrollUtils = __webpack_require__(/*! ./scroll-utils */ "../modules/video-playlist/assets/js/frontend/scroll-utils.js");

var _innerTabs = __webpack_require__(/*! ./inner-tabs */ "../modules/video-playlist/assets/js/frontend/inner-tabs.js");

var _urlParams = __webpack_require__(/*! ./url-params */ "../modules/video-playlist/assets/js/frontend/url-params.js");

var _eventTrigger = _interopRequireDefault(__webpack_require__(/*! ./event-trigger */ "../modules/video-playlist/assets/js/frontend/event-trigger.js"));

class VideoPlaylistHandler extends _baseTabs.default {
  getDefaultSettings() {
    const defaultSettings = super.getDefaultSettings(),
          selectors = {
      tabsWrapper: '.e-tabs-items-wrapper',
      tabsItems: '.e-tabs-items',
      toggleVideosDisplayButton: '.e-tabs-toggle-videos-display-button',
      videos: '.e-tabs-content-wrapper .e-tab-content',
      innerTabs: '.e-tabs-inner-tabs .e-tab-content',
      imageOverlay: '.elementor-custom-embed-image-overlay'
    };
    return { ...defaultSettings,
      selectors: { ...defaultSettings.selectors,
        ...selectors
      }
    };
  }

  getDefaultElements() {
    const elements = super.getDefaultElements(),
          selectors = this.getSettings('selectors');
    return { ...elements,
      $tabsWrapper: this.findElement(selectors.tabsWrapper),
      $tabsItems: this.findElement(selectors.tabsItems),
      $toggleVideosDisplayButton: this.findElement(selectors.toggleVideosDisplayButton),
      $videos: this.findElement(selectors.videos),
      $innerTabs: this.findElement(selectors.innerTabs),
      $imageOverlay: this.findElement(selectors.imageOverlay)
    };
  }

  initEditorListeners() {
    super.initEditorListeners();
    this.editorListeners.push({
      event: 'elementorPlaylistWidget:fetchVideoData',
      to: elementor.channels.editor,
      callback: e => {
        this.getCurrentPlayerSelected().setVideoProviderData().then(() => {
          e.currentItem = this.getCurrentItemSelected();
          elementor.channels.editor.trigger('elementorPlaylistWidget:setVideoData', e);
        });
      }
    });
  }

  bindEvents() {
    super.bindEvents(); // Handle the click on the image overlay.

    this.elements.$imageOverlay.on({
      click: e => {
        // Remove image overlay if the user clicked it and play the video in case it is not playing.
        e.currentTarget.remove();
        this.getCurrentPlayerSelected().play();
      }
    }); // Handle the inner tab functionality.

    this.elements.$innerTabs.on({
      click: event => {
        (0, _innerTabs.handleInnerTabs)(event, this);
      }
    }); // Handle scroll on the right panel to make the "shadows" effect when the panel is scrollable.

    this.elements.$tabsItems.on({
      scroll: event => {
        (0, _scrollUtils.handleVideosPanelScroll)(this.elements, event);
      }
    }); // Handle the closing/opening right panel in mobile mode.

    this.elements.$toggleVideosDisplayButton.on({
      click: event => {
        jQuery(event.target).toggleClass('rotate-up');
        jQuery(event.target).toggleClass('rotate-down');
        this.elements.$tabsWrapper.slideToggle('slow');
      }
    });
  }

  onInit(...args) {
    super.onInit(...args);
    this.playlistId = this.getID(); // Handle watched videos.

    this.storageKey = 'watched_videos_' + this.getID();
    const storageObject = elementorFrontend.storage.get(this.storageKey);

    if (storageObject) {
      this.watchedVideosArray = JSON.parse(storageObject);
    } else {
      this.watchedVideosArray = [];
    }

    this.watchedIndication = this.getElementSettings('show_watched_indication'); // Handle indication for scrolling in the right panel.

    (0, _scrollUtils.handleVideosPanelScroll)(this.elements); // Handle the video player functionality, includes "on load" and "next up".

    this.isAutoplayOnLoad = 'yes' === this.getElementSettings('autoplay_on_load');
    this.isAutoplayNextUp = 'yes' === this.getElementSettings('autoplay_next');
    this.isFirstVideoActivated = true;
    this.createPlaylistItems(); // Handle display for show more/less button.

    this.isCollapsible = this.getElementSettings('inner_tab_is_content_collapsible');
    this.innerTabsHeightLimit = this.getElementSettings('inner_tab_collapsible_height'); // Keep track of the element that supposed to be paused since the user selected other video.

    this.currentPlayingPlaylistItemIndex = 1; // Handle the first initial activation of the video in the playlist.

    this.activateInitialVideo(); // Handle Inner Tab activation in edit mode.

    this.activateInnerTabInEditMode();
  }

  onEditSettingsChange(propertyName) {
    // The condition will be true when the user clicks the widget to open the edit panel.
    if ('panel' === propertyName) {
      // The boolean below will prevent running twice the activateDefaultTab function when widget first load and user click the item to play it.
      this.preventTabActivation = true;
    }

    if ('activeItemIndex' !== propertyName) {
      return;
    }

    if (this.preventTabActivation) {
      this.preventTabActivation = false;
      return;
    }

    this.activateDefaultTab();
  }

  activateInitialVideo() {
    this.isPageOnLoad = true;
    const isLazyLoad = !!this.getElementSettings('lazy_load'),
          initialTabIndex = (0, _urlParams.handleURLParams)(this.playlistId, this.playlistItemsArray);
    let isUrlParamsExist = false;

    if (initialTabIndex) {
      this.currentPlaylistItemIndex = initialTabIndex;
      this.currentPlayingPlaylistItemIndex = initialTabIndex;
      isUrlParamsExist = true;
    } else {
      this.currentPlaylistItemIndex = 1;
      this.currentPlayingPlaylistItemIndex = 1;
    } // When there are no url parameters and on-load is on, the video should be played, means the url parameters should be set.


    if (this.isAutoplayOnLoad && !isUrlParamsExist) {
      (0, _urlParams.setVideoParams)(this.playlistId, this.playlistItemsArray, this.currentPlaylistItemIndex);
    }

    this.handleFirstVideoActivation(isLazyLoad);
  }
  /*
  	The scenarios for playing the first video after page load:
  	- lazy load off - video will load on page load before user scroll video to view.
  	- lazy load on - video will load when user scroll the video to view.
     */


  handleFirstVideoActivation(isLazyLoad) {
    if (!isLazyLoad) {
      this.activateDefaultTab(this.currentPlaylistItemIndex); // No need to use the observer since "lazy load is" off.

      return;
    }

    const playlistElement = document.querySelector('.elementor-element-' + this.playlistId + ' .e-tabs-main-area'),
          observer = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (event.isInViewport) {
          this.activateDefaultTab(this.currentPlaylistItemIndex);
          observer.unobserve(playlistElement);
        }
      }
    });
    observer.observe(playlistElement);
  }

  getCurrentItemSelected() {
    return this.playlistItemsArray[this.currentPlaylistItemIndex - 1];
  }

  getCurrentPlayerSelected() {
    return this.getCurrentItemSelected().playerInstance;
  }

  getCurrentPlayerPlaying() {
    return this.playlistItemsArray[this.currentPlayingPlaylistItemIndex - 1].playerInstance;
  } // Handle video selection.


  isVideoShouldBePlayed() {
    // When user select other video, the current video will be paused if is playing.
    if (this.currentPlayingPlaylistItemIndex !== this.currentPlaylistItemIndex) {
      if (this.getCurrentPlayerPlaying()) {
        this.getCurrentPlayerPlaying().pause();
      }

      this.currentPlayingPlaylistItemIndex = this.currentPlaylistItemIndex; // When user select the same video, the current video will be paused if is playing.
    } else if (this.getCurrentPlayerPlaying().isVideoPlaying) {
      this.getCurrentPlayerPlaying().pause();
      return false;
    } // When none of the videos are playing, the selected video should be played.


    return true;
  }

  activateInnerTabInEditMode() {
    if (this.isEdit && this.getEditSettings('innerActiveIndex')) {
      const innerTabActivated = this.getEditSettings('innerActiveIndex'),
            innerTabs = jQuery(this.elements.$innerTabs.eq(this.currentPlaylistItemIndex - 1).find('.e-inner-tab-title a'));
      innerTabs[innerTabActivated].click();
    }
  } // Handle video creation including event listeners and playing video if needed.


  handleVideo(playListItem) {
    // If the video already created (visited once), then just play it if it's not playing already, otherwise pause it.
    if (playListItem.playerInstance) {
      if (this.isVideoShouldBePlayed()) {
        // Remove image overlay if first video item is playing without clicking the image overlay.
        if (1 === this.currentPlaylistItemIndex && this.elements.$imageOverlay) {
          this.elements.$imageOverlay.remove();
        }

        this.playVideoAfterCreation(playListItem);
      }
    } else {
      // If the video is not created yet (first visit), then create the video instance and the event listeners.
      const players = {
        youtube: _playerYoutube.default,
        vimeo: _playerVimeo.default,
        hosted: _playerHosted.default
      }; // Initiating player object.
      // The second parameter holds the video item when event trigger occur with setTimeout.

      playListItem.playerInstance = new players[playListItem.videoType](playListItem, this.currentPlaylistItemIndex);
      playListItem.playerInstance.create().then(() => {
        if (this.isVideoShouldBePlayed()) {
          this.playVideoOnCreation(playListItem);
        } // Handle the functionality when video full screen mode changes.


        playListItem.playerInstance.handleFullScreenChange(isEnterFullScreenMode => {
          // Trigger event when enter/exit full screen mode.
          (0, _eventTrigger.default)(this, isEnterFullScreenMode ? 'videoFullScreen' : 'videoExitFullScreen', 'click');
        }); // Handle the functionality when video play.

        playListItem.playerInstance.handlePlayed(() => {
          const currentPlaylistItem = this.getCurrentItemSelected();
          let videoTrigger = 'click';

          if (currentPlaylistItem.isAutoplayOnLoad) {
            videoTrigger = 'onLoad';
            playListItem.isAutoplayOnLoad = false;
          } else if (currentPlaylistItem.isAutoPlayNextUp) {
            videoTrigger = 'nextVideo';
          } // Trigger event when video started.


          (0, _eventTrigger.default)(this, currentPlaylistItem.playerInstance.isVideoPausedLocal ? 'videoResume' : 'videoStart', videoTrigger);
        }); // Handle the functionality when video ended.

        playListItem.playerInstance.handleEnded(() => {
          // Trigger event when video ended.
          (0, _eventTrigger.default)(this, 'videoEnded', 'click'); // Handle the indication for videos that have been watched and ended.

          if (this.watchedIndication) {
            this.elements.$tabTitles.filter('.e-active').addClass('watched-video');
          }

          const endedVideoId = this.getCurrentItemSelected().dataItemId;

          if (!this.watchedVideosArray.includes(endedVideoId) && this.watchedIndication) {
            this.watchedVideosArray.push(this.getCurrentItemSelected().dataItemId);
            elementorFrontend.storage.set(this.storageKey, JSON.stringify(this.watchedVideosArray));
          } // Handle "next up" functionality.


          if (this.isAutoplayNextUp) {
            // If there are more videos in the list, play next video.
            if (this.playlistItemsArray.length >= ++this.currentPlaylistItemIndex) {
              // Handle the logic for playing next video.
              while ('section' === this.getCurrentItemSelected().videoType) {
                this.currentPlaylistItemIndex++; // When last video in the playlist ended, we reset the this.currentPlaylistItemIndex to the last playlist item index.

                if (this.playlistItemsArray.length < this.currentPlaylistItemIndex) {
                  this.currentPlaylistItemIndex = this.playlistItemsArray.length;
                  return;
                }
              }

              this.changeActiveTab(this.currentPlaylistItemIndex, true);
            }
          }
        }); // Handle the functionality when video paused.
        // The handlePaused will trigger event with setTimeout, positionInVideoList will keep track for the paused video when selecting other video.

        playListItem.playerInstance.handlePaused(positionInVideoList => {
          // Trigger event when video paused.
          (0, _eventTrigger.default)(this, 'videoPaused', 'click', positionInVideoList);
        });
      });
    }
  } // Handle the actual playing of the video that already exists (already created before).


  playVideoAfterCreation(playListItem) {
    playListItem.playerInstance.play();
  } // Handle the actual playing of the video when the video is created.


  playVideoOnCreation(playListItem) {
    // Play the video according to "on load" and "next up" indications.
    if (this.isAutoplayOnLoad) {
      playListItem.isAutoplayOnLoad = true; // Mute the initiated video when "autoplay onload" and then play.

      playListItem.playerInstance.mute();
      playListItem.playerInstance.play();
      this.isAutoplayOnLoad = false;
    } else if (!this.isFirstVideoActivated) {
      playListItem.isAutoPlayNextUp = true;
      playListItem.playerInstance.play();
    }

    this.isFirstVideoActivated = false;
  }

  createPlaylistItems() {
    this.playlistItemsArray = [];
    this.elements.$videos.each((index, tabContent) => {
      const playListItem = {};
      const $tabContent = jQuery(tabContent);
      playListItem.videoUrl = $tabContent.attr('data-video-url');
      playListItem.videoType = $tabContent.attr('data-video-type');
      playListItem.videoTitle = $tabContent.attr('data-video-title');
      playListItem.videoDuration = $tabContent.attr('data-video-duration');
      playListItem.tabContent = tabContent;
      playListItem.dataTab = index + 1;
      playListItem.dataItemId = this.getElementSettings().tabs[index]._id;
      this.playlistItemsArray.push(playListItem);
    }); // When the page loads,the code checks which videos already watched and adding a class accordingly.

    if (this.watchedVideosArray.length > 0 && this.watchedIndication) {
      this.watchedVideosArray.forEach(watchedVideoId => {
        const watchedPlaylistItem = this.playlistItemsArray.find(playlistItem => playlistItem.dataItemId === watchedVideoId);
        this.elements.$tabTitles.filter('[data-tab="' + watchedPlaylistItem.dataTab + '"]').addClass('watched-video');
      });
    }
  }

  changeActiveTab(tabIndex, isVideoSelectedAutomatically) {
    super.changeActiveTab(tabIndex);

    if (this.playlistItemsArray[tabIndex - 1] && this.playlistItemsArray[tabIndex - 1].videoType !== 'section') {
      this.currentPlaylistItemIndex = parseInt(tabIndex);

      if (isVideoSelectedAutomatically) {
        this.currentPlayingPlaylistItemIndex = this.currentPlaylistItemIndex;
      } // Handle on creation of the video and working with it.


      this.handleVideo(this.getCurrentItemSelected(), isVideoSelectedAutomatically); // Set Video params in url only if its not the first video when page load.

      if (!this.isPageOnLoad) {
        (0, _urlParams.setVideoParams)(this.playlistId, this.playlistItemsArray, this.currentPlaylistItemIndex);
      }

      this.isPageOnLoad = false; // Handle the display for the inner tabs buttons as long there are actually inner tabs.

      if (jQuery(this.elements.$innerTabs.eq(tabIndex - 1)).find('.e-inner-tab-content').length > 0) {
        const innerTabsContent = this.elements.$innerTabs.filter('.e-active').find('.e-inner-tab-content');
        (0, _innerTabs.handleInnerTabsButtonsDisplay)(innerTabsContent.toArray(), this.isCollapsible, this.innerTabsHeightLimit);
      }
    }
  }

}

exports.default = VideoPlaylistHandler;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/inner-tabs.js":
/*!******************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/inner-tabs.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.handleInnerTabs = handleInnerTabs;
exports.handleInnerTabsButtonsDisplay = handleInnerTabsButtonsDisplay;
exports.onTabContentButtonsClick = onTabContentButtonsClick;

var _eventTrigger = _interopRequireDefault(__webpack_require__(/*! ./event-trigger */ "../modules/video-playlist/assets/js/frontend/event-trigger.js"));

function toggleInnerTabs(event, clickedTab, widgetObject) {
  const activeTabWrapper = event.currentTarget,
        tabTitles = activeTabWrapper.querySelectorAll('.e-inner-tab-title');

  if (clickedTab.hasClass('e-inner-tab-active') || tabTitles.length < 2) {
    return;
  }

  const tabsContents = activeTabWrapper.querySelectorAll('.e-inner-tab-content');
  tabTitles.forEach(tabTitle => {
    tabTitle.classList.toggle('e-inner-tab-active');
  });
  tabsContents.forEach(tabContent => {
    tabContent.toggleAttribute('hidden');
    tabContent.classList.toggle('e-inner-tab-active');
  });
  handleInnerTabsButtonsDisplay(Array.from(tabsContents), widgetObject.isCollapsible, widgetObject.innerTabsHeightLimit); // Trigger event when tab open.

  (0, _eventTrigger.default)(widgetObject, 'tabOpened', 'click');
}

function handleInnerTabs(event, widgetObject) {
  const clickedTarget = event.target;
  const clickedTagType = clickedTarget.tagName; // Handle click on tab on desktop mode.

  if (clickedTarget.classList.contains('e-inner-tab-title-text')) {
    event.preventDefault();
    const $clickedTab = jQuery(clickedTarget).parent('.e-inner-tab-title');
    toggleInnerTabs(event, $clickedTab, widgetObject);
  } // Handle click on tab on mobile mode.


  if (clickedTarget.classList.contains('e-tab-mobile-title')) {
    const $clickedTab = jQuery(clickedTarget);
    toggleInnerTabs(event, $clickedTab, widgetObject);
  } // Handle click on show-less buttons in tab content.


  if ('button' === clickedTagType.toLowerCase()) {
    onTabContentButtonsClick(event, widgetObject);
  }
}

function handleInnerTabsButtonsDisplay(tabsContents, isCollapsible, innerTabsHeightLimit) {
  if (!isCollapsible) {
    return;
  }

  const activeInnerTab = tabsContents.filter(tabsContent => tabsContent.classList.contains('e-inner-tab-active')),
        innerTabScrollableHeight = activeInnerTab[0].querySelector('.e-inner-tab-text > div').offsetHeight,
        innerTabsLimitHeight = parseInt(innerTabsHeightLimit.size);

  if (innerTabsLimitHeight && innerTabScrollableHeight > innerTabsLimitHeight) {
    activeInnerTab[0].classList.add('show-inner-tab-buttons');
  }
}

function onTabContentButtonsClick(event, widgetObject) {
  const $tabsContent = jQuery(event.currentTarget).find('.e-inner-tab-content'),
        $activeTabContent = $tabsContent.filter('.e-inner-tab-active'),
        buttonsElements = $activeTabContent.find('button');
  buttonsElements.toggleClass('show-button');
  $activeTabContent.toggleClass('show-full-height');
  const eventType = $activeTabContent.hasClass('show-full-height') ? 'tabExpanded' : 'tabCollapsed'; // Trigger event when collapsed/expanded clicked.

  (0, _eventTrigger.default)(widgetObject, eventType, 'click');
}

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/player-base.js":
/*!*******************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/player-base.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class PlayerBase {
  constructor(playlistItem, videoIndex) {
    this.playlistItem = playlistItem;
    this.positionInVideoList = videoIndex;
  }

  formatDuration(duration) {
    const dateObj = new Date(duration * 1000),
          hours = dateObj.getUTCHours(),
          minutes = dateObj.getUTCMinutes(),
          seconds = dateObj.getSeconds();

    if (hours !== 0) {
      return `${hours.toString()}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
    }

    return `${minutes.toString()}:${seconds.toString().padStart(2, '0')}`;
  }

}

exports.default = PlayerBase;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/player-hosted.js":
/*!*********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/player-hosted.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _playerBase = _interopRequireDefault(__webpack_require__(/*! ./player-base */ "../modules/video-playlist/assets/js/frontend/player-base.js"));

class playerHosted extends _playerBase.default {
  constructor(playlistItem, videoIndex) {
    super(playlistItem, videoIndex);
    this.playerObject = null;
    this.watchCount = 0;
    this.isVideoPlaying = false;
    this.isVideoPausedLocal = false;
    this.isVideoSeeking = false;
    this.isVideoEnded = false;
    this.isReady = false;
  }

  create() {
    const videoPromise = new Promise(resolve => {
      const video = document.createElement('video');
      video.setAttribute('controls', '');
      const text = document.createTextNode('Sorry, your browser doesn\'t support embedded videos.');
      const source = document.createElement('source');
      source.setAttribute('src', this.playlistItem.videoUrl);
      source.setAttribute('type', 'video/' + this.playlistItem.videoUrl.split('.').pop());
      video.appendChild(source);
      video.appendChild(text);
      this.playerObject = video;
      this.playlistItem.tabContent.querySelector('div').replaceWith(this.playerObject);
      this.playerObject.addEventListener('canplay', () => {
        // Indication that the video is loaded and can be played and paused.
        this.isReady = true;
        resolve();
      }); // Seeked event indicates that the seeking has been finished, so we reset the boolean for that.

      this.playerObject.addEventListener('seeked', () => {
        this.isVideoSeeking = false;
      }); // Seeking event indicates that the seeking is currently happening, so we change the boolean.

      this.playerObject.addEventListener('seeking', () => {
        clearTimeout(this.seekTimeOut);
        this.isVideoSeeking = true;
      });
    });
    return videoPromise;
  }

  handleEnded(callback) {
    this.playerObject.addEventListener('ended', () => {
      this.watchCount++; // This property will prevent automatic pause trigger when video ended.

      this.isVideoEnded = true;
      this.isVideoPlaying = false;
      callback(this.playlistItem);
    });
  }

  handlePaused(callback) {
    this.playerObject.addEventListener('pause', () => {
      // Prevent pause trigger when the user is seeking video or when the video automatically trigger pause event when ended.
      this.seekTimeOut = setTimeout(() => {
        if (!this.isVideoSeeking && !this.isVideoEnded) {
          callback(this.positionInVideoList); // Indication to know when there is a resume trigger event.

          this.isVideoPausedLocal = true;
        } else {
          this.isVideoEnded = false;
        }
      }, 30);
    });
  }

  handlePlayed(callback) {
    this.playerObject.addEventListener('play', () => {
      // Prevent play trigger when user is seeking video.
      if (!this.isVideoSeeking) {
        callback(this.playlistItem);
      }
    });
  }

  handleFullScreenChange(callback) {
    // Wrapping with jQuery to easily listen all 3 prefixed screen change.
    jQuery(this.playerObject).on('webkitfullscreenchange mozfullscreenchange fullscreenchange', () => {
      callback(document.fullscreenElement);
    });
  }

  getCurrentTime() {
    return this.playerObject.currentTime;
  }

  play() {
    if (!this.isReady) {
      return;
    }

    this.isVideoPlaying = true;
    this.playerObject.play();
  }

  pause() {
    if (!this.isReady) {
      return;
    }

    this.isVideoPlaying = false;
    this.playerObject.pause();
  }

  mute() {
    this.playerObject.muted = true;
  }

}

exports.default = playerHosted;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/player-vimeo.js":
/*!********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/player-vimeo.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _playerBase = _interopRequireDefault(__webpack_require__(/*! ./player-base */ "../modules/video-playlist/assets/js/frontend/player-base.js"));

class playerVimeo extends _playerBase.default {
  constructor(playlistItem, videoIndex) {
    super(playlistItem, videoIndex);
    this.apiProvider = elementorFrontend.utils.vimeo;
    this.playerObject = null;
    this.watchCount = 0;
    this.isVideoInFullScreenChange = false;
    this.isReady = false;
  }

  create() {
    this.currentVideoID = this.apiProvider.getVideoIDFromURL(this.playlistItem.videoUrl);
    return new Promise(resolve => {
      this.apiProvider.onApiReady(apiObject => {
        const playerOptions = {
          id: this.currentVideoID,
          autoplay: true
        };
        this.playerObject = new apiObject.Player(this.playlistItem.tabContent.querySelector('div'), playerOptions); // Indication that the video is loaded and can be played and paused.

        this.playerObject.ready().then(() => {
          this.isReady = true;
          resolve();
        });
      });
    });
  }

  handleEnded(callback) {
    this.playerObject.on('ended', () => {
      this.watchCount++;
      callback(this.playlistItem);
    });
  }

  handlePaused(callback) {
    this.playerObject.on('pause', event => {
      // Prevent "pause" event trigger when page loads with vimeo video and when vimeo video ended, or when entering/exiting full-screen mode.
      if (0 === event.percent || event.percent >= 1 || this.isVideoInFullScreenChange) {
        return;
      }

      callback(this.positionInVideoList);
    });
  }

  handlePlayed(callback) {
    this.playerObject.on('play', () => {
      if (this.isVideoInFullScreenChange) {
        // Full screen change ended with all the extra events (pause and play).
        this.isVideoInFullScreenChange = false;
        return;
      }

      callback(this.playlistItem);
    });
  }

  handleFullScreenChange(callback) {
    this.playerObject.element.addEventListener('fullscreenchange', () => {
      callback(document.fullscreenElement);
      this.isVideoInFullScreenChange = true;
    });
  }

  getCurrentTime() {
    return this.playerObject.getCurrentTime().then(seconds => seconds);
  }

  play() {
    if (!this.isReady) {
      return;
    }

    this.playerObject.play();
  }

  pause() {
    if (!this.isReady) {
      return;
    }

    this.playerObject.pause();
  }

  mute() {
    this.playerObject.setMuted(true);
  }

  async setVideoProviderData() {
    if (!this.currentVideoID && 9 === !this.currentVideoID.length) {
      return;
    }

    const videoId = await this.playerObject.getVideoId();
    const response = await fetch('https://vimeo.com/api/v2/video/' + videoId + '.json');
    const videoData = await response.json();
    this.playlistItem.duration = this.formatDuration(videoData[0].duration);
    this.playlistItem.video_title = videoData[0].title;
    this.playlistItem.thumbnail = {
      url: videoData[0].thumbnail_medium
    };
    return this.playlistItem;
  }

}

exports.default = playerVimeo;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/player-youtube.js":
/*!**********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/player-youtube.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _playerBase = _interopRequireDefault(__webpack_require__(/*! ./player-base */ "../modules/video-playlist/assets/js/frontend/player-base.js"));

class playerYoutube extends _playerBase.default {
  constructor(playlistItem, videoIndex) {
    super(playlistItem, videoIndex);
    this.apiProvider = elementorFrontend.utils.youtube;
    this.playerObject = null;
    this.watchCount = 0;
    this.isVideoPlaying = false;
    this.isVideoPausedLocal = false;
    this.isVideoEnded = false;
    this.seekSequenceArray = [];
    this.pauseCurrentTime = null;
    this.isReady = false;
  }

  create() {
    this.currentVideoID = this.apiProvider.getVideoIDFromURL(this.playlistItem.videoUrl);
    const videoPromise = new Promise(resolve => {
      this.apiProvider.onApiReady(apiObject => {
        const playerOptions = {
          width: '773',
          videoId: this.currentVideoID,
          playerVars: {
            rel: 0,
            showinfo: 0,
            ecver: 2
          },
          events: {
            onReady: () => {
              // Indication that the video is loaded and can be played and paused.
              this.isReady = true;
              resolve();
            }
          }
        };
        this.playerObject = new apiObject.Player(this.playlistItem.tabContent.querySelector('div'), playerOptions);
        this.playerObject.addEventListener('onStateChange', event => {
          // Buffering state.
          if (3 === event.data) {
            // When user is seeking we want to prevent triggering for "pause" and "play".
            // Seeking means a sequence as [2,3], so we check that 2 (pause) is exist before adding "3" (buffering).
            // If there is no "2", it means that this is not a seeking event and we can reset the array.
            if (2 === this.seekSequenceArray[this.seekSequenceArray.length - 1]) {
              this.seekSequenceArray.push(3);
            } else {
              this.seekSequenceArray = [];
              clearTimeout(this.seekTimeOut);
            }
          }
        });
      });
    });
    return videoPromise;
  }

  handleEnded(callback) {
    this.playerObject.addEventListener('onStateChange', event => {
      // Ended state.
      if (0 === event.data) {
        this.watchCount++; // Prevent "video start" event when we seek to "0" on video ended event.
        // We seek to "0" to prevent the display of suggested videos by youtube when video ended.

        this.isVideoEnded = true;
        event.target.seekTo(0);
        event.target.stopVideo();
        this.isVideoPlaying = false;
        callback();
      }
    });
  }

  handlePaused(callback) {
    this.playerObject.addEventListener('onStateChange', event => {
      // Pause state.
      if (2 === event.data) {
        // The pause event can be the start of seek event ([2,3] sequence) so we reset the sequence array and adding 2.
        this.seekSequenceArray = [];
        this.seekSequenceArray.push(2); // Save the current time when pause event occur.

        this.pauseCurrentTime = this.playerObject.playerInfo.currentTime; // We use here a setTimeout, since we don't want to fire the pause event before we can be sure that its not part of seek event.

        this.seekTimeOut = setTimeout(() => {
          if (2 === this.seekSequenceArray.length && 2 === this.seekSequenceArray[0] && 3 === this.seekSequenceArray[1]) {
            this.seekSequenceArray = [];
            clearTimeout(this.seekTimeOut);
          } else {
            callback(this.positionInVideoList); // Indication to know when there is a resume trigger event.

            this.isVideoPausedLocal = true;
          }
        }, 1000);
      }
    });
  }

  handlePlayed(callback) {
    this.playerObject.addEventListener('onStateChange', event => {
      // Prevent "video start" event when we seek to "0" on video ended event.
      if (1 === event.data && !this.isVideoEnded) {
        // Prevent "play" event when it is a seek event ([2,3] sequence).
        if (!(2 === this.seekSequenceArray.length && 2 === this.seekSequenceArray[0] && 3 === this.seekSequenceArray[1])) {
          callback();
        }
      } else {
        this.isVideoEnded = false;
      }
    });
  }

  handleError(callback) {
    this.playerObject.addEventListener('onError', () => {
      callback();
    });
  }

  handleFullScreenChange(callback) {
    this.playerObject.h.addEventListener('fullscreenchange', () => {
      callback(document.fullscreenElement);
    });
  }

  getCurrentTime() {
    const currentTime = this.pauseCurrentTime ? this.pauseCurrentTime : this.playerObject.playerInfo.currentTime;
    this.pauseCurrentTime = null;
    return currentTime;
  }

  play() {
    if (!this.isReady) {
      return;
    }

    this.isVideoPlaying = true;
    this.playerObject.playVideo();
  }

  pause() {
    if (!this.isReady) {
      return;
    }

    this.isVideoPlaying = false;
    this.playerObject.pauseVideo();
  }

  mute() {
    this.playerObject.mute();
  }

  async setVideoProviderData() {
    if (!this.isReady) {
      return;
    }

    if (this.currentVideoID && 11 === this.currentVideoID.length) {
      this.playlistItem.thumbnail = {
        url: 'http://img.youtube.com/vi/' + this.playerObject.getVideoData().video_id + '/maxresdefault.jpg'
      };
      this.playlistItem.video_title = this.playerObject.getVideoData().title;
      this.playlistItem.duration = this.formatDuration(this.playerObject.getDuration());
    } else {
      this.playlistItem.thumbnail = {
        url: ''
      };
      this.playlistItem.video_title = '';
      this.playlistItem.duration = '';
    }
  }

}

exports.default = playerYoutube;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/playlist-event.js":
/*!**********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/playlist-event.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

// state transfer object
class PlaylistEvent {
  constructor({
    event,
    tab,
    playlist,
    video
  }) {
    this.event = {
      type: event.type || '',
      time: event.time || 0,
      element: event.element,
      trigger: event.trigger || '',
      watchCount: event.watchCount || 0
    };
    this.tab = {
      name: tab.name,
      index: tab.index
    };
    this.playlist = {
      name: playlist.name,
      currentItem: playlist.currentItem,
      amount: playlist.amount
    };
    this.video = {
      provider: video.provider,
      url: video.url,
      title: video.title,
      duration: video.duration
    };
  }

}

exports.default = PlaylistEvent;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/scroll-utils.js":
/*!********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/scroll-utils.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.handleVideosPanelScroll = handleVideosPanelScroll;

// Handle the display of top/bottom shadows in playlist item's panel.
function handleVideosPanelScroll(elements, event) {
  if (!event) {
    if (elements.$tabsItems[0].offsetHeight < elements.$tabsItems[0].scrollHeight) {
      elements.$tabsWrapper.addClass('bottom-shadow');
    }

    return;
  }

  if (event.target.scrollTop > 0) {
    elements.$tabsWrapper.addClass('top-shadow');
  } else {
    elements.$tabsWrapper.removeClass('top-shadow');
  }

  if (event.target.offsetHeight + event.target.scrollTop >= event.target.scrollHeight) {
    elements.$tabsWrapper.removeClass('bottom-shadow');
  } else {
    elements.$tabsWrapper.addClass('bottom-shadow');
  }
}

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/url-params.js":
/*!******************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/url-params.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.handleURLParams = handleURLParams;
exports.setVideoParams = setVideoParams;

// Handling the functionality for existing/not-existing url params.
function handleURLParams(playlistId, playlistItemsArray) {
  const params = new URLSearchParams(location.search),
        videoId = params.get('video'),
        playlistName = params.get('playlist'),
        defaultTabIndex = 1; // When there is no data in params, the first video in the list should be active by returning false.

  if (!playlistName) {
    return false;
  } // When there is data in params, we return the tab number for the video.


  if (playlistName === playlistId) {
    const videoItem = playlistItemsArray.find(playlistItem => videoId === playlistItem.dataItemId),
          tabIndex = videoItem ? videoItem.dataTab : defaultTabIndex;

    if (!tabIndex) {
      setVideoParams(playlistId, playlistItemsArray, defaultTabIndex);
    }

    return tabIndex || false;
  }
} // Setting the playlist id and video id on the url.


function setVideoParams(playlistId, playlistItemsArray, videoId) {
  const params = new URLSearchParams(location.search);
  params.set('playlist', playlistId);
  params.set('video', playlistItemsArray[videoId - 1].dataItemId);
  history.replaceState({}, '', location.pathname + '?' + params);
}

/***/ })

}]);
//# sourceMappingURL=video-playlist.5ee0445e2c9b1f2ed68f.bundle.js.mapPK!B7퓝��assets/js/screenshot.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-properties */ "../node_modules/core-js/library/fn/object/define-properties.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js":
/*!*********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptors */ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js ***!
  \*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-symbols */ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/keys.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/keys */ "../node_modules/core-js/library/fn/object/keys.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/promise.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/promise.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/promise */ "../node_modules/core-js/library/fn/promise.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/get */ "../node_modules/core-js/library/fn/reflect/get.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperty(obj, key, value) {
  if (key in obj) {
    _Object$defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/get.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/get.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$get = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/get */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js");

function _get(target, property, receiver) {
  if (typeof Reflect !== "undefined" && _Reflect$get) {
    module.exports = _get = _Reflect$get;
    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _get = function _get(target, property, receiver) {
      var base = superPropBase(target, property);
      if (!base) return;

      var desc = _Object$getOwnPropertyDescriptor(base, property);

      if (desc.get) {
        return desc.get.call(receiver);
      }

      return desc.value;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _get(target, property, receiver || target);
}

module.exports = _get;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

var _Object$getOwnPropertySymbols = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-symbols */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var _Object$getOwnPropertyDescriptors = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptors */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js");

var _Object$defineProperties = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-properties */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var defineProperty = __webpack_require__(/*! ./defineProperty.js */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js");

function ownKeys(object, enumerableOnly) {
  var keys = _Object$keys(object);

  if (_Object$getOwnPropertySymbols) {
    var symbols = _Object$getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        defineProperty(target, key, source[key]);
      });
    } else if (_Object$getOwnPropertyDescriptors) {
      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

module.exports = _objectSpread2;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

function _superPropBase(object, property) {
  while (!Object.prototype.hasOwnProperty.call(object, property)) {
    object = getPrototypeOf(object);
    if (object === null) break;
  }

  return object;
}

module.exports = _superPropBase;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-properties.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-properties.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-properties */ "../node_modules/core-js/library/modules/es6.object.define-properties.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperties(T, D) {
  return $Object.defineProperties(T, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptors.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertyDescriptors;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-symbols.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/keys.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.keys */ "../node_modules/core-js/library/modules/es6.object.keys.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.keys;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/promise.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/library/fn/promise.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.promise */ "../node_modules/core-js/library/modules/es6.promise.js");
__webpack_require__(/*! ../modules/es7.promise.finally */ "../node_modules/core-js/library/modules/es7.promise.finally.js");
__webpack_require__(/*! ../modules/es7.promise.try */ "../node_modules/core-js/library/modules/es7.promise.try.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Promise;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/get.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/get.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.get */ "../node_modules/core-js/library/modules/es6.reflect.get.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.get;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-instance.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-instance.js ***!
  \***************************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_for-of.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_for-of.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_microtask.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_microtask.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_new-promise-capability.js":
/*!**************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_new-promise-capability.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_own-keys.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_own-keys.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all object keys, includes non-enumerable and symbols
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var Reflect = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
  var keys = gOPN.f(anObject(it));
  var getSymbols = gOPS.f;
  return getSymbols ? keys.concat(getSymbols(it)) : keys;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_perform.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_perform.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_promise-resolve.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_promise-resolve.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine-all.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine-all.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];
    else hide(target, key, src[key]);
  } return target;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-species.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-species.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_species-constructor.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_species-constructor.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_task.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_task.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_user-agent.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_user-agent.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-properties.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-properties.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.keys.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.keys.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.promise.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.promise.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/library/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/library/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/library/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.get.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.get.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.6 Reflect.get(target, propertyKey [, receiver])
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");

function get(target, propertyKey /* , receiver */) {
  var receiver = arguments.length < 3 ? target : arguments[2];
  var desc, proto;
  if (anObject(target) === receiver) return target[propertyKey];
  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
    ? desc.value
    : desc.get !== undefined
      ? desc.get.call(receiver)
      : undefined;
  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
}

$export($export.S, 'Reflect', { get: get });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js":
/*!******************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-getownpropertydescriptors
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var ownKeys = __webpack_require__(/*! ./_own-keys */ "../node_modules/core-js/library/modules/_own-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");

$export($export.S, 'Object', {
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
    var O = toIObject(object);
    var getDesc = gOPD.f;
    var keys = ownKeys(O);
    var result = {};
    var i = 0;
    var key, desc;
    while (keys.length > i) {
      desc = getDesc(O, key = keys[i++]);
      if (desc !== undefined) createProperty(result, key, desc);
    }
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.finally.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.finally.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.try.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.try.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/proposal-promise-try
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");

$export($export.S, 'Promise', { 'try': function (callbackfn) {
  var promiseCapability = newPromiseCapability.f(this);
  var result = perform(callbackfn);
  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
  return promiseCapability.promise;
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_enum-bug-keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_enum-bug-keys.js ***!
  \*********************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_html.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_html.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-create.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-create.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-define.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-define.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-step.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-step.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iterators.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iterators.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-create.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_object-create.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dps.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dps.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-gpo.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-gpo.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys-internal.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys-internal.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_set-to-string-tag.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_set-to-string-tag.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared-key.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_shared-key.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-at.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_string-at.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.filter.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.filter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $filter = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(2);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.iterator.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.iterator.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/modules/web.dom.iterable.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/web.dom.iterable.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/modules/es6.array.iterator.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var ITERATOR = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
var ArrayValues = Iterators.Array;

var DOMIterables = {
  CSSRuleList: true, // TODO: Not spec compliant, should be false.
  CSSStyleDeclaration: false,
  CSSValueList: false,
  ClientRectList: false,
  DOMRectList: false,
  DOMStringList: false,
  DOMTokenList: true,
  DataTransferItemList: false,
  FileList: false,
  HTMLAllCollection: false,
  HTMLCollection: false,
  HTMLFormElement: false,
  HTMLSelectElement: false,
  MediaList: true, // TODO: Not spec compliant, should be false.
  MimeTypeArray: false,
  NamedNodeMap: false,
  NodeList: true,
  PaintRequestList: false,
  Plugin: false,
  PluginArray: false,
  SVGLengthList: false,
  SVGNumberList: false,
  SVGPathSegList: false,
  SVGPointList: false,
  SVGStringList: false,
  SVGTransformList: false,
  SourceBufferList: false,
  StyleSheetList: true, // TODO: Not spec compliant, should be false.
  TextTrackCueList: false,
  TextTrackList: false,
  TouchList: false
};

for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
  var NAME = collections[i];
  var explicit = DOMIterables[NAME];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  var key;
  if (proto) {
    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
    Iterators[NAME] = ArrayValues;
    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
  }
}


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!**************************************************************!*\
  !*** ../modules/screenshots/assets/js/preview/screenshot.js ***!
  \**************************************************************/


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.string.iterator.js */ "../node_modules/core-js/modules/es6.string.iterator.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.array.iterator.js */ "../node_modules/core-js/modules/es6.array.iterator.js");

__webpack_require__(/*! core-js/modules/web.dom.iterable.js */ "../node_modules/core-js/modules/web.dom.iterable.js");

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/* global ElementorScreenshotConfig */
var Screenshot = /*#__PURE__*/function (_elementorModules$Vie) {
  (0, _inherits2.default)(Screenshot, _elementorModules$Vie);

  var _super = (0, _createSuper2.default)(Screenshot);

  function Screenshot() {
    (0, _classCallCheck2.default)(this, Screenshot);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Screenshot, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return (0, _objectSpread2.default)({
        empty_content_headline: 'Empty Content.',
        crop: {
          width: 1200,
          height: 1500
        },
        excluded_external_css_urls: ['https://kit-pro.fontawesome.com'],
        external_images_urls: ['https://i.ytimg.com' // Youtube images domain.
        ],
        timeout: 15000,
        // Wait until screenshot taken or fail in 15 secs.
        render_timeout: 5000,
        // Wait until all the element will be loaded or 5 sec and then take screenshot.
        timerLabel: null,
        timer_label: "".concat(ElementorScreenshotConfig.post_id, " - timer"),
        image_placeholder: 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=',
        isDebug: elementorCommonConfig.isElementorDebug,
        isDebugSvg: false
      }, ElementorScreenshotConfig);
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var $elementor = jQuery(ElementorScreenshotConfig.selector);
      var $sections = $elementor.find(' .elementor-section-wrap > .elementor-section');
      return {
        $elementor: $elementor,
        $sections: $sections,
        $firstSection: $sections.first(),
        $notElementorElements: elementorCommon.elements.$body.find('> *:not(style, link)').not($elementor),
        $head: jQuery('head')
      };
    }
  }, {
    key: "onInit",
    value: function onInit() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(Screenshot.prototype), "onInit", this).call(this);
      this.log('Screenshot init', 'time');
      /**
       * hold the timeout timer
       *
       * @type {number|null}
       */

      this.timeoutTimer = setTimeout(this.screenshotFailed.bind(this), this.getSettings('timeout'));
      return this.captureScreenshot();
    }
    /**
     * The main method for this class.
     */

  }, {
    key: "captureScreenshot",
    value: function captureScreenshot() {
      if (!this.elements.$elementor.length) {
        elementorCommon.helpers.consoleWarn('Screenshots: The content of this page is empty, the module will create a fake conent just for this screenshot.');
        this.createFakeContent();
      }

      this.removeUnnecessaryElements();
      this.handleIFrames();
      this.removeFirstSectionMargin();
      this.handleLinks();
      this.loadExternalCss();
      this.loadExternalImages();
      return _promise.default.resolve().then(this.createImage.bind(this)).then(this.createImageElement.bind(this)).then(this.cropCanvas.bind(this)).then(this.save.bind(this)).then(this.screenshotSucceed.bind(this)).catch(this.screenshotFailed.bind(this));
    }
    /**
     * Fake content for documents that dont have any content.
     */

  }, {
    key: "createFakeContent",
    value: function createFakeContent() {
      this.elements.$elementor = jQuery('<div>').css({
        height: this.getSettings('crop.height'),
        width: this.getSettings('crop.width'),
        display: 'flex',
        alignItems: 'center',
        justifyContent: 'center'
      });
      this.elements.$elementor.append(jQuery('<h1>').css({
        fontSize: '85px'
      }).html(this.getSettings('empty_content_headline')));
      document.body.prepend(this.elements.$elementor);
    }
    /**
     * CSS from another server cannot be loaded with the current dom to image library.
     * this method take all the links from another domain and proxy them.
     */

  }, {
    key: "loadExternalCss",
    value: function loadExternalCss() {
      var _this = this;

      var excludedUrls = [this.getSettings('home_url')].concat((0, _toConsumableArray2.default)(this.getSettings('excluded_external_css_urls')));
      var notSelector = excludedUrls.map(function (url) {
        return "[href^=\"".concat(url, "\"]");
      }).join(', ');
      jQuery('link').not(notSelector).each(function (index, el) {
        var $link = jQuery(el),
            $newLink = $link.clone();
        $newLink.attr('href', _this.getScreenshotProxyUrl($link.attr('href')));

        _this.elements.$head.append($newLink);

        $link.remove();
      });
    }
    /**
     * Make a proxy to images urls that has some problems with cross origin (like youtube).
     */

  }, {
    key: "loadExternalImages",
    value: function loadExternalImages() {
      var _this2 = this;

      var selector = this.getSettings('external_images_urls').map(function (url) {
        return "img[src^=\"".concat(url, "\"]");
      }).join(', ');
      jQuery(selector).each(function (index, el) {
        var $img = jQuery(el);
        $img.attr('src', _this2.getScreenshotProxyUrl($img.attr('src')));
      });
    }
    /**
     * Html to images libraries can not snapshot IFrames
     * this method convert all the IFrames to some other elements.
     */

  }, {
    key: "handleIFrames",
    value: function handleIFrames() {
      this.elements.$elementor.find('iframe').each(function (index, el) {
        var $iframe = jQuery(el),
            $iframeMask = jQuery('<div />', {
          css: {
            background: 'gray',
            width: $iframe.width(),
            height: $iframe.height()
          }
        });
        $iframe.before($iframeMask);
        $iframe.remove();
      });
    }
    /**
     * Remove all the sections that should not be in the screenshot.
     */

  }, {
    key: "removeUnnecessaryElements",
    value: function removeUnnecessaryElements() {
      var _this3 = this;

      var currentHeight = 0;
      this.elements.$sections.filter(function (index, el) {
        var shouldBeRemoved = false;

        if (currentHeight >= _this3.getSettings('crop.height')) {
          shouldBeRemoved = true;
        }

        currentHeight += jQuery(el).outerHeight();
        return shouldBeRemoved;
      }).each(function (index, el) {
        el.remove();
      }); // Some 3rd party plugins inject elements into the dom, so this method removes all
      // the elements that was injected, to make sure that it capture a screenshot only of the post itself.

      this.elements.$notElementorElements.remove();
    }
    /**
     * Some urls make some problems to the svg parser.
     * this method convert all the urls to just '/'.
     */

  }, {
    key: "handleLinks",
    value: function handleLinks() {
      elementorCommon.elements.$body.find('a').attr('href', '/');
    }
    /**
     * Remove unnecessary margin from the first element of the post (singles and footers).
     */

  }, {
    key: "removeFirstSectionMargin",
    value: function removeFirstSectionMargin() {
      this.elements.$firstSection.css({
        marginTop: 0
      });
    }
    /**
     * Creates a png image.
     *
     * @return {Promise<unknown>} -
     */

  }, {
    key: "createImage",
    value: function createImage() {
      var _this4 = this;

      var pageLoadedPromise = new _promise.default(function (resolve) {
        window.addEventListener('load', function () {
          resolve();
        });
      });
      var timeOutPromise = new _promise.default(function (resolve) {
        setTimeout(function () {
          resolve();
        }, _this4.getSettings('render_timeout'));
      });
      return _promise.default.race([pageLoadedPromise, timeOutPromise]).then(function () {
        _this4.log('Start creating screenshot.');

        if (_this4.getSettings('isDebugSvg')) {
          domtoimage.toSvg(document.body, {
            imagePlaceholder: _this4.getSettings('image_placeholder')
          }).then(function (svg) {
            return _this4.download(svg);
          });
          return _promise.default.reject('Debug SVG.');
        } // TODO: Extract to util function.


        var isSafari = /^((?!chrome|android).)*safari/i.test(window.userAgent); // Safari browser has some problems with the images that dom-to-images
        // library creates, so in this specific case the screenshot uses html2canvas.
        // Note that dom-to-image creates more accurate screenshot in "not safari" browsers.

        if (isSafari) {
          _this4.log('Creating screenshot with "html2canvas"');

          return html2canvas(document.body).then(function (canvas) {
            return canvas.toDataURL('image/png');
          });
        }

        _this4.log('Creating screenshot with "dom-to-image"');

        return domtoimage.toPng(document.body, {
          imagePlaceholder: _this4.getSettings('image_placeholder')
        });
      });
    }
    /**
     * Download a uri, use for debugging the svg that created from dom to image libraries.
     *
     * @param {string} uri
     */

  }, {
    key: "download",
    value: function download(uri) {
      var $link = jQuery('<a/>', {
        href: uri,
        download: 'debugSvg.svg',
        html: 'Download SVG'
      });
      elementorCommon.elements.$body.append($link);
      $link.trigger('click');
    }
    /**
     * Creates fake image element to get the size of the image later on.
     *
     * @param {string} dataUrl
     * @return {Promise<HTMLImageElement>} -
     */

  }, {
    key: "createImageElement",
    value: function createImageElement(dataUrl) {
      var image = new Image();
      image.src = dataUrl;
      return new _promise.default(function (resolve) {
        image.onload = function () {
          return resolve(image);
        };
      });
    }
    /**
     * Crop the image to requested sizes.
     *
     * @param {HTMLImageElement} image
     * @return {Promise<unknown>} -
     */

  }, {
    key: "cropCanvas",
    value: function cropCanvas(image) {
      var width = this.getSettings('crop.width');
      var height = this.getSettings('crop.height');
      var cropCanvas = document.createElement('canvas'),
          cropContext = cropCanvas.getContext('2d'),
          ratio = width / image.width;
      cropCanvas.width = width;
      cropCanvas.height = height > image.height ? image.height : height;
      cropContext.drawImage(image, 0, 0, image.width, image.height, 0, 0, image.width * ratio, image.height * ratio);
      return _promise.default.resolve(cropCanvas);
    }
    /**
     * Send the image to the server.
     *
     * @param {HTMLCanvasElement} canvas
     * @return {Promise<unknown>} -
     */

  }, {
    key: "save",
    value: function save(canvas) {
      var _this5 = this;

      return new _promise.default(function (resolve, reject) {
        elementorCommon.ajax.addRequest('screenshot_save', {
          data: {
            post_id: _this5.getSettings('post_id'),
            screenshot: canvas.toDataURL('image/png')
          },
          success: function success(url) {
            _this5.log("Screenshot created: ".concat(encodeURI(url)));

            resolve(url);
          },
          error: function error() {
            _this5.log('Failed to create screenshot.');

            reject();
          }
        });
      });
    }
    /**
     * Mark this post screenshot as failed.
     */

  }, {
    key: "markAsFailed",
    value: function markAsFailed() {
      var _this6 = this;

      return new _promise.default(function (resolve, reject) {
        elementorCommon.ajax.addRequest('screenshot_failed', {
          data: {
            post_id: _this6.getSettings('post_id')
          },
          success: function success() {
            _this6.log("Marked as failed.");

            resolve();
          },
          error: function error() {
            _this6.log('Failed to mark this screenshot as failed.');

            reject();
          }
        });
      });
    }
    /**
     * @param {string} url
     * @return {string} -
     */

  }, {
    key: "getScreenshotProxyUrl",
    value: function getScreenshotProxyUrl(url) {
      return "".concat(this.getSettings('home_url'), "?screenshot_proxy&nonce=").concat(this.getSettings('nonce'), "&href=").concat(url);
    }
    /**
     * Notify that the screenshot has been succeed.
     *
     * @param {string} imageUrl
     */

  }, {
    key: "screenshotSucceed",
    value: function screenshotSucceed(imageUrl) {
      this.screenshotDone(true, imageUrl);
    }
    /**
     * Notify that the screenshot has been failed.
     *
     * @param {Error} e
     */

  }, {
    key: "screenshotFailed",
    value: function screenshotFailed(e) {
      var _this7 = this;

      this.log(e, null);
      this.markAsFailed().then(function () {
        return _this7.screenshotDone(false);
      });
    }
    /**
     * Final method of the screenshot.
     *
     * @param {boolean} success
     * @param {string} imageUrl
     */

  }, {
    key: "screenshotDone",
    value: function screenshotDone(success) {
      var imageUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
      clearTimeout(this.timeoutTimer);
      this.timeoutTimer = null; // Send the message to the parent window and not to the top.
      // e.g: The `Theme builder` is loaded into an iFrame so the message of the screenshot
      // should be sent to the `Theme builder` window and not to the top window.

      window.parent.postMessage({
        name: 'capture-screenshot-done',
        success: success,
        id: this.getSettings('post_id'),
        imageUrl: imageUrl
      }, '*');
      this.log("Screenshot ".concat(success ? 'Succeed' : 'Failed', "."), 'timeEnd');
    }
    /**
     * Log messages for debugging.
     *
     * @param {any} message
     * @param {string?} timerMethod
     */

  }, {
    key: "log",
    value: function log(message) {
      var timerMethod = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'timeLog';

      if (!this.getSettings('isDebug')) {
        return;
      } // eslint-disable-next-line no-console


      console.log('string' === typeof message ? "".concat(this.getSettings('post_id'), " - ").concat(message) : message);

      if (timerMethod) {
        // eslint-disable-next-line no-console
        console[timerMethod](this.getSettings('timer_label'));
      }
    }
  }]);
  return Screenshot;
}(elementorModules.ViewModule);

jQuery(function () {
  new Screenshot();
});
})();

/******/ })()
;
//# sourceMappingURL=screenshot.js.mapPK!ƒRݻ�;assets/js/media-carousel.15b78f70034df8ffebad.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[534],{2539:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class CarouselBase extends elementorModules.frontend.handlers.SwiperBase{getDefaultSettings(){return{selectors:{swiperContainer:".elementor-main-swiper",swiperSlide:".swiper-slide"},slidesPerView:{widescreen:3,desktop:3,laptop:3,tablet_extra:3,tablet:2,mobile_extra:2,mobile:1}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.swiperContainer)};return t.$slides=t.$swiperContainer.find(e.swiperSlide),t}getEffect(){return this.getElementSettings("effect")}getDeviceSlidesPerView(e){const t="slides_per_view"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||this.getSettings("slidesPerView")[e])}getSlidesPerView(e){return"slide"===this.getEffect()?this.getDeviceSlidesPerView(e):1}getDeviceSlidesToScroll(e){const t="slides_to_scroll"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||1)}getSlidesToScroll(e){return"slide"===this.getEffect()?this.getDeviceSlidesToScroll(e):1}getSpaceBetween(e){let t="space_between";return e&&"desktop"!==e&&(t+="_"+e),this.getElementSettings(t).size||0}getSwiperOptions(){const e=this.getElementSettings(),t={grabCursor:!0,initialSlide:this.getInitialSlide(),slidesPerView:this.getSlidesPerView("desktop"),slidesPerGroup:this.getSlidesToScroll("desktop"),spaceBetween:this.getSpaceBetween(),loop:"yes"===e.loop,speed:e.speed,effect:this.getEffect(),preventClicksPropagation:!1,slideToClickedSlide:!0,handleElementorBreakpoints:!0};if(e.show_arrows&&(t.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),e.pagination&&(t.pagination={el:".swiper-pagination",type:e.pagination,clickable:!0}),"cube"!==this.getEffect()){const e={},i=elementorFrontend.config.responsive.activeBreakpoints;Object.keys(i).forEach((t=>{e[i[t].value]={slidesPerView:this.getSlidesPerView(t),slidesPerGroup:this.getSlidesToScroll(t),spaceBetween:this.getSpaceBetween(t)}})),t.breakpoints=e}return!this.isEdit&&e.autoplay&&(t.autoplay={delay:e.autoplay_speed,disableOnInteraction:!!e.pause_on_interaction}),t}getDeviceBreakpointValue(e){if(!this.breakpointsDictionary){const e=elementorFrontend.config.responsive.activeBreakpoints;this.breakpointsDictionary={},Object.keys(e).forEach((t=>{this.breakpointsDictionary[t]=e[t].value}))}return this.breakpointsDictionary[e]}updateSpaceBetween(e){const t=e.match("space_between_(.*)"),i=t?t[1]:"desktop",s=this.getSpaceBetween(i);"desktop"!==i?this.swiper.params.breakpoints[this.getDeviceBreakpointValue(i)].spaceBetween=s:this.swiper.params.spaceBetween=s,this.swiper.params.spaceBetween=s,this.swiper.update()}async onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments);const e=this.getElementSettings();if(1>=this.getSlidesCount())return;const t=elementorFrontend.utils.swiper;this.swiper=await new t(this.elements.$swiperContainer,this.getSwiperOptions()),"yes"===e.pause_on_hover&&this.togglePauseOnHover(!0),this.elements.$swiperContainer.data("swiper",this.swiper)}getChangeableProperties(){return{autoplay:"autoplay",pause_on_hover:"pauseOnHover",pause_on_interaction:"disableOnInteraction",autoplay_speed:"delay",speed:"speed",width:"width"}}updateSwiperOption(e){if(0===e.indexOf("width"))return void this.swiper.update();const t=this.getElementSettings(),i=t[e];let s=this.getChangeableProperties()[e],n=i;switch(e){case"autoplay":n=!!i&&{delay:t.autoplay_speed,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"autoplay_speed":s="autoplay",n={delay:i,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"pause_on_hover":this.togglePauseOnHover("yes"===i);break;case"pause_on_interaction":n="yes"===i}"pause_on_hover"!==e&&(this.swiper.params[s]=n),this.swiper.update()}onElementChange(e){if(1>=this.getSlidesCount())return;if(0===e.indexOf("width"))return this.swiper.update(),void(this.thumbsSwiper&&this.thumbsSwiper.update());if(0===e.indexOf("space_between"))return void this.updateSpaceBetween(e);this.getChangeableProperties().hasOwnProperty(e)&&this.updateSwiperOption(e)}onEditSettingsChange(e){1>=this.getSlidesCount()||"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}}t.default=CarouselBase},7393:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=s(i(2539));class MediaCarousel extends n.default{isSlideshow(){return"slideshow"===this.getElementSettings("skin")}getDefaultSettings(...e){const t=super.getDefaultSettings(...e);return this.isSlideshow()&&(t.selectors.thumbsSwiper=".elementor-thumbnails-swiper",t.slidesPerView={widescreen:5,desktop:5,laptop:5,tablet_extra:5,tablet:4,mobile_extra:4,mobile:3}),t}getSlidesPerViewSettingNames(){if(!this.slideshowElementSettings){this.slideshowElementSettings=["slides_per_view"];const e=elementorFrontend.config.responsive.activeBreakpoints;Object.keys(e).forEach((e=>{this.slideshowElementSettings.push("slides_per_view_"+e)}))}return this.slideshowElementSettings}getElementSettings(e){return-1!==this.getSlidesPerViewSettingNames().indexOf(e)&&this.isSlideshow()&&(e="slideshow_"+e),super.getElementSettings(e)}getDefaultElements(...e){const t=this.getSettings("selectors"),i=super.getDefaultElements(...e);return this.isSlideshow()&&(i.$thumbsSwiper=this.$element.find(t.thumbsSwiper)),i}getEffect(){return"coverflow"===this.getElementSettings("skin")?"coverflow":super.getEffect()}getSlidesPerView(e){return this.isSlideshow()?1:"coverflow"===this.getElementSettings("skin")?this.getDeviceSlidesPerView(e):super.getSlidesPerView(e)}getSwiperOptions(){const e=super.getSwiperOptions();return this.isSlideshow()&&(e.loopedSlides=this.getSlidesCount(),delete e.pagination,delete e.breakpoints),e}async onInit(){await super.onInit();const e=this.getSlidesCount();if(!this.isSlideshow()||1>=e)return;const t=this.getElementSettings(),i="yes"===t.loop,s={},n=elementorFrontend.config.responsive.activeBreakpoints,r=this.getDeviceSlidesPerView("desktop");Object.keys(n).forEach((e=>{s[n[e].value]={slidesPerView:this.getDeviceSlidesPerView(e),spaceBetween:this.getSpaceBetween(e)}}));const o={slidesPerView:r,initialSlide:this.getInitialSlide(),centeredSlides:t.centered_slides,slideToClickedSlide:!0,spaceBetween:this.getSpaceBetween(),loopedSlides:e,loop:i,breakpoints:s,handleElementorBreakpoints:!0},l=elementorFrontend.utils.swiper;this.swiper.controller.control=this.thumbsSwiper=await new l(this.elements.$thumbsSwiper,o),this.elements.$thumbsSwiper.data("swiper",this.thumbsSwiper),this.thumbsSwiper.controller.control=this.swiper}}t.default=MediaCarousel}}]);PK!�˂��1assets/js/nav-menu.e248eec66bc3d5587cf6.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["nav-menu"],{

/***/ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js":
/*!*******************************************************************!*\
  !*** ../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  stretchElement: null,

  getDefaultSettings() {
    return {
      selectors: {
        menu: '.elementor-nav-menu',
        anchorLink: '.elementor-nav-menu--main .elementor-item-anchor',
        dropdownMenu: '.elementor-nav-menu__container.elementor-nav-menu--dropdown',
        menuToggle: '.elementor-menu-toggle'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$menu = this.$element.find(selectors.menu);
    elements.$anchorLink = this.$element.find(selectors.anchorLink);
    elements.$dropdownMenu = this.$element.find(selectors.dropdownMenu);
    elements.$dropdownMenuFinalItems = elements.$dropdownMenu.find('.menu-item:not(.menu-item-has-children) > a');
    elements.$menuToggle = this.$element.find(selectors.menuToggle);
    elements.$links = elements.$dropdownMenu.find('a.elementor-item');
    return elements;
  },

  bindEvents() {
    if (!this.elements.$menu.length) {
      return;
    }

    this.elements.$menuToggle.on('click', this.toggleMenu.bind(this));

    if (this.getElementSettings('full_width')) {
      this.elements.$dropdownMenuFinalItems.on('click', this.toggleMenu.bind(this, false));
    }

    elementorFrontend.addListenerOnce(this.$element.data('model-cid'), 'resize', this.stretchMenu);
  },

  initStretchElement() {
    this.stretchElement = new elementorModules.frontend.tools.StretchElement({
      element: this.elements.$dropdownMenu
    });
  },

  toggleNavLinksTabIndex(enabled = true) {
    this.elements.$links.attr('tabindex', enabled ? 0 : -1);
  },

  toggleMenu(show) {
    var isDropdownVisible = this.elements.$menuToggle.hasClass('elementor-active');

    if ('boolean' !== typeof show) {
      show = !isDropdownVisible;
    }

    this.elements.$menuToggle.attr('aria-expanded', show);
    this.elements.$dropdownMenu.attr('aria-hidden', !show);
    this.elements.$menuToggle.toggleClass('elementor-active', show);
    this.toggleNavLinksTabIndex(show);

    if (show && this.getElementSettings('full_width')) {
      this.stretchElement.stretch();
    }
  },

  followMenuAnchors() {
    var self = this;
    self.elements.$anchorLink.each(function () {
      if (location.pathname === this.pathname && '' !== this.hash) {
        self.followMenuAnchor(jQuery(this));
      }
    });
  },

  followMenuAnchor($element) {
    const anchorSelector = $element[0].hash;
    let offset = -300,
        $anchor;

    try {
      // `decodeURIComponent` for UTF8 characters in the hash.
      $anchor = jQuery(decodeURIComponent(anchorSelector));
    } catch (e) {
      return;
    }

    if (!$anchor.length) {
      return;
    }

    if (!$anchor.hasClass('elementor-menu-anchor')) {
      var halfViewport = jQuery(window).height() / 2;
      offset = -$anchor.outerHeight() + halfViewport;
    }

    elementorFrontend.waypoint($anchor, function (direction) {
      if ('down' === direction) {
        $element.addClass('elementor-item-active');
      } else {
        $element.removeClass('elementor-item-active');
      }
    }, {
      offset: '50%',
      triggerOnce: false
    });
    elementorFrontend.waypoint($anchor, function (direction) {
      if ('down' === direction) {
        $element.removeClass('elementor-item-active');
      } else {
        $element.addClass('elementor-item-active');
      }
    }, {
      offset,
      triggerOnce: false
    });
  },

  stretchMenu() {
    if (this.getElementSettings('full_width')) {
      this.stretchElement.stretch();
      this.elements.$dropdownMenu.css('top', this.elements.$menuToggle.outerHeight());
    } else {
      this.stretchElement.reset();
    }
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);

    if (!this.elements.$menu.length) {
      return;
    }

    const elementSettings = this.getElementSettings(),
          iconValue = elementSettings.submenu_icon.value;
    let subIndicatorsContent = '';

    if (iconValue) {
      // The value of iconValue can be either className inside the editor or a markup in the frontend.
      subIndicatorsContent = iconValue.indexOf('<') > -1 ? iconValue : `<i class="${iconValue}"></i>`;
    } // subIndicators param - Added for backwards compatibility:
    // If the old 'indicator' control value = 'none', the <span class="sub-arrow"> wrapper element is removed


    this.elements.$menu.smartmenus({
      subIndicators: '' !== subIndicatorsContent,
      subIndicatorsText: subIndicatorsContent,
      subIndicatorsPos: 'append',
      subMenusMaxWidth: '1000px'
    });
    this.initStretchElement();
    this.stretchMenu();

    if (!elementorFrontend.isEditMode()) {
      this.followMenuAnchors();
    }
  },

  onElementChange(propertyName) {
    if ('full_width' === propertyName) {
      this.stretchMenu();
    }
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=nav-menu.e248eec66bc3d5587cf6.bundle.js.mapPK!9�A?��/assets/js/social.b17f5f1767e41333a1dc.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["social"],{

/***/ "../modules/social/assets/js/frontend/handlers/facebook.js":
/*!*****************************************************************!*\
  !*** ../modules/social/assets/js/frontend/handlers/facebook.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class FacebookHandler extends elementorModules.frontend.handlers.Base {
  getConfig() {
    return elementorProFrontend.config.facebook_sdk;
  }

  setConfig(prop, value) {
    elementorProFrontend.config.facebook_sdk[prop] = value;
  }

  parse() {
    // On FB SDK is loaded, parse current element
    FB.XFBML.parse(this.$element[0]);
  }

  loadSDK() {
    const config = this.getConfig(); // Preventing from ajax request to be sent multiple times when loading multiple widgets

    if (config.isLoading || config.isLoaded) {
      return;
    }

    this.setConfig('isLoading', true);
    jQuery.ajax({
      url: 'https://connect.facebook.net/' + config.lang + '/sdk.js',
      dataType: 'script',
      cache: true,
      success: () => {
        FB.init({
          appId: config.app_id,
          version: 'v2.10',
          xfbml: false
        });
        this.setConfig('isLoaded', true);
        this.setConfig('isLoading', false);
        elementorFrontend.elements.$document.trigger('fb:sdk:loaded');
      }
    });
  }

  onInit(...args) {
    super.onInit(...args);
    this.loadSDK();
    const config = this.getConfig();

    if (config.isLoaded) {
      this.parse();
    } else {
      elementorFrontend.elements.$document.on('fb:sdk:loaded', () => this.parse());
    }
  }

}

exports.default = FacebookHandler;

/***/ })

}]);
//# sourceMappingURL=social.b17f5f1767e41333a1dc.bundle.js.mapPK!�J��AM
AM
assets/js/editor.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/json/stringify */ "../node_modules/core-js/library/fn/json/stringify.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/assign.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/assign */ "../node_modules/core-js/library/fn/object/assign.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/entries.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/entries */ "../node_modules/core-js/library/fn/object/entries.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/keys.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/keys */ "../node_modules/core-js/library/fn/object/keys.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/values.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/values */ "../node_modules/core-js/library/fn/object/values.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/parse-int.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/parse-int */ "../node_modules/core-js/library/fn/parse-int.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/promise.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/promise.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/promise */ "../node_modules/core-js/library/fn/promise.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/get */ "../node_modules/core-js/library/fn/reflect/get.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/weak-map.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/weak-map */ "../node_modules/core-js/library/fn/weak-map.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

function _arrayWithHoles(arr) {
  if (_Array$isArray(arr)) return arr;
}

module.exports = _arrayWithHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Promise = __webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js");

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    _Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new _Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

module.exports = _asyncToGenerator;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperty(obj, key, value) {
  if (key in obj) {
    _Object$defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/get.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/get.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$get = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/get */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js");

function _get(target, property, receiver) {
  if (typeof Reflect !== "undefined" && _Reflect$get) {
    module.exports = _get = _Reflect$get;
    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _get = function _get(target, property, receiver) {
      var base = superPropBase(target, property);
      if (!base) return;

      var desc = _Object$getOwnPropertyDescriptor(base, property);

      if (desc.get) {
        return desc.get.call(receiver);
      }

      return desc.value;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _get(target, property, receiver || target);
}

module.exports = _get;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var _WeakMap = __webpack_require__(/*! @babel/runtime-corejs2/core-js/weak-map */ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

function _getRequireWildcardCache(nodeInterop) {
  if (typeof _WeakMap !== "function") return null;
  var cacheBabelInterop = new _WeakMap();
  var cacheNodeInterop = new _WeakMap();
  return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
    return {
      "default": obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        _Object$defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj["default"] = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

module.exports = _interopRequireWildcard;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js":
/*!******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _iterableToArrayLimit(arr, i) {
  var _i = arr && (typeof _Symbol !== "undefined" && arr[_Symbol$iterator] || arr["@@iterator"]);

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

module.exports = _iterableToArrayLimit;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js ***!
  \*************************************************************************/
/***/ ((module) => {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableRest;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js");

var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js");

function _slicedToArray(arr, i) {
  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}

module.exports = _slicedToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

function _superPropBase(object, property) {
  while (!Object.prototype.hasOwnProperty.call(object, property)) {
    object = getPrototypeOf(object);
    if (object === null) break;
  }

  return object;
}

module.exports = _superPropBase;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime/regenerator/index.js":
/*!***********************************************************!*\
  !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! regenerator-runtime */ "../node_modules/regenerator-runtime/runtime.js");


/***/ }),

/***/ "../assets/dev/js/editor/element-editor-module.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/element-editor-module.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementorModules.editor.utils.Module.extend({
  elementType: null,
  __construct: function __construct(elementType) {
    this.elementType = elementType;
    this.addEditorListener();
  },
  addEditorListener: function addEditorListener() {
    var self = this;

    if (self.onElementChange) {
      var eventName = 'change';

      if ('global' !== self.elementType) {
        eventName += ':' + self.elementType;
      }

      elementor.channels.editor.on(eventName, function (controlView, elementView) {
        self.onElementChange(controlView.model.get('name'), controlView, elementView);
      });
    }
  },

  /**
   * Add a spinner to a control inside its control title.
   *
   * @param {string} controlName - The control name to add the spinner to.
   *
   * @return {void}
   */
  addControlSpinner: function addControlSpinner(controlName) {
    var $el = this.getEditorControlView(controlName).$el,
        $input = $el.find(':input'); // Exit if there is a spinner already.

    if ($el.find('.elementor-control-spinner').length) {
      return;
    }

    $input.attr('disabled', true);
    $el.find('.elementor-control-title').after('<span class="elementor-control-spinner"><i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>');
  },

  /**
   * Remove a spinner from a control.
   *
   * @param {string} controlName - The control name to remove the spinner from.
   *
   * @return {void}
   */
  removeControlSpinner: function removeControlSpinner(controlName) {
    var $controlEl = this.getEditorControlView(controlName).$el;
    $controlEl.find(':input').attr('disabled', false);
    $controlEl.find('.elementor-control-spinner').remove();
  },

  /**
   * Add an error message under the control.
   *
   * @param {string} controlName - The control name to add the error to.
   * @param {string} error - Set an error message.
   * @param {string} location - A CSS selector to the element which the error will be appended to.
   *
   * @return {void}
   */
  addControlError: function addControlError(controlName, error) {
    var location = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.elementor-control-content';
    var $el = this.getEditorControlView(controlName).$el; // Remove any existing error in order to override it.

    if ($el.find('.e-control-error').length) {
      $el.find('.e-control-error').remove();
    } // Select only the first elements to prevent cases where the error is added to many elements.
    // (usually in repeater controls).


    $el.find(location).first().after("<span class=\"elementor-control-field-description e-control-error\">".concat(error, "</span>"));
  },

  /**
   * Remove the control error message.
   *
   * @param {string} controlName - The control name to add the error to.
   *
   * @return {void}
   */
  removeControlError: function removeControlError(controlName) {
    var $el = this.getEditorControlView(controlName).$el;
    $el.find('.e-control-error').remove();
  },

  /**
   * Remove any indicators that are related to the control. (e.g. spinner, error, etc.)
   *
   * @param {string} controlName - The control name to reset.
   *
   * @return {void}
   */
  resetControlIndicators: function resetControlIndicators(controlName) {
    this.removeControlSpinner(controlName);
    this.removeControlError(controlName);
  },
  addSectionListener: function addSectionListener(section, callback) {
    var self = this;
    elementor.channels.editor.on('section:activated', function (sectionName, editor) {
      var model = editor.getOption('editedElementView').getEditModel(),
          currentElementType = model.get('elType'),
          _arguments = arguments;

      if ('widget' === currentElementType) {
        currentElementType = model.get('widgetType');
      }

      if (self.elementType === currentElementType && section === sectionName) {
        setTimeout(function () {
          callback.apply(self, _arguments);
        }, 10);
      }
    });
  }
});

/***/ }),

/***/ "../assets/dev/js/editor/inline-controls-stack.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/editor/inline-controls-stack.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.array.iterator.js */ "../node_modules/core-js/modules/es6.array.iterator.js");

__webpack_require__(/*! core-js/modules/web.dom.iterable.js */ "../node_modules/core-js/modules/web.dom.iterable.js");

module.exports = elementorModules.editor.views.ControlsStack.extend({
  activeTab: 'content',
  activeSection: 'settings',
  initialize: function initialize() {
    this.collection = new Backbone.Collection(_.values(this.options.controls));
  },
  filter: function filter(model) {
    if ('section' === model.get('type')) {
      return true;
    }

    var section = model.get('section');
    return !section || section === this.activeSection;
  },
  childViewOptions: function childViewOptions() {
    return {
      elementSettingsModel: this.model
    };
  }
});

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsConfig = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var ConditionsConfig = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(ConditionsConfig, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(ConditionsConfig);

  function ConditionsConfig() {
    (0, _classCallCheck2.default)(this, ConditionsConfig);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ConditionsConfig, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/conditions-config/{id}';
    }
  }]);
  return ConditionsConfig;
}($e.modules.CommandData);

exports.ConditionsConfig = ConditionsConfig;
(0, _defineProperty2.default)(ConditionsConfig, "signature", 'site-editor/conditions-config');
var _default = ConditionsConfig;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/index.js":
/*!************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Templates", {
  enumerable: true,
  get: function get() {
    return _templates.Templates;
  }
});

_Object$defineProperty(exports, "ConditionsConfig", {
  enumerable: true,
  get: function get() {
    return _conditionsConfig.ConditionsConfig;
  }
});

_Object$defineProperty(exports, "TemplatesConditions", {
  enumerable: true,
  get: function get() {
    return _templatesConditions.TemplatesConditions;
  }
});

_Object$defineProperty(exports, "TemplatesConditionsConflicts", {
  enumerable: true,
  get: function get() {
    return _templatesConditionsConflicts.TemplatesConditionsConflicts;
  }
});

var _templates = __webpack_require__(/*! ./templates */ "../core/app/modules/site-editor/assets/js/data/commands/templates.js");

var _conditionsConfig = __webpack_require__(/*! ./conditions-config */ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js");

var _templatesConditions = __webpack_require__(/*! ./templates-conditions */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js");

var _templatesConditionsConflicts = __webpack_require__(/*! ./templates-conditions-conflicts */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js");

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js":
/*!*************************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditionsConflicts = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditionsConflicts = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditionsConflicts, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditionsConflicts);

  function TemplatesConditionsConflicts() {
    (0, _classCallCheck2.default)(this, TemplatesConditionsConflicts);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditionsConflicts, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return "".concat(TemplatesConditionsConflicts.signature, "/{id}");
    }
  }]);
  return TemplatesConditionsConflicts;
}($e.modules.CommandData);

exports.TemplatesConditionsConflicts = TemplatesConditionsConflicts;
(0, _defineProperty2.default)(TemplatesConditionsConflicts, "signature", 'site-editor/templates-conditions-conflicts');
var _default = TemplatesConditionsConflicts;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js":
/*!***************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditions = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditions, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditions);

  function TemplatesConditions() {
    (0, _classCallCheck2.default)(this, TemplatesConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditions, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates-conditions/{id}';
    }
  }]);
  return TemplatesConditions;
}($e.modules.CommandData);

exports.TemplatesConditions = TemplatesConditions;
(0, _defineProperty2.default)(TemplatesConditions, "signature", 'site-editor/templates-conditions');
var _default = TemplatesConditions;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates.js":
/*!****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Templates = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var Templates = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Templates, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Templates);

  function Templates() {
    (0, _classCallCheck2.default)(this, Templates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Templates, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates/{id}';
    }
  }]);
  return Templates;
}($e.modules.CommandData);

exports.Templates = Templates;
(0, _defineProperty2.default)(Templates, "signature", 'site-editor/templates');
var _default = Templates;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/component.js":
/*!*******************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/component.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return this.constructor.namespace;
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;
(0, _defineProperty2.default)(Component, "namespace", 'site-editor');

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/editor.js":
/*!***********************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/editor.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./data/component */ "../core/app/modules/site-editor/assets/js/data/component.js"));

var _commands = __webpack_require__(/*! ./data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var Module = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(Module, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(Module);

  function Module() {
    (0, _classCallCheck2.default)(this, Module);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Module, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      var config = elementor.documents.getCurrent().config;

      if (config.support_site_editor) {
        $e.components.register(new _component.default());
        $e.data.deleteCache($e.components.get(_component.default.namespace), _commands.Templates.signature);
      }
    }
  }]);
  return Module;
}(elementorModules.editor.utils.Module);

exports.default = Module;

/***/ }),

/***/ "../modules/assets-manager/assets/js/editor/editor.js":
/*!************************************************************!*\
  !*** ../modules/assets-manager/assets/js/editor/editor.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  onElementorInit: function onElementorInit() {
    var FontsManager = __webpack_require__(/*! ./font-manager */ "../modules/assets-manager/assets/js/editor/font-manager.js");

    this.assets = {
      font: new FontsManager()
    };
  }
});

/***/ }),

/***/ "../modules/assets-manager/assets/js/editor/font-manager.js":
/*!******************************************************************!*\
  !*** ../modules/assets-manager/assets/js/editor/font-manager.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementorModules.Module.extend({
  _enqueuedFonts: [],
  _enqueuedTypekit: false,
  onFontChange: function onFontChange(fontType, font) {
    if ('custom' !== fontType && 'typekit' !== fontType) {
      return;
    }

    if (-1 !== this._enqueuedFonts.indexOf(font)) {
      return;
    }

    if ('typekit' === fontType && this._enqueuedTypekit) {
      return;
    }

    this.getCustomFont(fontType, font);
  },
  getCustomFont: function getCustomFont(fontType, font) {
    elementorPro.ajax.addRequest('assets_manager_panel_action_data', {
      unique_id: 'font_' + fontType + font,
      data: {
        service: 'font',
        type: fontType,
        font: font
      },
      success: function success(data) {
        if (data.font_face) {
          elementor.$previewContents.find('style').last().after('<style type="text/css">' + data.font_face + '</style>');
        }

        if (data.font_url) {
          elementor.$previewContents.find('link').last().after('<link href="' + data.font_url + '" rel="stylesheet" type="text/css">');
        }
      }
    });

    this._enqueuedFonts.push(font);

    if ('typekit' === fontType) {
      this._enqueuedTypekit = true;
    }
  },
  onInit: function onInit() {
    elementor.channels.editor.on('font:insertion', this.onFontChange.bind(this));
  }
});

/***/ }),

/***/ "../modules/custom-css/assets/js/editor/editor.js":
/*!********************************************************!*\
  !*** ../modules/custom-css/assets/js/editor/editor.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(_default, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "addCustomCss",
    value: function addCustomCss(css, context) {
      if (!context) {
        return;
      }

      var model = context.model,
          customCSS = model.get('settings').get('custom_css');
      var selector = '.elementor-element.elementor-element-' + model.get('id');

      if ('document' === model.get('elType')) {
        selector = elementor.config.document.settings.cssWrapperSelector;
      }

      if (customCSS) {
        css += customCSS.replace(/selector/g, selector);
      }

      return css;
    }
  }, {
    key: "onElementorInit",
    value: function onElementorInit() {
      elementor.hooks.addFilter('editor/style/styleText', this.addCustomCss);
      elementor.on('navigator:init', this.onNavigatorInit.bind(this));
    }
  }, {
    key: "onNavigatorInit",
    value: function onNavigatorInit() {
      elementor.navigator.indicators.customCSS = {
        icon: 'code-bold',
        settingKeys: ['custom_css'],
        title: elementorPro.translate('custom_css'),
        section: 'section_custom_css'
      };
    }
  }]);
  return _default;
}(elementorModules.editor.utils.Module);

exports.default = _default;

/***/ }),

/***/ "../modules/flip-box/assets/js/editor/editor.js":
/*!******************************************************!*\
  !*** ../modules/flip-box/assets/js/editor/editor.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementorModules.editor.utils.Module.extend({
  onElementorInit: function onElementorInit() {
    elementor.channels.editor.on('section:activated', this.onSectionActivated);
  },
  onSectionActivated: function onSectionActivated(sectionName, editor) {
    var editedElement = editor.getOption('editedElementView');

    if ('flip-box' !== editedElement.model.get('widgetType')) {
      return;
    }

    var isSideBSection = -1 !== ['section_side_b_content', 'section_style_b'].indexOf(sectionName);
    editedElement.$el.toggleClass('elementor-flip-box--flipped', isSideBSection);
    var $backLayer = editedElement.$el.find('.elementor-flip-box__back');

    if (isSideBSection) {
      $backLayer.css('transition', 'none');
    }

    if (!isSideBSection) {
      setTimeout(function () {
        $backLayer.css('transition', '');
      }, 10);
    }
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/component.js":
/*!******************************************************!*\
  !*** ../modules/forms/assets/js/editor/component.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/forms/assets/js/editor/hooks/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'forms';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields-map-control.js":
/*!***************************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields-map-control.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementor.modules.controls.Repeater.extend({
  onBeforeRender: function onBeforeRender() {
    this.$el.hide();
  },
  updateMap: function updateMap(fields) {
    var self = this,
        savedMapObject = {};
    self.collection.each(function (model) {
      savedMapObject[model.get('remote_id')] = model.get('local_id');
    });
    self.collection.reset();

    _.each(fields, function (field) {
      var model = {
        remote_id: field.remote_id,
        remote_label: field.remote_label,
        remote_type: field.remote_type ? field.remote_type : '',
        remote_required: field.remote_required ? field.remote_required : false,
        local_id: savedMapObject[field.remote_id] ? savedMapObject[field.remote_id] : ''
      };
      self.collection.add(model);
    });

    self.render();
  },
  onRender: function onRender() {
    elementor.modules.controls.Base.prototype.onRender.apply(this, arguments);
    var self = this;
    self.children.each(function (view) {
      var localFieldsControl = view.children.last(),
          options = {
        '': '- ' + elementor.translate('None') + ' -'
      },
          label = view.model.get('remote_label');

      if (view.model.get('remote_required')) {
        label += '<span class="elementor-required">*</span>';
      }

      _.each(self.elementSettingsModel.get('form_fields').models, function (model, index) {
        // If it's an email field, add only email fields from thr form
        var remoteType = view.model.get('remote_type');

        if ('text' !== remoteType && remoteType !== model.get('field_type')) {
          return;
        }

        options[model.get('custom_id')] = model.get('field_label') || 'Field #' + (index + 1);
      });

      localFieldsControl.model.set('label', label);
      localFieldsControl.model.set('options', options);
      localFieldsControl.render();
      view.$el.find('.elementor-repeater-row-tools').hide();
      view.$el.find('.elementor-repeater-row-controls').removeClass('elementor-repeater-row-controls').find('.elementor-control').css({
        paddingBottom: 0
      });
    });
    self.$el.find('.elementor-button-wrapper').remove();

    if (self.children.length) {
      self.$el.show();
    }
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields-repeater-control.js":
/*!********************************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields-repeater-control.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _fieldsRepeaterRow = _interopRequireDefault(__webpack_require__(/*! ./fields-repeater-row */ "../modules/forms/assets/js/editor/fields-repeater-row.js"));

module.exports = /*#__PURE__*/function (_elementor$modules$co) {
  (0, _inherits2.default)(_class, _elementor$modules$co);

  var _super = (0, _createSuper2.default)(_class);

  function _class() {
    (0, _classCallCheck2.default)(this, _class);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_class, [{
    key: "className",
    value: function className() {
      var classes = (0, _get3.default)((0, _getPrototypeOf2.default)(_class.prototype), "className", this).call(this);
      classes += ' elementor-control-type-repeater';
      return classes;
    }
  }, {
    key: "getChildView",
    value: function getChildView() {
      return _fieldsRepeaterRow.default;
    }
  }, {
    key: "initialize",
    value: function initialize() {
      var _get2,
          _this = this;

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      (_get2 = (0, _get3.default)((0, _getPrototypeOf2.default)(_class.prototype), "initialize", this)).call.apply(_get2, [this].concat(args));

      var formFields = this.container.settings.get('form_fields');
      this.listenTo(formFields, 'change', function (model) {
        return _this.onFormFieldChange(model);
      }).listenTo(formFields, 'remove', function (model) {
        return _this.onFormFieldRemove(model);
      });
    }
  }, {
    key: "getFirstChild",
    value: function getFirstChild() {
      return this.children.findByModel(this.collection.models[0]);
    }
  }, {
    key: "lockFirstStep",
    value: function lockFirstStep() {
      var firstChild = this.getFirstChild();

      if ('step' !== firstChild.model.get('field_type')) {
        return;
      }

      var stepFields = this.collection.where({
        field_type: 'step'
      });

      if (1 < stepFields.length) {
        firstChild.toggleFieldTypeControl(false);
        firstChild.toggleTools(false);
      }

      firstChild.toggleSort(false);
    }
  }, {
    key: "onFormFieldChange",
    value: function onFormFieldChange(model) {
      var fieldType = model.changed.field_type;

      if (!fieldType || 'step' !== fieldType && 'step' !== model._previousAttributes.field_type) {
        return;
      }

      var isStep = 'step' === fieldType;
      this.children.findByModel(model).toggleStepField(isStep);
      this.onStepFieldChanged(isStep);
    }
  }, {
    key: "onFormFieldRemove",
    value: function onFormFieldRemove(model) {
      if ('step' === model.get('field_type')) {
        this.onStepFieldChanged(false);
      }
    }
  }, {
    key: "onStepFieldChanged",
    value: function onStepFieldChanged(isStep) {
      if (isStep) {
        this.lockFirstStep();
        return;
      }

      var stepFields = this.collection.where({
        field_type: 'step'
      });

      if (stepFields.length > 1) {
        return;
      }

      var firstChild = this.getFirstChild();

      if (1 === stepFields.length) {
        firstChild.toggleTools(true);
        firstChild.toggleFieldTypeControl(true);
        return;
      }

      firstChild.toggleSort(true);
    }
  }, {
    key: "onAddChild",
    value: function onAddChild(childView) {
      (0, _get3.default)((0, _getPrototypeOf2.default)(_class.prototype), "onAddChild", this).call(this, childView);

      if ('step' === childView.model.get('field_type')) {
        this.lockFirstStep();
        childView.toggleStepField(true);
      }
    }
  }]);
  return _class;
}(elementor.modules.controls.Repeater);

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields-repeater-row.js":
/*!****************************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields-repeater-row.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementor$modules$co) {
  (0, _inherits2.default)(_default, _elementor$modules$co);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "toggleFieldTypeControl",
    value: function toggleFieldTypeControl(show) {
      var fieldTypeModel = this.collection.findWhere({
        name: 'field_type'
      }),
          fieldTypeControl = this.children.findByModel(fieldTypeModel);
      fieldTypeControl.$el.toggle(show);
    }
  }, {
    key: "toggleStepField",
    value: function toggleStepField(isStep) {
      this.$el.toggleClass('elementor-repeater-row--form-step', isStep);
    }
  }, {
    key: "toggleTools",
    value: function toggleTools(show) {
      this.ui.removeButton.add(this.ui.duplicateButton).toggle(show);
    }
  }]);
  return _default;
}(elementor.modules.controls.RepeaterRow);

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields/acceptance.js":
/*!**************************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields/acceptance.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  renderField: function renderField(inputField, item, i, settings) {
    var itemClasses = _.escape(item.css_classes),
        required = '',
        label = '',
        checked = '';

    if (item.required) {
      required = 'required';
    }

    if (item.acceptance_text) {
      label = '<label for="form_field_' + i + '">' + item.acceptance_text + '</label>';
    }

    if (item.checked_by_default) {
      checked = ' checked="checked"';
    }

    return '<div class="elementor-field-subgroup">' + '<span class="elementor-field-option">' + '<input size="1" type="checkbox"' + checked + ' class="elementor-acceptance-field elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' > ' + label + '</span></div>';
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/acceptance', this.renderField, 10, 4);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields/date.js":
/*!********************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields/date.js ***!
  \********************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  renderField: function renderField(inputField, item, i, settings) {
    var itemClasses = _.escape(item.css_classes),
        required = '',
        min = '',
        max = '',
        placeholder = '';

    if (item.required) {
      required = 'required';
    }

    if (item.min_date) {
      min = ' min="' + item.min_date + '"';
    }

    if (item.max_date) {
      max = ' max="' + item.max_date + '"';
    }

    if (item.placeholder) {
      placeholder = ' placeholder="' + item.placeholder + '"';
    }

    if ('yes' === item.use_native_date) {
      itemClasses += ' elementor-use-native';
    }

    return '<input size="1"' + min + max + placeholder + ' pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" type="date" class="elementor-field-textual elementor-date-field elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' >';
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/date', this.renderField, 10, 4);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields/tel.js":
/*!*******************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields/tel.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  renderField: function renderField(inputField, item, i, settings) {
    var itemClasses = _.escape(item.css_classes),
        required = '',
        placeholder = '';

    if (item.required) {
      required = 'required';
    }

    if (item.placeholder) {
      placeholder = ' placeholder="' + item.placeholder + '"';
    }

    itemClasses = 'elementor-field-textual ' + itemClasses;
    return '<input size="1" type="' + item.field_type + '" class="elementor-field-textual elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' ' + placeholder + ' pattern="[0-9()-]" >';
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/tel', this.renderField, 10, 4);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields/time.js":
/*!********************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields/time.js ***!
  \********************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  renderField: function renderField(inputField, item, i, settings) {
    var itemClasses = _.escape(item.css_classes),
        required = '',
        placeholder = '';

    if (item.required) {
      required = 'required';
    }

    if (item.placeholder) {
      placeholder = ' placeholder="' + item.placeholder + '"';
    }

    if ('yes' === item.use_native_time) {
      itemClasses += ' elementor-use-native';
    }

    return '<input size="1" type="time"' + placeholder + ' class="elementor-field-textual elementor-time-field elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="form_field_' + i + '" id="form_field_' + i + '" ' + required + ' >';
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/time', this.renderField, 10, 4);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/fields/upload.js":
/*!**********************************************************!*\
  !*** ../modules/forms/assets/js/editor/fields/upload.js ***!
  \**********************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  renderField: function renderField(inputField, item, i, settings) {
    var itemClasses = _.escape(item.css_classes),
        required = '',
        multiple = '',
        fieldName = 'form_field_';

    if (item.required) {
      required = 'required';
    }

    if (item.allow_multiple_upload) {
      multiple = ' multiple="multiple"';
      fieldName += '[]';
    }

    return '<input size="1"  type="file" class="elementor-file-field elementor-field elementor-size-' + settings.input_size + ' ' + itemClasses + '" name="' + fieldName + '" id="form_field_' + i + '" ' + required + multiple + ' >';
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/upload', this.renderField, 10, 4);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js":
/*!**************************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FormFieldsSanitizeCustomId = void 0;

__webpack_require__(/*! core-js/modules/es6.regexp.match.js */ "../node_modules/core-js/modules/es6.regexp.match.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var FormFieldsSanitizeCustomId = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(FormFieldsSanitizeCustomId, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(FormFieldsSanitizeCustomId);

  function FormFieldsSanitizeCustomId() {
    var _this;

    (0, _classCallCheck2.default)(this, FormFieldsSanitizeCustomId);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ID_SANITIZE_FILTER", /[^\w]/g);
    return _this;
  }

  (0, _createClass2.default)(FormFieldsSanitizeCustomId, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-forms-fields-sanitize-custom-id';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'repeater';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings.custom_id;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers,
          settings = args.settings,
          custom_id = settings.custom_id; // eslint-disable-line camelcase

      if (custom_id.match(this.ID_SANITIZE_FILTER)) {
        // Re-render with old settings.
        containers.forEach(function (container) {
          var panelView = container.panel.getControlView('form_fields'),
              currentItemView = panelView.children.findByModel(container.settings),
              idView = currentItemView.children.find(function (view) {
            return 'custom_id' === view.model.get('name');
          });
          idView.render();
          idView.$el.find('input').trigger('focus');
        }); // Hook-Break.

        return false;
      }

      return true;
    }
  }]);
  return FormFieldsSanitizeCustomId;
}($e.modules.hookData.Dependency);

exports.FormFieldsSanitizeCustomId = FormFieldsSanitizeCustomId;
var _default = FormFieldsSanitizeCustomId;
exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FormFieldsSetCustomId = void 0;

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var FormFieldsSetCustomId = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(FormFieldsSetCustomId, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(FormFieldsSetCustomId);

  function FormFieldsSetCustomId() {
    (0, _classCallCheck2.default)(this, FormFieldsSetCustomId);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FormFieldsSetCustomId, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/repeater/insert';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-forms-fields-set-custom-id';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'widget';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return 'form_fields' === args.name;
    }
  }, {
    key: "apply",
    value: function apply(args, model) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers,
          isDuplicate = $e.commands.isCurrentFirstTrace('document/repeater/duplicate');
      containers.forEach(function (
      /** Container */
      container) {
        var itemContainer = container.repeaters.form_fields.children.find(function (childrenContainer) {
          // Sometimes, one of children is {Empty}.
          if (childrenContainer) {
            return model.get('_id') === childrenContainer.id;
          }

          return false;
        });

        if (!isDuplicate && itemContainer.settings.get('custom_id')) {
          return;
        }

        $e.run('document/elements/settings', {
          container: itemContainer,
          settings: {
            custom_id: 'field_' + itemContainer.id
          },
          options: {
            external: true
          }
        });
      });
      return true;
    }
  }]);
  return FormFieldsSetCustomId;
}($e.modules.hookData.After);

exports.FormFieldsSetCustomId = FormFieldsSetCustomId;
var _default = FormFieldsSetCustomId;
exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/data/form-fields-step.js":
/*!************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/data/form-fields-step.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FormFieldsAddFirstStep = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var FormFieldsAddFirstStep = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(FormFieldsAddFirstStep, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(FormFieldsAddFirstStep);

  function FormFieldsAddFirstStep() {
    (0, _classCallCheck2.default)(this, FormFieldsAddFirstStep);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FormFieldsAddFirstStep, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-forms-fields-first-step';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'repeater';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return 'form' === containers[0].parent.parent.model.get('widgetType') && 'step' === args.settings.field_type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
          containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (
      /** Container */
      container) {
        var firstItem = container.parent.children[0];

        if ('step' === firstItem.settings.get('field_type')) {
          return;
        }

        $e.run('document/repeater/insert', {
          container: container.parent.parent,
          // widget
          name: 'form_fields',
          model: {
            field_type: 'step'
          },
          options: {
            at: 0,
            external: true
          }
        });
      });
      return true;
    }
  }]);
  return FormFieldsAddFirstStep;
}($e.modules.hookData.After);

exports.FormFieldsAddFirstStep = FormFieldsAddFirstStep;
var _default = FormFieldsAddFirstStep;
exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js":
/*!************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FormSanitizeId = void 0;

__webpack_require__(/*! core-js/modules/es6.regexp.match.js */ "../node_modules/core-js/modules/es6.regexp.match.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var FormSanitizeId = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(FormSanitizeId, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(FormSanitizeId);

  function FormSanitizeId() {
    var _this;

    (0, _classCallCheck2.default)(this, FormSanitizeId);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ID_SANITIZE_FILTER", /[^\w]/g);
    return _this;
  }

  (0, _createClass2.default)(FormSanitizeId, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-forms-sanitize-id';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'widget';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return undefined !== args.settings.form_id;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var container = args.container,
          settings = args.settings;
      var form_id = settings.form_id; // eslint-disable-line camelcase
      // Re-render with old settings.

      if (form_id.match(this.ID_SANITIZE_FILTER)) {
        var formIdView = container.panel.getControlView('form_id');
        formIdView.render();
        formIdView.$el.find('input').trigger('focus'); // Hook-Break.

        return false;
      }

      return true;
    }
  }]);
  return FormSanitizeId;
}($e.modules.hookData.Dependency);

exports.FormSanitizeId = FormSanitizeId;
var _default = FormSanitizeId;
exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/data/index.js":
/*!*************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/data/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "FormFieldsSanitizeCustomId", {
  enumerable: true,
  get: function get() {
    return _formFieldsSanitizeCustomId.FormFieldsSanitizeCustomId;
  }
});

_Object$defineProperty(exports, "FormFieldsSetCustomId", {
  enumerable: true,
  get: function get() {
    return _formFieldsSetCustomId.FormFieldsSetCustomId;
  }
});

_Object$defineProperty(exports, "FormFieldsAddFirstStep", {
  enumerable: true,
  get: function get() {
    return _formFieldsStep.FormFieldsAddFirstStep;
  }
});

_Object$defineProperty(exports, "FormSanitizeId", {
  enumerable: true,
  get: function get() {
    return _formSanitizeId.FormSanitizeId;
  }
});

var _formFieldsSanitizeCustomId = __webpack_require__(/*! ./form-fields-sanitize-custom-id */ "../modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js");

var _formFieldsSetCustomId = __webpack_require__(/*! ./form-fields-set-custom-id */ "../modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js");

var _formFieldsStep = __webpack_require__(/*! ./form-fields-step */ "../modules/forms/assets/js/editor/hooks/data/form-fields-step.js");

var _formSanitizeId = __webpack_require__(/*! ./form-sanitize-id */ "../modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js");

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/index.js":
/*!********************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/index.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _data = __webpack_require__(/*! ./data/ */ "../modules/forms/assets/js/editor/hooks/data/index.js");

_Object$keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});

var _ui = __webpack_require__(/*! ./ui/ */ "../modules/forms/assets/js/editor/hooks/ui/index.js");

_Object$keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js":
/*!**********************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FormFieldsUpdateShortCode = void 0;

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var FormFieldsUpdateShortCode = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(FormFieldsUpdateShortCode, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(FormFieldsUpdateShortCode);

  function FormFieldsUpdateShortCode() {
    (0, _classCallCheck2.default)(this, FormFieldsUpdateShortCode);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FormFieldsUpdateShortCode, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-forms-fields-update-shortcode';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'repeater';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      if (!$e.routes.isPartOf('panel/editor') || undefined === args.settings.custom_id) {
        return false;
      }

      return true;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (
      /** Container */
      container) {
        var panelView = container.panel.getControlView('form_fields'),
            currentItemView = panelView.children.find(function (view) {
          return container.id === view.model.get('_id');
        }),
            shortcodeView = currentItemView.children.find(function (view) {
          return 'shortcode' === view.model.get('name');
        });
        shortcodeView.render();
      });
    }
  }]);
  return FormFieldsUpdateShortCode;
}($e.modules.hookUI.After);

exports.FormFieldsUpdateShortCode = FormFieldsUpdateShortCode;
var _default = FormFieldsUpdateShortCode;
exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/editor/hooks/ui/index.js":
/*!***********************************************************!*\
  !*** ../modules/forms/assets/js/editor/hooks/ui/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "FormFieldsUpdateShortCode", {
  enumerable: true,
  get: function get() {
    return _formFieldsUpdateShortcode.FormFieldsUpdateShortCode;
  }
});

var _formFieldsUpdateShortcode = __webpack_require__(/*! ./form-fields-update-shortcode */ "../modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js");

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/activecampaign.js":
/*!************************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/activecampaign.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  fields: {},
  getName: function getName() {
    return 'activecampaign';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'activecampaign_api_credentials_source':
      case 'activecampaign_api_key':
      case 'activecampaign_api_url':
        this.onApiUpdate();
        break;

      case 'activecampaign_list':
        this.onListUpdate();
        break;
    }
  },
  onApiUpdate: function onApiUpdate() {
    var self = this,
        apikeyControlView = self.getEditorControlView('activecampaign_api_key'),
        apiUrlControlView = self.getEditorControlView('activecampaign_api_url'),
        apiCredControlView = self.getEditorControlView('activecampaign_api_credentials_source');

    if ('default' !== apiCredControlView.getControlValue() && ('' === apikeyControlView.getControlValue() || '' === apiUrlControlView.getControlValue())) {
      self.updateOptions('activecampaign_list', []);
      self.getEditorControlView('activecampaign_list').setValue('');
      return;
    }

    self.addControlSpinner('activecampaign_list');
    var cacheKey = this.getCacheKey({
      controls: [apiCredControlView.getControlValue(), apiUrlControlView.getControlValue(), apikeyControlView.getControlValue()]
    });
    self.getActiveCampaignCache('lists', 'activecampaign_list', cacheKey).done(function (data) {
      self.updateOptions('activecampaign_list', data.lists);
      self.fields = data.fields;
    });
  },
  onListUpdate: function onListUpdate() {
    this.updateFieldsMapping();
  },
  updateFieldsMapping: function updateFieldsMapping() {
    var controlView = this.getEditorControlView('activecampaign_list');

    if (!controlView.getControlValue()) {
      return;
    }

    var remoteFields = [{
      remote_label: elementor.translate('Email'),
      remote_type: 'email',
      remote_id: 'email',
      remote_required: true
    }, {
      remote_label: elementor.translate('First Name'),
      remote_type: 'text',
      remote_id: 'first_name',
      remote_required: false
    }, {
      remote_label: elementor.translate('Last Name'),
      remote_type: 'text',
      remote_id: 'last_name',
      remote_required: false
    }, {
      remote_label: elementor.translate('Phone'),
      remote_type: 'text',
      remote_id: 'phone',
      remote_required: false
    }, {
      remote_label: elementor.translate('Organization name'),
      remote_type: 'text',
      remote_id: 'orgname',
      remote_required: false
    }];

    for (var field in this.fields) {
      if (this.fields.hasOwnProperty(field)) {
        remoteFields.push(this.fields[field]);
      }
    }

    this.getEditorControlView('activecampaign_fields_map').updateMap(remoteFields);
  },
  getActiveCampaignCache: function getActiveCampaignCache(type, action, cacheKey, requestArgs) {
    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'activecampaign',
      activecampaign_action: action,
      api_key: this.getEditorControlView('activecampaign_api_key').getControlValue(),
      api_url: this.getEditorControlView('activecampaign_api_url').getControlValue(),
      api_cred: this.getEditorControlView('activecampaign_api_credentials_source').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/base.js":
/*!**************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/base.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var ElementEditorModule = __webpack_require__(/*! elementor-pro/editor/element-editor-module */ "../assets/dev/js/editor/element-editor-module.js");

module.exports = ElementEditorModule.extend({
  __construct: function __construct() {
    this.cache = {};

    ElementEditorModule.prototype.__construct.apply(this, arguments);
  },
  getName: function getName() {
    return '';
  },
  getCacheKey: function getCacheKey(args) {
    return (0, _stringify.default)({
      service: this.getName(),
      data: args
    });
  },
  fetchCache: function fetchCache(type, cacheKey, requestArgs) {
    var _this = this;

    var immediately = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
    return elementorPro.ajax.addRequest('forms_panel_action_data', {
      unique_id: 'integrations_' + this.getName(),
      data: requestArgs,
      success: function success(data) {
        _this.cache[type] = _.extend({}, _this.cache[type]);
        _this.cache[type][cacheKey] = data[type];
      }
    }, immediately);
  },
  updateOptions: function updateOptions(name, options) {
    var controlView = this.getEditorControlView(name);

    if (controlView) {
      this.getEditorControlModel(name).set('options', options);
      controlView.render();
    }
  },
  onInit: function onInit() {
    this.addSectionListener('section_' + this.getName(), this.onSectionActive);
  },
  onSectionActive: function onSectionActive() {
    this.onApiUpdate();
  },
  onApiUpdate: function onApiUpdate() {}
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/convertkit.js":
/*!********************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/convertkit.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  getName: function getName() {
    return 'convertkit';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'convertkit_api_key_source':
      case 'convertkit_custom_api_key':
        this.onApiUpdate();
        break;

      case 'convertkit_form':
        this.onListUpdate();
        break;
    }
  },
  onApiUpdate: function onApiUpdate() {
    var self = this,
        apiKeyControlView = self.getEditorControlView('convertkit_api_key_source'),
        customApikeyControlView = self.getEditorControlView('convertkit_custom_api_key');

    if ('default' !== apiKeyControlView.getControlValue() && '' === customApikeyControlView.getControlValue()) {
      self.updateOptions('convertkit_form', []);
      self.getEditorControlView('convertkit_form').setValue('');
      return;
    }

    self.addControlSpinner('convertkit_form');
    var cacheKey = this.getCacheKey({
      type: 'data',
      controls: [apiKeyControlView.getControlValue(), customApikeyControlView.getControlValue()]
    });
    self.getConvertKitCache('data', 'convertkit_get_forms', cacheKey).done(function (data) {
      self.updateOptions('convertkit_form', data.data.forms);
      self.updateOptions('convertkit_tags', data.data.tags);
    });
  },
  onListUpdate: function onListUpdate() {
    this.updateFieldsMapping();
  },
  updateFieldsMapping: function updateFieldsMapping() {
    var controlView = this.getEditorControlView('convertkit_form');

    if (!controlView.getControlValue()) {
      return;
    }

    var remoteFields = [{
      remote_label: elementor.translate('Email'),
      remote_type: 'email',
      remote_id: 'email',
      remote_required: true
    }, {
      remote_label: elementor.translate('First Name'),
      remote_type: 'text',
      remote_id: 'first_name',
      remote_required: false
    }];
    this.getEditorControlView('convertkit_fields_map').updateMap(remoteFields);
  },
  getConvertKitCache: function getConvertKitCache(type, action, cacheKey, requestArgs) {
    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'convertkit',
      convertkit_action: action,
      api_key: this.getEditorControlView('convertkit_api_key_source').getControlValue(),
      custom_api_key: this.getEditorControlView('convertkit_custom_api_key').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/drip.js":
/*!**************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/drip.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  getName: function getName() {
    return 'drip';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'drip_api_token_source':
      case 'drip_custom_api_token':
        this.onApiUpdate();
        break;

      case 'drip_account':
        this.onDripAccountsUpdate();
        break;
    }
  },
  onApiUpdate: function onApiUpdate() {
    var self = this,
        controlView = self.getEditorControlView('drip_api_token_source'),
        customControlView = self.getEditorControlView('drip_custom_api_token');

    if ('default' !== controlView.getControlValue() && '' === customControlView.getControlValue()) {
      self.updateOptions('drip_account', []);
      self.getEditorControlView('drip_account').setValue('');
      return;
    }

    self.addControlSpinner('drip_account');
    this.getCacheKey({
      type: 'accounts',
      controls: [controlView.getControlValue(), customControlView.getControlValue()]
    });
    self.getDripCache('accounts', 'accounts', controlView.getControlValue()).done(function (data) {
      self.updateOptions('drip_account', data.accounts);
    });
  },
  onDripAccountsUpdate: function onDripAccountsUpdate() {
    this.updateFieldsMapping();
  },
  updateFieldsMapping: function updateFieldsMapping() {
    var controlView = this.getEditorControlView('drip_account');

    if (!controlView.getControlValue()) {
      return;
    }

    var remoteFields = {
      remote_label: elementor.translate('Email'),
      remote_type: 'email',
      remote_id: 'email',
      remote_required: true
    };
    this.getEditorControlView('drip_fields_map').updateMap([remoteFields]);
  },
  getDripCache: function getDripCache(type, action, cacheKey, requestArgs) {
    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'drip',
      drip_action: action,
      api_token: this.getEditorControlView('drip_api_token_source').getControlValue(),
      custom_api_token: this.getEditorControlView('drip_custom_api_token').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/getresponse.js":
/*!*********************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/getresponse.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  getName: function getName() {
    return 'getresponse';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'getresponse_custom_api_key':
      case 'getresponse_api_key_source':
        this.onApiUpdate();
        break;

      case 'getresponse_list':
        this.onGetResonseListUpdate();
        break;
    }
  },
  onApiUpdate: function onApiUpdate() {
    var self = this,
        controlView = self.getEditorControlView('getresponse_api_key_source'),
        customControlView = self.getEditorControlView('getresponse_custom_api_key');

    if ('default' !== controlView.getControlValue() && '' === customControlView.getControlValue()) {
      self.updateOptions('getresponse_list', []);
      self.getEditorControlView('getresponse_list').setValue('');
      return;
    }

    self.addControlSpinner('getresponse_list');
    var cacheKey = this.getCacheKey({
      type: 'lists',
      controls: [controlView.getControlValue(), customControlView.getControlValue()]
    });
    self.getCache('lists', 'lists', cacheKey).done(function (data) {
      self.updateOptions('getresponse_list', data.lists);
    });
  },
  onGetResonseListUpdate: function onGetResonseListUpdate() {
    this.updatGetResonseList();
  },
  updatGetResonseList: function updatGetResonseList() {
    var self = this,
        controlView = self.getEditorControlView('getresponse_list');

    if (!controlView.getControlValue()) {
      return;
    }

    self.addControlSpinner('getresponse_fields_map');
    var cacheKey = this.getCacheKey({
      type: 'fields',
      controls: [controlView.getControlValue()]
    });
    self.getCache('fields', 'get_fields', cacheKey, {
      getresponse_list: controlView.getControlValue()
    }).done(function (data) {
      self.getEditorControlView('getresponse_fields_map').updateMap(data.fields);
    });
  },
  getCache: function getCache(type, action, cacheKey, requestArgs) {
    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'getresponse',
      getresponse_action: action,
      api_key: this.getEditorControlView('getresponse_api_key_source').getControlValue(),
      custom_api_key: this.getEditorControlView('getresponse_custom_api_key').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs);
  },
  onSectionActive: function onSectionActive() {
    BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
    this.updatGetResonseList();
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/mailchimp.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/mailchimp.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  getName: function getName() {
    return 'mailchimp';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'mailchimp_api_key_source':
      case 'mailchimp_api_key':
        this.onApiUpdate();
        break;

      case 'mailchimp_list':
        this.onMailchimpListUpdate();
        break;
    }
  },
  onApiUpdate: function onApiUpdate() {
    var self = this,
        controlView = self.getEditorControlView('mailchimp_api_key'),
        GlobalApiKeycontrolView = self.getEditorControlView('mailchimp_api_key_source');

    if ('default' !== GlobalApiKeycontrolView.getControlValue() && '' === controlView.getControlValue()) {
      self.updateOptions('mailchimp_list', []);
      self.getEditorControlView('mailchimp_list').setValue('');
      return;
    } // Add a spinner to the `Audience` list control.


    self.resetControlIndicators('mailchimp_list');
    self.addControlSpinner('mailchimp_list');
    var cacheKey = this.getCacheKey({
      type: 'lists',
      controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()]
    }); // Fetch data

    self.getMailchimpCache('lists', 'lists', cacheKey).done(function (data) {
      self.updateOptions('mailchimp_list', data.lists);
      self.updatMailchimpList();
    }).fail(function (error) {
      self.addControlError('mailchimp_list', error);
    }).always(function () {
      self.removeControlSpinner('mailchimp_list');
    });
  },
  onMailchimpListUpdate: function onMailchimpListUpdate() {
    this.updateOptions('mailchimp_groups', []);
    this.getEditorControlView('mailchimp_groups').setValue('');
    this.updatMailchimpList();
  },
  updatMailchimpList: function updatMailchimpList() {
    var self = this,
        controlView = self.getEditorControlView('mailchimp_list');

    if (!controlView.getControlValue()) {
      return;
    } // Add a spinner to the groups select box.


    self.resetControlIndicators('mailchimp_groups');
    self.addControlSpinner('mailchimp_groups');
    this.getCacheKey({
      type: 'list_details',
      controls: [controlView.getControlValue()]
    }); // Fetch The data

    self.getMailchimpCache('list_details', 'list_details', controlView.getControlValue(), {
      mailchimp_list: controlView.getControlValue()
    }).done(function (data) {
      self.updateOptions('mailchimp_groups', data.list_details.groups);
      self.getEditorControlView('mailchimp_fields_map').updateMap(data.list_details.fields);
    }).fail(function (error) {
      self.addControlError('mailchimp_groups', error);
    }).always(function () {
      self.removeControlSpinner('mailchimp_groups');
    }); // Get list fields.
    // The requests needed to be executed immediately in order to fill the `Field Mapping` select-boxes
    // without waiting for other requests to finish.

    var args = {
      type: 'fields',
      action: 'fields',
      cacheKey: controlView.getControlValue(),
      args: {
        mailchimp_list: controlView.getControlValue()
      },
      immediately: true
    };
    self.getMailchimpCache.apply(self, (0, _toConsumableArray2.default)((0, _values.default)(args))).done(function (data) {
      self.getEditorControlView('mailchimp_fields_map').updateMap(data.fields);
    });
  },
  getMailchimpCache: function getMailchimpCache(type, action, cacheKey, requestArgs) {
    var immediately = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;

    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'mailchimp',
      mailchimp_action: action,
      api_key: this.getEditorControlView('mailchimp_api_key').getControlValue(),
      use_global_api_key: this.getEditorControlView('mailchimp_api_key_source').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs, immediately);
  },
  onSectionActive: function onSectionActive() {
    BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
    this.onApiUpdate();
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/integrations/mailerlite.js":
/*!********************************************************************!*\
  !*** ../modules/forms/assets/js/editor/integrations/mailerlite.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var BaseIntegrationModule = __webpack_require__(/*! ./base */ "../modules/forms/assets/js/editor/integrations/base.js");

module.exports = BaseIntegrationModule.extend({
  fields: {},
  getName: function getName() {
    return 'mailerlite';
  },
  onElementChange: function onElementChange(setting) {
    switch (setting) {
      case 'mailerlite_api_key_source':
      case 'mailerlite_custom_api_key':
        this.onMailerliteApiKeyUpdate();
        break;

      case 'mailerlite_group':
        this.updateFieldsMapping();
        break;
    }
  },
  onMailerliteApiKeyUpdate: function onMailerliteApiKeyUpdate() {
    var self = this,
        controlView = self.getEditorControlView('mailerlite_custom_api_key'),
        GlobalApiKeycontrolView = self.getEditorControlView('mailerlite_api_key_source');

    if ('default' !== GlobalApiKeycontrolView.getControlValue() && '' === controlView.getControlValue()) {
      self.updateOptions('mailerlite_group', []);
      self.getEditorControlView('mailerlite_group').setValue('');
      return;
    }

    self.addControlSpinner('mailerlite_group');
    var cacheKey = this.getCacheKey({
      type: 'groups',
      controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()]
    });
    self.getMailerliteCache('groups', 'groups', cacheKey).done(function (data) {
      self.updateOptions('mailerlite_group', data.groups);
      self.fields = data.fields;
    });
  },
  updateFieldsMapping: function updateFieldsMapping() {
    var controlView = this.getEditorControlView('mailerlite_group');

    if (!controlView.getControlValue()) {
      return;
    }

    var remoteFields = [{
      remote_label: elementor.translate('Email'),
      remote_type: 'email',
      remote_id: 'email',
      remote_required: true
    }, {
      remote_label: elementor.translate('Name'),
      remote_type: 'text',
      remote_id: 'name',
      remote_required: false
    }, {
      remote_label: elementor.translate('Last Name'),
      remote_type: 'text',
      remote_id: 'last_name',
      remote_required: false
    }, {
      remote_label: elementor.translate('Company'),
      remote_type: 'text',
      remote_id: 'company',
      remote_required: false
    }, {
      remote_label: elementor.translate('Phone'),
      remote_type: 'text',
      remote_id: 'phone',
      remote_required: false
    }, {
      remote_label: elementor.translate('Country'),
      remote_type: 'text',
      remote_id: 'country',
      remote_required: false
    }, {
      remote_label: elementor.translate('State'),
      remote_type: 'text',
      remote_id: 'state',
      remote_required: false
    }, {
      remote_label: elementor.translate('City'),
      remote_type: 'text',
      remote_id: 'city',
      remote_required: false
    }, {
      remote_label: elementor.translate('Zip'),
      remote_type: 'text',
      remote_id: 'zip',
      remote_required: false
    }];

    for (var field in this.fields) {
      if (this.fields.hasOwnProperty(field)) {
        remoteFields.push(this.fields[field]);
      }
    }

    this.getEditorControlView('mailerlite_fields_map').updateMap(remoteFields);
  },
  getMailerliteCache: function getMailerliteCache(type, action, cacheKey, requestArgs) {
    if (_.has(this.cache[type], cacheKey)) {
      var data = {};
      data[type] = this.cache[type][cacheKey];
      return jQuery.Deferred().resolve(data);
    }

    requestArgs = _.extend({}, requestArgs, {
      service: 'mailerlite',
      mailerlite_action: action,
      custom_api_key: this.getEditorControlView('mailerlite_custom_api_key').getControlValue(),
      api_key: this.getEditorControlView('mailerlite_api_key_source').getControlValue()
    });
    return this.fetchCache(type, cacheKey, requestArgs);
  },
  onSectionActive: function onSectionActive() {
    BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
    this.onMailerliteApiKeyUpdate();
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/module.js":
/*!***************************************************!*\
  !*** ../modules/forms/assets/js/editor/module.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/forms/assets/js/editor/component.js"));

var FormsModule = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(FormsModule, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(FormsModule);

  function FormsModule() {
    (0, _classCallCheck2.default)(this, FormsModule);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FormsModule, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      var ReplyToField = __webpack_require__(/*! ./reply-to-field */ "../modules/forms/assets/js/editor/reply-to-field.js"),
          Recaptcha = __webpack_require__(/*! ./recaptcha */ "../modules/forms/assets/js/editor/recaptcha.js"),
          MailerLite = __webpack_require__(/*! ./integrations/mailerlite */ "../modules/forms/assets/js/editor/integrations/mailerlite.js"),
          Mailchimp = __webpack_require__(/*! ./integrations/mailchimp */ "../modules/forms/assets/js/editor/integrations/mailchimp.js"),
          Drip = __webpack_require__(/*! ./integrations/drip */ "../modules/forms/assets/js/editor/integrations/drip.js"),
          ActiveCampaign = __webpack_require__(/*! ./integrations/activecampaign */ "../modules/forms/assets/js/editor/integrations/activecampaign.js"),
          GetResponse = __webpack_require__(/*! ./integrations/getresponse */ "../modules/forms/assets/js/editor/integrations/getresponse.js"),
          ConvertKit = __webpack_require__(/*! ./integrations/convertkit */ "../modules/forms/assets/js/editor/integrations/convertkit.js");

      this.replyToField = new ReplyToField();
      this.mailchimp = new Mailchimp('form');
      this.recaptcha = new Recaptcha('form');
      this.drip = new Drip('form');
      this.activecampaign = new ActiveCampaign('form');
      this.getresponse = new GetResponse('form');
      this.convertkit = new ConvertKit('form');
      this.mailerlite = new MailerLite('form'); // Form fields

      var TimeField = __webpack_require__(/*! ./fields/time */ "../modules/forms/assets/js/editor/fields/time.js"),
          DateField = __webpack_require__(/*! ./fields/date */ "../modules/forms/assets/js/editor/fields/date.js"),
          AcceptanceField = __webpack_require__(/*! ./fields/acceptance */ "../modules/forms/assets/js/editor/fields/acceptance.js"),
          UploadField = __webpack_require__(/*! ./fields/upload */ "../modules/forms/assets/js/editor/fields/upload.js"),
          TelField = __webpack_require__(/*! ./fields/tel */ "../modules/forms/assets/js/editor/fields/tel.js");

      this.Fields = {
        time: new TimeField('form'),
        date: new DateField('form'),
        tel: new TelField('form'),
        acceptance: new AcceptanceField('form'),
        upload: new UploadField('form')
      };
      elementor.addControlView('Fields_map', __webpack_require__(/*! ./fields-map-control */ "../modules/forms/assets/js/editor/fields-map-control.js"));
      elementor.addControlView('form-fields-repeater', __webpack_require__(/*! ./fields-repeater-control */ "../modules/forms/assets/js/editor/fields-repeater-control.js"));
    }
  }, {
    key: "onElementorInitComponents",
    value: function onElementorInitComponents() {
      $e.components.register(new _component.default({
        manager: this
      }));
    }
  }]);
  return FormsModule;
}(elementorModules.editor.utils.Module);

exports.default = FormsModule;

/***/ }),

/***/ "../modules/forms/assets/js/editor/recaptcha.js":
/*!******************************************************!*\
  !*** ../modules/forms/assets/js/editor/recaptcha.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementorModules.editor.utils.Module.extend({
  enqueueRecaptchaJs: function enqueueRecaptchaJs(url, type) {
    if (!elementorFrontend.elements.$body.find('[src="' + url + '"]').length) {
      elementorFrontend.elements.$body.append('<scr' + 'ipt src="' + url + '" id="recaptcha-' + type + '"</scri' + 'pt>');
    }
  },
  renderField: function renderField(inputField, item) {
    inputField += '<div class="elementor-field ' + item.field_type + ' ">';
    inputField += this.getDataSettings(item);
    inputField += '</div>';
    return inputField;
  },
  getDataSettings: function getDataSettings(item) {
    var config = elementorPro.config.forms[item.field_type],
        srcURL = 'https://www.google.com/recaptcha/api.js?render=explicit';

    if (!config.enabled) {
      return '<div class="elementor-alert elementor-alert-info">' + config.setup_message + '</div>';
    }

    var recaptchaData = 'data-sitekey="' + config.site_key + '" data-type="' + config.type + '"';

    switch (config.type) {
      case 'v3':
        recaptchaData += ' data-action="form" data-size="invisible" data-badge="' + item.recaptcha_badge + '"';
        break;

      case 'v2_checkbox':
        recaptchaData += ' data-theme="' + item.recaptcha_style + '"';
        recaptchaData += ' data-size="' + item.recaptcha_size + '"';
        break;
    }

    this.enqueueRecaptchaJs(srcURL, config.type);
    return '<div class="elementor-g-recaptcha' + _.escape(item.css_classes) + '" ' + recaptchaData + '></div>';
  },
  filterItem: function filterItem(item) {
    if ('recaptcha' === item.field_type) {
      item.field_label = false;
    }

    return item;
  },
  onInit: function onInit() {
    elementor.hooks.addFilter('elementor_pro/forms/content_template/item', this.filterItem);
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/recaptcha', this.renderField, 10, 2);
    elementor.hooks.addFilter('elementor_pro/forms/content_template/field/recaptcha_v3', this.renderField, 10, 2);
  }
});

/***/ }),

/***/ "../modules/forms/assets/js/editor/reply-to-field.js":
/*!***********************************************************!*\
  !*** ../modules/forms/assets/js/editor/reply-to-field.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

module.exports = function () {
  var editor, editedModel, replyToControl;

  var setReplyToControl = function setReplyToControl() {
    replyToControl = editor.collection.findWhere({
      name: 'email_reply_to'
    });
  };

  var getReplyToView = function getReplyToView() {
    return editor.children.findByModelCid(replyToControl.cid);
  };

  var refreshReplyToElement = function refreshReplyToElement() {
    var replyToView = getReplyToView();

    if (replyToView) {
      replyToView.render();
    }
  };

  var updateReplyToOptions = function updateReplyToOptions() {
    var settingsModel = editedModel.get('settings'),
        emailModels = settingsModel.get('form_fields').where({
      field_type: 'email'
    }),
        emailFields;
    emailModels = _.reject(emailModels, {
      field_label: ''
    });
    emailFields = _.map(emailModels, function (model) {
      return {
        id: model.get('custom_id'),
        label: elementorPro.translate('x_field', [model.get('field_label')])
      };
    });
    replyToControl.set('options', {
      '': replyToControl.get('options')['']
    });

    _.each(emailFields, function (emailField) {
      replyToControl.get('options')[emailField.id] = emailField.label;
    });

    refreshReplyToElement();
  };

  var updateDefaultReplyTo = function updateDefaultReplyTo(settingsModel) {
    replyToControl.get('options')[''] = settingsModel.get('email_from');
    refreshReplyToElement();
  };

  var onFormFieldsChange = function onFormFieldsChange(changedModel) {
    // If it's repeater field
    if (changedModel.get('custom_id')) {
      if ('email' === changedModel.get('field_type')) {
        updateReplyToOptions();
      }
    }

    if (changedModel.changed.email_from) {
      updateDefaultReplyTo(changedModel);
    }
  };

  var onPanelShow = function onPanelShow(panel, model) {
    editor = panel.getCurrentPageView();
    editedModel = model;
    setReplyToControl();
    var settingsModel = editedModel.get('settings');
    settingsModel.on('change', onFormFieldsChange);
    updateDefaultReplyTo(settingsModel);
    updateReplyToOptions();
  };

  var init = function init() {
    elementor.hooks.addAction('panel/open_editor/widget/form', onPanelShow);
  };

  init();
};

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands-data/index.js":
/*!************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands-data/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Templates", {
  enumerable: true,
  get: function get() {
    return _templates.Templates;
  }
});

var _templates = __webpack_require__(/*! ./templates */ "../modules/global-widget/assets/js/editor/commands-data/templates.js");

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands-data/templates.js":
/*!****************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands-data/templates.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Templates = void 0;

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * Data command: 'document/global/templates', accessing 'global-widget/templates' remote endpoint.
 * Used to get global templates from the backend/cache.
 */
var Templates = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Templates, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Templates);

  function Templates() {
    (0, _classCallCheck2.default)(this, Templates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Templates, [{
    key: "onAfterApply",
    value: function onAfterApply() {
      var _this = this;

      var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var result = arguments.length > 1 ? arguments[1] : undefined;
      // TODO: Remove - Manually handling of cache - This behavior should be automatically handled by passed `options` to $e.data.
      $e.data.deleteCache(this.component, 'document/global/global-widget/templates', args.query);
      (0, _entries.default)(result.data).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
            templateID = _ref2[0],
            data = _ref2[1];

        $e.data.setCache(_this.component, "document/global/global-widget/templates/".concat(templateID), {}, data);
      });
    }
  }], [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'global-widget/templates';
    }
  }]);
  return Templates;
}($e.modules.CommandData);

exports.Templates = Templates;
var _default = Templates;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands-internal/index.js":
/*!****************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands-internal/index.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "SaveTemplates", {
  enumerable: true,
  get: function get() {
    return _saveTemplates.SaveTemplates;
  }
});

var _saveTemplates = __webpack_require__(/*! ./save-templates */ "../modules/global-widget/assets/js/editor/commands-internal/save-templates.js");

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands-internal/save-templates.js":
/*!*************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands-internal/save-templates.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.SaveTemplates = void 0;

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * The command should run over all changed global widgets and
 * update the settings of the `document/global/global-widget/templates`,
 * And save cache templates according to the widget(s) which are under the save process.
 */
var SaveTemplates = /*#__PURE__*/function (_$e$modules$CommandIn) {
  (0, _inherits2.default)(SaveTemplates, _$e$modules$CommandIn);

  var _super = (0, _createSuper2.default)(SaveTemplates);

  function SaveTemplates() {
    (0, _classCallCheck2.default)(this, SaveTemplates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(SaveTemplates, [{
    key: "apply",
    value: function apply() {
      var _this = this;

      var templateModels = this.getCurrentTemplatesModels(this.component.changedContainersId);

      if (!templateModels.length) {
        return;
      }

      return new _promise.default(function (resolve, reject) {
        elementorCommon.ajax.addRequest('update_templates', {
          data: {
            templates: templateModels.map(function (templateModel) {
              // Map it to backend format.
              return {
                id: templateModel.get('id'),
                content: (0, _stringify.default)([templateModel.toJSON()]),
                source: 'local',
                type: 'widget'
              };
            })
          },
          error: reject,
          success: function success() {
            /**
             * Since is used `document/global/global-widget/templates` to hold all globals template data.
             * And currently there are no request to update template data on each update of global widget,
             * editing the template will be not synced with The real latest data.
             * In other words, if dont update templates on each save,
             * Then the new created template will be different with the actual (saved) one, so updating the globals template
             * according to saved global widget is the solution.
             */
            // Clear changed containers.
            _this.component.changedContainersId = {};
            templateModels.forEach(function (template) {
              var settings = template.get('settings');
              $e.data.setCache(_this.component, "document/global/global-widget/templates/".concat(template.id), {}, {
                settings: settings
              });
            });
            resolve(templateModels);
          }
        });
      });
    }
  }, {
    key: "getCurrentTemplatesModels",
    value: function getCurrentTemplatesModels(changedContainersId) {
      var _this2 = this;

      var templatesData = [];
      (0, _entries.default)(changedContainersId).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
            templateID = _ref2[0],
            containerId = _ref2[1];

        var templateData = $e.data.getCache(_this2.component, "document/global/global-widget/templates/".concat(templateID));

        if (!templateData) {
          if ($e.devTools) {
            $e.devTools.log.warn("$e.data.getCache( component, `document/global/global-widget/templates/".concat(templateID, "` ) - not found."));
          }
        }

        var container = elementor.getContainer(containerId);

        if (!container) {
          return;
        }

        templatesData.push(new Backbone.Model({
          id: templateID,
          elType: 'widget',
          widgetType: container.model.get('widgetType'),
          settings: container.settings.toJSON({
            remove: 'default'
          }),
          templateID: templateID
        }));
      });
      return templatesData;
    }
  }]);
  return SaveTemplates;
}($e.modules.CommandInternalBase);

exports.SaveTemplates = SaveTemplates;
var _default = SaveTemplates;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands/index.js":
/*!*******************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Link", {
  enumerable: true,
  get: function get() {
    return _link.Link;
  }
});

_Object$defineProperty(exports, "Unlink", {
  enumerable: true,
  get: function get() {
    return _unlink.Unlink;
  }
});

var _link = __webpack_require__(/*! ./link */ "../modules/global-widget/assets/js/editor/commands/link.js");

var _unlink = __webpack_require__(/*! ./unlink */ "../modules/global-widget/assets/js/editor/commands/unlink.js");

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands/link.js":
/*!******************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands/link.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Link = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Link = /*#__PURE__*/function (_$e$modules$document$) {
  (0, _inherits2.default)(Link, _$e$modules$document$);

  var _super = (0, _createSuper2.default)(Link);

  function Link() {
    (0, _classCallCheck2.default)(this, Link);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Link, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
      this.requireArgumentConstructor('data', Object, args);
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      containers.forEach(function (
      /* Container */
      container) {
        if ('global' === container.model.get('widgetType')) {
          throw Error("Invalid container, id: '".concat(container.id, "' is already global."));
        }
      });
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var data = args.data;
      return {
        title: elementor.widgetsCache[data.widgetType].title,
        subTitle: data.title,
        type: elementorPro.translate('linked_to_global')
      };
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _this = this;

      var data = args.data,
          _args$containers2 = args.containers,
          containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (
      /** Container */
      container) {
        var widgetModel = container.model,
            widgetModelIndex = widgetModel.collection.indexOf(widgetModel);
        data.elType = data.type;
        data.settings = widgetModel.get('settings').attributes;
        data.widgetType = widgetModel.get('widgetType');
        var elementModel = elementorPro.modules.globalWidget.addGlobalWidget(data.template_id, data),
            elementModelAttributes = elementModel.attributes;
        $e.data.setCache(_this.component, "document/global/global-widget/templates/".concat(data.template_id), {}, data);
        $e.run('document/elements/create', {
          container: container.parent,
          model: {
            id: elementor.helpers.getUniqueID(),
            elType: elementModelAttributes.elType,
            widgetType: elementModelAttributes.widgetType,
            templateID: data.template_id
          },
          options: {
            at: widgetModelIndex
          }
        });
        $e.run('document/elements/delete', {
          container: container
        });
      });
      $e.route('panel/elements/global');
    }
  }]);
  return Link;
}($e.modules.document.CommandHistory);

exports.Link = Link;
var _default = Link;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/commands/unlink.js":
/*!********************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/commands/unlink.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Unlink = void 0;

var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/asyncToGenerator */ "../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Unlink = /*#__PURE__*/function (_$e$modules$document$) {
  (0, _inherits2.default)(Unlink, _$e$modules$document$);

  var _super = (0, _createSuper2.default)(Unlink);

  function Unlink() {
    (0, _classCallCheck2.default)(this, Unlink);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Unlink, [{
    key: "validateArgs",
    value: function validateArgs(args) {
      this.requireContainer(args);
    }
  }, {
    key: "getHistory",
    value: function getHistory(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return {
        title: elementor.helpers.getModelLabel(containers[0].model),
        // TODO: add support multi containers.
        type: elementorPro.translate('unlink_widget')
      };
    }
  }, {
    key: "apply",
    value: function () {
      var _apply = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(args) {
        var _args$containers2, containers, ids, _yield$$e$data$get, data;

        return _regenerator.default.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                _args$containers2 = args.containers, containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
                ids = containers.map(function (
                /** Container */
                container) {
                  return container.model.get('templateID');
                });
                _context.next = 4;
                return $e.data.get('document/global/templates', {
                  ids: ids
                });

              case 4:
                _yield$$e$data$get = _context.sent;
                data = _yield$$e$data$get.data;
                containers.forEach(function (
                /** Container */
                container) {
                  var id = container.model.get('templateID'),
                      elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data[id]);
                  $e.run('document/elements/create', {
                    container: container.parent,
                    model: {
                      id: elementor.helpers.getUniqueID(),
                      elType: 'widget',
                      widgetType: elementModel.get('widgetType'),
                      settings: elementorCommon.helpers.cloneObject(elementModel.get('settings').attributes),
                      defaultEditSettings: elementorCommon.helpers.cloneObject(elementModel.get('editSettings').attributes)
                    },
                    options: {
                      at: container.model.collection.indexOf(container.model),
                      edit: true
                    }
                  });
                  $e.run('document/elements/delete', {
                    container: container
                  });
                });

              case 7:
              case "end":
                return _context.stop();
            }
          }
        }, _callee);
      }));

      function apply(_x) {
        return _apply.apply(this, arguments);
      }

      return apply;
    }()
  }]);
  return Unlink;
}($e.modules.document.CommandHistory);

exports.Unlink = Unlink;
var _default = Unlink;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/component.js":
/*!**************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/component.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _parseInt2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/parse-int */ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js"));

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var commands = _interopRequireWildcard(__webpack_require__(/*! ./commands/ */ "../modules/global-widget/assets/js/editor/commands/index.js"));

var commandsInternal = _interopRequireWildcard(__webpack_require__(/*! ./commands-internal/ */ "../modules/global-widget/assets/js/editor/commands-internal/index.js"));

var commandsData = _interopRequireWildcard(__webpack_require__(/*! ./commands-data/ */ "../modules/global-widget/assets/js/editor/commands-data/index.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/global-widget/assets/js/editor/hooks/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    var _this;

    (0, _classCallCheck2.default)(this, Component);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "notLoadedTemplatesIds", []);
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "lastChangedContainers", null);
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "changedContainersId", {});
    return _this;
  }

  (0, _createClass2.default)(Component, [{
    key: "registerAPI",
    value: function registerAPI() {
      var _this2 = this;

      (0, _get2.default)((0, _getPrototypeOf2.default)(Component.prototype), "registerAPI", this).call(this); // TODO: Remove when route hooks are available.

      $e.routes.on('run:after', function (component, route) {
        if ('panel/elements/global' === route) {
          _this2.onRoutePanelElementsGlobal();
        }
      });
    }
  }, {
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/global';
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      return this.importCommands(commands);
    }
  }, {
    key: "defaultCommandsInternal",
    value: function defaultCommandsInternal() {
      return this.importCommands(commandsInternal);
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(commandsData);
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "onRoutePanelElementsGlobal",
    value: function onRoutePanelElementsGlobal() {
      var _this3 = this;

      if (this.notLoadedTemplatesIds.length) {
        $e.data.get('document/global/templates', {
          ids: this.notLoadedTemplatesIds
        }).then(function () {
          // Clear.
          _this3.notLoadedTemplatesIds = [];
        });
      }
    }
    /**
     * Update each 'Backbone.Model' will handle issue when the global widget saved only in draft.
     * Scenario for better understanding the issue:
     * - Have global widget save with custom color, refresh the editor.
     * - Change it to global global color and save as draft (no update template).
     * - Create another global-widget from same template.
     * - Update one of first global widget that saved in draft to use custom color.
     * - By dependency of only 'container.settings' the new template will have the new custom color,
     *      but new custom color will unseen (since it has global).
     *
     * @param {Object} targetContainer Container class
     */

  }, {
    key: "updateGlobalsRecursive",
    value: function updateGlobalsRecursive(targetContainer) {
      var modelsToUpdate = ['dynamic', 'globals', 'settings'];
      elementor.getPreviewContainer().forEachChildrenRecursive(function (container) {
        // Will skip self.
        if (targetContainer !== container && (0, _parseInt2.default)(container.model.get('templateID')) === (0, _parseInt2.default)(targetContainer.model.get('templateID'))) {
          modelsToUpdate.forEach(function (modelName) {
            var model = targetContainer[modelName];

            if (model instanceof Backbone.Model) {
              var accordingTo = 'settings' === modelName ? targetContainer.settings.attributes : model.changed;
              (0, _entries.default)(accordingTo).forEach(function (_ref) {
                var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
                    key = _ref2[0],
                    setting = _ref2[1];

                container[modelName].set(key, setting);
              });
            }
          });
          container.render();
        }
      });
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update.js":
/*!***************************************************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update.js ***!
  \***************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.GlobalWidgetPrepareUpdate = void 0;

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * Hook is responsible for saving last changed global widget and update
 * which containers are needed for updating the template.
 */
var GlobalWidgetPrepareUpdate = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(GlobalWidgetPrepareUpdate, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(GlobalWidgetPrepareUpdate);

  function GlobalWidgetPrepareUpdate() {
    (0, _classCallCheck2.default)(this, GlobalWidgetPrepareUpdate);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(GlobalWidgetPrepareUpdate, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/set-settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-global-widget-prepare-update';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return containers.some(function (container) {
        return container.renderer.model.get('templateID');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
          containers = _args$containers2 === void 0 ? [args.container] : _args$containers2,
          component = $e.components.get('document/global');
      component.lastChangedContainers = containers.map(function (container) {
        return container.renderer;
      });
      containers.forEach(function (container) {
        component.changedContainersId[container.renderer.model.get('templateID')] = container.renderer.id;
      });
    }
  }]);
  return GlobalWidgetPrepareUpdate;
}($e.modules.hookData.After);

exports.GlobalWidgetPrepareUpdate = GlobalWidgetPrepareUpdate;
var _default = GlobalWidgetPrepareUpdate;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js":
/*!****************************************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js ***!
  \****************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.GlobalWidgetDoUpdate = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * On after all `document/elements/set-settings` has stop, the history mechanism will call to
 * `document/history/end-log` the hook will update all other global widgets according to this last change.
 */
var GlobalWidgetDoUpdate = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(GlobalWidgetDoUpdate, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(GlobalWidgetDoUpdate);

  function GlobalWidgetDoUpdate() {
    (0, _classCallCheck2.default)(this, GlobalWidgetDoUpdate);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(GlobalWidgetDoUpdate, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/history/end-log';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-global-widget-do-update';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return $e.components.get('document/global').lastChangedContainers;
    }
  }, {
    key: "apply",
    value: function apply() {
      var component = $e.components.get('document/global'),
          containers = component.lastChangedContainers;
      containers.forEach(function (container) {
        return component.updateGlobalsRecursive(container);
      });
      component.lastChangedContainers = null;
    }
  }]);
  return GlobalWidgetDoUpdate;
}($e.modules.hookData.After);

exports.GlobalWidgetDoUpdate = GlobalWidgetDoUpdate;
var _default = GlobalWidgetDoUpdate;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js":
/*!***************************************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js ***!
  \***************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.GlobalWidgetSaveTemplates = void 0;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * The hook is responsible for updating the global templates, on editor save,
 * hook will run 'document/global/save-templates' to handle the save.
 */
var GlobalWidgetSaveTemplates = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(GlobalWidgetSaveTemplates, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(GlobalWidgetSaveTemplates);

  function GlobalWidgetSaveTemplates() {
    (0, _classCallCheck2.default)(this, GlobalWidgetSaveTemplates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(GlobalWidgetSaveTemplates, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-global-widget-save-templates';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      if (!(0, _keys.default)($e.components.get('document/global').changedContainersId).length) {
        return false;
      }

      var _args$document = args.document,
          document = _args$document === void 0 ? elementor.documents.getCurrent() : _args$document;
      return document.config.panel.has_elements && args.status && -1 !== ['private', 'publish'].indexOf(args.status);
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.internal('document/global/save-templates');
    }
  }]);
  return GlobalWidgetSaveTemplates;
}($e.modules.hookData.After);

exports.GlobalWidgetSaveTemplates = GlobalWidgetSaveTemplates;
var _default = GlobalWidgetSaveTemplates;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js":
/*!****************************************************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js ***!
  \****************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.GlobalWidgetLoadTemplates = void 0;

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _parseInt2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/parse-int */ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

/**
 * Hook responsible to load current active templates ( global widget that are in used ) to `$e.data.cache`,
 * also it tells the component which templates are not active and required to be loaded from the backend.
 */
var GlobalWidgetLoadTemplates = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(GlobalWidgetLoadTemplates, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(GlobalWidgetLoadTemplates);

  function GlobalWidgetLoadTemplates() {
    (0, _classCallCheck2.default)(this, GlobalWidgetLoadTemplates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(GlobalWidgetLoadTemplates, [{
    key: "initialize",
    value:
    /**
     * Since the hook called on each document load, but requires to run only the initial attach preview.
     *
     * @type {boolean}
     */
    function initialize() {
      var _this = this;

      // Since 'initialize' called before the component is registered.
      // TODO: apply this logic at HookBase for '.initialize.
      setTimeout(function () {
        _this.component = $e.components.get('document/global');
      });
    }
  }, {
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/attach-preview';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-global-widget-load-templates';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return !GlobalWidgetLoadTemplates.calledOnce;
    }
  }, {
    key: "apply",
    value: function apply() {
      var _this2 = this;

      GlobalWidgetLoadTemplates.calledOnce = true;
      (0, _entries.default)(elementorPro.config.widget_templates).forEach(function (_ref) {
        var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
            id = _ref2[0],
            data = _ref2[1];

        elementorPro.modules.globalWidget.addGlobalWidget(id, data);

        _this2.addTemplateToCache(id);
      });
    }
  }, {
    key: "addTemplateToCache",
    value: function addTemplateToCache(id) {
      var container = elementor.getPreviewContainer().findChildrenRecursive(function (i) {
        return (0, _parseInt2.default)(i.model.get('templateID')) === (0, _parseInt2.default)(id);
      });

      if (!container) {
        return this.component.notLoadedTemplatesIds.push(id);
      }

      var args = {
        id: container.model.get('templateID'),
        elType: 'widget',
        widgetType: container.model.get('widgetType'),
        settings: container.settings.toJSON({
          remove: 'default'
        }),
        templateID: container.model.get('templateID')
      };
      $e.data.setCache(this.component, "document/global/global-widget/templates/".concat(id), {}, args);
    }
  }]);
  return GlobalWidgetLoadTemplates;
}($e.modules.hookData.After);

exports.GlobalWidgetLoadTemplates = GlobalWidgetLoadTemplates;
(0, _defineProperty2.default)(GlobalWidgetLoadTemplates, "calledOnce", false);
var _default = GlobalWidgetLoadTemplates;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/data/index.js":
/*!*********************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/data/index.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "GlobalWidgetPrepareUpdate", {
  enumerable: true,
  get: function get() {
    return _globalWidgetPrepareUpdate.GlobalWidgetPrepareUpdate;
  }
});

_Object$defineProperty(exports, "GlobalWidgetDoUpdate", {
  enumerable: true,
  get: function get() {
    return _globalWidgetDoUpdate.GlobalWidgetDoUpdate;
  }
});

_Object$defineProperty(exports, "GlobalWidgetSaveTemplates", {
  enumerable: true,
  get: function get() {
    return _globalWidgetSaveTemplates.GlobalWidgetSaveTemplates;
  }
});

_Object$defineProperty(exports, "GlobalWidgetLoadTemplates", {
  enumerable: true,
  get: function get() {
    return _globalWidgetLoadTemplates.GlobalWidgetLoadTemplates;
  }
});

var _globalWidgetPrepareUpdate = __webpack_require__(/*! ./document/elements/set-settings/global-widget-prepare-update */ "../modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update.js");

var _globalWidgetDoUpdate = __webpack_require__(/*! ./document/history/end-log/global-widget-do-update */ "../modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js");

var _globalWidgetSaveTemplates = __webpack_require__(/*! ./document/save/save/global-widget-save-templates */ "../modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js");

var _globalWidgetLoadTemplates = __webpack_require__(/*! ./editor/documents/attach-preview/global-widget-load-templates */ "../modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js");

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/index.js":
/*!****************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _data = __webpack_require__(/*! ./data/ */ "../modules/global-widget/assets/js/editor/hooks/data/index.js");

_Object$keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});

var _ui = __webpack_require__(/*! ./ui/ */ "../modules/global-widget/assets/js/editor/hooks/ui/index.js");

_Object$keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js":
/*!*************************************************************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js ***!
  \*************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.GlobalWidgetHistoryUpdate = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * Since editing of global widget applies changes to the all widgets with the same template id,
 * the same needs to be done on undo/redo.
 */
var GlobalWidgetHistoryUpdate = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(GlobalWidgetHistoryUpdate, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(GlobalWidgetHistoryUpdate);

  function GlobalWidgetHistoryUpdate() {
    (0, _classCallCheck2.default)(this, GlobalWidgetHistoryUpdate);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(GlobalWidgetHistoryUpdate, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/set-settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-global-widget-history-update';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'widget';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers;
      return !elementor.documents.getCurrent().history.getActive() && containers.some(function (container) {
        return container.model.get('templateID');
      });
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers2 = args.containers,
          containers = _args$containers2 === void 0 ? [args.container] : _args$containers2;
      containers.forEach(function (container) {
        return $e.components.get('document/global').updateGlobalsRecursive(container);
      });
    }
  }]);
  return GlobalWidgetHistoryUpdate;
}($e.modules.hookUI.After);

exports.GlobalWidgetHistoryUpdate = GlobalWidgetHistoryUpdate;
var _default = GlobalWidgetHistoryUpdate;
exports.default = _default;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/hooks/ui/index.js":
/*!*******************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/hooks/ui/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "GlobalWidgetHistoryUpdate", {
  enumerable: true,
  get: function get() {
    return _globalWidgetHistoryUpdate.GlobalWidgetHistoryUpdate;
  }
});

var _globalWidgetHistoryUpdate = __webpack_require__(/*! ./document/elements/set-settings/global-widget-history-update */ "../modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js");

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/module.js":
/*!***********************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/module.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/global-widget/assets/js/editor/component.js"));

var Module = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(Module, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(Module);

  function Module() {
    var _this;

    (0, _classCallCheck2.default)(this, Module);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "panelWidgets", new Backbone.Collection());
    return _this;
  }

  (0, _createClass2.default)(Module, [{
    key: "addGlobalWidget",
    value: function addGlobalWidget(templateId, templateData) {
      return this.panelWidgets.add(this.createGlobalModel(templateId, templateData));
    }
  }, {
    key: "createGlobalModel",
    value: function createGlobalModel(templateId, templateData) {
      templateData = (0, _assign.default)({}, templateData, {
        id: templateId,
        categories: [],
        icon: elementor.widgetsCache[templateData.widgetType].icon,
        widgetType: templateData.widgetType,
        custom: {
          templateID: templateId
        }
      });
      var elementModel = new elementor.modules.elements.models.Element(templateData);
      elementModel.set('id', templateId);
      return elementModel;
    }
  }, {
    key: "setWidgetType",
    value: function setWidgetType() {
      elementor.hooks.addFilter('element/view', function (DefaultView, model) {
        if (model.get('templateID')) {
          return __webpack_require__(/*! ./widget/view */ "../modules/global-widget/assets/js/editor/widget/view.js").default;
        }

        return DefaultView;
      });
      elementor.hooks.addFilter('element/model', function (DefaultModel, attrs) {
        if (attrs.templateID) {
          return __webpack_require__(/*! ./widget/model */ "../modules/global-widget/assets/js/editor/widget/model.js").default;
        }

        return DefaultModel;
      });
    }
  }, {
    key: "registerTemplateType",
    value: function registerTemplateType() {
      elementor.templates.registerTemplateType('widget', {
        showInLibrary: false,
        saveDialog: {
          title: elementorPro.translate('global_widget_save_title'),
          description: elementorPro.translate('global_widget_save_description')
        },
        prepareSavedData: function prepareSavedData(data) {
          data.widgetType = data.content[0].widgetType;
          return data;
        },
        ajaxParams: {
          success: this.onWidgetTemplateSaved.bind(this)
        }
      });
    }
  }, {
    key: "addPanelPage",
    value: function addPanelPage() {
      elementor.getPanelView().addPage('globalWidget', {
        view: __webpack_require__(/*! ./views/panel-page */ "../modules/global-widget/assets/js/editor/views/panel-page.js")
      });
    }
  }, {
    key: "getGlobalModels",
    value: function getGlobalModels(id) {
      elementorCommon.helpers.softDeprecated('elementorPro.modules.globalWidget.getGlobalModels( id )', '3.5.0', '$e.data.getCache( `document/global/global-widget/templates/${ id }` )');
      return $e.data.getCache(this.component, "document/global/global-widget/templates/".concat(id));
    }
  }, {
    key: "saveTemplates",
    value: function saveTemplates() {
      elementorCommon.helpers.softDeprecated('elementorPro.modules.globalWidget.saveTemplates()', '3.5.0', "$e.internal( 'document/global/save-templates' )");
      $e.internal('document/global/save-templates');
    }
  }, {
    key: "requestGlobalModelSettings",
    value: function requestGlobalModelSettings(globalModel, callback) {
      elementorCommon.helpers.softDeprecated('elementorPro.modules.globalWidget.requestGlobalModelSettings()', '3.5.0', "$e.data.get( 'document/global/templates' )");
      $e.data.get('document/global/templates', {
        ids: globalModel.id
      }).then(function (data) {
        callback(data);
      });
    }
  }, {
    key: "setWidgetContextMenuSaveAction",
    value: function setWidgetContextMenuSaveAction() {
      elementor.hooks.addFilter('elements/widget/contextMenuGroups', function (groups, widget) {
        var saveGroup = _.findWhere(groups, {
          name: 'save'
        });

        if (!saveGroup) {
          return groups;
        }

        var saveAction = _.findWhere(saveGroup.actions, {
          name: 'save'
        });

        saveAction.callback = widget.save.bind(widget);
        delete saveAction.shortcut;
        return groups;
      });
    }
  }, {
    key: "onElementorInit",
    value: function onElementorInit() {
      var _this2 = this;

      elementor.on('panel:init', function () {
        elementor.hooks.addFilter('panel/elements/regionViews', function (regionViews) {
          _.extend(regionViews.global, {
            view: __webpack_require__(/*! ./views/global-templates-view */ "../modules/global-widget/assets/js/editor/views/global-templates-view.js"),
            options: {
              collection: _this2.panelWidgets
            }
          });

          return regionViews;
        });
      });
      this.registerTemplateType();
      this.setWidgetContextMenuSaveAction();
      this.setWidgetType();
    }
  }, {
    key: "onElementorInitComponents",
    value: function onElementorInitComponents() {
      $e.components.register(new _component.default());
      $e.data.get('document/global/templates', {}, {
        refresh: true
      });
    }
  }, {
    key: "onElementorPreviewLoaded",
    value: function onElementorPreviewLoaded(isFirst) {
      if (!isFirst) {
        return;
      }

      this.addPanelPage();
      $e.routes.register('panel/editor', 'global', function (args) {
        elementor.getPanelView().setPage('globalWidget', 'Global Editing', {
          editedView: args.view
        });
      });
    }
  }, {
    key: "onWidgetTemplateSaved",
    value: function onWidgetTemplateSaved(data) {
      elementor.templates.layout.hideModal();
      var container = elementor.getContainer(elementor.templates.layout.modalContent.currentView.model.id);
      $e.run('document/global/link', {
        container: container,
        data: data
      });
    }
  }]);
  return Module;
}(elementorModules.editor.utils.Module);

exports.default = Module;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/views/global-templates-view.js":
/*!********************************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/views/global-templates-view.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = elementor.modules.layouts.panel.pages.elements.views.Elements.extend({
  id: 'elementor-global-templates',
  getEmptyView: function getEmptyView() {
    if (this.collection.length) {
      return null;
    }

    return __webpack_require__(/*! ./no-templates */ "../modules/global-widget/assets/js/editor/views/no-templates.js");
  },
  onFilterEmpty: function onFilterEmpty() {}
});

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/views/no-templates.js":
/*!***********************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/views/no-templates.js ***!
  \***********************************************************************/
/***/ ((module) => {

"use strict";


var GlobalWidgetsView = elementor.modules.layouts.panel.pages.elements.views.Global;
module.exports = GlobalWidgetsView.extend({
  template: '#tmpl-elementor-panel-global-widget-no-templates',
  id: 'elementor-panel-global-widget-no-templates',
  className: 'elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch'
});

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/views/panel-page.js":
/*!*********************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/views/panel-page.js ***!
  \*********************************************************************/
/***/ ((module) => {

"use strict";


module.exports = Marionette.ItemView.extend({
  id: 'elementor-panel-global-widget',
  template: '#tmpl-elementor-panel-global-widget',
  ui: {
    editButton: '#elementor-global-widget-locked-edit .elementor-button',
    unlinkButton: '#elementor-global-widget-locked-unlink .elementor-button',
    loading: '#elementor-global-widget-loading'
  },
  events: {
    'click @ui.editButton': 'onEditButtonClick',
    'click @ui.unlinkButton': 'onUnlinkButtonClick'
  },
  initialize: function initialize() {
    this.initUnlinkDialog();
  },
  buildUnlinkDialog: function buildUnlinkDialog() {
    var self = this;
    return elementorCommon.dialogsManager.createWidget('confirm', {
      id: 'elementor-global-widget-unlink-dialog',
      headerMessage: elementorPro.translate('unlink_widget'),
      message: elementorPro.translate('dialog_confirm_unlink'),
      position: {
        my: 'center center',
        at: 'center center'
      },
      strings: {
        confirm: elementorPro.translate('unlink'),
        cancel: elementorPro.translate('cancel')
      },
      onConfirm: function onConfirm() {
        self.getOption('editedView').unlink();
      }
    });
  },
  initUnlinkDialog: function initUnlinkDialog() {
    var dialog;

    this.getUnlinkDialog = function () {
      if (!dialog) {
        dialog = this.buildUnlinkDialog();
      }

      return dialog;
    };
  },
  editGlobalModel: function editGlobalModel() {
    var editedView = this.getOption('editedView');
    $e.run('panel/editor/open', {
      model: editedView.getEditModel(),
      view: editedView
    });
  },
  onEditButtonClick: function onEditButtonClick() {
    this.editGlobalModel();
  },
  onUnlinkButtonClick: function onUnlinkButtonClick() {
    this.getUnlinkDialog().show();
  }
});

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/widget/model.js":
/*!*****************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/widget/model.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ElementModel = elementor.modules.elements.models.Element;

var Model = /*#__PURE__*/function (_ElementModel) {
  (0, _inherits2.default)(Model, _ElementModel);

  var _super = (0, _createSuper2.default)(Model);

  function Model() {
    (0, _classCallCheck2.default)(this, Model);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Model, [{
    key: "initSettings",
    value: function initSettings() {
      // If global widget is created, the settings should come from recent template.
      // The widget that's hold the panel may not have the recent data, the template can be changed during the editing.
      if ($e.commands.is('document/elements/create')) {
        return this.initSettingsFromTemplate();
      }

      (0, _get2.default)((0, _getPrototypeOf2.default)(Model.prototype), "initSettings", this).call(this);
    }
  }, {
    key: "initEditSettings",
    value: function initEditSettings() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(Model.prototype), "initEditSettings", this).call(this); // Set default edit tab.

      this.get('editSettings').set('editTab', 'global');
    }
  }, {
    key: "initSettingsFromTemplate",
    value: function initSettingsFromTemplate() {
      var id = this.get('templateID'),
          component = $e.components.get('document/global'),
          data = $e.data.getCache(component, "document/global/global-widget/templates/".concat(id)) || this.attributes,
          elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data);
      this.set('settings', elementModel.get('settings'));
      elementorFrontend.config.elements.data[this.cid] = this.get('settings');
    }
  }]);
  return Model;
}(ElementModel);

exports.default = Model;

/***/ }),

/***/ "../modules/global-widget/assets/js/editor/widget/view.js":
/*!****************************************************************!*\
  !*** ../modules/global-widget/assets/js/editor/widget/view.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var WidgetView = elementor.modules.elements.views.Widget;

var View = /*#__PURE__*/function (_WidgetView) {
  (0, _inherits2.default)(View, _WidgetView);

  var _super = (0, _createSuper2.default)(View);

  function View() {
    (0, _classCallCheck2.default)(this, View);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(View, [{
    key: "className",
    value: function className() {
      return (0, _get2.default)((0, _getPrototypeOf2.default)(View.prototype), "className", this).call(this) + ' elementor-global-widget elementor-global-' + this.model.get('templateID');
    }
  }, {
    key: "addInlineEditingAttributes",
    value: function addInlineEditingAttributes() {// See `this.removeInlineAddingAttributes` for more information.
    }
  }, {
    key: "unlink",
    value: function unlink() {
      $e.run('document/global/unlink', {
        container: this.getContainer()
      });
    }
  }, {
    key: "onEditRequest",
    value: function onEditRequest() {
      $e.route('panel/editor/global', {
        view: this
      });
    }
  }, {
    key: "getContextMenuGroups",
    value: function getContextMenuGroups() {
      // Remove 'Save as global' for global widget view.
      return (0, _get2.default)((0, _getPrototypeOf2.default)(View.prototype), "getContextMenuGroups", this).call(this).filter(function (group) {
        return 'save' !== group.name;
      });
    }
  }, {
    key: "getContainer",
    value: function getContainer() {
      if (this.container) {
        return this.container;
      }

      var container = (0, _get2.default)((0, _getPrototypeOf2.default)(View.prototype), "getContainer", this).call(this);
      container.label = container.label + ' (' + elementorPro.translate('global') + ')';
      return container;
    }
  }, {
    key: "render",
    value: function render() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(View.prototype), "render", this).call(this);
      setTimeout(this.removeInlineAddingAttributes.bind(this));
    }
    /**
     * The issue is complex:
     * 1. There is a mechanism in the editor which responsible for adding inline the method below: `addInlineEditingAttributes`.
     * 2. There is a mechanism in the backend that adds inline attributes for each widget most of the time.
     *      its effect also the Global-Widget itself, in two ways:
     *      1. global-widget instance is calling to `$this->get_original_element_instance()->render_content();`.
     *          It means that the mechanism in the backend with adds the inline attributes will be triggered.
     *      2. each time you 'leave the editing mode' for most of the widgets it triggers `renderRemoteServer()`,
     *          which sends a request for `remoteRendering` for 'non-global widget' (the server doesn't know that it
     *          was linked to a template), that will trigger the original widget without knowing it's a part of the
     *          global mechanism.
     *          eventually it will trigger the logic of the backend for adding the inline attributes.
     */

  }, {
    key: "removeInlineAddingAttributes",
    value: function removeInlineAddingAttributes() {
      var globalWidgetElementDom = this.el.querySelector('.elementor-inline-editing');

      if (globalWidgetElementDom) {
        globalWidgetElementDom.classList.remove('elementor-inline-editing');
      }
    }
  }]);
  return View;
}(WidgetView);

exports.default = View;

/***/ }),

/***/ "../modules/library/assets/js/editor.js":
/*!**********************************************!*\
  !*** ../modules/library/assets/js/editor.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  onElementorPreviewLoaded: function onElementorPreviewLoaded() {
    var EditButton = __webpack_require__(/*! ./editor/edit-button */ "../modules/library/assets/js/editor/edit-button.js");

    this.editButton = new EditButton();
  }
});

/***/ }),

/***/ "../modules/library/assets/js/editor/edit-button.js":
/*!**********************************************************!*\
  !*** ../modules/library/assets/js/editor/edit-button.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = function () {
  var self = this;

  self.onPanelShow = function (panel) {
    var model = panel.content.currentView.collection.findWhere({
      name: 'template_id'
    });
    self.templateIdView = panel.content.currentView.children.findByModelCid(model.cid); // Change Edit link on render & on change template.

    self.templateIdView.elementSettingsModel.on('change', self.onTemplateIdChange);
    self.templateIdView.on('render', self.onTemplateIdChange);
  };

  self.onTemplateIdChange = function () {
    var templateID = self.templateIdView.elementSettingsModel.get('template_id'),
        $editButton = self.templateIdView.$el.find('.elementor-edit-template');

    if (!templateID) {
      $editButton.remove();
      return;
    }

    var editUrl = ElementorConfig.home_url + '?p=' + templateID + '&elementor';

    if ($editButton.length) {
      $editButton.prop('href', editUrl);
    } else {
      $editButton = jQuery('<a />', {
        target: '_blank',
        class: 'elementor-button elementor-button-default elementor-edit-template',
        href: editUrl,
        html: '<i class="eicon-pencil" /> ' + elementorPro.config.i18n.edit_template
      });
      self.templateIdView.$el.find('.elementor-control-input-wrapper').after($editButton);
    }
  };

  self.init = function () {
    elementor.hooks.addAction('panel/open_editor/widget/template', self.onPanelShow);
  };

  self.init();
};

/***/ }),

/***/ "../modules/motion-fx/assets/js/editor/editor.js":
/*!*******************************************************!*\
  !*** ../modules/motion-fx/assets/js/editor/editor.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(_default, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      elementor.on('navigator:init', this.onNavigatorInit.bind(this));
    }
  }, {
    key: "onNavigatorInit",
    value: function onNavigatorInit() {
      elementor.navigator.indicators.motionFX = {
        icon: 'flash',
        title: elementorPro.translate('motion_effects'),
        settingKeys: ['motion_fx_motion_fx_scrolling', 'motion_fx_motion_fx_mouse', 'background_motion_fx_motion_fx_scrolling', 'background_motion_fx_motion_fx_mouse'],
        section: 'section_effects'
      };
    }
  }]);
  return _default;
}(elementorModules.editor.utils.Module);

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/component.js":
/*!******************************************************!*\
  !*** ../modules/popup/assets/js/editor/component.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/popup/assets/js/editor/hooks/index.js"));

var PopupComponent = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(PopupComponent, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(PopupComponent);

  function PopupComponent() {
    var _this;

    (0, _classCallCheck2.default)(this, PopupComponent);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onPageSettingsCloseHandler", null);
    return _this;
  }

  (0, _createClass2.default)(PopupComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'document/popup';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
  return PopupComponent;
}($e.modules.ComponentBase);

exports.default = PopupComponent;

/***/ }),

/***/ "../modules/popup/assets/js/editor/controls/display-settings.js":
/*!**********************************************************************!*\
  !*** ../modules/popup/assets/js/editor/controls/display-settings.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(_default, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    var _this;

    (0, _classCallCheck2.default)(this, _default);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.template = _.noop;
    _this.activeTab = 'content';

    _this.listenTo(_this.model, 'change', _this.onModelChange);

    return _this;
  }

  (0, _createClass2.default)(_default, [{
    key: "getNamespaceArray",
    value: function getNamespaceArray() {
      return ['popup', 'display-settings'];
    }
  }, {
    key: "className",
    value: function className() {
      return (0, _get2.default)((0, _getPrototypeOf2.default)(_default.prototype), "className", this).call(this) + ' elementor-popup__display-settings';
    }
  }, {
    key: "toggleGroup",
    value: function toggleGroup(groupName, $groupElement) {
      $groupElement.toggleClass('elementor-active', !!this.model.get(groupName));
    }
  }, {
    key: "onRenderTemplate",
    value: function onRenderTemplate() {
      this.activateFirstSection();
    }
  }, {
    key: "onRender",
    value: function onRender() {
      var _this2 = this;

      var name = this.getOption('name');
      var $groupWrapper;
      this.children.each(function (child) {
        var type = child.model.get('type');

        if ('heading' !== type) {
          if ($groupWrapper) {
            $groupWrapper.append(child.$el);
          }

          return;
        }

        var groupName = child.model.get('name').replace('_heading', '');
        $groupWrapper = jQuery('<div>', {
          id: "elementor-popup__".concat(name, "-controls-group--").concat(groupName),
          class: 'elementor-popup__display-settings_controls_group'
        });
        var $imageWrapper = jQuery('<div>', {
          class: 'elementor-popup__display-settings_controls_group__icon'
        }),
            $image = jQuery('<img>', {
          src: elementorPro.config.urls.modules + "popup/assets/images/".concat(name, "/").concat(groupName, ".svg")
        });
        $imageWrapper.html($image);
        $groupWrapper.html($imageWrapper);
        child.$el.before($groupWrapper);
        $groupWrapper.append(child.$el);

        _this2.toggleGroup(groupName, $groupWrapper);
      });
    }
  }, {
    key: "onModelChange",
    value: function onModelChange() {
      var changedControlName = (0, _keys.default)(this.model.changed)[0],
          changedControlView = this.getControlViewByName(changedControlName);

      if ('switcher' !== changedControlView.model.get('type')) {
        return;
      }

      this.toggleGroup(changedControlName, changedControlView.$el.parent());
    }
  }]);
  return _default;
}(elementorModules.editor.views.ControlsStack);

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/data/index.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/data/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "PopupSave", {
  enumerable: true,
  get: function get() {
    return _save.PopupSave;
  }
});

var _save = __webpack_require__(/*! ./save */ "../modules/popup/assets/js/editor/hooks/data/save.js");

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/data/save.js":
/*!************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/data/save.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupSave = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var PopupSave = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(PopupSave, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(PopupSave);

  function PopupSave() {
    (0, _classCallCheck2.default)(this, PopupSave);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-save';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return 'popup' === elementor.config.document.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      var settings = {};
      jQuery.each(elementorPro.modules.popup.displaySettingsTypes, function (type, data) {
        settings[type] = data.model.toJSON({
          remove: ['default']
        });
      });
      elementorPro.ajax.addRequest('popup_save_display_settings', {
        data: {
          settings: settings
        }
      });
    }
  }]);
  return PopupSave;
}($e.modules.hookData.After);

exports.PopupSave = PopupSave;
var _default = PopupSave;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/index.js":
/*!********************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/index.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _data = __webpack_require__(/*! ./data/ */ "../modules/popup/assets/js/editor/hooks/data/index.js");

_Object$keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});

var _ui = __webpack_require__(/*! ./ui/ */ "../modules/popup/assets/js/editor/hooks/ui/index.js");

_Object$keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/base/base-hook-popup-after.js":
/*!********************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/base/base-hook-popup-after.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var BaseHookPopupAfter = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(BaseHookPopupAfter, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(BaseHookPopupAfter);

  function BaseHookPopupAfter() {
    (0, _classCallCheck2.default)(this, BaseHookPopupAfter);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(BaseHookPopupAfter, [{
    key: "run",
    value: function run() {
      var _get2;

      this.component = this.component || $e.components.get('document/popup');

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      return (_get2 = (0, _get3.default)((0, _getPrototypeOf2.default)(BaseHookPopupAfter.prototype), "run", this)).call.apply(_get2, [this].concat(args));
    }
  }]);
  return BaseHookPopupAfter;
}($e.modules.hookUI.After);

exports.default = BaseHookPopupAfter;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-instructions.js":
/*!************************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-instructions.js ***!
  \************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupRemoveInstructions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _baseHookPopupAfter = _interopRequireDefault(__webpack_require__(/*! ../../../base/base-hook-popup-after */ "../modules/popup/assets/js/editor/hooks/ui/base/base-hook-popup-after.js"));

var PopupRemoveInstructions = /*#__PURE__*/function (_BaseHookPopupAfter) {
  (0, _inherits2.default)(PopupRemoveInstructions, _BaseHookPopupAfter);

  var _super = (0, _createSuper2.default)(PopupRemoveInstructions);

  function PopupRemoveInstructions() {
    (0, _classCallCheck2.default)(this, PopupRemoveInstructions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupRemoveInstructions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-remove-instructions';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return 'popup' === document.config.type && !elementor.config.user.introduction.popupSettings;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('panel/page-settings').off('route/close', this.component.onPageSettingsCloseHandler);
    }
  }]);
  return PopupRemoveInstructions;
}(_baseHookPopupAfter.default);

exports.PopupRemoveInstructions = PopupRemoveInstructions;
var _default = PopupRemoveInstructions;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js":
/*!***********************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js ***!
  \***********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupRemoveLibraryTab = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var PopupRemoveLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(PopupRemoveLibraryTab, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(PopupRemoveLibraryTab);

  function PopupRemoveLibraryTab() {
    (0, _classCallCheck2.default)(this, PopupRemoveLibraryTab);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupRemoveLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-remove-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return 'popup' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').removeTab('templates/popups');
    }
  }]);
  return PopupRemoveLibraryTab;
}($e.modules.hookUI.After);

exports.PopupRemoveLibraryTab = PopupRemoveLibraryTab;
var _default = PopupRemoveLibraryTab;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js":
/*!********************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupRemoveTriggers = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var PopupRemoveTriggers = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(PopupRemoveTriggers, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(PopupRemoveTriggers);

  function PopupRemoveTriggers() {
    (0, _classCallCheck2.default)(this, PopupRemoveTriggers);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupRemoveTriggers, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-remove-triggers';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return 'popup' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      this.removePanelFooterSubmenuItems();
      this.removePublishTabs();
    }
  }, {
    key: "removePanelFooterSubmenuItems",
    value: function removePanelFooterSubmenuItems() {
      var displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes;
      jQuery.each(displaySettingsTypes, function (type) {
        elementor.getPanelView().footer.currentView.removeSubMenuItem('saver-options', {
          name: type
        });
      });
    }
  }, {
    key: "removePublishTabs",
    value: function removePublishTabs() {
      var component = $e.components.get('theme-builder-publish'),
          displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes;
      jQuery.each(displaySettingsTypes, function (type) {
        component.removeTab(type);
      });
    }
  }]);
  return PopupRemoveTriggers;
}($e.modules.hookUI.After);

exports.PopupRemoveTriggers = PopupRemoveTriggers;
var _default = PopupRemoveTriggers;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-instructions.js":
/*!********************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-instructions.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupAddInstructions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _baseHookPopupAfter = _interopRequireDefault(__webpack_require__(/*! ../../../base/base-hook-popup-after */ "../modules/popup/assets/js/editor/hooks/ui/base/base-hook-popup-after.js"));

var PopupAddInstructions = /*#__PURE__*/function (_BaseHookPopupAfter) {
  (0, _inherits2.default)(PopupAddInstructions, _BaseHookPopupAfter);

  var _super = (0, _createSuper2.default)(PopupAddInstructions);

  function PopupAddInstructions() {
    (0, _classCallCheck2.default)(this, PopupAddInstructions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupAddInstructions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-add-instructions';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = elementor.documents.get(args.id);
      return 'popup' === document.config.type && !elementor.config.user.introduction.popupSettings;
    }
  }, {
    key: "apply",
    value: function apply() {
      // Expose for the remove hook.
      this.component.onPageSettingsCloseHandler = this.onPageSettingsClose.bind(this);
      $e.components.get('panel/page-settings').on('route/close', this.component.onPageSettingsCloseHandler);
    }
  }, {
    key: "onPageSettingsClose",
    value: function onPageSettingsClose() {
      var introduction = this.getIntroduction();
      introduction.show(elementor.getPanelView().footer.currentView.ui.settings[0]);
      introduction.setViewed();
      $e.components.get('panel/page-settings').off('route/close', this.component.onPageSettingsCloseHandler);
    }
  }, {
    key: "getIntroduction",
    value: function getIntroduction() {
      return new elementorModules.editor.utils.Introduction({
        introductionKey: 'popupSettings',
        dialogOptions: {
          id: 'elementor-popup-settings-introduction',
          headerMessage: '<i class="eicon-info"></i>' + elementorPro.translate('popup_settings_introduction_title'),
          message: elementorPro.translate('popup_settings_introduction_message'),
          closeButton: true,
          closeButtonClass: 'eicon-close',
          position: {
            my: 'left bottom',
            at: 'right bottom-5',
            autoRefresh: true
          },
          hide: {
            onOutsideClick: false
          }
        }
      });
    }
  }]);
  return PopupAddInstructions;
}(_baseHookPopupAfter.default);

exports.PopupAddInstructions = PopupAddInstructions;
var _default = PopupAddInstructions;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js":
/*!*******************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupAddLibraryTab = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var PopupAddLibraryTab = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(PopupAddLibraryTab, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(PopupAddLibraryTab);

  function PopupAddLibraryTab() {
    (0, _classCallCheck2.default)(this, PopupAddLibraryTab);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupAddLibraryTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-add-library-tab';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = elementor.documents.get(args.id);
      return 'popup' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.components.get('library').addTab('templates/popups', {
        title: elementorPro.translate('popups'),
        filter: {
          source: 'remote',
          type: 'popup'
        }
      }, 1);
    }
  }]);
  return PopupAddLibraryTab;
}($e.modules.hookUI.After);

exports.PopupAddLibraryTab = PopupAddLibraryTab;
var _default = PopupAddLibraryTab;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js":
/*!****************************************************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.PopupAddTriggers = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _displaySettings = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/editor/controls/display-settings */ "../modules/popup/assets/js/editor/controls/display-settings.js"));

var PopupAddTriggers = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(PopupAddTriggers, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(PopupAddTriggers);

  function PopupAddTriggers() {
    (0, _classCallCheck2.default)(this, PopupAddTriggers);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(PopupAddTriggers, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-popup-add-triggers';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = elementor.documents.get(args.id);
      return 'popup' === document.config.type;
    }
  }, {
    key: "apply",
    value: function apply() {
      if (elementor.panel) {
        this.addUI();
      } else {
        // First open, the panel is not available yet.
        elementor.on('preview:loaded', this.addUI.bind(this));
      }
    }
  }, {
    key: "addUI",
    value: function addUI() {
      // Since 'addUI' can be called each document load, if 'theme-builder-publish/triggers' exists, the UI already exist.
      if ($e.routes.commands['theme-builder-publish/triggers']) {
        return;
      }

      this.addPanelFooterSubmenuItems();
      this.addPublishTabs();
    }
  }, {
    key: "addPublishTabs",
    value: function addPublishTabs() {
      var config = elementor.config.document.displaySettings,
          component = $e.components.get('theme-builder-publish'),
          module = elementorPro.modules.popup;
      jQuery.each(module.displaySettingsTypes, function (type, data) {
        // Init models for editor save.
        data.model = new elementorModules.editor.elements.models.BaseSettings(config[type].settings, {
          controls: config[type].controls
        });
        component.addTab(type, {
          View: _displaySettings.default,
          viewOptions: {
            name: type,
            id: "elementor-popup-".concat(type, "__controls"),
            model: data.model,
            controls: data.model.controls
          },
          name: type,
          title: elementorPro.translate(type),
          description: elementorPro.translate("popup_publish_screen_".concat(type, "_description")),
          image: elementorPro.config.urls.modules + "popup/assets/images/".concat(type, "-tab.svg")
        });
      });
    }
  }, {
    key: "addPanelFooterSubmenuItems",
    value: function addPanelFooterSubmenuItems() {
      var component = $e.components.get('theme-builder-publish'),
          displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes;
      jQuery.each(displaySettingsTypes, function (type, data) {
        elementor.getPanelView().footer.currentView.addSubMenuItem('saver-options', {
          before: 'save-template',
          name: type,
          icon: data.icon,
          title: elementorPro.translate(type),
          callback: function callback() {
            return $e.route(component.getTabRoute(type));
          }
        });
      });
    }
  }]);
  return PopupAddTriggers;
}($e.modules.hookUI.After);

exports.PopupAddTriggers = PopupAddTriggers;
var _default = PopupAddTriggers;
exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/editor/hooks/ui/index.js":
/*!***********************************************************!*\
  !*** ../modules/popup/assets/js/editor/hooks/ui/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "PopupAddInstructions", {
  enumerable: true,
  get: function get() {
    return _addInstructions.PopupAddInstructions;
  }
});

_Object$defineProperty(exports, "PopupAddLibraryTab", {
  enumerable: true,
  get: function get() {
    return _addLibraryTab.PopupAddLibraryTab;
  }
});

_Object$defineProperty(exports, "PopupAddTriggers", {
  enumerable: true,
  get: function get() {
    return _addTriggers.PopupAddTriggers;
  }
});

_Object$defineProperty(exports, "PopupRemoveInstructions", {
  enumerable: true,
  get: function get() {
    return _removeInstructions.PopupRemoveInstructions;
  }
});

_Object$defineProperty(exports, "PopupRemoveLibraryTab", {
  enumerable: true,
  get: function get() {
    return _removeLibraryTab.PopupRemoveLibraryTab;
  }
});

_Object$defineProperty(exports, "PopupRemoveTriggers", {
  enumerable: true,
  get: function get() {
    return _removeTriggers.PopupRemoveTriggers;
  }
});

var _addInstructions = __webpack_require__(/*! ./editor/documents/open/add-instructions */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-instructions.js");

var _addLibraryTab = __webpack_require__(/*! ./editor/documents/open/add-library-tab */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js");

var _addTriggers = __webpack_require__(/*! ./editor/documents/open/add-triggers */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js");

var _removeInstructions = __webpack_require__(/*! ./editor/documents/close/remove-instructions */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-instructions.js");

var _removeLibraryTab = __webpack_require__(/*! ./editor/documents/close/remove-library-tab */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js");

var _removeTriggers = __webpack_require__(/*! ./editor/documents/close/remove-triggers */ "../modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js");

/***/ }),

/***/ "../modules/popup/assets/js/editor/module.js":
/*!***************************************************!*\
  !*** ../modules/popup/assets/js/editor/module.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/popup/assets/js/editor/component.js"));

var PopupModule = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(PopupModule, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(PopupModule);

  function PopupModule() {
    var _this;

    (0, _classCallCheck2.default)(this, PopupModule);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.displaySettingsTypes = {
      triggers: {
        icon: 'eicon-click'
      },
      timing: {
        icon: 'eicon-cog'
      }
    };
    return _this;
  }

  (0, _createClass2.default)(PopupModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
    }
  }]);
  return PopupModule;
}(elementorModules.editor.utils.Module);

module.exports = PopupModule;

/***/ }),

/***/ "../modules/query-control/assets/js/editor.js":
/*!****************************************************!*\
  !*** ../modules/query-control/assets/js/editor.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  onElementorPreviewLoaded: function onElementorPreviewLoaded() {
    elementor.addControlView('Query', __webpack_require__(/*! ./editor/query-control */ "../modules/query-control/assets/js/editor/query-control.js"));
  }
});

/***/ }),

/***/ "../modules/query-control/assets/js/editor/query-control.js":
/*!******************************************************************!*\
  !*** ../modules/query-control/assets/js/editor/query-control.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = elementor.modules.controls.Select2.extend({
  cache: null,
  isTitlesReceived: false,
  getSelect2Placeholder: function getSelect2Placeholder() {
    return {
      id: '',
      text: elementorPro.translate('all')
    };
  },
  getControlValueByName: function getControlValueByName(controlName) {
    var name = this.model.get('group_prefix') + controlName;
    return this.elementSettingsModel.attributes[name];
  },
  getQueryDataDeprecated: function getQueryDataDeprecated() {
    return {
      filter_type: this.model.get('filter_type'),
      object_type: this.model.get('object_type'),
      include_type: this.model.get('include_type'),
      query: this.model.get('query')
    };
  },
  getQueryData: function getQueryData() {
    // Use a clone to keep model data unchanged:
    var autocomplete = elementorCommon.helpers.cloneObject(this.model.get('autocomplete'));

    if (_.isEmpty(autocomplete.query)) {
      autocomplete.query = {};
    } // Specific for Group_Control_Query


    if ('cpt_tax' === autocomplete.object) {
      autocomplete.object = 'tax';

      if (_.isEmpty(autocomplete.query) || _.isEmpty(autocomplete.query.post_type)) {
        autocomplete.query.post_type = this.getControlValueByName('post_type');
      }
    }

    return {
      autocomplete: autocomplete
    };
  },
  getSelect2DefaultOptions: function getSelect2DefaultOptions() {
    var self = this;
    return jQuery.extend(elementor.modules.controls.Select2.prototype.getSelect2DefaultOptions.apply(this, arguments), {
      ajax: {
        transport: function transport(params, success, failure) {
          var bcFormat = !_.isEmpty(self.model.get('filter_type'));
          var data = {},
              action = 'panel_posts_control_filter_autocomplete';

          if (bcFormat) {
            data = self.getQueryDataDeprecated();
            action = 'panel_posts_control_filter_autocomplete_deprecated';
          } else {
            data = self.getQueryData();
          }

          data.q = params.data.q;
          return elementorPro.ajax.addRequest(action, {
            data: data,
            success: success,
            error: failure
          });
        },
        data: function data(params) {
          return {
            q: params.term,
            page: params.page
          };
        },
        cache: true
      },
      escapeMarkup: function escapeMarkup(markup) {
        return markup;
      },
      minimumInputLength: 1
    });
  },
  getValueTitles: function getValueTitles() {
    var self = this,
        data = {},
        bcFormat = !_.isEmpty(this.model.get('filter_type'));
    var ids = this.getControlValue(),
        action = 'query_control_value_titles',
        filterTypeName = 'autocomplete',
        filterType = {};

    if (bcFormat) {
      filterTypeName = 'filter_type';
      filterType = this.model.get(filterTypeName).object;
      data.filter_type = filterType;
      data.object_type = self.model.get('object_type');
      data.include_type = self.model.get('include_type');
      data.unique_id = '' + self.cid + filterType;
      action = 'query_control_value_titles_deprecated';
    } else {
      filterType = this.model.get(filterTypeName).object;
      data.get_titles = self.getQueryData().autocomplete;
      data.unique_id = '' + self.cid + filterType;
    }

    if (!ids || !filterType) {
      return;
    }

    if (!_.isArray(ids)) {
      ids = [ids];
    }

    elementorCommon.ajax.loadObjects({
      action: action,
      ids: ids,
      data: data,
      before: function before() {
        self.addControlSpinner();
      },
      success: function success(ajaxData) {
        self.isTitlesReceived = true;
        self.model.set('options', ajaxData);
        self.render();
      }
    });
  },
  addControlSpinner: function addControlSpinner() {
    this.ui.select.prop('disabled', true);
    this.$el.find('.elementor-control-title').after('<span class="elementor-control-spinner">&nbsp;<i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>');
  },
  onReady: function onReady() {
    if (!this.isTitlesReceived) {
      this.getValueTitles();
    }
  }
});

/***/ }),

/***/ "../modules/screenshots/assets/js/editor/component.js":
/*!************************************************************!*\
  !*** ../modules/screenshots/assets/js/editor/component.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var dataHooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/data */ "../modules/screenshots/assets/js/editor/hooks/data/index.js"));

var _default = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(_default, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'screenshots';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(dataHooks);
    }
  }]);
  return _default;
}($e.modules.ComponentBase);

exports.default = _default;

/***/ }),

/***/ "../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js":
/*!**************************************************************************************************!*\
  !*** ../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js ***!
  \**************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.DeleteScreenshot = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var DeleteScreenshot = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(DeleteScreenshot, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(DeleteScreenshot);

  function DeleteScreenshot() {
    (0, _classCallCheck2.default)(this, DeleteScreenshot);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(DeleteScreenshot, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var status = args.status,
          config = elementor.documents.getCurrent().config;
      return 'publish' === status && config.support_site_editor;
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'document/save/save::delete-screenshot';
    }
  }, {
    key: "apply",
    value: function apply() {
      var postId = elementor.documents.getCurrent().id;
      return elementorCommon.ajax.addRequest('screenshot_delete', {
        unique_id: "delete_screenshot_".concat(postId),
        data: {
          post_id: postId
        }
      });
    }
  }]);
  return DeleteScreenshot;
}($e.modules.hookData.After);

exports.DeleteScreenshot = DeleteScreenshot;
var _default = DeleteScreenshot;
exports.default = _default;

/***/ }),

/***/ "../modules/screenshots/assets/js/editor/hooks/data/index.js":
/*!*******************************************************************!*\
  !*** ../modules/screenshots/assets/js/editor/hooks/data/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "DeleteScreenshot", {
  enumerable: true,
  get: function get() {
    return _deleteScreenshot.DeleteScreenshot;
  }
});

var _deleteScreenshot = __webpack_require__(/*! ./document/save/save/delete-screenshot */ "../modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js");

/***/ }),

/***/ "../modules/screenshots/assets/js/editor/module.js":
/*!*********************************************************!*\
  !*** ../modules/screenshots/assets/js/editor/module.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/screenshots/assets/js/editor/component.js"));

var Module = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(Module, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(Module);

  function Module() {
    (0, _classCallCheck2.default)(this, Module);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Module, [{
    key: "onElementorInit",
    value: function onElementorInit() {
      $e.components.register(new _component.default());
    }
  }]);
  return Module;
}(elementorModules.editor.utils.Module);

exports.default = Module;

/***/ }),

/***/ "../modules/scroll-snap/assets/js/editor/component.js":
/*!************************************************************!*\
  !*** ../modules/scroll-snap/assets/js/editor/component.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ui */ "../modules/scroll-snap/assets/js/editor/hooks/ui/index.js"));

var ScrollSnapComponent = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(ScrollSnapComponent, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(ScrollSnapComponent);

  function ScrollSnapComponent() {
    (0, _classCallCheck2.default)(this, ScrollSnapComponent);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ScrollSnapComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'scroll-snap';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
  return ScrollSnapComponent;
}($e.modules.ComponentBase);

exports.default = ScrollSnapComponent;

/***/ }),

/***/ "../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js":
/*!****************************************************************************************************!*\
  !*** ../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.FocusPreview = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var FocusPreview = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(FocusPreview, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(FocusPreview);

  function FocusPreview() {
    (0, _classCallCheck2.default)(this, FocusPreview);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FocusPreview, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'focus-preview--document/elements/settings';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$settings$scroll;

      return ((_args$settings$scroll = args.settings.scroll_snap_padding) === null || _args$settings$scroll === void 0 ? void 0 : _args$settings$scroll.size) !== '';
    }
  }, {
    key: "apply",
    value: function apply() {
      setTimeout(function () {
        elementor.$preview[0].contentWindow.scrollBy(0, 0);
      }, 100);
    }
  }]);
  return FocusPreview;
}($e.modules.hookData.After);

exports.FocusPreview = FocusPreview;
var _default = FocusPreview;
exports.default = _default;

/***/ }),

/***/ "../modules/scroll-snap/assets/js/editor/hooks/ui/index.js":
/*!*****************************************************************!*\
  !*** ../modules/scroll-snap/assets/js/editor/hooks/ui/index.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "FocusPreview", {
  enumerable: true,
  get: function get() {
    return _focusPreview.FocusPreview;
  }
});

var _focusPreview = __webpack_require__(/*! ./document/elements/settings/focus-preview */ "../modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js");

/***/ }),

/***/ "../modules/scroll-snap/assets/js/editor/module.js":
/*!*********************************************************!*\
  !*** ../modules/scroll-snap/assets/js/editor/module.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/scroll-snap/assets/js/editor/component.js"));

var Module = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(Module, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(Module);

  function Module() {
    (0, _classCallCheck2.default)(this, Module);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Module, [{
    key: "onInit",
    value:
    /**
     * Init
     */
    function onInit() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(Module.prototype), "onInit", this).call(this);
      $e.components.register(new _component.default());
    }
  }]);
  return Module;
}(elementorModules.editor.utils.Module);

exports.default = Module;

/***/ }),

/***/ "../modules/share-buttons/assets/js/editor/editor.js":
/*!***********************************************************!*\
  !*** ../modules/share-buttons/assets/js/editor/editor.js ***!
  \***********************************************************/
/***/ ((module) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  config: elementorPro.config.shareButtonsNetworks,
  networksClassDictionary: {
    google: 'fab fa-google-plus',
    pocket: 'fab fa-get-pocket',
    email: 'fas fa-envelope',
    print: 'fas fa-print'
  },
  getNetworkClass: function getNetworkClass(networkName) {
    var networkClass = this.networksClassDictionary[networkName] || 'fab fa-' + networkName;

    if (elementor.config.icons_update_needed) {
      networkClass = 'fa ' + networkClass;
    }

    return networkClass;
  },
  getNetworkTitle: function getNetworkTitle(buttonSettings) {
    var _this$getNetworkData;

    // BC for items that are already selected and have been removed from the options list.
    return buttonSettings.text || ((_this$getNetworkData = this.getNetworkData(buttonSettings)) === null || _this$getNetworkData === void 0 ? void 0 : _this$getNetworkData.title);
  },
  getNetworkData: function getNetworkData(buttonSettings) {
    return this.config[buttonSettings.button];
  },
  hasCounter: function hasCounter(networkName, settings) {
    return 'icon' !== settings.view && 'yes' === settings.show_counter && this.config[networkName].has_counter;
  }
});

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/conditions/repeater-row.js":
/*!****************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/conditions/repeater-row.js ***!
  \****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

module.exports = elementor.modules.controls.RepeaterRow.extend({
  template: '#tmpl-elementor-theme-builder-conditions-repeater-row',
  childViewContainer: '.elementor-theme-builder-conditions-repeater-row-controls',
  conflictCheckedOnFirstRender: false,
  id: function id() {
    return 'elementor-condition-id-' + this.model.get('_id');
  },
  onBeforeRender: function onBeforeRender() {
    var subNameModel = this.collection.findWhere({
      name: 'sub_name'
    }),
        subIdModel = this.collection.findWhere({
      name: 'sub_id'
    }),
        subConditionConfig = this.config.conditions[this.model.attributes.sub_name];
    subNameModel.attributes.groups = this.getOptions();

    if (subConditionConfig && subConditionConfig.controls) {
      _(subConditionConfig.controls).each(function (control) {
        subIdModel.set(control);
        subIdModel.set('name', 'sub_id');
      });
    }
  },
  initialize: function initialize() {
    elementor.modules.controls.RepeaterRow.prototype.initialize.apply(this, arguments);
    this.config = elementor.config.document.theme_builder;
  },
  updateOptions: function updateOptions() {
    if (this.model.changed.name) {
      this.model.set({
        sub_name: '',
        sub_id: ''
      });
    }

    if (this.model.changed.name || this.model.changed.sub_name) {
      this.model.set('sub_id', '', {
        silent: true
      });
      var subIdModel = this.collection.findWhere({
        name: 'sub_id'
      });
      subIdModel.set({
        type: 'select',
        options: {
          '': 'All'
        }
      });
      this.render();
    }

    if (this.model.changed.type) {
      this.setTypeAttribute();
    }
  },
  getOptions: function getOptions() {
    var self = this,
        conditionConfig = self.config.conditions[this.model.get('name')];

    if (!conditionConfig) {
      return;
    }

    var options = {
      '': conditionConfig.all_label
    };

    _(conditionConfig.sub_conditions).each(function (conditionId, conditionIndex) {
      var subConditionConfig = self.config.conditions[conditionId],
          group;

      if (!subConditionConfig) {
        return;
      }

      if (subConditionConfig.sub_conditions.length) {
        group = {
          label: subConditionConfig.label,
          options: {}
        };
        group.options[conditionId] = subConditionConfig.all_label;

        _(subConditionConfig.sub_conditions).each(function (subConditionId) {
          group.options[subConditionId] = self.config.conditions[subConditionId].label;
        }); // Use a sting key - to keep order


        options['key' + conditionIndex] = group;
      } else {
        options[conditionId] = subConditionConfig.label;
      }
    });

    return options;
  },
  setTypeAttribute: function setTypeAttribute() {
    var typeView = this.children.findByModel(this.collection.findWhere({
      name: 'type'
    }));
    typeView.$el.attr('data-elementor-condition-type', typeView.getControlValue());
  },
  // Moved from `modules/theme-builder/assets/js/editor/conditions/repeater.js`.
  checkConflicts: function checkConflicts() {
    var modelId = this.model.get('_id'),
        rowId = 'elementor-condition-id-' + modelId,
        errorMessageId = 'elementor-conditions-conflict-message-' + modelId,
        $error = jQuery('#' + errorMessageId); // On render - the row isn't exist, so don't cache it.

    jQuery('#' + rowId).removeClass('elementor-error');
    $error.remove();
    elementorPro.ajax.addRequest('theme_builder_conditions_check_conflicts', {
      unique_id: rowId,
      data: {
        condition: this.model.toJSON()
      },
      success: function success(data) {
        if (!_.isEmpty(data)) {
          jQuery('#' + rowId).addClass('elementor-error').after('<div id="' + errorMessageId + '" class="elementor-conditions-conflict-message">' + data + '</div>');
        }
      }
    });
  },
  onRender: function onRender() {
    var nameModel = this.collection.findWhere({
      name: 'name'
    }),
        subNameModel = this.collection.findWhere({
      name: 'sub_name'
    }),
        subIdModel = this.collection.findWhere({
      name: 'sub_id'
    }),
        nameView = this.children.findByModel(nameModel),
        subNameView = this.children.findByModel(subNameModel),
        subIdView = this.children.findByModel(subIdModel),
        conditionConfig = this.config.conditions[this.model.attributes.name],
        subConditionConfig = this.config.conditions[this.model.attributes.sub_name],
        typeConfig = this.config.types[this.config.settings.template_type];

    if (typeConfig.condition_type === nameView.getControlValue() && 'general' !== nameView.getControlValue() && !_.isEmpty(conditionConfig.sub_conditions)) {
      nameView.$el.hide();
    }

    if (!conditionConfig || _.isEmpty(conditionConfig.sub_conditions) && _.isEmpty(conditionConfig.controls) || !nameView.getControlValue() || 'general' === nameView.getControlValue()) {
      subNameView.$el.hide();
    }

    if (!subConditionConfig || _.isEmpty(subConditionConfig.controls) || !subNameView.getControlValue()) {
      subIdView.$el.hide();
    } // Avoid set a `single` for a-l-l singular types. (conflicted with 404 & custom cpt like Shops and Events plugins).


    if ('singular' === typeConfig.condition_type) {
      if ('' === subNameView.getControlValue()) {
        subNameView.setValue('post');
      }
    }

    this.setTypeAttribute();

    if (!this.conflictCheckedOnFirstRender) {
      this.checkConflicts();
      this.conflictCheckedOnFirstRender = true;
    }
  },
  onModelChange: function onModelChange() {
    this.updateOptions();
    this.checkConflicts();
  }
});

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/conditions/repeater.js":
/*!************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/conditions/repeater.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _repeaterRow = _interopRequireDefault(__webpack_require__(/*! ./repeater-row */ "../modules/theme-builder/assets/js/editor/conditions/repeater-row.js"));

module.exports = elementor.modules.controls.Repeater.extend({
  childView: _repeaterRow.default,
  updateActiveRow: function updateActiveRow() {},
  initialize: function initialize() {
    elementor.modules.controls.Repeater.prototype.initialize.apply(this, arguments);
    this.config = elementor.config.document.theme_builder;
    this.updateConditionsOptions(this.config.settings.template_type);
  },
  updateConditionsOptions: function updateConditionsOptions(templateType) {
    var self = this,
        conditionType = self.config.types[templateType].condition_type,
        options = {};

    _([conditionType]).each(function (conditionId, conditionIndex) {
      var conditionConfig = self.config.conditions[conditionId],
          group = {
        label: conditionConfig.label,
        options: {}
      };
      group.options[conditionId] = conditionConfig.all_label;

      _(conditionConfig.sub_conditions).each(function (subConditionId) {
        group.options[subConditionId] = self.config.conditions[subConditionId].label;
      });

      options[conditionIndex] = group;
    });

    var fields = this.model.get('fields');
    fields[1].default = conditionType;

    if ('general' === conditionType) {
      fields[1].groups = options;
    } else {
      fields[2].groups = options;
    }
  },
  onRender: function onRender() {
    this.ui.btnAddRow.text(elementorPro.translate('add_condition'));
  }
});

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/conditions/view.js":
/*!********************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/conditions/view.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var inlineControlsStack = __webpack_require__(/*! elementor-pro/editor/inline-controls-stack.js */ "../assets/dev/js/editor/inline-controls-stack.js");

module.exports = inlineControlsStack.extend({
  id: 'elementor-theme-builder-conditions-view',
  template: '#tmpl-elementor-theme-builder-conditions-view',
  childViewContainer: '#elementor-theme-builder-conditions-controls',
  childViewOptions: function childViewOptions() {
    return {
      elementSettingsModel: this.model
    };
  }
});

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js":
/*!************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js ***!
  \************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "ThemeBuilderSaveAndReload", {
  enumerable: true,
  get: function get() {
    return _saveAndReload.ThemeBuilderSaveAndReload;
  }
});

_Object$defineProperty(exports, "ThemeBuilderUpdatePreviewOptions", {
  enumerable: true,
  get: function get() {
    return _updatePreviewOptions.ThemeBuilderUpdatePreviewOptions;
  }
});

var _saveAndReload = __webpack_require__(/*! ./save-and-reload */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js");

var _updatePreviewOptions = __webpack_require__(/*! ./update-preview-options */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js");

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js":
/*!**********************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js ***!
  \**********************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderSaveAndReload = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * Hook fired when template: 'single' page layout changed.
 */
var ThemeBuilderSaveAndReload = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ThemeBuilderSaveAndReload, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ThemeBuilderSaveAndReload);

  function ThemeBuilderSaveAndReload() {
    (0, _classCallCheck2.default)(this, ThemeBuilderSaveAndReload);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderSaveAndReload, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-save-and-reload';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings && args.settings.page_template;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.run('document/save/auto', {
        force: true,
        onSuccess: function onSuccess() {
          elementor.reloadPreview();
          elementor.once('preview:loaded', function () {
            $e.route('panel/page-settings/settings');
          });
        }
      });
    }
  }]);
  return ThemeBuilderSaveAndReload;
}($e.modules.hookData.After);

exports.ThemeBuilderSaveAndReload = ThemeBuilderSaveAndReload;
var _default = ThemeBuilderSaveAndReload;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js":
/*!*****************************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js ***!
  \*****************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderUpdatePreviewOptions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderUpdatePreviewOptions = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ThemeBuilderUpdatePreviewOptions, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ThemeBuilderUpdatePreviewOptions);

  function ThemeBuilderUpdatePreviewOptions() {
    (0, _classCallCheck2.default)(this, ThemeBuilderUpdatePreviewOptions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderUpdatePreviewOptions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-update-preview-options';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings && args.settings.preview_type;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      var _args$containers = args.containers,
          containers = _args$containers === void 0 ? [args.container] : _args$containers,
          themeBuilder = elementorPro.modules.themeBuilder;
      $e.run('document/elements/settings', {
        containers: containers,
        settings: {
          preview_id: '',
          preview_search_term: ''
        }
      });

      if ($e.routes.is('panel/page-settings/settings')) {
        themeBuilder.updatePreviewIdOptions(true);
      }
    }
  }]);
  return ThemeBuilderUpdatePreviewOptions;
}($e.modules.hookData.After);

exports.ThemeBuilderUpdatePreviewOptions = ThemeBuilderUpdatePreviewOptions;
var _default = ThemeBuilderUpdatePreviewOptions;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js":
/*!*********************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderSaveConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderSaveConditions = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ThemeBuilderSaveConditions, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ThemeBuilderSaveConditions);

  function ThemeBuilderSaveConditions() {
    (0, _classCallCheck2.default)(this, ThemeBuilderSaveConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderSaveConditions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-save-conditions';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return !!elementor.config.document.theme_builder;
    }
  }, {
    key: "apply",
    value: function apply() {
      var conditionsModel = elementorPro.modules.themeBuilder.conditionsModel;
      elementorPro.ajax.addRequest('theme_builder_save_conditions', {
        data: conditionsModel.toJSON({
          remove: ['default']
        }),
        success: function success() {
          elementor.config.document.theme_builder.settings.conditions = conditionsModel.get('conditions');
        }
      });
    }
  }]);
  return ThemeBuilderSaveConditions;
}($e.modules.hookData.After);

exports.ThemeBuilderSaveConditions = ThemeBuilderSaveConditions;
var _default = ThemeBuilderSaveConditions;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js":
/*!*********************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderShowConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderShowConditions = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ThemeBuilderShowConditions, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ThemeBuilderShowConditions);

  function ThemeBuilderShowConditions() {
    (0, _classCallCheck2.default)(this, ThemeBuilderShowConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderShowConditions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/default';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-show-conditions';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var _args$force = args.force,
          force = _args$force === void 0 ? false : _args$force; // If force save, do not show conditions.

      if (force) {
        return false;
      }

      var showConditions = false;
      var themeBuilder = elementor.config.document.theme_builder;

      if (themeBuilder) {
        var hasConditions = themeBuilder.settings.conditions.length,
            hasLocation = themeBuilder.settings.location,
            isDraft = 'draft' === elementor.settings.page.model.get('post_status');

        if (hasLocation && (!hasConditions || isDraft)) {
          showConditions = true;
        }
      }

      return showConditions;
    }
  }, {
    key: "apply",
    value: function apply() {
      $e.route('theme-builder-publish/conditions');
      return false; // HookBreak.
    }
  }]);
  return ThemeBuilderShowConditions;
}($e.modules.hookData.Dependency);

exports.ThemeBuilderShowConditions = ThemeBuilderShowConditions;
var _default = ThemeBuilderShowConditions;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js":
/*!******************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js ***!
  \******************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderPreviewBreak = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderPreviewBreak = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ThemeBuilderPreviewBreak, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ThemeBuilderPreviewBreak);

  function ThemeBuilderPreviewBreak() {
    (0, _classCallCheck2.default)(this, ThemeBuilderPreviewBreak);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderPreviewBreak, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/preview';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-preview-break';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      // If preview is forced, do not break it.
      if (args.force) {
        return false;
      }

      return !!elementor.documents.get(args.id).config.theme_builder;
    }
  }, {
    key: "apply",
    value: function apply() {
      return false; // HookBreak.
    }
  }]);
  return ThemeBuilderPreviewBreak;
}($e.modules.hookData.Dependency);

exports.ThemeBuilderPreviewBreak = ThemeBuilderPreviewBreak;
var _default = ThemeBuilderPreviewBreak;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/data/index.js":
/*!*********************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/data/index.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _exportNames = {
  ThemeBuilderSaveConditions: true,
  ThemeBuilderShowConditions: true,
  ThemeBuilderPreviewBreak: true
};

_Object$defineProperty(exports, "ThemeBuilderSaveConditions", {
  enumerable: true,
  get: function get() {
    return _saveConditions.ThemeBuilderSaveConditions;
  }
});

_Object$defineProperty(exports, "ThemeBuilderShowConditions", {
  enumerable: true,
  get: function get() {
    return _showConditions.ThemeBuilderShowConditions;
  }
});

_Object$defineProperty(exports, "ThemeBuilderPreviewBreak", {
  enumerable: true,
  get: function get() {
    return _previewBreak.ThemeBuilderPreviewBreak;
  }
});

var _settings = __webpack_require__(/*! ./document/elements/settings */ "../modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/index.js");

_Object$keys(_settings).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
  if (key in exports && exports[key] === _settings[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _settings[key];
    }
  });
});

var _saveConditions = __webpack_require__(/*! ./document/save/save-conditions */ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js");

var _showConditions = __webpack_require__(/*! ./document/save/show-conditions */ "../modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js");

var _previewBreak = __webpack_require__(/*! ./editor/documents/preview/preview-break */ "../modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js");

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/index.js":
/*!****************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _data = __webpack_require__(/*! ./data/ */ "../modules/theme-builder/assets/js/editor/hooks/data/index.js");

_Object$keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});

var _ui = __webpack_require__(/*! ./ui/ */ "../modules/theme-builder/assets/js/editor/hooks/ui/index.js");

_Object$keys(_ui).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _ui[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _ui[key];
    }
  });
});

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js":
/*!**********************************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js ***!
  \**********************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderToggleMenuConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderToggleMenuConditions = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(ThemeBuilderToggleMenuConditions, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(ThemeBuilderToggleMenuConditions);

  function ThemeBuilderToggleMenuConditions() {
    (0, _classCallCheck2.default)(this, ThemeBuilderToggleMenuConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderToggleMenuConditions, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-toggle-menu-conditions';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'document';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings && args.settings.location;
    }
  }, {
    key: "apply",
    value: function apply() {
      var themeBuilder = elementorPro.modules.themeBuilder;
      themeBuilder.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location);
    }
  }]);
  return ThemeBuilderToggleMenuConditions;
}($e.modules.hookUI.After);

exports.ThemeBuilderToggleMenuConditions = ThemeBuilderToggleMenuConditions;
var _default = ThemeBuilderToggleMenuConditions;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js":
/*!*****************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js ***!
  \*****************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderRemoveEditorUI = void 0;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderRemoveEditorUI = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(ThemeBuilderRemoveEditorUI, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(ThemeBuilderRemoveEditorUI);

  function ThemeBuilderRemoveEditorUI() {
    (0, _classCallCheck2.default)(this, ThemeBuilderRemoveEditorUI);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderRemoveEditorUI, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/unload';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-remove-editor-ui';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      var document = args.document;
      return document.config.theme_builder;
    }
  }, {
    key: "apply",
    value: function apply() {
      this.removePanelFooterSubmenuItems();
      this.removePublishTabs();
    }
  }, {
    key: "removePanelFooterSubmenuItems",
    value: function removePanelFooterSubmenuItems() {
      var footerView = elementor.getPanelView().footer.currentView,
          behavior = footerView._behaviors[(0, _keys.default)(footerView.behaviors()).indexOf('saver')];

      elementor.getPanelView().footer.currentView.removeSubMenuItem('saver-options', {
        name: 'conditions'
      });
      behavior.ui.buttonPreview.tipsy('enable').removeClass('elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state');
    }
  }, {
    key: "removePublishTabs",
    value: function removePublishTabs() {
      var component = $e.components.get('theme-builder-publish');
      component.removeTab('conditions');
    }
  }]);
  return ThemeBuilderRemoveEditorUI;
}($e.modules.hookUI.After);

exports.ThemeBuilderRemoveEditorUI = ThemeBuilderRemoveEditorUI;
var _default = ThemeBuilderRemoveEditorUI;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js":
/*!*************************************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ThemeBuilderAddEditorUI = void 0;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _view = _interopRequireDefault(__webpack_require__(/*! ../../../../../conditions/view */ "../modules/theme-builder/assets/js/editor/conditions/view.js"));

var ThemeBuilderAddEditorUI = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(ThemeBuilderAddEditorUI, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(ThemeBuilderAddEditorUI);

  function ThemeBuilderAddEditorUI() {
    (0, _classCallCheck2.default)(this, ThemeBuilderAddEditorUI);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderAddEditorUI, [{
    key: "getCommand",
    value: function getCommand() {
      return 'editor/documents/open';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-theme-builder-add-editor-ui';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return elementor.documents.get(args.id).config.theme_builder;
    }
  }, {
    key: "apply",
    value: function apply() {
      if (elementor.panel) {
        this.addUI();
      } else {
        // First open, the panel is not available yet.
        elementor.once('preview:loaded', this.addUI.bind(this));
      }
    }
  }, {
    key: "addUI",
    value: function addUI() {
      this.addRepeaterControlView();
      this.addPanelFooterSubmenuItems();
      this.addPublishTabs();
    }
  }, {
    key: "addRepeaterControlView",
    value: function addRepeaterControlView() {
      elementor.addControlView('Conditions_repeater', __webpack_require__(/*! ../../../../../conditions/repeater */ "../modules/theme-builder/assets/js/editor/conditions/repeater.js"));
    }
  }, {
    key: "addPublishTabs",
    value: function addPublishTabs() {
      var component = $e.components.get('theme-builder-publish'),
          themeBuilderModuleConfig = elementor.config.document.theme_builder,
          settings = themeBuilderModuleConfig.settings;
      component.manager.conditionsModel = new elementorModules.editor.elements.models.BaseSettings(settings, {
        controls: themeBuilderModuleConfig.template_conditions.controls
      });
      component.addTab('conditions', {
        title: elementorPro.translate('conditions'),
        View: _view.default,
        viewOptions: {
          model: component.manager.conditionsModel,
          controls: component.manager.conditionsModel.controls
        },
        name: 'conditions',
        description: elementorPro.translate('conditions_publish_screen_description'),
        image: elementorPro.config.urls.modules + 'theme-builder/assets/images/conditions-tab.svg'
      });
    }
  }, {
    key: "addPanelFooterSubmenuItems",
    value: function addPanelFooterSubmenuItems() {
      var footerView = elementor.getPanelView().footer.currentView,
          behavior = footerView._behaviors[(0, _keys.default)(footerView.behaviors()).indexOf('saver')];

      footerView.ui.menuConditions = footerView.addSubMenuItem('saver-options', {
        before: 'save-template',
        name: 'conditions',
        icon: 'eicon-flow',
        title: elementorPro.translate('display_conditions'),
        callback: function callback() {
          return $e.route('theme-builder-publish/conditions');
        }
      });
      footerView.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location);
      behavior.ui.buttonPreview.tipsy('disable').html(jQuery('#tmpl-elementor-theme-builder-button-preview').html()).addClass('elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state');
    }
  }]);
  return ThemeBuilderAddEditorUI;
}($e.modules.hookUI.After);

exports.ThemeBuilderAddEditorUI = ThemeBuilderAddEditorUI;
var _default = ThemeBuilderAddEditorUI;
exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/ui/index.js":
/*!*******************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/ui/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "ThemeBuilderAddEditorUI", {
  enumerable: true,
  get: function get() {
    return _addEditorUi.ThemeBuilderAddEditorUI;
  }
});

_Object$defineProperty(exports, "ThemeBuilderRemoveEditorUI", {
  enumerable: true,
  get: function get() {
    return _removeEditorUi.ThemeBuilderRemoveEditorUI;
  }
});

_Object$defineProperty(exports, "ThemeBuilderToggleMenuConditions", {
  enumerable: true,
  get: function get() {
    return _toggleMenuConditions.ThemeBuilderToggleMenuConditions;
  }
});

_Object$defineProperty(exports, "ThemeBuilderFooterSaverAfterSave", {
  enumerable: true,
  get: function get() {
    return _after.ThemeBuilderFooterSaverAfterSave;
  }
});

var _addEditorUi = __webpack_require__(/*! ./editor/documents/open/add-editor-ui */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js");

var _removeEditorUi = __webpack_require__(/*! ./editor/documents/close/remove-editor-ui */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js");

var _toggleMenuConditions = __webpack_require__(/*! ./editor/document/elements/settings/toggle-menu-conditions */ "../modules/theme-builder/assets/js/editor/hooks/ui/editor/document/elements/settings/toggle-menu-conditions.js");

var _after = __webpack_require__(/*! ./save/after */ "../modules/theme-builder/assets/js/editor/hooks/ui/save/after.js");

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/hooks/ui/save/after.js":
/*!************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/hooks/ui/save/after.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.ThemeBuilderFooterSaverAfterSave = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var ThemeBuilderFooterSaverAfterSave = /*#__PURE__*/function (_$e$modules$hookUI$Af) {
  (0, _inherits2.default)(ThemeBuilderFooterSaverAfterSave, _$e$modules$hookUI$Af);

  var _super = (0, _createSuper2.default)(ThemeBuilderFooterSaverAfterSave);

  function ThemeBuilderFooterSaverAfterSave() {
    (0, _classCallCheck2.default)(this, ThemeBuilderFooterSaverAfterSave);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderFooterSaverAfterSave, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'theme-builder-footer-saver-after-save';
    }
  }, {
    key: "getConditions",
    value: function getConditions() {
      return elementor.config.document.support_site_editor;
    }
  }, {
    key: "apply",
    value: function apply(args, result) {
      var status = args.status;

      if (result.statusChanged) {
        this.onPageStatusChange(status);
      }
    }
  }, {
    key: "onPageStatusChange",
    value: function onPageStatusChange(newStatus) {
      if ('publish' !== newStatus) {
        return;
      }

      var options = {
        classes: 'e-theme-builder-save-toaster',
        message: elementor.config.document.panel.messages.publish_notification,
        buttons: [{
          name: 'open_site_editor',
          text: '<i class="eicon-external-link-square"></i><span class="e-theme-builder-toaster-button-text">' + elementorPro.translate('open_site_editor') + '</span>',
          callback: function callback() {
            $e.run('app/open');
          }
        }, {
          name: 'view_live_site',
          text: '<i class="eicon-preview-medium"></i><span class="e-theme-builder-toaster-button-text">' + elementorPro.translate('view_live_site') + '</span>',
          callback: function callback() {
            open(elementor.config.document.urls.permalink);
          }
        }]
      };
      elementor.notifications.showToast(options);
    }
  }]);
  return ThemeBuilderFooterSaverAfterSave;
}($e.modules.hookUI.After);

exports.ThemeBuilderFooterSaverAfterSave = ThemeBuilderFooterSaverAfterSave;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/module.js":
/*!***********************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/module.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty2 = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty2(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

var _defineProperty = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./publish/component */ "../modules/theme-builder/assets/js/editor/publish/component.js"));

var ThemeBuilderModule = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(ThemeBuilderModule, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(ThemeBuilderModule);

  function ThemeBuilderModule() {
    (0, _classCallCheck2.default)(this, ThemeBuilderModule);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ThemeBuilderModule, [{
    key: "__construct",
    value: function __construct() {
      var _get2;

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      (_get2 = (0, _get3.default)((0, _getPrototypeOf2.default)(ThemeBuilderModule.prototype), "__construct", this)).call.apply(_get2, [this].concat(args));

      (0, _defineProperty.default)(elementorPro.config, 'theme_builder', {
        get: function get() {
          elementorCommon.helpers.softDeprecated('theme_builder', '2.9.0', 'elementor.config.document.theme_builder');
          return elementor.config.document.theme_builder;
        }
      });
    }
  }, {
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
      elementor.on('document:loaded', this.onDocumentLoaded.bind(this));
      elementor.on('document:unload', this.onDocumentUnloaded.bind(this));
      this.onApplyPreview = this.onApplyPreview.bind(this);
      this.onSectionPreviewSettingsActive = this.onSectionPreviewSettingsActive.bind(this);
    }
  }, {
    key: "onDocumentLoaded",
    value: function onDocumentLoaded(document) {
      if (!document.config.theme_builder) {
        return;
      }

      elementor.getPanelView().on('set:page:page_settings', this.updatePreviewIdOptions);
      elementor.channels.editor.on('elementorThemeBuilder:ApplyPreview', this.onApplyPreview);
      elementor.channels.editor.on('page_settings:preview_settings:activated', this.onSectionPreviewSettingsActive);
    }
  }, {
    key: "onDocumentUnloaded",
    value: function onDocumentUnloaded(document) {
      if (!document.config.theme_builder) {
        return;
      }

      elementor.getPanelView().off('set:page:page_settings', this.updatePreviewIdOptions);
      elementor.channels.editor.off('elementorThemeBuilder:ApplyPreview', this.onApplyPreview);
      elementor.channels.editor.off('page_settings:preview_settings:activated', this.onSectionPreviewSettingsActive);
    }
  }, {
    key: "saveAndReload",
    value: function saveAndReload() {
      $e.run('document/save/auto', {
        force: true,
        onSuccess: function onSuccess() {
          elementor.dynamicTags.cleanCache();
          elementor.reloadPreview();
        }
      });
    }
  }, {
    key: "onApplyPreview",
    value: function onApplyPreview() {
      this.saveAndReload();
    }
  }, {
    key: "onSectionPreviewSettingsActive",
    value: function onSectionPreviewSettingsActive() {
      this.updatePreviewIdOptions(true);
    }
  }, {
    key: "updatePreviewIdOptions",
    value: function updatePreviewIdOptions(render) {
      var previewType = elementor.settings.page.model.get('preview_type');

      if (!previewType) {
        return;
      }

      previewType = previewType.split('/');
      var currentView = elementor.getPanelView().getCurrentPageView(),
          controlModel = currentView.collection.findWhere({
        name: 'preview_id'
      });

      if ('author' === previewType[1]) {
        controlModel.set({
          autocomplete: {
            object: 'author'
          }
        });
      } else if ('taxonomy' === previewType[0]) {
        controlModel.set({
          autocomplete: {
            object: 'tax',
            query: {
              taxonomy: previewType[1]
            }
          }
        });
      } else if ('single' === previewType[0]) {
        controlModel.set({
          autocomplete: {
            object: 'post',
            query: {
              post_type: previewType[1]
            }
          }
        });
      } else {
        controlModel.set({
          autocomplete: {
            object: ''
          }
        });
      }

      if (true === render) {
        // Can be model.
        var controlView = currentView.children.findByModel(controlModel);
        controlView.render();
        controlView.$el.toggle(!!controlModel.get('autocomplete').object);
      }
    }
  }]);
  return ThemeBuilderModule;
}(elementorModules.editor.utils.Module);

exports.default = ThemeBuilderModule;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/publish/component.js":
/*!**********************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/publish/component.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _content = _interopRequireDefault(__webpack_require__(/*! ./content */ "../modules/theme-builder/assets/js/editor/publish/content.js"));

var _layout = _interopRequireDefault(__webpack_require__(/*! ./layout */ "../modules/theme-builder/assets/js/editor/publish/layout.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ../hooks */ "../modules/theme-builder/assets/js/editor/hooks/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      // TODO: should be 'theme-builder/publish'.
      return 'theme-builder-publish';
    }
  }, {
    key: "getModalLayout",
    value: function getModalLayout() {
      return _layout.default;
    }
  }, {
    key: "defaultCommands",
    value: function defaultCommands() {
      var _this = this;

      return {
        next: function next() {
          var tabs = (0, _keys.default)(_this.tabs),
              next = tabs[_this.currentTabIndex + 1];

          if (next) {
            $e.route(_this.getTabRoute(next));
          }
        },
        save: function save() {
          $e.run('document/save/default', {
            force: true
          });

          _this.layout.hideModal();
        },
        'preview-settings': function previewSettings() {
          // TODO: This is function is not part of this component.
          var panel = elementor.getPanelView();
          $e.route('panel/page-settings/settings');

          panel.getCurrentPageView().activateSection('preview_settings')._renderChildren();
        }
      };
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }, {
    key: "getTabsWrapperSelector",
    value: function getTabsWrapperSelector() {
      return '#elementor-publish__tabs';
    }
  }, {
    key: "renderTab",
    value: function renderTab(tab) {
      var tabs = this.getTabs(),
          keys = (0, _keys.default)(tabs),
          tabArgs = tabs[tab];
      this.currentTabIndex = keys.indexOf(tab);
      var isLastTab = !keys[this.currentTabIndex + 1];
      this.layout.modalContent.currentView.screen.show(new tabArgs.View(tabArgs.viewOptions));
      this.layout.modal.getElements('next').toggle(!isLastTab);
      this.layout.modal.getElements('publish').toggleClass('elementor-button-success', isLastTab);
    }
  }, {
    key: "activateTab",
    value: function activateTab(tab) {
      $e.routes.saveState(this.getNamespace());
      (0, _get2.default)((0, _getPrototypeOf2.default)(Component.prototype), "activateTab", this).call(this, tab);
    }
  }, {
    key: "open",
    value: function open() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(Component.prototype), "open", this).call(this);

      if (!this.layoutContent) {
        this.layout.showLogo();
        this.layout.modalContent.show(new _content.default({
          component: this
        }));
        this.layoutContent = true;
      }

      return true;
    }
  }]);
  return Component;
}($e.modules.ComponentModalBase);

exports.default = Component;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/publish/content.js":
/*!********************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/publish/content.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_Marionette$LayoutVie) {
  (0, _inherits2.default)(_default, _Marionette$LayoutVie);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "id",
    value: function id() {
      return 'elementor-publish';
    }
  }, {
    key: "getTemplate",
    value: function getTemplate() {
      return Marionette.TemplateCache.get('#tmpl-elementor-component-publish');
    }
  }, {
    key: "regions",
    value: function regions() {
      return {
        screen: '#elementor-publish__screen'
      };
    }
  }, {
    key: "templateHelpers",
    value: function templateHelpers() {
      return {
        tabs: this.getOption('component').getTabs()
      };
    }
  }]);
  return _default;
}(Marionette.LayoutView);

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/editor/publish/layout.js":
/*!*******************************************************************!*\
  !*** ../modules/theme-builder/assets/js/editor/publish/layout.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementorModules$com) {
  (0, _inherits2.default)(_default, _elementorModules$com);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "getModalOptions",
    value: function getModalOptions() {
      return {
        id: 'elementor-publish__modal',
        hide: {
          onButtonClick: false
        }
      };
    }
  }, {
    key: "getLogoOptions",
    value: function getLogoOptions() {
      return {
        title: elementorPro.translate('publish_settings')
      };
    }
  }, {
    key: "initModal",
    value: function initModal() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(_default.prototype), "initModal", this).call(this);
      this.modal.addButton({
        name: 'publish',
        text: elementorPro.translate('save_and_close'),
        callback: function callback() {
          return $e.run('theme-builder-publish/save');
        }
      });
      this.modal.addButton({
        name: 'next',
        text: elementorPro.translate('next'),
        callback: function callback() {
          return $e.run('theme-builder-publish/next');
        }
      });
      var $publishButton = this.modal.getElements('publish');
      this.modal.getElements('next').addClass('elementor-button-success').add($publishButton).addClass('elementor-button').removeClass('dialog-button');
    }
  }]);
  return _default;
}(elementorModules.common.views.modal.Layout);

exports.default = _default;

/***/ }),

/***/ "../modules/theme-elements/assets/js/editor/comments-skin.js":
/*!*******************************************************************!*\
  !*** ../modules/theme-elements/assets/js/editor/comments-skin.js ***!
  \*******************************************************************/
/***/ ((module) => {

"use strict";


module.exports = function () {
  var self = this;

  self.onPanelShow = function (panel, model) {
    var settingsModel = model.get('settings'); // If no skins - set the skin to `theme_comments`.

    if (!settingsModel.controls._skin.default) {
      settingsModel.set('_skin', 'theme_comments');
    }
  };

  self.init = function () {
    elementor.hooks.addAction('panel/open_editor/widget/post-comments', self.onPanelShow);
  };

  self.init();
};

/***/ }),

/***/ "../modules/theme-elements/assets/js/editor/editor.js":
/*!************************************************************!*\
  !*** ../modules/theme-elements/assets/js/editor/editor.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = elementorModules.editor.utils.Module.extend({
  onElementorPreviewLoaded: function onElementorPreviewLoaded() {
    var CommentsSkin = __webpack_require__(/*! ./comments-skin */ "../modules/theme-elements/assets/js/editor/comments-skin.js");

    this.commentsSkin = new CommentsSkin();
  }
});

/***/ }),

/***/ "../modules/video-playlist/assets/js/editor/component.js":
/*!***************************************************************!*\
  !*** ../modules/video-playlist/assets/js/editor/component.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ui */ "../modules/video-playlist/assets/js/editor/hooks/ui/index.js"));

var VideoPlaylistComponent = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(VideoPlaylistComponent, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(VideoPlaylistComponent);

  function VideoPlaylistComponent() {
    (0, _classCallCheck2.default)(this, VideoPlaylistComponent);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(VideoPlaylistComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'video-playlist';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
  return VideoPlaylistComponent;
}($e.modules.ComponentBase);

exports.default = VideoPlaylistComponent;

/***/ }),

/***/ "../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js":
/*!****************************************************************************************************!*\
  !*** ../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ActiveTab = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

/**
 * Hook fired when template: 'single' page layout changed.
 */
var ActiveTab = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(ActiveTab, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(ActiveTab);

  function ActiveTab() {
    (0, _classCallCheck2.default)(this, ActiveTab);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ActiveTab, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/settings';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'active-tab--document/elements/settings';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'repeater';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.settings.inner_tab_content_1 || args.settings.inner_tab_content_2;
    }
  }, {
    key: "apply",
    value: function apply(args) {
      if (args.settings.inner_tab_content_1) {
        args.container.view.model.get('editSettings').set('innerActiveIndex', 0);
      } else if (args.settings.inner_tab_content_2) {
        args.container.view.model.get('editSettings').set('innerActiveIndex', 1);
      }
    }
  }]);
  return ActiveTab;
}($e.modules.hookData.After);

exports.ActiveTab = ActiveTab;
var _default = ActiveTab;
exports.default = _default;

/***/ }),

/***/ "../modules/video-playlist/assets/js/editor/hooks/ui/index.js":
/*!********************************************************************!*\
  !*** ../modules/video-playlist/assets/js/editor/hooks/ui/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "ActiveTab", {
  enumerable: true,
  get: function get() {
    return _activeTab.ActiveTab;
  }
});

var _activeTab = __webpack_require__(/*! ./document/elements/settings/active-tab */ "../modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js");

/***/ }),

/***/ "../modules/video-playlist/assets/js/editor/module.js":
/*!************************************************************!*\
  !*** ../modules/video-playlist/assets/js/editor/module.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/video-playlist/assets/js/editor/component.js"));

var Module = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(Module, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(Module);

  function Module() {
    (0, _classCallCheck2.default)(this, Module);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Module, [{
    key: "onInit",
    value:
    /**
     * Init
     */
    function onInit() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(Module.prototype), "onInit", this).call(this);
      $e.components.register(new _component.default());
    }
  }, {
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      elementor.channels.editor.on('elementorPlaylistWidget:setVideoData', function (e) {
        $e.run('document/elements/settings', {
          container: e.container,
          settings: {
            thumbnail: {
              url: e.currentItem.thumbnail ? e.currentItem.thumbnail.url : ''
            },
            title: e.currentItem.video_title ? e.currentItem.video_title : '',
            duration: e.currentItem.duration ? e.currentItem.duration : ''
          },
          options: {
            external: true
          }
        });
      });
    }
  }]);
  return Module;
}(elementorModules.editor.utils.Module);

exports.default = Module;

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/component.js":
/*!************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/component.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var hooks = _interopRequireWildcard(__webpack_require__(/*! ./hooks/ */ "../modules/woocommerce/assets/js/editor/hooks/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'woocommerce';
    }
  }, {
    key: "defaultHooks",
    value: function defaultHooks() {
      return this.importHooks(hooks);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js":
/*!***************************************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js ***!
  \***************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.WoocommerceCreateWidgetActivateSettingsModal = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var WoocommerceCreateWidgetActivateSettingsModal = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(WoocommerceCreateWidgetActivateSettingsModal, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(WoocommerceCreateWidgetActivateSettingsModal);

  function WoocommerceCreateWidgetActivateSettingsModal() {
    (0, _classCallCheck2.default)(this, WoocommerceCreateWidgetActivateSettingsModal);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(WoocommerceCreateWidgetActivateSettingsModal, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/create';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-woocommerce-create-widget-activate-settings-modal';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'column';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args, container) {
      return elementorPro.modules.woocommerce.pageSettingsWidgets.hasOwnProperty(container.model.get('widgetType'));
    }
  }, {
    key: "apply",
    value: function apply(args, container) {
      elementorPro.modules.woocommerce.onCreateWidget(container);
    }
  }]);
  return WoocommerceCreateWidgetActivateSettingsModal;
}($e.modules.hookData.After);

exports.WoocommerceCreateWidgetActivateSettingsModal = WoocommerceCreateWidgetActivateSettingsModal;

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js":
/*!*****************************************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js ***!
  \*****************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.WoocommerceDeleteWidgetDeactivateSettingsModal = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var WoocommerceDeleteWidgetDeactivateSettingsModal = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(WoocommerceDeleteWidgetDeactivateSettingsModal, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(WoocommerceDeleteWidgetDeactivateSettingsModal);

  function WoocommerceDeleteWidgetDeactivateSettingsModal() {
    (0, _classCallCheck2.default)(this, WoocommerceDeleteWidgetDeactivateSettingsModal);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(WoocommerceDeleteWidgetDeactivateSettingsModal, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/elements/delete';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-woocommerce-delete-widget-deactivate-settings-modal';
    }
  }, {
    key: "getContainerType",
    value: function getContainerType() {
      return 'widget';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args, container) {
      return elementorPro.modules.woocommerce.pageSettingsWidgets.hasOwnProperty(container.model.get('widgetType'));
    }
  }, {
    key: "apply",
    value: function apply(args, container) {
      elementorPro.modules.woocommerce.onDeleteWidget(container);
    }
  }]);
  return WoocommerceDeleteWidgetDeactivateSettingsModal;
}($e.modules.hookData.After);

exports.WoocommerceDeleteWidgetDeactivateSettingsModal = WoocommerceDeleteWidgetDeactivateSettingsModal;

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/hooks/data/index.js":
/*!*******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/hooks/data/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "WoocommerceSaveShowModal", {
  enumerable: true,
  get: function get() {
    return _saveShowModal.WoocommerceSaveShowModal;
  }
});

_Object$defineProperty(exports, "WoocommerceCreateWidgetActivateSettingsModal", {
  enumerable: true,
  get: function get() {
    return _createWidgetActivateSettingsModal.WoocommerceCreateWidgetActivateSettingsModal;
  }
});

_Object$defineProperty(exports, "WoocommerceDeleteWidgetDeactivateSettingsModal", {
  enumerable: true,
  get: function get() {
    return _deleteWidgetDeactivateSettingsModal.WoocommerceDeleteWidgetDeactivateSettingsModal;
  }
});

var _saveShowModal = __webpack_require__(/*! ./save-show-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js");

var _createWidgetActivateSettingsModal = __webpack_require__(/*! ./create-widget-activate-settings-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js");

var _deleteWidgetDeactivateSettingsModal = __webpack_require__(/*! ./delete-widget-deactivate-settings-modal */ "../modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js");

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js":
/*!*****************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.WoocommerceSaveShowModal = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var WoocommerceSaveShowModal = /*#__PURE__*/function (_$e$modules$hookData$) {
  (0, _inherits2.default)(WoocommerceSaveShowModal, _$e$modules$hookData$);

  var _super = (0, _createSuper2.default)(WoocommerceSaveShowModal);

  function WoocommerceSaveShowModal() {
    (0, _classCallCheck2.default)(this, WoocommerceSaveShowModal);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(WoocommerceSaveShowModal, [{
    key: "getCommand",
    value: function getCommand() {
      return 'document/save/save';
    }
  }, {
    key: "getId",
    value: function getId() {
      return 'elementor-pro-woocommerce-save-show-modal';
    }
  }, {
    key: "getConditions",
    value: function getConditions(args) {
      return args.status && -1 !== ['private', 'publish'].indexOf(args.status);
    }
  }, {
    key: "apply",
    value: function apply() {
      elementorPro.modules.woocommerce.onUpdateDocument();
    }
  }]);
  return WoocommerceSaveShowModal;
}($e.modules.hookData.After);

exports.WoocommerceSaveShowModal = WoocommerceSaveShowModal;

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/hooks/index.js":
/*!**************************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/hooks/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

var _data = __webpack_require__(/*! ./data/ */ "../modules/woocommerce/assets/js/editor/hooks/data/index.js");

_Object$keys(_data).forEach(function (key) {
  if (key === "default" || key === "__esModule") return;
  if (key in exports && exports[key] === _data[key]) return;

  _Object$defineProperty(exports, key, {
    enumerable: true,
    get: function get() {
      return _data[key];
    }
  });
});

/***/ }),

/***/ "../modules/woocommerce/assets/js/editor/module.js":
/*!*********************************************************!*\
  !*** ../modules/woocommerce/assets/js/editor/module.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./component */ "../modules/woocommerce/assets/js/editor/component.js"));

var WoocommerceModule = /*#__PURE__*/function (_elementorModules$edi) {
  (0, _inherits2.default)(WoocommerceModule, _elementorModules$edi);

  var _super = (0, _createSuper2.default)(WoocommerceModule);

  function WoocommerceModule() {
    var _this;

    (0, _classCallCheck2.default)(this, WoocommerceModule);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _super.call.apply(_super, [this].concat(args));
    _this.pageSettingsWidgets = {
      'woocommerce-checkout-page': {
        headerMessage: __('Want to save this as your checkout page?', 'elementor-pro'),
        message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'),
        confirmMessage: __('You\'ve updated your checkout page.', 'elementor-pro'),
        cancelMessage: __('<h3>Set up a checkout page</h3><br>Without a checkout page, visitors can\'t complete transactions on your site. To set one up, go to Site Settings.', 'elementor-pro'),
        failedMessage: __('<h3>Sorry, something went wrong.</h3><br>To define a checkout page for your site, head over to Site Settings.', 'elementor-pro'),
        optionName: 'woocommerce_checkout_page_id',
        woocommercePageName: 'checkout'
      },
      'woocommerce-cart': {
        headerMessage: __('Want to save this as your cart page?', 'elementor-pro'),
        message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'),
        confirmMessage: __('You\'ve updated your cart page.', 'elementor-pro'),
        cancelMessage: __('<h3>Set up a cart page</h3><br>The cart page shows an order summary. To set one up, go to Site Settings.', 'elementor-pro'),
        failedMessage: __('<h3>Sorry, something went wrong.</h3><br>To define a cart page for your site, head over to Site Settings.', 'elementor-pro'),
        optionName: 'woocommerce_cart_page_id',
        woocommercePageName: 'cart'
      },
      'woocommerce-my-account': {
        headerMessage: __('Want to save this as your my account page?', 'elementor-pro'),
        message: __('Changes you make here will override your existing WooCommerce settings.', 'elementor-pro'),
        confirmMessage: __('You\'ve updated your my account page.', 'elementor-pro'),
        cancelMessage: __('<h3>Set up a My Account page</h3><br>Without it, customers can\'t update their billing details, review past orders, etc. To set up My Account, go to Site Settings.', 'elementor-pro'),
        failedMessage: __('<h3>Sorry, something went wrong.</h3><br>To define a my account page for your site, head over to Site Settings.', 'elementor-pro'),
        optionName: 'woocommerce_myaccount_page_id',
        woocommercePageName: 'myaccount'
      }
    };
    _this.createdPageSettingsWidgets = [];
    return _this;
  }

  (0, _createClass2.default)(WoocommerceModule, [{
    key: "onElementorLoaded",
    value: function onElementorLoaded() {
      this.component = $e.components.register(new _component.default({
        manager: this
      }));
    }
  }, {
    key: "onCreateWidget",
    value: function onCreateWidget(container) {
      var widgetType = container.model.get('widgetType');

      if (undefined === this.createdPageSettingsWidgets[widgetType]) {
        this.createdPageSettingsWidgets[widgetType] = 0;
      }

      this.createdPageSettingsWidgets[widgetType]++;
    }
  }, {
    key: "onDeleteWidget",
    value: function onDeleteWidget(container) {
      var widgetType = container.model.get('widgetType');
      this.createdPageSettingsWidgets[widgetType]--;

      if (!this.createdPageSettingsWidgets[widgetType]) {
        delete this.createdPageSettingsWidgets[widgetType];
      }
    }
  }, {
    key: "onUpdateDocument",
    value: function onUpdateDocument() {
      var _this2 = this;

      var saveWoocommercePageSettingKeys = (0, _keys.default)(this.createdPageSettingsWidgets),
          lastWidgetCreated = saveWoocommercePageSettingKeys[saveWoocommercePageSettingKeys.length - 1],
          postId = elementor.documents.getCurrent().id;

      if (1 !== saveWoocommercePageSettingKeys.length) {
        return;
      }

      var lastWidgetCreatedOptions = this.pageSettingsWidgets[lastWidgetCreated]; // Bail if this page is already set as the corresponding WC page.

      if (postId === elementorPro.config.woocommercePages[lastWidgetCreatedOptions.woocommercePageName]) {
        return;
      }

      elementorCommon.dialogsManager.createWidget('confirm', {
        id: 'elementor-woocommerce-save-pages',
        className: 'e-global__confirm-add',
        headerMessage: lastWidgetCreatedOptions.headerMessage,
        message: lastWidgetCreatedOptions.message,
        position: {
          my: 'center center',
          at: 'center center'
        },
        strings: {
          confirm: __('Save', 'elementor-pro'),
          cancel: __('No thanks', 'elementor-pro')
        },
        onConfirm: function onConfirm() {
          return _this2.onConfirmModal(lastWidgetCreatedOptions);
        },
        onCancel: function onCancel() {
          return _this2.onCancelModal(lastWidgetCreatedOptions);
        }
      }).show();
      this.createdPageSettingsWidgets = [];
    }
  }, {
    key: "onConfirmModal",
    value: function onConfirmModal(lastWidgetCreatedOptions) {
      var _this3 = this;

      elementorPro.ajax.addRequest('woocommerce_update_page_option', {
        data: {
          option_name: lastWidgetCreatedOptions.optionName
        },
        success: function success() {
          elementor.notifications.showToast({
            message: lastWidgetCreatedOptions.confirmMessage
          });
        },
        error: function error() {
          return _this3.showPagesSettingsToast(lastWidgetCreatedOptions.failedMessage);
        }
      });
    }
  }, {
    key: "onCancelModal",
    value: function onCancelModal(lastWidgetCreatedOptions) {
      this.showPagesSettingsToast(lastWidgetCreatedOptions.cancelMessage);
    }
  }, {
    key: "showPagesSettingsToast",
    value: function showPagesSettingsToast(message) {
      var buttons = [];
      elementor.notifications.initToast();
      buttons.push({
        name: 'take_me_there',
        text: __('Take me there', 'elementor'),
        callback: this.openWoocommercePagesSettings
      });
      elementor.notifications.showToast({
        message: message,
        buttons: buttons
      });
    }
  }, {
    key: "openWoocommercePagesSettings",
    value: function openWoocommercePagesSettings() {
      var isWPPreviewMode = elementorCommon.elements.$body.hasClass('elementor-editor-preview');

      if (isWPPreviewMode) {
        elementor.exitPreviewMode();
      }

      var isInSettingsPanelActive = 'panel/global/menu' === elementor.documents.currentDocument.config.panel.default_route;

      if (isInSettingsPanelActive) {
        $e.run('panel/global/close');
        return;
      } // TODO: Open Settings Panel for Global/WooCommerce/WooCommerce_Pages When Site Settings is merged with the Checkout Widget.


      $e.run('editor/documents/switch', {
        id: elementor.config.kit_id,
        mode: 'autosave'
      }).then(function () {
        return $e.route('panel/global/settings-woocommerce');
      });
    }
  }]);
  return WoocommerceModule;
}(elementorModules.editor.utils.Module);

module.exports = WoocommerceModule;

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/json/stringify.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/json/stringify.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js");
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
  return $JSON.stringify.apply($JSON, arguments);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/assign.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/assign.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.assign */ "../node_modules/core-js/library/modules/es6.object.assign.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.assign;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/entries.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/entries.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.entries */ "../node_modules/core-js/library/modules/es7.object.entries.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.entries;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/keys.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.keys */ "../node_modules/core-js/library/modules/es6.object.keys.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.keys;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/values.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/values.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.values */ "../node_modules/core-js/library/modules/es7.object.values.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.values;


/***/ }),

/***/ "../node_modules/core-js/library/fn/parse-int.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/fn/parse-int.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.parse-int */ "../node_modules/core-js/library/modules/es6.parse-int.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").parseInt;


/***/ }),

/***/ "../node_modules/core-js/library/fn/promise.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/library/fn/promise.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.promise */ "../node_modules/core-js/library/modules/es6.promise.js");
__webpack_require__(/*! ../modules/es7.promise.finally */ "../node_modules/core-js/library/modules/es7.promise.finally.js");
__webpack_require__(/*! ../modules/es7.promise.try */ "../node_modules/core-js/library/modules/es7.promise.try.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Promise;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/get.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/get.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.get */ "../node_modules/core-js/library/modules/es6.reflect.get.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.get;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/fn/weak-map.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/library/fn/weak-map.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.weak-map */ "../node_modules/core-js/library/modules/es6.weak-map.js");
__webpack_require__(/*! ../modules/es7.weak-map.of */ "../node_modules/core-js/library/modules/es7.weak-map.of.js");
__webpack_require__(/*! ../modules/es7.weak-map.from */ "../node_modules/core-js/library/modules/es7.weak-map.from.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").WeakMap;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-instance.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-instance.js ***!
  \***************************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-methods.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-methods.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/library/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-constructor.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-constructor.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-create.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-create.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/library/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection-weak.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection-weak.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var getWeak = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").getWeak;
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js");
var $has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var arrayFind = createArrayMethod(5);
var arrayFindIndex = createArrayMethod(6);
var id = 0;

// fallback for uncaught frozen keys
var uncaughtFrozenStore = function (that) {
  return that._l || (that._l = new UncaughtFrozenStore());
};
var UncaughtFrozenStore = function () {
  this.a = [];
};
var findUncaughtFrozen = function (store, key) {
  return arrayFind(store.a, function (it) {
    return it[0] === key;
  });
};
UncaughtFrozenStore.prototype = {
  get: function (key) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) return entry[1];
  },
  has: function (key) {
    return !!findUncaughtFrozen(this, key);
  },
  set: function (key, value) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) entry[1] = value;
    else this.a.push([key, value]);
  },
  'delete': function (key) {
    var index = arrayFindIndex(this.a, function (it) {
      return it[0] === key;
    });
    if (~index) this.a.splice(index, 1);
    return !!~index;
  }
};

module.exports = {
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
    var C = wrapper(function (that, iterable) {
      anInstance(that, C, NAME, '_i');
      that._t = NAME;      // collection type
      that._i = id++;      // collection id
      that._l = undefined; // leak store for uncaught frozen objects
      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
    });
    redefineAll(C.prototype, {
      // 23.3.3.2 WeakMap.prototype.delete(key)
      // 23.4.3.3 WeakSet.prototype.delete(value)
      'delete': function (key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
        return data && $has(data, this._i) && delete data[this._i];
      },
      // 23.3.3.4 WeakMap.prototype.has(key)
      // 23.4.3.4 WeakSet.prototype.has(value)
      has: function has(key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
        return data && $has(data, this._i);
      }
    });
    return C;
  },
  def: function (that, key, value) {
    var data = getWeak(anObject(key), true);
    if (data === true) uncaughtFrozenStore(that).set(key, value);
    else data[that._i] = value;
    return that;
  },
  ufstore: uncaughtFrozenStore
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
  var Base = global[NAME];
  var C = Base;
  var ADDER = IS_MAP ? 'set' : 'add';
  var proto = C && C.prototype;
  var O = {};
  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
    new C().entries().next();
  }))) {
    // create collection constructor
    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
    redefineAll(C.prototype, methods);
    meta.NEED = true;
  } else {
    C = wrapper(function (target, iterable) {
      anInstance(target, C, NAME, '_c');
      target._c = new Base();
      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
    });
    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
      var IS_ADDER = KEY == 'add' || KEY == 'set';
      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
        anInstance(this, C, KEY);
        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
        var result = this._c[KEY](a === 0 ? 0 : a, b);
        return IS_ADDER ? this : result;
      });
    });
    IS_WEAK || dP(C.prototype, 'size', {
      get: function () {
        return this._c.size;
      }
    });
  }

  setToStringTag(C, NAME);

  O[NAME] = C;
  $export($export.G + $export.W + $export.F, O);

  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);

  return C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_for-of.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_for-of.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_microtask.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_microtask.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_new-promise-capability.js":
/*!**************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_new-promise-capability.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-assign.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-assign.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) { B[k] = k; });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;
  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
    }
  } return T;
} : $assign;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-to-array.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-to-array.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var isEnum = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f;
module.exports = function (isEntries) {
  return function (it) {
    var O = toIObject(it);
    var keys = getKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || isEnum.call(O, key)) {
        result.push(isEntries ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_parse-int.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_parse-int.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $parseInt = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").parseInt;
var $trim = __webpack_require__(/*! ./_string-trim */ "../node_modules/core-js/library/modules/_string-trim.js").trim;
var ws = __webpack_require__(/*! ./_string-ws */ "../node_modules/core-js/library/modules/_string-ws.js");
var hex = /^[-+]?0[xX]/;

module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
  var string = $trim(String(str), 3);
  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
} : $parseInt;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_perform.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_perform.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_promise-resolve.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_promise-resolve.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine-all.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine-all.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];
    else hide(target, key, src[key]);
  } return target;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-from.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-from.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
    var mapFn = arguments[1];
    var mapping, A, n, cb;
    aFunction(this);
    mapping = mapFn !== undefined;
    if (mapping) aFunction(mapFn);
    if (source == undefined) return new this();
    A = [];
    if (mapping) {
      n = 0;
      cb = ctx(mapFn, arguments[2], 2);
      forOf(source, false, function (nextItem) {
        A.push(cb(nextItem, n++));
      });
    } else {
      forOf(source, false, A.push, A);
    }
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { of: function of() {
    var length = arguments.length;
    var A = new Array(length);
    while (length--) A[length] = arguments[length];
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-species.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-species.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_species-constructor.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_species-constructor.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-trim.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-trim.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var spaces = __webpack_require__(/*! ./_string-ws */ "../node_modules/core-js/library/modules/_string-ws.js");
var space = '[' + spaces + ']';
var non = '\u200b\u0085';
var ltrim = RegExp('^' + space + space + '*');
var rtrim = RegExp(space + space + '*$');

var exporter = function (KEY, exec, ALIAS) {
  var exp = {};
  var FORCE = fails(function () {
    return !!spaces[KEY]() || non[KEY]() != non;
  });
  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
  if (ALIAS) exp[ALIAS] = fn;
  $export($export.P + $export.F * FORCE, 'String', exp);
};

// 1 -> String#trimLeft
// 2 -> String#trimRight
// 3 -> String#trim
var trim = exporter.trim = function (string, TYPE) {
  string = String(defined(string));
  if (TYPE & 1) string = string.replace(ltrim, '');
  if (TYPE & 2) string = string.replace(rtrim, '');
  return string;
};

module.exports = exporter;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-ws.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-ws.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
  '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_task.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_task.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_user-agent.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_user-agent.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_validate-collection.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_validate-collection.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it, TYPE) {
  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.assign.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.assign.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.keys.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.keys.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.parse-int.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.parse-int.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $parseInt = __webpack_require__(/*! ./_parse-int */ "../node_modules/core-js/library/modules/_parse-int.js");
// 18.2.5 parseInt(string, radix)
$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.promise.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.promise.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/library/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/library/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/library/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.get.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.get.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.6 Reflect.get(target, propertyKey [, receiver])
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");

function get(target, propertyKey /* , receiver */) {
  var receiver = arguments.length < 3 ? target : arguments[2];
  var desc, proto;
  if (anObject(target) === receiver) return target[propertyKey];
  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
    ? desc.value
    : desc.get !== undefined
      ? desc.get.call(receiver)
      : undefined;
  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
}

$export($export.S, 'Reflect', { get: get });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.weak-map.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.weak-map.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var assign = __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js");
var weak = __webpack_require__(/*! ./_collection-weak */ "../node_modules/core-js/library/modules/_collection-weak.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
var WEAK_MAP = 'WeakMap';
var getWeak = meta.getWeak;
var isExtensible = Object.isExtensible;
var uncaughtFrozenStore = weak.ufstore;
var InternalMap;

var wrapper = function (get) {
  return function WeakMap() {
    return get(this, arguments.length > 0 ? arguments[0] : undefined);
  };
};

var methods = {
  // 23.3.3.3 WeakMap.prototype.get(key)
  get: function get(key) {
    if (isObject(key)) {
      var data = getWeak(key);
      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
      return data ? data[this._i] : undefined;
    }
  },
  // 23.3.3.5 WeakMap.prototype.set(key, value)
  set: function set(key, value) {
    return weak.def(validate(this, WEAK_MAP), key, value);
  }
};

// 23.3 WeakMap Objects
var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "../node_modules/core-js/library/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true);

// IE11 WeakMap frozen keys fix
if (NATIVE_WEAK_MAP && IS_IE11) {
  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
  assign(InternalMap.prototype, methods);
  meta.NEED = true;
  each(['delete', 'has', 'get', 'set'], function (key) {
    var proto = $WeakMap.prototype;
    var method = proto[key];
    redefine(proto, key, function (a, b) {
      // store frozen objects on internal weakmap shim
      if (isObject(a) && !isExtensible(a)) {
        if (!this._f) this._f = new InternalMap();
        var result = this._f[key](a, b);
        return key == 'set' ? this : result;
      // store all the rest on native weakmap
      } return method.call(this, a, b);
    });
  });
}


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.entries.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.entries.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $entries = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(true);

$export($export.S, 'Object', {
  entries: function entries(it) {
    return $entries(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.values.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.values.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $values = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(false);

$export($export.S, 'Object', {
  values: function values(it) {
    return $values(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.finally.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.finally.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.try.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.try.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/proposal-promise-try
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");

$export($export.S, 'Promise', { 'try': function (callbackfn) {
  var promiseCapability = newPromiseCapability.f(this);
  var result = perform(callbackfn);
  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
  return promiseCapability.promise;
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.from.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.from.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
__webpack_require__(/*! ./_set-collection-from */ "../node_modules/core-js/library/modules/_set-collection-from.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.of.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.of.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
__webpack_require__(/*! ./_set-collection-of */ "../node_modules/core-js/library/modules/_set-collection-of.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_advance-string-index.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_advance-string-index.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/modules/_string-at.js")(true);

 // `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? at(S, index).length : 1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_enum-bug-keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_enum-bug-keys.js ***!
  \*********************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fix-re-wks.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_fix-re-wks.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.exec */ "../node_modules/core-js/modules/es6.regexp.exec.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");

var SPECIES = wks('species');

var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
  // #replace needs built-in support for named groups.
  // #match works fine because it just return the exec results, even if it has
  // a "grops" property.
  var re = /./;
  re.exec = function () {
    var result = [];
    result.groups = { a: '7' };
    return result;
  };
  return ''.replace(re, '$<a>') !== '7';
});

var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
  var re = /(?:)/;
  var originalExec = re.exec;
  re.exec = function () { return originalExec.apply(this, arguments); };
  var result = 'ab'.split(re);
  return result.length === 2 && result[0] === 'a' && result[1] === 'b';
})();

module.exports = function (KEY, length, exec) {
  var SYMBOL = wks(KEY);

  var DELEGATES_TO_SYMBOL = !fails(function () {
    // String methods call symbol-named RegEp methods
    var O = {};
    O[SYMBOL] = function () { return 7; };
    return ''[KEY](O) != 7;
  });

  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
    // Symbol-named RegExp methods call .exec
    var execCalled = false;
    var re = /a/;
    re.exec = function () { execCalled = true; return null; };
    if (KEY === 'split') {
      // RegExp[@@split] doesn't call the regex's exec method, but first creates
      // a new one. We need to return the patched regex when creating the new one.
      re.constructor = {};
      re.constructor[SPECIES] = function () { return re; };
    }
    re[SYMBOL]('');
    return !execCalled;
  }) : undefined;

  if (
    !DELEGATES_TO_SYMBOL ||
    !DELEGATES_TO_EXEC ||
    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
  ) {
    var nativeRegExpMethod = /./[SYMBOL];
    var fns = exec(
      defined,
      SYMBOL,
      ''[KEY],
      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
        if (regexp.exec === regexpExec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            // The native String method already delegates to @@method (this
            // polyfilled function), leasing to infinite recursion.
            // We avoid it by directly calling the native @@method method.
            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
          }
          return { done: true, value: nativeMethod.call(str, regexp, arg2) };
        }
        return { done: false };
      }
    );
    var strfn = fns[0];
    var rxfn = fns[1];

    redefine(String.prototype, KEY, strfn);
    hide(RegExp.prototype, SYMBOL, length == 2
      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
      ? function (string, arg) { return rxfn.call(string, this, arg); }
      // 21.2.5.6 RegExp.prototype[@@match](string)
      // 21.2.5.9 RegExp.prototype[@@search](string)
      : function (string) { return rxfn.call(string, this); }
    );
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_flags.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_flags.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 21.2.5.3 get RegExp.prototype.flags
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_html.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_html.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-regexp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-regexp.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-create.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-create.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-define.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-define.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-step.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-step.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iterators.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iterators.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-create.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_object-create.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dps.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dps.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-gpo.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-gpo.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys-internal.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys-internal.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec-abstract.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec-abstract.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var builtinExec = RegExp.prototype.exec;

 // `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (typeof exec === 'function') {
    var result = exec.call(R, S);
    if (typeof result !== 'object') {
      throw new TypeError('RegExp exec method returned something other than an Object or null');
    }
    return result;
  }
  if (classof(R) !== 'RegExp') {
    throw new TypeError('RegExp#exec called on incompatible receiver');
  }
  return builtinExec.call(R, S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var regexpFlags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");

var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;

var patchedExec = nativeExec;

var LAST_INDEX = 'lastIndex';

var UPDATES_LAST_INDEX_WRONG = (function () {
  var re1 = /a/,
      re2 = /b*/g;
  nativeExec.call(re1, 'a');
  nativeExec.call(re2, 'a');
  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
})();

// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;

var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;

if (PATCH) {
  patchedExec = function exec(str) {
    var re = this;
    var lastIndex, reCopy, match, i;

    if (NPCG_INCLUDED) {
      reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
    }
    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];

    match = nativeExec.call(re, str);

    if (UPDATES_LAST_INDEX_WRONG && match) {
      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
    }
    if (NPCG_INCLUDED && match && match.length > 1) {
      // Fix browsers whose `exec` methods don't consistently return `undefined`
      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
      // eslint-disable-next-line no-loop-func
      nativeReplace.call(match[0], reCopy, function () {
        for (i = 1; i < arguments.length - 2; i++) {
          if (arguments[i] === undefined) match[i] = undefined;
        }
      });
    }

    return match;
  };
}

module.exports = patchedExec;


/***/ }),

/***/ "../node_modules/core-js/modules/_set-to-string-tag.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_set-to-string-tag.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared-key.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_shared-key.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_species-constructor.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/_species-constructor.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-at.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_string-at.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.filter.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.filter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $filter = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(2);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.function.name.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.function.name.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// 19.2.4.2 name
NAME in FProto || __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
  configurable: true,
  get: function () {
    try {
      return ('' + this).match(nameRE)[1];
    } catch (e) {
      return '';
    }
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.exec.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.exec.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
__webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js")({
  target: 'RegExp',
  proto: true,
  forced: regexpExec !== /./.exec
}, {
  exec: regexpExec
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.match.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.match.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");

// @@match logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('match', 1, function (defined, MATCH, $match, maybeCallNative) {
  return [
    // `String.prototype.match` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.match
    function match(regexp) {
      var O = defined(this);
      var fn = regexp == undefined ? undefined : regexp[MATCH];
      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
    },
    // `RegExp.prototype[@@match]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
    function (regexp) {
      var res = maybeCallNative($match, regexp, this);
      if (res.done) return res.value;
      var rx = anObject(regexp);
      var S = String(this);
      if (!rx.global) return regExpExec(rx, S);
      var fullUnicode = rx.unicode;
      rx.lastIndex = 0;
      var A = [];
      var n = 0;
      var result;
      while ((result = regExpExec(rx, S)) !== null) {
        var matchStr = String(result[0]);
        A[n] = matchStr;
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
        n++;
      }
      return n === 0 ? null : A;
    }
  ];
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.replace.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.replace.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var max = Math.max;
var min = Math.min;
var floor = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
  return [
    // `String.prototype.replace` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = defined(this);
      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
      return fn !== undefined
        ? fn.call(searchValue, O, replaceValue)
        : $replace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      var res = maybeCallNative($replace, regexp, this, replaceValue);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);
      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;
        results.push(result);
        if (!global) break;
        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }
      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];
        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];

    // https://tc39.github.io/ecma262/#sec-getsubstitution
  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
    if (namedCaptures !== undefined) {
      namedCaptures = toObject(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
    return $replace.call(replacement, symbols, function (match, ch) {
      var capture;
      switch (ch.charAt(0)) {
        case '$': return '$';
        case '&': return matched;
        case '`': return str.slice(0, position);
        case "'": return str.slice(tailPos);
        case '<':
          capture = namedCaptures[ch.slice(1, -1)];
          break;
        default: // \d\d?
          var n = +ch;
          if (n === 0) return match;
          if (n > m) {
            var f = floor(n / 10);
            if (f === 0) return match;
            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
            return match;
          }
          capture = captures[n - 1];
      }
      return capture === undefined ? '' : capture;
    });
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.split.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.split.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/modules/_species-constructor.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var $min = Math.min;
var $push = [].push;
var $SPLIT = 'split';
var LENGTH = 'length';
var LAST_INDEX = 'lastIndex';
var MAX_UINT32 = 0xffffffff;

// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });

// @@split logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
  var internalSplit;
  if (
    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
    ''[$SPLIT](/.?/)[LENGTH]
  ) {
    // based on es5-shim implementation, need to rework it
    internalSplit = function (separator, limit) {
      var string = String(this);
      if (separator === undefined && limit === 0) return [];
      // If `separator` is not a regex, use native split
      if (!isRegExp(separator)) return $split.call(string, separator, limit);
      var output = [];
      var flags = (separator.ignoreCase ? 'i' : '') +
                  (separator.multiline ? 'm' : '') +
                  (separator.unicode ? 'u' : '') +
                  (separator.sticky ? 'y' : '');
      var lastLastIndex = 0;
      var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
      // Make `global` and avoid `lastIndex` issues by working with a copy
      var separatorCopy = new RegExp(separator.source, flags + 'g');
      var match, lastIndex, lastLength;
      while (match = regexpExec.call(separatorCopy, string)) {
        lastIndex = separatorCopy[LAST_INDEX];
        if (lastIndex > lastLastIndex) {
          output.push(string.slice(lastLastIndex, match.index));
          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
          lastLength = match[0][LENGTH];
          lastLastIndex = lastIndex;
          if (output[LENGTH] >= splitLimit) break;
        }
        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
      }
      if (lastLastIndex === string[LENGTH]) {
        if (lastLength || !separatorCopy.test('')) output.push('');
      } else output.push(string.slice(lastLastIndex));
      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
    };
  // Chakra, V8
  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
    internalSplit = function (separator, limit) {
      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
    };
  } else {
    internalSplit = $split;
  }

  return [
    // `String.prototype.split` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.split
    function split(separator, limit) {
      var O = defined(this);
      var splitter = separator == undefined ? undefined : separator[SPLIT];
      return splitter !== undefined
        ? splitter.call(separator, O, limit)
        : internalSplit.call(String(O), separator, limit);
    },
    // `RegExp.prototype[@@split]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
    //
    // NOTE: This cannot be properly polyfilled in engines that don't support
    // the 'y' flag.
    function (regexp, limit) {
      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var C = speciesConstructor(rx, RegExp);

      var unicodeMatching = rx.unicode;
      var flags = (rx.ignoreCase ? 'i' : '') +
                  (rx.multiline ? 'm' : '') +
                  (rx.unicode ? 'u' : '') +
                  (SUPPORTS_Y ? 'y' : 'g');

      // ^(? + rx + ) is needed, in combination with some S slicing, to
      // simulate the 'y' flag.
      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
      if (lim === 0) return [];
      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
      var p = 0;
      var q = 0;
      var A = [];
      while (q < S.length) {
        splitter.lastIndex = SUPPORTS_Y ? q : 0;
        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
        var e;
        if (
          z === null ||
          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
        ) {
          q = advanceStringIndex(S, q, unicodeMatching);
        } else {
          A.push(S.slice(p, q));
          if (A.length === lim) return A;
          for (var i = 1; i <= z.length - 1; i++) {
            A.push(z[i]);
            if (A.length === lim) return A;
          }
          q = p = e;
        }
      }
      A.push(S.slice(p));
      return A;
    }
  ];
});


/***/ }),

/***/ "../node_modules/core-js/modules/es7.array.includes.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es7.array.includes.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/Array.prototype.includes
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $includes = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(true);

$export($export.P, 'Array', {
  includes: function includes(el /* , fromIndex = 0 */) {
    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
  }
});

__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")('includes');


/***/ }),

/***/ "../node_modules/core-js/modules/web.dom.iterable.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/web.dom.iterable.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/modules/es6.array.iterator.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var ITERATOR = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
var ArrayValues = Iterators.Array;

var DOMIterables = {
  CSSRuleList: true, // TODO: Not spec compliant, should be false.
  CSSStyleDeclaration: false,
  CSSValueList: false,
  ClientRectList: false,
  DOMRectList: false,
  DOMStringList: false,
  DOMTokenList: true,
  DataTransferItemList: false,
  FileList: false,
  HTMLAllCollection: false,
  HTMLCollection: false,
  HTMLFormElement: false,
  HTMLSelectElement: false,
  MediaList: true, // TODO: Not spec compliant, should be false.
  MimeTypeArray: false,
  NamedNodeMap: false,
  NodeList: true,
  PaintRequestList: false,
  Plugin: false,
  PluginArray: false,
  SVGLengthList: false,
  SVGNumberList: false,
  SVGPathSegList: false,
  SVGPointList: false,
  SVGStringList: false,
  SVGTransformList: false,
  SourceBufferList: false,
  StyleSheetList: true, // TODO: Not spec compliant, should be false.
  TextTrackCueList: false,
  TextTrackList: false,
  TouchList: false
};

for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
  var NAME = collections[i];
  var explicit = DOMIterables[NAME];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  var key;
  if (proto) {
    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
    Iterators[NAME] = ArrayValues;
    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
  }
}


/***/ }),

/***/ "../node_modules/regenerator-runtime/runtime.js":
/*!******************************************************!*\
  !*** ../node_modules/regenerator-runtime/runtime.js ***!
  \******************************************************/
/***/ ((module) => {

/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var runtime = (function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.
  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function define(obj, key, value) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
    return obj[key];
  }
  try {
    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
    define({}, "");
  } catch (err) {
    define = function(obj, key, value) {
      return obj[key] = value;
    };
  }

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []);

    // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.
    generator._invoke = makeInvokeMethod(innerFn, self, context);

    return generator;
  }
  exports.wrap = wrap;

  // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.
  function tryCatch(fn, obj, arg) {
    try {
      return { type: "normal", arg: fn.call(obj, arg) };
    } catch (err) {
      return { type: "throw", arg: err };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed";

  // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.
  var ContinueSentinel = {};

  // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}

  // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.
  var IteratorPrototype = {};
  IteratorPrototype[iteratorSymbol] = function () {
    return this;
  };

  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  if (NativeIteratorPrototype &&
      NativeIteratorPrototype !== Op &&
      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype =
    Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
  GeneratorFunctionPrototype.constructor = GeneratorFunction;
  GeneratorFunction.displayName = define(
    GeneratorFunctionPrototype,
    toStringTagSymbol,
    "GeneratorFunction"
  );

  // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.
  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function(method) {
      define(prototype, method, function(arg) {
        return this._invoke(method, arg);
      });
    });
  }

  exports.isGeneratorFunction = function(genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor
      ? ctor === GeneratorFunction ||
        // For the native GeneratorFunction constructor, the best we can
        // do is to check its .name property.
        (ctor.displayName || ctor.name) === "GeneratorFunction"
      : false;
  };

  exports.mark = function(genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      define(genFun, toStringTagSymbol, "GeneratorFunction");
    }
    genFun.prototype = Object.create(Gp);
    return genFun;
  };

  // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.
  exports.awrap = function(arg) {
    return { __await: arg };
  };

  function AsyncIterator(generator, PromiseImpl) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);
      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;
        if (value &&
            typeof value === "object" &&
            hasOwn.call(value, "__await")) {
          return PromiseImpl.resolve(value.__await).then(function(value) {
            invoke("next", value, resolve, reject);
          }, function(err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return PromiseImpl.resolve(value).then(function(unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function(error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new PromiseImpl(function(resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise =
        // If enqueue has been called before, then we want to wait until
        // all previous Promises have been resolved before calling invoke,
        // so that results are always delivered in the correct order. If
        // enqueue has not been called before, then it is important to
        // call invoke immediately, without waiting on a callback to fire,
        // so that the async generator function has the opportunity to do
        // any necessary setup in a predictable way. This predictability
        // is why the Promise constructor synchronously invokes its
        // executor callback, and why async functions synchronously
        // execute code before the first await. Since we implement simple
        // async functions in terms of async generators, it is especially
        // important to get this right, even though it requires care.
        previousPromise ? previousPromise.then(
          callInvokeWithMethodAndArg,
          // Avoid propagating failures to Promises returned by later
          // invocations of the iterator.
          callInvokeWithMethodAndArg
        ) : callInvokeWithMethodAndArg();
    }

    // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).
    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
    return this;
  };
  exports.AsyncIterator = AsyncIterator;

  // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.
  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
    if (PromiseImpl === void 0) PromiseImpl = Promise;

    var iter = new AsyncIterator(
      wrap(innerFn, outerFn, self, tryLocsList),
      PromiseImpl
    );

    return exports.isGeneratorFunction(outerFn)
      ? iter // If outerFn is a generator, return the full iterator.
      : iter.next().then(function(result) {
          return result.done ? result.value : iter.next();
        });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;

    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        }

        // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;
        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);
          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;

        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);

        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;

        var record = tryCatch(innerFn, self, context);
        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done
            ? GenStateCompleted
            : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };

        } else if (record.type === "throw") {
          state = GenStateCompleted;
          // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.
          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  }

  // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.
  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];
    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError(
          "The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (! info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value;

      // Resume execution at the desired location (see delegateYield).
      context.next = delegate.nextLoc;

      // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.
      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }

    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    }

    // The delegate iterator is finished, so forget it and continue with
    // the outer generator.
    context.delegate = null;
    return ContinueSentinel;
  }

  // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.
  defineIteratorMethods(Gp);

  define(Gp, toStringTagSymbol, "Generator");

  // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.
  Gp[iteratorSymbol] = function() {
    return this;
  };

  Gp.toString = function() {
    return "[object Generator]";
  };

  function pushTryEntry(locs) {
    var entry = { tryLoc: locs[0] };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{ tryLoc: "root" }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function(object) {
    var keys = [];
    for (var key in object) {
      keys.push(key);
    }
    keys.reverse();

    // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.
    return function next() {
      while (keys.length) {
        var key = keys.pop();
        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      }

      // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.
      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];
      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1, next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;

          return next;
        };

        return next.next = next;
      }
    }

    // Return an iterator with no values.
    return { next: doneResult };
  }
  exports.values = values;

  function doneResult() {
    return { value: undefined, done: true };
  }

  Context.prototype = {
    constructor: Context,

    reset: function(skipTempReset) {
      this.prev = 0;
      this.next = 0;
      // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.
      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;

      this.method = "next";
      this.arg = undefined;

      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" &&
              hasOwn.call(this, name) &&
              !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },

    stop: function() {
      this.done = true;

      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;
      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },

    dispatchException: function(exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;
      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !! caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }

          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },

    abrupt: function(type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc <= this.prev &&
            hasOwn.call(entry, "finallyLoc") &&
            this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry &&
          (type === "break" ||
           type === "continue") &&
          finallyEntry.tryLoc <= arg &&
          arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },

    complete: function(record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" ||
          record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },

    finish: function(finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },

    "catch": function(tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;
          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }
          return thrown;
        }
      }

      // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.
      throw new Error("illegal catch attempt");
    },

    delegateYield: function(iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  };

  // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.
  return exports;

}(
  // If this script is executing as a CommonJS module, use module.exports
  // as the regeneratorRuntime namespace. Otherwise create a new empty
  // object. Either way, the resulting object will be used to initialize
  // the regeneratorRuntime variable at the top of this file.
   true ? module.exports : 0
));

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  Function("r", "regeneratorRuntime = r")(runtime);
}


/***/ }),

/***/ "@wordpress/i18n":
/*!**************************!*\
  !*** external "wp.i18n" ***!
  \**************************/
/***/ ((module) => {

"use strict";
module.exports = wp.i18n;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!*****************************************!*\
  !*** ../assets/dev/js/editor/editor.js ***!
  \*****************************************/


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

var _editor = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/custom-css/assets/js/editor/editor */ "../modules/custom-css/assets/js/editor/editor.js"));

var _editor2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/editor/editor */ "../modules/motion-fx/assets/js/editor/editor.js"));

var _module = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/editor/module */ "../modules/popup/assets/js/editor/module.js"));

var _module2 = _interopRequireDefault(__webpack_require__(/*! modules/global-widget/assets/js/editor/module */ "../modules/global-widget/assets/js/editor/module.js"));

var _module3 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/editor/module */ "../modules/theme-builder/assets/js/editor/module.js"));

var _module4 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/editor/module */ "../modules/forms/assets/js/editor/module.js"));

var _module5 = _interopRequireDefault(__webpack_require__(/*! modules/screenshots/assets/js/editor/module */ "../modules/screenshots/assets/js/editor/module.js"));

var _editor3 = _interopRequireDefault(__webpack_require__(/*! ../../../../core/app/modules/site-editor/assets/js/editor */ "../core/app/modules/site-editor/assets/js/editor.js"));

var _module6 = _interopRequireDefault(__webpack_require__(/*! modules/video-playlist/assets/js/editor/module */ "../modules/video-playlist/assets/js/editor/module.js"));

var _module7 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/editor/module */ "../modules/woocommerce/assets/js/editor/module.js"));

var _module8 = _interopRequireDefault(__webpack_require__(/*! modules/scroll-snap/assets/js/editor/module */ "../modules/scroll-snap/assets/js/editor/module.js"));

var ElementorPro = Marionette.Application.extend({
  config: {},
  modules: {},
  initModules: function initModules() {
    var QueryControl = __webpack_require__(/*! modules/query-control/assets/js/editor */ "../modules/query-control/assets/js/editor.js"),
        Library = __webpack_require__(/*! modules/library/assets/js/editor */ "../modules/library/assets/js/editor.js"),
        FlipBox = __webpack_require__(/*! modules/flip-box/assets/js/editor/editor */ "../modules/flip-box/assets/js/editor/editor.js"),
        ShareButtons = __webpack_require__(/*! modules/share-buttons/assets/js/editor/editor */ "../modules/share-buttons/assets/js/editor/editor.js"),
        AssetsManager = __webpack_require__(/*! modules/assets-manager/assets/js/editor/editor */ "../modules/assets-manager/assets/js/editor/editor.js"),
        ThemeElements = __webpack_require__(/*! modules/theme-elements/assets/js/editor/editor */ "../modules/theme-elements/assets/js/editor/editor.js");

    this.modules = {
      queryControl: new QueryControl(),
      forms: new _module4.default(),
      library: new Library(),
      customCSS: new _editor.default(),
      globalWidget: new _module2.default(),
      flipBox: new FlipBox(),
      motionFX: new _editor2.default(),
      shareButtons: new ShareButtons(),
      assetsManager: new AssetsManager(),
      themeElements: new ThemeElements(),
      themeBuilder: new _module3.default(),
      siteEditor: new _editor3.default(),
      screenshots: new _module5.default(),
      woocommerce: new _module7.default(),
      // Popup is depended on Theme Builder.
      popup: new _module.default(),
      videoPlaylistModule: new _module6.default(),
      ScrollSnapModule: new _module8.default()
    };
  },
  ajax: {
    prepareArgs: function prepareArgs(args) {
      args[0] = 'pro_' + args[0];
      return args;
    },
    send: function send() {
      return elementorCommon.ajax.send.apply(elementorCommon.ajax, this.prepareArgs(arguments));
    },
    addRequest: function addRequest() {
      return elementorCommon.ajax.addRequest.apply(elementorCommon.ajax, this.prepareArgs(arguments));
    }
  },
  translate: function translate(stringKey, templateArgs) {
    return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n);
  },
  onStart: function onStart() {
    var _this = this;

    this.config = elementorProEditorConfig;
    this.initModules();
    jQuery(window).on('elementor:init', function () {
      return _this.onElementorInit();
    }).on('elementor/connect/success/editor-pro-activate', this.onActivateSuccess);
  },
  onElementorInit: function onElementorInit() {
    var _this2 = this;

    elementor.on('preview:loaded', function () {
      return _this2.onElementorPreviewLoaded();
    });
    elementorPro.libraryRemoveGetProButtons();
    elementorCommon.debug.addURLToWatch('elementor-pro/assets');
  },
  onElementorPreviewLoaded: function onElementorPreviewLoaded() {
    elementor.$preview[0].contentWindow.elementorPro = this;
  },
  libraryRemoveGetProButtons: function libraryRemoveGetProButtons() {
    elementor.hooks.addFilter('elementor/editor/template-library/template/action-button', function (viewID, templateData) {
      var _elementor$config, _elementor$config$lib;

      // eslint-disable-next-line camelcase
      if (templateData.accessLevel === undefined || ((_elementor$config = elementor.config) === null || _elementor$config === void 0 ? void 0 : (_elementor$config$lib = _elementor$config.library_connect) === null || _elementor$config$lib === void 0 ? void 0 : _elementor$config$lib.current_access_level) === undefined) {
        // BC support.
        return templateData.isPro && !elementorPro.config.isActive ? '#tmpl-elementor-pro-template-library-activate-license-button' : '#tmpl-elementor-template-library-insert-button';
      } // When the template should be at least "pro" and the license is not active.


      if (templateData.accessLevel > 0 && !elementorPro.config.isActive) {
        return '#tmpl-elementor-pro-template-library-activate-license-button';
      } // When the template access levels is greater than the current license access level it should
      // return the "core" view template which is by default "go pro" or "go expert" button.


      if (templateData.accessLevel > elementor.config.library_connect.current_access_level) {
        return viewID;
      } // When the current license can insert the template.


      return '#tmpl-elementor-template-library-insert-button';
    });
  },
  onActivateSuccess: function onActivateSuccess() {
    // Hide notice.
    elementor.noticeBar.onCloseClick(); // Mark site connect for insert templates connect screen.

    elementor.config.library_connect.is_connected = true; // Mark pro is active - for `this.libraryRemoveGetProButtons`.

    elementorPro.config.isActive = true;
    elementor.notifications.showToast({
      message: elementor.translate('connected_successfully')
    });
  },
  // TODO: Move to core
  validateHTMLTag: function validateHTMLTag(tag) {
    var validHTMLTags = ['article', 'aside', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span'];
    return validHTMLTags.includes(tag.toLowerCase()) ? tag : 'div';
  }
});
window.elementorPro = new ElementorPro();
elementorPro.start();
})();

/******/ })()
;
//# sourceMappingURL=editor.js.mapPK!�vPee$assets/js/webpack-pro.runtime.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{"use strict";var e,r,_,a={},n={};function __webpack_require__(e){var r=n[e];if(void 0!==r)return r.exports;var _=n[e]={exports:{}};return a[e](_,_.exports,__webpack_require__),_.exports}__webpack_require__.m=a,e=[],__webpack_require__.O=(r,_,a,n)=>{if(!_){var c=1/0;for(o=0;o<e.length;o++){for(var[_,a,n]=e[o],i=!0,t=0;t<_.length;t++)(!1&n||c>=n)&&Object.keys(__webpack_require__.O).every((e=>__webpack_require__.O[e](_[t])))?_.splice(t--,1):(i=!1,n<c&&(c=n));if(i){e.splice(o--,1);var b=a();void 0!==b&&(r=b)}}return r}n=n||0;for(var o=e.length;o>0&&e[o-1][2]>n;o--)e[o]=e[o-1];e[o]=[_,a,n]},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((r,_)=>(__webpack_require__.f[_](e,r),r)),[])),__webpack_require__.u=e=>714===e?"code-highlight.dc74fd78a051eda07b3a.bundle.min.js":721===e?"video-playlist.780d8267a738bfbd96a6.bundle.min.js":256===e?"paypal-button.21471ef12592606560a0.bundle.min.js":241===e?"progress-tracker.ad310e07a2a9063dd3ed.bundle.min.js":26===e?"animated-headline.37960d9fb9ab8b6e43cd.bundle.min.js":534===e?"media-carousel.15b78f70034df8ffebad.bundle.min.js":369===e?"carousel.6a71b6c6e34400c456a5.bundle.min.js":804===e?"countdown.71f117e09cc4a2aa3dba.bundle.min.js":888===e?"hotspot.ba3b762edc3da9c7a076.bundle.min.js":680===e?"form.0fc25ba6639255b98660.bundle.min.js":121===e?"gallery.6af8f19f91f1b16c3ab6.bundle.min.js":288===e?"lottie.b83968ecec2e4fd1b62c.bundle.min.js":42===e?"nav-menu.fd64b77e7258ee4c6205.bundle.min.js":50===e?"popup.7b71aedb401104b93788.bundle.min.js":985===e?"load-more.921f61dba5d476ec2720.bundle.min.js":287===e?"posts.2a35b76ad8ea8f612cd7.bundle.min.js":824===e?"portfolio.c214590e93207960ce64.bundle.min.js":58===e?"share-buttons.42abb737a0de191a4ee9.bundle.min.js":114===e?"slides.39da68ee3c8123589b2e.bundle.min.js":443===e?"social.787445e9f143597c5be5.bundle.min.js":838===e?"table-of-contents.f5cd05278297a9d229e1.bundle.min.js":685===e?"archive-posts.77eccfe3d546a58d3f1f.bundle.min.js":858===e?"search-form.e36b4b7c26157bb965fe.bundle.min.js":102===e?"woocommerce-menu-cart.4c85f15cfbc02b4718c9.bundle.min.js":124===e?"woocommerce-checkout-page.ca82a3335f2823da4209.bundle.min.js":859===e?"woocommerce-cart.e2a9101be21a228a4575.bundle.min.js":979===e?"woocommerce-my-account.29644c6bcc614d12067e.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},_="elementor-pro:",__webpack_require__.l=(e,a,n,c)=>{if(r[e])r[e].push(a);else{var i,t;if(void 0!==n)for(var b=document.getElementsByTagName("script"),o=0;o<b.length;o++){var u=b[o];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==_+n){i=u;break}}i||(t=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,__webpack_require__.nc&&i.setAttribute("nonce",__webpack_require__.nc),i.setAttribute("data-webpack",_+n),i.src=e),r[e]=[a];var onScriptComplete=(_,a)=>{i.onerror=i.onload=null,clearTimeout(d);var n=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach((e=>e(a))),_)return _(a)},d=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=onScriptComplete.bind(null,i.onerror),i.onload=onScriptComplete.bind(null,i.onload),t&&document.head.appendChild(i)}},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var r=__webpack_require__.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var _=r.getElementsByTagName("script");_.length&&(e=_[_.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={396:0};__webpack_require__.f.j=(r,_)=>{var a=__webpack_require__.o(e,r)?e[r]:void 0;if(0!==a)if(a)_.push(a[2]);else if(396!=r){var n=new Promise(((_,n)=>a=e[r]=[_,n]));_.push(a[2]=n);var c=__webpack_require__.p+__webpack_require__.u(r),i=new Error;__webpack_require__.l(c,(_=>{if(__webpack_require__.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var n=_&&("load"===_.type?"missing":_.type),c=_&&_.target&&_.target.src;i.message="Loading chunk "+r+" failed.\n("+n+": "+c+")",i.name="ChunkLoadError",i.type=n,i.request=c,a[1](i)}}),"chunk-"+r,r)}else e[r]=0},__webpack_require__.O.j=r=>0===e[r];var webpackJsonpCallback=(r,_)=>{var a,n,[c,i,t]=_,b=0;for(a in i)__webpack_require__.o(i,a)&&(__webpack_require__.m[a]=i[a]);if(t)var o=t(__webpack_require__);for(r&&r(_);b<c.length;b++)n=c[b],__webpack_require__.o(e,n)&&e[n]&&e[n][0](),e[c[b]]=0;return __webpack_require__.O(o)},r=self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[];r.forEach(webpackJsonpCallback.bind(null,0)),r.push=webpackJsonpCallback.bind(null,r.push.bind(r))})()})();PK!�n��W+W+Bassets/js/woocommerce-checkout-page.acd4a2b8bc03ed32111f.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{

/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Base extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        stickyRightColumn: '.e-sticky-right-column'
      },
      classes: {
        stickyRightColumnActive: 'e-sticky-right-column--active'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
    };
  }

  bindEvents() {
    // Add our wrapper class around the select2 whenever it is opened.
    elementorFrontend.elements.$document.on('select2:open', event => {
      this.addSelect2Wrapper(event);
    });
  }

  addSelect2Wrapper(event) {
    // The select element is recaptured every time because the markup can refresh
    const selectElement = jQuery(event.target).data('select2');

    if (selectElement.$dropdown) {
      selectElement.$dropdown.addClass('e-woo-select2-wrapper');
    }
  }

  isStickyRightColumnActive() {
    const classes = this.getSettings('classes');
    return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
  }

  activateStickyRightColumn() {
    const elementSettings = this.getElementSettings(),
          $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
          classes = this.getSettings('classes');
    let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;

    if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
      stickyOptionsOffset += $wpAdminBar.height();
    }

    if ('yes' === this.getElementSettings('sticky_right_column')) {
      this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
      this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
    }
  }

  deactivateStickyRightColumn() {
    if (!this.isStickyRightColumnActive()) {
      return;
    }

    const classes = this.getSettings('classes');
    this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
  }
  /**
   * Activates the sticky column
   *
   * @return {void}
   */


  toggleStickyRightColumn() {
    if (!this.getElementSettings('sticky_right_column')) {
      this.deactivateStickyRightColumn();
      return;
    }

    if (!this.isStickyRightColumnActive()) {
      this.activateStickyRightColumn();
    }
  }

  equalizeElementHeight($element) {
    if ($element.length) {
      $element.removeAttr('style'); // first remove the custom height we added so that the new height can be re-calculated according to the content

      let maxHeight = 0;
      $element.each((index, element) => {
        maxHeight = Math.max(maxHeight, element.offsetHeight);
      });

      if (0 < maxHeight) {
        $element.css({
          height: maxHeight + 'px'
        });
      }
    }
  }

}

exports.default = Base;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js":
/*!***************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class Checkout extends _base.default {
  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);
    return {
      selectors: { ...defaultSettings.selectors,
        container: '.elementor-widget-woocommerce-checkout-page',
        loginForm: '.e-woocommerce-login-anchor',
        loginSubmit: '.e-woocommerce-form-login-submit',
        loginSection: '.e-woocommerce-login-section',
        showCouponForm: '.e-show-coupon-form',
        couponSection: '.e-coupon-anchor',
        showLoginForm: '.e-show-login',
        applyCoupon: '.e-apply-coupon',
        checkoutForm: 'form.woocommerce-checkout',
        couponBox: '.e-coupon-box',
        address: 'address',
        wpHttpRefererInputs: '[name="_wp_http_referer"]'
      },
      classes: defaultSettings.classes,
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors');
    return { ...super.getDefaultElements(...args),
      $container: this.$element.find(selectors.container),
      $loginForm: this.$element.find(selectors.loginForm),
      $showCouponForm: this.$element.find(selectors.showCouponForm),
      $couponSection: this.$element.find(selectors.couponSection),
      $showLoginForm: this.$element.find(selectors.showLoginForm),
      $applyCoupon: this.$element.find(selectors.applyCoupon),
      $loginSubmit: this.$element.find(selectors.loginSubmit),
      $couponBox: this.$element.find(selectors.couponBox),
      $checkoutForm: this.$element.find(selectors.checkoutForm),
      $loginSection: this.$element.find(selectors.loginSection),
      $address: this.$element.find(selectors.address)
    };
  }

  bindEvents(...args) {
    super.bindEvents(...args);
    this.elements.$showCouponForm.on('click', event => {
      event.preventDefault();
      this.elements.$couponSection.slideToggle();
    });
    this.elements.$showLoginForm.on('click', event => {
      event.preventDefault();
      this.elements.$loginForm.slideToggle();
    });
    this.elements.$applyCoupon.on('click', event => {
      event.preventDefault();
      this.applyCoupon();
    });
    this.elements.$loginSubmit.on('click', event => {
      event.preventDefault();
      this.loginUser();
    });
    elementorFrontend.elements.$body.on('updated_checkout', () => {
      this.applyPurchaseButtonHoverAnimation();
      this.updateWpReferers();
    });
  }

  onInit(...args) {
    super.onInit(...args);
    this.toggleStickyRightColumn();
    this.updateWpReferers();
    this.equalizeElementHeight(this.elements.$address); // equalize <address> boxes height

    if (elementorFrontend.isEditMode()) {
      this.elements.$loginForm.show();
      this.elements.$couponSection.show();
      this.applyPurchaseButtonHoverAnimation();
    }
  }

  onElementChange(propertyName) {
    if ('sticky_right_column' === propertyName) {
      this.toggleStickyRightColumn();
    }
  }

  onDestroy(...args) {
    super.onDestroy(...args);
    this.deactivateStickyRightColumn();
  }

  applyPurchaseButtonHoverAnimation() {
    const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation');

    if (purchaseButtonHoverAnimation) {
      // This element is recaptured every time because the checkout markup can refresh
      jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation);
    }
  }

  applyCoupon() {
    // wc_checkout_params is required to continue, ensure the object exists
    // eslint-disable-next-line camelcase
    if (!wc_checkout_params) {
      return;
    }

    this.startProcessing(this.elements.$couponBox);
    const data = {
      security: wc_checkout_params.apply_coupon_nonce,
      coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val()
    };
    jQuery.ajax({
      type: 'POST',
      url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'),
      context: this,
      data,

      success(code) {
        jQuery('.woocommerce-error, .woocommerce-message').remove();
        this.elements.$couponBox.removeClass('processing').unblock();

        if (code) {
          this.elements.$checkoutForm.before(code);
          this.elements.$couponSection.slideUp();
          elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]);
          elementorFrontend.elements.$body.trigger('update_checkout', {
            update_shipping_method: false
          });
        }
      },

      dataType: 'html'
    });
  }

  loginUser() {
    this.startProcessing(this.elements.$loginSection);
    const data = {
      action: 'elementor_woocommerce_checkout_login_user',
      username: this.elements.$loginSection.find('input[name="username"]').val(),
      password: this.elements.$loginSection.find('input[name="password"]').val(),
      nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(),
      remember: this.elements.$loginSection.find('input#rememberme').prop('checked')
    };
    jQuery.ajax({
      type: 'POST',
      url: this.getSettings('ajaxUrl'),
      context: this,
      data,

      success(code) {
        code = JSON.parse(code);
        this.elements.$loginSection.removeClass('processing').unblock();
        const messages = jQuery('.woocommerce-error, .woocommerce-message');
        messages.remove();

        if (code.logged_in) {
          location.reload();
        } else {
          this.elements.$checkoutForm.before(code.message);
        }
      }

    });
  }

  startProcessing($form) {
    if ($form.is('.processing')) {
      return;
    }
    /**
     * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce
     * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages.
     */


    $form.addClass('processing').block({
      message: null,
      overlayCSS: {
        background: '#fff',
        opacity: 0.6
      }
    });
  }
  /**
   * `elementorPostId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then
   * received when WooCommerce does it's `update_order_review` ajax, and extracted from this url and used with our
   * `load_widget_before_wc_ajax` method.
   */


  updateWpReferers() {
    const selectors = this.getSettings('selectors'),
          wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs),
          url = new URL(document.location);
    url.searchParams.set('elementorPostId', elementorFrontend.config.post.id);
    url.searchParams.set('elementorWidgetId', this.getID());
    wpHttpRefererInputs.attr('value', url);
  }

}

exports.default = Checkout;

/***/ })

}]);
//# sourceMappingURL=woocommerce-checkout-page.acd4a2b8bc03ed32111f.bundle.js.mapPK!
��|8|83assets/js/lottie.b83968ecec2e4fd1b62c.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[288],{4927:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class lottieHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".e-lottie__container",containerLink:".e-lottie__container__link",animation:".e-lottie__animation",caption:".e-lottie__caption"},classes:{caption:"e-lottie__caption"}}}getDefaultElements(){const{selectors:t}=this.getSettings();return{$widgetWrapper:this.$element,$container:this.$element.find(t.container),$containerLink:this.$element.find(t.containerLink),$animation:this.$element.find(t.animation),$caption:this.$element.find(t.caption),$sectionParent:this.$element.closest(".elementor-section"),$columnParent:this.$element.closest(".elementor-column")}}onInit(...t){super.onInit(...t),this.lottie=null,this.state={isAnimationScrollUpdateNeededOnFirstLoad:!0,isNewLoopCycle:!1,isInViewport:!1,loop:!1,animationDirection:"forward",currentAnimationTrigger:"",effectsRelativeTo:"",hoverOutMode:"",hoverArea:"",caption:"",playAnimationCount:0,animationSpeed:0,linkTimeout:0,viewportOffset:{start:0,end:100}},this.intersectionObservers={animation:{observer:null,element:null},lazyload:{observer:null,element:null}},this.animationFrameRequest={timer:null,lastScrollY:0},this.listeners={collection:[],elements:{$widgetArea:{triggerAnimationHoverIn:null,triggerAnimationHoverOut:null},$container:{triggerAnimationClick:null}}},this.initLottie()}initLottie(){this.getLottieSettings().lazyload?this.lazyloadLottie():this.generateLottie()}lazyloadLottie(){this.intersectionObservers.lazyload.observer=elementorModules.utils.Scroll.scrollObserver({offset:"0px 0px 200px",callback:t=>{t.isInViewport&&(this.generateLottie(),this.intersectionObservers.lazyload.observer.unobserve(this.intersectionObservers.lazyload.element))}}),this.intersectionObservers.lazyload.element=this.elements.$container[0],this.intersectionObservers.lazyload.observer.observe(this.intersectionObservers.lazyload.element)}generateLottie(){this.createLottieInstance(),this.setLottieEvents()}createLottieInstance(){const t=this.getLottieSettings();this.lottie=bodymovin.loadAnimation({container:this.elements.$animation[0],path:this.getAnimationPath(),renderer:t.renderer,autoplay:!1,name:"lottie-widget"}),this.elements.$animation.data("lottie",this.lottie)}getAnimationPath(){var t,e;const i=this.getLottieSettings();return null!==(t=i.source_json)&&void 0!==t&&t.url&&"json"===i.source_json.url.toLowerCase().substr(-4)?i.source_json.url:null!==(e=i.source_external_url)&&void 0!==e&&e.url?i.source_external_url.url:elementorProFrontend.config.lottie.defaultAnimationUrl}setCaption(){const t=this.getLottieSettings();if("external_url"===t.source||"media_file"===t.source&&"custom"===t.caption_source){this.getCaptionElement().text(t.caption)}}getCaptionElement(){if(!this.elements.$caption.length){const{classes:t}=this.getSettings();return this.elements.$caption=jQuery("<p>",{class:t.caption}),this.elements.$container.append(this.elements.$caption),this.elements.$caption}return this.elements.$caption}setLottieEvents(){this.lottie.addEventListener("DOMLoaded",(()=>this.onLottieDomLoaded())),this.lottie.addEventListener("complete",(()=>this.onComplete()))}saveInitialValues(){var t;const e=this.getLottieSettings();this.lottie.__initialTotalFrames=this.lottie.totalFrames,this.lottie.__initialFirstFrame=this.lottie.firstFrame,this.state.currentAnimationTrigger=e.trigger,this.state.effectsRelativeTo=e.effects_relative_to,this.state.viewportOffset.start=e.viewport?e.viewport.sizes.start:0,this.state.viewportOffset.end=e.viewport?e.viewport.sizes.end:100,this.state.animationSpeed=null===(t=e.play_speed)||void 0===t?void 0:t.size,this.state.linkTimeout=e.link_timeout,this.state.caption=e.caption,this.state.loop=e.loop}setAnimationFirstFrame(){const t=this.getAnimationFrames();t.first=t.first-this.lottie.__initialFirstFrame,this.lottie.goToAndStop(t.first,!0)}initAnimationTrigger(){switch(this.getLottieSettings().trigger){case"none":this.playLottie();break;case"arriving_to_viewport":this.playAnimationWhenArrivingToViewport();break;case"bind_to_scroll":this.playAnimationWhenBindToScroll();break;case"on_click":this.bindAnimationClickEvents();break;case"on_hover":this.bindAnimationHoverEvents()}}playAnimationWhenArrivingToViewport(){const t=this.getOffset();this.intersectionObservers.animation.observer=elementorModules.utils.Scroll.scrollObserver({offset:`${t.end}% 0% ${t.start}%`,callback:t=>{t.isInViewport?(this.state.isInViewport=!0,this.playLottie()):(this.state.isInViewport=!1,this.lottie.pause())}}),this.intersectionObservers.animation.element=this.elements.$widgetWrapper[0],this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element)}getOffset(){const t=this.getLottieSettings();return{start:-t.viewport.sizes.start||0,end:-(100-t.viewport.sizes.end)||0}}playAnimationWhenBindToScroll(){const t=this.getLottieSettings(),e=this.getOffset();this.intersectionObservers.animation.observer=elementorModules.utils.Scroll.scrollObserver({offset:`${e.end}% 0% ${e.start}%`,callback:t=>this.onLottieIntersection(t)}),this.intersectionObservers.animation.element="viewport"===t.effects_relative_to?this.elements.$widgetWrapper[0]:document.documentElement,this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element)}updateAnimationByScrollPosition(){let t;t="page"===this.getLottieSettings().effects_relative_to?this.getLottiePagePercentage():"fixed"===this.getCurrentDeviceSetting("_position")?this.getLottieViewportHeightPercentage():this.getLottieViewportPercentage();let e=this.getFrameNumberByPercent(t);e-=this.lottie.__initialFirstFrame,this.lottie.goToAndStop(e,!0)}getLottieViewportPercentage(){return elementorModules.utils.Scroll.getElementViewportPercentage(this.elements.$widgetWrapper,this.getOffset())}getLottiePagePercentage(){return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset())}getLottieViewportHeightPercentage(){return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset(),window.innerHeight)}getFrameNumberByPercent(t){const e=this.getAnimationFrames();return t=Math.min(100,Math.max(0,t)),e.first+(e.last-e.first)*t/100}getAnimationFrames(){const t=this.getLottieSettings(),e=this.getAnimationCurrentFrame(),i=this.getAnimationRange().start,s=this.getAnimationRange().end;let n=this.lottie.__initialFirstFrame,o=0===this.lottie.__initialFirstFrame?this.lottie.__initialTotalFrames:this.lottie.__initialFirstFrame+this.lottie.__initialTotalFrames;return i&&i>n&&(n=i),s&&s<o&&(o=s),this.state.isNewLoopCycle||"bind_to_scroll"===t.trigger||(n=i&&i>e?i:e),"backward"===this.state.animationDirection&&this.isReverseMode()&&(n=e,o=i&&i>this.lottie.__initialFirstFrame?i:this.lottie.__initialFirstFrame),{first:n,last:o,current:e,total:this.lottie.__initialTotalFrames}}getAnimationRange(){const t=this.getLottieSettings();return{start:this.getInitialFrameNumberByPercent(t.start_point.size),end:this.getInitialFrameNumberByPercent(t.end_point.size)}}getInitialFrameNumberByPercent(t){return t=Math.min(100,Math.max(0,t)),this.lottie.__initialFirstFrame+(this.lottie.__initialTotalFrames-this.lottie.__initialFirstFrame)*t/100}getAnimationCurrentFrame(){return 0===this.lottie.firstFrame?this.lottie.currentFrame:this.lottie.firstFrame+this.lottie.currentFrame}setLinkTimeout(){var t;const e=this.getLottieSettings();"on_click"===e.trigger&&null!==(t=e.custom_link)&&void 0!==t&&t.url&&e.link_timeout&&this.elements.$containerLink.on("click",(t=>{t.preventDefault(),this.isEdit||setTimeout((()=>{const t="on"===e.custom_link.is_external?"_blank":"_self";window.open(e.custom_link.url,t)}),e.link_timeout)}))}bindAnimationClickEvents(){this.listeners.elements.$container.triggerAnimationClick=()=>{this.playLottie()},this.addSessionEventListener(this.elements.$container,"click",this.listeners.elements.$container.triggerAnimationClick)}getLottieSettings(){const t=this.getElementSettings();return{...t,lazyload:"yes"===t.lazyload,loop:"yes"===t.loop}}playLottie(){const t=this.getAnimationFrames();this.lottie.stop(),this.lottie.playSegments([t.first,t.last],!0),this.state.isNewLoopCycle=!1}bindAnimationHoverEvents(){this.createAnimationHoverInEvents(),this.createAnimationHoverOutEvents()}createAnimationHoverInEvents(){const t=this.getLottieSettings(),e=this.getHoverAreaElement();this.state.hoverArea=t.hover_area,this.listeners.elements.$widgetArea.triggerAnimationHoverIn=()=>{this.state.animationDirection="forward",this.playLottie()},this.addSessionEventListener(e,"mouseenter",this.listeners.elements.$widgetArea.triggerAnimationHoverIn)}addSessionEventListener(t,e,i){t.on(e,i),this.listeners.collection.push({$el:t,event:e,callback:i})}createAnimationHoverOutEvents(){const t=this.getLottieSettings(),e=this.getHoverAreaElement();"pause"!==t.on_hover_out&&"reverse"!==t.on_hover_out||(this.state.hoverOutMode=t.on_hover_out,this.listeners.elements.$widgetArea.triggerAnimationHoverOut=()=>{"pause"===t.on_hover_out?this.lottie.pause():(this.state.animationDirection="backward",this.playLottie())},this.addSessionEventListener(e,"mouseleave",this.listeners.elements.$widgetArea.triggerAnimationHoverOut))}getHoverAreaElement(){const t=this.getLottieSettings();return"section"===t.hover_area?this.elements.$sectionParent:"column"===t.hover_area?this.elements.$columnParent:this.elements.$container}setLoopOnAnimationComplete(){const t=this.getLottieSettings();this.state.isNewLoopCycle=!0,t.loop&&!this.isReverseMode()?this.setLoopWhenNotReverse():t.loop&&this.isReverseMode()?this.setReverseAnimationOnLoop():!t.loop&&this.isReverseMode()&&this.setReverseAnimationOnSingleTrigger()}isReverseMode(){const t=this.getLottieSettings();return"yes"===t.reverse_animation||"reverse"===t.on_hover_out&&"backward"===this.state.animationDirection}setLoopWhenNotReverse(){const t=this.getLottieSettings();t.number_of_times>0?(this.state.playAnimationCount++,this.state.playAnimationCount<t.number_of_times?this.playLottie():this.state.playAnimationCount=0):this.playLottie()}setReverseAnimationOnLoop(){const t=this.getLottieSettings();!t.number_of_times||this.state.playAnimationCount<t.number_of_times?(this.state.animationDirection="forward"===this.state.animationDirection?"backward":"forward",this.playLottie(),"backward"===this.state.animationDirection&&this.state.playAnimationCount++):(this.state.playAnimationCount=0,this.state.animationDirection="forward")}setReverseAnimationOnSingleTrigger(){this.state.playAnimationCount<1?(this.state.playAnimationCount++,this.state.animationDirection="backward",this.playLottie()):this.state.playAnimationCount>=1&&"forward"===this.state.animationDirection?(this.state.animationDirection="backward",this.playLottie()):(this.state.playAnimationCount=0,this.state.animationDirection="forward")}setAnimationSpeed(){const t=this.getLottieSettings();t.play_speed&&this.lottie.setSpeed(t.play_speed.size)}onElementChange(){this.updateLottieValues(),this.resetAnimationTrigger()}updateLottieValues(){var t;const e=this.getLottieSettings();[{sourceVal:null===(t=e.play_speed)||void 0===t?void 0:t.size,stateProp:"animationSpeed",callback:()=>this.setAnimationSpeed()},{sourceVal:e.link_timeout,stateProp:"linkTimeout",callback:()=>this.setLinkTimeout()},{sourceVal:e.caption,stateProp:"caption",callback:()=>this.setCaption()},{sourceVal:e.effects_relative_to,stateProp:"effectsRelativeTo",callback:()=>this.updateAnimationByScrollPosition()},{sourceVal:e.loop,stateProp:"loop",callback:()=>this.onLoopStateChange()}].forEach((t=>{void 0!==t.sourceVal&&t.sourceVal!==this.state[t.stateProp]&&(this.state[t.stateProp]=t.sourceVal,t.callback())}))}onLoopStateChange(){const t="arriving_to_viewport"===this.state.currentAnimationTrigger&&this.state.isInViewport;this.state.loop&&(t||"none"===this.state.currentAnimationTrigger)&&this.playLottie()}resetAnimationTrigger(){const t=this.getLottieSettings(),e=t.trigger!==this.state.currentAnimationTrigger,i=!!t.viewport&&this.isViewportOffsetChange(),s=!!t.on_hover_out&&this.isHoverOutModeChange(),n=!!t.hover_area&&this.isHoverAreaChange();(e||i||s||n)&&(this.removeAnimationFrameRequests(),this.removeObservers(),this.removeEventListeners(),this.initAnimationTrigger())}isViewportOffsetChange(){const t=this.getLottieSettings(),e=t.viewport.sizes.start!==this.state.viewportOffset.start,i=t.viewport.sizes.end!==this.state.viewportOffset.end;return e||i}isHoverOutModeChange(){return this.getLottieSettings().on_hover_out!==this.state.hoverOutMode}isHoverAreaChange(){return this.getLottieSettings().hover_area!==this.state.hoverArea}removeEventListeners(){this.listeners.collection.forEach((t=>{t.$el.off(t.event,null,t.callback)}))}removeObservers(){for(const t in this.intersectionObservers)this.intersectionObservers[t].observer&&this.intersectionObservers[t].element&&this.intersectionObservers[t].observer.unobserve(this.intersectionObservers[t].element)}removeAnimationFrameRequests(){cancelAnimationFrame(this.animationFrameRequest.timer)}onDestroy(){super.onDestroy(),this.destroyLottie()}destroyLottie(){this.removeAnimationFrameRequests(),this.removeObservers(),this.removeEventListeners(),this.elements.$animation.removeData("lottie"),this.lottie&&this.lottie.destroy()}onLottieDomLoaded(){this.saveInitialValues(),this.setAnimationSpeed(),this.setLinkTimeout(),this.setCaption(),this.setAnimationFirstFrame(),this.initAnimationTrigger()}onComplete(){this.setLoopOnAnimationComplete()}onLottieIntersection(t){if(t.isInViewport)this.state.isAnimationScrollUpdateNeededOnFirstLoad&&(this.state.isAnimationScrollUpdateNeededOnFirstLoad=!1,this.updateAnimationByScrollPosition()),this.animationFrameRequest.timer=requestAnimationFrame((()=>this.onAnimationFrameRequest()));else{const e=this.getAnimationFrames(),i="up"===t.intersectionScrollDirection?e.first:e.last;this.state.isAnimationScrollUpdateNeededOnFirstLoad=!1,cancelAnimationFrame(this.animationFrameRequest.timer),this.lottie.goToAndStop(i,!0)}}onAnimationFrameRequest(){window.scrollY!==this.animationFrameRequest.lastScrollY&&(this.updateAnimationByScrollPosition(),this.animationFrameRequest.lastScrollY=window.scrollY),this.animationFrameRequest.timer=requestAnimationFrame((()=>this.onAnimationFrameRequest()))}}e.default=lottieHandler}}]);PK!���C'C'1assets/js/carousel.364bbaf018e09f58c819.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["carousel"],{

/***/ "../modules/carousel/assets/js/frontend/handlers/base.js":
/*!***************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/base.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class CarouselBase extends elementorModules.frontend.handlers.SwiperBase {
  getDefaultSettings() {
    return {
      selectors: {
        swiperContainer: '.elementor-main-swiper',
        swiperSlide: '.swiper-slide'
      },
      slidesPerView: {
        widescreen: 3,
        desktop: 3,
        laptop: 3,
        tablet_extra: 3,
        tablet: 2,
        mobile_extra: 2,
        mobile: 1
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {
      $swiperContainer: this.$element.find(selectors.swiperContainer)
    };
    elements.$slides = elements.$swiperContainer.find(selectors.swiperSlide);
    return elements;
  }

  getEffect() {
    return this.getElementSettings('effect');
  }

  getDeviceSlidesPerView(device) {
    const slidesPerViewKey = 'slides_per_view' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesPerViewKey) || this.getSettings('slidesPerView')[device]);
  }

  getSlidesPerView(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesPerView(device);
    }

    return 1;
  }

  getDeviceSlidesToScroll(device) {
    const slidesToScrollKey = 'slides_to_scroll' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesToScrollKey) || 1);
  }

  getSlidesToScroll(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesToScroll(device);
    }

    return 1;
  }

  getSpaceBetween(device) {
    let propertyName = 'space_between';

    if (device && 'desktop' !== device) {
      propertyName += '_' + device;
    }

    return this.getElementSettings(propertyName).size || 0;
  }

  getSwiperOptions() {
    const elementSettings = this.getElementSettings();
    const swiperOptions = {
      grabCursor: true,
      initialSlide: this.getInitialSlide(),
      slidesPerView: this.getSlidesPerView('desktop'),
      slidesPerGroup: this.getSlidesToScroll('desktop'),
      spaceBetween: this.getSpaceBetween(),
      loop: 'yes' === elementSettings.loop,
      speed: elementSettings.speed,
      effect: this.getEffect(),
      preventClicksPropagation: false,
      slideToClickedSlide: true,
      handleElementorBreakpoints: true
    };

    if (elementSettings.show_arrows) {
      swiperOptions.navigation = {
        prevEl: '.elementor-swiper-button-prev',
        nextEl: '.elementor-swiper-button-next'
      };
    }

    if (elementSettings.pagination) {
      swiperOptions.pagination = {
        el: '.swiper-pagination',
        type: elementSettings.pagination,
        clickable: true
      };
    }

    if ('cube' !== this.getEffect()) {
      const breakpointsSettings = {},
            breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      Object.keys(breakpoints).forEach(breakpointName => {
        breakpointsSettings[breakpoints[breakpointName].value] = {
          slidesPerView: this.getSlidesPerView(breakpointName),
          slidesPerGroup: this.getSlidesToScroll(breakpointName),
          spaceBetween: this.getSpaceBetween(breakpointName)
        };
      });
      swiperOptions.breakpoints = breakpointsSettings;
    }

    if (!this.isEdit && elementSettings.autoplay) {
      swiperOptions.autoplay = {
        delay: elementSettings.autoplay_speed,
        disableOnInteraction: !!elementSettings.pause_on_interaction
      };
    }

    return swiperOptions;
  }

  getDeviceBreakpointValue(device) {
    if (!this.breakpointsDictionary) {
      const breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      this.breakpointsDictionary = {};
      Object.keys(breakpoints).forEach(breakpointName => {
        this.breakpointsDictionary[breakpointName] = breakpoints[breakpointName].value;
      });
    }

    return this.breakpointsDictionary[device];
  }

  updateSpaceBetween(propertyName) {
    const deviceMatch = propertyName.match('space_between_(.*)'),
          device = deviceMatch ? deviceMatch[1] : 'desktop',
          newSpaceBetween = this.getSpaceBetween(device);

    if ('desktop' !== device) {
      this.swiper.params.breakpoints[this.getDeviceBreakpointValue(device)].spaceBetween = newSpaceBetween;
    } else {
      this.swiper.params.spaceBetween = newSpaceBetween;
    }

    this.swiper.params.spaceBetween = newSpaceBetween;
    this.swiper.update();
  }

  async onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    const elementSettings = this.getElementSettings();

    if (1 >= this.getSlidesCount()) {
      return;
    }

    const Swiper = elementorFrontend.utils.swiper;
    this.swiper = await new Swiper(this.elements.$swiperContainer, this.getSwiperOptions());

    if ('yes' === elementSettings.pause_on_hover) {
      this.togglePauseOnHover(true);
    } // Expose the swiper instance in the frontend


    this.elements.$swiperContainer.data('swiper', this.swiper);
  }

  getChangeableProperties() {
    return {
      autoplay: 'autoplay',
      pause_on_hover: 'pauseOnHover',
      pause_on_interaction: 'disableOnInteraction',
      autoplay_speed: 'delay',
      speed: 'speed',
      width: 'width'
    };
  }

  updateSwiperOption(propertyName) {
    if (0 === propertyName.indexOf('width')) {
      this.swiper.update();
      return;
    }

    const elementSettings = this.getElementSettings(),
          newSettingValue = elementSettings[propertyName],
          changeableProperties = this.getChangeableProperties();
    let propertyToUpdate = changeableProperties[propertyName],
        valueToUpdate = newSettingValue; // Handle special cases where the value to update is not the value that the Swiper library accepts

    switch (propertyName) {
      case 'autoplay':
        if (newSettingValue) {
          valueToUpdate = {
            delay: elementSettings.autoplay_speed,
            disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
          };
        } else {
          valueToUpdate = false;
        }

        break;

      case 'autoplay_speed':
        propertyToUpdate = 'autoplay';
        valueToUpdate = {
          delay: newSettingValue,
          disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
        };
        break;

      case 'pause_on_hover':
        this.togglePauseOnHover('yes' === newSettingValue);
        break;

      case 'pause_on_interaction':
        valueToUpdate = 'yes' === newSettingValue;
        break;
    } // 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library


    if ('pause_on_hover' !== propertyName) {
      this.swiper.params[propertyToUpdate] = valueToUpdate;
    }

    this.swiper.update();
  }

  onElementChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if (0 === propertyName.indexOf('width')) {
      this.swiper.update(); // If there is another thumbs slider, like in the Media Carousel widget.

      if (this.thumbsSwiper) {
        this.thumbsSwiper.update();
      }

      return;
    } // This is for handling the responsive control 'space_between'.
    // Responsive controls require a separate way of handling, and some currently don't work
    // (Swiper bug, currently exists in v5.3.6) TODO: update Swiper when bug is fixed and handle responsive controls


    if (0 === propertyName.indexOf('space_between')) {
      this.updateSpaceBetween(propertyName);
      return;
    }

    const changeableProperties = this.getChangeableProperties();

    if (changeableProperties.hasOwnProperty(propertyName)) {
      this.updateSwiperOption(propertyName);
    }
  }

  onEditSettingsChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if ('activeItemIndex' === propertyName) {
      this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
    }
  }

}

exports.default = CarouselBase;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js":
/*!*******************************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/carousel/assets/js/frontend/handlers/base.js"));

class TestimonialCarousel extends _base.default {
  getDefaultSettings() {
    const defaultSettings = super.getDefaultSettings();
    defaultSettings.slidesPerView = {
      desktop: 1
    };
    Object.keys(elementorFrontend.config.responsive.activeBreakpoints).forEach(breakpointName => {
      defaultSettings.slidesPerView[breakpointName] = 1;
    });

    if (defaultSettings.loop) {
      defaultSettings.loopedSlides = this.getSlidesCount();
    }

    return defaultSettings;
  }

  getEffect() {
    return 'slide';
  }

}

exports.default = TestimonialCarousel;

/***/ })

}]);
//# sourceMappingURL=carousel.364bbaf018e09f58c819.bundle.js.mapPK!��ޭޭassets/js/frontend.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["frontend"],{

/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
  \****************************************************************/
/***/ ((module) => {

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
  \***********************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../assets/dev/js/frontend/frontend.js":
/*!*********************************************!*\
  !*** ../assets/dev/js/frontend/frontend.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

__webpack_require__(/*! ../public-path */ "../assets/dev/js/public-path.js");

var _frontend = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/motion-fx/assets/js/frontend/frontend */ "../modules/motion-fx/assets/js/frontend/frontend.js"));

var _frontend2 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/sticky/assets/js/frontend/frontend */ "../modules/sticky/assets/js/frontend/frontend.js"));

var _frontend3 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/code-highlight/assets/js/frontend/frontend */ "../modules/code-highlight/assets/js/frontend/frontend.js"));

var _frontend4 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/video-playlist/assets/js/frontend/frontend */ "../modules/video-playlist/assets/js/frontend/frontend.js"));

var _frontend5 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/payments/assets/js/frontend/frontend */ "../modules/payments/assets/js/frontend/frontend.js"));

var _frontend6 = _interopRequireDefault(__webpack_require__(/*! ../../../../modules/progress-tracker/assets/js/frontend/frontend */ "../modules/progress-tracker/assets/js/frontend/frontend.js"));

class ElementorProFrontend extends elementorModules.ViewModule {
  onInit() {
    super.onInit();
    this.config = ElementorProFrontendConfig;
    this.modules = {};
  }

  bindEvents() {
    jQuery(window).on('elementor/frontend/init', this.onElementorFrontendInit.bind(this));
  }

  initModules() {
    // Handlers that should be available by default for sections usage.
    let handlers = {
      motionFX: _frontend.default,
      sticky: _frontend2.default,
      codeHighlight: _frontend3.default,
      videoPlaylist: _frontend4.default,
      payments: _frontend5.default,
      progressTracker: _frontend6.default
    }; // Keep this line before applying filter on the handlers.

    elementorProFrontend.trigger('elementor-pro/modules/init:before');
    handlers = elementorFrontend.hooks.applyFilters('elementor-pro/frontend/handlers', handlers);
    jQuery.each(handlers, (moduleName, ModuleClass) => {
      this.modules[moduleName] = new ModuleClass();
    }); // TODO: BC Since 2.9.0

    this.modules.linkActions = {
      addAction: (...args) => {
        elementorFrontend.utils.urlActions.addAction(...args);
      }
    };
  }

  onElementorFrontendInit() {
    this.initModules();
  }

}

window.elementorProFrontend = new ElementorProFrontend();

/***/ }),

/***/ "../assets/dev/js/public-path.js":
/*!***************************************!*\
  !*** ../assets/dev/js/public-path.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


/* eslint-disable camelcase */
__webpack_require__.p = ElementorProFrontendConfig.urls.assets + 'js/';

/***/ }),

/***/ "../modules/code-highlight/assets/js/frontend/frontend.js":
/*!****************************************************************!*\
  !*** ../modules/code-highlight/assets/js/frontend/frontend.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('code-highlight', () => __webpack_require__.e(/*! import() | code-highlight */ "code-highlight").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/code-highlight/assets/js/frontend/handler.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/frontend.js":
/*!***********************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/frontend.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _handler = _interopRequireDefault(__webpack_require__(/*! ./handler */ "../modules/motion-fx/assets/js/frontend/handler.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('global', _handler.default, null);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/handler.js":
/*!**********************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/handler.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _motionFx = _interopRequireDefault(__webpack_require__(/*! ./motion-fx/motion-fx */ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js"));

class _default extends elementorModules.frontend.handlers.Base {
  __construct(...args) {
    super.__construct(...args);

    this.toggle = elementorFrontend.debounce(this.toggle, 200);
  }

  getDefaultSettings() {
    return {
      selectors: {
        container: '.elementor-widget-container'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $container: this.$element.find(selectors.container)
    };
  }

  bindEvents() {
    elementorFrontend.elements.$window.on('resize', this.toggle);
  }

  unbindEvents() {
    elementorFrontend.elements.$window.off('resize', this.toggle);
  }

  addCSSTransformEvents() {
    // Remove CSS transition variable that assigned from scroll.js in order to allow the transition of the CSS-Transform.
    const motionFxScrolling = this.getElementSettings('motion_fx_motion_fx_scrolling');

    if (motionFxScrolling && !this.isTransitionEventAdded) {
      this.isTransitionEventAdded = true;
      this.elements.$container.on('mouseenter', () => {
        this.elements.$container.css('--e-transform-transition-duration', '');
      });
    }
  }

  initEffects() {
    this.effects = {
      translateY: {
        interaction: 'scroll',
        actions: ['translateY']
      },
      translateX: {
        interaction: 'scroll',
        actions: ['translateX']
      },
      rotateZ: {
        interaction: 'scroll',
        actions: ['rotateZ']
      },
      scale: {
        interaction: 'scroll',
        actions: ['scale']
      },
      opacity: {
        interaction: 'scroll',
        actions: ['opacity']
      },
      blur: {
        interaction: 'scroll',
        actions: ['blur']
      },
      mouseTrack: {
        interaction: 'mouseMove',
        actions: ['translateXY']
      },
      tilt: {
        interaction: 'mouseMove',
        actions: ['tilt']
      }
    };
  }

  prepareOptions(name) {
    const elementSettings = this.getElementSettings(),
          type = 'motion_fx' === name ? 'element' : 'background',
          interactions = {};
    jQuery.each(elementSettings, (key, value) => {
      const keyRegex = new RegExp('^' + name + '_(.+?)_effect'),
            keyMatches = key.match(keyRegex);

      if (!keyMatches || !value) {
        return;
      }

      const options = {},
            effectName = keyMatches[1];
      jQuery.each(elementSettings, (subKey, subValue) => {
        const subKeyRegex = new RegExp(name + '_' + effectName + '_(.+)'),
              subKeyMatches = subKey.match(subKeyRegex);

        if (!subKeyMatches) {
          return;
        }

        const subFieldName = subKeyMatches[1];

        if ('effect' === subFieldName) {
          return;
        }

        if ('object' === typeof subValue) {
          subValue = Object.keys(subValue.sizes).length ? subValue.sizes : subValue.size;
        }

        options[subKeyMatches[1]] = subValue;
      });
      const effect = this.effects[effectName],
            interactionName = effect.interaction;

      if (!interactions[interactionName]) {
        interactions[interactionName] = {};
      }

      effect.actions.forEach(action => interactions[interactionName][action] = options);
    });
    let $element = this.$element,
        $dimensionsElement;
    const elementType = this.getElementType();

    if ('element' === type && 'section' !== elementType) {
      $dimensionsElement = $element;
      let childElementSelector;

      if ('column' === elementType) {
        childElementSelector = elementorFrontend.config.legacyMode.elementWrappers ? '.elementor-column-wrap' : '.elementor-widget-wrap';
      } else {
        childElementSelector = '.elementor-widget-container';
      }

      $element = $element.find('> ' + childElementSelector);
    }

    const options = {
      type,
      interactions,
      elementSettings,
      $element,
      $dimensionsElement,
      refreshDimensions: this.isEdit,
      range: elementSettings[name + '_range'],
      classes: {
        element: 'elementor-motion-effects-element',
        parent: 'elementor-motion-effects-parent',
        backgroundType: 'elementor-motion-effects-element-type-background',
        container: 'elementor-motion-effects-container',
        layer: 'elementor-motion-effects-layer',
        perspective: 'elementor-motion-effects-perspective'
      }
    };

    if (!options.range && 'fixed' === this.getCurrentDeviceSetting('_position')) {
      options.range = 'page';
    }

    if ('fixed' === this.getCurrentDeviceSetting('_position')) {
      options.isFixedPosition = true;
    }

    if ('background' === type && 'column' === this.getElementType()) {
      options.addBackgroundLayerTo = ' > .elementor-element-populated';
    }

    return options;
  }

  activate(name) {
    const options = this.prepareOptions(name);

    if (jQuery.isEmptyObject(options.interactions)) {
      return;
    }

    this[name] = new _motionFx.default(options);
  }

  deactivate(name) {
    if (this[name]) {
      this[name].destroy();
      delete this[name];
    }
  }

  toggle() {
    const currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
          elementSettings = this.getElementSettings();
    ['motion_fx', 'background_motion_fx'].forEach(name => {
      const devices = elementSettings[name + '_devices'],
            isCurrentModeActive = !devices || -1 !== devices.indexOf(currentDeviceMode);

      if (isCurrentModeActive && (elementSettings[name + '_motion_fx_scrolling'] || elementSettings[name + '_motion_fx_mouse'])) {
        if (this[name]) {
          this.refreshInstance(name);
        } else {
          this.activate(name);
        }
      } else {
        this.deactivate(name);
      }
    });
  }

  refreshInstance(instanceName) {
    const instance = this[instanceName];

    if (!instance) {
      return;
    }

    const preparedOptions = this.prepareOptions(instanceName);
    instance.setSettings(preparedOptions);
    instance.refresh();
  }

  onInit() {
    super.onInit();
    this.initEffects();
    this.addCSSTransformEvents();
    this.toggle();
  }

  onElementChange(propertyName) {
    if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(propertyName)) {
      if ('motion_fx_motion_fx_scrolling' === propertyName) {
        this.addCSSTransformEvents();
      }

      this.toggle();
      return;
    }

    const propertyMatches = propertyName.match('.*?(motion_fx|_transform)');

    if (propertyMatches) {
      const instanceName = propertyMatches[0].match('(_transform)') ? 'motion_fx' : propertyMatches[0];
      this.refreshInstance(instanceName);

      if (!this[instanceName]) {
        this.activate(instanceName);
      }
    }

    if (/^_position/.test(propertyName)) {
      ['motion_fx', 'background_motion_fx'].forEach(instanceName => {
        this.refreshInstance(instanceName);
      });
    }
  }

  onDestroy() {
    super.onDestroy();
    ['motion_fx', 'background_motion_fx'].forEach(name => {
      this.deactivate(name);
    });
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js":
/*!********************************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/actions.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  getMovePointFromPassedPercents(movableRange, passedPercents) {
    const movePoint = passedPercents / movableRange * 100;
    return +movePoint.toFixed(2);
  }

  getEffectValueFromMovePoint(range, movePoint) {
    return range * movePoint / 100;
  }

  getStep(passedPercents, options) {
    if ('element' === this.getSettings('type')) {
      return this.getElementStep(passedPercents, options);
    }

    return this.getBackgroundStep(passedPercents, options);
  }

  getElementStep(passedPercents, options) {
    return -(passedPercents - 50) * options.speed;
  }

  getBackgroundStep(passedPercents, options) {
    const movableRange = this.getSettings('dimensions.movable' + options.axis.toUpperCase());
    return -this.getEffectValueFromMovePoint(movableRange, passedPercents);
  }

  getDirectionMovePoint(passedPercents, direction, range) {
    let movePoint;

    if (passedPercents < range.start) {
      if ('out-in' === direction) {
        movePoint = 0;
      } else if ('in-out' === direction) {
        movePoint = 100;
      } else {
        movePoint = this.getMovePointFromPassedPercents(range.start, passedPercents);

        if ('in-out-in' === direction) {
          movePoint = 100 - movePoint;
        }
      }
    } else if (passedPercents < range.end) {
      if ('in-out-in' === direction) {
        movePoint = 0;
      } else if ('out-in-out' === direction) {
        movePoint = 100;
      } else {
        movePoint = this.getMovePointFromPassedPercents(range.end - range.start, passedPercents - range.start);

        if ('in-out' === direction) {
          movePoint = 100 - movePoint;
        }
      }
    } else if ('in-out' === direction) {
      movePoint = 0;
    } else if ('out-in' === direction) {
      movePoint = 100;
    } else {
      movePoint = this.getMovePointFromPassedPercents(100 - range.end, 100 - passedPercents);

      if ('in-out-in' === direction) {
        movePoint = 100 - movePoint;
      }
    }

    return movePoint;
  }

  translateX(actionData, passedPercents) {
    actionData.axis = 'x';
    actionData.unit = 'px';
    this.transform('translateX', passedPercents, actionData);
  }

  translateY(actionData, passedPercents) {
    actionData.axis = 'y';
    actionData.unit = 'px';
    this.transform('translateY', passedPercents, actionData);
  }

  translateXY(actionData, passedPercentsX, passedPercentsY) {
    this.translateX(actionData, passedPercentsX);
    this.translateY(actionData, passedPercentsY);
  }

  tilt(actionData, passedPercentsX, passedPercentsY) {
    const options = {
      speed: actionData.speed / 10,
      direction: actionData.direction
    };
    this.rotateX(options, passedPercentsY);
    this.rotateY(options, 100 - passedPercentsX);
  }

  rotateX(actionData, passedPercents) {
    actionData.axis = 'x';
    actionData.unit = 'deg';
    this.transform('rotateX', passedPercents, actionData);
  }

  rotateY(actionData, passedPercents) {
    actionData.axis = 'y';
    actionData.unit = 'deg';
    this.transform('rotateY', passedPercents, actionData);
  }

  rotateZ(actionData, passedPercents) {
    actionData.unit = 'deg';
    this.transform('rotateZ', passedPercents, actionData);
  }

  scale(actionData, passedPercents) {
    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range);
    this.updateRulePart('transform', 'scale', 1 + actionData.speed * movePoint / 1000);
  }

  transform(action, passedPercents, actionData) {
    if (actionData.direction) {
      passedPercents = 100 - passedPercents;
    }

    this.updateRulePart('transform', action, this.getStep(passedPercents, actionData) + actionData.unit);
  }

  setCSSTransformVariables(elementSettings) {
    this.CSSTransformVariables = [];
    jQuery.each(elementSettings, (settingKey, settingValue) => {
      const transformKeyMatches = settingKey.match(/_transform_(.+?)_effect/m);

      if (transformKeyMatches && settingValue) {
        if ('perspective' === transformKeyMatches[1]) {
          this.CSSTransformVariables.unshift(transformKeyMatches[1]);
          return;
        }

        if (this.CSSTransformVariables.includes(transformKeyMatches[1])) {
          return;
        }

        this.CSSTransformVariables.push(transformKeyMatches[1]);
      }
    });
  }

  opacity(actionData, passedPercents) {
    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
          level = actionData.level / 10,
          opacity = 1 - level + this.getEffectValueFromMovePoint(level, movePoint);
    this.$element.css({
      opacity,
      'will-change': 'opacity'
    });
  }

  blur(actionData, passedPercents) {
    const movePoint = this.getDirectionMovePoint(passedPercents, actionData.direction, actionData.range),
          blur = actionData.level - this.getEffectValueFromMovePoint(actionData.level, movePoint);
    this.updateRulePart('filter', 'blur', blur + 'px');
  }

  updateRulePart(ruleName, key, value) {
    if (!this.rulesVariables[ruleName]) {
      this.rulesVariables[ruleName] = {};
    }

    if (!this.rulesVariables[ruleName][key]) {
      this.rulesVariables[ruleName][key] = true;
      this.updateRule(ruleName);
    }

    const cssVarKey = `--${key}`;
    this.$element[0].style.setProperty(cssVarKey, value);
  }

  updateRule(ruleName) {
    let value = '';
    value += this.concatTransformCSSProperties(ruleName);
    value += this.concatTransformMotionEffectCSSProperties(ruleName);
    this.$element.css(ruleName, value);
  }

  concatTransformCSSProperties(ruleName) {
    let value = '';

    if ('transform' === ruleName) {
      jQuery.each(this.CSSTransformVariables, (index, variableKey) => {
        const variableName = variableKey;

        if (variableKey.startsWith('flip')) {
          variableKey = variableKey.replace('flip', 'scale');
        } // Adding default value because of the hover state. if there is no default the transform will break.


        const defaultUnit = variableKey.startsWith('rotate') || variableKey.startsWith('skew') ? 'deg' : 'px',
              defaultValue = variableKey.startsWith('scale') ? 1 : 0 + defaultUnit;
        value += `${variableKey}(var(--e-transform-${variableName}, ${defaultValue}))`;
      });
    }

    return value;
  }

  concatTransformMotionEffectCSSProperties(ruleName) {
    let value = '';
    jQuery.each(this.rulesVariables[ruleName], variableKey => {
      value += `${variableKey}(var(--${variableKey}))`;
    });
    return value;
  }

  runAction(actionName, actionData, passedPercents, ...args) {
    if (actionData.affectedRange) {
      if (actionData.affectedRange.start > passedPercents) {
        passedPercents = actionData.affectedRange.start;
      }

      if (actionData.affectedRange.end < passedPercents) {
        passedPercents = actionData.affectedRange.end;
      }
    }

    this[actionName](actionData, passedPercents, ...args);
  }

  refresh() {
    this.rulesVariables = {};
    this.CSSTransformVariables = [];
    this.$element.css({
      transform: '',
      filter: '',
      opacity: '',
      'will-change': ''
    });
  }

  onInit() {
    this.$element = this.getSettings('$targetElement');
    this.refresh();
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js":
/*!******************************************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));

class _default extends elementorModules.ViewModule {
  constructor(...args) {
    super(...args);
    (0, _defineProperty2.default)(this, "onInsideViewport", () => {
      this.run();
      this.animationFrameRequest = requestAnimationFrame(this.onInsideViewport);
    });
  }

  __construct(options) {
    this.motionFX = options.motionFX;

    if (!this.intersectionObservers) {
      this.setElementInViewportObserver();
    }
  }

  setElementInViewportObserver() {
    this.intersectionObserver = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (event.isInViewport) {
          this.onInsideViewport();
        } else {
          this.removeAnimationFrameRequest();
        }
      }
    });
    this.intersectionObserver.observe(this.motionFX.elements.$parent[0]);
  }

  runCallback(...args) {
    const callback = this.getSettings('callback');
    callback(...args);
  }

  removeIntersectionObserver() {
    if (this.intersectionObserver) {
      this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0]);
    }
  }

  removeAnimationFrameRequest() {
    if (this.animationFrameRequest) {
      cancelAnimationFrame(this.animationFrameRequest);
    }
  }

  destroy() {
    this.removeAnimationFrameRequest();
    this.removeIntersectionObserver();
  }

  onInit() {
    super.onInit();
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js":
/*!************************************************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));

class MouseMoveInteraction extends _base.default {
  bindEvents() {
    if (!MouseMoveInteraction.mouseTracked) {
      elementorFrontend.elements.$window.on('mousemove', MouseMoveInteraction.updateMousePosition);
      MouseMoveInteraction.mouseTracked = true;
    }
  }

  run() {
    const mousePosition = MouseMoveInteraction.mousePosition,
          oldMousePosition = this.oldMousePosition;

    if (oldMousePosition.x === mousePosition.x && oldMousePosition.y === mousePosition.y) {
      return;
    }

    this.oldMousePosition = {
      x: mousePosition.x,
      y: mousePosition.y
    };
    const passedPercentsX = 100 / innerWidth * mousePosition.x,
          passedPercentsY = 100 / innerHeight * mousePosition.y;
    this.runCallback(passedPercentsX, passedPercentsY);
  }

  onInit() {
    this.oldMousePosition = {};
    super.onInit();
  }

}

exports.default = MouseMoveInteraction;
MouseMoveInteraction.mousePosition = {};

MouseMoveInteraction.updateMousePosition = event => {
  MouseMoveInteraction.mousePosition = {
    x: event.clientX,
    y: event.clientY
  };
};

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js":
/*!********************************************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/base.js"));

class _default extends _base.default {
  run() {
    if (pageYOffset === this.windowScrollTop) {
      return false;
    }

    this.onScrollMovement();
    this.windowScrollTop = pageYOffset;
  }

  onScrollMovement() {
    this.updateMotionFxDimensions();
    this.updateAnimation();
    this.resetTransitionVariable();
  }

  resetTransitionVariable() {
    this.motionFX.$element.css('--e-transform-transition-duration', '100ms');
  }

  updateMotionFxDimensions() {
    const motionFXSettings = this.motionFX.getSettings();

    if (motionFXSettings.refreshDimensions) {
      this.motionFX.defineDimensions();
    }
  }

  updateAnimation() {
    let passedRangePercents;

    if ('page' === this.motionFX.getSettings('range')) {
      passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage();
    } else if (this.motionFX.getSettings('isFixedPosition')) {
      passedRangePercents = elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight);
    } else {
      passedRangePercents = elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent);
    }

    this.runCallback(passedRangePercents);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js":
/*!**********************************************************************!*\
  !*** ../modules/motion-fx/assets/js/frontend/motion-fx/motion-fx.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _scroll = _interopRequireDefault(__webpack_require__(/*! ./interactions/scroll */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/scroll.js"));

var _mouseMove = _interopRequireDefault(__webpack_require__(/*! ./interactions/mouse-move */ "../modules/motion-fx/assets/js/frontend/motion-fx/interactions/mouse-move.js"));

var _actions = _interopRequireDefault(__webpack_require__(/*! ./actions */ "../modules/motion-fx/assets/js/frontend/motion-fx/actions.js"));

class _default extends elementorModules.ViewModule {
  getDefaultSettings() {
    return {
      type: 'element',
      $element: null,
      $dimensionsElement: null,
      addBackgroundLayerTo: null,
      interactions: {},
      refreshDimensions: false,
      range: 'viewport',
      classes: {
        element: 'motion-fx-element',
        parent: 'motion-fx-parent',
        backgroundType: 'motion-fx-element-type-background',
        container: 'motion-fx-container',
        layer: 'motion-fx-layer',
        perspective: 'motion-fx-perspective'
      }
    };
  }

  bindEvents() {
    this.onWindowResize = this.onWindowResize.bind(this);
    elementorFrontend.elements.$window.on('resize', this.onWindowResize);
  }

  unbindEvents() {
    elementorFrontend.elements.$window.off('resize', this.onWindowResize);
  }

  addBackgroundLayer() {
    const settings = this.getSettings();
    this.elements.$motionFXContainer = jQuery('<div>', {
      class: settings.classes.container
    });
    this.elements.$motionFXLayer = jQuery('<div>', {
      class: settings.classes.layer
    });
    this.updateBackgroundLayerSize();
    this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);
    const $addBackgroundLayerTo = settings.addBackgroundLayerTo ? this.$element.find(settings.addBackgroundLayerTo) : this.$element;
    $addBackgroundLayerTo.prepend(this.elements.$motionFXContainer);
  }

  removeBackgroundLayer() {
    this.elements.$motionFXContainer.remove();
  }

  updateBackgroundLayerSize() {
    const settings = this.getSettings(),
          speed = {
      x: 0,
      y: 0
    },
          mouseInteraction = settings.interactions.mouseMove,
          scrollInteraction = settings.interactions.scroll;

    if (mouseInteraction && mouseInteraction.translateXY) {
      speed.x = mouseInteraction.translateXY.speed * 10;
      speed.y = mouseInteraction.translateXY.speed * 10;
    }

    if (scrollInteraction) {
      if (scrollInteraction.translateX) {
        speed.x = scrollInteraction.translateX.speed * 10;
      }

      if (scrollInteraction.translateY) {
        speed.y = scrollInteraction.translateY.speed * 10;
      }
    }

    this.elements.$motionFXLayer.css({
      width: 100 + speed.x + '%',
      height: 100 + speed.y + '%'
    });
  }

  defineDimensions() {
    const $dimensionsElement = this.getSettings('$dimensionsElement') || this.$element,
          elementOffset = $dimensionsElement.offset();
    const dimensions = {
      elementHeight: $dimensionsElement.outerHeight(),
      elementWidth: $dimensionsElement.outerWidth(),
      elementTop: elementOffset.top,
      elementLeft: elementOffset.left
    };
    dimensions.elementRange = dimensions.elementHeight + innerHeight;
    this.setSettings('dimensions', dimensions);

    if ('background' === this.getSettings('type')) {
      this.defineBackgroundLayerDimensions();
    }
  }

  defineBackgroundLayerDimensions() {
    const dimensions = this.getSettings('dimensions');
    dimensions.layerHeight = this.elements.$motionFXLayer.height();
    dimensions.layerWidth = this.elements.$motionFXLayer.width();
    dimensions.movableX = dimensions.layerWidth - dimensions.elementWidth;
    dimensions.movableY = dimensions.layerHeight - dimensions.elementHeight;
    this.setSettings('dimensions', dimensions);
  }

  initInteractionsTypes() {
    this.interactionsTypes = {
      scroll: _scroll.default,
      mouseMove: _mouseMove.default
    };
  }

  prepareSpecialActions() {
    const settings = this.getSettings(),
          hasTiltEffect = !!(settings.interactions.mouseMove && settings.interactions.mouseMove.tilt);
    this.elements.$parent.toggleClass(settings.classes.perspective, hasTiltEffect);
  }

  cleanSpecialActions() {
    const settings = this.getSettings();
    this.elements.$parent.removeClass(settings.classes.perspective);
  }

  runInteractions() {
    const settings = this.getSettings();
    this.actions.setCSSTransformVariables(settings.elementSettings);
    this.prepareSpecialActions();
    jQuery.each(settings.interactions, (interactionName, actions) => {
      this.interactions[interactionName] = new this.interactionsTypes[interactionName]({
        motionFX: this,
        callback: (...args) => {
          jQuery.each(actions, (actionName, actionData) => this.actions.runAction(actionName, actionData, ...args));
        }
      });
      this.interactions[interactionName].run();
    });
  }

  destroyInteractions() {
    this.cleanSpecialActions();
    jQuery.each(this.interactions, (interactionName, interaction) => interaction.destroy());
    this.interactions = {};
  }

  refresh() {
    this.actions.setSettings(this.getSettings());

    if ('background' === this.getSettings('type')) {
      this.updateBackgroundLayerSize();
      this.defineBackgroundLayerDimensions();
    }

    this.actions.refresh();
    this.destroyInteractions();
    this.runInteractions();
  }

  destroy() {
    this.destroyInteractions();
    this.actions.refresh();
    const settings = this.getSettings();
    this.$element.removeClass(settings.classes.element);
    this.elements.$parent.removeClass(settings.classes.parent);

    if ('background' === settings.type) {
      this.$element.removeClass(settings.classes.backgroundType);
      this.removeBackgroundLayer();
    }
  }

  onInit() {
    super.onInit();
    const settings = this.getSettings();
    this.$element = settings.$element;
    this.elements.$parent = this.$element.parent();
    this.$element.addClass(settings.classes.element);
    this.elements.$parent = this.$element.parent();
    this.elements.$parent.addClass(settings.classes.parent);

    if ('background' === settings.type) {
      this.$element.addClass(settings.classes.backgroundType);
      this.addBackgroundLayer();
    }

    this.defineDimensions();
    settings.$targetElement = 'element' === settings.type ? this.$element : this.elements.$motionFXLayer;
    this.interactions = {};
    this.actions = new _actions.default(settings);
    this.initInteractionsTypes();
    this.runInteractions();
  }

  onWindowResize() {
    this.defineDimensions();
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/payments/assets/js/frontend/frontend.js":
/*!**********************************************************!*\
  !*** ../modules/payments/assets/js/frontend/frontend.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('paypal-button', () => __webpack_require__.e(/*! import() | paypal-button */ "paypal-button").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/paypal-button */ "../modules/payments/assets/js/frontend/handlers/paypal-button.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/progress-tracker/assets/js/frontend/frontend.js":
/*!******************************************************************!*\
  !*** ../modules/progress-tracker/assets/js/frontend/frontend.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('progress-tracker', () => __webpack_require__.e(/*! import() | progress-tracker */ "progress-tracker").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/progress-tracker */ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/sticky/assets/js/frontend/frontend.js":
/*!********************************************************!*\
  !*** ../modules/sticky/assets/js/frontend/frontend.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _sticky = _interopRequireDefault(__webpack_require__(/*! ./handlers/sticky */ "../modules/sticky/assets/js/frontend/handlers/sticky.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('section', _sticky.default, null);
    elementorFrontend.elementsHandler.attachHandler('widget', _sticky.default, null);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/sticky/assets/js/frontend/handlers/sticky.js":
/*!***************************************************************!*\
  !*** ../modules/sticky/assets/js/frontend/handlers/sticky.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  bindEvents() {
    elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + 'sticky', 'resize', this.run);
  },

  unbindEvents() {
    elementorFrontend.removeListeners(this.getUniqueHandlerID() + 'sticky', 'resize', this.run);
  },

  isStickyInstanceActive() {
    return undefined !== this.$element.data('sticky');
  },

  /**
   * Get the current active setting value for a responsive control.
   *
   * @param {string} setting
   *
   * @return {any} - Setting value.
   */
  getResponsiveSetting(setting) {
    const elementSettings = this.getElementSettings();
    return elementorFrontend.getCurrentDeviceSetting(elementSettings, setting);
  },

  /**
   * Return an array of settings names for responsive control (e.g. `settings`, `setting_tablet`, `setting_mobile` ).
   *
   * @param {string} setting
   *
   * @return {string[]} - List of settings.
   */
  getResponsiveSettingList(setting) {
    const breakpoints = Object.keys(elementorFrontend.config.responsive.activeBreakpoints);
    return ['', ...breakpoints].map(suffix => {
      return suffix ? `${setting}_${suffix}` : setting;
    });
  },

  activate() {
    var elementSettings = this.getElementSettings(),
        stickyOptions = {
      to: elementSettings.sticky,
      offset: this.getResponsiveSetting('sticky_offset'),
      effectsOffset: this.getResponsiveSetting('sticky_effects_offset'),
      classes: {
        sticky: 'elementor-sticky',
        stickyActive: 'elementor-sticky--active elementor-section--handles-inside',
        stickyEffects: 'elementor-sticky--effects',
        spacer: 'elementor-sticky__spacer'
      }
    },
        $wpAdminBar = elementorFrontend.elements.$wpAdminBar;

    if (elementSettings.sticky_parent) {
      stickyOptions.parent = '.elementor-widget-wrap';
    }

    if ($wpAdminBar.length && 'top' === elementSettings.sticky && 'fixed' === $wpAdminBar.css('position')) {
      stickyOptions.offset += $wpAdminBar.height();
    }

    this.$element.sticky(stickyOptions);
  },

  deactivate() {
    if (!this.isStickyInstanceActive()) {
      return;
    }

    this.$element.sticky('destroy');
  },

  run(refresh) {
    if (!this.getElementSettings('sticky')) {
      this.deactivate();
      return;
    }

    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        activeDevices = this.getElementSettings('sticky_on');

    if (-1 !== activeDevices.indexOf(currentDeviceMode)) {
      if (true === refresh) {
        this.reactivate();
      } else if (!this.isStickyInstanceActive()) {
        this.activate();
      }
    } else {
      this.deactivate();
    }
  },

  reactivate() {
    this.deactivate();
    this.activate();
  },

  onElementChange(settingKey) {
    if (-1 !== ['sticky', 'sticky_on'].indexOf(settingKey)) {
      this.run(true);
    } // Settings that trigger a re-activation when changed.


    const settings = [...this.getResponsiveSettingList('sticky_offset'), ...this.getResponsiveSettingList('sticky_effects_offset'), 'sticky_parent'];

    if (-1 !== settings.indexOf(settingKey)) {
      this.reactivate();
    }
  },

  /**
   * Listen to device mode changes and re-initialize the sticky.
   *
   * @return {void}
   */
  onDeviceModeChange() {
    // Wait for the call stack to be empty.
    // The `run` function requests the current device mode from the CSS so it's not ready immediately.
    // (need to wait for the `deviceMode` event to change the CSS).
    // See `elementorFrontend.getCurrentDeviceMode()` for reference.
    setTimeout(() => {
      this.run(true);
    });
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);

    if (elementorFrontend.isEditMode()) {
      elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange());
    }

    this.run();
  },

  onDestroy() {
    elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments);
    this.deactivate();
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/video-playlist/assets/js/frontend/frontend.js":
/*!****************************************************************!*\
  !*** ../modules/video-playlist/assets/js/frontend/frontend.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.hooks.addAction('frontend/element_ready/video-playlist.default', $element => {
      __webpack_require__.e(/*! import() | video-playlist */ "video-playlist").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/video-playlist/assets/js/frontend/handler.js")).then(({
        default: dynamicHandler
      }) => {
        elementorFrontend.elementsHandler.addHandler(dynamicHandler, {
          $element,
          toggleSelf: false
        });
      });
    });
  }

}

exports.default = _default;

/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ "use strict";
/******/ 
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ var __webpack_exports__ = (__webpack_exec__("../assets/dev/js/frontend/frontend.js"));
/******/ }
]);
//# sourceMappingURL=frontend.js.mapPK!I�?��:assets/js/share-buttons.42abb737a0de191a4ee9.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[58],{9327:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({async onInit(){if(!this.isActive())return;elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments);const e=this.getElementSettings(),t=this.getSettings("classes"),s=e.share_url&&e.share_url.url,n={classPrefix:t.shareLinkPrefix};s?n.url=e.share_url.url:(n.url=location.href,n.title=elementorFrontend.config.post.title,n.text=elementorFrontend.config.post.excerpt,n.image=elementorFrontend.config.post.featuredImage),!window.ShareLink&&elementorFrontend.utils.assetsLoader&&await elementorFrontend.utils.assetsLoader.load("script","share-link"),this.elements.$shareButton.shareLink&&this.elements.$shareButton.shareLink(n)},getDefaultSettings:()=>({selectors:{shareButton:".elementor-share-btn"},classes:{shareLinkPrefix:"elementor-share-btn_"}}),getDefaultElements(){var e=this.getSettings("selectors");return{$shareButton:this.$element.find(e.shareButton)}},isActive:()=>!elementorFrontend.isEditMode()});t.default=s}}]);PK!��h.(.(?assets/js/woocommerce-my-account.d52e81c74f27be09eb2e.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-my-account"],{

/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Base extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        stickyRightColumn: '.e-sticky-right-column'
      },
      classes: {
        stickyRightColumnActive: 'e-sticky-right-column--active'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
    };
  }

  bindEvents() {
    // Add our wrapper class around the select2 whenever it is opened.
    elementorFrontend.elements.$document.on('select2:open', event => {
      this.addSelect2Wrapper(event);
    });
  }

  addSelect2Wrapper(event) {
    // The select element is recaptured every time because the markup can refresh
    const selectElement = jQuery(event.target).data('select2');

    if (selectElement.$dropdown) {
      selectElement.$dropdown.addClass('e-woo-select2-wrapper');
    }
  }

  isStickyRightColumnActive() {
    const classes = this.getSettings('classes');
    return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
  }

  activateStickyRightColumn() {
    const elementSettings = this.getElementSettings(),
          $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
          classes = this.getSettings('classes');
    let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;

    if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
      stickyOptionsOffset += $wpAdminBar.height();
    }

    if ('yes' === this.getElementSettings('sticky_right_column')) {
      this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
      this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
    }
  }

  deactivateStickyRightColumn() {
    if (!this.isStickyRightColumnActive()) {
      return;
    }

    const classes = this.getSettings('classes');
    this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
  }
  /**
   * Activates the sticky column
   *
   * @return {void}
   */


  toggleStickyRightColumn() {
    if (!this.getElementSettings('sticky_right_column')) {
      this.deactivateStickyRightColumn();
      return;
    }

    if (!this.isStickyRightColumnActive()) {
      this.activateStickyRightColumn();
    }
  }

  equalizeElementHeight($element) {
    if ($element.length) {
      $element.removeAttr('style'); // first remove the custom height we added so that the new height can be re-calculated according to the content

      let maxHeight = 0;
      $element.each((index, element) => {
        maxHeight = Math.max(maxHeight, element.offsetHeight);
      });

      if (0 < maxHeight) {
        $element.css({
          height: maxHeight + 'px'
        });
      }
    }
  }

}

exports.default = Base;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js":
/*!************************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/my-account.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class MyAccountHandler extends _base.default {
  getDefaultSettings() {
    return {
      selectors: {
        address: 'address',
        tabLinks: '.woocommerce-MyAccount-navigation-link a',
        viewOrderButtons: '.my_account_orders .woocommerce-button.view',
        viewOrderLinks: '.woocommerce-orders-table__cell-order-number a',
        authForms: 'form.login, form.register',
        tabWrapper: '.e-my-account-tab',
        tabItem: '.woocommerce-MyAccount-navigation li',
        allPageElements: '[e-my-account-page]',
        purchasenote: 'tr.product-purchase-note'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $address: this.$element.find(selectors.address),
      $tabLinks: this.$element.find(selectors.tabLinks),
      $viewOrderButtons: this.$element.find(selectors.viewOrderButtons),
      $viewOrderLinks: this.$element.find(selectors.viewOrderLinks),
      $authForms: this.$element.find(selectors.authForms),
      $tabWrapper: this.$element.find(selectors.tabWrapper),
      $tabItem: this.$element.find(selectors.tabItem),
      $allPageElements: this.$element.find(selectors.allPageElements),
      $purchasenote: this.$element.find(selectors.purchasenote)
    };
  }

  editorInitTabs() {
    this.elements.$allPageElements.each((index, element) => {
      const currentPage = element.getAttribute('e-my-account-page');
      let $linksToThisPage;

      switch (currentPage) {
        case 'view-order':
          $linksToThisPage = this.elements.$viewOrderLinks.add(this.elements.$viewOrderButtons);
          break;

        default:
          $linksToThisPage = this.$element.find('.woocommerce-MyAccount-navigation-link--' + currentPage);
      }

      $linksToThisPage.on('click', () => {
        this.currentPage = currentPage;
        this.editorShowTab();
      });
    });
  }

  editorShowTab() {
    const $currentPage = this.$element.find('[e-my-account-page="' + this.currentPage + '"]');
    this.$element.attr('e-my-account-page', this.currentPage);
    this.elements.$allPageElements.hide();
    $currentPage.show();
    this.toggleEndpointClasses();

    if ('view-order' !== this.currentPage) {
      this.elements.$tabItem.removeClass('is-active');
      this.$element.find('.woocommerce-MyAccount-navigation-link--' + this.currentPage).addClass('is-active');
    }
    /**
     * We need to run equalizeElementHeights() again when the 'edit-address' or 'view-order' tab is shown, because jQuery cannot
     * get the height of hidden elements, and this tab was hidden on initial page load in the editor.
     */


    if ('edit-address' === this.currentPage || 'view-order' === this.currentPage) {
      this.equalizeElementHeights();
    }
  }

  toggleEndpointClasses() {
    const wcPages = ['dashboard', 'orders', 'view-order', 'downloads', 'edit-account', 'edit-address', 'payment-methods'];
    this.elements.$tabWrapper.removeClass('e-my-account-tab__' + wcPages.join(' e-my-account-tab__'));

    if (wcPages.includes(this.currentPage)) {
      this.elements.$tabWrapper.addClass('e-my-account-tab__' + this.currentPage);
    }
  }

  applyButtonsHoverAnimation() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.forms_buttons_hover_animation) {
      this.$element.find('.woocommerce button.button').addClass('elementor-animation-' + elementSettings.forms_buttons_hover_animation);
    }

    if (elementSettings.tables_button_hover_animation) {
      this.$element.find('.order-again .button, td .button, .woocommerce-pagination .button').addClass('elementor-animation-' + elementSettings.tables_button_hover_animation);
    }
  }

  equalizeElementHeights() {
    this.equalizeElementHeight(this.elements.$address); // equalize <address> boxes height

    if (!this.isEdit) {
      // Auth forms do not display in the Editor
      this.equalizeElementHeight(this.elements.$authForms); // equalize login/reg boxes height
    }
  }
  /**
   * WooCommerce prints the Purchase Note separated from the product name by a border and padding.
   * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated.
   * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust
   * its padding. Since this cannot be achieved in CSS, it is done in this method.
   */


  removePaddingBetweenPurchaseNote() {
    if (this.elements.$purchasenote) {
      this.elements.$purchasenote.each((index, element) => {
        jQuery(element).prev().children('td').addClass('product-purchase-note-is-below');
      });
    }
  }

  onElementChange(propertyName) {
    // When the 'General Text' Typography or 'Section' Padding is changed, the height of the boxes need to update as well.
    if (0 === propertyName.indexOf('general_text_typography') || 0 === propertyName.indexOf('sections_padding')) {
      this.equalizeElementHeights();
    }

    if (0 === propertyName.indexOf('forms_rows_gap')) {
      this.removePaddingBetweenPurchaseNote();
    }
  }

  bindEvents() {
    super.bindEvents(); // The heights of the Registration and Login boxes need to be recaclulated and equalized when
    // WooCommerce adds validation messages (such as the password strength meter) into these sections.

    elementorFrontend.elements.$body.on('keyup change', '.register #reg_password', () => {
      this.equalizeElementHeights();
    });
  }

  onInit(...args) {
    super.onInit(...args);

    if (this.isEdit) {
      this.editorInitTabs();

      if (!this.$element.attr('e-my-account-page')) {
        this.currentPage = 'dashboard';
      } else {
        this.currentPage = this.$element.attr('e-my-account-page');
      }

      this.editorShowTab();
    }

    this.applyButtonsHoverAnimation();
    this.equalizeElementHeights();
    this.removePaddingBetweenPurchaseNote();
  }

}

exports.default = MyAccountHandler;

/***/ })

}]);
//# sourceMappingURL=woocommerce-my-account.d52e81c74f27be09eb2e.bundle.js.mapPK!��5~�"�"assets/js/editor.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var e={75453:(e,t,n)=>{e.exports=n(7421)},59396:(e,t,n)=>{e.exports=n(70157)},32009:(e,t,n)=>{e.exports=n(89710)},15149:(e,t,n)=>{e.exports=n(66458)},38401:(e,t,n)=>{e.exports=n(14710)},67394:(e,t,n)=>{e.exports=n(43153)},38923:(e,t,n)=>{e.exports=n(8531)},23587:(e,t,n)=>{e.exports=n(32622)},82055:(e,t,n)=>{e.exports=n(58535)},83452:(e,t,n)=>{e.exports=n(97220)},28274:(e,t,n)=>{e.exports=n(65135)},35657:(e,t,n)=>{e.exports=n(69591)},14176:(e,t,n)=>{e.exports=n(34345)},73220:(e,t,n)=>{e.exports=n(76483)},75499:(e,t,n)=>{e.exports=n(43094)},78282:(e,t,n)=>{e.exports=n(17641)},41281:(e,t,n)=>{e.exports=n(19103)},50093:(e,t,n)=>{e.exports=n(39871)},93168:(e,t,n)=>{e.exports=n(89999)},72292:e=>{e.exports=function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o},e.exports.default=e.exports,e.exports.__esModule=!0},86870:(e,t,n)=>{var o=n(59396);e.exports=function _arrayWithHoles(e){if(o(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},35693:(e,t,n)=>{var o=n(59396),r=n(72292);e.exports=function _arrayWithoutHoles(e){if(o(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},38852:e=>{e.exports=function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},49117:(e,t,n)=>{var o=n(73220);function asyncGeneratorStep(e,t,n,r,i,a,l){try{var u=e[a](l),s=u.value}catch(e){return void n(e)}u.done?t(s):o.resolve(s).then(r,i)}e.exports=function _asyncToGenerator(e){return function(){var t=this,n=arguments;return new o((function(o,r){var i=e.apply(t,n);function _next(e){asyncGeneratorStep(i,o,r,_next,_throw,"next",e)}function _throw(e){asyncGeneratorStep(i,o,r,_next,_throw,"throw",e)}_next(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},11959:e=>{e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},39041:(e,t,n)=>{var o=n(67394);function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),o(e,r.key,r)}}e.exports=function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e},e.exports.default=e.exports,e.exports.__esModule=!0},68537:(e,t,n)=>{var o=n(75499),r=n(44263),i=n(898),a=n(59771);e.exports=function _createSuper(e){var t=i();return function _createSuperInternal(){var n,i=r(e);if(t){var l=r(this).constructor;n=o(i,arguments,l)}else n=i.apply(this,arguments);return a(this,n)}},e.exports.default=e.exports,e.exports.__esModule=!0},18042:(e,t,n)=>{var o=n(67394);e.exports=function _defineProperty(e,t,n){return t in e?o(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},76700:(e,t,n)=>{var o=n(78282),r=n(23587),i=n(49445);function _get(t,n,a){return"undefined"!=typeof Reflect&&o?(e.exports=_get=o,e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_get=function _get(e,t,n){var o=i(e,t);if(o){var a=r(o,t);return a.get?a.get.call(n):a.value}},e.exports.default=e.exports,e.exports.__esModule=!0),_get(t,n,a||t)}e.exports=_get,e.exports.default=e.exports,e.exports.__esModule=!0},44263:(e,t,n)=>{var o=n(28274),r=n(82055);function _getPrototypeOf(t){return e.exports=_getPrototypeOf=o?r:function _getPrototypeOf(e){return e.__proto__||r(e)},e.exports.default=e.exports,e.exports.__esModule=!0,_getPrototypeOf(t)}e.exports=_getPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},77371:(e,t,n)=>{var o=n(38401),r=n(76870);e.exports=function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=o(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},67971:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},52369:(e,t,n)=>{var o=n(24596).default,r=n(93168),i=n(67394),a=n(23587);function _getRequireWildcardCache(e){if("function"!=typeof r)return null;var t=new r,n=new r;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?n:t})(e)}e.exports=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=_getRequireWildcardCache(t);if(n&&n.has(e))return n.get(e);var r={},l=i&&a;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var s=l?a(e,u):null;s&&(s.get||s.set)?i(r,u,s):r[u]=e[u]}return r.default=e,n&&n.set(e,r),r},e.exports.default=e.exports,e.exports.__esModule=!0},898:(e,t,n)=>{var o=n(75499);e.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!o)return!1;if(o.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(o(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},95915:(e,t,n)=>{var o=n(41281),r=n(50093),i=n(75453);e.exports=function _iterableToArray(e){if(void 0!==o&&null!=e[r]||null!=e["@@iterator"])return i(e)},e.exports.default=e.exports,e.exports.__esModule=!0},79968:(e,t,n)=>{var o=n(41281),r=n(50093);e.exports=function _iterableToArrayLimit(e,t){var n=e&&(void 0!==o&&e[r]||e["@@iterator"]);if(null!=n){var i,a,l=[],u=!0,s=!1;try{for(n=n.call(e);!(u=(i=n.next()).done)&&(l.push(i.value),!t||l.length!==t);u=!0);}catch(e){s=!0,a=e}finally{try{u||null==n.return||n.return()}finally{if(s)throw a}}return l}},e.exports.default=e.exports,e.exports.__esModule=!0},39198:e=>{e.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},84360:e=>{e.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},59771:(e,t,n)=>{var o=n(24596).default,r=n(38852);e.exports=function _possibleConstructorReturn(e,t){return!t||"object"!==o(t)&&"function"!=typeof t?r(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},76870:(e,t,n)=>{var o=n(28274);function _setPrototypeOf(t,n){return e.exports=_setPrototypeOf=o||function _setPrototypeOf(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,_setPrototypeOf(t,n)}e.exports=_setPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},47834:(e,t,n)=>{var o=n(86870),r=n(79968),i=n(24594),a=n(39198);e.exports=function _slicedToArray(e,t){return o(e)||r(e,t)||i(e,t)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},49445:(e,t,n)=>{var o=n(44263);e.exports=function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=o(e)););return e},e.exports.default=e.exports,e.exports.__esModule=!0},74846:(e,t,n)=>{var o=n(35693),r=n(95915),i=n(24594),a=n(84360);e.exports=function _toConsumableArray(e){return o(e)||r(e)||i(e)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},24596:(e,t,n)=>{var o=n(41281),r=n(50093);function _typeof(t){return"function"==typeof o&&"symbol"==typeof r?(e.exports=_typeof=function _typeof(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_typeof=function _typeof(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),_typeof(t)}e.exports=_typeof,e.exports.default=e.exports,e.exports.__esModule=!0},24594:(e,t,n)=>{var o=n(75453),r=n(72292);e.exports=function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?o(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},57135:(e,t,n)=>{e.exports=n(86248)},88331:(e,t,n)=>{"use strict";n(71954),e.exports=elementorModules.editor.utils.Module.extend({elementType:null,__construct:function __construct(e){this.elementType=e,this.addEditorListener()},addEditorListener:function addEditorListener(){var e=this;if(e.onElementChange){var t="change";"global"!==e.elementType&&(t+=":"+e.elementType),elementor.channels.editor.on(t,(function(t,n){e.onElementChange(t.model.get("name"),t,n)}))}},addControlSpinner:function addControlSpinner(e){var t=this.getEditorControlView(e).$el,n=t.find(":input");t.find(".elementor-control-spinner").length||(n.attr("disabled",!0),t.find(".elementor-control-title").after('<span class="elementor-control-spinner"><i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>'))},removeControlSpinner:function removeControlSpinner(e){var t=this.getEditorControlView(e).$el;t.find(":input").attr("disabled",!1),t.find(".elementor-control-spinner").remove()},addControlError:function addControlError(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".elementor-control-content",o=this.getEditorControlView(e).$el;o.find(".e-control-error").length&&o.find(".e-control-error").remove(),o.find(n).first().after('<span class="elementor-control-field-description e-control-error">'.concat(t,"</span>"))},removeControlError:function removeControlError(e){this.getEditorControlView(e).$el.find(".e-control-error").remove()},resetControlIndicators:function resetControlIndicators(e){this.removeControlSpinner(e),this.removeControlError(e)},addSectionListener:function addSectionListener(e,t){var n=this;elementor.channels.editor.on("section:activated",(function(o,r){var i=r.getOption("editedElementView").getEditModel(),a=i.get("elType"),l=arguments;"widget"===a&&(a=i.get("widgetType")),n.elementType===a&&e===o&&setTimeout((function(){t.apply(n,l)}),10)}))}})},16683:(e,t,n)=>{"use strict";n(76139),n(12897),n(93085),e.exports=elementorModules.editor.views.ControlsStack.extend({activeTab:"content",activeSection:"settings",initialize:function initialize(){this.collection=new Backbone.Collection(_.values(this.options.controls))},filter:function filter(e){if("section"===e.get("type"))return!0;var t=e.get("section");return!t||t===this.activeSection},childViewOptions:function childViewOptions(){return{elementSettingsModel:this.model}}})},79924:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ConditionsConfig=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(18042)),d=function(e){(0,l.default)(ConditionsConfig,e);var t=(0,u.default)(ConditionsConfig);function ConditionsConfig(){return(0,i.default)(this,ConditionsConfig),t.apply(this,arguments)}return(0,a.default)(ConditionsConfig,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/conditions-config/{id}"}}]),ConditionsConfig}($e.modules.CommandData);t.ConditionsConfig=d,(0,s.default)(d,"signature","site-editor/conditions-config");var c=d;t.default=c},2410:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"Templates",{enumerable:!0,get:function get(){return r.Templates}}),o(t,"ConditionsConfig",{enumerable:!0,get:function get(){return i.ConditionsConfig}}),o(t,"TemplatesConditions",{enumerable:!0,get:function get(){return a.TemplatesConditions}}),o(t,"TemplatesConditionsConflicts",{enumerable:!0,get:function get(){return l.TemplatesConditionsConflicts}});var r=n(49672),i=n(79924),a=n(19743),l=n(52924)},52924:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.TemplatesConditionsConflicts=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(18042)),d=function(e){(0,l.default)(TemplatesConditionsConflicts,e);var t=(0,u.default)(TemplatesConditionsConflicts);function TemplatesConditionsConflicts(){return(0,i.default)(this,TemplatesConditionsConflicts),t.apply(this,arguments)}return(0,a.default)(TemplatesConditionsConflicts,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"".concat(TemplatesConditionsConflicts.signature,"/{id}")}}]),TemplatesConditionsConflicts}($e.modules.CommandData);t.TemplatesConditionsConflicts=d,(0,s.default)(d,"signature","site-editor/templates-conditions-conflicts");var c=d;t.default=c},19743:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.TemplatesConditions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(18042)),d=function(e){(0,l.default)(TemplatesConditions,e);var t=(0,u.default)(TemplatesConditions);function TemplatesConditions(){return(0,i.default)(this,TemplatesConditions),t.apply(this,arguments)}return(0,a.default)(TemplatesConditions,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates-conditions/{id}"}}]),TemplatesConditions}($e.modules.CommandData);t.TemplatesConditions=d,(0,s.default)(d,"signature","site-editor/templates-conditions");var c=d;t.default=c},49672:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.Templates=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(18042)),d=function(e){(0,l.default)(Templates,e);var t=(0,u.default)(Templates);function Templates(){return(0,i.default)(this,Templates),t.apply(this,arguments)}return(0,a.default)(Templates,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates/{id}"}}]),Templates}($e.modules.CommandData);t.Templates=d,(0,s.default)(d,"signature","site-editor/templates");var c=d;t.default=c},88704:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=i(n(18042)),c=r(n(2410)),p=function(e){(0,u.default)(Component,e);var t=(0,s.default)(Component);function Component(){return(0,a.default)(this,Component),t.apply(this,arguments)}return(0,l.default)(Component,[{key:"getNamespace",value:function getNamespace(){return this.constructor.namespace}},{key:"defaultData",value:function defaultData(){return this.importCommands(c)}}]),Component}($e.modules.ComponentBase);t.default=p,(0,d.default)(p,"namespace","site-editor")},12946:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(88704)),d=n(2410),c=function(e){(0,l.default)(Module,e);var t=(0,u.default)(Module);function Module(){return(0,i.default)(this,Module),t.apply(this,arguments)}return(0,a.default)(Module,[{key:"onElementorInit",value:function onElementorInit(){elementor.documents.getCurrent().config.support_site_editor&&($e.components.register(new s.default),$e.data.deleteCache($e.components.get(s.default.namespace),d.Templates.signature))}}]),Module}(elementorModules.editor.utils.Module);t.default=c},65726:(e,t,n)=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({onElementorInit:function onElementorInit(){var e=n(39427);this.assets={font:new e}}})},39427:(e,t,n)=>{"use strict";n(71954),e.exports=elementorModules.Module.extend({_enqueuedFonts:[],_enqueuedTypekit:!1,onFontChange:function onFontChange(e,t){"custom"!==e&&"typekit"!==e||-1===this._enqueuedFonts.indexOf(t)&&("typekit"===e&&this._enqueuedTypekit||this.getCustomFont(e,t))},getCustomFont:function getCustomFont(e,t){elementorPro.ajax.addRequest("assets_manager_panel_action_data",{unique_id:"font_"+e+t,data:{service:"font",type:e,font:t},success:function success(e){e.font_face&&elementor.$previewContents.find("style").last().after('<style type="text/css">'+e.font_face+"</style>"),e.font_url&&elementor.$previewContents.find("link").last().after('<link href="'+e.font_url+'" rel="stylesheet" type="text/css">')}}),this._enqueuedFonts.push(t),"typekit"===e&&(this._enqueuedTypekit=!0)},onInit:function onInit(){elementor.channels.editor.on("font:insertion",this.onFontChange.bind(this))}})},33130:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0,n(84208);var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(_default,e);var t=(0,u.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,a.default)(_default,[{key:"addCustomCss",value:function addCustomCss(e,t){if(t){var n=t.model,o=n.get("settings").get("custom_css"),r=".elementor-element.elementor-element-"+n.get("id");return"document"===n.get("elType")&&(r=elementor.config.document.settings.cssWrapperSelector),o&&(e+=o.replace(/selector/g,r)),e}}},{key:"onElementorInit",value:function onElementorInit(){elementor.hooks.addFilter("editor/style/styleText",this.addCustomCss),elementor.on("navigator:init",this.onNavigatorInit.bind(this))}},{key:"onNavigatorInit",value:function onNavigatorInit(){elementor.navigator.indicators.customCSS={icon:"code-bold",settingKeys:["custom_css"],title:elementorPro.translate("custom_css"),section:"section_custom_css"}}}]),_default}(elementorModules.editor.utils.Module);t.default=s},7600:(e,t,n)=>{"use strict";n(71954),e.exports=elementorModules.editor.utils.Module.extend({onElementorInit:function onElementorInit(){elementor.channels.editor.on("section:activated",this.onSectionActivated)},onSectionActivated:function onSectionActivated(e,t){var n=t.getOption("editedElementView");if("flip-box"===n.model.get("widgetType")){var o=-1!==["section_side_b_content","section_style_b"].indexOf(e);n.$el.toggleClass("elementor-flip-box--flipped",o);var r=n.$el.find(".elementor-flip-box__back");o&&r.css("transition","none"),o||setTimeout((function(){r.css("transition","")}),10)}}})},51828:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=r(n(97820)),c=function(e){(0,u.default)(Component,e);var t=(0,s.default)(Component);function Component(){return(0,a.default)(this,Component),t.apply(this,arguments)}return(0,l.default)(Component,[{key:"getNamespace",value:function getNamespace(){return"forms"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(d)}}]),Component}($e.modules.ComponentBase);t.default=c},51096:(e,t,n)=>{"use strict";n(71954),e.exports=elementor.modules.controls.Repeater.extend({onBeforeRender:function onBeforeRender(){this.$el.hide()},updateMap:function updateMap(e){var t=this,n={};t.collection.each((function(e){n[e.get("remote_id")]=e.get("local_id")})),t.collection.reset(),_.each(e,(function(e){var o={remote_id:e.remote_id,remote_label:e.remote_label,remote_type:e.remote_type?e.remote_type:"",remote_required:!!e.remote_required&&e.remote_required,local_id:n[e.remote_id]?n[e.remote_id]:""};t.collection.add(o)})),t.render()},onRender:function onRender(){elementor.modules.controls.Base.prototype.onRender.apply(this,arguments);var e=this;e.children.each((function(t){var n=t.children.last(),o={"":"- "+elementor.translate("None")+" -"},r=t.model.get("remote_label");t.model.get("remote_required")&&(r+='<span class="elementor-required">*</span>'),_.each(e.elementSettingsModel.get("form_fields").models,(function(e,n){var r=t.model.get("remote_type");"text"!==r&&r!==e.get("field_type")||(o[e.get("custom_id")]=e.get("field_label")||"Field #"+(n+1))})),n.model.set("label",r),n.model.set("options",o),n.render(),t.$el.find(".elementor-repeater-row-tools").hide(),t.$el.find(".elementor-repeater-row-controls").removeClass("elementor-repeater-row-controls").find(".elementor-control").css({paddingBottom:0})})),e.$el.find(".elementor-button-wrapper").remove(),e.children.length&&e.$el.show()}})},17455:(e,t,n)=>{"use strict";var o=n(67971),r=o(n(11959)),i=o(n(39041)),a=o(n(76700)),l=o(n(44263)),u=o(n(77371)),s=o(n(68537)),d=o(n(65876));e.exports=function(e){(0,u.default)(_class,e);var t=(0,s.default)(_class);function _class(){return(0,r.default)(this,_class),t.apply(this,arguments)}return(0,i.default)(_class,[{key:"className",value:function className(){var e=(0,a.default)((0,l.default)(_class.prototype),"className",this).call(this);return e+=" elementor-control-type-repeater"}},{key:"getChildView",value:function getChildView(){return d.default}},{key:"initialize",value:function initialize(){for(var e,t=this,n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];(e=(0,a.default)((0,l.default)(_class.prototype),"initialize",this)).call.apply(e,[this].concat(o));var i=this.container.settings.get("form_fields");this.listenTo(i,"change",(function(e){return t.onFormFieldChange(e)})).listenTo(i,"remove",(function(e){return t.onFormFieldRemove(e)}))}},{key:"getFirstChild",value:function getFirstChild(){return this.children.findByModel(this.collection.models[0])}},{key:"lockFirstStep",value:function lockFirstStep(){var e=this.getFirstChild();"step"===e.model.get("field_type")&&(1<this.collection.where({field_type:"step"}).length&&(e.toggleFieldTypeControl(!1),e.toggleTools(!1)),e.toggleSort(!1))}},{key:"onFormFieldChange",value:function onFormFieldChange(e){var t=e.changed.field_type;if(t&&("step"===t||"step"===e._previousAttributes.field_type)){var n="step"===t;this.children.findByModel(e).toggleStepField(n),this.onStepFieldChanged(n)}}},{key:"onFormFieldRemove",value:function onFormFieldRemove(e){"step"===e.get("field_type")&&this.onStepFieldChanged(!1)}},{key:"onStepFieldChanged",value:function onStepFieldChanged(e){if(e)this.lockFirstStep();else{var t=this.collection.where({field_type:"step"});if(!(t.length>1)){var n=this.getFirstChild();if(1===t.length)return n.toggleTools(!0),void n.toggleFieldTypeControl(!0);n.toggleSort(!0)}}}},{key:"onAddChild",value:function onAddChild(e){(0,a.default)((0,l.default)(_class.prototype),"onAddChild",this).call(this,e),"step"===e.model.get("field_type")&&(this.lockFirstStep(),e.toggleStepField(!0))}}]),_class}(elementor.modules.controls.Repeater)},65876:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(_default,e);var t=(0,u.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,a.default)(_default,[{key:"toggleFieldTypeControl",value:function toggleFieldTypeControl(e){var t=this.collection.findWhere({name:"field_type"});this.children.findByModel(t).$el.toggle(e)}},{key:"toggleStepField",value:function toggleStepField(e){this.$el.toggleClass("elementor-repeater-row--form-step",e)}},{key:"toggleTools",value:function toggleTools(e){this.ui.removeButton.add(this.ui.duplicateButton).toggle(e)}}]),_default}(elementor.modules.controls.RepeaterRow);t.default=s},99960:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({renderField:function renderField(e,t,n,o){var r=_.escape(t.css_classes),i="",a="",l="";return t.required&&(i="required"),t.acceptance_text&&(a='<label for="form_field_'+n+'">'+t.acceptance_text+"</label>"),t.checked_by_default&&(l=' checked="checked"'),'<div class="elementor-field-subgroup"><span class="elementor-field-option"><input size="1" type="checkbox"'+l+' class="elementor-acceptance-field elementor-field elementor-size-'+o.input_size+" "+r+'" name="form_field_'+n+'" id="form_field_'+n+'" '+i+" > "+a+"</span></div>"},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/field/acceptance",this.renderField,10,4)}})},82787:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({renderField:function renderField(e,t,n,o){var r=_.escape(t.css_classes),i="",a="",l="",u="";return t.required&&(i="required"),t.min_date&&(a=' min="'+t.min_date+'"'),t.max_date&&(l=' max="'+t.max_date+'"'),t.placeholder&&(u=' placeholder="'+t.placeholder+'"'),"yes"===t.use_native_date&&(r+=" elementor-use-native"),'<input size="1"'+a+l+u+' pattern="[0-9]{4}-[0-9]{2}-[0-9]{2}" type="date" class="elementor-field-textual elementor-date-field elementor-field elementor-size-'+o.input_size+" "+r+'" name="form_field_'+n+'" id="form_field_'+n+'" '+i+" >"},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/field/date",this.renderField,10,4)}})},33726:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({renderField:function renderField(e,t,n,o){var r=_.escape(t.css_classes),i="",a="";return t.required&&(i="required"),t.placeholder&&(a=' placeholder="'+t.placeholder+'"'),r="elementor-field-textual "+r,'<input size="1" type="'+t.field_type+'" class="elementor-field-textual elementor-field elementor-size-'+o.input_size+" "+r+'" name="form_field_'+n+'" id="form_field_'+n+'" '+i+" "+a+' pattern="[0-9()-]" >'},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/field/tel",this.renderField,10,4)}})},29706:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({renderField:function renderField(e,t,n,o){var r=_.escape(t.css_classes),i="",a="";return t.required&&(i="required"),t.placeholder&&(a=' placeholder="'+t.placeholder+'"'),"yes"===t.use_native_time&&(r+=" elementor-use-native"),'<input size="1" type="time"'+a+' class="elementor-field-textual elementor-time-field elementor-field elementor-size-'+o.input_size+" "+r+'" name="form_field_'+n+'" id="form_field_'+n+'" '+i+" >"},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/field/time",this.renderField,10,4)}})},43666:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({renderField:function renderField(e,t,n,o){var r=_.escape(t.css_classes),i="",a="",l="form_field_";return t.required&&(i="required"),t.allow_multiple_upload&&(a=' multiple="multiple"',l+="[]"),'<input size="1"  type="file" class="elementor-file-field elementor-field elementor-size-'+o.input_size+" "+r+'" name="'+l+'" id="form_field_'+n+'" '+i+a+" >"},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/field/upload",this.renderField,10,4)}})},6366:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FormFieldsSanitizeCustomId=void 0,n(64828),n(71954);var i=r(n(11959)),a=r(n(39041)),l=r(n(38852)),u=r(n(77371)),s=r(n(68537)),d=r(n(18042)),c=function(e){(0,u.default)(FormFieldsSanitizeCustomId,e);var t=(0,s.default)(FormFieldsSanitizeCustomId);function FormFieldsSanitizeCustomId(){var e;(0,i.default)(this,FormFieldsSanitizeCustomId);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return e=t.call.apply(t,[this].concat(o)),(0,d.default)((0,l.default)(e),"ID_SANITIZE_FILTER",/[^\w]/g),e}return(0,a.default)(FormFieldsSanitizeCustomId,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-forms-fields-sanitize-custom-id"}},{key:"getContainerType",value:function getContainerType(){return"repeater"}},{key:"getConditions",value:function getConditions(e){return void 0!==e.settings.custom_id}},{key:"apply",value:function apply(e){var t=e.containers,n=void 0===t?[e.container]:t;return!e.settings.custom_id.match(this.ID_SANITIZE_FILTER)||(n.forEach((function(e){var t=e.panel.getControlView("form_fields").children.findByModel(e.settings).children.find((function(e){return"custom_id"===e.model.get("name")}));t.render(),t.$el.find("input").trigger("focus")})),!1)}}]),FormFieldsSanitizeCustomId}($e.modules.hookData.Dependency);t.FormFieldsSanitizeCustomId=c;var p=c;t.default=p},73610:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FormFieldsSetCustomId=void 0,n(99745),n(71954);var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(FormFieldsSetCustomId,e);var t=(0,u.default)(FormFieldsSetCustomId);function FormFieldsSetCustomId(){return(0,i.default)(this,FormFieldsSetCustomId),t.apply(this,arguments)}return(0,a.default)(FormFieldsSetCustomId,[{key:"getCommand",value:function getCommand(){return"document/repeater/insert"}},{key:"getId",value:function getId(){return"elementor-pro-forms-fields-set-custom-id"}},{key:"getContainerType",value:function getContainerType(){return"widget"}},{key:"getConditions",value:function getConditions(e){return"form_fields"===e.name}},{key:"apply",value:function apply(e,t){var n=e.containers,o=void 0===n?[e.container]:n,r=$e.commands.isCurrentFirstTrace("document/repeater/duplicate");return o.forEach((function(e){var n=e.repeaters.form_fields.children.find((function(e){return!!e&&t.get("_id")===e.id}));!r&&n.settings.get("custom_id")||$e.run("document/elements/settings",{container:n,settings:{custom_id:"field_"+n.id},options:{external:!0}})})),!0}}]),FormFieldsSetCustomId}($e.modules.hookData.After);t.FormFieldsSetCustomId=s;var d=s;t.default=d},19945:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FormFieldsAddFirstStep=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(FormFieldsAddFirstStep,e);var t=(0,u.default)(FormFieldsAddFirstStep);function FormFieldsAddFirstStep(){return(0,i.default)(this,FormFieldsAddFirstStep),t.apply(this,arguments)}return(0,a.default)(FormFieldsAddFirstStep,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-forms-fields-first-step"}},{key:"getContainerType",value:function getContainerType(){return"repeater"}},{key:"getConditions",value:function getConditions(e){var t=e.containers;return"form"===(void 0===t?[e.container]:t)[0].parent.parent.model.get("widgetType")&&"step"===e.settings.field_type}},{key:"apply",value:function apply(e){var t=e.containers;return(void 0===t?[e.container]:t).forEach((function(e){"step"!==e.parent.children[0].settings.get("field_type")&&$e.run("document/repeater/insert",{container:e.parent.parent,name:"form_fields",model:{field_type:"step"},options:{at:0,external:!0}})})),!0}}]),FormFieldsAddFirstStep}($e.modules.hookData.After);t.FormFieldsAddFirstStep=s;var d=s;t.default=d},38945:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FormSanitizeId=void 0,n(64828),n(71954);var i=r(n(11959)),a=r(n(39041)),l=r(n(38852)),u=r(n(77371)),s=r(n(68537)),d=r(n(18042)),c=function(e){(0,u.default)(FormSanitizeId,e);var t=(0,s.default)(FormSanitizeId);function FormSanitizeId(){var e;(0,i.default)(this,FormSanitizeId);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return e=t.call.apply(t,[this].concat(o)),(0,d.default)((0,l.default)(e),"ID_SANITIZE_FILTER",/[^\w]/g),e}return(0,a.default)(FormSanitizeId,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-forms-sanitize-id"}},{key:"getContainerType",value:function getContainerType(){return"widget"}},{key:"getConditions",value:function getConditions(e){return void 0!==e.settings.form_id}},{key:"apply",value:function apply(e){var t=e.container;if(e.settings.form_id.match(this.ID_SANITIZE_FILTER)){var n=t.panel.getControlView("form_id");return n.render(),n.$el.find("input").trigger("focus"),!1}return!0}}]),FormSanitizeId}($e.modules.hookData.Dependency);t.FormSanitizeId=c;var p=c;t.default=p},18998:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"FormFieldsSanitizeCustomId",{enumerable:!0,get:function get(){return r.FormFieldsSanitizeCustomId}}),o(t,"FormFieldsSetCustomId",{enumerable:!0,get:function get(){return i.FormFieldsSetCustomId}}),o(t,"FormFieldsAddFirstStep",{enumerable:!0,get:function get(){return a.FormFieldsAddFirstStep}}),o(t,"FormSanitizeId",{enumerable:!0,get:function get(){return l.FormSanitizeId}});var r=n(6366),i=n(73610),a=n(19945),l=n(38945)},97820:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i=n(18998);r(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||o(t,e,{enumerable:!0,get:function get(){return i[e]}}))}));var a=n(41618);r(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||o(t,e,{enumerable:!0,get:function get(){return a[e]}}))}))},61645:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FormFieldsUpdateShortCode=void 0,n(71954);var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(FormFieldsUpdateShortCode,e);var t=(0,u.default)(FormFieldsUpdateShortCode);function FormFieldsUpdateShortCode(){return(0,i.default)(this,FormFieldsUpdateShortCode),t.apply(this,arguments)}return(0,a.default)(FormFieldsUpdateShortCode,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-forms-fields-update-shortcode"}},{key:"getContainerType",value:function getContainerType(){return"repeater"}},{key:"getConditions",value:function getConditions(e){return!(!$e.routes.isPartOf("panel/editor")||void 0===e.settings.custom_id)}},{key:"apply",value:function apply(e){var t=e.containers;(void 0===t?[e.container]:t).forEach((function(e){e.panel.getControlView("form_fields").children.find((function(t){return e.id===t.model.get("_id")})).children.find((function(e){return"shortcode"===e.model.get("name")})).render()}))}}]),FormFieldsUpdateShortCode}($e.modules.hookUI.After);t.FormFieldsUpdateShortCode=s;var d=s;t.default=d},41618:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"FormFieldsUpdateShortCode",{enumerable:!0,get:function get(){return r.FormFieldsUpdateShortCode}});var r=n(61645)},89633:(e,t,n)=>{"use strict";var o=n(64e3);e.exports=o.extend({fields:{},getName:function getName(){return"activecampaign"},onElementChange:function onElementChange(e){switch(e){case"activecampaign_api_credentials_source":case"activecampaign_api_key":case"activecampaign_api_url":this.onApiUpdate();break;case"activecampaign_list":this.onListUpdate()}},onApiUpdate:function onApiUpdate(){var e=this,t=e.getEditorControlView("activecampaign_api_key"),n=e.getEditorControlView("activecampaign_api_url"),o=e.getEditorControlView("activecampaign_api_credentials_source");if("default"!==o.getControlValue()&&(""===t.getControlValue()||""===n.getControlValue()))return e.updateOptions("activecampaign_list",[]),void e.getEditorControlView("activecampaign_list").setValue("");e.addControlSpinner("activecampaign_list");var r=this.getCacheKey({controls:[o.getControlValue(),n.getControlValue(),t.getControlValue()]});e.getActiveCampaignCache("lists","activecampaign_list",r).done((function(t){e.updateOptions("activecampaign_list",t.lists),e.fields=t.fields}))},onListUpdate:function onListUpdate(){this.updateFieldsMapping()},updateFieldsMapping:function updateFieldsMapping(){if(this.getEditorControlView("activecampaign_list").getControlValue()){var e=[{remote_label:elementor.translate("Email"),remote_type:"email",remote_id:"email",remote_required:!0},{remote_label:elementor.translate("First Name"),remote_type:"text",remote_id:"first_name",remote_required:!1},{remote_label:elementor.translate("Last Name"),remote_type:"text",remote_id:"last_name",remote_required:!1},{remote_label:elementor.translate("Phone"),remote_type:"text",remote_id:"phone",remote_required:!1},{remote_label:elementor.translate("Organization name"),remote_type:"text",remote_id:"orgname",remote_required:!1}];for(var t in this.fields)this.fields.hasOwnProperty(t)&&e.push(this.fields[t]);this.getEditorControlView("activecampaign_fields_map").updateMap(e)}},getActiveCampaignCache:function getActiveCampaignCache(e,t,n,o){if(_.has(this.cache[e],n)){var r={};return r[e]=this.cache[e][n],jQuery.Deferred().resolve(r)}return o=_.extend({},o,{service:"activecampaign",activecampaign_action:t,api_key:this.getEditorControlView("activecampaign_api_key").getControlValue(),api_url:this.getEditorControlView("activecampaign_api_url").getControlValue(),api_cred:this.getEditorControlView("activecampaign_api_credentials_source").getControlValue()}),this.fetchCache(e,n,o)}})},64e3:(e,t,n)=>{"use strict";var o=n(67971)(n(32009)),r=n(88331);e.exports=r.extend({__construct:function __construct(){this.cache={},r.prototype.__construct.apply(this,arguments)},getName:function getName(){return""},getCacheKey:function getCacheKey(e){return(0,o.default)({service:this.getName(),data:e})},fetchCache:function fetchCache(e,t,n){var o=this,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return elementorPro.ajax.addRequest("forms_panel_action_data",{unique_id:"integrations_"+this.getName(),data:n,success:function success(n){o.cache[e]=_.extend({},o.cache[e]),o.cache[e][t]=n[e]}},r)},updateOptions:function updateOptions(e,t){var n=this.getEditorControlView(e);n&&(this.getEditorControlModel(e).set("options",t),n.render())},onInit:function onInit(){this.addSectionListener("section_"+this.getName(),this.onSectionActive)},onSectionActive:function onSectionActive(){this.onApiUpdate()},onApiUpdate:function onApiUpdate(){}})},91362:(e,t,n)=>{"use strict";var o=n(64e3);e.exports=o.extend({getName:function getName(){return"convertkit"},onElementChange:function onElementChange(e){switch(e){case"convertkit_api_key_source":case"convertkit_custom_api_key":this.onApiUpdate();break;case"convertkit_form":this.onListUpdate()}},onApiUpdate:function onApiUpdate(){var e=this,t=e.getEditorControlView("convertkit_api_key_source"),n=e.getEditorControlView("convertkit_custom_api_key");if("default"!==t.getControlValue()&&""===n.getControlValue())return e.updateOptions("convertkit_form",[]),void e.getEditorControlView("convertkit_form").setValue("");e.addControlSpinner("convertkit_form");var o=this.getCacheKey({type:"data",controls:[t.getControlValue(),n.getControlValue()]});e.getConvertKitCache("data","convertkit_get_forms",o).done((function(t){e.updateOptions("convertkit_form",t.data.forms),e.updateOptions("convertkit_tags",t.data.tags)}))},onListUpdate:function onListUpdate(){this.updateFieldsMapping()},updateFieldsMapping:function updateFieldsMapping(){if(this.getEditorControlView("convertkit_form").getControlValue()){var e=[{remote_label:elementor.translate("Email"),remote_type:"email",remote_id:"email",remote_required:!0},{remote_label:elementor.translate("First Name"),remote_type:"text",remote_id:"first_name",remote_required:!1}];this.getEditorControlView("convertkit_fields_map").updateMap(e)}},getConvertKitCache:function getConvertKitCache(e,t,n,o){if(_.has(this.cache[e],n)){var r={};return r[e]=this.cache[e][n],jQuery.Deferred().resolve(r)}return o=_.extend({},o,{service:"convertkit",convertkit_action:t,api_key:this.getEditorControlView("convertkit_api_key_source").getControlValue(),custom_api_key:this.getEditorControlView("convertkit_custom_api_key").getControlValue()}),this.fetchCache(e,n,o)}})},88775:(e,t,n)=>{"use strict";var o=n(64e3);e.exports=o.extend({getName:function getName(){return"drip"},onElementChange:function onElementChange(e){switch(e){case"drip_api_token_source":case"drip_custom_api_token":this.onApiUpdate();break;case"drip_account":this.onDripAccountsUpdate()}},onApiUpdate:function onApiUpdate(){var e=this,t=e.getEditorControlView("drip_api_token_source"),n=e.getEditorControlView("drip_custom_api_token");if("default"!==t.getControlValue()&&""===n.getControlValue())return e.updateOptions("drip_account",[]),void e.getEditorControlView("drip_account").setValue("");e.addControlSpinner("drip_account"),this.getCacheKey({type:"accounts",controls:[t.getControlValue(),n.getControlValue()]}),e.getDripCache("accounts","accounts",t.getControlValue()).done((function(t){e.updateOptions("drip_account",t.accounts)}))},onDripAccountsUpdate:function onDripAccountsUpdate(){this.updateFieldsMapping()},updateFieldsMapping:function updateFieldsMapping(){if(this.getEditorControlView("drip_account").getControlValue()){var e={remote_label:elementor.translate("Email"),remote_type:"email",remote_id:"email",remote_required:!0};this.getEditorControlView("drip_fields_map").updateMap([e])}},getDripCache:function getDripCache(e,t,n,o){if(_.has(this.cache[e],n)){var r={};return r[e]=this.cache[e][n],jQuery.Deferred().resolve(r)}return o=_.extend({},o,{service:"drip",drip_action:t,api_token:this.getEditorControlView("drip_api_token_source").getControlValue(),custom_api_token:this.getEditorControlView("drip_custom_api_token").getControlValue()}),this.fetchCache(e,n,o)}})},15870:(e,t,n)=>{"use strict";var o=n(64e3);e.exports=o.extend({getName:function getName(){return"getresponse"},onElementChange:function onElementChange(e){switch(e){case"getresponse_custom_api_key":case"getresponse_api_key_source":this.onApiUpdate();break;case"getresponse_list":this.onGetResonseListUpdate()}},onApiUpdate:function onApiUpdate(){var e=this,t=e.getEditorControlView("getresponse_api_key_source"),n=e.getEditorControlView("getresponse_custom_api_key");if("default"!==t.getControlValue()&&""===n.getControlValue())return e.updateOptions("getresponse_list",[]),void e.getEditorControlView("getresponse_list").setValue("");e.addControlSpinner("getresponse_list");var o=this.getCacheKey({type:"lists",controls:[t.getControlValue(),n.getControlValue()]});e.getCache("lists","lists",o).done((function(t){e.updateOptions("getresponse_list",t.lists)}))},onGetResonseListUpdate:function onGetResonseListUpdate(){this.updatGetResonseList()},updatGetResonseList:function updatGetResonseList(){var e=this,t=e.getEditorControlView("getresponse_list");if(t.getControlValue()){e.addControlSpinner("getresponse_fields_map");var n=this.getCacheKey({type:"fields",controls:[t.getControlValue()]});e.getCache("fields","get_fields",n,{getresponse_list:t.getControlValue()}).done((function(t){e.getEditorControlView("getresponse_fields_map").updateMap(t.fields)}))}},getCache:function getCache(e,t,n,o){if(_.has(this.cache[e],n)){var r={};return r[e]=this.cache[e][n],jQuery.Deferred().resolve(r)}return o=_.extend({},o,{service:"getresponse",getresponse_action:t,api_key:this.getEditorControlView("getresponse_api_key_source").getControlValue(),custom_api_key:this.getEditorControlView("getresponse_custom_api_key").getControlValue()}),this.fetchCache(e,n,o)},onSectionActive:function onSectionActive(){o.prototype.onSectionActive.apply(this,arguments),this.updatGetResonseList()}})},16165:(e,t,n)=>{"use strict";var o=n(67971),r=o(n(35657)),i=o(n(74846)),a=n(64e3);e.exports=a.extend({getName:function getName(){return"mailchimp"},onElementChange:function onElementChange(e){switch(e){case"mailchimp_api_key_source":case"mailchimp_api_key":this.onApiUpdate();break;case"mailchimp_list":this.onMailchimpListUpdate()}},onApiUpdate:function onApiUpdate(){var e=this,t=e.getEditorControlView("mailchimp_api_key"),n=e.getEditorControlView("mailchimp_api_key_source");if("default"!==n.getControlValue()&&""===t.getControlValue())return e.updateOptions("mailchimp_list",[]),void e.getEditorControlView("mailchimp_list").setValue("");e.resetControlIndicators("mailchimp_list"),e.addControlSpinner("mailchimp_list");var o=this.getCacheKey({type:"lists",controls:[t.getControlValue(),n.getControlValue()]});e.getMailchimpCache("lists","lists",o).done((function(t){e.updateOptions("mailchimp_list",t.lists),e.updatMailchimpList()})).fail((function(t){e.addControlError("mailchimp_list",t)})).always((function(){e.removeControlSpinner("mailchimp_list")}))},onMailchimpListUpdate:function onMailchimpListUpdate(){this.updateOptions("mailchimp_groups",[]),this.getEditorControlView("mailchimp_groups").setValue(""),this.updatMailchimpList()},updatMailchimpList:function updatMailchimpList(){var e=this,t=e.getEditorControlView("mailchimp_list");if(t.getControlValue()){e.resetControlIndicators("mailchimp_groups"),e.addControlSpinner("mailchimp_groups"),this.getCacheKey({type:"list_details",controls:[t.getControlValue()]}),e.getMailchimpCache("list_details","list_details",t.getControlValue(),{mailchimp_list:t.getControlValue()}).done((function(t){e.updateOptions("mailchimp_groups",t.list_details.groups),e.getEditorControlView("mailchimp_fields_map").updateMap(t.list_details.fields)})).fail((function(t){e.addControlError("mailchimp_groups",t)})).always((function(){e.removeControlSpinner("mailchimp_groups")}));var n={type:"fields",action:"fields",cacheKey:t.getControlValue(),args:{mailchimp_list:t.getControlValue()},immediately:!0};e.getMailchimpCache.apply(e,(0,i.default)((0,r.default)(n))).done((function(t){e.getEditorControlView("mailchimp_fields_map").updateMap(t.fields)}))}},getMailchimpCache:function getMailchimpCache(e,t,n,o){var r=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(_.has(this.cache[e],n)){var i={};return i[e]=this.cache[e][n],jQuery.Deferred().resolve(i)}return o=_.extend({},o,{service:"mailchimp",mailchimp_action:t,api_key:this.getEditorControlView("mailchimp_api_key").getControlValue(),use_global_api_key:this.getEditorControlView("mailchimp_api_key_source").getControlValue()}),this.fetchCache(e,n,o,r)},onSectionActive:function onSectionActive(){a.prototype.onSectionActive.apply(this,arguments),this.onApiUpdate()}})},83852:(e,t,n)=>{"use strict";var o=n(64e3);e.exports=o.extend({fields:{},getName:function getName(){return"mailerlite"},onElementChange:function onElementChange(e){switch(e){case"mailerlite_api_key_source":case"mailerlite_custom_api_key":this.onMailerliteApiKeyUpdate();break;case"mailerlite_group":this.updateFieldsMapping()}},onMailerliteApiKeyUpdate:function onMailerliteApiKeyUpdate(){var e=this,t=e.getEditorControlView("mailerlite_custom_api_key"),n=e.getEditorControlView("mailerlite_api_key_source");if("default"!==n.getControlValue()&&""===t.getControlValue())return e.updateOptions("mailerlite_group",[]),void e.getEditorControlView("mailerlite_group").setValue("");e.addControlSpinner("mailerlite_group");var o=this.getCacheKey({type:"groups",controls:[t.getControlValue(),n.getControlValue()]});e.getMailerliteCache("groups","groups",o).done((function(t){e.updateOptions("mailerlite_group",t.groups),e.fields=t.fields}))},updateFieldsMapping:function updateFieldsMapping(){if(this.getEditorControlView("mailerlite_group").getControlValue()){var e=[{remote_label:elementor.translate("Email"),remote_type:"email",remote_id:"email",remote_required:!0},{remote_label:elementor.translate("Name"),remote_type:"text",remote_id:"name",remote_required:!1},{remote_label:elementor.translate("Last Name"),remote_type:"text",remote_id:"last_name",remote_required:!1},{remote_label:elementor.translate("Company"),remote_type:"text",remote_id:"company",remote_required:!1},{remote_label:elementor.translate("Phone"),remote_type:"text",remote_id:"phone",remote_required:!1},{remote_label:elementor.translate("Country"),remote_type:"text",remote_id:"country",remote_required:!1},{remote_label:elementor.translate("State"),remote_type:"text",remote_id:"state",remote_required:!1},{remote_label:elementor.translate("City"),remote_type:"text",remote_id:"city",remote_required:!1},{remote_label:elementor.translate("Zip"),remote_type:"text",remote_id:"zip",remote_required:!1}];for(var t in this.fields)this.fields.hasOwnProperty(t)&&e.push(this.fields[t]);this.getEditorControlView("mailerlite_fields_map").updateMap(e)}},getMailerliteCache:function getMailerliteCache(e,t,n,o){if(_.has(this.cache[e],n)){var r={};return r[e]=this.cache[e][n],jQuery.Deferred().resolve(r)}return o=_.extend({},o,{service:"mailerlite",mailerlite_action:t,custom_api_key:this.getEditorControlView("mailerlite_custom_api_key").getControlValue(),api_key:this.getEditorControlView("mailerlite_api_key_source").getControlValue()}),this.fetchCache(e,n,o)},onSectionActive:function onSectionActive(){o.prototype.onSectionActive.apply(this,arguments),this.onMailerliteApiKeyUpdate()}})},54577:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(51828)),d=function(e){(0,l.default)(FormsModule,e);var t=(0,u.default)(FormsModule);function FormsModule(){return(0,i.default)(this,FormsModule),t.apply(this,arguments)}return(0,a.default)(FormsModule,[{key:"onElementorInit",value:function onElementorInit(){var e=n(20763),t=n(96922),o=n(83852),r=n(16165),i=n(88775),a=n(89633),l=n(15870),u=n(91362);this.replyToField=new e,this.mailchimp=new r("form"),this.recaptcha=new t("form"),this.drip=new i("form"),this.activecampaign=new a("form"),this.getresponse=new l("form"),this.convertkit=new u("form"),this.mailerlite=new o("form");var s=n(29706),d=n(82787),c=n(99960),p=n(43666),f=n(33726);this.Fields={time:new s("form"),date:new d("form"),tel:new f("form"),acceptance:new c("form"),upload:new p("form")},elementor.addControlView("Fields_map",n(51096)),elementor.addControlView("form-fields-repeater",n(17455))}},{key:"onElementorInitComponents",value:function onElementorInitComponents(){$e.components.register(new s.default({manager:this}))}}]),FormsModule}(elementorModules.editor.utils.Module);t.default=d},96922:(e,t,n)=>{"use strict";n(71954),e.exports=elementorModules.editor.utils.Module.extend({enqueueRecaptchaJs:function enqueueRecaptchaJs(e,t){elementorFrontend.elements.$body.find('[src="'+e+'"]').length||elementorFrontend.elements.$body.append('<script src="'+e+'" id="recaptcha-'+t+'"<\/script>')},renderField:function renderField(e,t){return e+='<div class="elementor-field '+t.field_type+' ">',e+=this.getDataSettings(t),e+="</div>"},getDataSettings:function getDataSettings(e){var t=elementorPro.config.forms[e.field_type];if(!t.enabled)return'<div class="elementor-alert elementor-alert-info">'+t.setup_message+"</div>";var n='data-sitekey="'+t.site_key+'" data-type="'+t.type+'"';switch(t.type){case"v3":n+=' data-action="form" data-size="invisible" data-badge="'+e.recaptcha_badge+'"';break;case"v2_checkbox":n+=' data-theme="'+e.recaptcha_style+'"',n+=' data-size="'+e.recaptcha_size+'"'}return this.enqueueRecaptchaJs("https://www.google.com/recaptcha/api.js?render=explicit",t.type),'<div class="elementor-g-recaptcha'+_.escape(e.css_classes)+'" '+n+"></div>"},filterItem:function filterItem(e){return"recaptcha"===e.field_type&&(e.field_label=!1),e},onInit:function onInit(){elementor.hooks.addFilter("elementor_pro/forms/content_template/item",this.filterItem),elementor.hooks.addFilter("elementor_pro/forms/content_template/field/recaptcha",this.renderField,10,2),elementor.hooks.addFilter("elementor_pro/forms/content_template/field/recaptcha_v3",this.renderField,10,2)}})},20763:(e,t,n)=>{"use strict";n(90286),e.exports=function(){var e,t,n,o=function refreshReplyToElement(){var t=function getReplyToView(){return e.children.findByModelCid(n.cid)}();t&&t.render()},r=function updateReplyToOptions(){var e,r=t.get("settings").get("form_fields").where({field_type:"email"});r=_.reject(r,{field_label:""}),e=_.map(r,(function(e){return{id:e.get("custom_id"),label:elementorPro.translate("x_field",[e.get("field_label")])}})),n.set("options",{"":n.get("options")[""]}),_.each(e,(function(e){n.get("options")[e.id]=e.label})),o()},i=function updateDefaultReplyTo(e){n.get("options")[""]=e.get("email_from"),o()},a=function onFormFieldsChange(e){e.get("custom_id")&&"email"===e.get("field_type")&&r(),e.changed.email_from&&i(e)},l=function onPanelShow(o,l){e=o.getCurrentPageView(),t=l,function setReplyToControl(){n=e.collection.findWhere({name:"email_reply_to"})}();var u=t.get("settings");u.on("change",a),i(u),r()};!function init(){elementor.hooks.addAction("panel/open_editor/widget/form",l)}()}},31529:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"Templates",{enumerable:!0,get:function get(){return r.Templates}});var r=n(13730)},13730:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.Templates=void 0;var i=r(n(38923)),a=r(n(47834)),l=r(n(11959)),u=r(n(39041)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(Templates,e);var t=(0,d.default)(Templates);function Templates(){return(0,l.default)(this,Templates),t.apply(this,arguments)}return(0,u.default)(Templates,[{key:"onAfterApply",value:function onAfterApply(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;$e.data.deleteCache(this.component,"document/global/global-widget/templates",t.query),(0,i.default)(n.data).forEach((function(t){var n=(0,a.default)(t,2),o=n[0],r=n[1];$e.data.setCache(e.component,"document/global/global-widget/templates/".concat(o),{},r)}))}}],[{key:"getEndpointFormat",value:function getEndpointFormat(){return"global-widget/templates"}}]),Templates}($e.modules.CommandData);t.Templates=c;var p=c;t.default=p},76712:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"SaveTemplates",{enumerable:!0,get:function get(){return r.SaveTemplates}});var r=n(69600)},69600:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.SaveTemplates=void 0,n(90286);var i=r(n(73220)),a=r(n(32009)),l=r(n(38923)),u=r(n(47834)),s=r(n(11959)),d=r(n(39041)),c=r(n(77371)),p=r(n(68537)),f=function(e){(0,c.default)(SaveTemplates,e);var t=(0,p.default)(SaveTemplates);function SaveTemplates(){return(0,s.default)(this,SaveTemplates),t.apply(this,arguments)}return(0,d.default)(SaveTemplates,[{key:"apply",value:function apply(){var e=this,t=this.getCurrentTemplatesModels(this.component.changedContainersId);if(t.length)return new i.default((function(n,o){elementorCommon.ajax.addRequest("update_templates",{data:{templates:t.map((function(e){return{id:e.get("id"),content:(0,a.default)([e.toJSON()]),source:"local",type:"widget"}}))},error:o,success:function success(){e.component.changedContainersId={},t.forEach((function(t){var n=t.get("settings");$e.data.setCache(e.component,"document/global/global-widget/templates/".concat(t.id),{},{settings:n})})),n(t)}})}))}},{key:"getCurrentTemplatesModels",value:function getCurrentTemplatesModels(e){var t=this,n=[];return(0,l.default)(e).forEach((function(e){var o=(0,u.default)(e,2),r=o[0],i=o[1];$e.data.getCache(t.component,"document/global/global-widget/templates/".concat(r))||$e.devTools&&$e.devTools.log.warn("$e.data.getCache( component, `document/global/global-widget/templates/".concat(r,"` ) - not found."));var a=elementor.getContainer(i);a&&n.push(new Backbone.Model({id:r,elType:"widget",widgetType:a.model.get("widgetType"),settings:a.settings.toJSON({remove:"default"}),templateID:r}))})),n}}]),SaveTemplates}($e.modules.CommandInternalBase);t.SaveTemplates=f;var m=f;t.default=m},90413:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"Link",{enumerable:!0,get:function get(){return r.Link}}),o(t,"Unlink",{enumerable:!0,get:function get(){return i.Unlink}});var r=n(4147),i=n(29582)},4147:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.Link=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(Link,e);var t=(0,u.default)(Link);function Link(){return(0,i.default)(this,Link),t.apply(this,arguments)}return(0,a.default)(Link,[{key:"validateArgs",value:function validateArgs(e){this.requireContainer(e),this.requireArgumentConstructor("data",Object,e);var t=e.containers;(void 0===t?[e.container]:t).forEach((function(e){if("global"===e.model.get("widgetType"))throw Error("Invalid container, id: '".concat(e.id,"' is already global."))}))}},{key:"getHistory",value:function getHistory(e){var t=e.data;return{title:elementor.widgetsCache[t.widgetType].title,subTitle:t.title,type:elementorPro.translate("linked_to_global")}}},{key:"apply",value:function apply(e){var t=this,n=e.data,o=e.containers;(void 0===o?[e.container]:o).forEach((function(e){var o=e.model,r=o.collection.indexOf(o);n.elType=n.type,n.settings=o.get("settings").attributes,n.widgetType=o.get("widgetType");var i=elementorPro.modules.globalWidget.addGlobalWidget(n.template_id,n).attributes;$e.data.setCache(t.component,"document/global/global-widget/templates/".concat(n.template_id),{},n),$e.run("document/elements/create",{container:e.parent,model:{id:elementor.helpers.getUniqueID(),elType:i.elType,widgetType:i.widgetType,templateID:n.template_id},options:{at:r}}),$e.run("document/elements/delete",{container:e})})),$e.route("panel/elements/global")}}]),Link}($e.modules.document.CommandHistory);t.Link=s;var d=s;t.default=d},29582:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.Unlink=void 0;var i=r(n(57135));n(90286);var a=r(n(49117)),l=r(n(11959)),u=r(n(39041)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(Unlink,e);var t,n=(0,d.default)(Unlink);function Unlink(){return(0,l.default)(this,Unlink),n.apply(this,arguments)}return(0,u.default)(Unlink,[{key:"validateArgs",value:function validateArgs(e){this.requireContainer(e)}},{key:"getHistory",value:function getHistory(e){var t=e.containers,n=void 0===t?[e.container]:t;return{title:elementor.helpers.getModelLabel(n[0].model),type:elementorPro.translate("unlink_widget")}}},{key:"apply",value:(t=(0,a.default)(i.default.mark((function _callee(e){var t,n,o,r,a;return i.default.wrap((function _callee$(i){for(;;)switch(i.prev=i.next){case 0:return t=e.containers,n=void 0===t?[e.container]:t,o=n.map((function(e){return e.model.get("templateID")})),i.next=4,$e.data.get("document/global/templates",{ids:o});case 4:r=i.sent,a=r.data,n.forEach((function(e){var t=e.model.get("templateID"),n=elementorPro.modules.globalWidget.createGlobalModel(t,a[t]);$e.run("document/elements/create",{container:e.parent,model:{id:elementor.helpers.getUniqueID(),elType:"widget",widgetType:n.get("widgetType"),settings:elementorCommon.helpers.cloneObject(n.get("settings").attributes),defaultEditSettings:elementorCommon.helpers.cloneObject(n.get("editSettings").attributes)},options:{at:e.model.collection.indexOf(e.model),edit:!0}}),$e.run("document/elements/delete",{container:e})}));case 7:case"end":return i.stop()}}),_callee)}))),function apply(e){return t.apply(this,arguments)})}]),Unlink}($e.modules.document.CommandHistory);t.Unlink=c;var p=c;t.default=p},60118:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(14176)),l=i(n(38923)),u=i(n(47834)),s=i(n(11959)),d=i(n(39041)),c=i(n(38852)),p=i(n(76700)),f=i(n(44263)),m=i(n(77371)),g=i(n(68537)),v=i(n(18042)),h=r(n(90413)),y=r(n(76712)),_=r(n(31529)),b=r(n(33311)),C=function(e){(0,m.default)(Component,e);var t=(0,g.default)(Component);function Component(){var e;(0,s.default)(this,Component);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return e=t.call.apply(t,[this].concat(o)),(0,v.default)((0,c.default)(e),"notLoadedTemplatesIds",[]),(0,v.default)((0,c.default)(e),"lastChangedContainers",null),(0,v.default)((0,c.default)(e),"changedContainersId",{}),e}return(0,d.default)(Component,[{key:"registerAPI",value:function registerAPI(){var e=this;(0,p.default)((0,f.default)(Component.prototype),"registerAPI",this).call(this),$e.routes.on("run:after",(function(t,n){"panel/elements/global"===n&&e.onRoutePanelElementsGlobal()}))}},{key:"getNamespace",value:function getNamespace(){return"document/global"}},{key:"defaultCommands",value:function defaultCommands(){return this.importCommands(h)}},{key:"defaultCommandsInternal",value:function defaultCommandsInternal(){return this.importCommands(y)}},{key:"defaultData",value:function defaultData(){return this.importCommands(_)}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(b)}},{key:"onRoutePanelElementsGlobal",value:function onRoutePanelElementsGlobal(){var e=this;this.notLoadedTemplatesIds.length&&$e.data.get("document/global/templates",{ids:this.notLoadedTemplatesIds}).then((function(){e.notLoadedTemplatesIds=[]}))}},{key:"updateGlobalsRecursive",value:function updateGlobalsRecursive(e){var t=["dynamic","globals","settings"];elementor.getPreviewContainer().forEachChildrenRecursive((function(n){e!==n&&(0,a.default)(n.model.get("templateID"))===(0,a.default)(e.model.get("templateID"))&&(t.forEach((function(t){var o=e[t];if(o instanceof Backbone.Model){var r="settings"===t?e.settings.attributes:o.changed;(0,l.default)(r).forEach((function(e){var o=(0,u.default)(e,2),r=o[0],i=o[1];n[t].set(r,i)}))}})),n.render())}))}}]),Component}($e.modules.ComponentBase);t.default=C},47756:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.GlobalWidgetPrepareUpdate=void 0,n(90286);var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(GlobalWidgetPrepareUpdate,e);var t=(0,u.default)(GlobalWidgetPrepareUpdate);function GlobalWidgetPrepareUpdate(){return(0,i.default)(this,GlobalWidgetPrepareUpdate),t.apply(this,arguments)}return(0,a.default)(GlobalWidgetPrepareUpdate,[{key:"getCommand",value:function getCommand(){return"document/elements/set-settings"}},{key:"getId",value:function getId(){return"elementor-pro-global-widget-prepare-update"}},{key:"getConditions",value:function getConditions(e){var t=e.containers;return(void 0===t?[e.container]:t).some((function(e){return e.renderer.model.get("templateID")}))}},{key:"apply",value:function apply(e){var t=e.containers,n=void 0===t?[e.container]:t,o=$e.components.get("document/global");o.lastChangedContainers=n.map((function(e){return e.renderer})),n.forEach((function(e){o.changedContainersId[e.renderer.model.get("templateID")]=e.renderer.id}))}}]),GlobalWidgetPrepareUpdate}($e.modules.hookData.After);t.GlobalWidgetPrepareUpdate=s;var d=s;t.default=d},60272:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.GlobalWidgetDoUpdate=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(GlobalWidgetDoUpdate,e);var t=(0,u.default)(GlobalWidgetDoUpdate);function GlobalWidgetDoUpdate(){return(0,i.default)(this,GlobalWidgetDoUpdate),t.apply(this,arguments)}return(0,a.default)(GlobalWidgetDoUpdate,[{key:"getCommand",value:function getCommand(){return"document/history/end-log"}},{key:"getId",value:function getId(){return"elementor-pro-global-widget-do-update"}},{key:"getConditions",value:function getConditions(){return $e.components.get("document/global").lastChangedContainers}},{key:"apply",value:function apply(){var e=$e.components.get("document/global");e.lastChangedContainers.forEach((function(t){return e.updateGlobalsRecursive(t)})),e.lastChangedContainers=null}}]),GlobalWidgetDoUpdate}($e.modules.hookData.After);t.GlobalWidgetDoUpdate=s;var d=s;t.default=d},68578:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.GlobalWidgetSaveTemplates=void 0;var i=r(n(83452)),a=r(n(11959)),l=r(n(39041)),u=r(n(77371)),s=r(n(68537)),d=function(e){(0,u.default)(GlobalWidgetSaveTemplates,e);var t=(0,s.default)(GlobalWidgetSaveTemplates);function GlobalWidgetSaveTemplates(){return(0,a.default)(this,GlobalWidgetSaveTemplates),t.apply(this,arguments)}return(0,l.default)(GlobalWidgetSaveTemplates,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getId",value:function getId(){return"elementor-pro-global-widget-save-templates"}},{key:"getConditions",value:function getConditions(e){if(!(0,i.default)($e.components.get("document/global").changedContainersId).length)return!1;var t=e.document;return(void 0===t?elementor.documents.getCurrent():t).config.panel.has_elements&&e.status&&-1!==["private","publish"].indexOf(e.status)}},{key:"apply",value:function apply(){$e.internal("document/global/save-templates")}}]),GlobalWidgetSaveTemplates}($e.modules.hookData.After);t.GlobalWidgetSaveTemplates=d;var c=d;t.default=c},32523:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.GlobalWidgetLoadTemplates=void 0;var i=r(n(38923)),a=r(n(14176)),l=r(n(47834)),u=r(n(11959)),s=r(n(39041)),d=r(n(77371)),c=r(n(68537)),p=r(n(18042)),f=function(e){(0,d.default)(GlobalWidgetLoadTemplates,e);var t=(0,c.default)(GlobalWidgetLoadTemplates);function GlobalWidgetLoadTemplates(){return(0,u.default)(this,GlobalWidgetLoadTemplates),t.apply(this,arguments)}return(0,s.default)(GlobalWidgetLoadTemplates,[{key:"initialize",value:function initialize(){var e=this;setTimeout((function(){e.component=$e.components.get("document/global")}))}},{key:"getCommand",value:function getCommand(){return"editor/documents/attach-preview"}},{key:"getId",value:function getId(){return"elementor-pro-global-widget-load-templates"}},{key:"getConditions",value:function getConditions(){return!GlobalWidgetLoadTemplates.calledOnce}},{key:"apply",value:function apply(){var e=this;GlobalWidgetLoadTemplates.calledOnce=!0,(0,i.default)(elementorPro.config.widget_templates).forEach((function(t){var n=(0,l.default)(t,2),o=n[0],r=n[1];elementorPro.modules.globalWidget.addGlobalWidget(o,r),e.addTemplateToCache(o)}))}},{key:"addTemplateToCache",value:function addTemplateToCache(e){var t=elementor.getPreviewContainer().findChildrenRecursive((function(t){return(0,a.default)(t.model.get("templateID"))===(0,a.default)(e)}));if(!t)return this.component.notLoadedTemplatesIds.push(e);var n={id:t.model.get("templateID"),elType:"widget",widgetType:t.model.get("widgetType"),settings:t.settings.toJSON({remove:"default"}),templateID:t.model.get("templateID")};$e.data.setCache(this.component,"document/global/global-widget/templates/".concat(e),{},n)}}]),GlobalWidgetLoadTemplates}($e.modules.hookData.After);t.GlobalWidgetLoadTemplates=f,(0,p.default)(f,"calledOnce",!1);var m=f;t.default=m},61113:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"GlobalWidgetPrepareUpdate",{enumerable:!0,get:function get(){return r.GlobalWidgetPrepareUpdate}}),o(t,"GlobalWidgetDoUpdate",{enumerable:!0,get:function get(){return i.GlobalWidgetDoUpdate}}),o(t,"GlobalWidgetSaveTemplates",{enumerable:!0,get:function get(){return a.GlobalWidgetSaveTemplates}}),o(t,"GlobalWidgetLoadTemplates",{enumerable:!0,get:function get(){return l.GlobalWidgetLoadTemplates}});var r=n(47756),i=n(60272),a=n(68578),l=n(32523)},33311:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i=n(61113);r(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||o(t,e,{enumerable:!0,get:function get(){return i[e]}}))}));var a=n(19353);r(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||o(t,e,{enumerable:!0,get:function get(){return a[e]}}))}))},80423:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.GlobalWidgetHistoryUpdate=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(GlobalWidgetHistoryUpdate,e);var t=(0,u.default)(GlobalWidgetHistoryUpdate);function GlobalWidgetHistoryUpdate(){return(0,i.default)(this,GlobalWidgetHistoryUpdate),t.apply(this,arguments)}return(0,a.default)(GlobalWidgetHistoryUpdate,[{key:"getCommand",value:function getCommand(){return"document/elements/set-settings"}},{key:"getId",value:function getId(){return"elementor-pro-global-widget-history-update"}},{key:"getContainerType",value:function getContainerType(){return"widget"}},{key:"getConditions",value:function getConditions(e){var t=e.containers,n=void 0===t?[e.container]:t;return!elementor.documents.getCurrent().history.getActive()&&n.some((function(e){return e.model.get("templateID")}))}},{key:"apply",value:function apply(e){var t=e.containers;(void 0===t?[e.container]:t).forEach((function(e){return $e.components.get("document/global").updateGlobalsRecursive(e)}))}}]),GlobalWidgetHistoryUpdate}($e.modules.hookUI.After);t.GlobalWidgetHistoryUpdate=s;var d=s;t.default=d},19353:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"GlobalWidgetHistoryUpdate",{enumerable:!0,get:function get(){return r.GlobalWidgetHistoryUpdate}});var r=n(80423)},53425:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(15149)),a=r(n(11959)),l=r(n(39041)),u=r(n(38852)),s=r(n(77371)),d=r(n(68537)),c=r(n(18042)),p=r(n(60118)),f=function(e){(0,s.default)(Module,e);var t=(0,d.default)(Module);function Module(){var e;(0,a.default)(this,Module);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return e=t.call.apply(t,[this].concat(o)),(0,c.default)((0,u.default)(e),"panelWidgets",new Backbone.Collection),e}return(0,l.default)(Module,[{key:"addGlobalWidget",value:function addGlobalWidget(e,t){return this.panelWidgets.add(this.createGlobalModel(e,t))}},{key:"createGlobalModel",value:function createGlobalModel(e,t){t=(0,i.default)({},t,{id:e,categories:[],icon:elementor.widgetsCache[t.widgetType].icon,widgetType:t.widgetType,custom:{templateID:e}});var n=new elementor.modules.elements.models.Element(t);return n.set("id",e),n}},{key:"setWidgetType",value:function setWidgetType(){elementor.hooks.addFilter("element/view",(function(e,t){return t.get("templateID")?n(43501).default:e})),elementor.hooks.addFilter("element/model",(function(e,t){return t.templateID?n(53402).default:e}))}},{key:"registerTemplateType",value:function registerTemplateType(){elementor.templates.registerTemplateType("widget",{showInLibrary:!1,saveDialog:{title:elementorPro.translate("global_widget_save_title"),description:elementorPro.translate("global_widget_save_description")},prepareSavedData:function prepareSavedData(e){return e.widgetType=e.content[0].widgetType,e},ajaxParams:{success:this.onWidgetTemplateSaved.bind(this)}})}},{key:"addPanelPage",value:function addPanelPage(){elementor.getPanelView().addPage("globalWidget",{view:n(91022)})}},{key:"getGlobalModels",value:function getGlobalModels(e){return elementorCommon.helpers.softDeprecated("elementorPro.modules.globalWidget.getGlobalModels( id )","3.5.0","$e.data.getCache( `document/global/global-widget/templates/${ id }` )"),$e.data.getCache(this.component,"document/global/global-widget/templates/".concat(e))}},{key:"saveTemplates",value:function saveTemplates(){elementorCommon.helpers.softDeprecated("elementorPro.modules.globalWidget.saveTemplates()","3.5.0","$e.internal( 'document/global/save-templates' )"),$e.internal("document/global/save-templates")}},{key:"requestGlobalModelSettings",value:function requestGlobalModelSettings(e,t){elementorCommon.helpers.softDeprecated("elementorPro.modules.globalWidget.requestGlobalModelSettings()","3.5.0","$e.data.get( 'document/global/templates' )"),$e.data.get("document/global/templates",{ids:e.id}).then((function(e){t(e)}))}},{key:"setWidgetContextMenuSaveAction",value:function setWidgetContextMenuSaveAction(){elementor.hooks.addFilter("elements/widget/contextMenuGroups",(function(e,t){var n=_.findWhere(e,{name:"save"});if(!n)return e;var o=_.findWhere(n.actions,{name:"save"});return o.callback=t.save.bind(t),delete o.shortcut,e}))}},{key:"onElementorInit",value:function onElementorInit(){var e=this;elementor.on("panel:init",(function(){elementor.hooks.addFilter("panel/elements/regionViews",(function(t){return _.extend(t.global,{view:n(38017),options:{collection:e.panelWidgets}}),t}))})),this.registerTemplateType(),this.setWidgetContextMenuSaveAction(),this.setWidgetType()}},{key:"onElementorInitComponents",value:function onElementorInitComponents(){$e.components.register(new p.default),$e.data.get("document/global/templates",{},{refresh:!0})}},{key:"onElementorPreviewLoaded",value:function onElementorPreviewLoaded(e){e&&(this.addPanelPage(),$e.routes.register("panel/editor","global",(function(e){elementor.getPanelView().setPage("globalWidget","Global Editing",{editedView:e.view})})))}},{key:"onWidgetTemplateSaved",value:function onWidgetTemplateSaved(e){elementor.templates.layout.hideModal();var t=elementor.getContainer(elementor.templates.layout.modalContent.currentView.model.id);$e.run("document/global/link",{container:t,data:e})}}]),Module}(elementorModules.editor.utils.Module);t.default=f},38017:(e,t,n)=>{"use strict";e.exports=elementor.modules.layouts.panel.pages.elements.views.Elements.extend({id:"elementor-global-templates",getEmptyView:function getEmptyView(){return this.collection.length?null:n(2747)},onFilterEmpty:function onFilterEmpty(){}})},2747:e=>{"use strict";var t=elementor.modules.layouts.panel.pages.elements.views.Global;e.exports=t.extend({template:"#tmpl-elementor-panel-global-widget-no-templates",id:"elementor-panel-global-widget-no-templates",className:"elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch"})},91022:e=>{"use strict";e.exports=Marionette.ItemView.extend({id:"elementor-panel-global-widget",template:"#tmpl-elementor-panel-global-widget",ui:{editButton:"#elementor-global-widget-locked-edit .elementor-button",unlinkButton:"#elementor-global-widget-locked-unlink .elementor-button",loading:"#elementor-global-widget-loading"},events:{"click @ui.editButton":"onEditButtonClick","click @ui.unlinkButton":"onUnlinkButtonClick"},initialize:function initialize(){this.initUnlinkDialog()},buildUnlinkDialog:function buildUnlinkDialog(){var e=this;return elementorCommon.dialogsManager.createWidget("confirm",{id:"elementor-global-widget-unlink-dialog",headerMessage:elementorPro.translate("unlink_widget"),message:elementorPro.translate("dialog_confirm_unlink"),position:{my:"center center",at:"center center"},strings:{confirm:elementorPro.translate("unlink"),cancel:elementorPro.translate("cancel")},onConfirm:function onConfirm(){e.getOption("editedView").unlink()}})},initUnlinkDialog:function initUnlinkDialog(){var e;this.getUnlinkDialog=function(){return e||(e=this.buildUnlinkDialog()),e}},editGlobalModel:function editGlobalModel(){var e=this.getOption("editedView");$e.run("panel/editor/open",{model:e.getEditModel(),view:e})},onEditButtonClick:function onEditButtonClick(){this.editGlobalModel()},onUnlinkButtonClick:function onUnlinkButtonClick(){this.getUnlinkDialog().show()}})},53402:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(Model,e);var t=(0,d.default)(Model);function Model(){return(0,i.default)(this,Model),t.apply(this,arguments)}return(0,a.default)(Model,[{key:"initSettings",value:function initSettings(){if($e.commands.is("document/elements/create"))return this.initSettingsFromTemplate();(0,l.default)((0,u.default)(Model.prototype),"initSettings",this).call(this)}},{key:"initEditSettings",value:function initEditSettings(){(0,l.default)((0,u.default)(Model.prototype),"initEditSettings",this).call(this),this.get("editSettings").set("editTab","global")}},{key:"initSettingsFromTemplate",value:function initSettingsFromTemplate(){var e=this.get("templateID"),t=$e.components.get("document/global"),n=$e.data.getCache(t,"document/global/global-widget/templates/".concat(e))||this.attributes,o=elementorPro.modules.globalWidget.createGlobalModel(e,n);this.set("settings",o.get("settings")),elementorFrontend.config.elements.data[this.cid]=this.get("settings")}}]),Model}(elementor.modules.elements.models.Element);t.default=c},43501:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0,n(64434),n(99745);var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(View,e);var t=(0,d.default)(View);function View(){return(0,i.default)(this,View),t.apply(this,arguments)}return(0,a.default)(View,[{key:"className",value:function className(){return(0,l.default)((0,u.default)(View.prototype),"className",this).call(this)+" elementor-global-widget elementor-global-"+this.model.get("templateID")}},{key:"addInlineEditingAttributes",value:function addInlineEditingAttributes(){}},{key:"unlink",value:function unlink(){$e.run("document/global/unlink",{container:this.getContainer()})}},{key:"onEditRequest",value:function onEditRequest(){$e.route("panel/editor/global",{view:this})}},{key:"getContextMenuGroups",value:function getContextMenuGroups(){return(0,l.default)((0,u.default)(View.prototype),"getContextMenuGroups",this).call(this).filter((function(e){return"save"!==e.name}))}},{key:"getContainer",value:function getContainer(){if(this.container)return this.container;var e=(0,l.default)((0,u.default)(View.prototype),"getContainer",this).call(this);return e.label=e.label+" ("+elementorPro.translate("global")+")",e}},{key:"render",value:function render(){(0,l.default)((0,u.default)(View.prototype),"render",this).call(this),setTimeout(this.removeInlineAddingAttributes.bind(this))}},{key:"removeInlineAddingAttributes",value:function removeInlineAddingAttributes(){var e=this.el.querySelector(".elementor-inline-editing");e&&e.classList.remove("elementor-inline-editing")}}]),View}(elementor.modules.elements.views.Widget);t.default=c},81891:(e,t,n)=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({onElementorPreviewLoaded:function onElementorPreviewLoaded(){var e=n(7471);this.editButton=new e}})},7471:(e,t,n)=>{"use strict";n(71954),e.exports=function(){var e=this;e.onPanelShow=function(t){var n=t.content.currentView.collection.findWhere({name:"template_id"});e.templateIdView=t.content.currentView.children.findByModelCid(n.cid),e.templateIdView.elementSettingsModel.on("change",e.onTemplateIdChange),e.templateIdView.on("render",e.onTemplateIdChange)},e.onTemplateIdChange=function(){var t=e.templateIdView.elementSettingsModel.get("template_id"),n=e.templateIdView.$el.find(".elementor-edit-template");if(t){var o=ElementorConfig.home_url+"?p="+t+"&elementor";n.length?n.prop("href",o):(n=jQuery("<a />",{target:"_blank",class:"elementor-button elementor-button-default elementor-edit-template",href:o,html:'<i class="eicon-pencil" /> '+elementorPro.config.i18n.edit_template}),e.templateIdView.$el.find(".elementor-control-input-wrapper").after(n))}else n.remove()},e.init=function(){elementor.hooks.addAction("panel/open_editor/widget/template",e.onPanelShow)},e.init()}},42511:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(_default,e);var t=(0,u.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,a.default)(_default,[{key:"onElementorInit",value:function onElementorInit(){elementor.on("navigator:init",this.onNavigatorInit.bind(this))}},{key:"onNavigatorInit",value:function onNavigatorInit(){elementor.navigator.indicators.motionFX={icon:"flash",title:elementorPro.translate("motion_effects"),settingKeys:["motion_fx_motion_fx_scrolling","motion_fx_motion_fx_mouse","background_motion_fx_motion_fx_scrolling","background_motion_fx_motion_fx_mouse"],section:"section_effects"}}}]),_default}(elementorModules.editor.utils.Module);t.default=s},50936:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(38852)),s=i(n(77371)),d=i(n(68537)),c=i(n(18042)),p=r(n(9523)),f=function(e){(0,s.default)(PopupComponent,e);var t=(0,d.default)(PopupComponent);function PopupComponent(){var e;(0,a.default)(this,PopupComponent);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return e=t.call.apply(t,[this].concat(o)),(0,c.default)((0,u.default)(e),"onPageSettingsCloseHandler",null),e}return(0,l.default)(PopupComponent,[{key:"getNamespace",value:function getNamespace(){return"document/popup"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(p)}}]),PopupComponent}($e.modules.ComponentBase);t.default=f},13595:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(83452));n(84208);var a=r(n(11959)),l=r(n(39041)),u=r(n(76700)),s=r(n(44263)),d=r(n(77371)),c=r(n(68537)),p=function(e){(0,d.default)(_default,e);var t=(0,c.default)(_default);function _default(){var e;(0,a.default)(this,_default);for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];return(e=t.call.apply(t,[this].concat(o))).template=_.noop,e.activeTab="content",e.listenTo(e.model,"change",e.onModelChange),e}return(0,l.default)(_default,[{key:"getNamespaceArray",value:function getNamespaceArray(){return["popup","display-settings"]}},{key:"className",value:function className(){return(0,u.default)((0,s.default)(_default.prototype),"className",this).call(this)+" elementor-popup__display-settings"}},{key:"toggleGroup",value:function toggleGroup(e,t){t.toggleClass("elementor-active",!!this.model.get(e))}},{key:"onRenderTemplate",value:function onRenderTemplate(){this.activateFirstSection()}},{key:"onRender",value:function onRender(){var e,t=this,n=this.getOption("name");this.children.each((function(o){if("heading"===o.model.get("type")){var r=o.model.get("name").replace("_heading","");e=jQuery("<div>",{id:"elementor-popup__".concat(n,"-controls-group--").concat(r),class:"elementor-popup__display-settings_controls_group"});var i=jQuery("<div>",{class:"elementor-popup__display-settings_controls_group__icon"}),a=jQuery("<img>",{src:elementorPro.config.urls.modules+"popup/assets/images/".concat(n,"/").concat(r,".svg")});i.html(a),e.html(i),o.$el.before(e),e.append(o.$el),t.toggleGroup(r,e)}else e&&e.append(o.$el)}))}},{key:"onModelChange",value:function onModelChange(){var e=(0,i.default)(this.model.changed)[0],t=this.getControlViewByName(e);"switcher"===t.model.get("type")&&this.toggleGroup(e,t.$el.parent())}}]),_default}(elementorModules.editor.views.ControlsStack);t.default=p},77633:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"PopupSave",{enumerable:!0,get:function get(){return r.PopupSave}});var r=n(21119)},21119:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupSave=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupSave,e);var t=(0,u.default)(PopupSave);function PopupSave(){return(0,i.default)(this,PopupSave),t.apply(this,arguments)}return(0,a.default)(PopupSave,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getId",value:function getId(){return"elementor-pro-popup-save"}},{key:"getConditions",value:function getConditions(){return"popup"===elementor.config.document.type}},{key:"apply",value:function apply(){var e={};jQuery.each(elementorPro.modules.popup.displaySettingsTypes,(function(t,n){e[t]=n.model.toJSON({remove:["default"]})})),elementorPro.ajax.addRequest("popup_save_display_settings",{data:{settings:e}})}}]),PopupSave}($e.modules.hookData.After);t.PopupSave=s;var d=s;t.default=d},9523:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i=n(77633);r(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||o(t,e,{enumerable:!0,get:function get(){return i[e]}}))}));var a=n(19204);r(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||o(t,e,{enumerable:!0,get:function get(){return a[e]}}))}))},63910:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(BaseHookPopupAfter,e);var t=(0,d.default)(BaseHookPopupAfter);function BaseHookPopupAfter(){return(0,i.default)(this,BaseHookPopupAfter),t.apply(this,arguments)}return(0,a.default)(BaseHookPopupAfter,[{key:"run",value:function run(){var e;this.component=this.component||$e.components.get("document/popup");for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=(0,l.default)((0,u.default)(BaseHookPopupAfter.prototype),"run",this)).call.apply(e,[this].concat(n))}}]),BaseHookPopupAfter}($e.modules.hookUI.After);t.default=c},63698:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupRemoveInstructions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupRemoveInstructions,e);var t=(0,u.default)(PopupRemoveInstructions);function PopupRemoveInstructions(){return(0,i.default)(this,PopupRemoveInstructions),t.apply(this,arguments)}return(0,a.default)(PopupRemoveInstructions,[{key:"getCommand",value:function getCommand(){return"editor/documents/unload"}},{key:"getId",value:function getId(){return"elementor-pro-popup-remove-instructions"}},{key:"getConditions",value:function getConditions(e){return"popup"===e.document.config.type&&!elementor.config.user.introduction.popupSettings}},{key:"apply",value:function apply(){$e.components.get("panel/page-settings").off("route/close",this.component.onPageSettingsCloseHandler)}}]),PopupRemoveInstructions}(r(n(63910)).default);t.PopupRemoveInstructions=s;var d=s;t.default=d},67271:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupRemoveLibraryTab=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupRemoveLibraryTab,e);var t=(0,u.default)(PopupRemoveLibraryTab);function PopupRemoveLibraryTab(){return(0,i.default)(this,PopupRemoveLibraryTab),t.apply(this,arguments)}return(0,a.default)(PopupRemoveLibraryTab,[{key:"getCommand",value:function getCommand(){return"editor/documents/unload"}},{key:"getId",value:function getId(){return"elementor-pro-popup-remove-library-tab"}},{key:"getConditions",value:function getConditions(e){return"popup"===e.document.config.type}},{key:"apply",value:function apply(){$e.components.get("library").removeTab("templates/popups")}}]),PopupRemoveLibraryTab}($e.modules.hookUI.After);t.PopupRemoveLibraryTab=s;var d=s;t.default=d},26094:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupRemoveTriggers=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupRemoveTriggers,e);var t=(0,u.default)(PopupRemoveTriggers);function PopupRemoveTriggers(){return(0,i.default)(this,PopupRemoveTriggers),t.apply(this,arguments)}return(0,a.default)(PopupRemoveTriggers,[{key:"getCommand",value:function getCommand(){return"editor/documents/unload"}},{key:"getId",value:function getId(){return"elementor-pro-popup-remove-triggers"}},{key:"getConditions",value:function getConditions(e){return"popup"===e.document.config.type}},{key:"apply",value:function apply(){this.removePanelFooterSubmenuItems(),this.removePublishTabs()}},{key:"removePanelFooterSubmenuItems",value:function removePanelFooterSubmenuItems(){var e=elementorPro.modules.popup.displaySettingsTypes;jQuery.each(e,(function(e){elementor.getPanelView().footer.currentView.removeSubMenuItem("saver-options",{name:e})}))}},{key:"removePublishTabs",value:function removePublishTabs(){var e=$e.components.get("theme-builder-publish"),t=elementorPro.modules.popup.displaySettingsTypes;jQuery.each(t,(function(t){e.removeTab(t)}))}}]),PopupRemoveTriggers}($e.modules.hookUI.After);t.PopupRemoveTriggers=s;var d=s;t.default=d},48873:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupAddInstructions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupAddInstructions,e);var t=(0,u.default)(PopupAddInstructions);function PopupAddInstructions(){return(0,i.default)(this,PopupAddInstructions),t.apply(this,arguments)}return(0,a.default)(PopupAddInstructions,[{key:"getCommand",value:function getCommand(){return"editor/documents/open"}},{key:"getId",value:function getId(){return"elementor-pro-popup-add-instructions"}},{key:"getConditions",value:function getConditions(e){return"popup"===elementor.documents.get(e.id).config.type&&!elementor.config.user.introduction.popupSettings}},{key:"apply",value:function apply(){this.component.onPageSettingsCloseHandler=this.onPageSettingsClose.bind(this),$e.components.get("panel/page-settings").on("route/close",this.component.onPageSettingsCloseHandler)}},{key:"onPageSettingsClose",value:function onPageSettingsClose(){var e=this.getIntroduction();e.show(elementor.getPanelView().footer.currentView.ui.settings[0]),e.setViewed(),$e.components.get("panel/page-settings").off("route/close",this.component.onPageSettingsCloseHandler)}},{key:"getIntroduction",value:function getIntroduction(){return new elementorModules.editor.utils.Introduction({introductionKey:"popupSettings",dialogOptions:{id:"elementor-popup-settings-introduction",headerMessage:'<i class="eicon-info"></i>'+elementorPro.translate("popup_settings_introduction_title"),message:elementorPro.translate("popup_settings_introduction_message"),closeButton:!0,closeButtonClass:"eicon-close",position:{my:"left bottom",at:"right bottom-5",autoRefresh:!0},hide:{onOutsideClick:!1}}})}}]),PopupAddInstructions}(r(n(63910)).default);t.PopupAddInstructions=s;var d=s;t.default=d},21989:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupAddLibraryTab=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(PopupAddLibraryTab,e);var t=(0,u.default)(PopupAddLibraryTab);function PopupAddLibraryTab(){return(0,i.default)(this,PopupAddLibraryTab),t.apply(this,arguments)}return(0,a.default)(PopupAddLibraryTab,[{key:"getCommand",value:function getCommand(){return"editor/documents/open"}},{key:"getId",value:function getId(){return"elementor-pro-popup-add-library-tab"}},{key:"getConditions",value:function getConditions(e){return"popup"===elementor.documents.get(e.id).config.type}},{key:"apply",value:function apply(){$e.components.get("library").addTab("templates/popups",{title:elementorPro.translate("popups"),filter:{source:"remote",type:"popup"}},1)}}]),PopupAddLibraryTab}($e.modules.hookUI.After);t.PopupAddLibraryTab=s;var d=s;t.default=d},76607:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.PopupAddTriggers=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(13595)),d=function(e){(0,l.default)(PopupAddTriggers,e);var t=(0,u.default)(PopupAddTriggers);function PopupAddTriggers(){return(0,i.default)(this,PopupAddTriggers),t.apply(this,arguments)}return(0,a.default)(PopupAddTriggers,[{key:"getCommand",value:function getCommand(){return"editor/documents/open"}},{key:"getId",value:function getId(){return"elementor-pro-popup-add-triggers"}},{key:"getConditions",value:function getConditions(e){return"popup"===elementor.documents.get(e.id).config.type}},{key:"apply",value:function apply(){elementor.panel?this.addUI():elementor.on("preview:loaded",this.addUI.bind(this))}},{key:"addUI",value:function addUI(){$e.routes.commands["theme-builder-publish/triggers"]||(this.addPanelFooterSubmenuItems(),this.addPublishTabs())}},{key:"addPublishTabs",value:function addPublishTabs(){var e=elementor.config.document.displaySettings,t=$e.components.get("theme-builder-publish"),n=elementorPro.modules.popup;jQuery.each(n.displaySettingsTypes,(function(n,o){o.model=new elementorModules.editor.elements.models.BaseSettings(e[n].settings,{controls:e[n].controls}),t.addTab(n,{View:s.default,viewOptions:{name:n,id:"elementor-popup-".concat(n,"__controls"),model:o.model,controls:o.model.controls},name:n,title:elementorPro.translate(n),description:elementorPro.translate("popup_publish_screen_".concat(n,"_description")),image:elementorPro.config.urls.modules+"popup/assets/images/".concat(n,"-tab.svg")})}))}},{key:"addPanelFooterSubmenuItems",value:function addPanelFooterSubmenuItems(){var e=$e.components.get("theme-builder-publish"),t=elementorPro.modules.popup.displaySettingsTypes;jQuery.each(t,(function(t,n){elementor.getPanelView().footer.currentView.addSubMenuItem("saver-options",{before:"save-template",name:t,icon:n.icon,title:elementorPro.translate(t),callback:function callback(){return $e.route(e.getTabRoute(t))}})}))}}]),PopupAddTriggers}($e.modules.hookUI.After);t.PopupAddTriggers=d;var c=d;t.default=c},19204:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"PopupAddInstructions",{enumerable:!0,get:function get(){return r.PopupAddInstructions}}),o(t,"PopupAddLibraryTab",{enumerable:!0,get:function get(){return i.PopupAddLibraryTab}}),o(t,"PopupAddTriggers",{enumerable:!0,get:function get(){return a.PopupAddTriggers}}),o(t,"PopupRemoveInstructions",{enumerable:!0,get:function get(){return l.PopupRemoveInstructions}}),o(t,"PopupRemoveLibraryTab",{enumerable:!0,get:function get(){return u.PopupRemoveLibraryTab}}),o(t,"PopupRemoveTriggers",{enumerable:!0,get:function get(){return s.PopupRemoveTriggers}});var r=n(48873),i=n(21989),a=n(76607),l=n(63698),u=n(67271),s=n(26094)},18754:(e,t,n)=>{"use strict";var o=n(67971),r=o(n(11959)),i=o(n(39041)),a=o(n(77371)),l=o(n(68537)),u=o(n(50936)),s=function(e){(0,a.default)(PopupModule,e);var t=(0,l.default)(PopupModule);function PopupModule(){var e;(0,r.default)(this,PopupModule);for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return(e=t.call.apply(t,[this].concat(o))).displaySettingsTypes={triggers:{icon:"eicon-click"},timing:{icon:"eicon-cog"}},e}return(0,i.default)(PopupModule,[{key:"onElementorLoaded",value:function onElementorLoaded(){this.component=$e.components.register(new u.default({manager:this}))}}]),PopupModule}(elementorModules.editor.utils.Module);e.exports=s},7693:(e,t,n)=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({onElementorPreviewLoaded:function onElementorPreviewLoaded(){elementor.addControlView("Query",n(15418))}})},15418:(e,t,n)=>{"use strict";n(71954),e.exports=elementor.modules.controls.Select2.extend({cache:null,isTitlesReceived:!1,getSelect2Placeholder:function getSelect2Placeholder(){return{id:"",text:elementorPro.translate("all")}},getControlValueByName:function getControlValueByName(e){var t=this.model.get("group_prefix")+e;return this.elementSettingsModel.attributes[t]},getQueryDataDeprecated:function getQueryDataDeprecated(){return{filter_type:this.model.get("filter_type"),object_type:this.model.get("object_type"),include_type:this.model.get("include_type"),query:this.model.get("query")}},getQueryData:function getQueryData(){var e=elementorCommon.helpers.cloneObject(this.model.get("autocomplete"));return _.isEmpty(e.query)&&(e.query={}),"cpt_tax"===e.object&&(e.object="tax",(_.isEmpty(e.query)||_.isEmpty(e.query.post_type))&&(e.query.post_type=this.getControlValueByName("post_type"))),{autocomplete:e}},getSelect2DefaultOptions:function getSelect2DefaultOptions(){var e=this;return jQuery.extend(elementor.modules.controls.Select2.prototype.getSelect2DefaultOptions.apply(this,arguments),{ajax:{transport:function transport(t,n,o){var r={},i="panel_posts_control_filter_autocomplete";return!_.isEmpty(e.model.get("filter_type"))?(r=e.getQueryDataDeprecated(),i="panel_posts_control_filter_autocomplete_deprecated"):r=e.getQueryData(),r.q=t.data.q,elementorPro.ajax.addRequest(i,{data:r,success:n,error:o})},data:function data(e){return{q:e.term,page:e.page}},cache:!0},escapeMarkup:function escapeMarkup(e){return e},minimumInputLength:1})},getValueTitles:function getValueTitles(){var e=this,t={},n=!_.isEmpty(this.model.get("filter_type")),o=this.getControlValue(),r="query_control_value_titles",i="autocomplete",a={};n?(i="filter_type",a=this.model.get(i).object,t.filter_type=a,t.object_type=e.model.get("object_type"),t.include_type=e.model.get("include_type"),t.unique_id=""+e.cid+a,r="query_control_value_titles_deprecated"):(a=this.model.get(i).object,t.get_titles=e.getQueryData().autocomplete,t.unique_id=""+e.cid+a),o&&a&&(_.isArray(o)||(o=[o]),elementorCommon.ajax.loadObjects({action:r,ids:o,data:t,before:function before(){e.addControlSpinner()},success:function success(t){e.isTitlesReceived=!0,e.model.set("options",t),e.render()}}))},addControlSpinner:function addControlSpinner(){this.ui.select.prop("disabled",!0),this.$el.find(".elementor-control-title").after('<span class="elementor-control-spinner">&nbsp;<i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>')},onReady:function onReady(){this.isTitlesReceived||this.getValueTitles()}})},54793:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=r(n(79860)),c=function(e){(0,u.default)(_default,e);var t=(0,s.default)(_default);function _default(){return(0,a.default)(this,_default),t.apply(this,arguments)}return(0,l.default)(_default,[{key:"getNamespace",value:function getNamespace(){return"screenshots"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(d)}}]),_default}($e.modules.ComponentBase);t.default=c},55765:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.DeleteScreenshot=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(DeleteScreenshot,e);var t=(0,u.default)(DeleteScreenshot);function DeleteScreenshot(){return(0,i.default)(this,DeleteScreenshot),t.apply(this,arguments)}return(0,a.default)(DeleteScreenshot,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getConditions",value:function getConditions(e){var t=e.status,n=elementor.documents.getCurrent().config;return"publish"===t&&n.support_site_editor}},{key:"getId",value:function getId(){return"document/save/save::delete-screenshot"}},{key:"apply",value:function apply(){var e=elementor.documents.getCurrent().id;return elementorCommon.ajax.addRequest("screenshot_delete",{unique_id:"delete_screenshot_".concat(e),data:{post_id:e}})}}]),DeleteScreenshot}($e.modules.hookData.After);t.DeleteScreenshot=s;var d=s;t.default=d},79860:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"DeleteScreenshot",{enumerable:!0,get:function get(){return r.DeleteScreenshot}});var r=n(55765)},66882:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=r(n(54793)),d=function(e){(0,l.default)(Module,e);var t=(0,u.default)(Module);function Module(){return(0,i.default)(this,Module),t.apply(this,arguments)}return(0,a.default)(Module,[{key:"onElementorInit",value:function onElementorInit(){$e.components.register(new s.default)}}]),Module}(elementorModules.editor.utils.Module);t.default=d},92287:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=r(n(93741)),c=function(e){(0,u.default)(ScrollSnapComponent,e);var t=(0,s.default)(ScrollSnapComponent);function ScrollSnapComponent(){return(0,a.default)(this,ScrollSnapComponent),t.apply(this,arguments)}return(0,l.default)(ScrollSnapComponent,[{key:"getNamespace",value:function getNamespace(){return"scroll-snap"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(d)}}]),ScrollSnapComponent}($e.modules.ComponentBase);t.default=c},27140:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.FocusPreview=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(FocusPreview,e);var t=(0,u.default)(FocusPreview);function FocusPreview(){return(0,i.default)(this,FocusPreview),t.apply(this,arguments)}return(0,a.default)(FocusPreview,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"focus-preview--document/elements/settings"}},{key:"getConditions",value:function getConditions(e){var t;return""!==(null===(t=e.settings.scroll_snap_padding)||void 0===t?void 0:t.size)}},{key:"apply",value:function apply(){setTimeout((function(){elementor.$preview[0].contentWindow.scrollBy(0,0)}),100)}}]),FocusPreview}($e.modules.hookData.After);t.FocusPreview=s;var d=s;t.default=d},93741:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"FocusPreview",{enumerable:!0,get:function get(){return r.FocusPreview}});var r=n(27140)},25509:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=r(n(92287)),p=function(e){(0,s.default)(Module,e);var t=(0,d.default)(Module);function Module(){return(0,i.default)(this,Module),t.apply(this,arguments)}return(0,a.default)(Module,[{key:"onInit",value:function onInit(){(0,l.default)((0,u.default)(Module.prototype),"onInit",this).call(this),$e.components.register(new c.default)}}]),Module}(elementorModules.editor.utils.Module);t.default=p},78550:e=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({config:elementorPro.config.shareButtonsNetworks,networksClassDictionary:{google:"fab fa-google-plus",pocket:"fab fa-get-pocket",email:"fas fa-envelope",print:"fas fa-print"},getNetworkClass:function getNetworkClass(e){var t=this.networksClassDictionary[e]||"fab fa-"+e;return elementor.config.icons_update_needed&&(t="fa "+t),t},getNetworkTitle:function getNetworkTitle(e){var t;return e.text||(null===(t=this.getNetworkData(e))||void 0===t?void 0:t.title)},getNetworkData:function getNetworkData(e){return this.config[e.button]},hasCounter:function hasCounter(e,t){return"icon"!==t.view&&"yes"===t.show_counter&&this.config[e].has_counter}})},56719:(e,t,n)=>{"use strict";n(99745),e.exports=elementor.modules.controls.RepeaterRow.extend({template:"#tmpl-elementor-theme-builder-conditions-repeater-row",childViewContainer:".elementor-theme-builder-conditions-repeater-row-controls",conflictCheckedOnFirstRender:!1,id:function id(){return"elementor-condition-id-"+this.model.get("_id")},onBeforeRender:function onBeforeRender(){var e=this.collection.findWhere({name:"sub_name"}),t=this.collection.findWhere({name:"sub_id"}),n=this.config.conditions[this.model.attributes.sub_name];e.attributes.groups=this.getOptions(),n&&n.controls&&_(n.controls).each((function(e){t.set(e),t.set("name","sub_id")}))},initialize:function initialize(){elementor.modules.controls.RepeaterRow.prototype.initialize.apply(this,arguments),this.config=elementor.config.document.theme_builder},updateOptions:function updateOptions(){(this.model.changed.name&&this.model.set({sub_name:"",sub_id:""}),this.model.changed.name||this.model.changed.sub_name)&&(this.model.set("sub_id","",{silent:!0}),this.collection.findWhere({name:"sub_id"}).set({type:"select",options:{"":"All"}}),this.render());this.model.changed.type&&this.setTypeAttribute()},getOptions:function getOptions(){var e=this,t=e.config.conditions[this.model.get("name")];if(t){var n={"":t.all_label};return _(t.sub_conditions).each((function(t,o){var r,i=e.config.conditions[t];i&&(i.sub_conditions.length?((r={label:i.label,options:{}}).options[t]=i.all_label,_(i.sub_conditions).each((function(t){r.options[t]=e.config.conditions[t].label})),n["key"+o]=r):n[t]=i.label)})),n}},setTypeAttribute:function setTypeAttribute(){var e=this.children.findByModel(this.collection.findWhere({name:"type"}));e.$el.attr("data-elementor-condition-type",e.getControlValue())},checkConflicts:function checkConflicts(){var e=this.model.get("_id"),t="elementor-condition-id-"+e,n="elementor-conditions-conflict-message-"+e,o=jQuery("#"+n);jQuery("#"+t).removeClass("elementor-error"),o.remove(),elementorPro.ajax.addRequest("theme_builder_conditions_check_conflicts",{unique_id:t,data:{condition:this.model.toJSON()},success:function success(e){_.isEmpty(e)||jQuery("#"+t).addClass("elementor-error").after('<div id="'+n+'" class="elementor-conditions-conflict-message">'+e+"</div>")}})},onRender:function onRender(){var e=this.collection.findWhere({name:"name"}),t=this.collection.findWhere({name:"sub_name"}),n=this.collection.findWhere({name:"sub_id"}),o=this.children.findByModel(e),r=this.children.findByModel(t),i=this.children.findByModel(n),a=this.config.conditions[this.model.attributes.name],l=this.config.conditions[this.model.attributes.sub_name],u=this.config.types[this.config.settings.template_type];u.condition_type!==o.getControlValue()||"general"===o.getControlValue()||_.isEmpty(a.sub_conditions)||o.$el.hide(),(!a||_.isEmpty(a.sub_conditions)&&_.isEmpty(a.controls)||!o.getControlValue()||"general"===o.getControlValue())&&r.$el.hide(),l&&!_.isEmpty(l.controls)&&r.getControlValue()||i.$el.hide(),"singular"===u.condition_type&&""===r.getControlValue()&&r.setValue("post"),this.setTypeAttribute(),this.conflictCheckedOnFirstRender||(this.checkConflicts(),this.conflictCheckedOnFirstRender=!0)},onModelChange:function onModelChange(){this.updateOptions(),this.checkConflicts()}})},10847:(e,t,n)=>{"use strict";var o=n(67971)(n(56719));e.exports=elementor.modules.controls.Repeater.extend({childView:o.default,updateActiveRow:function updateActiveRow(){},initialize:function initialize(){elementor.modules.controls.Repeater.prototype.initialize.apply(this,arguments),this.config=elementor.config.document.theme_builder,this.updateConditionsOptions(this.config.settings.template_type)},updateConditionsOptions:function updateConditionsOptions(e){var t=this,n=t.config.types[e].condition_type,o={};_([n]).each((function(e,n){var r=t.config.conditions[e],i={label:r.label,options:{}};i.options[e]=r.all_label,_(r.sub_conditions).each((function(e){i.options[e]=t.config.conditions[e].label})),o[n]=i}));var r=this.model.get("fields");r[1].default=n,"general"===n?r[1].groups=o:r[2].groups=o},onRender:function onRender(){this.ui.btnAddRow.text(elementorPro.translate("add_condition"))}})},55219:(e,t,n)=>{"use strict";var o=n(16683);e.exports=o.extend({id:"elementor-theme-builder-conditions-view",template:"#tmpl-elementor-theme-builder-conditions-view",childViewContainer:"#elementor-theme-builder-conditions-controls",childViewOptions:function childViewOptions(){return{elementSettingsModel:this.model}}})},40242:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"ThemeBuilderSaveAndReload",{enumerable:!0,get:function get(){return r.ThemeBuilderSaveAndReload}}),o(t,"ThemeBuilderUpdatePreviewOptions",{enumerable:!0,get:function get(){return i.ThemeBuilderUpdatePreviewOptions}});var r=n(73062),i=n(25961)},73062:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderSaveAndReload=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderSaveAndReload,e);var t=(0,u.default)(ThemeBuilderSaveAndReload);function ThemeBuilderSaveAndReload(){return(0,i.default)(this,ThemeBuilderSaveAndReload),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderSaveAndReload,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-save-and-reload"}},{key:"getContainerType",value:function getContainerType(){return"document"}},{key:"getConditions",value:function getConditions(e){return e.settings&&e.settings.page_template}},{key:"apply",value:function apply(){$e.run("document/save/auto",{force:!0,onSuccess:function onSuccess(){elementor.reloadPreview(),elementor.once("preview:loaded",(function(){$e.route("panel/page-settings/settings")}))}})}}]),ThemeBuilderSaveAndReload}($e.modules.hookData.After);t.ThemeBuilderSaveAndReload=s;var d=s;t.default=d},25961:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderUpdatePreviewOptions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderUpdatePreviewOptions,e);var t=(0,u.default)(ThemeBuilderUpdatePreviewOptions);function ThemeBuilderUpdatePreviewOptions(){return(0,i.default)(this,ThemeBuilderUpdatePreviewOptions),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderUpdatePreviewOptions,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-update-preview-options"}},{key:"getContainerType",value:function getContainerType(){return"document"}},{key:"getConditions",value:function getConditions(e){return e.settings&&e.settings.preview_type}},{key:"apply",value:function apply(e){var t=e.containers,n=void 0===t?[e.container]:t,o=elementorPro.modules.themeBuilder;$e.run("document/elements/settings",{containers:n,settings:{preview_id:"",preview_search_term:""}}),$e.routes.is("panel/page-settings/settings")&&o.updatePreviewIdOptions(!0)}}]),ThemeBuilderUpdatePreviewOptions}($e.modules.hookData.After);t.ThemeBuilderUpdatePreviewOptions=s;var d=s;t.default=d},48760:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderSaveConditions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderSaveConditions,e);var t=(0,u.default)(ThemeBuilderSaveConditions);function ThemeBuilderSaveConditions(){return(0,i.default)(this,ThemeBuilderSaveConditions),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderSaveConditions,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-save-conditions"}},{key:"getConditions",value:function getConditions(){return!!elementor.config.document.theme_builder}},{key:"apply",value:function apply(){var e=elementorPro.modules.themeBuilder.conditionsModel;elementorPro.ajax.addRequest("theme_builder_save_conditions",{data:e.toJSON({remove:["default"]}),success:function success(){elementor.config.document.theme_builder.settings.conditions=e.get("conditions")}})}}]),ThemeBuilderSaveConditions}($e.modules.hookData.After);t.ThemeBuilderSaveConditions=s;var d=s;t.default=d},91350:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderShowConditions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderShowConditions,e);var t=(0,u.default)(ThemeBuilderShowConditions);function ThemeBuilderShowConditions(){return(0,i.default)(this,ThemeBuilderShowConditions),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderShowConditions,[{key:"getCommand",value:function getCommand(){return"document/save/default"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-show-conditions"}},{key:"getConditions",value:function getConditions(e){var t=e.force;if(void 0!==t&&t)return!1;var n=!1,o=elementor.config.document.theme_builder;if(o){var r=o.settings.conditions.length,i=o.settings.location,a="draft"===elementor.settings.page.model.get("post_status");!i||r&&!a||(n=!0)}return n}},{key:"apply",value:function apply(){return $e.route("theme-builder-publish/conditions"),!1}}]),ThemeBuilderShowConditions}($e.modules.hookData.Dependency);t.ThemeBuilderShowConditions=s;var d=s;t.default=d},45604:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderPreviewBreak=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderPreviewBreak,e);var t=(0,u.default)(ThemeBuilderPreviewBreak);function ThemeBuilderPreviewBreak(){return(0,i.default)(this,ThemeBuilderPreviewBreak),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderPreviewBreak,[{key:"getCommand",value:function getCommand(){return"editor/documents/preview"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-preview-break"}},{key:"getConditions",value:function getConditions(e){return!e.force&&!!elementor.documents.get(e.id).config.theme_builder}},{key:"apply",value:function apply(){return!1}}]),ThemeBuilderPreviewBreak}($e.modules.hookData.Dependency);t.ThemeBuilderPreviewBreak=s;var d=s;t.default=d},1613:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i={ThemeBuilderSaveConditions:!0,ThemeBuilderShowConditions:!0,ThemeBuilderPreviewBreak:!0};o(t,"ThemeBuilderSaveConditions",{enumerable:!0,get:function get(){return l.ThemeBuilderSaveConditions}}),o(t,"ThemeBuilderShowConditions",{enumerable:!0,get:function get(){return u.ThemeBuilderShowConditions}}),o(t,"ThemeBuilderPreviewBreak",{enumerable:!0,get:function get(){return s.ThemeBuilderPreviewBreak}});var a=n(40242);r(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(Object.prototype.hasOwnProperty.call(i,e)||e in t&&t[e]===a[e]||o(t,e,{enumerable:!0,get:function get(){return a[e]}}))}));var l=n(48760),u=n(91350),s=n(45604)},19101:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i=n(1613);r(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||o(t,e,{enumerable:!0,get:function get(){return i[e]}}))}));var a=n(84539);r(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||o(t,e,{enumerable:!0,get:function get(){return a[e]}}))}))},97310:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderToggleMenuConditions=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderToggleMenuConditions,e);var t=(0,u.default)(ThemeBuilderToggleMenuConditions);function ThemeBuilderToggleMenuConditions(){return(0,i.default)(this,ThemeBuilderToggleMenuConditions),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderToggleMenuConditions,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-toggle-menu-conditions"}},{key:"getContainerType",value:function getContainerType(){return"document"}},{key:"getConditions",value:function getConditions(e){return e.settings&&e.settings.location}},{key:"apply",value:function apply(){elementorPro.modules.themeBuilder.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location)}}]),ThemeBuilderToggleMenuConditions}($e.modules.hookUI.After);t.ThemeBuilderToggleMenuConditions=s;var d=s;t.default=d},72726:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderRemoveEditorUI=void 0;var i=r(n(83452)),a=r(n(11959)),l=r(n(39041)),u=r(n(77371)),s=r(n(68537)),d=function(e){(0,u.default)(ThemeBuilderRemoveEditorUI,e);var t=(0,s.default)(ThemeBuilderRemoveEditorUI);function ThemeBuilderRemoveEditorUI(){return(0,a.default)(this,ThemeBuilderRemoveEditorUI),t.apply(this,arguments)}return(0,l.default)(ThemeBuilderRemoveEditorUI,[{key:"getCommand",value:function getCommand(){return"editor/documents/unload"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-remove-editor-ui"}},{key:"getConditions",value:function getConditions(e){return e.document.config.theme_builder}},{key:"apply",value:function apply(){this.removePanelFooterSubmenuItems(),this.removePublishTabs()}},{key:"removePanelFooterSubmenuItems",value:function removePanelFooterSubmenuItems(){var e=elementor.getPanelView().footer.currentView,t=e._behaviors[(0,i.default)(e.behaviors()).indexOf("saver")];elementor.getPanelView().footer.currentView.removeSubMenuItem("saver-options",{name:"conditions"}),t.ui.buttonPreview.tipsy("enable").removeClass("elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state")}},{key:"removePublishTabs",value:function removePublishTabs(){$e.components.get("theme-builder-publish").removeTab("conditions")}}]),ThemeBuilderRemoveEditorUI}($e.modules.hookUI.After);t.ThemeBuilderRemoveEditorUI=d;var c=d;t.default=c},67443:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ThemeBuilderAddEditorUI=void 0;var i=r(n(83452)),a=r(n(11959)),l=r(n(39041)),u=r(n(77371)),s=r(n(68537)),d=r(n(55219)),c=function(e){(0,u.default)(ThemeBuilderAddEditorUI,e);var t=(0,s.default)(ThemeBuilderAddEditorUI);function ThemeBuilderAddEditorUI(){return(0,a.default)(this,ThemeBuilderAddEditorUI),t.apply(this,arguments)}return(0,l.default)(ThemeBuilderAddEditorUI,[{key:"getCommand",value:function getCommand(){return"editor/documents/open"}},{key:"getId",value:function getId(){return"elementor-pro-theme-builder-add-editor-ui"}},{key:"getConditions",value:function getConditions(e){return elementor.documents.get(e.id).config.theme_builder}},{key:"apply",value:function apply(){elementor.panel?this.addUI():elementor.once("preview:loaded",this.addUI.bind(this))}},{key:"addUI",value:function addUI(){this.addRepeaterControlView(),this.addPanelFooterSubmenuItems(),this.addPublishTabs()}},{key:"addRepeaterControlView",value:function addRepeaterControlView(){elementor.addControlView("Conditions_repeater",n(10847))}},{key:"addPublishTabs",value:function addPublishTabs(){var e=$e.components.get("theme-builder-publish"),t=elementor.config.document.theme_builder,n=t.settings;e.manager.conditionsModel=new elementorModules.editor.elements.models.BaseSettings(n,{controls:t.template_conditions.controls}),e.addTab("conditions",{title:elementorPro.translate("conditions"),View:d.default,viewOptions:{model:e.manager.conditionsModel,controls:e.manager.conditionsModel.controls},name:"conditions",description:elementorPro.translate("conditions_publish_screen_description"),image:elementorPro.config.urls.modules+"theme-builder/assets/images/conditions-tab.svg"})}},{key:"addPanelFooterSubmenuItems",value:function addPanelFooterSubmenuItems(){var e=elementor.getPanelView().footer.currentView,t=e._behaviors[(0,i.default)(e.behaviors()).indexOf("saver")];e.ui.menuConditions=e.addSubMenuItem("saver-options",{before:"save-template",name:"conditions",icon:"eicon-flow",title:elementorPro.translate("display_conditions"),callback:function callback(){return $e.route("theme-builder-publish/conditions")}}),e.ui.menuConditions.toggle(!!elementor.config.document.theme_builder.settings.location),t.ui.buttonPreview.tipsy("disable").html(jQuery("#tmpl-elementor-theme-builder-button-preview").html()).addClass("elementor-panel-footer-theme-builder-buttons-wrapper elementor-toggle-state")}}]),ThemeBuilderAddEditorUI}($e.modules.hookUI.After);t.ThemeBuilderAddEditorUI=c;var p=c;t.default=p},84539:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"ThemeBuilderAddEditorUI",{enumerable:!0,get:function get(){return r.ThemeBuilderAddEditorUI}}),o(t,"ThemeBuilderRemoveEditorUI",{enumerable:!0,get:function get(){return i.ThemeBuilderRemoveEditorUI}}),o(t,"ThemeBuilderToggleMenuConditions",{enumerable:!0,get:function get(){return a.ThemeBuilderToggleMenuConditions}}),o(t,"ThemeBuilderFooterSaverAfterSave",{enumerable:!0,get:function get(){return l.ThemeBuilderFooterSaverAfterSave}});var r=n(67443),i=n(72726),a=n(97310),l=n(91030)},91030:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.ThemeBuilderFooterSaverAfterSave=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ThemeBuilderFooterSaverAfterSave,e);var t=(0,u.default)(ThemeBuilderFooterSaverAfterSave);function ThemeBuilderFooterSaverAfterSave(){return(0,i.default)(this,ThemeBuilderFooterSaverAfterSave),t.apply(this,arguments)}return(0,a.default)(ThemeBuilderFooterSaverAfterSave,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getId",value:function getId(){return"theme-builder-footer-saver-after-save"}},{key:"getConditions",value:function getConditions(){return elementor.config.document.support_site_editor}},{key:"apply",value:function apply(e,t){var n=e.status;t.statusChanged&&this.onPageStatusChange(n)}},{key:"onPageStatusChange",value:function onPageStatusChange(e){if("publish"===e){var t={classes:"e-theme-builder-save-toaster",message:elementor.config.document.panel.messages.publish_notification,buttons:[{name:"open_site_editor",text:'<i class="eicon-external-link-square"></i><span class="e-theme-builder-toaster-button-text">'+elementorPro.translate("open_site_editor")+"</span>",callback:function callback(){$e.run("app/open")}},{name:"view_live_site",text:'<i class="eicon-preview-medium"></i><span class="e-theme-builder-toaster-button-text">'+elementorPro.translate("view_live_site")+"</span>",callback:function callback(){open(elementor.config.document.urls.permalink)}}]};elementor.notifications.showToast(t)}}}]),ThemeBuilderFooterSaverAfterSave}($e.modules.hookUI.After);t.ThemeBuilderFooterSaverAfterSave=s},64087:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0,n(99236);var i=r(n(67394)),a=r(n(11959)),l=r(n(39041)),u=r(n(76700)),s=r(n(44263)),d=r(n(77371)),c=r(n(68537)),p=r(n(81922)),f=function(e){(0,d.default)(ThemeBuilderModule,e);var t=(0,c.default)(ThemeBuilderModule);function ThemeBuilderModule(){return(0,a.default)(this,ThemeBuilderModule),t.apply(this,arguments)}return(0,l.default)(ThemeBuilderModule,[{key:"__construct",value:function __construct(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];(e=(0,u.default)((0,s.default)(ThemeBuilderModule.prototype),"__construct",this)).call.apply(e,[this].concat(n)),(0,i.default)(elementorPro.config,"theme_builder",{get:function get(){return elementorCommon.helpers.softDeprecated("theme_builder","2.9.0","elementor.config.document.theme_builder"),elementor.config.document.theme_builder}})}},{key:"onElementorLoaded",value:function onElementorLoaded(){this.component=$e.components.register(new p.default({manager:this})),elementor.on("document:loaded",this.onDocumentLoaded.bind(this)),elementor.on("document:unload",this.onDocumentUnloaded.bind(this)),this.onApplyPreview=this.onApplyPreview.bind(this),this.onSectionPreviewSettingsActive=this.onSectionPreviewSettingsActive.bind(this)}},{key:"onDocumentLoaded",value:function onDocumentLoaded(e){e.config.theme_builder&&(elementor.getPanelView().on("set:page:page_settings",this.updatePreviewIdOptions),elementor.channels.editor.on("elementorThemeBuilder:ApplyPreview",this.onApplyPreview),elementor.channels.editor.on("page_settings:preview_settings:activated",this.onSectionPreviewSettingsActive))}},{key:"onDocumentUnloaded",value:function onDocumentUnloaded(e){e.config.theme_builder&&(elementor.getPanelView().off("set:page:page_settings",this.updatePreviewIdOptions),elementor.channels.editor.off("elementorThemeBuilder:ApplyPreview",this.onApplyPreview),elementor.channels.editor.off("page_settings:preview_settings:activated",this.onSectionPreviewSettingsActive))}},{key:"saveAndReload",value:function saveAndReload(){$e.run("document/save/auto",{force:!0,onSuccess:function onSuccess(){elementor.dynamicTags.cleanCache(),elementor.reloadPreview()}})}},{key:"onApplyPreview",value:function onApplyPreview(){this.saveAndReload()}},{key:"onSectionPreviewSettingsActive",value:function onSectionPreviewSettingsActive(){this.updatePreviewIdOptions(!0)}},{key:"updatePreviewIdOptions",value:function updatePreviewIdOptions(e){var t=elementor.settings.page.model.get("preview_type");if(t){t=t.split("/");var n=elementor.getPanelView().getCurrentPageView(),o=n.collection.findWhere({name:"preview_id"});if("author"===t[1]?o.set({autocomplete:{object:"author"}}):"taxonomy"===t[0]?o.set({autocomplete:{object:"tax",query:{taxonomy:t[1]}}}):"single"===t[0]?o.set({autocomplete:{object:"post",query:{post_type:t[1]}}}):o.set({autocomplete:{object:""}}),!0===e){var r=n.children.findByModel(o);r.render(),r.$el.toggle(!!o.get("autocomplete").object)}}}}]),ThemeBuilderModule}(elementorModules.editor.utils.Module);t.default=f},81922:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(83452)),l=i(n(11959)),u=i(n(39041)),s=i(n(76700)),d=i(n(44263)),c=i(n(77371)),p=i(n(68537)),f=i(n(76144)),m=i(n(12591)),g=r(n(19101)),v=function(e){(0,c.default)(Component,e);var t=(0,p.default)(Component);function Component(){return(0,l.default)(this,Component),t.apply(this,arguments)}return(0,u.default)(Component,[{key:"getNamespace",value:function getNamespace(){return"theme-builder-publish"}},{key:"getModalLayout",value:function getModalLayout(){return m.default}},{key:"defaultCommands",value:function defaultCommands(){var e=this;return{next:function next(){var next=(0,a.default)(e.tabs)[e.currentTabIndex+1];next&&$e.route(e.getTabRoute(next))},save:function save(){$e.run("document/save/default",{force:!0}),e.layout.hideModal()},"preview-settings":function previewSettings(){var e=elementor.getPanelView();$e.route("panel/page-settings/settings"),e.getCurrentPageView().activateSection("preview_settings")._renderChildren()}}}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(g)}},{key:"getTabsWrapperSelector",value:function getTabsWrapperSelector(){return"#elementor-publish__tabs"}},{key:"renderTab",value:function renderTab(e){var t=this.getTabs(),n=(0,a.default)(t),o=t[e];this.currentTabIndex=n.indexOf(e);var r=!n[this.currentTabIndex+1];this.layout.modalContent.currentView.screen.show(new o.View(o.viewOptions)),this.layout.modal.getElements("next").toggle(!r),this.layout.modal.getElements("publish").toggleClass("elementor-button-success",r)}},{key:"activateTab",value:function activateTab(e){$e.routes.saveState(this.getNamespace()),(0,s.default)((0,d.default)(Component.prototype),"activateTab",this).call(this,e)}},{key:"open",value:function open(){return(0,s.default)((0,d.default)(Component.prototype),"open",this).call(this),this.layoutContent||(this.layout.showLogo(),this.layout.modalContent.show(new f.default({component:this})),this.layoutContent=!0),!0}}]),Component}($e.modules.ComponentModalBase);t.default=v},76144:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(_default,e);var t=(0,u.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,a.default)(_default,[{key:"id",value:function id(){return"elementor-publish"}},{key:"getTemplate",value:function getTemplate(){return Marionette.TemplateCache.get("#tmpl-elementor-component-publish")}},{key:"regions",value:function regions(){return{screen:"#elementor-publish__screen"}}},{key:"templateHelpers",value:function templateHelpers(){return{tabs:this.getOption("component").getTabs()}}}]),_default}(Marionette.LayoutView);t.default=s},12591:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=function(e){(0,s.default)(_default,e);var t=(0,d.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,a.default)(_default,[{key:"getModalOptions",value:function getModalOptions(){return{id:"elementor-publish__modal",hide:{onButtonClick:!1}}}},{key:"getLogoOptions",value:function getLogoOptions(){return{title:elementorPro.translate("publish_settings")}}},{key:"initModal",value:function initModal(){(0,l.default)((0,u.default)(_default.prototype),"initModal",this).call(this),this.modal.addButton({name:"publish",text:elementorPro.translate("save_and_close"),callback:function callback(){return $e.run("theme-builder-publish/save")}}),this.modal.addButton({name:"next",text:elementorPro.translate("next"),callback:function callback(){return $e.run("theme-builder-publish/next")}});var e=this.modal.getElements("publish");this.modal.getElements("next").addClass("elementor-button-success").add(e).addClass("elementor-button").removeClass("dialog-button")}}]),_default}(elementorModules.common.views.modal.Layout);t.default=c},27783:e=>{"use strict";e.exports=function(){var e=this;e.onPanelShow=function(e,t){var n=t.get("settings");n.controls._skin.default||n.set("_skin","theme_comments")},e.init=function(){elementor.hooks.addAction("panel/open_editor/widget/post-comments",e.onPanelShow)},e.init()}},19247:(e,t,n)=>{"use strict";e.exports=elementorModules.editor.utils.Module.extend({onElementorPreviewLoaded:function onElementorPreviewLoaded(){var e=n(27783);this.commentsSkin=new e}})},73052:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=r(n(5618)),c=function(e){(0,u.default)(VideoPlaylistComponent,e);var t=(0,s.default)(VideoPlaylistComponent);function VideoPlaylistComponent(){return(0,a.default)(this,VideoPlaylistComponent),t.apply(this,arguments)}return(0,l.default)(VideoPlaylistComponent,[{key:"getNamespace",value:function getNamespace(){return"video-playlist"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(d)}}]),VideoPlaylistComponent}($e.modules.ComponentBase);t.default=c},40187:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ActiveTab=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(ActiveTab,e);var t=(0,u.default)(ActiveTab);function ActiveTab(){return(0,i.default)(this,ActiveTab),t.apply(this,arguments)}return(0,a.default)(ActiveTab,[{key:"getCommand",value:function getCommand(){return"document/elements/settings"}},{key:"getId",value:function getId(){return"active-tab--document/elements/settings"}},{key:"getContainerType",value:function getContainerType(){return"repeater"}},{key:"getConditions",value:function getConditions(e){return e.settings.inner_tab_content_1||e.settings.inner_tab_content_2}},{key:"apply",value:function apply(e){e.settings.inner_tab_content_1?e.container.view.model.get("editSettings").set("innerActiveIndex",0):e.settings.inner_tab_content_2&&e.container.view.model.get("editSettings").set("innerActiveIndex",1)}}]),ActiveTab}($e.modules.hookData.After);t.ActiveTab=s;var d=s;t.default=d},5618:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"ActiveTab",{enumerable:!0,get:function get(){return r.ActiveTab}});var r=n(40187)},93213:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(76700)),u=r(n(44263)),s=r(n(77371)),d=r(n(68537)),c=r(n(73052)),p=function(e){(0,s.default)(Module,e);var t=(0,d.default)(Module);function Module(){return(0,i.default)(this,Module),t.apply(this,arguments)}return(0,a.default)(Module,[{key:"onInit",value:function onInit(){(0,l.default)((0,u.default)(Module.prototype),"onInit",this).call(this),$e.components.register(new c.default)}},{key:"onElementorLoaded",value:function onElementorLoaded(){elementor.channels.editor.on("elementorPlaylistWidget:setVideoData",(function(e){$e.run("document/elements/settings",{container:e.container,settings:{thumbnail:{url:e.currentItem.thumbnail?e.currentItem.thumbnail.url:""},title:e.currentItem.video_title?e.currentItem.video_title:"",duration:e.currentItem.duration?e.currentItem.duration:""},options:{external:!0}})}))}}]),Module}(elementorModules.editor.utils.Module);t.default=p},78657:(e,t,n)=>{"use strict";var o=n(67394),r=n(52369),i=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),l=i(n(39041)),u=i(n(77371)),s=i(n(68537)),d=r(n(9945)),c=function(e){(0,u.default)(Component,e);var t=(0,s.default)(Component);function Component(){return(0,a.default)(this,Component),t.apply(this,arguments)}return(0,l.default)(Component,[{key:"getNamespace",value:function getNamespace(){return"woocommerce"}},{key:"defaultHooks",value:function defaultHooks(){return this.importHooks(d)}}]),Component}($e.modules.ComponentBase);t.default=c},15238:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.WoocommerceCreateWidgetActivateSettingsModal=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(WoocommerceCreateWidgetActivateSettingsModal,e);var t=(0,u.default)(WoocommerceCreateWidgetActivateSettingsModal);function WoocommerceCreateWidgetActivateSettingsModal(){return(0,i.default)(this,WoocommerceCreateWidgetActivateSettingsModal),t.apply(this,arguments)}return(0,a.default)(WoocommerceCreateWidgetActivateSettingsModal,[{key:"getCommand",value:function getCommand(){return"document/elements/create"}},{key:"getId",value:function getId(){return"elementor-pro-woocommerce-create-widget-activate-settings-modal"}},{key:"getContainerType",value:function getContainerType(){return"column"}},{key:"getConditions",value:function getConditions(e,t){return elementorPro.modules.woocommerce.pageSettingsWidgets.hasOwnProperty(t.model.get("widgetType"))}},{key:"apply",value:function apply(e,t){elementorPro.modules.woocommerce.onCreateWidget(t)}}]),WoocommerceCreateWidgetActivateSettingsModal}($e.modules.hookData.After);t.WoocommerceCreateWidgetActivateSettingsModal=s},23309:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.WoocommerceDeleteWidgetDeactivateSettingsModal=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(WoocommerceDeleteWidgetDeactivateSettingsModal,e);var t=(0,u.default)(WoocommerceDeleteWidgetDeactivateSettingsModal);function WoocommerceDeleteWidgetDeactivateSettingsModal(){return(0,i.default)(this,WoocommerceDeleteWidgetDeactivateSettingsModal),t.apply(this,arguments)}return(0,a.default)(WoocommerceDeleteWidgetDeactivateSettingsModal,[{key:"getCommand",value:function getCommand(){return"document/elements/delete"}},{key:"getId",value:function getId(){return"elementor-pro-woocommerce-delete-widget-deactivate-settings-modal"}},{key:"getContainerType",value:function getContainerType(){return"widget"}},{key:"getConditions",value:function getConditions(e,t){return elementorPro.modules.woocommerce.pageSettingsWidgets.hasOwnProperty(t.model.get("widgetType"))}},{key:"apply",value:function apply(e,t){elementorPro.modules.woocommerce.onDeleteWidget(t)}}]),WoocommerceDeleteWidgetDeactivateSettingsModal}($e.modules.hookData.After);t.WoocommerceDeleteWidgetDeactivateSettingsModal=s},75952:(e,t,n)=>{"use strict";var o=n(67394);o(t,"__esModule",{value:!0}),o(t,"WoocommerceSaveShowModal",{enumerable:!0,get:function get(){return r.WoocommerceSaveShowModal}}),o(t,"WoocommerceCreateWidgetActivateSettingsModal",{enumerable:!0,get:function get(){return i.WoocommerceCreateWidgetActivateSettingsModal}}),o(t,"WoocommerceDeleteWidgetDeactivateSettingsModal",{enumerable:!0,get:function get(){return a.WoocommerceDeleteWidgetDeactivateSettingsModal}});var r=n(52938),i=n(15238),a=n(23309)},52938:(e,t,n)=>{"use strict";var o=n(67394),r=n(67971);o(t,"__esModule",{value:!0}),t.WoocommerceSaveShowModal=void 0;var i=r(n(11959)),a=r(n(39041)),l=r(n(77371)),u=r(n(68537)),s=function(e){(0,l.default)(WoocommerceSaveShowModal,e);var t=(0,u.default)(WoocommerceSaveShowModal);function WoocommerceSaveShowModal(){return(0,i.default)(this,WoocommerceSaveShowModal),t.apply(this,arguments)}return(0,a.default)(WoocommerceSaveShowModal,[{key:"getCommand",value:function getCommand(){return"document/save/save"}},{key:"getId",value:function getId(){return"elementor-pro-woocommerce-save-show-modal"}},{key:"getConditions",value:function getConditions(e){return e.status&&-1!==["private","publish"].indexOf(e.status)}},{key:"apply",value:function apply(){elementorPro.modules.woocommerce.onUpdateDocument()}}]),WoocommerceSaveShowModal}($e.modules.hookData.After);t.WoocommerceSaveShowModal=s},9945:(e,t,n)=>{"use strict";var o=n(67394),r=n(83452);o(t,"__esModule",{value:!0});var i=n(75952);r(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||o(t,e,{enumerable:!0,get:function get(){return i[e]}}))}))},94265:(e,t,n)=>{"use strict";var o=n(18194).__,r=n(67971),i=r(n(83452)),a=r(n(11959)),l=r(n(39041)),u=r(n(77371)),s=r(n(68537)),d=r(n(78657)),c=function(e){(0,u.default)(WoocommerceModule,e);var t=(0,s.default)(WoocommerceModule);function WoocommerceModule(){var e;(0,a.default)(this,WoocommerceModule);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(e=t.call.apply(t,[this].concat(r))).pageSettingsWidgets={"woocommerce-checkout-page":{headerMessage:o("Want to save this as your checkout page?","elementor-pro"),message:o("Changes you make here will override your existing WooCommerce settings.","elementor-pro"),confirmMessage:o("You've updated your checkout page.","elementor-pro"),cancelMessage:o("<h3>Set up a checkout page</h3><br>Without a checkout page, visitors can't complete transactions on your site. To set one up, go to Site Settings.","elementor-pro"),failedMessage:o("<h3>Sorry, something went wrong.</h3><br>To define a checkout page for your site, head over to Site Settings.","elementor-pro"),optionName:"woocommerce_checkout_page_id",woocommercePageName:"checkout"},"woocommerce-cart":{headerMessage:o("Want to save this as your cart page?","elementor-pro"),message:o("Changes you make here will override your existing WooCommerce settings.","elementor-pro"),confirmMessage:o("You've updated your cart page.","elementor-pro"),cancelMessage:o("<h3>Set up a cart page</h3><br>The cart page shows an order summary. To set one up, go to Site Settings.","elementor-pro"),failedMessage:o("<h3>Sorry, something went wrong.</h3><br>To define a cart page for your site, head over to Site Settings.","elementor-pro"),optionName:"woocommerce_cart_page_id",woocommercePageName:"cart"},"woocommerce-my-account":{headerMessage:o("Want to save this as your my account page?","elementor-pro"),message:o("Changes you make here will override your existing WooCommerce settings.","elementor-pro"),confirmMessage:o("You've updated your my account page.","elementor-pro"),cancelMessage:o("<h3>Set up a My Account page</h3><br>Without it, customers can't update their billing details, review past orders, etc. To set up My Account, go to Site Settings.","elementor-pro"),failedMessage:o("<h3>Sorry, something went wrong.</h3><br>To define a my account page for your site, head over to Site Settings.","elementor-pro"),optionName:"woocommerce_myaccount_page_id",woocommercePageName:"myaccount"}},e.createdPageSettingsWidgets=[],e}return(0,l.default)(WoocommerceModule,[{key:"onElementorLoaded",value:function onElementorLoaded(){this.component=$e.components.register(new d.default({manager:this}))}},{key:"onCreateWidget",value:function onCreateWidget(e){var t=e.model.get("widgetType");void 0===this.createdPageSettingsWidgets[t]&&(this.createdPageSettingsWidgets[t]=0),this.createdPageSettingsWidgets[t]++}},{key:"onDeleteWidget",value:function onDeleteWidget(e){var t=e.model.get("widgetType");this.createdPageSettingsWidgets[t]--,this.createdPageSettingsWidgets[t]||delete this.createdPageSettingsWidgets[t]}},{key:"onUpdateDocument",value:function onUpdateDocument(){var e=this,t=(0,i.default)(this.createdPageSettingsWidgets),n=t[t.length-1],r=elementor.documents.getCurrent().id;if(1===t.length){var a=this.pageSettingsWidgets[n];r!==elementorPro.config.woocommercePages[a.woocommercePageName]&&(elementorCommon.dialogsManager.createWidget("confirm",{id:"elementor-woocommerce-save-pages",className:"e-global__confirm-add",headerMessage:a.headerMessage,message:a.message,position:{my:"center center",at:"center center"},strings:{confirm:o("Save","elementor-pro"),cancel:o("No thanks","elementor-pro")},onConfirm:function onConfirm(){return e.onConfirmModal(a)},onCancel:function onCancel(){return e.onCancelModal(a)}}).show(),this.createdPageSettingsWidgets=[])}}},{key:"onConfirmModal",value:function onConfirmModal(e){var t=this;elementorPro.ajax.addRequest("woocommerce_update_page_option",{data:{option_name:e.optionName},success:function success(){elementor.notifications.showToast({message:e.confirmMessage})},error:function error(){return t.showPagesSettingsToast(e.failedMessage)}})}},{key:"onCancelModal",value:function onCancelModal(e){this.showPagesSettingsToast(e.cancelMessage)}},{key:"showPagesSettingsToast",value:function showPagesSettingsToast(e){var t=[];elementor.notifications.initToast(),t.push({name:"take_me_there",text:o("Take me there","elementor"),callback:this.openWoocommercePagesSettings}),elementor.notifications.showToast({message:e,buttons:t})}},{key:"openWoocommercePagesSettings",value:function openWoocommercePagesSettings(){elementorCommon.elements.$body.hasClass("elementor-editor-preview")&&elementor.exitPreviewMode(),"panel/global/menu"===elementor.documents.currentDocument.config.panel.default_route?$e.run("panel/global/close"):$e.run("editor/documents/switch",{id:elementor.config.kit_id,mode:"autosave"}).then((function(){return $e.route("panel/global/settings-woocommerce")}))}}]),WoocommerceModule}(elementorModules.editor.utils.Module);e.exports=c},7421:(e,t,n)=>{n(99572),n(37627),e.exports=n(47208).Array.from},70157:(e,t,n)=>{n(42580),e.exports=n(47208).Array.isArray},89710:(e,t,n)=>{var o=n(47208),r=o.JSON||(o.JSON={stringify:JSON.stringify});e.exports=function stringify(e){return r.stringify.apply(r,arguments)}},66458:(e,t,n)=>{n(99954),e.exports=n(47208).Object.assign},14710:(e,t,n)=>{n(30785);var o=n(47208).Object;e.exports=function create(e,t){return o.create(e,t)}},43153:(e,t,n)=>{n(40168);var o=n(47208).Object;e.exports=function defineProperty(e,t,n){return o.defineProperty(e,t,n)}},8531:(e,t,n)=>{n(95260),e.exports=n(47208).Object.entries},32622:(e,t,n)=>{n(18576);var o=n(47208).Object;e.exports=function getOwnPropertyDescriptor(e,t){return o.getOwnPropertyDescriptor(e,t)}},58535:(e,t,n)=>{n(4840),e.exports=n(47208).Object.getPrototypeOf},97220:(e,t,n)=>{n(5453),e.exports=n(47208).Object.keys},65135:(e,t,n)=>{n(13890),e.exports=n(47208).Object.setPrototypeOf},69591:(e,t,n)=>{n(57188),e.exports=n(47208).Object.values},34345:(e,t,n)=>{n(24399),e.exports=n(47208).parseInt},76483:(e,t,n)=>{n(70285),n(99572),n(74114),n(86082),n(81522),n(25757),e.exports=n(47208).Promise},43094:(e,t,n)=>{n(11320),e.exports=n(47208).Reflect.construct},17641:(e,t,n)=>{n(36600),e.exports=n(47208).Reflect.get},19103:(e,t,n)=>{n(54370),n(70285),n(87573),n(97224),e.exports=n(47208).Symbol},39871:(e,t,n)=>{n(99572),n(74114),e.exports=n(7273).f("iterator")},89999:(e,t,n)=>{n(70285),n(74114),n(23337),n(10143),n(92797),e.exports=n(47208).WeakMap},26610:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},29697:e=>{e.exports=function(){}},54677:e=>{e.exports=function(e,t,n,o){if(!(e instanceof t)||void 0!==o&&o in e)throw TypeError(n+": incorrect invocation!");return e}},30498:(e,t,n)=>{var o=n(39632);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},69191:(e,t,n)=>{var o=n(1504),r=n(37154),i=n(46723);e.exports=function(e){return function(t,n,a){var l,u=o(t),s=r(u.length),d=i(a,s);if(e&&n!=n){for(;s>d;)if((l=u[d++])!=l)return!0}else for(;s>d;d++)if((e||d in u)&&u[d]===n)return e||d||0;return!e&&-1}}},97647:(e,t,n)=>{var o=n(61725),r=n(13115),i=n(60061),a=n(37154),l=n(41904);e.exports=function(e,t){var n=1==e,u=2==e,s=3==e,d=4==e,c=6==e,p=5==e||c,f=t||l;return function(t,l,m){for(var g,v,h=i(t),y=r(h),_=o(l,m,3),b=a(y.length),C=0,w=n?f(t,b):u?f(t,0):void 0;b>C;C++)if((p||C in y)&&(v=_(g=y[C],C,h),e))if(n)w[C]=v;else if(v)switch(e){case 3:return!0;case 5:return g;case 6:return C;case 2:w.push(g)}else if(d)return!1;return c?-1:s||d?d:w}}},88320:(e,t,n)=>{var o=n(39632),r=n(7359),i=n(24300)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),o(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},41904:(e,t,n)=>{var o=n(88320);e.exports=function(e,t){return new(o(e))(t)}},45515:(e,t,n)=>{"use strict";var o=n(26610),r=n(39632),i=n(19897),a=[].slice,l={},construct=function(e,t,n){if(!(t in l)){for(var o=[],r=0;r<t;r++)o[r]="a["+r+"]";l[t]=Function("F,a","return new F("+o.join(",")+")")}return l[t](e,n)};e.exports=Function.bind||function bind(e){var t=o(this),n=a.call(arguments,1),bound=function(){var o=n.concat(a.call(arguments));return this instanceof bound?construct(t,o.length,o):i(t,o,e)};return r(t.prototype)&&(bound.prototype=t.prototype),bound}},8312:(e,t,n)=>{var o=n(41352),r=n(24300)("toStringTag"),i="Arguments"==o(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:i?o(t):"Object"==(a=o(t))&&"function"==typeof t.callee?"Arguments":a}},41352:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},92600:(e,t,n)=>{"use strict";var o=n(13199),r=n(6758).getWeak,i=n(30498),a=n(39632),l=n(54677),u=n(25985),s=n(97647),d=n(20657),c=n(41081),p=s(5),f=s(6),m=0,uncaughtFrozenStore=function(e){return e._l||(e._l=new UncaughtFrozenStore)},UncaughtFrozenStore=function(){this.a=[]},findUncaughtFrozen=function(e,t){return p(e.a,(function(e){return e[0]===t}))};UncaughtFrozenStore.prototype={get:function(e){var t=findUncaughtFrozen(this,e);if(t)return t[1]},has:function(e){return!!findUncaughtFrozen(this,e)},set:function(e,t){var n=findUncaughtFrozen(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var s=e((function(e,o){l(e,s,t,"_i"),e._t=t,e._i=m++,e._l=void 0,null!=o&&u(o,n,e[i],e)}));return o(s.prototype,{delete:function(e){if(!a(e))return!1;var n=r(e);return!0===n?uncaughtFrozenStore(c(this,t)).delete(e):n&&d(n,this._i)&&delete n[this._i]},has:function has(e){if(!a(e))return!1;var n=r(e);return!0===n?uncaughtFrozenStore(c(this,t)).has(e):n&&d(n,this._i)}}),s},def:function(e,t,n){var o=r(i(t),!0);return!0===o?uncaughtFrozenStore(e).set(t,n):o[e._i]=n,e},ufstore:uncaughtFrozenStore}},70770:(e,t,n)=>{"use strict";var o=n(43280),r=n(98310),i=n(6758),a=n(90472),l=n(62292),u=n(13199),s=n(25985),d=n(54677),c=n(39632),p=n(2413),f=n(60510).f,m=n(97647)(0),g=n(75179);e.exports=function(e,t,n,v,h,y){var _=o[e],b=_,C=h?"set":"add",w=b&&b.prototype,k={};return g&&"function"==typeof b&&(y||w.forEach&&!a((function(){(new b).entries().next()})))?(b=t((function(t,n){d(t,b,e,"_c"),t._c=new _,null!=n&&s(n,h,t[C],t)})),m("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in w)||y&&"clear"==e||l(b.prototype,e,(function(n,o){if(d(this,b,e),!t&&y&&!c(n))return"get"==e&&void 0;var r=this._c[e](0===n?0:n,o);return t?this:r}))})),y||f(b.prototype,"size",{get:function(){return this._c.size}})):(b=v.getConstructor(t,e,h,C),u(b.prototype,n),i.NEED=!0),p(b,e),k[e]=b,r(r.G+r.W+r.F,k),y||v.setStrong(b,e,h),b}},47208:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},87352:(e,t,n)=>{"use strict";var o=n(60510),r=n(48439);e.exports=function(e,t,n){t in e?o.f(e,t,r(0,n)):e[t]=n}},61725:(e,t,n)=>{var o=n(26610);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},18239:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},75179:(e,t,n)=>{e.exports=!n(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(e,t,n)=>{var o=n(39632),r=n(43280).document,i=o(r)&&o(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},31986:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(e,t,n)=>{var o=n(86425),r=n(97739),i=n(67410);e.exports=function(e){var t=o(e),n=r.f;if(n)for(var a,l=n(e),u=i.f,s=0;l.length>s;)u.call(e,a=l[s++])&&t.push(a);return t}},98310:(e,t,n)=>{var o=n(43280),r=n(47208),i=n(61725),a=n(62292),l=n(20657),$export=function(e,t,n){var u,s,d,c=e&$export.F,p=e&$export.G,f=e&$export.S,m=e&$export.P,g=e&$export.B,v=e&$export.W,h=p?r:r[t]||(r[t]={}),y=h.prototype,_=p?o:f?o[t]:(o[t]||{}).prototype;for(u in p&&(n=t),n)(s=!c&&_&&void 0!==_[u])&&l(h,u)||(d=s?_[u]:n[u],h[u]=p&&"function"!=typeof _[u]?n[u]:g&&s?i(d,o):v&&_[u]==d?function(e){var F=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,o)}return e.apply(this,arguments)};return F.prototype=e.prototype,F}(d):m&&"function"==typeof d?i(Function.call,d):d,m&&((h.virtual||(h.virtual={}))[u]=d,e&$export.R&&y&&!y[u]&&a(y,u,d)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},90472:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},25985:(e,t,n)=>{var o=n(61725),r=n(93086),i=n(11827),a=n(30498),l=n(37154),u=n(26116),s={},d={},c=e.exports=function(e,t,n,c,p){var f,m,g,v,h=p?function(){return e}:u(e),y=o(n,c,t?2:1),_=0;if("function"!=typeof h)throw TypeError(e+" is not iterable!");if(i(h)){for(f=l(e.length);f>_;_++)if((v=t?y(a(m=e[_])[0],m[1]):y(e[_]))===s||v===d)return v}else for(g=h.call(e);!(m=g.next()).done;)if((v=r(g,y,m.value,t))===s||v===d)return v};c.BREAK=s,c.RETURN=d},43280:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},20657:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},62292:(e,t,n)=>{var o=n(60510),r=n(48439);e.exports=n(75179)?function(e,t,n){return o.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},92477:(e,t,n)=>{var o=n(43280).document;e.exports=o&&o.documentElement},64457:(e,t,n)=>{e.exports=!n(75179)&&!n(90472)((function(){return 7!=Object.defineProperty(n(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:e=>{e.exports=function(e,t,n){var o=void 0===n;switch(t.length){case 0:return o?e():e.call(n);case 1:return o?e(t[0]):e.call(n,t[0]);case 2:return o?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return o?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return o?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},13115:(e,t,n)=>{var o=n(41352);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},11827:(e,t,n)=>{var o=n(79105),r=n(24300)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||i[r]===e)}},7359:(e,t,n)=>{var o=n(41352);e.exports=Array.isArray||function isArray(e){return"Array"==o(e)}},39632:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},93086:(e,t,n)=>{var o=n(30498);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&o(i.call(e)),t}}},19802:(e,t,n)=>{"use strict";var o=n(82488),r=n(48439),i=n(2413),a={};n(62292)(a,n(24300)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=o(a,{next:r(1,n)}),i(e,t+" Iterator")}},6125:(e,t,n)=>{"use strict";var o=n(36794),r=n(98310),i=n(19312),a=n(62292),l=n(79105),u=n(19802),s=n(2413),d=n(999),c=n(24300)("iterator"),p=!([].keys&&"next"in[].keys()),f="keys",m="values",returnThis=function(){return this};e.exports=function(e,t,n,g,v,h,y){u(n,t,g);var _,b,C,getMethod=function(e){if(!p&&e in S)return S[e];switch(e){case f:return function keys(){return new n(this,e)};case m:return function values(){return new n(this,e)}}return function entries(){return new n(this,e)}},w=t+" Iterator",k=v==m,x=!1,S=e.prototype,T=S[c]||S["@@iterator"]||v&&S[v],M=T||getMethod(v),P=v?k?getMethod("entries"):M:void 0,I="Array"==t&&S.entries||T;if(I&&(C=d(I.call(new e)))!==Object.prototype&&C.next&&(s(C,w,!0),o||"function"==typeof C[c]||a(C,c,returnThis)),k&&T&&T.name!==m&&(x=!0,M=function values(){return T.call(this)}),o&&!y||!p&&!x&&S[c]||a(S,c,M),l[t]=M,l[w]=returnThis,v)if(_={values:k?M:getMethod(m),keys:h?M:getMethod(f),entries:P},y)for(b in _)b in S||i(S,b,_[b]);else r(r.P+r.F*(p||x),t,_);return _}},26797:(e,t,n)=>{var o=n(24300)("iterator"),r=!1;try{var i=[7][o]();i.return=function(){r=!0},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var i=[7],a=i[o]();a.next=function(){return{done:n=!0}},i[o]=function(){return a},e(i)}catch(e){}return n}},9329:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},79105:e=>{e.exports={}},36794:e=>{e.exports=!0},6758:(e,t,n)=>{var o=n(54251)("meta"),r=n(39632),i=n(20657),a=n(60510).f,l=0,u=Object.isExtensible||function(){return!0},s=!n(90472)((function(){return u(Object.preventExtensions({}))})),setMeta=function(e){a(e,o,{value:{i:"O"+ ++l,w:{}}})},d=e.exports={KEY:o,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,o)){if(!u(e))return"F";if(!t)return"E";setMeta(e)}return e[o].i},getWeak:function(e,t){if(!i(e,o)){if(!u(e))return!0;if(!t)return!1;setMeta(e)}return e[o].w},onFreeze:function(e){return s&&d.NEED&&u(e)&&!i(e,o)&&setMeta(e),e}}},4326:(e,t,n)=>{var o=n(43280),r=n(6022).set,i=o.MutationObserver||o.WebKitMutationObserver,a=o.process,l=o.Promise,u="process"==n(41352)(a);e.exports=function(){var e,t,n,flush=function(){var o,r;for(u&&(o=a.domain)&&o.exit();e;){r=e.fn,e=e.next;try{r()}catch(o){throw e?n():t=void 0,o}}t=void 0,o&&o.enter()};if(u)n=function(){a.nextTick(flush)};else if(!i||o.navigator&&o.navigator.standalone)if(l&&l.resolve){var s=l.resolve(void 0);n=function(){s.then(flush)}}else n=function(){r.call(o,flush)};else{var d=!0,c=document.createTextNode("");new i(flush).observe(c,{characterData:!0}),n=function(){c.data=d=!d}}return function(o){var r={fn:o,next:void 0};t&&(t.next=r),e||(e=r,n()),t=r}}},88579:(e,t,n)=>{"use strict";var o=n(26610);function PromiseCapability(e){var t,n;this.promise=new e((function(e,o){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)}e.exports.f=function(e){return new PromiseCapability(e)}},77995:(e,t,n)=>{"use strict";var o=n(75179),r=n(86425),i=n(97739),a=n(67410),l=n(60061),u=n(13115),s=Object.assign;e.exports=!s||n(90472)((function(){var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach((function(e){t[e]=e})),7!=s({},e)[n]||Object.keys(s({},t)).join("")!=o}))?function assign(e,t){for(var n=l(e),s=arguments.length,d=1,c=i.f,p=a.f;s>d;)for(var f,m=u(arguments[d++]),g=c?r(m).concat(c(m)):r(m),v=g.length,h=0;v>h;)f=g[h++],o&&!p.call(m,f)||(n[f]=m[f]);return n}:s},82488:(e,t,n)=>{var o=n(30498),r=n(36607),i=n(31986),a=n(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=n(48765)("iframe"),o=i.length;for(t.style.display="none",n(92477).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;o--;)delete createDict.prototype[i[o]];return createDict()};e.exports=Object.create||function create(e,t){var n;return null!==e?(Empty.prototype=o(e),n=new Empty,Empty.prototype=null,n[a]=e):n=createDict(),void 0===t?n:r(n,t)}},60510:(e,t,n)=>{var o=n(30498),r=n(64457),i=n(12737),a=Object.defineProperty;t.f=n(75179)?Object.defineProperty:function defineProperty(e,t,n){if(o(e),t=i(t,!0),o(n),r)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},36607:(e,t,n)=>{var o=n(60510),r=n(30498),i=n(86425);e.exports=n(75179)?Object.defineProperties:function defineProperties(e,t){r(e);for(var n,a=i(t),l=a.length,u=0;l>u;)o.f(e,n=a[u++],t[n]);return e}},83264:(e,t,n)=>{var o=n(67410),r=n(48439),i=n(1504),a=n(12737),l=n(20657),u=n(64457),s=Object.getOwnPropertyDescriptor;t.f=n(75179)?s:function getOwnPropertyDescriptor(e,t){if(e=i(e),t=a(t,!0),u)try{return s(e,t)}catch(e){}if(l(e,t))return r(!o.f.call(e,t),e[t])}},26084:(e,t,n)=>{var o=n(1504),r=n(8772).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function getOwnPropertyNames(e){return a&&"[object Window]"==i.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(o(e))}},8772:(e,t,n)=>{var o=n(65326),r=n(31986).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return o(e,r)}},97739:(e,t)=>{t.f=Object.getOwnPropertySymbols},999:(e,t,n)=>{var o=n(20657),r=n(60061),i=n(18478)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),o(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},65326:(e,t,n)=>{var o=n(20657),r=n(1504),i=n(69191)(!1),a=n(18478)("IE_PROTO");e.exports=function(e,t){var n,l=r(e),u=0,s=[];for(n in l)n!=a&&o(l,n)&&s.push(n);for(;t.length>u;)o(l,n=t[u++])&&(~i(s,n)||s.push(n));return s}},86425:(e,t,n)=>{var o=n(65326),r=n(31986);e.exports=Object.keys||function keys(e){return o(e,r)}},67410:(e,t)=>{t.f={}.propertyIsEnumerable},57972:(e,t,n)=>{var o=n(98310),r=n(47208),i=n(90472);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],a={};a[e]=t(n),o(o.S+o.F*i((function(){n(1)})),"Object",a)}},9480:(e,t,n)=>{var o=n(75179),r=n(86425),i=n(1504),a=n(67410).f;e.exports=function(e){return function(t){for(var n,l=i(t),u=r(l),s=u.length,d=0,c=[];s>d;)n=u[d++],o&&!a.call(l,n)||c.push(e?[n,l[n]]:l[n]);return c}}},60162:(e,t,n)=>{var o=n(43280).parseInt,r=n(71963).trim,i=n(18458),a=/^[-+]?0[xX]/;e.exports=8!==o(i+"08")||22!==o(i+"0x16")?function parseInt(e,t){var n=r(String(e),3);return o(n,t>>>0||(a.test(n)?16:10))}:o},52745:e=>{e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},88747:(e,t,n)=>{var o=n(30498),r=n(39632),i=n(88579);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},48439:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},13199:(e,t,n)=>{var o=n(62292);e.exports=function(e,t,n){for(var r in t)n&&e[r]?e[r]=t[r]:o(e,r,t[r]);return e}},19312:(e,t,n)=>{e.exports=n(62292)},14689:(e,t,n)=>{"use strict";var o=n(98310),r=n(26610),i=n(61725),a=n(25985);e.exports=function(e){o(o.S,e,{from:function from(e){var t,n,o,l,u=arguments[1];return r(this),(t=void 0!==u)&&r(u),null==e?new this:(n=[],t?(o=0,l=i(u,arguments[2],2),a(e,!1,(function(e){n.push(l(e,o++))}))):a(e,!1,n.push,n),new this(n))}})}},7883:(e,t,n)=>{"use strict";var o=n(98310);e.exports=function(e){o(o.S,e,{of:function of(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},25574:(e,t,n)=>{var o=n(39632),r=n(30498),check=function(e,t){if(r(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,o){try{(o=n(61725)(Function.call,n(83264).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function setPrototypeOf(e,n){return check(e,n),t?e.__proto__=n:o(e,n),e}}({},!1):void 0),check}},5698:(e,t,n)=>{"use strict";var o=n(43280),r=n(47208),i=n(60510),a=n(75179),l=n(24300)("species");e.exports=function(e){var t="function"==typeof r[e]?r[e]:o[e];a&&t&&!t[l]&&i.f(t,l,{configurable:!0,get:function(){return this}})}},2413:(e,t,n)=>{var o=n(60510).f,r=n(20657),i=n(24300)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,i)&&o(e,i,{configurable:!0,value:t})}},18478:(e,t,n)=>{var o=n(29990)("keys"),r=n(54251);e.exports=function(e){return o[e]||(o[e]=r(e))}},29990:(e,t,n)=>{var o=n(47208),r=n(43280),i="__core-js_shared__",a=r[i]||(r[i]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:o.version,mode:n(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},73732:(e,t,n)=>{var o=n(30498),r=n(26610),i=n(24300)("species");e.exports=function(e,t){var n,a=o(e).constructor;return void 0===a||null==(n=o(a)[i])?t:r(n)}},78502:(e,t,n)=>{var o=n(58290),r=n(18239);e.exports=function(e){return function(t,n){var i,a,l=String(r(t)),u=o(n),s=l.length;return u<0||u>=s?e?"":void 0:(i=l.charCodeAt(u))<55296||i>56319||u+1===s||(a=l.charCodeAt(u+1))<56320||a>57343?e?l.charAt(u):i:e?l.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},71963:(e,t,n)=>{var o=n(98310),r=n(18239),i=n(90472),a=n(18458),l="["+a+"]",u=RegExp("^"+l+l+"*"),s=RegExp(l+l+"*$"),exporter=function(e,t,n){var r={},l=i((function(){return!!a[e]()||"​…"!="​…"[e]()})),u=r[e]=l?t(d):a[e];n&&(r[n]=u),o(o.P+o.F*l,"String",r)},d=exporter.trim=function(e,t){return e=String(r(e)),1&t&&(e=e.replace(u,"")),2&t&&(e=e.replace(s,"")),e};e.exports=exporter},18458:e=>{e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},6022:(e,t,n)=>{var o,r,i,a=n(61725),l=n(19897),u=n(92477),s=n(48765),d=n(43280),c=d.process,p=d.setImmediate,f=d.clearImmediate,m=d.MessageChannel,g=d.Dispatch,v=0,h={},y="onreadystatechange",run=function(){var e=+this;if(h.hasOwnProperty(e)){var t=h[e];delete h[e],t()}},listener=function(e){run.call(e.data)};p&&f||(p=function setImmediate(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return h[++v]=function(){l("function"==typeof e?e:Function(e),t)},o(v),v},f=function clearImmediate(e){delete h[e]},"process"==n(41352)(c)?o=function(e){c.nextTick(a(run,e,1))}:g&&g.now?o=function(e){g.now(a(run,e,1))}:m?(i=(r=new m).port2,r.port1.onmessage=listener,o=a(i.postMessage,i,1)):d.addEventListener&&"function"==typeof postMessage&&!d.importScripts?(o=function(e){d.postMessage(e+"","*")},d.addEventListener("message",listener,!1)):o=y in s("script")?function(e){u.appendChild(s("script")).onreadystatechange=function(){u.removeChild(this),run.call(e)}}:function(e){setTimeout(a(run,e,1),0)}),e.exports={set:p,clear:f}},46723:(e,t,n)=>{var o=n(58290),r=Math.max,i=Math.min;e.exports=function(e,t){return(e=o(e))<0?r(e+t,0):i(e,t)}},58290:e=>{var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},1504:(e,t,n)=>{var o=n(13115),r=n(18239);e.exports=function(e){return o(r(e))}},37154:(e,t,n)=>{var o=n(58290),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},60061:(e,t,n)=>{var o=n(18239);e.exports=function(e){return Object(o(e))}},12737:(e,t,n)=>{var o=n(39632);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},54251:e=>{var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},35701:(e,t,n)=>{var o=n(43280).navigator;e.exports=o&&o.userAgent||""},41081:(e,t,n)=>{var o=n(39632);e.exports=function(e,t){if(!o(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},31164:(e,t,n)=>{var o=n(43280),r=n(47208),i=n(36794),a=n(7273),l=n(60510).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=i?{}:o.Symbol||{});"_"==e.charAt(0)||e in t||l(t,e,{value:a.f(e)})}},7273:(e,t,n)=>{t.f=n(24300)},24300:(e,t,n)=>{var o=n(29990)("wks"),r=n(54251),i=n(43280).Symbol,a="function"==typeof i;(e.exports=function(e){return o[e]||(o[e]=a&&i[e]||(a?i:r)("Symbol."+e))}).store=o},26116:(e,t,n)=>{var o=n(8312),r=n(24300)("iterator"),i=n(79105);e.exports=n(47208).getIteratorMethod=function(e){if(null!=e)return e[r]||e["@@iterator"]||i[o(e)]}},37627:(e,t,n)=>{"use strict";var o=n(61725),r=n(98310),i=n(60061),a=n(93086),l=n(11827),u=n(37154),s=n(87352),d=n(26116);r(r.S+r.F*!n(26797)((function(e){Array.from(e)})),"Array",{from:function from(e){var t,n,r,c,p=i(e),f="function"==typeof this?this:Array,m=arguments.length,g=m>1?arguments[1]:void 0,v=void 0!==g,h=0,y=d(p);if(v&&(g=o(g,m>2?arguments[2]:void 0,2)),null==y||f==Array&&l(y))for(n=new f(t=u(p.length));t>h;h++)s(n,h,v?g(p[h],h):p[h]);else for(c=y.call(p),n=new f;!(r=c.next()).done;h++)s(n,h,v?a(c,g,[r.value,h],!0):r.value);return n.length=h,n}})},42580:(e,t,n)=>{var o=n(98310);o(o.S,"Array",{isArray:n(7359)})},84411:(e,t,n)=>{"use strict";var o=n(29697),r=n(9329),i=n(79105),a=n(1504);e.exports=n(6125)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},99954:(e,t,n)=>{var o=n(98310);o(o.S+o.F,"Object",{assign:n(77995)})},30785:(e,t,n)=>{var o=n(98310);o(o.S,"Object",{create:n(82488)})},40168:(e,t,n)=>{var o=n(98310);o(o.S+o.F*!n(75179),"Object",{defineProperty:n(60510).f})},18576:(e,t,n)=>{var o=n(1504),r=n(83264).f;n(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(e,t){return r(o(e),t)}}))},4840:(e,t,n)=>{var o=n(60061),r=n(999);n(57972)("getPrototypeOf",(function(){return function getPrototypeOf(e){return r(o(e))}}))},5453:(e,t,n)=>{var o=n(60061),r=n(86425);n(57972)("keys",(function(){return function keys(e){return r(o(e))}}))},13890:(e,t,n)=>{var o=n(98310);o(o.S,"Object",{setPrototypeOf:n(25574).set})},70285:()=>{},24399:(e,t,n)=>{var o=n(98310),r=n(60162);o(o.G+o.F*(parseInt!=r),{parseInt:r})},86082:(e,t,n)=>{"use strict";var o,r,i,a,l=n(36794),u=n(43280),s=n(61725),d=n(8312),c=n(98310),p=n(39632),f=n(26610),m=n(54677),g=n(25985),v=n(73732),h=n(6022).set,y=n(4326)(),_=n(88579),b=n(52745),C=n(35701),w=n(88747),k="Promise",x=u.TypeError,S=u.process,T=S&&S.versions,M=T&&T.v8||"",P=u.Promise,I="process"==d(S),empty=function(){},A=r=_.f,E=!!function(){try{var e=P.resolve(1),t=(e.constructor={})[n(24300)("species")]=function(e){e(empty,empty)};return(I||"function"==typeof PromiseRejectionEvent)&&e.then(empty)instanceof t&&0!==M.indexOf("6.6")&&-1===C.indexOf("Chrome/66")}catch(e){}}(),isThenable=function(e){var t;return!(!p(e)||"function"!=typeof(t=e.then))&&t},notify=function(e,t){if(!e._n){e._n=!0;var n=e._c;y((function(){for(var o=e._v,r=1==e._s,i=0,run=function(t){var n,i,a,l=r?t.ok:t.fail,u=t.resolve,s=t.reject,d=t.domain;try{l?(r||(2==e._h&&onHandleUnhandled(e),e._h=1),!0===l?n=o:(d&&d.enter(),n=l(o),d&&(d.exit(),a=!0)),n===t.promise?s(x("Promise-chain cycle")):(i=isThenable(n))?i.call(n,u,s):u(n)):s(o)}catch(e){d&&!a&&d.exit(),s(e)}};n.length>i;)run(n[i++]);e._c=[],e._n=!1,t&&!e._h&&onUnhandled(e)}))}},onUnhandled=function(e){h.call(u,(function(){var t,n,o,r=e._v,i=isUnhandled(e);if(i&&(t=b((function(){I?S.emit("unhandledRejection",r,e):(n=u.onunhandledrejection)?n({promise:e,reason:r}):(o=u.console)&&o.error&&o.error("Unhandled promise rejection",r)})),e._h=I||isUnhandled(e)?2:1),e._a=void 0,i&&t.e)throw t.v}))},isUnhandled=function(e){return 1!==e._h&&0===(e._a||e._c).length},onHandleUnhandled=function(e){h.call(u,(function(){var t;I?S.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})}))},$reject=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),notify(t,!0))},$resolve=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw x("Promise can't be resolved itself");(t=isThenable(e))?y((function(){var o={_w:n,_d:!1};try{t.call(e,s($resolve,o,1),s($reject,o,1))}catch(e){$reject.call(o,e)}})):(n._v=e,n._s=1,notify(n,!1))}catch(e){$reject.call({_w:n,_d:!1},e)}}};E||(P=function Promise(e){m(this,P,k,"_h"),f(e),o.call(this);try{e(s($resolve,this,1),s($reject,this,1))}catch(e){$reject.call(this,e)}},(o=function Promise(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(13199)(P.prototype,{then:function then(e,t){var n=A(v(this,P));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=I?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&notify(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new o;this.promise=e,this.resolve=s($resolve,e,1),this.reject=s($reject,e,1)},_.f=A=function(e){return e===P||e===a?new i(e):r(e)}),c(c.G+c.W+c.F*!E,{Promise:P}),n(2413)(P,k),n(5698)(k),a=n(47208).Promise,c(c.S+c.F*!E,k,{reject:function reject(e){var t=A(this);return(0,t.reject)(e),t.promise}}),c(c.S+c.F*(l||!E),k,{resolve:function resolve(e){return w(l&&this===a?P:this,e)}}),c(c.S+c.F*!(E&&n(26797)((function(e){P.all(e).catch(empty)}))),k,{all:function all(e){var t=this,n=A(t),o=n.resolve,r=n.reject,i=b((function(){var n=[],i=0,a=1;g(e,!1,(function(e){var l=i++,u=!1;n.push(void 0),a++,t.resolve(e).then((function(e){u||(u=!0,n[l]=e,--a||o(n))}),r)})),--a||o(n)}));return i.e&&r(i.v),n.promise},race:function race(e){var t=this,n=A(t),o=n.reject,r=b((function(){g(e,!1,(function(e){t.resolve(e).then(n.resolve,o)}))}));return r.e&&o(r.v),n.promise}})},11320:(e,t,n)=>{var o=n(98310),r=n(82488),i=n(26610),a=n(30498),l=n(39632),u=n(90472),s=n(45515),d=(n(43280).Reflect||{}).construct,c=u((function(){function F(){}return!(d((function(){}),[],F)instanceof F)})),p=!u((function(){d((function(){}))}));o(o.S+o.F*(c||p),"Reflect",{construct:function construct(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!c)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(s.apply(e,o))}var u=n.prototype,f=r(l(u)?u:Object.prototype),m=Function.apply.call(e,f,t);return l(m)?m:f}})},36600:(e,t,n)=>{var o=n(83264),r=n(999),i=n(20657),a=n(98310),l=n(39632),u=n(30498);a(a.S,"Reflect",{get:function get(e,t){var n,a,s=arguments.length<3?e:arguments[2];return u(e)===s?e[t]:(n=o.f(e,t))?i(n,"value")?n.value:void 0!==n.get?n.get.call(s):void 0:l(a=r(e))?get(a,t,s):void 0}})},99572:(e,t,n)=>{"use strict";var o=n(78502)(!0);n(6125)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=o(t,n),this._i+=e.length,{value:e,done:!1})}))},54370:(e,t,n)=>{"use strict";var o=n(43280),r=n(20657),i=n(75179),a=n(98310),l=n(19312),u=n(6758).KEY,s=n(90472),d=n(29990),c=n(2413),p=n(54251),f=n(24300),m=n(7273),g=n(31164),v=n(42266),h=n(7359),y=n(30498),_=n(39632),b=n(60061),C=n(1504),w=n(12737),k=n(48439),x=n(82488),S=n(26084),T=n(83264),M=n(97739),P=n(60510),I=n(86425),A=T.f,E=P.f,O=S.f,V=o.Symbol,W=o.JSON,L=W&&W.stringify,R=f("_hidden"),B=f("toPrimitive"),D={}.propertyIsEnumerable,j=d("symbol-registry"),$=d("symbols"),U=d("op-symbols"),G=Object.prototype,N="function"==typeof V&&!!M.f,q=o.QObject,z=!q||!q.prototype||!q.prototype.findChild,H=i&&s((function(){return 7!=x(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=A(G,t);o&&delete G[t],E(e,t,n),o&&e!==G&&E(G,t,o)}:E,wrap=function(e){var t=$[e]=x(V.prototype);return t._k=e,t},Q=N&&"symbol"==typeof V.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof V},K=function defineProperty(e,t,n){return e===G&&K(U,t,n),y(e),t=w(t,!0),y(n),r($,t)?(n.enumerable?(r(e,R)&&e[R][t]&&(e[R][t]=!1),n=x(n,{enumerable:k(0,!1)})):(r(e,R)||E(e,R,k(1,{})),e[R][t]=!0),H(e,t,n)):E(e,t,n)},J=function defineProperties(e,t){y(e);for(var n,o=v(t=C(t)),r=0,i=o.length;i>r;)K(e,n=o[r++],t[n]);return e},Y=function propertyIsEnumerable(e){var t=D.call(this,e=w(e,!0));return!(this===G&&r($,e)&&!r(U,e))&&(!(t||!r(this,e)||!r($,e)||r(this,R)&&this[R][e])||t)},X=function getOwnPropertyDescriptor(e,t){if(e=C(e),t=w(t,!0),e!==G||!r($,t)||r(U,t)){var n=A(e,t);return!n||!r($,t)||r(e,R)&&e[R][t]||(n.enumerable=!0),n}},Z=function getOwnPropertyNames(e){for(var t,n=O(C(e)),o=[],i=0;n.length>i;)r($,t=n[i++])||t==R||t==u||o.push(t);return o},ee=function getOwnPropertySymbols(e){for(var t,n=e===G,o=O(n?U:C(e)),i=[],a=0;o.length>a;)!r($,t=o[a++])||n&&!r(G,t)||i.push($[t]);return i};N||(l((V=function Symbol(){if(this instanceof V)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),$set=function(t){this===G&&$set.call(U,t),r(this,R)&&r(this[R],e)&&(this[R][e]=!1),H(this,e,k(1,t))};return i&&z&&H(G,e,{configurable:!0,set:$set}),wrap(e)}).prototype,"toString",(function toString(){return this._k})),T.f=X,P.f=K,n(8772).f=S.f=Z,n(67410).f=Y,M.f=ee,i&&!n(36794)&&l(G,"propertyIsEnumerable",Y,!0),m.f=function(e){return wrap(f(e))}),a(a.G+a.W+a.F*!N,{Symbol:V});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)f(te[ne++]);for(var oe=I(f.store),re=0;oe.length>re;)g(oe[re++]);a(a.S+a.F*!N,"Symbol",{for:function(e){return r(j,e+="")?j[e]:j[e]=V(e)},keyFor:function keyFor(e){if(!Q(e))throw TypeError(e+" is not a symbol!");for(var t in j)if(j[t]===e)return t},useSetter:function(){z=!0},useSimple:function(){z=!1}}),a(a.S+a.F*!N,"Object",{create:function create(e,t){return void 0===t?x(e):J(x(e),t)},defineProperty:K,defineProperties:J,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:ee});var ie=s((function(){M.f(1)}));a(a.S+a.F*ie,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(e){return M.f(b(e))}}),W&&a(a.S+a.F*(!N||s((function(){var e=V();return"[null]"!=L([e])||"{}"!=L({a:e})||"{}"!=L(Object(e))}))),"JSON",{stringify:function stringify(e){for(var t,n,o=[e],r=1;arguments.length>r;)o.push(arguments[r++]);if(n=t=o[1],(_(t)||void 0!==e)&&!Q(e))return h(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!Q(t))return t}),o[1]=t,L.apply(W,o)}}),V.prototype[B]||n(62292)(V.prototype,B,V.prototype.valueOf),c(V,"Symbol"),c(Math,"Math",!0),c(o.JSON,"JSON",!0)},23337:(e,t,n)=>{"use strict";var o,r=n(43280),i=n(97647)(0),a=n(19312),l=n(6758),u=n(77995),s=n(92600),d=n(39632),c=n(41081),p=n(41081),f=!r.ActiveXObject&&"ActiveXObject"in r,m="WeakMap",g=l.getWeak,v=Object.isExtensible,h=s.ufstore,wrapper=function(e){return function WeakMap(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function get(e){if(d(e)){var t=g(e);return!0===t?h(c(this,m)).get(e):t?t[this._i]:void 0}},set:function set(e,t){return s.def(c(this,m),e,t)}},_=e.exports=n(70770)(m,wrapper,y,s,!0,!0);p&&f&&(u((o=s.getConstructor(wrapper,m)).prototype,y),l.NEED=!0,i(["delete","has","get","set"],(function(e){var t=_.prototype,n=t[e];a(t,e,(function(t,r){if(d(t)&&!v(t)){this._f||(this._f=new o);var i=this._f[e](t,r);return"set"==e?this:i}return n.call(this,t,r)}))})))},95260:(e,t,n)=>{var o=n(98310),r=n(9480)(!0);o(o.S,"Object",{entries:function entries(e){return r(e)}})},57188:(e,t,n)=>{var o=n(98310),r=n(9480)(!1);o(o.S,"Object",{values:function values(e){return r(e)}})},81522:(e,t,n)=>{"use strict";var o=n(98310),r=n(47208),i=n(43280),a=n(73732),l=n(88747);o(o.P+o.R,"Promise",{finally:function(e){var t=a(this,r.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return l(t,e()).then((function(){return n}))}:e,n?function(n){return l(t,e()).then((function(){throw n}))}:e)}})},25757:(e,t,n)=>{"use strict";var o=n(98310),r=n(88579),i=n(52745);o(o.S,"Promise",{try:function(e){var t=r.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},87573:(e,t,n)=>{n(31164)("asyncIterator")},97224:(e,t,n)=>{n(31164)("observable")},92797:(e,t,n)=>{n(14689)("WeakMap")},10143:(e,t,n)=>{n(7883)("WeakMap")},74114:(e,t,n)=>{n(84411);for(var o=n(43280),r=n(62292),i=n(79105),a=n(24300)("toStringTag"),l="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<l.length;u++){var s=l[u],d=o[s],c=d&&d.prototype;c&&!c[a]&&r(c,a,s),i[s]=i.Array}},22761:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},42094:(e,t,n)=>{var o=n(62190)("unscopables"),r=Array.prototype;null==r[o]&&n(74216)(r,o,{}),e.exports=function(e){r[o][e]=!0}},88492:(e,t,n)=>{"use strict";var o=n(12070)(!0);e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},6365:(e,t,n)=>{var o=n(67334);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},59021:(e,t,n)=>{var o=n(15703),r=n(26078),i=n(78615);e.exports=function(e){return function(t,n,a){var l,u=o(t),s=r(u.length),d=i(a,s);if(e&&n!=n){for(;s>d;)if((l=u[d++])!=l)return!0}else for(;s>d;d++)if((e||d in u)&&u[d]===n)return e||d||0;return!e&&-1}}},78309:(e,t,n)=>{var o=n(11528),r=n(8467),i=n(26033),a=n(26078),l=n(63531);e.exports=function(e,t){var n=1==e,u=2==e,s=3==e,d=4==e,c=6==e,p=5==e||c,f=t||l;return function(t,l,m){for(var g,v,h=i(t),y=r(h),_=o(l,m,3),b=a(y.length),C=0,w=n?f(t,b):u?f(t,0):void 0;b>C;C++)if((p||C in y)&&(v=_(g=y[C],C,h),e))if(n)w[C]=v;else if(v)switch(e){case 3:return!0;case 5:return g;case 6:return C;case 2:w.push(g)}else if(d)return!1;return c?-1:s||d?d:w}}},81071:(e,t,n)=>{var o=n(67334),r=n(99141),i=n(62190)("species");e.exports=function(e){var t;return r(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!r(t.prototype)||(t=void 0),o(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},63531:(e,t,n)=>{var o=n(81071);e.exports=function(e,t){return new(o(e))(t)}},20106:(e,t,n)=>{var o=n(26688),r=n(62190)("toStringTag"),i="Arguments"==o(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:i?o(t):"Object"==(a=o(t))&&"function"==typeof t.callee?"Arguments":a}},26688:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},60066:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},11528:(e,t,n)=>{var o=n(22761);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},61622:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},36628:(e,t,n)=>{e.exports=!n(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(e,t,n)=>{var o=n(67334),r=n(38113).document,i=o(r)&&o(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},33603:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},65772:(e,t,n)=>{var o=n(38113),r=n(60066),i=n(74216),a=n(17738),l=n(11528),$export=function(e,t,n){var u,s,d,c,p=e&$export.F,f=e&$export.G,m=e&$export.S,g=e&$export.P,v=e&$export.B,h=f?o:m?o[t]||(o[t]={}):(o[t]||{}).prototype,y=f?r:r[t]||(r[t]={}),_=y.prototype||(y.prototype={});for(u in f&&(n=t),n)d=((s=!p&&h&&void 0!==h[u])?h:n)[u],c=v&&s?l(d,o):g&&"function"==typeof d?l(Function.call,d):d,h&&a(h,u,d,e&$export.U),y[u]!=d&&i(y,u,c),g&&_[u]!=d&&(_[u]=d)};o.core=r,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},48625:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},48897:(e,t,n)=>{"use strict";n(25846);var o=n(17738),r=n(74216),i=n(48625),a=n(61622),l=n(62190),u=n(43288),s=l("species"),d=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),c=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var p=l(e),f=!i((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),m=f?!i((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[s]=function(){return n}),n[p](""),!t})):void 0;if(!f||!m||"replace"===e&&!d||"split"===e&&!c){var g=/./[p],v=n(a,p,""[e],(function maybeCallNative(e,t,n,o,r){return t.exec===u?f&&!r?{done:!0,value:g.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}})),h=v[0],y=v[1];o(String.prototype,e,h),r(RegExp.prototype,p,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},74859:(e,t,n)=>{"use strict";var o=n(6365);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},20646:(e,t,n)=>{e.exports=n(8655)("native-function-to-string",Function.toString)},38113:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},54040:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},74216:(e,t,n)=>{var o=n(98558),r=n(36061);e.exports=n(36628)?function(e,t,n){return o.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},8954:(e,t,n)=>{var o=n(38113).document;e.exports=o&&o.documentElement},5100:(e,t,n)=>{e.exports=!n(36628)&&!n(48625)((function(){return 7!=Object.defineProperty(n(5050)("div"),"a",{get:function(){return 7}}).a}))},8467:(e,t,n)=>{var o=n(26688);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},99141:(e,t,n)=>{var o=n(26688);e.exports=Array.isArray||function isArray(e){return"Array"==o(e)}},67334:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},94587:(e,t,n)=>{var o=n(67334),r=n(26688),i=n(62190)("match");e.exports=function(e){var t;return o(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==r(e))}},46445:(e,t,n)=>{"use strict";var o=n(82897),r=n(36061),i=n(55727),a={};n(74216)(a,n(62190)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=o(a,{next:r(1,n)}),i(e,t+" Iterator")}},61195:(e,t,n)=>{"use strict";var o=n(81422),r=n(65772),i=n(17738),a=n(74216),l=n(23988),u=n(46445),s=n(55727),d=n(19002),c=n(62190)("iterator"),p=!([].keys&&"next"in[].keys()),f="keys",m="values",returnThis=function(){return this};e.exports=function(e,t,n,g,v,h,y){u(n,t,g);var _,b,C,getMethod=function(e){if(!p&&e in S)return S[e];switch(e){case f:return function keys(){return new n(this,e)};case m:return function values(){return new n(this,e)}}return function entries(){return new n(this,e)}},w=t+" Iterator",k=v==m,x=!1,S=e.prototype,T=S[c]||S["@@iterator"]||v&&S[v],M=T||getMethod(v),P=v?k?getMethod("entries"):M:void 0,I="Array"==t&&S.entries||T;if(I&&(C=d(I.call(new e)))!==Object.prototype&&C.next&&(s(C,w,!0),o||"function"==typeof C[c]||a(C,c,returnThis)),k&&T&&T.name!==m&&(x=!0,M=function values(){return T.call(this)}),o&&!y||!p&&!x&&S[c]||a(S,c,M),l[t]=M,l[w]=returnThis,v)if(_={values:k?M:getMethod(m),keys:h?M:getMethod(f),entries:P},y)for(b in _)b in S||i(S,b,_[b]);else r(r.P+r.F*(p||x),t,_);return _}},35038:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},23988:e=>{e.exports={}},81422:e=>{e.exports=!1},82897:(e,t,n)=>{var o=n(6365),r=n(7331),i=n(33603),a=n(28034)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=n(5050)("iframe"),o=i.length;for(t.style.display="none",n(8954).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;o--;)delete createDict.prototype[i[o]];return createDict()};e.exports=Object.create||function create(e,t){var n;return null!==e?(Empty.prototype=o(e),n=new Empty,Empty.prototype=null,n[a]=e):n=createDict(),void 0===t?n:r(n,t)}},98558:(e,t,n)=>{var o=n(6365),r=n(5100),i=n(31382),a=Object.defineProperty;t.f=n(36628)?Object.defineProperty:function defineProperty(e,t,n){if(o(e),t=i(t,!0),o(n),r)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},7331:(e,t,n)=>{var o=n(98558),r=n(6365),i=n(42912);e.exports=n(36628)?Object.defineProperties:function defineProperties(e,t){r(e);for(var n,a=i(t),l=a.length,u=0;l>u;)o.f(e,n=a[u++],t[n]);return e}},19002:(e,t,n)=>{var o=n(54040),r=n(26033),i=n(28034)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),o(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},75547:(e,t,n)=>{var o=n(54040),r=n(15703),i=n(59021)(!1),a=n(28034)("IE_PROTO");e.exports=function(e,t){var n,l=r(e),u=0,s=[];for(n in l)n!=a&&o(l,n)&&s.push(n);for(;t.length>u;)o(l,n=t[u++])&&(~i(s,n)||s.push(n));return s}},42912:(e,t,n)=>{var o=n(75547),r=n(33603);e.exports=Object.keys||function keys(e){return o(e,r)}},36061:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},17738:(e,t,n)=>{var o=n(38113),r=n(74216),i=n(54040),a=n(25078)("src"),l=n(20646),u="toString",s=(""+l).split(u);n(60066).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,l){var u="function"==typeof n;u&&(i(n,"name")||r(n,"name",t)),e[t]!==n&&(u&&(i(n,a)||r(n,a,e[t]?""+e[t]:s.join(String(t)))),e===o?e[t]=n:l?e[t]?e[t]=n:r(e,t,n):(delete e[t],r(e,t,n)))})(Function.prototype,u,(function toString(){return"function"==typeof this&&this[a]||l.call(this)}))},62404:(e,t,n)=>{"use strict";var o=n(20106),r=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==o(e))throw new TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},43288:(e,t,n)=>{"use strict";var o,r,i=n(74859),a=RegExp.prototype.exec,l=String.prototype.replace,u=a,s=(o=/a/,r=/b*/g,a.call(o,"a"),a.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),d=void 0!==/()??/.exec("")[1];(s||d)&&(u=function exec(e){var t,n,o,r,u=this;return d&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),s&&(t=u.lastIndex),o=a.call(u,e),s&&o&&(u.lastIndex=u.global?o.index+o[0].length:t),d&&o&&o.length>1&&l.call(o[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(o[r]=void 0)})),o}),e.exports=u},55727:(e,t,n)=>{var o=n(98558).f,r=n(54040),i=n(62190)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,i)&&o(e,i,{configurable:!0,value:t})}},28034:(e,t,n)=>{var o=n(8655)("keys"),r=n(25078);e.exports=function(e){return o[e]||(o[e]=r(e))}},8655:(e,t,n)=>{var o=n(60066),r=n(38113),i="__core-js_shared__",a=r[i]||(r[i]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:o.version,mode:n(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},11987:(e,t,n)=>{var o=n(6365),r=n(22761),i=n(62190)("species");e.exports=function(e,t){var n,a=o(e).constructor;return void 0===a||null==(n=o(a)[i])?t:r(n)}},10225:(e,t,n)=>{"use strict";var o=n(48625);e.exports=function(e,t){return!!e&&o((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},12070:(e,t,n)=>{var o=n(3338),r=n(61622);e.exports=function(e){return function(t,n){var i,a,l=String(r(t)),u=o(n),s=l.length;return u<0||u>=s?e?"":void 0:(i=l.charCodeAt(u))<55296||i>56319||u+1===s||(a=l.charCodeAt(u+1))<56320||a>57343?e?l.charAt(u):i:e?l.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},78615:(e,t,n)=>{var o=n(3338),r=Math.max,i=Math.min;e.exports=function(e,t){return(e=o(e))<0?r(e+t,0):i(e,t)}},3338:e=>{var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},15703:(e,t,n)=>{var o=n(8467),r=n(61622);e.exports=function(e){return o(r(e))}},26078:(e,t,n)=>{var o=n(3338),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},26033:(e,t,n)=>{var o=n(61622);e.exports=function(e){return Object(o(e))}},31382:(e,t,n)=>{var o=n(67334);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},25078:e=>{var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},62190:(e,t,n)=>{var o=n(8655)("wks"),r=n(25078),i=n(38113).Symbol,a="function"==typeof i;(e.exports=function(e){return o[e]||(o[e]=a&&i[e]||(a?i:r)("Symbol."+e))}).store=o},64434:(e,t,n)=>{"use strict";var o=n(65772),r=n(78309)(2);o(o.P+o.F*!n(10225)([].filter,!0),"Array",{filter:function filter(e){return r(this,e,arguments[1])}})},71954:(e,t,n)=>{"use strict";var o=n(65772),r=n(78309)(5),i="find",a=!0;i in[]&&Array(1).find((function(){a=!1})),o(o.P+o.F*a,"Array",{find:function find(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),n(42094)(i)},12897:(e,t,n)=>{"use strict";var o=n(42094),r=n(35038),i=n(23988),a=n(15703);e.exports=n(61195)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},90286:(e,t,n)=>{"use strict";var o=n(65772),r=n(78309)(1);o(o.P+o.F*!n(10225)([].map,!0),"Array",{map:function map(e){return r(this,e,arguments[1])}})},99745:(e,t,n)=>{var o=n(98558).f,r=Function.prototype,i=/^\s*function ([^ (]*)/,a="name";a in r||n(36628)&&o(r,a,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},76139:(e,t,n)=>{"use strict";var o=n(20106),r={};r[n(62190)("toStringTag")]="z",r+""!="[object z]"&&n(17738)(Object.prototype,"toString",(function toString(){return"[object "+o(this)+"]"}),!0)},25846:(e,t,n)=>{"use strict";var o=n(43288);n(65772)({target:"RegExp",proto:!0,forced:o!==/./.exec},{exec:o})},64828:(e,t,n)=>{"use strict";var o=n(6365),r=n(26078),i=n(88492),a=n(62404);n(48897)("match",1,(function(e,t,n,l){return[function match(n){var o=e(this),r=null==n?void 0:n[t];return void 0!==r?r.call(n,o):new RegExp(n)[t](String(o))},function(e){var t=l(n,e,this);if(t.done)return t.value;var u=o(e),s=String(this);if(!u.global)return a(u,s);var d=u.unicode;u.lastIndex=0;for(var c,p=[],f=0;null!==(c=a(u,s));){var m=String(c[0]);p[f]=m,""===m&&(u.lastIndex=i(s,r(u.lastIndex),d)),f++}return 0===f?null:p}]}))},84208:(e,t,n)=>{"use strict";var o=n(6365),r=n(26033),i=n(26078),a=n(3338),l=n(88492),u=n(62404),s=Math.max,d=Math.min,c=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g;n(48897)("replace",2,(function(e,t,n,m){return[function replace(o,r){var i=e(this),a=null==o?void 0:o[t];return void 0!==a?a.call(o,i,r):n.call(String(i),o,r)},function(e,t){var r=m(n,e,this,t);if(r.done)return r.value;var c=o(e),p=String(this),f="function"==typeof t;f||(t=String(t));var g=c.global;if(g){var v=c.unicode;c.lastIndex=0}for(var h=[];;){var y=u(c,p);if(null===y)break;if(h.push(y),!g)break;""===String(y[0])&&(c.lastIndex=l(p,i(c.lastIndex),v))}for(var _,b="",C=0,w=0;w<h.length;w++){y=h[w];for(var k=String(y[0]),x=s(d(a(y.index),p.length),0),S=[],T=1;T<y.length;T++)S.push(void 0===(_=y[T])?_:String(_));var M=y.groups;if(f){var P=[k].concat(S,x,p);void 0!==M&&P.push(M);var I=String(t.apply(void 0,P))}else I=getSubstitution(k,p,x,S,M,t);x>=C&&(b+=p.slice(C,x)+I,C=x+k.length)}return b+p.slice(C)}];function getSubstitution(e,t,o,i,a,l){var u=o+e.length,s=i.length,d=f;return void 0!==a&&(a=r(a),d=p),n.call(l,d,(function(n,r){var l;switch(r.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,o);case"'":return t.slice(u);case"<":l=a[r.slice(1,-1)];break;default:var d=+r;if(0===d)return n;if(d>s){var p=c(d/10);return 0===p?n:p<=s?void 0===i[p-1]?r.charAt(1):i[p-1]+r.charAt(1):n}l=i[d-1]}return void 0===l?"":l}))}}))},99236:(e,t,n)=>{"use strict";var o=n(94587),r=n(6365),i=n(11987),a=n(88492),l=n(26078),u=n(62404),s=n(43288),d=n(48625),c=Math.min,p=[].push,f=4294967295,m=!d((function(){RegExp(f,"y")}));n(48897)("split",2,(function(e,t,n,d){var g;return g="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,t){var r=String(this);if(void 0===e&&0===t)return[];if(!o(e))return n.call(r,e,t);for(var i,a,l,u=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),c=0,m=void 0===t?f:t>>>0,g=new RegExp(e.source,d+"g");(i=s.call(g,r))&&!((a=g.lastIndex)>c&&(u.push(r.slice(c,i.index)),i.length>1&&i.index<r.length&&p.apply(u,i.slice(1)),l=i[0].length,c=a,u.length>=m));)g.lastIndex===i.index&&g.lastIndex++;return c===r.length?!l&&g.test("")||u.push(""):u.push(r.slice(c)),u.length>m?u.slice(0,m):u}:"0".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function split(n,o){var r=e(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,r,o):g.call(String(r),n,o)},function(e,t){var o=d(g,e,this,t,g!==n);if(o.done)return o.value;var s=r(e),p=String(this),v=i(s,RegExp),h=s.unicode,y=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(m?"y":"g"),_=new v(m?s:"^(?:"+s.source+")",y),b=void 0===t?f:t>>>0;if(0===b)return[];if(0===p.length)return null===u(_,p)?[p]:[];for(var C=0,w=0,k=[];w<p.length;){_.lastIndex=m?w:0;var x,S=u(_,m?p:p.slice(w));if(null===S||(x=c(l(_.lastIndex+(m?0:w)),p.length))===C)w=a(p,w,h);else{if(k.push(p.slice(C,w)),k.length===b)return k;for(var T=1;T<=S.length-1;T++)if(k.push(S[T]),k.length===b)return k;w=C=x}}return k.push(p.slice(C)),k}]}))},38081:(e,t,n)=>{"use strict";var o=n(65772),r=n(59021)(!0);o(o.P,"Array",{includes:function includes(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),n(42094)("includes")},93085:(e,t,n)=>{for(var o=n(12897),r=n(42912),i=n(17738),a=n(38113),l=n(74216),u=n(23988),s=n(62190),d=s("iterator"),c=s("toStringTag"),p=u.Array,f={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},m=r(f),g=0;g<m.length;g++){var v,h=m[g],y=f[h],_=a[h],b=_&&_.prototype;if(b&&(b[d]||l(b,d,p),b[c]||l(b,c,h),u[h]=p,y))for(v in o)b[v]||i(b,v,o[v],!0)}},86248:e=>{var t=function(e){"use strict";var t,n=Object.prototype,o=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",l=r.toStringTag||"@@toStringTag";function define(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{define({},"")}catch(e){define=function(e,t,n){return e[t]=n}}function wrap(e,t,n,o){var r=t&&t.prototype instanceof Generator?t:Generator,i=Object.create(r.prototype),a=new Context(o||[]);return i._invoke=function makeInvokeMethod(e,t,n){var o=u;return function invoke(r,i){if(o===d)throw new Error("Generator is already running");if(o===c){if("throw"===r)throw i;return doneResult()}for(n.method=r,n.arg=i;;){var a=n.delegate;if(a){var l=maybeInvokeDelegate(a,n);if(l){if(l===p)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===u)throw o=c,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var f=tryCatch(e,t,n);if("normal"===f.type){if(o=n.done?c:s,f.arg===p)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=c,n.method="throw",n.arg=f.arg)}}}(e,n,a),i}function tryCatch(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=wrap;var u="suspendedStart",s="suspendedYield",d="executing",c="completed",p={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var f={};f[i]=function(){return this};var m=Object.getPrototypeOf,g=m&&m(m(values([])));g&&g!==n&&o.call(g,i)&&(f=g);var v=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(f);function defineIteratorMethods(e){["next","throw","return"].forEach((function(t){define(e,t,(function(e){return this._invoke(t,e)}))}))}function AsyncIterator(e,t){function invoke(n,r,i,a){var l=tryCatch(e[n],e,r);if("throw"!==l.type){var u=l.arg,s=u.value;return s&&"object"==typeof s&&o.call(s,"__await")?t.resolve(s.__await).then((function(e){invoke("next",e,i,a)}),(function(e){invoke("throw",e,i,a)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return invoke("throw",e,i,a)}))}a(l.arg)}var n;this._invoke=function enqueue(e,o){function callInvokeWithMethodAndArg(){return new t((function(t,n){invoke(e,o,t,n)}))}return n=n?n.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(e,n){var o=e.iterator[n.method];if(o===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,maybeInvokeDelegate(e,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=tryCatch(o,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,p;var i=r.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function pushTryEntry(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function resetTryEntry(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Context(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function next(){for(;++r<e.length;)if(o.call(e,r))return next.value=e[r],next.done=!1,next;return next.value=t,next.done=!0,next};return a.next=a}}return{next:doneResult}}function doneResult(){return{value:t,done:!0}}return GeneratorFunction.prototype=v.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunction.displayName=define(GeneratorFunctionPrototype,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===GeneratorFunction||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,define(e,l,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[a]=function(){return this},e.AsyncIterator=AsyncIterator,e.async=function(t,n,o,r,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,n,o,r),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},defineIteratorMethods(v),define(v,l,"Generator"),v[i]=function(){return this},v.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function next(){for(;t.length;){var n=t.pop();if(n in e)return next.value=n,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var n in this)"t"===n.charAt(0)&&o.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function handle(o,r){return a.type="throw",a.arg=e,n.next=o,r&&(n.method="next",n.arg=t),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var l=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(l&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(l){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),resetTryEntry(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;resetTryEntry(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,o){return this.delegate={iterator:values(e),resultName:n,nextLoc:o},"next"===this.method&&(this.arg=t),p}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}},18194:e=>{"use strict";e.exports=wp.i18n}},t={};function __webpack_require__(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,__webpack_require__),r.exports}(()=>{"use strict";var e=__webpack_require__(67971);__webpack_require__(38081);var t=e(__webpack_require__(33130)),n=e(__webpack_require__(42511)),o=e(__webpack_require__(18754)),r=e(__webpack_require__(53425)),i=e(__webpack_require__(64087)),a=e(__webpack_require__(54577)),l=e(__webpack_require__(66882)),u=e(__webpack_require__(12946)),s=e(__webpack_require__(93213)),d=e(__webpack_require__(94265)),c=e(__webpack_require__(25509)),p=Marionette.Application.extend({config:{},modules:{},initModules:function initModules(){var e=__webpack_require__(7693),p=__webpack_require__(81891),f=__webpack_require__(7600),m=__webpack_require__(78550),g=__webpack_require__(65726),v=__webpack_require__(19247);this.modules={queryControl:new e,forms:new a.default,library:new p,customCSS:new t.default,globalWidget:new r.default,flipBox:new f,motionFX:new n.default,shareButtons:new m,assetsManager:new g,themeElements:new v,themeBuilder:new i.default,siteEditor:new u.default,screenshots:new l.default,woocommerce:new d.default,popup:new o.default,videoPlaylistModule:new s.default,ScrollSnapModule:new c.default}},ajax:{prepareArgs:function prepareArgs(e){return e[0]="pro_"+e[0],e},send:function send(){return elementorCommon.ajax.send.apply(elementorCommon.ajax,this.prepareArgs(arguments))},addRequest:function addRequest(){return elementorCommon.ajax.addRequest.apply(elementorCommon.ajax,this.prepareArgs(arguments))}},translate:function translate(e,t){return elementorCommon.translate(e,null,t,this.config.i18n)},onStart:function onStart(){var e=this;this.config=elementorProEditorConfig,this.initModules(),jQuery(window).on("elementor:init",(function(){return e.onElementorInit()})).on("elementor/connect/success/editor-pro-activate",this.onActivateSuccess)},onElementorInit:function onElementorInit(){var e=this;elementor.on("preview:loaded",(function(){return e.onElementorPreviewLoaded()})),elementorPro.libraryRemoveGetProButtons(),elementorCommon.debug.addURLToWatch("elementor-pro/assets")},onElementorPreviewLoaded:function onElementorPreviewLoaded(){elementor.$preview[0].contentWindow.elementorPro=this},libraryRemoveGetProButtons:function libraryRemoveGetProButtons(){elementor.hooks.addFilter("elementor/editor/template-library/template/action-button",(function(e,t){var n,o;return void 0===t.accessLevel||void 0===(null===(n=elementor.config)||void 0===n||null===(o=n.library_connect)||void 0===o?void 0:o.current_access_level)?t.isPro&&!elementorPro.config.isActive?"#tmpl-elementor-pro-template-library-activate-license-button":"#tmpl-elementor-template-library-insert-button":t.accessLevel>0&&!elementorPro.config.isActive?"#tmpl-elementor-pro-template-library-activate-license-button":t.accessLevel>elementor.config.library_connect.current_access_level?e:"#tmpl-elementor-template-library-insert-button"}))},onActivateSuccess:function onActivateSuccess(){elementor.noticeBar.onCloseClick(),elementor.config.library_connect.is_connected=!0,elementorPro.config.isActive=!0,elementor.notifications.showToast({message:elementor.translate("connected_successfully")})},validateHTMLTag:function validateHTMLTag(e){return["article","aside","div","footer","h1","h2","h3","h4","h5","h6","header","main","nav","p","section","span"].includes(e.toLowerCase())?e:"div"}});window.elementorPro=new p,elementorPro.start()})()})();PK!(�;�^�^"assets/js/elements-handlers.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[437],{7319:(e,t,n)=>{"use strict";var s=n(7914),o=s(n(556)),r=s(n(4113)),l=s(n(2398)),i=s(n(3615)),a=s(n(3524)),d=s(n(676)),u=s(n(5169)),c=s(n(6852)),m=s(n(9047)),h=s(n(6463)),f=s(n(7133)),g=s(n(1871)),_=s(n(3781)),p=s(n(7786)),v=s(n(7466)),b=s(n(4173)),M=s(n(1273));const extendDefaultHandlers=e=>({...e,...{animatedText:o.default,carousel:r.default,countdown:l.default,hotspot:i.default,form:a.default,gallery:d.default,lottie:u.default,nav_menu:c.default,popup:m.default,posts:h.default,share_buttons:f.default,slides:g.default,social:_.default,themeBuilder:v.default,themeElements:b.default,woocommerce:M.default,tableOfContents:p.default}});elementorProFrontend.on("elementor-pro/modules/init:before",(()=>{elementorFrontend.hooks.addFilter("elementor-pro/frontend/handlers",extendDefaultHandlers)}))},2993:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.close=void 0;const o=new(s(n(8544)).default)("eicon"),r={get element(){return o.createSvgElement("close",{path:"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z",width:1e3,height:1e3})}};t.close=r},8544:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(5526));class IconsManager{constructor(e){if(this.prefix=`${e}-`,!IconsManager.symbolsContainer){const e="e-font-icon-svg-symbols";IconsManager.symbolsContainer=document.getElementById(e),IconsManager.symbolsContainer||(IconsManager.symbolsContainer=document.createElementNS("http://www.w3.org/2000/svg","svg"),IconsManager.symbolsContainer.setAttributeNS(null,"style","display: none;"),IconsManager.symbolsContainer.setAttributeNS(null,"class",e),document.body.appendChild(IconsManager.symbolsContainer))}}createSvgElement(e,{path:t,width:n,height:s}){const o=this.prefix+e,r="#"+this.prefix+e;if(!IconsManager.iconsUsageList.includes(o)){if(!IconsManager.symbolsContainer.querySelector(r)){const e=document.createElementNS("http://www.w3.org/2000/svg","symbol");e.id=o,e.innerHTML='<path d="'+t+'"></path>',e.setAttributeNS(null,"viewBox","0 0 "+n+" "+s),IconsManager.symbolsContainer.appendChild(e)}IconsManager.iconsUsageList.push(o)}const l=document.createElementNS("http://www.w3.org/2000/svg","svg");return l.innerHTML='<use xlink:href="'+r+'" />',l.setAttributeNS(null,"class","e-font-icon-svg e-"+o),l}}t.default=IconsManager,(0,o.default)(IconsManager,"symbolsContainer",void 0),(0,o.default)(IconsManager,"iconsUsageList",[])},556:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("animated-headline",(()=>n.e(26).then(n.bind(n,7750))))}}t.default=_default},4113:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("media-carousel",(()=>n.e(534).then(n.bind(n,7393)))),elementorFrontend.elementsHandler.attachHandler("testimonial-carousel",(()=>n.e(369).then(n.bind(n,1507)))),elementorFrontend.elementsHandler.attachHandler("reviews",(()=>n.e(369).then(n.bind(n,1507))))}}t.default=_default},2398:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("countdown",(()=>n.e(804).then(n.bind(n,7097))))}}t.default=_default},3524:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("form",[()=>n.e(680).then(n.bind(n,9706)),()=>n.e(680).then(n.bind(n,7300)),()=>n.e(680).then(n.bind(n,611)),()=>n.e(680).then(n.bind(n,4610)),()=>n.e(680).then(n.bind(n,9228)),()=>n.e(680).then(n.bind(n,6374))]),elementorFrontend.elementsHandler.attachHandler("subscribe",[()=>n.e(680).then(n.bind(n,9706)),()=>n.e(680).then(n.bind(n,7300)),()=>n.e(680).then(n.bind(n,611))])}}t.default=_default},676:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("gallery",(()=>n.e(121).then(n.bind(n,5357))))}}t.default=_default},3615:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("hotspot",(()=>n.e(888).then(n.bind(n,9556))))}}t.default=_default},5169:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("lottie",(()=>n.e(288).then(n.bind(n,4927))))}}t.default=_default},6852:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),jQuery.fn.smartmenus&&(jQuery.SmartMenus.prototype.isCSSOn=function(){return!0},elementorFrontend.config.is_rtl&&(jQuery.fn.smartmenus.defaults.rightToLeftSubMenus=!0)),elementorFrontend.elementsHandler.attachHandler("nav-menu",(()=>n.e(42).then(n.bind(n,5389))))}}t.default=_default},2731:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(9545)),r=s(n(4339)),l=n(2993);class _default extends elementorModules.frontend.Document{bindEvents(){const e=this.getDocumentSettings("open_selector");e&&elementorFrontend.elements.$body.on("click",e,this.showModal.bind(this))}startTiming(){new r.default(this.getDocumentSettings("timing"),this).check()&&this.initTriggers()}initTriggers(){this.triggers=new o.default(this.getDocumentSettings("triggers"),this)}showModal(e){const t=this.getDocumentSettings();if(!this.isEdit){if(!elementorFrontend.isWPPreviewMode()){if(this.getStorage("disable"))return;if(e&&elementorProFrontend.modules.popup.popupPopped&&t.avoid_multiple_popups)return}this.$element=jQuery(this.elementHTML),this.elements.$elements=this.$element.find(this.getSettings("selectors.elements"))}const n=this.getModal(),s=n.getElements("closeButton");n.setMessage(this.$element).show(),this.isEdit||(t.close_button_delay&&(s.hide(),clearTimeout(this.closeButtonTimeout),this.closeButtonTimeout=setTimeout((()=>s.show()),1e3*t.close_button_delay)),super.runElementsHandlers()),this.setEntranceAnimation(),t.timing&&t.timing.times_count||this.countTimes(),elementorProFrontend.modules.popup.popupPopped=!0}setEntranceAnimation(){const e=this.getModal().getElements("widgetContent"),t=this.getDocumentSettings(),n=elementorFrontend.getCurrentDeviceSetting(t,"entrance_animation");if(this.currentAnimation&&e.removeClass(this.currentAnimation),this.currentAnimation=n,!n)return;const s=t.entrance_animation_duration.size;e.addClass(n),setTimeout((()=>e.removeClass(n)),1e3*s)}setExitAnimation(){const e=this.getModal(),t=this.getDocumentSettings(),n=e.getElements("widgetContent"),s=elementorFrontend.getCurrentDeviceSetting(t,"exit_animation"),o=s?t.entrance_animation_duration.size:0;setTimeout((()=>{s&&n.removeClass(s+" reverse"),this.isEdit||(this.$element.remove(),e.getElements("widget").hide())}),1e3*o),s&&n.addClass(s+" reverse")}initModal(){let e;this.getModal=()=>{if(!e){const t=this.getDocumentSettings(),n=this.getSettings("id"),triggerPopupEvent=e=>elementorFrontend.elements.$document.trigger("elementor/popup/"+e,[n,this]);let s="elementor-popup-modal";t.classes&&(s+=" "+t.classes);const o={id:"elementor-popup-modal-"+n,className:s,closeButton:!0,preventScroll:t.prevent_scroll,onShow:()=>triggerPopupEvent("show"),onHide:()=>triggerPopupEvent("hide"),effects:{hide:()=>{t.timing&&t.timing.times_count&&this.countTimes(),this.setExitAnimation()},show:"show"},hide:{auto:!!t.close_automatically,autoDelay:1e3*t.close_automatically,onBackgroundClick:!t.prevent_close_on_background_click,onOutsideClick:!t.prevent_close_on_background_click,onEscKeyPress:!t.prevent_close_on_esc_key,ignore:".flatpickr-calendar"},position:{enable:!1}};elementorFrontend.config.experimentalFeatures.e_font_icon_svg&&(o.closeButtonOptions={iconElement:l.close.element}),o.closeButtonClass="eicon-close",e=elementorFrontend.getDialogsManager().createWidget("lightbox",o),e.getElements("widgetContent").addClass("animated");const r=e.getElements("closeButton");this.isEdit&&(r.off("click"),e.hide=()=>{}),this.setCloseButtonPosition()}return e}}setCloseButtonPosition(){const e=this.getModal(),t=this.getDocumentSettings("close_button_position");e.getElements("closeButton").appendTo(e.getElements("outside"===t?"widget":"widgetContent"))}disable(){this.setStorage("disable",!0)}setStorage(e,t,n){elementorFrontend.storage.set(`popup_${this.getSettings("id")}_${e}`,t,n)}getStorage(e,t){return elementorFrontend.storage.get(`popup_${this.getSettings("id")}_${e}`,t)}countTimes(){const e=this.getStorage("times")||0;this.setStorage("times",e+1)}runElementsHandlers(){}async onInit(){super.onInit(),window.DialogsManager||await elementorFrontend.utils.assetsLoader.load("script","dialog"),this.initModal(),this.isEdit?this.showModal():(this.$element.show().remove(),this.elementHTML=this.$element[0].outerHTML,elementorFrontend.isEditMode()||(elementorFrontend.isWPPreviewMode()&&elementorFrontend.config.post.id===this.getSettings("id")?this.showModal():this.startTiming()))}onSettingsChange(e){const t=Object.keys(e.changed)[0];-1!==t.indexOf("entrance_animation")&&this.setEntranceAnimation(),"exit_animation"===t&&this.setExitAnimation(),"close_button_position"===t&&this.setCloseButtonPosition()}}t.default=_default},9047:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(2731));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.hooks.addAction("elementor/frontend/documents-manager/init-classes",this.addDocumentClass),elementorFrontend.elementsHandler.attachHandler("form",(()=>n.e(50).then(n.bind(n,3573)))),elementorFrontend.on("components:init",(()=>this.onFrontendComponentsInit())),elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode()||this.setViewsAndSessions()}addDocumentClass(e){e.addDocumentClass("popup",o.default)}setViewsAndSessions(){const e=elementorFrontend.storage.get("pageViews")||0;elementorFrontend.storage.set("pageViews",e+1);if(!elementorFrontend.storage.get("activeSession",{session:!0})){elementorFrontend.storage.set("activeSession",!0,{session:!0});const e=elementorFrontend.storage.get("sessions")||0;elementorFrontend.storage.set("sessions",e+1)}}showPopup(e){const t=elementorFrontend.documentsManager.documents[e.id];if(!t)return;const n=t.getModal();e.toggle&&n.isVisible()?n.hide():t.showModal()}closePopup(e,t){const n=jQuery(t.target).parents('[data-elementor-type="popup"]').data("elementorId");if(!n)return;const s=elementorFrontend.documentsManager.documents[n];s.getModal().hide(),e.do_not_show_again&&s.disable()}onFrontendComponentsInit(){elementorFrontend.utils.urlActions.addAction("popup:open",(e=>this.showPopup(e))),elementorFrontend.utils.urlActions.addAction("popup:close",((e,t)=>this.closePopup(e,t)))}}t.default=_default},4339:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(275)),r=s(n(1795)),l=s(n(2894)),i=s(n(1306)),a=s(n(9912)),d=s(n(3245)),u=s(n(6850)),c=s(n(8937));class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t,this.timingClasses={page_views:o.default,sessions:r.default,url:l.default,sources:i.default,logged_in:a.default,devices:d.default,times:u.default,browsers:c.default}}check(){const e=this.getSettings();let t=!0;return jQuery.each(this.timingClasses,((n,s)=>{if(!e[n])return;new s(e,this.document).check()||(t=!1)})),t}}t.default=_default},3565:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t}getTimingSetting(e){return this.getSettings(this.getName()+"_"+e)}}t.default=_default},8937:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"browsers"}check(){if("all"===this.getTimingSetting("browsers"))return!0;const e=this.getTimingSetting("browsers_options"),t=elementorFrontend.utils.environment;return e.some((e=>t[e]))}}t.default=_default},3245:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"devices"}check(){return-1!==this.getTimingSetting("devices").indexOf(elementorFrontend.getCurrentDeviceMode())}}t.default=_default},9912:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"logged_in"}check(){const e=elementorFrontend.config.user;if(!e)return!0;if("all"===this.getTimingSetting("users"))return!1;return!this.getTimingSetting("roles").filter((t=>-1!==e.roles.indexOf(t))).length}}t.default=_default},275:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"page_views"}check(){const e=elementorFrontend.storage.get("pageViews"),t=this.getName();let n=this.document.getStorage(t+"_initialPageViews");return n||(this.document.setStorage(t+"_initialPageViews",e),n=e),e-n>=this.getTimingSetting("views")}}t.default=_default},1795:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"sessions"}check(){const e=elementorFrontend.storage.get("sessions"),t=this.getName();let n=this.document.getStorage(t+"_initialSessions");return n||(this.document.setStorage(t+"_initialSessions",e),n=e),e-n>=this.getTimingSetting("sessions")}}t.default=_default},1306:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"sources"}check(){const e=this.getTimingSetting("sources");if(3===e.length)return!0;const t=document.referrer.replace(/https?:\/\/(?:www\.)?/,"");return 0===t.indexOf(location.host.replace("www.",""))?-1!==e.indexOf("internal"):-1!==e.indexOf("external")||-1!==e.indexOf("search")&&/^(google|yahoo|bing|yandex|baidu)\./.test(t)}}t.default=_default},6850:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"times"}check(){const e=this.document.getStorage("times")||0;return this.getTimingSetting("times")>e}}t.default=_default},2894:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(3565));class _default extends o.default{getName(){return"url"}check(){const e=this.getTimingSetting("url"),t=this.getTimingSetting("action"),n=document.referrer;if("regex"!==t)return"hide"===t^-1!==n.indexOf(e);let s;try{s=new RegExp(e)}catch(e){return!1}return s.test(n)}}t.default=_default},9545:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(974)),r=s(n(8330)),l=s(n(1220)),i=s(n(9863)),a=s(n(1055)),d=s(n(9972));class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t,this.triggers=[],this.triggerClasses={page_load:o.default,scrolling:r.default,scrolling_to:l.default,click:i.default,inactivity:a.default,exit_intent:d.default},this.runTriggers()}runTriggers(){const e=this.getSettings();jQuery.each(this.triggerClasses,((t,n)=>{if(!e[t])return;const s=new n(e,(()=>this.onTriggerFired()));s.run(),this.triggers.push(s)}))}destroyTriggers(){this.triggers.forEach((e=>e.destroy())),this.triggers=[]}onTriggerFired(){this.document.showModal(!0),this.destroyTriggers()}}t.default=_default},144:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(e,t){super(e),this.callback=t}getTriggerSetting(e){return this.getSettings(this.getName()+"_"+e)}}t.default=_default},9863:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{constructor(...e){super(...e),this.checkClick=this.checkClick.bind(this),this.clicksCount=0}getName(){return"click"}checkClick(){this.clicksCount++,this.clicksCount===this.getTriggerSetting("times")&&this.callback()}run(){elementorFrontend.elements.$body.on("click",this.checkClick)}destroy(){elementorFrontend.elements.$body.off("click",this.checkClick)}}t.default=_default},9972:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{constructor(...e){super(...e),this.detectExitIntent=this.detectExitIntent.bind(this)}getName(){return"exit_intent"}detectExitIntent(e){e.clientY<=0&&this.callback()}run(){elementorFrontend.elements.$window.on("mouseleave",this.detectExitIntent)}destroy(){elementorFrontend.elements.$window.off("mouseleave",this.detectExitIntent)}}t.default=_default},1055:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{constructor(...e){super(...e),this.restartTimer=this.restartTimer.bind(this)}getName(){return"inactivity"}run(){this.startTimer(),elementorFrontend.elements.$document.on("keypress mousemove",this.restartTimer)}startTimer(){this.timeOut=setTimeout(this.callback,1e3*this.getTriggerSetting("time"))}clearTimer(){clearTimeout(this.timeOut)}restartTimer(){this.clearTimer(),this.startTimer()}destroy(){this.clearTimer(),elementorFrontend.elements.$document.off("keypress mousemove",this.restartTimer)}}t.default=_default},974:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{getName(){return"page_load"}run(){this.timeout=setTimeout(this.callback,1e3*this.getTriggerSetting("delay"))}destroy(){clearTimeout(this.timeout)}}t.default=_default},1220:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{getName(){return"scrolling_to"}run(){let e;try{e=jQuery(this.getTriggerSetting("selector"))}catch(e){return}this.waypointInstance=elementorFrontend.waypoint(e,this.callback)[0]}destroy(){this.waypointInstance&&this.waypointInstance.destroy()}}t.default=_default},8330:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=s(n(144));class _default extends o.default{constructor(...e){super(...e),this.checkScroll=this.checkScroll.bind(this),this.lastScrollOffset=0}getName(){return"scrolling"}checkScroll(){const e=scrollY>this.lastScrollOffset?"down":"up",t=this.getTriggerSetting("direction");if(this.lastScrollOffset=scrollY,e!==t)return;if("up"===e)return void this.callback();const n=elementorFrontend.elements.$document.height()-innerHeight;scrollY/n*100>=this.getTriggerSetting("offset")&&this.callback()}run(){elementorFrontend.elements.$window.on("scroll",this.checkScroll)}destroy(){elementorFrontend.elements.$window.off("scroll",this.checkScroll)}}t.default=_default},6463:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),["classic","full_content","cards"].forEach((e=>{elementorFrontend.elementsHandler.attachHandler("posts",(()=>n.e(985).then(n.bind(n,9738))),e)})),elementorFrontend.elementsHandler.attachHandler("posts",(()=>n.e(287).then(n.bind(n,2926))),"classic"),elementorFrontend.elementsHandler.attachHandler("posts",(()=>n.e(287).then(n.bind(n,2926))),"full_content"),elementorFrontend.elementsHandler.attachHandler("posts",(()=>n.e(287).then(n.bind(n,8014))),"cards"),elementorFrontend.elementsHandler.attachHandler("portfolio",(()=>n.e(824).then(n.bind(n,2763))))}}t.default=_default},7133:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("share-buttons",(()=>n.e(58).then(n.bind(n,9327))))}}t.default=_default},1871:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("slides",(()=>n.e(114).then(n.bind(n,7956))))}}t.default=_default},3781:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("facebook-button",(()=>n.e(443).then(n.bind(n,908)))),elementorFrontend.elementsHandler.attachHandler("facebook-comments",(()=>n.e(443).then(n.bind(n,908)))),elementorFrontend.elementsHandler.attachHandler("facebook-embed",(()=>n.e(443).then(n.bind(n,908)))),elementorFrontend.elementsHandler.attachHandler("facebook-page",(()=>n.e(443).then(n.bind(n,908))))}}t.default=_default},7786:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("table-of-contents",(()=>n.e(838).then(n.bind(n,5791))))}}t.default=_default},7466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),["archive_classic","archive_full_content","archive_cards"].forEach((e=>{elementorFrontend.elementsHandler.attachHandler("archive-posts",(()=>n.e(685).then(n.bind(n,2231))),e)})),elementorFrontend.elementsHandler.attachHandler("archive-posts",(()=>n.e(685).then(n.bind(n,3824))),"archive_classic"),elementorFrontend.elementsHandler.attachHandler("archive-posts",(()=>n.e(685).then(n.bind(n,3824))),"archive_full_content"),elementorFrontend.elementsHandler.attachHandler("archive-posts",(()=>n.e(685).then(n.bind(n,7177))),"archive_cards"),jQuery((function(){var e=location.search.match(/theme_template_id=(\d*)/),t=e?jQuery(".elementor-"+e[1]):[];t.length&&jQuery("html, body").animate({scrollTop:t.offset().top-window.innerHeight/2})}))}}t.default=_default},4173:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("search-form",(()=>n.e(858).then(n.bind(n,188))))}}t.default=_default},1273:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("woocommerce-menu-cart",(()=>n.e(102).then(n.bind(n,9428)))),elementorFrontend.elementsHandler.attachHandler("woocommerce-checkout-page",(()=>n.e(124).then(n.bind(n,9903)))),elementorFrontend.elementsHandler.attachHandler("woocommerce-cart",(()=>n.e(859).then(n.bind(n,3898)))),elementorFrontend.elementsHandler.attachHandler("woocommerce-my-account",(()=>n.e(979).then(n.bind(n,4838))))}}t.default=_default}},e=>{"use strict";e.O(0,[819],(()=>{return t=7319,e(e.s=t);var t}));e.O()}]);PK!��}Nll4assets/js/gallery.6af8f19f91f1b16c3ab6.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[121],{5357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class galleryHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".elementor-gallery__container",galleryTitles:".elementor-gallery-title",galleryImages:".e-gallery-image",galleryItemOverlay:".elementor-gallery-item__overlay",galleryItemContent:".elementor-gallery-item__content"},classes:{activeTitle:"elementor-item-active"}}}getDefaultElements(){const{selectors:e}=this.getSettings(),t={$container:this.$element.find(e.container),$titles:this.$element.find(e.galleryTitles)};return t.$items=t.$container.children(),t.$images=t.$items.children(e.galleryImages),t.$itemsOverlay=t.$items.children(e.galleryItemOverlay),t.$itemsContent=t.$items.children(e.galleryItemContent),t.$itemsContentElements=t.$itemsContent.children(),t}getGallerySettings(){const e=this.getElementSettings(),t=elementorFrontend.config.responsive.activeBreakpoints,n=Object.keys(t),i={},a=elementorFrontend.getDeviceSetting("desktop",e,"ideal_row_height");return n.forEach((n=>{if("widescreen"!==n){const a=elementorFrontend.getDeviceSetting(n,e,"ideal_row_height");i[t[n].value]={horizontalGap:elementorFrontend.getDeviceSetting(n,e,"gap").size,verticalGap:elementorFrontend.getDeviceSetting(n,e,"gap").size,columns:elementorFrontend.getDeviceSetting(n,e,"columns"),idealRowHeight:null==a?void 0:a.size}}})),{type:e.gallery_layout,idealRowHeight:null==a?void 0:a.size,container:this.elements.$container,columns:e.columns,aspectRatio:e.aspect_ratio,lastRow:"normal",horizontalGap:elementorFrontend.getDeviceSetting("desktop",e,"gap").size,verticalGap:elementorFrontend.getDeviceSetting("desktop",e,"gap").size,animationDuration:e.content_animation_duration,breakpoints:i,rtl:elementorFrontend.config.is_rtl,lazyLoad:"yes"===e.lazyload}}initGallery(){this.gallery=new EGallery(this.getGallerySettings()),this.toggleAllAnimationsClasses()}removeAnimationClasses(e){e.removeClass(((e,t)=>(t.match(/elementor-animated-item-\S+/g)||[]).join(" ")))}toggleOverlayHoverAnimation(){this.removeAnimationClasses(this.elements.$itemsOverlay);const e=this.getElementSettings("background_overlay_hover_animation");e&&this.elements.$itemsOverlay.addClass("elementor-animated-item--"+e)}toggleOverlayContentAnimation(){this.removeAnimationClasses(this.elements.$itemsContentElements);const e=this.getElementSettings("content_hover_animation");e&&this.elements.$itemsContentElements.addClass("elementor-animated-item--"+e)}toggleOverlayContentSequencedAnimation(){this.elements.$itemsContent.toggleClass("elementor-gallery--sequenced-animation","yes"===this.getElementSettings("content_sequenced_animation"))}toggleImageHoverAnimation(){const e=this.getElementSettings("image_hover_animation");this.removeAnimationClasses(this.elements.$images),e&&this.elements.$images.addClass("elementor-animated-item--"+e)}toggleAllAnimationsClasses(){const e=this.getElementSettings(),t=e.background_overlay_hover_animation||e.content_hover_animation||e.image_hover_animation;this.elements.$items.toggleClass("elementor-animated-content",!!t),this.toggleImageHoverAnimation(),this.toggleOverlayHoverAnimation(),this.toggleOverlayContentAnimation(),this.toggleOverlayContentSequencedAnimation()}toggleAnimationClasses(e){"content_sequenced_animation"===e&&this.toggleOverlayContentSequencedAnimation(),"background_overlay_hover_animation"===e&&this.toggleOverlayHoverAnimation(),"content_hover_animation"===e&&this.toggleOverlayContentAnimation(),"image_hover_animation"===e&&this.toggleImageHoverAnimation()}setGalleryTags(e){this.gallery.setSettings("tags","all"===e?[]:[""+e])}bindEvents(){this.elements.$titles.on("click",this.galleriesNavigationListener.bind(this))}galleriesNavigationListener(e){const t=this.getSettings("classes"),n=jQuery(e.target);this.elements.$titles.removeClass(t.activeTitle),n.addClass(t.activeTitle),this.setGalleryTags(n.data("gallery-index"));setTimeout((()=>this.setLightboxGalleryIndex(n.data("gallery-index"))),1e3)}setLightboxGalleryIndex(e="all"){if("all"===e)return this.elements.$items.attr("data-elementor-lightbox-slideshow","all_"+this.getID());this.elements.$items.not(".e-gallery-item--hidden").attr("data-elementor-lightbox-slideshow",e+"_"+this.getID())}onInit(...e){super.onInit(...e),elementorFrontend.isEditMode()&&1<=this.$element.find(".elementor-widget-empty-icon").length&&this.$element.addClass("elementor-widget-empty"),this.elements.$container.length&&(this.initGallery(),this.elements.$titles.first().trigger("click"))}getSettingsDictionary(){if(this.settingsDictionary)return this.settingsDictionary;const e=elementorFrontend.config.responsive.activeBreakpoints,t=Object.keys(e),n={columns:["columns"],gap:["horizontalGap","verticalGap"],ideal_row_height:["idealRowHeight"]};return t.forEach((t=>{"widescreen"!==t&&(n["columns_"+t]=["breakpoints."+e[t].value+".columns"],n["gap_"+t]=["breakpoints."+e[t].value+".horizontalGap","breakpoints."+e[t].value+".verticalGap"],n["ideal_row_height_"+t]=["breakpoints."+e[t].value+".idealRowHeight"])})),n.aspect_ratio=["aspectRatio"],this.settingsDictionary=n,this.settingsDictionary}onElementChange(e){if(-1!==["background_overlay_hover_animation","content_hover_animation","image_hover_animation","content_sequenced_animation"].indexOf(e))return void this.toggleAnimationClasses(e);const t=this.getSettingsDictionary()[e];if(t){const e=this.getGallerySettings();t.forEach((t=>{this.gallery.setSettings(t,this.getItems(e,t))}))}}onDestroy(){super.onDestroy(),this.gallery&&this.gallery.destroy()}}t.default=galleryHandler}}]);PK!��(gg:assets/js/paypal-button.21471ef12592606560a0.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[256],{9593:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class PayPalHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{button:".elementor-button.elementor-paypal-legacy",errors:".elementor-message-danger"}}}getDefaultElements(){const e=this.getSettings();return{wrapper:this.$element[0],button:this.$element[0].querySelector(e.selectors.button),errors:this.$element[0].querySelectorAll(e.selectors.errors)}}handleClick(e){0<this.elements.errors.length&&(e.preventDefault(),this.elements.errors.forEach((e=>{e.classList.remove("elementor-hidden")})))}bindEvents(){this.elements.button.addEventListener("click",this.handleClick.bind(this))}}t.default=PayPalHandler}}]);PK!Z���Eassets/js/jszip.vendor.9ec53381c344ee903f3e.bundle.min.js.LICENSE.txtnu�[���/*!

JSZip v3.6.0 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>

(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.

JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/master/LICENSE
*/
PK!��Ϡ��Fassets/js/woocommerce-checkout-page.ca82a3335f2823da4209.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[124],{427:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Base extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{stickyRightColumn:".e-sticky-right-column"},classes:{stickyRightColumnActive:"e-sticky-right-column--active"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$stickyRightColumn:this.$element.find(e.stickyRightColumn)}}bindEvents(){elementorFrontend.elements.$document.on("select2:open",(e=>{this.addSelect2Wrapper(e)}))}addSelect2Wrapper(e){const t=jQuery(e.target).data("select2");t.$dropdown&&t.$dropdown.addClass("e-woo-select2-wrapper")}isStickyRightColumnActive(){const e=this.getSettings("classes");return this.elements.$stickyRightColumn.hasClass(e.stickyRightColumnActive)}activateStickyRightColumn(){const e=this.getElementSettings(),t=elementorFrontend.elements.$wpAdminBar,o=this.getSettings("classes");let n=e.sticky_right_column_offset||0;t.length&&"fixed"===t.css("position")&&(n+=t.height()),"yes"===this.getElementSettings("sticky_right_column")&&(this.elements.$stickyRightColumn.addClass(o.stickyRightColumnActive),this.elements.$stickyRightColumn.css("top",n+"px"))}deactivateStickyRightColumn(){if(!this.isStickyRightColumnActive())return;const e=this.getSettings("classes");this.elements.$stickyRightColumn.removeClass(e.stickyRightColumnActive)}toggleStickyRightColumn(){this.getElementSettings("sticky_right_column")?this.isStickyRightColumnActive()||this.activateStickyRightColumn():this.deactivateStickyRightColumn()}equalizeElementHeight(e){if(e.length){e.removeAttr("style");let t=0;e.each(((e,o)=>{t=Math.max(t,o.offsetHeight)})),0<t&&e.css({height:t+"px"})}}}t.default=Base},9903:(e,t,o)=>{"use strict";var n=o(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=n(o(427));class Checkout extends s.default{getDefaultSettings(...e){const t=super.getDefaultSettings(...e);return{selectors:{...t.selectors,container:".elementor-widget-woocommerce-checkout-page",loginForm:".e-woocommerce-login-anchor",loginSubmit:".e-woocommerce-form-login-submit",loginSection:".e-woocommerce-login-section",showCouponForm:".e-show-coupon-form",couponSection:".e-coupon-anchor",showLoginForm:".e-show-login",applyCoupon:".e-apply-coupon",checkoutForm:"form.woocommerce-checkout",couponBox:".e-coupon-box",address:"address",wpHttpRefererInputs:'[name="_wp_http_referer"]'},classes:t.classes,ajaxUrl:elementorProFrontend.config.ajaxurl}}getDefaultElements(...e){const t=this.getSettings("selectors");return{...super.getDefaultElements(...e),$container:this.$element.find(t.container),$loginForm:this.$element.find(t.loginForm),$showCouponForm:this.$element.find(t.showCouponForm),$couponSection:this.$element.find(t.couponSection),$showLoginForm:this.$element.find(t.showLoginForm),$applyCoupon:this.$element.find(t.applyCoupon),$loginSubmit:this.$element.find(t.loginSubmit),$couponBox:this.$element.find(t.couponBox),$checkoutForm:this.$element.find(t.checkoutForm),$loginSection:this.$element.find(t.loginSection),$address:this.$element.find(t.address)}}bindEvents(...e){super.bindEvents(...e),this.elements.$showCouponForm.on("click",(e=>{e.preventDefault(),this.elements.$couponSection.slideToggle()})),this.elements.$showLoginForm.on("click",(e=>{e.preventDefault(),this.elements.$loginForm.slideToggle()})),this.elements.$applyCoupon.on("click",(e=>{e.preventDefault(),this.applyCoupon()})),this.elements.$loginSubmit.on("click",(e=>{e.preventDefault(),this.loginUser()})),elementorFrontend.elements.$body.on("updated_checkout",(()=>{this.applyPurchaseButtonHoverAnimation(),this.updateWpReferers()}))}onInit(...e){super.onInit(...e),this.toggleStickyRightColumn(),this.updateWpReferers(),this.equalizeElementHeight(this.elements.$address),elementorFrontend.isEditMode()&&(this.elements.$loginForm.show(),this.elements.$couponSection.show(),this.applyPurchaseButtonHoverAnimation())}onElementChange(e){"sticky_right_column"===e&&this.toggleStickyRightColumn()}onDestroy(...e){super.onDestroy(...e),this.deactivateStickyRightColumn()}applyPurchaseButtonHoverAnimation(){const e=this.getElementSettings("purchase_button_hover_animation");e&&jQuery("#place_order").addClass("elementor-animation-"+e)}applyCoupon(){if(!wc_checkout_params)return;this.startProcessing(this.elements.$couponBox);const e={security:wc_checkout_params.apply_coupon_nonce,coupon_code:this.elements.$couponBox.find('input[name="coupon_code"]').val()};jQuery.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","apply_coupon"),context:this,data:e,success(t){jQuery(".woocommerce-error, .woocommerce-message").remove(),this.elements.$couponBox.removeClass("processing").unblock(),t&&(this.elements.$checkoutForm.before(t),this.elements.$couponSection.slideUp(),elementorFrontend.elements.$body.trigger("applied_coupon_in_checkout",[e.coupon_code]),elementorFrontend.elements.$body.trigger("update_checkout",{update_shipping_method:!1}))},dataType:"html"})}loginUser(){this.startProcessing(this.elements.$loginSection);const e={action:"elementor_woocommerce_checkout_login_user",username:this.elements.$loginSection.find('input[name="username"]').val(),password:this.elements.$loginSection.find('input[name="password"]').val(),nonce:this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(),remember:this.elements.$loginSection.find("input#rememberme").prop("checked")};jQuery.ajax({type:"POST",url:this.getSettings("ajaxUrl"),context:this,data:e,success(e){e=JSON.parse(e),this.elements.$loginSection.removeClass("processing").unblock();jQuery(".woocommerce-error, .woocommerce-message").remove(),e.logged_in?location.reload():this.elements.$checkoutForm.before(e.message)}})}startProcessing(e){e.is(".processing")||e.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}updateWpReferers(){const e=this.getSettings("selectors"),t=this.$element.find(e.wpHttpRefererInputs),o=new URL(document.location);o.searchParams.set("elementorPostId",elementorFrontend.config.post.id),o.searchParams.set("elementorWidgetId",this.getID()),t.attr("value",o)}}t.default=Checkout}}]);PK!Zp�..Bassets/js/woocommerce-menu-cart.4c85f15cfbc02b4718c9.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[102],{9428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".elementor-menu-cart__container",main:".elementor-menu-cart__main",toggle:".elementor-menu-cart__toggle",toggleButton:"#elementor-menu-cart__toggle_button",toggleWrapper:".elementor-menu-cart__toggle_wrapper",closeButton:".elementor-menu-cart__close-button"},classes:{isShown:"elementor-menu-cart--shown"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$container:this.$element.find(e.container),$main:this.$element.find(e.main),$toggleWrapper:this.$element.find(e.toggleWrapper),$closeButton:this.$element.find(e.closeButton)}}toggleCart(){this.isCartOpen?this.hideCart():this.showCart()}showCart(){if(this.isCartOpen)return;const e=this.getSettings("classes"),t=this.getSettings("selectors");this.isCartOpen=!0,this.$element.addClass(e.isShown),this.$element.find(t.toggleButton).attr("aria-expanded",!0),this.elements.$main.attr("aria-hidden",!1),this.elements.$container.attr("aria-hidden",!1)}hideCart(){if(!this.isCartOpen)return;const e=this.getSettings("classes"),t=this.getSettings("selectors");this.isCartOpen=!1,this.$element.removeClass(e.isShown),this.$element.find(t.toggleButton).attr("aria-expanded",!1),this.elements.$main.attr("aria-hidden",!0),this.elements.$container.attr("aria-hidden",!0)}automaticallyOpenCart(){"yes"===this.getElementSettings().automatically_open_cart&&this.showCart()}bindEvents(){const e=elementorProFrontend.config.menu_cart,t=-1===e.cart_page_url.indexOf("?")?window.location.origin+window.location.pathname:window.location.href,n=e.cart_page_url,s=e.cart_page_url===t,i=e.checkout_page_url===t,o=this.getSettings("selectors"),r=this.getElementSettings(),a=this.getSettings("classes");s&&i?this.$element.find(o.toggleButton).attr("href",n):(this.isCartOpen=this.$element.hasClass(a.isShown),"mouseover"===r.open_cart?(this.elements.$toggleWrapper.on("mouseover click",o.toggleButton,(e=>{e.preventDefault(),this.showCart()})),this.elements.$toggleWrapper.on("mouseleave",(()=>this.hideCart()))):this.elements.$toggleWrapper.on("click",o.toggleButton,(e=>{e.preventDefault(),this.toggleCart()})),elementorFrontend.elements.$document.on("click",(e=>{if(!this.isCartOpen)return;const t=jQuery(e.target);t.closest(this.elements.$main).length||t.closest(o.toggle).length||this.hideCart()})),this.elements.$closeButton.on("click",(e=>{e.preventDefault(),this.hideCart()})),elementorFrontend.elements.$document.on("keyup",(e=>{27===e.keyCode&&this.hideCart()})),elementorFrontend.elements.$body.on("added_to_cart",(()=>this.automaticallyOpenCart())))}}t.default=_default}}]);PK!����$$9assets/js/woocommerce-cart.39ccd7e510e98f3afb01.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-cart"],{

/***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Base extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        stickyRightColumn: '.e-sticky-right-column'
      },
      classes: {
        stickyRightColumnActive: 'e-sticky-right-column--active'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $stickyRightColumn: this.$element.find(selectors.stickyRightColumn)
    };
  }

  bindEvents() {
    // Add our wrapper class around the select2 whenever it is opened.
    elementorFrontend.elements.$document.on('select2:open', event => {
      this.addSelect2Wrapper(event);
    });
  }

  addSelect2Wrapper(event) {
    // The select element is recaptured every time because the markup can refresh
    const selectElement = jQuery(event.target).data('select2');

    if (selectElement.$dropdown) {
      selectElement.$dropdown.addClass('e-woo-select2-wrapper');
    }
  }

  isStickyRightColumnActive() {
    const classes = this.getSettings('classes');
    return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive);
  }

  activateStickyRightColumn() {
    const elementSettings = this.getElementSettings(),
          $wpAdminBar = elementorFrontend.elements.$wpAdminBar,
          classes = this.getSettings('classes');
    let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0;

    if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) {
      stickyOptionsOffset += $wpAdminBar.height();
    }

    if ('yes' === this.getElementSettings('sticky_right_column')) {
      this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive);
      this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px');
    }
  }

  deactivateStickyRightColumn() {
    if (!this.isStickyRightColumnActive()) {
      return;
    }

    const classes = this.getSettings('classes');
    this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive);
  }
  /**
   * Activates the sticky column
   *
   * @return {void}
   */


  toggleStickyRightColumn() {
    if (!this.getElementSettings('sticky_right_column')) {
      this.deactivateStickyRightColumn();
      return;
    }

    if (!this.isStickyRightColumnActive()) {
      this.activateStickyRightColumn();
    }
  }

  equalizeElementHeight($element) {
    if ($element.length) {
      $element.removeAttr('style'); // first remove the custom height we added so that the new height can be re-calculated according to the content

      let maxHeight = 0;
      $element.each((index, element) => {
        maxHeight = Math.max(maxHeight, element.offsetHeight);
      });

      if (0 < maxHeight) {
        $element.css({
          height: maxHeight + 'px'
        });
      }
    }
  }

}

exports.default = Base;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/handlers/cart.js":
/*!******************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/cart.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js"));

class Cart extends _base.default {
  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);
    return {
      selectors: { ...defaultSettings.selectors,
        shippingForm: '.shipping-calculator-form',
        quantityInput: '.qty',
        updateCartButton: 'button[name=update_cart]',
        wpHttpRefererInputs: '[name=_wp_http_referer]',
        hiddenInput: 'input[type=hidden]',
        productRemove: '.product-remove a'
      },
      classes: defaultSettings.classes,
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors');
    return { ...super.getDefaultElements(...args),
      $shippingForm: this.$element.find(selectors.shippingForm),
      $stickyColumn: this.$element.find(selectors.stickyColumn),
      $hiddenInput: this.$element.find(selectors.hiddenInput)
    };
  }

  bindEvents() {
    super.bindEvents();
    const selectors = this.getSettings('selectors');
    elementorFrontend.elements.$body.on('wc_fragments_refreshed', () => this.applyButtonsHoverAnimation());

    if ('yes' === this.getElementSettings('update_cart_automatically')) {
      this.$element.on('click', selectors.quantityInput, () => this.updateCart());
    }

    if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
      elementorFrontend.elements.$body.on('wc_fragments_loaded wc_fragments_refreshed', () => {
        this.modifyWpHttpReferer();
        this.disableActions();
      });
    }
  }

  onInit(...args) {
    super.onInit(...args);
    this.toggleStickyRightColumn();
    this.hideHiddenInputsParentElements();

    if (elementorFrontend.isEditMode()) {
      this.elements.$shippingForm.show();
    }

    this.applyButtonsHoverAnimation();

    if (elementorFrontend.isEditMode() || elementorFrontend.isWPPreviewMode()) {
      this.modifyWpHttpReferer();
      this.disableActions();
    }
  }
  /**
   * Using the WooCommerce Cart controls (quantity, remove product) in the editor will cause the cart to disappear.
   * This is because WooCommerce does an ajax round trip where it modifies the cart, then loads that cart into the
   * current page and attempts to grab the elements from that page via ajax. In the Editor, if the page is not
   * published yet, it fetches an empty page that does not contain the required elements. As a result, the cart
   * is rendered empty.
   *
   * Due to this issue, the cart controls (quantity, remove product) need to be disabled in the Editor.
   */


  disableActions() {
    const selectors = this.getSettings('selectors');
    this.$element.find(selectors.updateCartButton).attr({
      disabled: 'disabled',
      'aria-disabled': 'true'
    });

    if (elementorFrontend.isEditMode()) {
      this.$element.find(selectors.quantityInput).attr('disabled', 'disabled');
      this.$element.find(selectors.productRemove).css('pointer-events', 'none');
    }
  }

  onElementChange(propertyName) {
    if ('sticky_right_column' === propertyName) {
      this.toggleStickyRightColumn();
    }
  }

  onDestroy(...args) {
    super.onDestroy(...args);
    this.deactivateStickyRightColumn();
  }

  updateCart() {
    const selectors = this.getSettings('selectors');
    clearTimeout(this._debounce);
    this._debounce = setTimeout(() => {
      this.$element.find(selectors.updateCartButton).trigger('click');
    }, 600);
  }

  applyButtonsHoverAnimation() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.checkout_button_hover_animation) {
      // This element is recaptured every time because the cart markup can refresh
      jQuery('.checkout-button').addClass('elementor-animation-' + elementSettings.checkout_button_hover_animation);
    }

    if (elementSettings.forms_buttons_hover_animation) {
      // This element is recaptured every time because the cart markup can refresh
      jQuery('.shop_table .button').addClass('elementor-animation-' + elementSettings.forms_buttons_hover_animation);
    }
  }
  /**
   * In the editor, WC Frontend JS does not fire (not registered).
   * This causes that hidden inputs parent paragraph elements do not get display:none
   * as they would have on the front end.
   * So this function manually display:none the parent elements of these hidden inputs to avoid having
   * gaps/spaces in the layout caused by these parent elements' margins/paddings.
   */


  hideHiddenInputsParentElements() {
    if (this.isEdit) {
      if (this.elements.$hiddenInput) {
        this.elements.$hiddenInput.parent('.form-row').addClass('elementor-hidden');
      }
    }
  }

  modifyWpHttpReferer() {
    const selectors = this.getSettings('selectors');

    if (elementorFrontend.isEditMode()) {
      this.$element.find(selectors.wpHttpRefererInputs).attr('value', elementor.documents.getCurrent().config.urls.wp_preview);
    }
  }

}

exports.default = Cart;

/***/ })

}]);
//# sourceMappingURL=woocommerce-cart.39ccd7e510e98f3afb01.bundle.js.mapPK!���eUU>assets/js/woocommerce-menu-cart.cf8829a628c66ec7c688.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-menu-cart"],{

/***/ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js":
/*!***********************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.elementor-menu-cart__container',
        main: '.elementor-menu-cart__main',
        toggle: '.elementor-menu-cart__toggle',
        toggleButton: '#elementor-menu-cart__toggle_button',
        toggleWrapper: '.elementor-menu-cart__toggle_wrapper',
        closeButton: '.elementor-menu-cart__close-button'
      },
      classes: {
        isShown: 'elementor-menu-cart--shown'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $container: this.$element.find(selectors.container),
      $main: this.$element.find(selectors.main),
      $toggleWrapper: this.$element.find(selectors.toggleWrapper),
      $closeButton: this.$element.find(selectors.closeButton)
    };
  }

  toggleCart() {
    if (!this.isCartOpen) {
      this.showCart();
    } else {
      this.hideCart();
    }
  }

  showCart() {
    if (this.isCartOpen) {
      return;
    }

    const classes = this.getSettings('classes'),
          selectors = this.getSettings('selectors');
    this.isCartOpen = true;
    this.$element.addClass(classes.isShown);
    this.$element.find(selectors.toggleButton).attr('aria-expanded', true);
    this.elements.$main.attr('aria-hidden', false);
    this.elements.$container.attr('aria-hidden', false);
  }

  hideCart() {
    if (!this.isCartOpen) {
      return;
    }

    const classes = this.getSettings('classes'),
          selectors = this.getSettings('selectors');
    this.isCartOpen = false;
    this.$element.removeClass(classes.isShown);
    this.$element.find(selectors.toggleButton).attr('aria-expanded', false);
    this.elements.$main.attr('aria-hidden', true);
    this.elements.$container.attr('aria-hidden', true);
  }

  automaticallyOpenCart() {
    const settings = this.getElementSettings();

    if ('yes' === settings.automatically_open_cart) {
      this.showCart();
    }
  }

  bindEvents() {
    const menuCart = elementorProFrontend.config.menu_cart,
          noQueryParams = -1 === menuCart.cart_page_url.indexOf('?'),
          currentUrl = noQueryParams ? window.location.origin + window.location.pathname : window.location.href,
          cartUrl = menuCart.cart_page_url,
          isCart = menuCart.cart_page_url === currentUrl,
          isCheckout = menuCart.checkout_page_url === currentUrl,
          selectors = this.getSettings('selectors'),
          settings = this.getElementSettings(),
          classes = this.getSettings('classes'); // If on cart page or checkout page don't open cart, rather stay on, or go to cart page, and bail from init.

    if (isCart && isCheckout) {
      this.$element.find(selectors.toggleButton).attr('href', cartUrl);
      return;
    } // Cache cart open state.


    this.isCartOpen = this.$element.hasClass(classes.isShown);

    if ('mouseover' === settings.open_cart) {
      // Enable opening of mini-cart and side-cart by hover (include click so we can `preventDefault()` page-top jump on click).
      this.elements.$toggleWrapper.on('mouseover click', selectors.toggleButton, event => {
        event.preventDefault();
        this.showCart();
      }); // Close Cart on mouseleave.

      this.elements.$toggleWrapper.on('mouseleave', () => this.hideCart());
    } else {
      // Enable opening of mini-cart and side-cart by click.
      this.elements.$toggleWrapper.on('click', selectors.toggleButton, event => {
        event.preventDefault();
        this.toggleCart();
      });
    } // Listen for clicks outside to close any open cart.


    elementorFrontend.elements.$document.on('click', event => {
      if (!this.isCartOpen) {
        return;
      }

      const $target = jQuery(event.target); // Don't close if this is click on the main panel or toggle button.

      if ($target.closest(this.elements.$main).length || $target.closest(selectors.toggle).length) {
        return;
      }

      this.hideCart();
    });
    this.elements.$closeButton.on('click', event => {
      event.preventDefault();
      this.hideCart();
    });
    elementorFrontend.elements.$document.on('keyup', event => {
      var ESC_KEY = 27;

      if (ESC_KEY === event.keyCode) {
        this.hideCart();
      }
    }); // Option to open cart on add to cart.

    elementorFrontend.elements.$body.on('added_to_cart', () => this.automaticallyOpenCart());
  }

}

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=woocommerce-menu-cart.cf8829a628c66ec7c688.bundle.js.mapPK!Aӡ${{:assets/js/archive-posts.77eccfe3d546a58d3f1f.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[685,985,287],{8014:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(s(2926)).default.extend({getSkinPrefix:()=>"cards_"});t.default=o},9738:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class LoadMore extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{postsContainer:".elementor-posts-container",loadMoreButton:".elementor-button",loadMoreSpinnerWrapper:".e-load-more-spinner",loadMoreSpinner:".e-load-more-spinner i, .e-load-more-spinner svg",loadMoreAnchor:".e-load-more-anchor"},classes:{loadMoreSpin:"eicon-animation-spin",loadMoreIsLoading:"e-load-more-pagination-loading",loadMorePaginationEnd:"e-load-more-pagination-end",loadMoreNoSpinner:"e-load-more-no-spinner"}}}getDefaultElements(){const e=this.getSettings("selectors");return{postsWidgetWrapper:this.$element[0],postsContainer:this.$element[0].querySelector(e.postsContainer),loadMoreButton:this.$element[0].querySelector(e.loadMoreButton),loadMoreSpinnerWrapper:this.$element[0].querySelector(e.loadMoreSpinnerWrapper),loadMoreSpinner:this.$element[0].querySelector(e.loadMoreSpinner),loadMoreAnchor:this.$element[0].querySelector(e.loadMoreAnchor)}}bindEvents(){super.bindEvents(),this.elements.loadMoreButton&&this.elements.loadMoreButton.addEventListener("click",(e=>{this.isLoading||(e.preventDefault(),this.handlePostsQuery())}))}onInit(){super.onInit(),this.classes=this.getSettings("classes"),this.isLoading=!1;const e=this.getElementSettings("pagination_type");"load_more_on_click"!==e&&"load_more_infinite_scroll"!==e||(this.isInfinteScroll="load_more_infinite_scroll"===e,this.isSpinnerAvailable=this.getElementSettings("load_more_spinner").value,this.isSpinnerAvailable||this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner),this.isInfinteScroll?this.handleInfiniteScroll():this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreButton.insertAdjacentElement("beforeEnd",this.elements.loadMoreSpinnerWrapper),this.elementId=this.getID(),this.postId=elementorFrontendConfig.post.id,this.currentPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-page")),this.maxPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-max-page")),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts())}handleInfiniteScroll(){this.isEdit||(this.observer=elementorModules.utils.Scroll.scrollObserver({callback:e=>{e.isInViewport&&!this.isLoading&&(this.observer.unobserve(this.elements.loadMoreAnchor),this.handlePostsQuery().then((()=>{this.currentPage!==this.maxPage&&this.observer.observe(this.elements.loadMoreAnchor)})))}}),this.observer.observe(this.elements.loadMoreAnchor))}handleUiBeforeLoading(){this.isLoading=!0,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin),this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading)}handleUiAfterLoading(){this.isLoading=!1,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin),this.isInfinteScroll&&this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreAnchor.insertAdjacentElement("afterend",this.elements.loadMoreSpinnerWrapper),this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading)}handleUiWhenNoPosts(){this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd)}handleSuccessFetch(e){this.handleUiAfterLoading();const t=e.querySelectorAll(".elementor-posts-container > article"),s=e.querySelector(".e-load-more-anchor").getAttribute("data-next-page"),n=[...t].reduce(((e,t)=>e+t.outerHTML),"");this.elements.postsContainer.insertAdjacentHTML("beforeend",n),this.elements.loadMoreAnchor.setAttribute("data-page",this.currentPage),this.elements.loadMoreAnchor.setAttribute("data-next-page",s),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts()}handlePostsQuery(){this.handleUiBeforeLoading(),this.currentPage++;const e=this.elements.loadMoreAnchor.getAttribute("data-next-page");return fetch(e).then((e=>e.text())).then((e=>{const t=(new DOMParser).parseFromString(e,"text/html");this.handleSuccessFetch(t)})).catch((e=>{console.warn("Something went wrong.",e)}))}}t.default=LoadMore},2926:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getSkinPrefix:()=>"classic_",bindEvents(){var e=this.getModelCID();elementorFrontend.addListenerOnce(e,"resize",this.onWindowResize)},getClosureMethodsNames(){return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this,arguments).concat(["fitImages","onWindowResize","runMasonry"])},getDefaultSettings:()=>({classes:{fitHeight:"elementor-fit-height",hasItemRatio:"elementor-has-item-ratio"},selectors:{postsContainer:".elementor-posts-container",post:".elementor-post",postThumbnail:".elementor-post__thumbnail",postThumbnailImage:".elementor-post__thumbnail img"}}),getDefaultElements(){var e=this.getSettings("selectors");return{$postsContainer:this.$element.find(e.postsContainer),$posts:this.$element.find(e.post)}},fitImage(e){var t=this.getSettings(),s=e.find(t.selectors.postThumbnail),n=s.find("img")[0];if(n){var o=s.outerHeight()/s.outerWidth(),i=n.naturalHeight/n.naturalWidth;s.toggleClass(t.classes.fitHeight,i<o)}},fitImages(){var e=jQuery,t=this,s=getComputedStyle(this.$element[0],":after").content,n=this.getSettings();this.elements.$postsContainer.toggleClass(n.classes.hasItemRatio,!!s.match(/\d/)),t.isMasonryEnabled()||this.elements.$posts.each((function(){var s=e(this),o=s.find(n.selectors.postThumbnailImage);t.fitImage(s),o.on("load",(function(){t.fitImage(s)}))}))},setColsCountSettings(){var e,t=elementorFrontend.getCurrentDeviceMode(),s=this.getElementSettings(),n=this.getSkinPrefix();switch(t){case"mobile":e=s[n+"columns_mobile"];break;case"tablet":e=s[n+"columns_tablet"];break;default:e=s[n+"columns"]}this.setSettings("colsCount",e)},isMasonryEnabled(){return!!this.getElementSettings(this.getSkinPrefix()+"masonry")},initMasonry(){imagesLoaded(this.elements.$posts,this.runMasonry)},runMasonry(){var e=this.elements;e.$posts.css({marginTop:"",transitionDuration:""}),this.setColsCountSettings();var t=this.getSettings("colsCount"),s=this.isMasonryEnabled()&&t>=2;if(e.$postsContainer.toggleClass("elementor-posts-masonry",s),s){var n=this.getElementSettings(this.getSkinPrefix()+"row_gap.size");""===this.getSkinPrefix()&&""===n&&(n=this.getElementSettings(this.getSkinPrefix()+"item_gap.size")),new elementorModules.utils.Masonry({container:e.$postsContainer,items:e.$posts.filter(":visible"),columnsCount:this.getSettings("colsCount"),verticalSpaceBetween:n}).run()}else e.$postsContainer.height("")},run(){setTimeout(this.fitImages,0),this.initMasonry()},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.bindEvents(),this.run()},onWindowResize(){this.fitImages(),this.runMasonry()},onElementChange(){this.fitImages(),setTimeout(this.runMasonry)}});t.default=s},2231:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(s(9738));class ArchivePostsLoadMore extends o.default{}t.default=ArchivePostsLoadMore},7177:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(s(8014)).default.extend({getSkinPrefix:()=>"archive_cards_"});t.default=o},3824:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(s(2926)).default.extend({getSkinPrefix:()=>"archive_classic_"});t.default=o}}]);PK!�\ 64assets/js/hotspot.ba3b762edc3da9c7a076.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[888],{9556:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class Hotspot extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{hotspot:".e-hotspot",tooltip:".e-hotspot__tooltip"}}}getDefaultElements(){const t=this.getSettings("selectors");return{$hotspot:this.$element.find(t.hotspot),$hotspotsExcludesLinks:this.$element.find(t.hotspot).filter(":not(.e-hotspot--no-tooltip)"),$tooltip:this.$element.find(t.tooltip)}}bindEvents(){const t=this.getCurrentDeviceSetting("tooltip_trigger"),e="mouseenter"===t?"mouseleave mouseenter":t;"none"!==e&&this.elements.$hotspotsExcludesLinks.on(e,(t=>this.onHotspotTriggerEvent(t)))}onDeviceModeChange(){this.elements.$hotspotsExcludesLinks.off(),this.bindEvents()}onHotspotTriggerEvent(t){const e=jQuery(t.target),o=e.closest(".e-hotspot__button").length,s="mouseleave"===t.type&&(e.is(".e-hotspot--tooltip-position")||e.parents(".e-hotspot--tooltip-position").length),n="mobile"===elementorFrontend.getCurrentDeviceMode();if(!(e.closest(".e-hotspot--link").length&&n&&("mouseleave"===t.type||"mouseenter"===t.type))&&(o||s)){const e=jQuery(t.currentTarget);this.elements.$hotspot.not(e).removeClass("e-hotspot--active"),e.toggleClass("e-hotspot--active")}}editorAddSequencedAnimation(){this.elements.$hotspot.toggleClass("e-hotspot--sequenced","yes"===this.getElementSettings("hotspot_sequenced_animation"))}hotspotSequencedAnimation(){const t=this.getElementSettings();if("no"===t.hotspot_sequenced_animation)return;const e=elementorModules.utils.Scroll.scrollObserver({callback:o=>{o.isInViewport&&(e.unobserve(this.$element[0]),this.elements.$hotspot.each(((e,o)=>{if(0===e)return;const s=t.hotspot_sequenced_animation_duration,n=e*((s?s.size:1e3)/this.elements.$hotspot.length);o.style.animationDelay=n+"ms"})))}});e.observe(this.$element[0])}setTooltipPositionControl(){const t=this.getElementSettings();void 0!==t.tooltip_animation&&t.tooltip_animation.match(/^e-hotspot--(slide|fade)-direction/)&&(this.elements.$tooltip.removeClass("e-hotspot--tooltip-animation-from-left e-hotspot--tooltip-animation-from-top e-hotspot--tooltip-animation-from-right e-hotspot--tooltip-animation-from-bottom"),this.elements.$tooltip.addClass("e-hotspot--tooltip-animation-from-"+t.tooltip_position))}onInit(...t){super.onInit(...t),this.hotspotSequencedAnimation(),this.setTooltipPositionControl(),window.elementor&&elementor.listenTo(elementor.channels.deviceMode,"change",(()=>this.onDeviceModeChange()))}onElementChange(t){t.startsWith("tooltip_position")&&this.setTooltipPositionControl(),t.startsWith("hotspot_sequenced_animation")&&this.editorAddSequencedAnimation()}}e.default=Hotspot}}]);PK!�E��ww8assets/js/search-form.e36b4b7c26157bb965fe.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[858],{188:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{wrapper:".elementor-search-form",container:".elementor-search-form__container",icon:".elementor-search-form__icon",input:".elementor-search-form__input",toggle:".elementor-search-form__toggle",submit:".elementor-search-form__submit",closeButton:".dialog-close-button"},classes:{isFocus:"elementor-search-form--focus",isFullScreen:"elementor-search-form--full-screen",lightbox:"elementor-lightbox"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$wrapper=this.$element.find(e.wrapper),t.$container=this.$element.find(e.container),t.$input=this.$element.find(e.input),t.$icon=this.$element.find(e.icon),t.$toggle=this.$element.find(e.toggle),t.$submit=this.$element.find(e.submit),t.$closeButton=this.$element.find(e.closeButton),t},bindEvents(){var e=this,t=e.elements.$container,s=e.elements.$closeButton,n=e.elements.$input,l=e.elements.$wrapper,o=e.elements.$icon,r=this.getElementSettings("skin"),i=this.getSettings("classes");"full_screen"===r?(e.elements.$toggle.on("click",(function(){t.toggleClass(i.isFullScreen).toggleClass(i.lightbox),n.trigger("focus")})),t.on("click",(function(e){t.hasClass(i.isFullScreen)&&t[0]===e.target&&t.removeClass(i.isFullScreen).removeClass(i.lightbox)})),s.on("click",(function(){t.removeClass(i.isFullScreen).removeClass(i.lightbox)})),elementorFrontend.elements.$document.on("keyup",(function(e){27===e.keyCode&&t.hasClass(i.isFullScreen)&&t.trigger("click")}))):n.on({focus(){l.addClass(i.isFocus)},blur(){l.removeClass(i.isFocus)}}),"minimal"===r&&o.on("click",(function(){l.addClass(i.isFocus),n.trigger("focus")}))}});t.default=s}}]);PK!/ɻ�ll6assets/js/load-more.921f61dba5d476ec2720.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[985],{9738:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class LoadMore extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{postsContainer:".elementor-posts-container",loadMoreButton:".elementor-button",loadMoreSpinnerWrapper:".e-load-more-spinner",loadMoreSpinner:".e-load-more-spinner i, .e-load-more-spinner svg",loadMoreAnchor:".e-load-more-anchor"},classes:{loadMoreSpin:"eicon-animation-spin",loadMoreIsLoading:"e-load-more-pagination-loading",loadMorePaginationEnd:"e-load-more-pagination-end",loadMoreNoSpinner:"e-load-more-no-spinner"}}}getDefaultElements(){const e=this.getSettings("selectors");return{postsWidgetWrapper:this.$element[0],postsContainer:this.$element[0].querySelector(e.postsContainer),loadMoreButton:this.$element[0].querySelector(e.loadMoreButton),loadMoreSpinnerWrapper:this.$element[0].querySelector(e.loadMoreSpinnerWrapper),loadMoreSpinner:this.$element[0].querySelector(e.loadMoreSpinner),loadMoreAnchor:this.$element[0].querySelector(e.loadMoreAnchor)}}bindEvents(){super.bindEvents(),this.elements.loadMoreButton&&this.elements.loadMoreButton.addEventListener("click",(e=>{this.isLoading||(e.preventDefault(),this.handlePostsQuery())}))}onInit(){super.onInit(),this.classes=this.getSettings("classes"),this.isLoading=!1;const e=this.getElementSettings("pagination_type");"load_more_on_click"!==e&&"load_more_infinite_scroll"!==e||(this.isInfinteScroll="load_more_infinite_scroll"===e,this.isSpinnerAvailable=this.getElementSettings("load_more_spinner").value,this.isSpinnerAvailable||this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner),this.isInfinteScroll?this.handleInfiniteScroll():this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreButton.insertAdjacentElement("beforeEnd",this.elements.loadMoreSpinnerWrapper),this.elementId=this.getID(),this.postId=elementorFrontendConfig.post.id,this.currentPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-page")),this.maxPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-max-page")),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts())}handleInfiniteScroll(){this.isEdit||(this.observer=elementorModules.utils.Scroll.scrollObserver({callback:e=>{e.isInViewport&&!this.isLoading&&(this.observer.unobserve(this.elements.loadMoreAnchor),this.handlePostsQuery().then((()=>{this.currentPage!==this.maxPage&&this.observer.observe(this.elements.loadMoreAnchor)})))}}),this.observer.observe(this.elements.loadMoreAnchor))}handleUiBeforeLoading(){this.isLoading=!0,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin),this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading)}handleUiAfterLoading(){this.isLoading=!1,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin),this.isInfinteScroll&&this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreAnchor.insertAdjacentElement("afterend",this.elements.loadMoreSpinnerWrapper),this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading)}handleUiWhenNoPosts(){this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd)}handleSuccessFetch(e){this.handleUiAfterLoading();const t=e.querySelectorAll(".elementor-posts-container > article"),s=e.querySelector(".e-load-more-anchor").getAttribute("data-next-page"),n=[...t].reduce(((e,t)=>e+t.outerHTML),"");this.elements.postsContainer.insertAdjacentHTML("beforeend",n),this.elements.loadMoreAnchor.setAttribute("data-page",this.currentPage),this.elements.loadMoreAnchor.setAttribute("data-next-page",s),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts()}handlePostsQuery(){this.handleUiBeforeLoading(),this.currentPage++;const e=this.elements.loadMoreAnchor.getAttribute("data-next-page");return fetch(e).then((e=>e.text())).then((e=>{const t=(new DOMParser).parseFromString(e,"text/html");this.handleSuccessFetch(t)})).catch((e=>{console.warn("Something went wrong.",e)}))}}t.default=LoadMore}}]);PK!�)�G3G37assets/js/media-carousel.b5cf350f530535d64364.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["media-carousel"],{

/***/ "../modules/carousel/assets/js/frontend/handlers/base.js":
/*!***************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/base.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class CarouselBase extends elementorModules.frontend.handlers.SwiperBase {
  getDefaultSettings() {
    return {
      selectors: {
        swiperContainer: '.elementor-main-swiper',
        swiperSlide: '.swiper-slide'
      },
      slidesPerView: {
        widescreen: 3,
        desktop: 3,
        laptop: 3,
        tablet_extra: 3,
        tablet: 2,
        mobile_extra: 2,
        mobile: 1
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {
      $swiperContainer: this.$element.find(selectors.swiperContainer)
    };
    elements.$slides = elements.$swiperContainer.find(selectors.swiperSlide);
    return elements;
  }

  getEffect() {
    return this.getElementSettings('effect');
  }

  getDeviceSlidesPerView(device) {
    const slidesPerViewKey = 'slides_per_view' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesPerViewKey) || this.getSettings('slidesPerView')[device]);
  }

  getSlidesPerView(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesPerView(device);
    }

    return 1;
  }

  getDeviceSlidesToScroll(device) {
    const slidesToScrollKey = 'slides_to_scroll' + ('desktop' === device ? '' : '_' + device);
    return Math.min(this.getSlidesCount(), +this.getElementSettings(slidesToScrollKey) || 1);
  }

  getSlidesToScroll(device) {
    if ('slide' === this.getEffect()) {
      return this.getDeviceSlidesToScroll(device);
    }

    return 1;
  }

  getSpaceBetween(device) {
    let propertyName = 'space_between';

    if (device && 'desktop' !== device) {
      propertyName += '_' + device;
    }

    return this.getElementSettings(propertyName).size || 0;
  }

  getSwiperOptions() {
    const elementSettings = this.getElementSettings();
    const swiperOptions = {
      grabCursor: true,
      initialSlide: this.getInitialSlide(),
      slidesPerView: this.getSlidesPerView('desktop'),
      slidesPerGroup: this.getSlidesToScroll('desktop'),
      spaceBetween: this.getSpaceBetween(),
      loop: 'yes' === elementSettings.loop,
      speed: elementSettings.speed,
      effect: this.getEffect(),
      preventClicksPropagation: false,
      slideToClickedSlide: true,
      handleElementorBreakpoints: true
    };

    if (elementSettings.show_arrows) {
      swiperOptions.navigation = {
        prevEl: '.elementor-swiper-button-prev',
        nextEl: '.elementor-swiper-button-next'
      };
    }

    if (elementSettings.pagination) {
      swiperOptions.pagination = {
        el: '.swiper-pagination',
        type: elementSettings.pagination,
        clickable: true
      };
    }

    if ('cube' !== this.getEffect()) {
      const breakpointsSettings = {},
            breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      Object.keys(breakpoints).forEach(breakpointName => {
        breakpointsSettings[breakpoints[breakpointName].value] = {
          slidesPerView: this.getSlidesPerView(breakpointName),
          slidesPerGroup: this.getSlidesToScroll(breakpointName),
          spaceBetween: this.getSpaceBetween(breakpointName)
        };
      });
      swiperOptions.breakpoints = breakpointsSettings;
    }

    if (!this.isEdit && elementSettings.autoplay) {
      swiperOptions.autoplay = {
        delay: elementSettings.autoplay_speed,
        disableOnInteraction: !!elementSettings.pause_on_interaction
      };
    }

    return swiperOptions;
  }

  getDeviceBreakpointValue(device) {
    if (!this.breakpointsDictionary) {
      const breakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      this.breakpointsDictionary = {};
      Object.keys(breakpoints).forEach(breakpointName => {
        this.breakpointsDictionary[breakpointName] = breakpoints[breakpointName].value;
      });
    }

    return this.breakpointsDictionary[device];
  }

  updateSpaceBetween(propertyName) {
    const deviceMatch = propertyName.match('space_between_(.*)'),
          device = deviceMatch ? deviceMatch[1] : 'desktop',
          newSpaceBetween = this.getSpaceBetween(device);

    if ('desktop' !== device) {
      this.swiper.params.breakpoints[this.getDeviceBreakpointValue(device)].spaceBetween = newSpaceBetween;
    } else {
      this.swiper.params.spaceBetween = newSpaceBetween;
    }

    this.swiper.params.spaceBetween = newSpaceBetween;
    this.swiper.update();
  }

  async onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    const elementSettings = this.getElementSettings();

    if (1 >= this.getSlidesCount()) {
      return;
    }

    const Swiper = elementorFrontend.utils.swiper;
    this.swiper = await new Swiper(this.elements.$swiperContainer, this.getSwiperOptions());

    if ('yes' === elementSettings.pause_on_hover) {
      this.togglePauseOnHover(true);
    } // Expose the swiper instance in the frontend


    this.elements.$swiperContainer.data('swiper', this.swiper);
  }

  getChangeableProperties() {
    return {
      autoplay: 'autoplay',
      pause_on_hover: 'pauseOnHover',
      pause_on_interaction: 'disableOnInteraction',
      autoplay_speed: 'delay',
      speed: 'speed',
      width: 'width'
    };
  }

  updateSwiperOption(propertyName) {
    if (0 === propertyName.indexOf('width')) {
      this.swiper.update();
      return;
    }

    const elementSettings = this.getElementSettings(),
          newSettingValue = elementSettings[propertyName],
          changeableProperties = this.getChangeableProperties();
    let propertyToUpdate = changeableProperties[propertyName],
        valueToUpdate = newSettingValue; // Handle special cases where the value to update is not the value that the Swiper library accepts

    switch (propertyName) {
      case 'autoplay':
        if (newSettingValue) {
          valueToUpdate = {
            delay: elementSettings.autoplay_speed,
            disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
          };
        } else {
          valueToUpdate = false;
        }

        break;

      case 'autoplay_speed':
        propertyToUpdate = 'autoplay';
        valueToUpdate = {
          delay: newSettingValue,
          disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
        };
        break;

      case 'pause_on_hover':
        this.togglePauseOnHover('yes' === newSettingValue);
        break;

      case 'pause_on_interaction':
        valueToUpdate = 'yes' === newSettingValue;
        break;
    } // 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library


    if ('pause_on_hover' !== propertyName) {
      this.swiper.params[propertyToUpdate] = valueToUpdate;
    }

    this.swiper.update();
  }

  onElementChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if (0 === propertyName.indexOf('width')) {
      this.swiper.update(); // If there is another thumbs slider, like in the Media Carousel widget.

      if (this.thumbsSwiper) {
        this.thumbsSwiper.update();
      }

      return;
    } // This is for handling the responsive control 'space_between'.
    // Responsive controls require a separate way of handling, and some currently don't work
    // (Swiper bug, currently exists in v5.3.6) TODO: update Swiper when bug is fixed and handle responsive controls


    if (0 === propertyName.indexOf('space_between')) {
      this.updateSpaceBetween(propertyName);
      return;
    }

    const changeableProperties = this.getChangeableProperties();

    if (changeableProperties.hasOwnProperty(propertyName)) {
      this.updateSwiperOption(propertyName);
    }
  }

  onEditSettingsChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if ('activeItemIndex' === propertyName) {
      this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
    }
  }

}

exports.default = CarouselBase;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js":
/*!*************************************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/handlers/media-carousel.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/carousel/assets/js/frontend/handlers/base.js"));

class MediaCarousel extends _base.default {
  isSlideshow() {
    return 'slideshow' === this.getElementSettings('skin');
  }

  getDefaultSettings(...args) {
    const defaultSettings = super.getDefaultSettings(...args);

    if (this.isSlideshow()) {
      defaultSettings.selectors.thumbsSwiper = '.elementor-thumbnails-swiper';
      defaultSettings.slidesPerView = {
        widescreen: 5,
        desktop: 5,
        laptop: 5,
        tablet_extra: 5,
        tablet: 4,
        mobile_extra: 4,
        mobile: 3
      };
    }

    return defaultSettings;
  }

  getSlidesPerViewSettingNames() {
    if (!this.slideshowElementSettings) {
      this.slideshowElementSettings = ['slides_per_view'];
      const activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints;
      Object.keys(activeBreakpoints).forEach(breakpointName => {
        this.slideshowElementSettings.push('slides_per_view_' + breakpointName);
      });
    }

    return this.slideshowElementSettings;
  }

  getElementSettings(setting) {
    if (-1 !== this.getSlidesPerViewSettingNames().indexOf(setting) && this.isSlideshow()) {
      setting = 'slideshow_' + setting;
    }

    return super.getElementSettings(setting);
  }

  getDefaultElements(...args) {
    const selectors = this.getSettings('selectors'),
          defaultElements = super.getDefaultElements(...args);

    if (this.isSlideshow()) {
      defaultElements.$thumbsSwiper = this.$element.find(selectors.thumbsSwiper);
    }

    return defaultElements;
  }

  getEffect() {
    if ('coverflow' === this.getElementSettings('skin')) {
      return 'coverflow';
    }

    return super.getEffect();
  }

  getSlidesPerView(device) {
    if (this.isSlideshow()) {
      return 1;
    }

    if ('coverflow' === this.getElementSettings('skin')) {
      return this.getDeviceSlidesPerView(device);
    }

    return super.getSlidesPerView(device);
  }

  getSwiperOptions() {
    const options = super.getSwiperOptions();

    if (this.isSlideshow()) {
      options.loopedSlides = this.getSlidesCount();
      delete options.pagination;
      delete options.breakpoints;
    }

    return options;
  }

  async onInit() {
    await super.onInit();
    const slidesCount = this.getSlidesCount();

    if (!this.isSlideshow() || 1 >= slidesCount) {
      return;
    }

    const elementSettings = this.getElementSettings(),
          loop = 'yes' === elementSettings.loop,
          breakpointsSettings = {},
          breakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          desktopSlidesPerView = this.getDeviceSlidesPerView('desktop');
    Object.keys(breakpoints).forEach(breakpointName => {
      breakpointsSettings[breakpoints[breakpointName].value] = {
        slidesPerView: this.getDeviceSlidesPerView(breakpointName),
        spaceBetween: this.getSpaceBetween(breakpointName)
      };
    });
    const thumbsSliderOptions = {
      slidesPerView: desktopSlidesPerView,
      initialSlide: this.getInitialSlide(),
      centeredSlides: elementSettings.centered_slides,
      slideToClickedSlide: true,
      spaceBetween: this.getSpaceBetween(),
      loopedSlides: slidesCount,
      loop,
      breakpoints: breakpointsSettings,
      handleElementorBreakpoints: true
    };
    const Swiper = elementorFrontend.utils.swiper;
    this.swiper.controller.control = this.thumbsSwiper = await new Swiper(this.elements.$thumbsSwiper, thumbsSliderOptions); // Expose the swiper instance in the frontend

    this.elements.$thumbsSwiper.data('swiper', this.thumbsSwiper);
    this.thumbsSwiper.controller.control = this.swiper;
  }

}

exports.default = MediaCarousel;

/***/ })

}]);
//# sourceMappingURL=media-carousel.b5cf350f530535d64364.bundle.js.mapPK!���<KK2assets/js/countdown.6b48da864045c1ea0edd.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["countdown"],{

/***/ "../modules/countdown/assets/js/frontend/handlers/countdown.js":
/*!*********************************************************************!*\
  !*** ../modules/countdown/assets/js/frontend/handlers/countdown.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  cache: null,

  cacheElements() {
    const $countDown = this.$element.find('.elementor-countdown-wrapper');
    this.cache = {
      $countDown,
      timeInterval: null,
      elements: {
        $countdown: $countDown.find('.elementor-countdown-wrapper'),
        $daysSpan: $countDown.find('.elementor-countdown-days'),
        $hoursSpan: $countDown.find('.elementor-countdown-hours'),
        $minutesSpan: $countDown.find('.elementor-countdown-minutes'),
        $secondsSpan: $countDown.find('.elementor-countdown-seconds'),
        $expireMessage: $countDown.parent().find('.elementor-countdown-expire--message')
      },
      data: {
        id: this.$element.data('id'),
        endTime: new Date($countDown.data('date') * 1000),
        actions: $countDown.data('expire-actions'),
        evergreenInterval: $countDown.data('evergreen-interval')
      }
    };
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.cacheElements();

    if (0 < this.cache.data.evergreenInterval) {
      this.cache.data.endTime = this.getEvergreenDate();
    }

    this.initializeClock();
  },

  updateClock() {
    const self = this,
          timeRemaining = this.getTimeRemaining(this.cache.data.endTime);
    jQuery.each(timeRemaining.parts, function (timePart) {
      const $element = self.cache.elements['$' + timePart + 'Span'];
      let partValue = this.toString();

      if (1 === partValue.length) {
        partValue = 0 + partValue;
      }

      if ($element.length) {
        $element.text(partValue);
      }
    });

    if (timeRemaining.total <= 0) {
      clearInterval(this.cache.timeInterval);
      this.runActions();
    }
  },

  initializeClock() {
    const self = this;
    this.updateClock();
    this.cache.timeInterval = setInterval(function () {
      self.updateClock();
    }, 1000);
  },

  runActions() {
    const self = this; // Trigger general event for 3rd patry actions

    self.$element.trigger('countdown_expire', self.$element);

    if (!this.cache.data.actions) {
      return;
    }

    this.cache.data.actions.forEach(function (action) {
      switch (action.type) {
        case 'hide':
          self.cache.$countDown.hide();
          break;

        case 'redirect':
          if (action.redirect_url) {
            window.location.href = action.redirect_url;
          }

          break;

        case 'message':
          self.cache.elements.$expireMessage.show();
          break;
      }
    });
  },

  getTimeRemaining(endTime) {
    const timeRemaining = endTime - new Date();
    let seconds = Math.floor(timeRemaining / 1000 % 60),
        minutes = Math.floor(timeRemaining / 1000 / 60 % 60),
        hours = Math.floor(timeRemaining / (1000 * 60 * 60) % 24),
        days = Math.floor(timeRemaining / (1000 * 60 * 60 * 24));

    if (days < 0 || hours < 0 || minutes < 0) {
      seconds = minutes = hours = days = 0;
    }

    return {
      total: timeRemaining,
      parts: {
        days,
        hours,
        minutes,
        seconds
      }
    };
  },

  getEvergreenDate() {
    const self = this,
          id = this.cache.data.id,
          interval = this.cache.data.evergreenInterval,
          dueDateKey = id + '-evergreen_due_date',
          intervalKey = id + '-evergreen_interval',
          localData = {
      dueDate: localStorage.getItem(dueDateKey),
      interval: localStorage.getItem(intervalKey)
    },
          initEvergreen = function () {
      var evergreenDueDate = new Date();
      self.cache.data.endTime = evergreenDueDate.setSeconds(evergreenDueDate.getSeconds() + interval);
      localStorage.setItem(dueDateKey, self.cache.data.endTime);
      localStorage.setItem(intervalKey, interval);
      return self.cache.data.endTime;
    };

    if (null === localData.dueDate && null === localData.interval) {
      return initEvergreen();
    }

    if (null !== localData.dueDate && interval !== parseInt(localData.interval, 10)) {
      return initEvergreen();
    }

    if (localData.dueDate > 0 && parseInt(localData.interval, 10) === interval) {
      return localData.dueDate;
    }
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=countdown.6b48da864045c1ea0edd.bundle.js.mapPK!>�m�c�c/assets/js/lottie.dccf7257e6cc366bc6bd.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["lottie"],{

/***/ "../modules/lottie/assets/js/frontend/handler.js":
/*!*******************************************************!*\
  !*** ../modules/lottie/assets/js/frontend/handler.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class lottieHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.e-lottie__container',
        containerLink: '.e-lottie__container__link',
        animation: '.e-lottie__animation',
        caption: '.e-lottie__caption'
      },
      classes: {
        caption: 'e-lottie__caption'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings();
    return {
      $widgetWrapper: this.$element,
      $container: this.$element.find(selectors.container),
      $containerLink: this.$element.find(selectors.containerLink),
      $animation: this.$element.find(selectors.animation),
      $caption: this.$element.find(selectors.caption),
      $sectionParent: this.$element.closest('.elementor-section'),
      $columnParent: this.$element.closest('.elementor-column')
    };
  }

  onInit(...args) {
    super.onInit(...args);
    this.lottie = null;
    this.state = {
      isAnimationScrollUpdateNeededOnFirstLoad: true,
      isNewLoopCycle: false,
      isInViewport: false,
      loop: false,
      animationDirection: 'forward',
      currentAnimationTrigger: '',
      effectsRelativeTo: '',
      hoverOutMode: '',
      hoverArea: '',
      caption: '',
      playAnimationCount: 0,
      animationSpeed: 0,
      linkTimeout: 0,
      viewportOffset: {
        start: 0,
        end: 100
      }
    };
    this.intersectionObservers = {
      animation: {
        observer: null,
        element: null
      },
      lazyload: {
        observer: null,
        element: null
      }
    };
    this.animationFrameRequest = {
      timer: null,
      lastScrollY: 0
    };
    this.listeners = {
      collection: [],
      elements: {
        $widgetArea: {
          triggerAnimationHoverIn: null,
          triggerAnimationHoverOut: null
        },
        $container: {
          triggerAnimationClick: null
        }
      }
    };
    this.initLottie();
  }

  initLottie() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.lazyload) {
      this.lazyloadLottie();
    } else {
      this.generateLottie();
    }
  }

  lazyloadLottie() {
    const bufferHeightBeforeTriggerLottie = 200;
    this.intersectionObservers.lazyload.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `0px 0px ${bufferHeightBeforeTriggerLottie}px`,
      callback: event => {
        if (event.isInViewport) {
          this.generateLottie();
          this.intersectionObservers.lazyload.observer.unobserve(this.intersectionObservers.lazyload.element);
        }
      }
    });
    this.intersectionObservers.lazyload.element = this.elements.$container[0];
    this.intersectionObservers.lazyload.observer.observe(this.intersectionObservers.lazyload.element);
  }

  generateLottie() {
    this.createLottieInstance();
    this.setLottieEvents();
  }

  createLottieInstance() {
    const lottieSettings = this.getLottieSettings();
    this.lottie = bodymovin.loadAnimation({
      container: this.elements.$animation[0],
      path: this.getAnimationPath(),
      renderer: lottieSettings.renderer,
      autoplay: false,
      // We always want to trigger the animation manually for considering start/end frame.
      name: 'lottie-widget'
    }); // Expose the lottie instance in the frontend.

    this.elements.$animation.data('lottie', this.lottie);
  }

  getAnimationPath() {
    var _lottieSettings$sourc, _lottieSettings$sourc2;

    const lottieSettings = this.getLottieSettings();

    if ((_lottieSettings$sourc = lottieSettings.source_json) !== null && _lottieSettings$sourc !== void 0 && _lottieSettings$sourc.url && 'json' === lottieSettings.source_json.url.toLowerCase().substr(-4)) {
      return lottieSettings.source_json.url;
    } else if ((_lottieSettings$sourc2 = lottieSettings.source_external_url) !== null && _lottieSettings$sourc2 !== void 0 && _lottieSettings$sourc2.url) {
      return lottieSettings.source_external_url.url;
    } // Default animation path.


    return elementorProFrontend.config.lottie.defaultAnimationUrl;
  }

  setCaption() {
    const lottieSettings = this.getLottieSettings();

    if ('external_url' === lottieSettings.source || 'media_file' === lottieSettings.source && 'custom' === lottieSettings.caption_source) {
      const $captionElement = this.getCaptionElement();
      $captionElement.text(lottieSettings.caption);
    }
  }

  getCaptionElement() {
    if (!this.elements.$caption.length) {
      const {
        classes
      } = this.getSettings();
      this.elements.$caption = jQuery('<p>', {
        class: classes.caption
      });
      this.elements.$container.append(this.elements.$caption);
      return this.elements.$caption;
    }

    return this.elements.$caption;
  }

  setLottieEvents() {
    this.lottie.addEventListener('DOMLoaded', () => this.onLottieDomLoaded());
    this.lottie.addEventListener('complete', () => this.onComplete());
  }

  saveInitialValues() {
    var _lottieSettings$play_;

    const lottieSettings = this.getLottieSettings();
    /*
    These values of the animation are being changed during the animation runtime
    and saved in the lottie instance (and not in the state) for the instance expose in the frontend.
     */

    this.lottie.__initialTotalFrames = this.lottie.totalFrames;
    this.lottie.__initialFirstFrame = this.lottie.firstFrame;
    this.state.currentAnimationTrigger = lottieSettings.trigger;
    this.state.effectsRelativeTo = lottieSettings.effects_relative_to;
    this.state.viewportOffset.start = lottieSettings.viewport ? lottieSettings.viewport.sizes.start : 0;
    this.state.viewportOffset.end = lottieSettings.viewport ? lottieSettings.viewport.sizes.end : 100;
    this.state.animationSpeed = (_lottieSettings$play_ = lottieSettings.play_speed) === null || _lottieSettings$play_ === void 0 ? void 0 : _lottieSettings$play_.size;
    this.state.linkTimeout = lottieSettings.link_timeout;
    this.state.caption = lottieSettings.caption;
    this.state.loop = lottieSettings.loop;
  }

  setAnimationFirstFrame() {
    const frame = this.getAnimationFrames();
    /*
    We need to subtract the initial first frame from the first frame for handling scenarios
    when the animation first frame is not 0, this way we always get the relevant first frame.
    example: when start point is 70 and initial first frame is 60, the animation should start at 10.
     */

    frame.first = frame.first - this.lottie.__initialFirstFrame;
    this.lottie.goToAndStop(frame.first, true);
  }

  initAnimationTrigger() {
    const lottieSettings = this.getLottieSettings();

    switch (lottieSettings.trigger) {
      case 'none':
        this.playLottie();
        break;

      case 'arriving_to_viewport':
        this.playAnimationWhenArrivingToViewport();
        break;

      case 'bind_to_scroll':
        this.playAnimationWhenBindToScroll();
        break;

      case 'on_click':
        this.bindAnimationClickEvents();
        break;

      case 'on_hover':
        this.bindAnimationHoverEvents();
        break;
    }
  }

  playAnimationWhenArrivingToViewport() {
    const offset = this.getOffset();
    this.intersectionObservers.animation.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `${offset.end}% 0% ${offset.start}%`,
      callback: event => {
        if (event.isInViewport) {
          this.state.isInViewport = true;
          this.playLottie();
        } else {
          this.state.isInViewport = false;
          this.lottie.pause();
        }
      }
    });
    this.intersectionObservers.animation.element = this.elements.$widgetWrapper[0];
    this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element);
  }

  getOffset() {
    const lottieSettings = this.getLottieSettings(),
          start = -lottieSettings.viewport.sizes.start || 0,
          end = -(100 - lottieSettings.viewport.sizes.end) || 0;
    return {
      start,
      end
    };
  }

  playAnimationWhenBindToScroll() {
    const lottieSettings = this.getLottieSettings(),
          offset = this.getOffset(); // Generate scroll detection by Intersection Observer API

    this.intersectionObservers.animation.observer = elementorModules.utils.Scroll.scrollObserver({
      offset: `${offset.end}% 0% ${offset.start}%`,
      callback: event => this.onLottieIntersection(event)
    });
    this.intersectionObservers.animation.element = 'viewport' === lottieSettings.effects_relative_to ? this.elements.$widgetWrapper[0] : document.documentElement;
    this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element);
  }

  updateAnimationByScrollPosition() {
    const lottieSettings = this.getLottieSettings();
    let percentage;

    if ('page' === lottieSettings.effects_relative_to) {
      percentage = this.getLottiePagePercentage();
    } else if ('fixed' === this.getCurrentDeviceSetting('_position')) {
      percentage = this.getLottieViewportHeightPercentage();
    } else {
      percentage = this.getLottieViewportPercentage();
    }

    let nextFrameToPlay = this.getFrameNumberByPercent(percentage);
    nextFrameToPlay = nextFrameToPlay - this.lottie.__initialFirstFrame;
    this.lottie.goToAndStop(nextFrameToPlay, true);
  }

  getLottieViewportPercentage() {
    return elementorModules.utils.Scroll.getElementViewportPercentage(this.elements.$widgetWrapper, this.getOffset());
  }

  getLottiePagePercentage() {
    return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset());
  }

  getLottieViewportHeightPercentage() {
    return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset(), window.innerHeight);
  }
  /**
   * @param {number} percent - Percent value between 0-100
   */


  getFrameNumberByPercent(percent) {
    const frame = this.getAnimationFrames();
    /*
    In mobile devices the document height can be 'stretched' at the top and bottom points of the document,
    this 'stretched' will make percent to be either negative or larger than 100, therefore we need to limit percent between 0-100.
    */

    percent = Math.min(100, Math.max(0, percent)); // Getting frame number by percent of range, considering start/end frame values if exist.

    return frame.first + (frame.last - frame.first) * percent / 100;
  }

  getAnimationFrames() {
    const lottieSettings = this.getLottieSettings(),
          currentFrame = this.getAnimationCurrentFrame(),
          startPoint = this.getAnimationRange().start,
          endPoint = this.getAnimationRange().end;
    let firstFrame = this.lottie.__initialFirstFrame,
        lastFrame = 0 === this.lottie.__initialFirstFrame ? this.lottie.__initialTotalFrames : this.lottie.__initialFirstFrame + this.lottie.__initialTotalFrames; // Limiting min start point to animation first frame.

    if (startPoint && startPoint > firstFrame) {
      firstFrame = startPoint;
    } // limiting max end point to animation last frame.


    if (endPoint && endPoint < lastFrame) {
      lastFrame = endPoint;
    }
    /*
    Getting the relevant first frame after loop complete and when not bind to scroll.
    when the animation is in progress (no when a new loop start), the first frame should be the current frame.
    when the trigger is bind_to_scroll we DON'T need to get this functionality.
    */


    if (!this.state.isNewLoopCycle && 'bind_to_scroll' !== lottieSettings.trigger) {
      // When we have a custom start point, we need to check if the start point is larger than the last pause stop of the animation.
      firstFrame = startPoint && startPoint > currentFrame ? startPoint : currentFrame;
    } // Reverse Mode.


    if ('backward' === this.state.animationDirection && this.isReverseMode()) {
      firstFrame = currentFrame;
      lastFrame = startPoint && startPoint > this.lottie.__initialFirstFrame ? startPoint : this.lottie.__initialFirstFrame;
    }

    return {
      first: firstFrame,
      last: lastFrame,
      current: currentFrame,
      total: this.lottie.__initialTotalFrames
    };
  }

  getAnimationRange() {
    const lottieSettings = this.getLottieSettings();
    return {
      start: this.getInitialFrameNumberByPercent(lottieSettings.start_point.size),
      end: this.getInitialFrameNumberByPercent(lottieSettings.end_point.size)
    };
  }

  getInitialFrameNumberByPercent(percent) {
    percent = Math.min(100, Math.max(0, percent));
    return this.lottie.__initialFirstFrame + (this.lottie.__initialTotalFrames - this.lottie.__initialFirstFrame) * percent / 100;
  }

  getAnimationCurrentFrame() {
    // When pausing the animation (when out of viewport) the first frame of the animation changes.
    return 0 === this.lottie.firstFrame ? this.lottie.currentFrame : this.lottie.firstFrame + this.lottie.currentFrame;
  }

  setLinkTimeout() {
    var _lottieSettings$custo;

    const lottieSettings = this.getLottieSettings();

    if ('on_click' === lottieSettings.trigger && (_lottieSettings$custo = lottieSettings.custom_link) !== null && _lottieSettings$custo !== void 0 && _lottieSettings$custo.url && lottieSettings.link_timeout) {
      this.elements.$containerLink.on('click', event => {
        event.preventDefault();

        if (!this.isEdit) {
          setTimeout(() => {
            const tabTarget = 'on' === lottieSettings.custom_link.is_external ? '_blank' : '_self';
            window.open(lottieSettings.custom_link.url, tabTarget);
          }, lottieSettings.link_timeout);
        }
      });
    }
  }

  bindAnimationClickEvents() {
    this.listeners.elements.$container.triggerAnimationClick = () => {
      this.playLottie();
    };

    this.addSessionEventListener(this.elements.$container, 'click', this.listeners.elements.$container.triggerAnimationClick);
  }

  getLottieSettings() {
    const lottieSettings = this.getElementSettings();
    return { ...lottieSettings,
      lazyload: 'yes' === lottieSettings.lazyload,
      loop: 'yes' === lottieSettings.loop
    };
  }

  playLottie() {
    const frame = this.getAnimationFrames();
    this.lottie.stop();
    this.lottie.playSegments([frame.first, frame.last], true); // We reset the loop cycle state after playing the animation.

    this.state.isNewLoopCycle = false;
  }

  bindAnimationHoverEvents() {
    this.createAnimationHoverInEvents();
    this.createAnimationHoverOutEvents();
  }

  createAnimationHoverInEvents() {
    const lottieSettings = this.getLottieSettings(),
          $widgetArea = this.getHoverAreaElement();
    this.state.hoverArea = lottieSettings.hover_area;

    this.listeners.elements.$widgetArea.triggerAnimationHoverIn = () => {
      this.state.animationDirection = 'forward';
      this.playLottie();
    };

    this.addSessionEventListener($widgetArea, 'mouseenter', this.listeners.elements.$widgetArea.triggerAnimationHoverIn);
  }
  /**
   * @param {jQuery} $el
   * @param {string} event - event type
   * @param {Function} callback
   */


  addSessionEventListener($el, event, callback) {
    $el.on(event, callback);
    this.listeners.collection.push({
      $el,
      event,
      callback
    });
  }

  createAnimationHoverOutEvents() {
    const lottieSettings = this.getLottieSettings(),
          $widgetArea = this.getHoverAreaElement();

    if ('pause' === lottieSettings.on_hover_out || 'reverse' === lottieSettings.on_hover_out) {
      this.state.hoverOutMode = lottieSettings.on_hover_out;

      this.listeners.elements.$widgetArea.triggerAnimationHoverOut = () => {
        if ('pause' === lottieSettings.on_hover_out) {
          this.lottie.pause();
        } else {
          this.state.animationDirection = 'backward';
          this.playLottie();
        }
      };

      this.addSessionEventListener($widgetArea, 'mouseleave', this.listeners.elements.$widgetArea.triggerAnimationHoverOut);
    }
  }

  getHoverAreaElement() {
    const lottieSettings = this.getLottieSettings();

    if ('section' === lottieSettings.hover_area) {
      return this.elements.$sectionParent;
    } else if ('column' === lottieSettings.hover_area) {
      return this.elements.$columnParent;
    }

    return this.elements.$container;
  }

  setLoopOnAnimationComplete() {
    const lottieSettings = this.getLottieSettings();
    this.state.isNewLoopCycle = true;

    if (lottieSettings.loop && !this.isReverseMode()) {
      this.setLoopWhenNotReverse();
    } else if (lottieSettings.loop && this.isReverseMode()) {
      this.setReverseAnimationOnLoop();
    } else if (!lottieSettings.loop && this.isReverseMode()) {
      this.setReverseAnimationOnSingleTrigger();
    }
  }

  isReverseMode() {
    const lottieSettings = this.getLottieSettings();
    return 'yes' === lottieSettings.reverse_animation || 'reverse' === lottieSettings.on_hover_out && 'backward' === this.state.animationDirection;
  }

  setLoopWhenNotReverse() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.number_of_times > 0) {
      this.state.playAnimationCount++;

      if (this.state.playAnimationCount < lottieSettings.number_of_times) {
        this.playLottie();
      } else {
        this.state.playAnimationCount = 0;
      }
    } else {
      this.playLottie();
    }
  }

  setReverseAnimationOnLoop() {
    const lottieSettings = this.getLottieSettings();
    /*
    We trigger the reverse animation:
    either when we don't have any value in the 'Number of Times" field, and then it will be an infinite forward/backward loop,
    or, when we have a value in the 'Number of Times" field and then we need to limit the number of times of the loop cycles.
     */

    if (!lottieSettings.number_of_times || this.state.playAnimationCount < lottieSettings.number_of_times) {
      this.state.animationDirection = 'forward' === this.state.animationDirection ? 'backward' : 'forward';
      this.playLottie();
      /*
      We need to increment the count only on the backward movements,
      because forward movement + backward movement are equal together to one full movement count.
      */

      if ('backward' === this.state.animationDirection) {
        this.state.playAnimationCount++;
      }
    } else {
      // Reset the values for the loop counting for the next trigger.
      this.state.playAnimationCount = 0;
      this.state.animationDirection = 'forward';
    }
  }

  setReverseAnimationOnSingleTrigger() {
    if (this.state.playAnimationCount < 1) {
      this.state.playAnimationCount++;
      this.state.animationDirection = 'backward';
      this.playLottie();
    } else if (this.state.playAnimationCount >= 1 && 'forward' === this.state.animationDirection) {
      this.state.animationDirection = 'backward';
      this.playLottie();
    } else {
      this.state.playAnimationCount = 0;
      this.state.animationDirection = 'forward';
    }
  }

  setAnimationSpeed() {
    const lottieSettings = this.getLottieSettings();

    if (lottieSettings.play_speed) {
      this.lottie.setSpeed(lottieSettings.play_speed.size);
    }
  }

  onElementChange() {
    this.updateLottieValues();
    this.resetAnimationTrigger();
  }

  updateLottieValues() {
    var _lottieSettings$play_2;

    const lottieSettings = this.getLottieSettings(),
          valuesComparison = [{
      sourceVal: (_lottieSettings$play_2 = lottieSettings.play_speed) === null || _lottieSettings$play_2 === void 0 ? void 0 : _lottieSettings$play_2.size,
      stateProp: 'animationSpeed',
      callback: () => this.setAnimationSpeed()
    }, {
      sourceVal: lottieSettings.link_timeout,
      stateProp: 'linkTimeout',
      callback: () => this.setLinkTimeout()
    }, {
      sourceVal: lottieSettings.caption,
      stateProp: 'caption',
      callback: () => this.setCaption()
    }, {
      sourceVal: lottieSettings.effects_relative_to,
      stateProp: 'effectsRelativeTo',
      callback: () => this.updateAnimationByScrollPosition()
    }, {
      sourceVal: lottieSettings.loop,
      stateProp: 'loop',
      callback: () => this.onLoopStateChange()
    }];
    valuesComparison.forEach(item => {
      if ('undefined' !== typeof item.sourceVal && item.sourceVal !== this.state[item.stateProp]) {
        this.state[item.stateProp] = item.sourceVal;
        item.callback();
      }
    });
  }

  onLoopStateChange() {
    const isInActiveViewportMode = 'arriving_to_viewport' === this.state.currentAnimationTrigger && this.state.isInViewport;

    if (this.state.loop && (isInActiveViewportMode || 'none' === this.state.currentAnimationTrigger)) {
      this.playLottie();
    }
  }

  resetAnimationTrigger() {
    const lottieSettings = this.getLottieSettings(),
          isTriggerChange = lottieSettings.trigger !== this.state.currentAnimationTrigger,
          isViewportOffsetChange = lottieSettings.viewport ? this.isViewportOffsetChange() : false,
          isHoverOutModeChange = lottieSettings.on_hover_out ? this.isHoverOutModeChange() : false,
          isHoverAreaChange = lottieSettings.hover_area ? this.isHoverAreaChange() : false;

    if (isTriggerChange || isViewportOffsetChange || isHoverOutModeChange || isHoverAreaChange) {
      this.removeAnimationFrameRequests();
      this.removeObservers();
      this.removeEventListeners();
      this.initAnimationTrigger();
    }
  }

  isViewportOffsetChange() {
    const lottieSettings = this.getLottieSettings(),
          isStartOffsetChange = lottieSettings.viewport.sizes.start !== this.state.viewportOffset.start,
          isEndOffsetChange = lottieSettings.viewport.sizes.end !== this.state.viewportOffset.end;
    return isStartOffsetChange || isEndOffsetChange;
  }

  isHoverOutModeChange() {
    const lottieSettings = this.getLottieSettings();
    return lottieSettings.on_hover_out !== this.state.hoverOutMode;
  }

  isHoverAreaChange() {
    const lottieSettings = this.getLottieSettings();
    return lottieSettings.hover_area !== this.state.hoverArea;
  }

  removeEventListeners() {
    this.listeners.collection.forEach(listener => {
      listener.$el.off(listener.event, null, listener.callback);
    });
  }

  removeObservers() {
    // Removing all observers.
    for (const type in this.intersectionObservers) {
      if (this.intersectionObservers[type].observer && this.intersectionObservers[type].element) {
        this.intersectionObservers[type].observer.unobserve(this.intersectionObservers[type].element);
      }
    }
  }

  removeAnimationFrameRequests() {
    cancelAnimationFrame(this.animationFrameRequest.timer);
  }

  onDestroy() {
    super.onDestroy();
    this.destroyLottie();
  }

  destroyLottie() {
    this.removeAnimationFrameRequests();
    this.removeObservers();
    this.removeEventListeners();
    this.elements.$animation.removeData('lottie');

    if (this.lottie) {
      this.lottie.destroy();
    }
  }

  onLottieDomLoaded() {
    this.saveInitialValues();
    this.setAnimationSpeed();
    this.setLinkTimeout();
    this.setCaption();
    this.setAnimationFirstFrame();
    this.initAnimationTrigger();
  }

  onComplete() {
    this.setLoopOnAnimationComplete();
  }

  onLottieIntersection(event) {
    if (event.isInViewport) {
      /*
      It's required to update the animation progress on first load when lottie is inside the viewport on load
      but, there is a problem when the browser is refreshed when the scroll bar is not in 0 position,
      in this scenario, after the refresh the browser will trigger 2 scroll events
      one trigger on immediate load and second after a f ew ms to move the scroll bar to previous position (before refresh)
      therefore, we use the this.state.isAnimationScrollUpdateNeededOnFirstLoad flag
      to make sure that this.updateAnimationByScrollPosition() function will be triggered only once.
       */
      if (this.state.isAnimationScrollUpdateNeededOnFirstLoad) {
        this.state.isAnimationScrollUpdateNeededOnFirstLoad = false;
        this.updateAnimationByScrollPosition();
      }

      this.animationFrameRequest.timer = requestAnimationFrame(() => this.onAnimationFrameRequest());
    } else {
      const frame = this.getAnimationFrames(),
            finalFrame = 'up' === event.intersectionScrollDirection ? frame.first : frame.last;
      this.state.isAnimationScrollUpdateNeededOnFirstLoad = false;
      cancelAnimationFrame(this.animationFrameRequest.timer); // Set the animation values to min/max when out of viewport.

      this.lottie.goToAndStop(finalFrame, true);
    }
  }

  onAnimationFrameRequest() {
    // Making calculation only when there is a change with the scroll position.
    if (window.scrollY !== this.animationFrameRequest.lastScrollY) {
      this.updateAnimationByScrollPosition();
      this.animationFrameRequest.lastScrollY = window.scrollY;
    }

    this.animationFrameRequest.timer = requestAnimationFrame(() => this.onAnimationFrameRequest());
  }

}

exports.default = lottieHandler;

/***/ })

}]);
//# sourceMappingURL=lottie.dccf7257e6cc366bc6bd.bundle.js.mapPK!�U��7assets/js/code-highlight.cc6c8eb49e0aff6d419e.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["code-highlight"],{

/***/ "../modules/code-highlight/assets/js/frontend/handler.js":
/*!***************************************************************!*\
  !*** ../modules/code-highlight/assets/js/frontend/handler.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class codeHighlightHandler extends elementorModules.frontend.handlers.Base {
  onInit(...args) {
    super.onInit(...args);
    Prism.highlightAllUnder(this.$element[0], false);
  }

  onElementChange() {
    // Handle the changes for "Word Wrap" feature
    Prism.highlightAllUnder(this.$element[0], false);
  }

}

exports.default = codeHighlightHandler;

/***/ })

}]);
//# sourceMappingURL=code-highlight.cc6c8eb49e0aff6d419e.bundle.js.mapPK!E& ԫ�6assets/js/portfolio.c214590e93207960ce64.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[824],{2763:(t,e,s)=>{"use strict";var i=s(7914);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=i(s(2926)),o=n.default.extend({isActive:t=>t.$element.find(".elementor-portfolio").length,getSkinPrefix:()=>"",getDefaultSettings(){var t=n.default.prototype.getDefaultSettings.apply(this,arguments);return t.transitionDuration=450,jQuery.extend(t.classes,{active:"elementor-active",item:"elementor-portfolio-item",ghostItem:"elementor-portfolio-ghost-item"}),t},getDefaultElements(){var t=n.default.prototype.getDefaultElements.apply(this,arguments);return t.$filterButtons=this.$element.find(".elementor-portfolio__filter"),t},getOffset(t,e,s){var i=this.getSettings(),n=this.elements.$postsContainer.width()/i.colsCount-e;return{start:(e+(n+=n/(i.colsCount-1)))*(t%i.colsCount),top:(s+n)*Math.floor(t/i.colsCount)}},getClosureMethodsNames(){return n.default.prototype.getClosureMethodsNames.apply(this,arguments).concat(["onFilterButtonClick"])},filterItems(t){var e=this.elements.$posts,s=this.getSettings("classes.active"),i=".elementor-filter-"+t;"__all"!==t?(e.not(i).removeClass(s),e.filter(i).addClass(s)):e.addClass(s)},removeExtraGhostItems(){var t=this.getSettings(),e=this.elements.$posts.filter(":visible"),s=(t.colsCount-e.length%t.colsCount)%t.colsCount;this.elements.$postsContainer.find("."+t.classes.ghostItem).slice(s).remove()},handleEmptyColumns(){this.removeExtraGhostItems();for(var t=this.getSettings(),e=this.elements.$posts.filter(":visible"),s=this.elements.$postsContainer.find("."+t.classes.ghostItem),i=(t.colsCount-(e.length+s.length)%t.colsCount)%t.colsCount,n=0;n<i;n++)this.elements.$postsContainer.append(jQuery("<div>",{class:t.classes.item+" "+t.classes.ghostItem}))},showItems(t){t.show(),setTimeout((function(){t.css({opacity:1})}))},hideItems(t){t.hide()},arrangeGrid(){var t=jQuery,e=this,s=e.getSettings(),i=e.elements.$posts.filter("."+s.classes.active),n=e.elements.$posts.not("."+s.classes.active),o=e.elements.$posts.filter(":visible"),r=i.add(o),a=i.filter(":visible"),l=i.filter(":hidden"),h=n.filter(":visible"),m=o.outerWidth(),u=o.outerHeight();if(e.elements.$posts.css("transition-duration",s.transitionDuration+"ms"),e.showItems(l),e.isEdit&&e.fitImages(),e.handleEmptyColumns(),e.isMasonryEnabled())return e.hideItems(h),e.showItems(l),e.handleEmptyColumns(),void e.runMasonry();h.css({opacity:0,transform:"scale3d(0.2, 0.2, 1)"}),a.each((function(){var s=t(this),i=e.getOffset(r.index(s),m,u),n=e.getOffset(o.index(s),m,u);i.start===n.start&&i.top===n.top||(n.start-=i.start,n.top-=i.top,elementorFrontend.config.is_rtl&&(n.start*=-1),s.css({transitionDuration:"",transform:"translate3d("+n.start+"px, "+n.top+"px, 0)"}))})),setTimeout((function(){i.each((function(){var n=t(this),o=e.getOffset(r.index(n),m,u),a=e.getOffset(i.index(n),m,u);n.css({transitionDuration:s.transitionDuration+"ms"}),a.start-=o.start,a.top-=o.top,elementorFrontend.config.is_rtl&&(a.start*=-1),setTimeout((function(){n.css("transform","translate3d("+a.start+"px, "+a.top+"px, 0)")}))}))})),setTimeout((function(){e.hideItems(h),i.css({transitionDuration:"",transform:"translate3d(0px, 0px, 0px)"}),e.handleEmptyColumns()}),s.transitionDuration)},activeFilterButton(t){var e=this.getSettings("classes.active"),s=this.elements.$filterButtons,i=s.filter('[data-filter="'+t+'"]');s.removeClass(e),i.addClass(e)},setFilter(t){this.activeFilterButton(t),this.filterItems(t),this.arrangeGrid()},refreshGrid(){this.setColsCountSettings(),this.arrangeGrid()},bindEvents(){n.default.prototype.bindEvents.apply(this,arguments),this.elements.$filterButtons.on("click",this.onFilterButtonClick)},isMasonryEnabled(){return!!this.getElementSettings("masonry")},run(){n.default.prototype.run.apply(this,arguments),this.setColsCountSettings(),this.setFilter("__all"),this.handleEmptyColumns()},onFilterButtonClick(t){this.setFilter(jQuery(t.currentTarget).data("filter"))},onWindowResize(){n.default.prototype.onWindowResize.apply(this,arguments),this.refreshGrid()},onElementChange(t){n.default.prototype.onElementChange.apply(this,arguments),"classic_item_ratio"===t&&this.refreshGrid()}});e.default=o},2926:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getSkinPrefix:()=>"classic_",bindEvents(){var t=this.getModelCID();elementorFrontend.addListenerOnce(t,"resize",this.onWindowResize)},getClosureMethodsNames(){return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this,arguments).concat(["fitImages","onWindowResize","runMasonry"])},getDefaultSettings:()=>({classes:{fitHeight:"elementor-fit-height",hasItemRatio:"elementor-has-item-ratio"},selectors:{postsContainer:".elementor-posts-container",post:".elementor-post",postThumbnail:".elementor-post__thumbnail",postThumbnailImage:".elementor-post__thumbnail img"}}),getDefaultElements(){var t=this.getSettings("selectors");return{$postsContainer:this.$element.find(t.postsContainer),$posts:this.$element.find(t.post)}},fitImage(t){var e=this.getSettings(),s=t.find(e.selectors.postThumbnail),i=s.find("img")[0];if(i){var n=s.outerHeight()/s.outerWidth(),o=i.naturalHeight/i.naturalWidth;s.toggleClass(e.classes.fitHeight,o<n)}},fitImages(){var t=jQuery,e=this,s=getComputedStyle(this.$element[0],":after").content,i=this.getSettings();this.elements.$postsContainer.toggleClass(i.classes.hasItemRatio,!!s.match(/\d/)),e.isMasonryEnabled()||this.elements.$posts.each((function(){var s=t(this),n=s.find(i.selectors.postThumbnailImage);e.fitImage(s),n.on("load",(function(){e.fitImage(s)}))}))},setColsCountSettings(){var t,e=elementorFrontend.getCurrentDeviceMode(),s=this.getElementSettings(),i=this.getSkinPrefix();switch(e){case"mobile":t=s[i+"columns_mobile"];break;case"tablet":t=s[i+"columns_tablet"];break;default:t=s[i+"columns"]}this.setSettings("colsCount",t)},isMasonryEnabled(){return!!this.getElementSettings(this.getSkinPrefix()+"masonry")},initMasonry(){imagesLoaded(this.elements.$posts,this.runMasonry)},runMasonry(){var t=this.elements;t.$posts.css({marginTop:"",transitionDuration:""}),this.setColsCountSettings();var e=this.getSettings("colsCount"),s=this.isMasonryEnabled()&&e>=2;if(t.$postsContainer.toggleClass("elementor-posts-masonry",s),s){var i=this.getElementSettings(this.getSkinPrefix()+"row_gap.size");""===this.getSkinPrefix()&&""===i&&(i=this.getElementSettings(this.getSkinPrefix()+"item_gap.size")),new elementorModules.utils.Masonry({container:t.$postsContainer,items:t.$posts.filter(":visible"),columnsCount:this.getSettings("colsCount"),verticalSpaceBetween:i}).run()}else t.$postsContainer.height("")},run(){setTimeout(this.fitImages,0),this.initMasonry()},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.bindEvents(),this.run()},onWindowResize(){this.fitImages(),this.runMasonry()},onElementChange(){this.fitImages(),setTimeout(this.runMasonry)}});e.default=s}}]);PK!��ZQ	ZQ	"assets/js/form-submission-admin.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/date/now.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/date/now.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/date/now */ "../node_modules/core-js/library/fn/date/now.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/assign.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/assign */ "../node_modules/core-js/library/fn/object/assign.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-properties */ "../node_modules/core-js/library/fn/object/define-properties.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/entries.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/entries */ "../node_modules/core-js/library/fn/object/entries.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js":
/*!*********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptors */ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js ***!
  \*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-symbols */ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/keys.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/keys */ "../node_modules/core-js/library/fn/object/keys.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/values.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/values */ "../node_modules/core-js/library/fn/object/values.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/promise.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/promise.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/promise */ "../node_modules/core-js/library/fn/promise.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/weak-map.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/weak-map */ "../node_modules/core-js/library/fn/weak-map.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

function _arrayWithHoles(arr) {
  if (_Array$isArray(arr)) return arr;
}

module.exports = _arrayWithHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperty(obj, key, value) {
  if (key in obj) {
    _Object$defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/extends.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/extends.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$assign = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js");

function _extends() {
  module.exports = _extends = _Object$assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _extends.apply(this, arguments);
}

module.exports = _extends;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var _WeakMap = __webpack_require__(/*! @babel/runtime-corejs2/core-js/weak-map */ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

function _getRequireWildcardCache(nodeInterop) {
  if (typeof _WeakMap !== "function") return null;
  var cacheBabelInterop = new _WeakMap();
  var cacheNodeInterop = new _WeakMap();
  return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
    return {
      "default": obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        _Object$defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj["default"] = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

module.exports = _interopRequireWildcard;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js":
/*!******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _iterableToArrayLimit(arr, i) {
  var _i = arr && (typeof _Symbol !== "undefined" && arr[_Symbol$iterator] || arr["@@iterator"]);

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

module.exports = _iterableToArrayLimit;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js ***!
  \*************************************************************************/
/***/ ((module) => {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableRest;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

var _Object$getOwnPropertySymbols = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-symbols */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var _Object$getOwnPropertyDescriptors = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptors */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js");

var _Object$defineProperties = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-properties */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var defineProperty = __webpack_require__(/*! ./defineProperty.js */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js");

function ownKeys(object, enumerableOnly) {
  var keys = _Object$keys(object);

  if (_Object$getOwnPropertySymbols) {
    var symbols = _Object$getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        defineProperty(target, key, source[key]);
      });
    } else if (_Object$getOwnPropertyDescriptors) {
      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

module.exports = _objectSpread2;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js");

var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js");

function _slicedToArray(arr, i) {
  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}

module.exports = _slicedToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@reach/router/es/index.js":
/*!*************************************************!*\
  !*** ../node_modules/@reach/router/es/index.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Link": () => (/* binding */ Link),
/* harmony export */   "Location": () => (/* binding */ Location),
/* harmony export */   "LocationProvider": () => (/* binding */ LocationProvider),
/* harmony export */   "Match": () => (/* binding */ Match),
/* harmony export */   "Redirect": () => (/* binding */ Redirect),
/* harmony export */   "Router": () => (/* binding */ Router),
/* harmony export */   "ServerLocation": () => (/* binding */ ServerLocation),
/* harmony export */   "createHistory": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.createHistory),
/* harmony export */   "createMemorySource": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.createMemorySource),
/* harmony export */   "isRedirect": () => (/* binding */ isRedirect),
/* harmony export */   "navigate": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.navigate),
/* harmony export */   "redirectTo": () => (/* binding */ redirectTo),
/* harmony export */   "globalHistory": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.globalHistory),
/* harmony export */   "matchPath": () => (/* reexport safe */ _lib_utils__WEBPACK_IMPORTED_MODULE_5__.match),
/* harmony export */   "useLocation": () => (/* binding */ useLocation),
/* harmony export */   "useNavigate": () => (/* binding */ useNavigate),
/* harmony export */   "useParams": () => (/* binding */ useParams),
/* harmony export */   "useMatch": () => (/* binding */ useMatch)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var create_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! create-react-context */ "../node_modules/create-react-context/lib/index.js");
/* harmony import */ var create_react_context__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(create_react_context__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-lifecycles-compat */ "../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");
/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/utils */ "../node_modules/@reach/router/es/lib/utils.js");
/* harmony import */ var _lib_history__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/history */ "../node_modules/@reach/router/es/lib/history.js");
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

/* eslint-disable jsx-a11y/anchor-has-content */








////////////////////////////////////////////////////////////////////////////////

var createNamedContext = function createNamedContext(name, defaultValue) {
  var Ctx = create_react_context__WEBPACK_IMPORTED_MODULE_3___default()(defaultValue);
  Ctx.displayName = name;
  return Ctx;
};

////////////////////////////////////////////////////////////////////////////////
// Location Context/Provider
var LocationContext = createNamedContext("Location");

// sets up a listener if there isn't one already so apps don't need to be
// wrapped in some top level provider
var Location = function Location(_ref) {
  var children = _ref.children;
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    LocationContext.Consumer,
    null,
    function (context) {
      return context ? children(context) : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        LocationProvider,
        null,
        children
      );
    }
  );
};

var LocationProvider = function (_React$Component) {
  _inherits(LocationProvider, _React$Component);

  function LocationProvider() {
    var _temp, _this, _ret;

    _classCallCheck(this, LocationProvider);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
      context: _this.getContext(),
      refs: { unlisten: null }
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  LocationProvider.prototype.getContext = function getContext() {
    var _props$history = this.props.history,
        navigate = _props$history.navigate,
        location = _props$history.location;

    return { navigate: navigate, location: location };
  };

  LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {
    if (isRedirect(error)) {
      var _navigate = this.props.history.navigate;

      _navigate(error.uri, { replace: true });
    } else {
      throw error;
    }
  };

  LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
    if (prevState.context.location !== this.state.context.location) {
      this.props.history._onTransitionComplete();
    }
  };

  LocationProvider.prototype.componentDidMount = function componentDidMount() {
    var _this2 = this;

    var refs = this.state.refs,
        history = this.props.history;

    history._onTransitionComplete();
    refs.unlisten = history.listen(function () {
      Promise.resolve().then(function () {
        // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306
        requestAnimationFrame(function () {
          if (!_this2.unmounted) {
            _this2.setState(function () {
              return { context: _this2.getContext() };
            });
          }
        });
      });
    });
  };

  LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {
    var refs = this.state.refs;

    this.unmounted = true;
    refs.unlisten();
  };

  LocationProvider.prototype.render = function render() {
    var context = this.state.context,
        children = this.props.children;

    return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
      LocationContext.Provider,
      { value: context },
      typeof children === "function" ? children(context) : children || null
    );
  };

  return LocationProvider;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

////////////////////////////////////////////////////////////////////////////////


LocationProvider.defaultProps = {
  history: _lib_history__WEBPACK_IMPORTED_MODULE_6__.globalHistory
};
 true ? LocationProvider.propTypes = {
  history: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object.isRequired)
} : 0;
var ServerLocation = function ServerLocation(_ref2) {
  var url = _ref2.url,
      children = _ref2.children;

  var searchIndex = url.indexOf("?");
  var searchExists = searchIndex > -1;
  var pathname = void 0;
  var search = "";
  var hash = "";

  if (searchExists) {
    pathname = url.substring(0, searchIndex);
    search = url.substring(searchIndex);
  } else {
    pathname = url;
  }

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    LocationContext.Provider,
    {
      value: {
        location: {
          pathname: pathname,
          search: search,
          hash: hash
        },
        navigate: function navigate() {
          throw new Error("You can't call navigate on the server.");
        }
      }
    },
    children
  );
};
////////////////////////////////////////////////////////////////////////////////
// Sets baseuri and basepath for nested routers and links
var BaseContext = createNamedContext("Base", { baseuri: "/", basepath: "/" });

////////////////////////////////////////////////////////////////////////////////
// The main event, welcome to the show everybody.
var Router = function Router(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (baseContext) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (locationContext) {
          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterImpl, _extends({}, baseContext, locationContext, props));
        }
      );
    }
  );
};

var RouterImpl = function (_React$PureComponent) {
  _inherits(RouterImpl, _React$PureComponent);

  function RouterImpl() {
    _classCallCheck(this, RouterImpl);

    return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));
  }

  RouterImpl.prototype.render = function render() {
    var _props = this.props,
        location = _props.location,
        _navigate2 = _props.navigate,
        basepath = _props.basepath,
        primary = _props.primary,
        children = _props.children,
        baseuri = _props.baseuri,
        _props$component = _props.component,
        component = _props$component === undefined ? "div" : _props$component,
        domProps = _objectWithoutProperties(_props, ["location", "navigate", "basepath", "primary", "children", "baseuri", "component"]);

    var routes = react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(children).reduce(function (array, child) {
      var routes = createRoute(basepath)(child);
      return array.concat(routes);
    }, []);
    var pathname = location.pathname;


    var match = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.pick)(routes, pathname);

    if (match) {
      var params = match.params,
          uri = match.uri,
          route = match.route,
          element = match.route.value;

      // remove the /* from the end for child routes relative paths

      basepath = route.default ? basepath : route.path.replace(/\*$/, "");

      var props = _extends({}, params, {
        uri: uri,
        location: location,
        navigate: function navigate(to, options) {
          return _navigate2((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, uri), options);
        }
      });

      var clone = react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(element, props, element.props.children ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Router,
        { location: location, primary: primary },
        element.props.children
      ) : undefined);

      // using 'div' for < 16.3 support
      var FocusWrapper = primary ? FocusHandler : component;
      // don't pass any props to 'div'
      var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;

      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        BaseContext.Provider,
        { value: { baseuri: uri, basepath: basepath } },
        react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
          FocusWrapper,
          wrapperProps,
          clone
        )
      );
    } else {
      // Not sure if we want this, would require index routes at every level
      // warning(
      //   false,
      //   `<Router basepath="${basepath}">\n\nNothing matched:\n\t${
      //     location.pathname
      //   }\n\nPaths checked: \n\t${routes
      //     .map(route => route.path)
      //     .join(
      //       "\n\t"
      //     )}\n\nTo get rid of this warning, add a default NotFound component as child of Router:
      //   \n\tlet NotFound = () => <div>Not Found!</div>
      //   \n\t<Router>\n\t  <NotFound default/>\n\t  {/* ... */}\n\t</Router>`
      // );
      return null;
    }
  };

  return RouterImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent));

RouterImpl.defaultProps = {
  primary: true
};


var FocusContext = createNamedContext("Focus");

var FocusHandler = function FocusHandler(_ref3) {
  var uri = _ref3.uri,
      location = _ref3.location,
      component = _ref3.component,
      domProps = _objectWithoutProperties(_ref3, ["uri", "location", "component"]);

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    FocusContext.Consumer,
    null,
    function (requestFocus) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FocusHandlerImpl, _extends({}, domProps, {
        component: component,
        requestFocus: requestFocus,
        uri: uri,
        location: location
      }));
    }
  );
};

// don't focus on initial render
var initialRender = true;
var focusHandlerCount = 0;

var FocusHandlerImpl = function (_React$Component2) {
  _inherits(FocusHandlerImpl, _React$Component2);

  function FocusHandlerImpl() {
    var _temp2, _this4, _ret2;

    _classCallCheck(this, FocusHandlerImpl);

    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }

    return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {
      if (!_this4.state.shouldFocus && node) {
        node.focus();
      }
    }, _temp2), _possibleConstructorReturn(_this4, _ret2);
  }

  FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
    var initial = prevState.uri == null;
    if (initial) {
      return _extends({
        shouldFocus: true
      }, nextProps);
    } else {
      var myURIChanged = nextProps.uri !== prevState.uri;
      var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;
      return _extends({
        shouldFocus: myURIChanged || navigatedUpToMe
      }, nextProps);
    }
  };

  FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {
    focusHandlerCount++;
    this.focus();
  };

  FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {
    focusHandlerCount--;
    if (focusHandlerCount === 0) {
      initialRender = true;
    }
  };

  FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
    if (prevProps.location !== this.props.location && this.state.shouldFocus) {
      this.focus();
    }
  };

  FocusHandlerImpl.prototype.focus = function focus() {
    if (false) {}

    var requestFocus = this.props.requestFocus;


    if (requestFocus) {
      requestFocus(this.node);
    } else {
      if (initialRender) {
        initialRender = false;
      } else if (this.node) {
        // React polyfills [autofocus] and it fires earlier than cDM,
        // so we were stealing focus away, this line prevents that.
        if (!this.node.contains(document.activeElement)) {
          this.node.focus();
        }
      }
    }
  };

  FocusHandlerImpl.prototype.render = function render() {
    var _this5 = this;

    var _props2 = this.props,
        children = _props2.children,
        style = _props2.style,
        requestFocus = _props2.requestFocus,
        _props2$component = _props2.component,
        Comp = _props2$component === undefined ? "div" : _props2$component,
        uri = _props2.uri,
        location = _props2.location,
        domProps = _objectWithoutProperties(_props2, ["children", "style", "requestFocus", "component", "uri", "location"]);

    return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
      Comp,
      _extends({
        style: _extends({ outline: "none" }, style),
        tabIndex: "-1",
        ref: function ref(n) {
          return _this5.node = n;
        }
      }, domProps),
      react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        FocusContext.Provider,
        { value: this.requestFocus },
        this.props.children
      )
    );
  };

  return FocusHandlerImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

(0,react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_4__.polyfill)(FocusHandlerImpl);

var k = function k() {};

////////////////////////////////////////////////////////////////////////////////
var forwardRef = (react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef);

if (typeof forwardRef === "undefined") {
  forwardRef = function forwardRef(C) {
    return C;
  };
}

var Link = forwardRef(function (_ref4, ref) {
  var innerRef = _ref4.innerRef,
      props = _objectWithoutProperties(_ref4, ["innerRef"]);

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref5) {
      var basepath = _ref5.basepath,
          baseuri = _ref5.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (_ref6) {
          var location = _ref6.location,
              navigate = _ref6.navigate;

          var to = props.to,
              state = props.state,
              replace = props.replace,
              _props$getProps = props.getProps,
              getProps = _props$getProps === undefined ? k : _props$getProps,
              anchorProps = _objectWithoutProperties(props, ["to", "state", "replace", "getProps"]);

          var href = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
          var encodedHref = encodeURI(href);
          var isCurrent = location.pathname === encodedHref;
          var isPartiallyCurrent = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.startsWith)(location.pathname, encodedHref);

          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", _extends({
            ref: ref || innerRef,
            "aria-current": isCurrent ? "page" : undefined
          }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {
            href: href,
            onClick: function onClick(event) {
              if (anchorProps.onClick) anchorProps.onClick(event);
              if (shouldNavigate(event)) {
                event.preventDefault();
                var shouldReplace = replace;
                if (typeof replace !== "boolean" && isCurrent) {
                  var _location$state = _extends({}, location.state),
                      key = _location$state.key,
                      restState = _objectWithoutProperties(_location$state, ["key"]);

                  shouldReplace = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.shallowCompare)(_extends({}, state), restState);
                }
                navigate(href, {
                  state: state,
                  replace: shouldReplace
                });
              }
            }
          }));
        }
      );
    }
  );
});

Link.displayName = "Link";

 true ? Link.propTypes = {
  to: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired)
} : 0;

////////////////////////////////////////////////////////////////////////////////
function RedirectRequest(uri) {
  this.uri = uri;
}

var isRedirect = function isRedirect(o) {
  return o instanceof RedirectRequest;
};

var redirectTo = function redirectTo(to) {
  throw new RedirectRequest(to);
};

var RedirectImpl = function (_React$Component3) {
  _inherits(RedirectImpl, _React$Component3);

  function RedirectImpl() {
    _classCallCheck(this, RedirectImpl);

    return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));
  }

  // Support React < 16 with this hook
  RedirectImpl.prototype.componentDidMount = function componentDidMount() {
    var _props3 = this.props,
        navigate = _props3.navigate,
        to = _props3.to,
        from = _props3.from,
        _props3$replace = _props3.replace,
        replace = _props3$replace === undefined ? true : _props3$replace,
        state = _props3.state,
        noThrow = _props3.noThrow,
        baseuri = _props3.baseuri,
        props = _objectWithoutProperties(_props3, ["navigate", "to", "from", "replace", "state", "noThrow", "baseuri"]);

    Promise.resolve().then(function () {
      var resolvedTo = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
      navigate((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.insertParams)(resolvedTo, props), { replace: replace, state: state });
    });
  };

  RedirectImpl.prototype.render = function render() {
    var _props4 = this.props,
        navigate = _props4.navigate,
        to = _props4.to,
        from = _props4.from,
        replace = _props4.replace,
        state = _props4.state,
        noThrow = _props4.noThrow,
        baseuri = _props4.baseuri,
        props = _objectWithoutProperties(_props4, ["navigate", "to", "from", "replace", "state", "noThrow", "baseuri"]);

    var resolvedTo = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
    if (!noThrow) redirectTo((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.insertParams)(resolvedTo, props));
    return null;
  };

  return RedirectImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

var Redirect = function Redirect(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref7) {
      var baseuri = _ref7.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (locationContext) {
          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));
        }
      );
    }
  );
};

 true ? Redirect.propTypes = {
  from: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
  to: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired)
} : 0;

////////////////////////////////////////////////////////////////////////////////
var Match = function Match(_ref8) {
  var path = _ref8.path,
      children = _ref8.children;
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref9) {
      var baseuri = _ref9.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (_ref10) {
          var navigate = _ref10.navigate,
              location = _ref10.location;

          var resolvedPath = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(path, baseuri);
          var result = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(resolvedPath, location.pathname);
          return children({
            navigate: navigate,
            location: location,
            match: result ? _extends({}, result.params, {
              uri: result.uri,
              path: path
            }) : null
          });
        }
      );
    }
  );
};

////////////////////////////////////////////////////////////////////////////////
// Hooks

var useLocation = function useLocation() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(LocationContext);

  if (!context) {
    throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  return context.location;
};

var useNavigate = function useNavigate() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(LocationContext);

  if (!context) {
    throw new Error("useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  return context.navigate;
};

var useParams = function useParams() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BaseContext);

  if (!context) {
    throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  var location = useLocation();

  var results = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(context.basepath, location.pathname);

  return results ? results.params : null;
};

var useMatch = function useMatch(path) {
  if (!path) {
    throw new Error("useMatch(path: string) requires an argument of a string to match against");
  }
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BaseContext);

  if (!context) {
    throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  var location = useLocation();

  var resolvedPath = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(path, context.baseuri);
  var result = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(resolvedPath, location.pathname);
  return result ? _extends({}, result.params, {
    uri: result.uri,
    path: path
  }) : null;
};

////////////////////////////////////////////////////////////////////////////////
// Junk
var stripSlashes = function stripSlashes(str) {
  return str.replace(/(^\/+|\/+$)/g, "");
};

var createRoute = function createRoute(basepath) {
  return function (element) {
    if (!element) {
      return null;
    }

    if (element.type === (react__WEBPACK_IMPORTED_MODULE_0___default().Fragment) && element.props.children) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().Children.map(element.props.children, createRoute(basepath));
    }
    !(element.props.path || element.props.default || element.type === Redirect) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Router>: Children of <Router> must have a `path` or `default` prop, or be a `<Redirect>`. None found on element type `" + element.type + "`") : 0 : void 0;

    !!(element.type === Redirect && (!element.props.from || !element.props.to)) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Redirect from=\"" + element.props.from + "\" to=\"" + element.props.to + "\"/> requires both \"from\" and \"to\" props when inside a <Router>.") : 0 : void 0;

    !!(element.type === Redirect && !(0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.validateRedirect)(element.props.from, element.props.to)) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Redirect from=\"" + element.props.from + " to=\"" + element.props.to + "\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.") : 0 : void 0;

    if (element.props.default) {
      return { value: element, default: true };
    }

    var elementPath = element.type === Redirect ? element.props.from : element.props.path;

    var path = elementPath === "/" ? basepath : stripSlashes(basepath) + "/" + stripSlashes(elementPath);

    return {
      value: element,
      default: element.props.default,
      path: element.props.children ? stripSlashes(path) + "/*" : path
    };
  };
};

var shouldNavigate = function shouldNavigate(event) {
  return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
};

////////////////////////////////////////////////////////////////////////


/***/ }),

/***/ "../node_modules/@reach/router/es/lib/history.js":
/*!*******************************************************!*\
  !*** ../node_modules/@reach/router/es/lib/history.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "globalHistory": () => (/* binding */ globalHistory),
/* harmony export */   "navigate": () => (/* binding */ navigate),
/* harmony export */   "createHistory": () => (/* binding */ createHistory),
/* harmony export */   "createMemorySource": () => (/* binding */ createMemorySource)
/* harmony export */ });
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var getLocation = function getLocation(source) {
  var _source$location = source.location,
      search = _source$location.search,
      hash = _source$location.hash,
      href = _source$location.href,
      origin = _source$location.origin,
      protocol = _source$location.protocol,
      host = _source$location.host,
      hostname = _source$location.hostname,
      port = _source$location.port;
  var pathname = source.location.pathname;


  if (!pathname && href && canUseDOM) {
    var url = new URL(href);
    pathname = url.pathname;
  }

  return {
    pathname: encodeURI(decodeURI(pathname)),
    search: search,
    hash: hash,
    href: href,
    origin: origin,
    protocol: protocol,
    host: host,
    hostname: hostname,
    port: port,
    state: source.history.state,
    key: source.history.state && source.history.state.key || "initial"
  };
};

var createHistory = function createHistory(source, options) {
  var listeners = [];
  var location = getLocation(source);
  var transitioning = false;
  var resolveTransition = function resolveTransition() {};

  return {
    get location() {
      return location;
    },

    get transitioning() {
      return transitioning;
    },

    _onTransitionComplete: function _onTransitionComplete() {
      transitioning = false;
      resolveTransition();
    },
    listen: function listen(listener) {
      listeners.push(listener);

      var popstateListener = function popstateListener() {
        location = getLocation(source);
        listener({ location: location, action: "POP" });
      };

      source.addEventListener("popstate", popstateListener);

      return function () {
        source.removeEventListener("popstate", popstateListener);
        listeners = listeners.filter(function (fn) {
          return fn !== listener;
        });
      };
    },
    navigate: function navigate(to) {
      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
          state = _ref.state,
          _ref$replace = _ref.replace,
          replace = _ref$replace === undefined ? false : _ref$replace;

      if (typeof to === "number") {
        source.history.go(to);
      } else {
        state = _extends({}, state, { key: Date.now() + "" });
        // try...catch iOS Safari limits to 100 pushState calls
        try {
          if (transitioning || replace) {
            source.history.replaceState(state, null, to);
          } else {
            source.history.pushState(state, null, to);
          }
        } catch (e) {
          source.location[replace ? "replace" : "assign"](to);
        }
      }

      location = getLocation(source);
      transitioning = true;
      var transition = new Promise(function (res) {
        return resolveTransition = res;
      });
      listeners.forEach(function (listener) {
        return listener({ location: location, action: "PUSH" });
      });
      return transition;
    }
  };
};

////////////////////////////////////////////////////////////////////////////////
// Stores history entries in memory for testing or other platforms like Native
var createMemorySource = function createMemorySource() {
  var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "/";

  var searchIndex = initialPath.indexOf("?");
  var initialLocation = {
    pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,
    search: searchIndex > -1 ? initialPath.substr(searchIndex) : ""
  };
  var index = 0;
  var stack = [initialLocation];
  var states = [null];

  return {
    get location() {
      return stack[index];
    },
    addEventListener: function addEventListener(name, fn) {},
    removeEventListener: function removeEventListener(name, fn) {},

    history: {
      get entries() {
        return stack;
      },
      get index() {
        return index;
      },
      get state() {
        return states[index];
      },
      pushState: function pushState(state, _, uri) {
        var _uri$split = uri.split("?"),
            pathname = _uri$split[0],
            _uri$split$ = _uri$split[1],
            search = _uri$split$ === undefined ? "" : _uri$split$;

        index++;
        stack.push({ pathname: pathname, search: search.length ? "?" + search : search });
        states.push(state);
      },
      replaceState: function replaceState(state, _, uri) {
        var _uri$split2 = uri.split("?"),
            pathname = _uri$split2[0],
            _uri$split2$ = _uri$split2[1],
            search = _uri$split2$ === undefined ? "" : _uri$split2$;

        stack[index] = { pathname: pathname, search: search };
        states[index] = state;
      },
      go: function go(to) {
        var newIndex = index + to;

        if (newIndex < 0 || newIndex > states.length - 1) {
          return;
        }

        index = newIndex;
      }
    }
  };
};

////////////////////////////////////////////////////////////////////////////////
// global history - uses window.history as the source if available, otherwise a
// memory history
var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
var getSource = function getSource() {
  return canUseDOM ? window : createMemorySource();
};

var globalHistory = createHistory(getSource());
var navigate = globalHistory.navigate;

////////////////////////////////////////////////////////////////////////////////



/***/ }),

/***/ "../node_modules/@reach/router/es/lib/utils.js":
/*!*****************************************************!*\
  !*** ../node_modules/@reach/router/es/lib/utils.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "startsWith": () => (/* binding */ startsWith),
/* harmony export */   "pick": () => (/* binding */ pick),
/* harmony export */   "match": () => (/* binding */ match),
/* harmony export */   "resolve": () => (/* binding */ resolve),
/* harmony export */   "insertParams": () => (/* binding */ insertParams),
/* harmony export */   "validateRedirect": () => (/* binding */ validateRedirect),
/* harmony export */   "shallowCompare": () => (/* binding */ shallowCompare)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);


////////////////////////////////////////////////////////////////////////////////
// startsWith(string, search) - Check if `string` starts with `search`
var startsWith = function startsWith(string, search) {
  return string.substr(0, search.length) === search;
};

////////////////////////////////////////////////////////////////////////////////
// pick(routes, uri)
//
// Ranks and picks the best route to match. Each segment gets the highest
// amount of points, then the type of segment gets an additional amount of
// points where
//
//     static > dynamic > splat > root
//
// This way we don't have to worry about the order of our routes, let the
// computers do it.
//
// A route looks like this
//
//     { path, default, value }
//
// And a returned match looks like:
//
//     { route, params, uri }
//
// I know, I should use TypeScript not comments for these types.
var pick = function pick(routes, uri) {
  var match = void 0;
  var default_ = void 0;

  var _uri$split = uri.split("?"),
      uriPathname = _uri$split[0];

  var uriSegments = segmentize(uriPathname);
  var isRootUri = uriSegments[0] === "";
  var ranked = rankRoutes(routes);

  for (var i = 0, l = ranked.length; i < l; i++) {
    var missed = false;
    var route = ranked[i].route;

    if (route.default) {
      default_ = {
        route: route,
        params: {},
        uri: uri
      };
      continue;
    }

    var routeSegments = segmentize(route.path);
    var params = {};
    var max = Math.max(uriSegments.length, routeSegments.length);
    var index = 0;

    for (; index < max; index++) {
      var routeSegment = routeSegments[index];
      var uriSegment = uriSegments[index];

      if (isSplat(routeSegment)) {
        // Hit a splat, just grab the rest, and return a match
        // uri:   /files/documents/work
        // route: /files/*
        var param = routeSegment.slice(1) || "*";
        params[param] = uriSegments.slice(index).map(decodeURIComponent).join("/");
        break;
      }

      if (uriSegment === undefined) {
        // URI is shorter than the route, no match
        // uri:   /users
        // route: /users/:userId
        missed = true;
        break;
      }

      var dynamicMatch = paramRe.exec(routeSegment);

      if (dynamicMatch && !isRootUri) {
        var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;
        !matchIsNotReserved ?  true ? invariant__WEBPACK_IMPORTED_MODULE_0___default()(false, "<Router> dynamic segment \"" + dynamicMatch[1] + "\" is a reserved name. Please use a different name in path \"" + route.path + "\".") : 0 : void 0;
        var value = decodeURIComponent(uriSegment);
        params[dynamicMatch[1]] = value;
      } else if (routeSegment !== uriSegment) {
        // Current segments don't match, not dynamic, not splat, so no match
        // uri:   /users/123/settings
        // route: /users/:id/profile
        missed = true;
        break;
      }
    }

    if (!missed) {
      match = {
        route: route,
        params: params,
        uri: "/" + uriSegments.slice(0, index).join("/")
      };
      break;
    }
  }

  return match || default_ || null;
};

////////////////////////////////////////////////////////////////////////////////
// match(path, uri) - Matches just one path to a uri, also lol
var match = function match(path, uri) {
  return pick([{ path: path }], uri);
};

////////////////////////////////////////////////////////////////////////////////
// resolve(to, basepath)
//
// Resolves URIs as though every path is a directory, no files.  Relative URIs
// in the browser can feel awkward because not only can you be "in a directory"
// you can be "at a file", too. For example
//
//     browserSpecResolve('foo', '/bar/') => /bar/foo
//     browserSpecResolve('foo', '/bar') => /foo
//
// But on the command line of a file system, it's not as complicated, you can't
// `cd` from a file, only directories.  This way, links have to know less about
// their current path. To go deeper you can do this:
//
//     <Link to="deeper"/>
//     // instead of
//     <Link to=`{${props.uri}/deeper}`/>
//
// Just like `cd`, if you want to go deeper from the command line, you do this:
//
//     cd deeper
//     # not
//     cd $(pwd)/deeper
//
// By treating every path as a directory, linking to relative paths should
// require less contextual information and (fingers crossed) be more intuitive.
var resolve = function resolve(to, base) {
  // /foo/bar, /baz/qux => /foo/bar
  if (startsWith(to, "/")) {
    return to;
  }

  var _to$split = to.split("?"),
      toPathname = _to$split[0],
      toQuery = _to$split[1];

  var _base$split = base.split("?"),
      basePathname = _base$split[0];

  var toSegments = segmentize(toPathname);
  var baseSegments = segmentize(basePathname);

  // ?a=b, /users?b=c => /users?a=b
  if (toSegments[0] === "") {
    return addQuery(basePathname, toQuery);
  }

  // profile, /users/789 => /users/789/profile
  if (!startsWith(toSegments[0], ".")) {
    var pathname = baseSegments.concat(toSegments).join("/");
    return addQuery((basePathname === "/" ? "" : "/") + pathname, toQuery);
  }

  // ./         /users/123  =>  /users/123
  // ../        /users/123  =>  /users
  // ../..      /users/123  =>  /
  // ../../one  /a/b/c/d    =>  /a/b/one
  // .././one   /a/b/c/d    =>  /a/b/c/one
  var allSegments = baseSegments.concat(toSegments);
  var segments = [];
  for (var i = 0, l = allSegments.length; i < l; i++) {
    var segment = allSegments[i];
    if (segment === "..") segments.pop();else if (segment !== ".") segments.push(segment);
  }

  return addQuery("/" + segments.join("/"), toQuery);
};

////////////////////////////////////////////////////////////////////////////////
// insertParams(path, params)

var insertParams = function insertParams(path, params) {
  var _path$split = path.split("?"),
      pathBase = _path$split[0],
      _path$split$ = _path$split[1],
      query = _path$split$ === undefined ? "" : _path$split$;

  var segments = segmentize(pathBase);
  var constructedPath = "/" + segments.map(function (segment) {
    var match = paramRe.exec(segment);
    return match ? params[match[1]] : segment;
  }).join("/");
  var _params$location = params.location;
  _params$location = _params$location === undefined ? {} : _params$location;
  var _params$location$sear = _params$location.search,
      search = _params$location$sear === undefined ? "" : _params$location$sear;

  var searchSplit = search.split("?")[1] || "";
  constructedPath = addQuery(constructedPath, query, searchSplit);
  return constructedPath;
};

var validateRedirect = function validateRedirect(from, to) {
  var filter = function filter(segment) {
    return isDynamic(segment);
  };
  var fromString = segmentize(from).filter(filter).sort().join("/");
  var toString = segmentize(to).filter(filter).sort().join("/");
  return fromString === toString;
};

////////////////////////////////////////////////////////////////////////////////
// Junk
var paramRe = /^:(.+)/;

var SEGMENT_POINTS = 4;
var STATIC_POINTS = 3;
var DYNAMIC_POINTS = 2;
var SPLAT_PENALTY = 1;
var ROOT_POINTS = 1;

var isRootSegment = function isRootSegment(segment) {
  return segment === "";
};
var isDynamic = function isDynamic(segment) {
  return paramRe.test(segment);
};
var isSplat = function isSplat(segment) {
  return segment && segment[0] === "*";
};

var rankRoute = function rankRoute(route, index) {
  var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {
    score += SEGMENT_POINTS;
    if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;
    return score;
  }, 0);
  return { route: route, score: score, index: index };
};

var rankRoutes = function rankRoutes(routes) {
  return routes.map(rankRoute).sort(function (a, b) {
    return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;
  });
};

var segmentize = function segmentize(uri) {
  return uri
  // strip starting/ending slashes
  .replace(/(^\/+|\/+$)/g, "").split("/");
};

var addQuery = function addQuery(pathname) {
  for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    query[_key - 1] = arguments[_key];
  }

  query = query.filter(function (q) {
    return q && q.length > 0;
  });
  return pathname + (query && query.length > 0 ? "?" + query.join("&") : "");
};

var reservedNames = ["uri", "path"];

/**
 * Shallow compares two objects.
 * @param {Object} obj1 The first object to compare.
 * @param {Object} obj2 The second object to compare.
 */
var shallowCompare = function shallowCompare(obj1, obj2) {
  var obj1Keys = Object.keys(obj1);
  return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {
    return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];
  });
};

////////////////////////////////////////////////////////////////////////////////


/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/app.js":
/*!***********************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/app.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = App;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");

var _noticesContext = __webpack_require__(/*! ./context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

var _settingsContext = __webpack_require__(/*! ./context/settings-context */ "../modules/forms/submissions/assets/js/admin/context/settings-context.js");

var _notices = _interopRequireDefault(__webpack_require__(/*! ./components/notices */ "../modules/forms/submissions/assets/js/admin/components/notices.js"));

var _item = _interopRequireDefault(__webpack_require__(/*! ./pages/item */ "../modules/forms/submissions/assets/js/admin/pages/item.js"));

var _pages = _interopRequireDefault(__webpack_require__(/*! ./pages */ "../modules/forms/submissions/assets/js/admin/pages/index.js"));

var _reachRouterHashHistory = __webpack_require__(/*! reach-router-hash-history */ "../node_modules/reach-router-hash-history/index.js");

var history = (0, _router.createHistory)((0, _reachRouterHashHistory.createHashSource)());

function App() {
  return /*#__PURE__*/_react.default.createElement("div", {
    id: "elementor-form-submissions"
  }, /*#__PURE__*/_react.default.createElement(_settingsContext.SettingsProvider, {
    value: window.elementorSubmissionsConfig
  }, /*#__PURE__*/_react.default.createElement(_noticesContext.NoticesProvider, null, /*#__PURE__*/_react.default.createElement(_notices.default, null), /*#__PURE__*/_react.default.createElement(_router.LocationProvider, {
    history: history
  }, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(_pages.default, {
    path: "/"
  }), /*#__PURE__*/_react.default.createElement(_item.default, {
    path: "/:id"
  }))))));
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/bulk-action-select.js":
/*!*************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/bulk-action-select.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.BulkActionSelect = BulkActionSelect;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));

var _React = _react.default,
    useState = _React.useState,
    useCallback = _React.useCallback;

function BulkActionSelect(props) {
  var _useState = useState(''),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      value = _useState2[0],
      setValue = _useState2[1],
      applyAction = useCallback(function (e) {
    e.preventDefault();
    var action = props.actions.find(function (item) {
      return item.value === value;
    });

    if (!action) {
      return;
    }

    action.onApply();
    setValue('');
  }, [value, props.actions]);

  return /*#__PURE__*/_react.default.createElement("form", {
    className: "actions bulkactions ".concat(props.className),
    onSubmit: applyAction
  }, /*#__PURE__*/_react.default.createElement("label", {
    htmlFor: "bulk-action-selector-top",
    className: "screen-reader-text"
  }, __('Select bulk action', 'elementor-pro')), /*#__PURE__*/_react.default.createElement("select", {
    name: "action",
    value: value,
    onChange: function onChange(e) {
      return setValue(e.target.value);
    }
  }, /*#__PURE__*/_react.default.createElement("option", {
    value: "",
    disabled: true
  }, __('Bulk actions', 'elementor-pro')), props.actions.map(function (action) {
    return /*#__PURE__*/_react.default.createElement("option", {
      key: action.value,
      value: action.value
    }, action.label);
  })), /*#__PURE__*/_react.default.createElement("input", {
    type: "submit",
    className: "button action",
    value: __('Apply', 'elementor-pro')
  }));
}

BulkActionSelect.propTypes = {
  className: _propTypes.default.string,
  actions: _propTypes.default.arrayOf(_propTypes.default.shape({
    label: _propTypes.default.string.isRequired,
    value: _propTypes.default.string.isRequired,
    onApply: _propTypes.default.func.isRequired
  })).isRequired
};
BulkActionSelect.defaultProps = {
  className: ''
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/checkbox/bulk.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/checkbox/bulk.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Bulk;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));

var _React = _react.default,
    useCallback = _React.useCallback;

function Bulk(props) {
  var onChange = useCallback(function (e) {
    var value = e.target.checked ? (0, _toConsumableArray2.default)(props.allValues) : [];
    props.onChange(value);
  }, [props.onChange, props.checkedGroup, props.allValues]);
  return /*#__PURE__*/_react.default.createElement("input", {
    type: "checkbox",
    checked: props.checkedGroup.length === props.allValues.length && props.allValues.length > 0,
    onChange: onChange
  });
}

Bulk.propTypes = {
  checkedGroup: _propTypes.default.array.isRequired,
  allValues: _propTypes.default.array.isRequired,
  onChange: _propTypes.default.func.isRequired
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/checkbox/index.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/checkbox/index.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Checkbox;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _bulk = _interopRequireDefault(__webpack_require__(/*! ./bulk */ "../modules/forms/submissions/assets/js/admin/components/checkbox/bulk.js"));

var _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js"));

var _React = _react.default,
    useCallback = _React.useCallback;

function Checkbox(props) {
  var onChange = useCallback(function (e) {
    var value = e.target.checked ? [].concat((0, _toConsumableArray2.default)(props.checkedGroup), [props.value]) : props.checkedGroup.filter(function (checkedItem) {
      return checkedItem !== props.value;
    });
    props.onChange(value);
  }, [props.onChange, props.checkedGroup, props.value]);
  return /*#__PURE__*/_react.default.createElement("input", {
    type: "checkbox",
    checked: props.checkedGroup.includes(props.value),
    onChange: onChange
  });
}

Checkbox.propTypes = {
  checkedGroup: _propTypes.default.array.isRequired,
  value: _propTypes.default.number.isRequired,
  onChange: _propTypes.default.func.isRequired
};
Checkbox.Bulk = _bulk.default;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/date-filter.js":
/*!******************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/date-filter.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = DateFilter;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _React = _react.default,
    useState = _React.useState,
    useMemo = _React.useMemo,
    useCallback = _React.useCallback;

function DateFilter(props) {
  var _useState = useState(false),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      forceCustomSelect = _useState2[0],
      setForceCustomSelect = _useState2[1]; // All the options of the select input


  var options = useMemo(function () {
    var format = function format(date) {
      return wp.date.date('Y-m-d', date);
    },
        now = new Date(),
        yesterday = new Date(now),
        last7Days = new Date(now),
        last30Days = new Date(now);

    yesterday.setDate(yesterday.getDate() - 1);
    last7Days.setDate(last7Days.getDate() - 7);
    last30Days.setDate(last30Days.getDate() - 30);
    return [{
      label: __('All Time', 'elementor-pro'),
      value: 'all',
      filter: {
        before: null,
        after: null
      }
    }, {
      label: __('Today', 'elementor-pro'),
      value: 'today',
      filter: {
        before: null,
        after: format(now)
      }
    }, {
      label: __('Yesterday', 'elementor-pro'),
      value: 'yesterday',
      filter: {
        before: format(yesterday),
        after: format(yesterday)
      }
    }, {
      label: __('Last 7 days', 'elementor-pro'),
      value: 'last7',
      filter: {
        before: null,
        after: format(last7Days)
      }
    }, {
      label: __('Last 30 days', 'elementor-pro'),
      value: 'last_30',
      filter: {
        before: null,
        after: format(last30Days)
      }
    }, {
      label: __('Custom', 'elementor-pro'),
      value: 'custom',
      filter: {
        before: null,
        after: null
      }
    }];
  }, []); // Response to show the selected value of the select.

  var selectedValue = useMemo(function () {
    if (forceCustomSelect) {
      return 'custom';
    }

    var selected = options.find(function (option) {
      return option.filter.after === props.value.after && option.filter.before === props.value.before;
    });

    if (!selected) {
      return 'custom';
    }

    return selected.value;
  }, [options, props.value, forceCustomSelect]); // On select changed.

  var onSelectChanged = useCallback(function (_ref) {
    var value = _ref.target.value;
    var selected = options.find(function (option) {
      return option.value === value;
    });
    setForceCustomSelect('custom' === selected.value);
    props.onChange(selected.filter);
  }, [options]); // On date inputs changed.

  var onDateInputChanged = useCallback(function (value) {
    if (selectedValue !== 'custom') {
      return;
    }

    props.onChange(value);
  }, [selectedValue]);
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.label && /*#__PURE__*/_react.default.createElement("label", {
    htmlFor: "filter-by-".concat(props.name),
    className: "screen-reader-text"
  }, props.label), /*#__PURE__*/_react.default.createElement("select", {
    id: "filter-by-".concat(props.name),
    value: selectedValue,
    onChange: onSelectChanged
  }, options.map(function (_ref2) {
    var value = _ref2.value,
        label = _ref2.label;
    return /*#__PURE__*/_react.default.createElement("option", {
      key: value,
      value: value
    }, " ", label, " ");
  })), 'custom' === selectedValue && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", {
    type: "date",
    "aria-label": __('Start Date', 'elementor-pro'),
    value: props.value.after || '',
    onChange: function onChange(_ref3) {
      var value = _ref3.target.value;
      return onDateInputChanged({
        after: value
      });
    }
  }), "\xA0 - \xA0", /*#__PURE__*/_react.default.createElement("input", {
    type: "date",
    "aria-label": __('End Date', 'elementor-pro'),
    value: props.value.before || '',
    onChange: function onChange(_ref4) {
      var value = _ref4.target.value;
      return onDateInputChanged({
        before: value
      });
    }
  })));
}

DateFilter.propTypes = {
  value: PropTypes.shape({
    after: PropTypes.string,
    before: PropTypes.string
  }),
  label: PropTypes.string,
  onChange: PropTypes.func.isRequired,
  name: PropTypes.string.isRequired
};
DateFilter.defaultProps = {
  value: {
    after: null,
    before: null
  },
  options: []
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/export-button.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/export-button.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ExportButton;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _useExport = __webpack_require__(/*! modules/forms/submissions/assets/js/admin/hooks/use-export */ "../modules/forms/submissions/assets/js/admin/hooks/use-export.js");

var _buttonContentOptions;

var _React = _react.default,
    useMemo = _React.useMemo;
var buttonContentOptions = (_buttonContentOptions = {}, (0, _defineProperty2.default)(_buttonContentOptions, _useExport.EXPORT_MODE_ALL, __('Export All to CSV', 'elementor-pro')), (0, _defineProperty2.default)(_buttonContentOptions, _useExport.EXPORT_MODE_FILTERED, __('Export Filtered to CSV', 'elementor-pro')), (0, _defineProperty2.default)(_buttonContentOptions, _useExport.EXPORT_MODE_SELECTED, __('Export Selected to CSV', 'elementor-pro')), _buttonContentOptions);

function ExportButton(props) {
  var ProgressPercentage = useMemo(function () {
    if (!props.progress) {
      return 0;
    }

    var _props$progress = props.progress,
        count = _props$progress.count,
        success = _props$progress.success;

    if (0 === count || 0 === success) {
      return 0;
    }

    return Math.round(success / count * 100);
  }, [props.progress]);
  return /*#__PURE__*/_react.default.createElement("button", {
    className: "button button-primary e-export-button",
    onClick: function onClick() {
      return !props.disabled && props.onClick();
    },
    disabled: props.disabled
  }, props.isLoading ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("i", {
    className: "eicon-loading eicon-animation-spin"
  }), " \xA0", /*#__PURE__*/_react.default.createElement("span", null, " ", ProgressPercentage, "% "), " \xA0", __('Click to Cancel', 'elementor-pro')) : buttonContentOptions[props.mode]);
}

ExportButton.propTypes = {
  onClick: PropTypes.func.isRequired,
  isLoading: PropTypes.bool,
  mode: PropTypes.oneOf([_useExport.EXPORT_MODE_ALL, _useExport.EXPORT_MODE_SELECTED, _useExport.EXPORT_MODE_FILTERED]),
  disabled: PropTypes.bool,
  progress: PropTypes.shape({
    count: PropTypes.number,
    success: PropTypes.number
  })
};
ExportButton.defaultProps = {
  isLoading: false,
  hasSelected: false,
  disabled: false
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/form-actions-log.js":
/*!***********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/form-actions-log.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = FormActionsLog;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _postBox = _interopRequireDefault(__webpack_require__(/*! ./post-box */ "../modules/forms/submissions/assets/js/admin/components/post-box.js"));

var _date = __webpack_require__(/*! ../utils/date */ "../modules/forms/submissions/assets/js/admin/utils/date.js");

var _noticeMessages = _interopRequireDefault(__webpack_require__(/*! ../notice-messages */ "../modules/forms/submissions/assets/js/admin/notice-messages.js"));

function FormActionsLog(props) {
  return /*#__PURE__*/_react.default.createElement(_postBox.default, {
    header: /*#__PURE__*/_react.default.createElement("h2", null, __('Actions Log', 'elementor-pro'))
  }, 0 === props.actions.length && /*#__PURE__*/_react.default.createElement("div", {
    className: "inside"
  }, /*#__PURE__*/_react.default.createElement("p", {
    style: {
      margin: 0
    }
  }, " ", __('No form actions.', 'elementor-pro'), " ")), props.actions.map(function (actionLog) {
    return /*#__PURE__*/_react.default.createElement("div", {
      className: "inside e-form-submissions-action-log e-form-submissions-action-log--".concat('success' === actionLog.status ? 'success' : 'error'),
      key: actionLog.name
    }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("strong", {
      className: "e-form-submissions-action-log__label"
    }, " ", actionLog.label, " "), /*#__PURE__*/_react.default.createElement("i", {
      className: "".concat('success' === actionLog.status ? 'eicon-success eicon-check-circle-o' : 'eicon-error eicon-warning', " e-form-submissions-action-log__icon")
    }), /*#__PURE__*/_react.default.createElement("span", {
      className: "e-form-submissions-action-log__date"
    }, " ", (0, _date.formatToLocalDateTime)(actionLog.created_at), " ")), /*#__PURE__*/_react.default.createElement("p", {
      className: "e-form-submissions-action-log__message"
    }, actionLog.log || _noticeMessages.default.actionLogs[actionLog.status]()));
  }));
}

FormActionsLog.propTypes = {
  actions: PropTypes.arrayOf(PropTypes.shape({
    status: PropTypes.oneOf(['success', 'failed']),
    name: PropTypes.string,
    label: PropTypes.string,
    created_at: PropTypes.string,
    log: PropTypes.string
  })).isRequired
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/link.js":
/*!***********************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/link.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Link;

var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");

function Link(props) {
  var ref = (0, _react.useRef)();
  (0, _react.useEffect)(function () {
    if (!ref.current) {
      return;
    }

    ref.current.setAttribute('href', "".concat(location.href.split('#')[0], "#").concat(props.to));
  }, [props.to, ref.current]);
  return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({}, props, {
    ref: ref
  }));
}

Link.propTypes = (0, _objectSpread2.default)({}, _router.Link.propTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/links-filter.js":
/*!*******************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/links-filter.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = LinksFilter;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _React = _react.default,
    useCallback = _React.useCallback,
    useMemo = _React.useMemo;

function LinksFilter(props) {
  var onChange = useCallback(function (e, value) {
    e.preventDefault();

    if (!props.onChange) {
      return;
    }

    props.onChange(value);
  }, []);
  var options = useMemo(function () {
    return props.options.filter(function (option) {
      return option.shouldShow;
    });
  }, [props.options]);
  return /*#__PURE__*/_react.default.createElement("ul", {
    className: "subsubsub"
  }, options.map(function (option, index) {
    var isLast = index + 1 === options.length;
    return /*#__PURE__*/_react.default.createElement("li", {
      key: option.value
    }, "\xA0", /*#__PURE__*/_react.default.createElement("a", {
      href: "#",
      className: option.value === props.value ? 'current' : '',
      onClick: function onClick(e) {
        return onChange(e, option.value);
      }
    }, option.label, undefined !== option.count && /*#__PURE__*/_react.default.createElement("span", {
      className: "count"
    }, " (", option.count, ")")), "\xA0", isLast ? '' : '|');
  }));
}

LinksFilter.propTypes = {
  options: PropTypes.arrayOf(PropTypes.shape({
    value: PropTypes.string,
    label: PropTypes.string,
    count: PropTypes.number,
    shouldShow: PropTypes.bool
  })),
  value: PropTypes.string,
  onChange: PropTypes.func
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/notice.js":
/*!*************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/notice.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Notice;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _noticesContext = __webpack_require__(/*! ../context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

function Notice(props) {
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "notice notice-".concat(props.model.type, " ").concat(props.model.dismissible ? 'is-dismissible' : '')
  }, /*#__PURE__*/_react.default.createElement("p", null, props.model.message, props.model.undoAction && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\xA0", /*#__PURE__*/_react.default.createElement("a", {
    href: "#",
    onClick: function onClick(e) {
      e.preventDefault();
      props.model.undoAction();
    }
  }, __('Undo', 'elementor-pro')))), props.model.dismissible && /*#__PURE__*/_react.default.createElement("button", {
    type: "button",
    className: "notice-dismiss",
    onClick: props.dismiss
  }, /*#__PURE__*/_react.default.createElement("span", {
    className: "screen-reader-text"
  }, __('Dismiss this notice.', 'elementor-pro'))));
}

Notice.propTypes = {
  model: PropTypes.shape({
    key: PropTypes.number.isRequired,
    message: PropTypes.string.isRequired,
    type: PropTypes.oneOf([_noticesContext.NOTICE_TYPE_SUCCESS, _noticesContext.NOTICE_TYPE_ERROR]).isRequired,
    dismissible: PropTypes.bool,
    undoAction: PropTypes.func
  }),
  dismiss: PropTypes.func
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/notices.js":
/*!**************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/notices.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Notices;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _noticesContext = __webpack_require__(/*! ../context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

var _notice = _interopRequireDefault(__webpack_require__(/*! ./notice */ "../modules/forms/submissions/assets/js/admin/components/notice.js"));

function Notices() {
  var _useNoticesContext = (0, _noticesContext.useNoticesContext)(),
      notices = _useNoticesContext.notices,
      _dismiss = _useNoticesContext.dismiss;

  return notices.map(function (notice) {
    return /*#__PURE__*/_react.default.createElement(_notice.default, {
      key: notice.key,
      model: notice,
      dismiss: function dismiss() {
        return _dismiss(notice.key);
      }
    });
  });
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/pagination.js":
/*!*****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/pagination.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Pagination;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _React = _react.default,
    useCallback = _React.useCallback,
    useMemo = _React.useMemo;
/**
 * The characters » ‹, ›, » are flipped automatically in RTL.
 *
 * @see https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Web_Localizability/Creating_localizable_web_applications#D'ont_use_text_as_decoration
 *
 * @param {any} props
 * @return {JSX.Element|string} -
 * @class
 */

function Pagination(props) {
  var canNavigateBack = useMemo(function () {
    return 1 !== props.currentPage;
  }, [props.currentPage]);
  var canNavigateNext = useMemo(function () {
    return props.lastPage > props.currentPage;
  }, [props.currentPage, props.lastPage]);
  var NavigateBackElement = canNavigateBack ? 'a' : 'span';
  var NavigateNextElement = canNavigateNext ? 'a' : 'span';
  var navigate = useCallback(function (e, shouldNavigate, page) {
    e.preventDefault();

    if (!shouldNavigate) {
      return;
    }

    props.onChange(page);
  }, [props.onChange]);

  if (!props.currentPage) {
    return '';
  }

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "tablenav-pages ".concat(props.lastPage <= 1 && 'one-page')
  }, /*#__PURE__*/_react.default.createElement("span", {
    className: "displaying-num"
  }, props.total, " ", __('items', 'elementor-pro')), 1 < props.lastPage && /*#__PURE__*/_react.default.createElement("span", {
    className: "pagination-links"
  }, /*#__PURE__*/_react.default.createElement(NavigateBackElement, {
    className: "tablenav-pages-navspan button ".concat(!canNavigateBack && 'disabled'),
    onClick: function onClick(e) {
      return navigate(e, canNavigateBack, 1);
    }
  }, "\xAB"), "\xA0", /*#__PURE__*/_react.default.createElement(NavigateBackElement, {
    className: "tablenav-pages-navspan button ".concat(!canNavigateBack && 'disabled'),
    onClick: function onClick(e) {
      return navigate(e, canNavigateBack, props.currentPage - 1);
    }
  }, "\u2039"), /*#__PURE__*/_react.default.createElement("span", {
    className: "paging-input"
  }, /*#__PURE__*/_react.default.createElement("span", {
    className: "screen-reader-text"
  }, __('Current Page', 'elementor-pro')), /*#__PURE__*/_react.default.createElement("span", {
    className: "paging-input",
    style: {
      margin: '0 6px'
    }
  }, /*#__PURE__*/_react.default.createElement("span", {
    className: "tablenav-paging-text"
  }, props.currentPage, " ", __('of', 'elementor-pro'), /*#__PURE__*/_react.default.createElement("span", {
    className: "total-pages",
    style: {
      margin: '0'
    }
  }, " ", props.lastPage)))), /*#__PURE__*/_react.default.createElement(NavigateNextElement, {
    className: "tablenav-pages-navspan button ".concat(!canNavigateNext && 'disabled'),
    onClick: function onClick(e) {
      return navigate(e, canNavigateNext, props.currentPage + 1);
    }
  }, "\u203A"), "\xA0", /*#__PURE__*/_react.default.createElement(NavigateNextElement, {
    className: "tablenav-pages-navspan button ".concat(!canNavigateNext && 'disabled'),
    onClick: function onClick(e) {
      return navigate(e, canNavigateNext, props.lastPage);
    }
  }, "\xBB")));
}

Pagination.propTypes = {
  currentPage: PropTypes.number,
  total: PropTypes.number,
  lastPage: PropTypes.number,
  perPage: PropTypes.number,
  onChange: PropTypes.func.isRequired
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/post-box.js":
/*!***************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/post-box.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = PostBox;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function PostBox(props) {
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "postbox"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "postbox-header"
  }, props.header), /*#__PURE__*/_react.default.createElement("div", {
    className: "inner"
  }, props.children));
}

PostBox.propTypes = {
  header: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.arrayOf(PropTypes.node)]),
  children: PropTypes.oneOfType([PropTypes.node, PropTypes.arrayOf(PropTypes.node)])
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/referer-filter.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/referer-filter.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = RefererFilter;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

__webpack_require__(/*! core-js/modules/es6.regexp.search.js */ "../node_modules/core-js/modules/es6.regexp.search.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _React = _react.default,
    useEffect = _React.useEffect,
    useRef = _React.useRef,
    useState = _React.useState;

function renderSelect2(el, onChange) {
  jQuery(el).select2({
    allowClear: true,
    placeholder: __('All Pages', 'elementor-pro'),
    dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr',
    ajax: {
      delay: 400,
      transport: function transport(_ref, success, failure) {
        var search = _ref.data.search;
        return $e.data.get('form-submissions/referer', {
          search: search
        }, {
          refresh: true
        }).then(success).catch(failure);
      },
      data: function data(params) {
        return {
          search: params.term
        };
      },
      processResults: function processResults(_ref2) {
        var data = _ref2.data;
        return {
          results: data.data.map(function (_ref3) {
            var value = _ref3.value,
                label = _ref3.label;
            return {
              id: encodeURIComponent(value),
              text: label
            };
          })
        };
      },
      cache: true
    },
    minimumInputLength: 3
  }).on('select2:select select2:unselect', function (e) {
    onChange(e.target.value);
  });
}

function RefererFilter(props) {
  var _useState = useState([{
    value: '',
    label: __('All Pages', 'elementor-pro')
  }]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      options = _useState2[0],
      setOptions = _useState2[1];

  var ref = useRef();
  useEffect(function () {
    var $select2 = null;

    if (props.value) {
      $e.data.get('form-submissions/referer', {
        value: props.value
      }, {
        refresh: true
      }).then(function (_ref4) {
        var data = _ref4.data;
        return setOptions(function (prev) {
          return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(data.data));
        });
      }).then(function () {
        return $select2 = renderSelect2(ref.current, props.onChange);
      });
    } else {
      $select2 = renderSelect2(ref.current, props.onChange);
    }

    return function () {
      if (!$select2) {
        return;
      }

      $select2.select2('destroy').off('select2:select select2:unselect');
    };
  }, []);
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("label", {
    htmlFor: "filter-by-referer",
    className: "screen-reader-text"
  }, __('Filter by Page', 'elementor-pro')), /*#__PURE__*/_react.default.createElement("select", {
    ref: ref,
    id: "filter-by-referer",
    value: props.value
  }, options.map(function (_ref5) {
    var value = _ref5.value,
        label = _ref5.label;
    return /*#__PURE__*/_react.default.createElement("option", {
      key: value,
      value: encodeURIComponent(value)
    }, " ", label, " ");
  })));
}

RefererFilter.propTypes = {
  value: PropTypes.string,
  onChange: PropTypes.func.isRequired
};
RefererFilter.defaultProps = {
  value: ''
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/resource-filter.js":
/*!**********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/resource-filter.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ResourceFilter;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _React = _react.default,
    useState = _React.useState,
    useEffect = _React.useEffect;

function ResourceFilter(props) {
  var _useState = useState([]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localOptions = _useState2[0],
      setLocalOptions = _useState2[1];

  useEffect(function () {
    $e.data.get(props.resourceOptions.command, props.resourceOptions.args, {
      refresh: true
    }).then(function (result) {
      return setLocalOptions(result.data.data);
    });
  }, []);
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.label && /*#__PURE__*/_react.default.createElement("label", {
    htmlFor: "filter-by-".concat(props.name),
    className: "screen-reader-text"
  }, props.label), /*#__PURE__*/_react.default.createElement("select", {
    id: "filter-by-".concat(props.name),
    value: props.value,
    onChange: function onChange(e) {
      return props.onChange(e.target.value);
    }
  }, [].concat((0, _toConsumableArray2.default)(props.options), (0, _toConsumableArray2.default)(localOptions)).map(function (_ref) {
    var value = _ref.value,
        label = _ref.label;
    return /*#__PURE__*/_react.default.createElement("option", {
      key: value,
      value: value
    }, " ", label, " ");
  })));
}

ResourceFilter.propTypes = {
  value: PropTypes.string,
  onChange: PropTypes.func.isRequired,
  label: PropTypes.string,
  name: PropTypes.string.isRequired,
  options: PropTypes.arrayOf(PropTypes.shape({
    label: PropTypes.string,
    value: PropTypes.string
  })),
  resourceOptions: PropTypes.shape({
    command: PropTypes.string,
    args: PropTypes.object
  })
};
ResourceFilter.defaultProps = {
  value: '',
  options: []
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/search-box.js":
/*!*****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/search-box.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SearchBox;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _React = _react.default,
    useState = _React.useState,
    useRef = _React.useRef,
    useCallback = _React.useCallback; // in milliseconds

var DEFAULT_DEBOUNCE_TIMEOUT = 600;
/**
 * First render - nothing happens.
 * Second render - the query string value fills the search (should not trigger the debounce here in order to avoid onChange call)
 * Third render - the user type and the debounce get activate, and then it send the value up in the component tree.
 *
 * @param {any} props
 * @return {JSX.Element} -
 * @class
 */

function SearchBox(props) {
  var _useState = useState(props.value || ''),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1],
      debounceHandler = useRef(null);

  var onChange = useCallback(function (e) {
    if (debounceHandler.current) {
      clearTimeout(debounceHandler.current);
    }

    var value = e.target.value;
    setLocalValue(value);
    debounceHandler.current = setTimeout(function () {
      return props.onChange(value);
    }, props.debounceTimeout);
  }, []);
  return /*#__PURE__*/_react.default.createElement("p", {
    className: "search-box e-form-submissions-search"
  }, props.label && /*#__PURE__*/_react.default.createElement("label", {
    className: "screen-reader-text",
    htmlFor: "search-input"
  }, props.label), props.isSearching && /*#__PURE__*/_react.default.createElement("span", {
    className: "e-form-submissions-search__spinner"
  }, /*#__PURE__*/_react.default.createElement("i", {
    className: "eicon-loading eicon-animation-spin"
  })), /*#__PURE__*/_react.default.createElement("input", {
    type: "search",
    id: "search-input",
    name: "s",
    value: localValue,
    onChange: onChange,
    placeholder: __('Search...', 'elementor-pro')
  }));
}

SearchBox.propTypes = {
  value: PropTypes.string,
  onChange: PropTypes.func.isRequired,
  label: PropTypes.string,
  debounceTimeout: PropTypes.number,
  isSearching: PropTypes.bool
};
SearchBox.defaultProps = {
  debounceTimeout: DEFAULT_DEBOUNCE_TIMEOUT,
  isSearching: false
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-row.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-row.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SubmissionRow;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _link = _interopRequireDefault(__webpack_require__(/*! ./link */ "../modules/forms/submissions/assets/js/admin/components/link.js"));

var _wpTable = _interopRequireDefault(__webpack_require__(/*! ./wp-table */ "../modules/forms/submissions/assets/js/admin/components/wp-table/index.js"));

var _date = __webpack_require__(/*! ../utils/date */ "../modules/forms/submissions/assets/js/admin/utils/date.js");

var _React = _react.default,
    useState = _React.useState;

function SubmissionRow(props) {
  var _useState = useState(false),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      isMobileRowOpen = _useState2[0],
      setIsMobileRowOpen = _useState2[1];

  return /*#__PURE__*/_react.default.createElement(_wpTable.default.Row, {
    className: isMobileRowOpen ? 'is-expanded' : '',
    style: {
      fontWeight: !props.item.is_read ? 'bold' : 'inherit'
    }
  }, /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    component: "th",
    className: "check-column"
  }, props.checkBoxComponent), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "has-row-actions column-primary"
  }, 'trash' === props.item.status ? props.item.main.value : /*#__PURE__*/_react.default.createElement(_link.default, {
    to: "/".concat(props.item.id),
    "aria-label": "View"
  }, props.item.main.value), props.rowActionComponent, /*#__PURE__*/_react.default.createElement("button", {
    type: "button",
    className: "toggle-row",
    onClick: function onClick() {
      return setIsMobileRowOpen(function (prev) {
        return !prev;
      });
    }
  }, /*#__PURE__*/_react.default.createElement("span", {
    className: "screen-reader-text"
  }, __('Show more details', 'elementor-pro')))), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "column-actions",
    colName: props.tableTitles.actions_log_status.label
  }, props.item.actions_count > 0 && /*#__PURE__*/_react.default.createElement("i", {
    className: "".concat(props.item.actions_count === props.item.actions_succeeded_count ? 'eicon-success eicon-check-circle-o' : 'eicon-error eicon-warning'),
    title: "".concat(props.item.actions_succeeded_count, "/").concat(props.item.actions_count, " ").concat(__('Succeed', 'elementor-pro'))
  })), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "column-form",
    colName: props.tableTitles.form.label
  }, props.item.post && /*#__PURE__*/_react.default.createElement("a", {
    href: props.item.post.edit_url,
    target: "_blank",
    rel: "noreferrer"
  }, props.item.form.name, " (", props.item.form.element_id, ")")), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "column-page",
    colName: props.tableTitles.page.label
  }, /*#__PURE__*/_react.default.createElement("a", {
    href: props.item.referer,
    target: "_blank",
    rel: "noreferrer",
    title: props.item.referer_title
  }, props.item.referer_title || /*#__PURE__*/_react.default.createElement("i", {
    className: "eicon-editor-external-link e-form-submissions-referer-icon"
  }))), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "column-id",
    colName: props.tableTitles.id.label
  }, props.item.id), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "column-date",
    colName: props.tableTitles.created_at.label
  }, (0, _date.formatToLocalDateTime)(props.item.created_at)));
}

SubmissionRow.propTypes = {
  // The resource item that the table present.
  item: PropTypes.object.isRequired,
  tableTitles: PropTypes.objectOf(PropTypes.shape({
    label: PropTypes.string
  })),
  rowActionComponent: PropTypes.node,
  checkBoxComponent: PropTypes.node
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/acceptance.js":
/*!**********************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/acceptance.js ***!
  \**********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Acceptance;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _React = _react.default,
    useState = _React.useState;

function Acceptance(props) {
  var _useState = useState(props.value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  return /*#__PURE__*/_react.default.createElement("label", {
    className: "e-form-submissions-value-label"
  }, /*#__PURE__*/_react.default.createElement("input", {
    type: "checkbox",
    value: "on",
    checked: props.isEditMode ? 'on' === localValue : 'on' === props.value,
    onChange: function onChange(e) {
      var value = e.target.checked ? 'on' : '';
      setLocalValue(value);
      props.onChange(value);
    },
    disabled: !props.isEditMode
  }));
}

Acceptance.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/checkbox.js":
/*!********************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/checkbox.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Checkbox;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _useWatch = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-watch */ "../modules/forms/submissions/assets/js/admin/hooks/use-watch.js"));

var _useFormFieldOptions = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-form-field-options */ "../modules/forms/submissions/assets/js/admin/hooks/use-form-field-options.js"));

var _React = _react.default,
    useState = _React.useState,
    useMemo = _React.useMemo;

function Checkbox(props) {
  var value = useMemo(function () {
    return props.value.split(', ');
  }, [props.value]),
      _useState = useState(value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  (0, _useWatch.default)(function () {
    return props.onChange(localValue.join(', '));
  }, [localValue]);
  var options = (0, _useFormFieldOptions.default)(props.field.options);
  return options.map(function (option) {
    return /*#__PURE__*/_react.default.createElement("label", {
      className: "e-form-submissions-value-label",
      key: option.value
    }, /*#__PURE__*/_react.default.createElement("input", {
      type: "checkbox",
      value: option.value,
      checked: props.isEditMode ? localValue.includes(option.value) : value.includes(option.value),
      onChange: function onChange(e) {
        var checked = e.target.checked;
        setLocalValue(function (prev) {
          if (!checked) {
            prev = prev.filter(function (item) {
              return item !== option.value;
            });
          } else {
            prev = [].concat((0, _toConsumableArray2.default)(prev), [option.value]);
          }

          return prev;
        });
      },
      disabled: !props.isEditMode
    }), option.label);
  });
}

Checkbox.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/date.js":
/*!****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/date.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Date;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

var _date = __webpack_require__(/*! ../../utils/date */ "../modules/forms/submissions/assets/js/admin/utils/date.js");

function Date(props) {
  return /*#__PURE__*/_react.default.createElement(_text.default, {
    value: props.value,
    isEditMode: props.isEditMode,
    onChange: props.onChange,
    field: props.field
  }, props.value && (0, _date.formatToLocalDate)(props.value));
}

Date.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/email.js":
/*!*****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/email.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Email;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

function Email(props) {
  return /*#__PURE__*/_react.default.createElement(_text.default, {
    value: props.value,
    isEditMode: props.isEditMode,
    onChange: props.onChange,
    field: props.field
  }, props.value && /*#__PURE__*/_react.default.createElement("a", {
    href: "mailto:".concat(props.value)
  }, props.value));
}

Email.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js":
/*!*****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/index.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SubmissionValue;
exports.basePropTypes = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

var _email = _interopRequireDefault(__webpack_require__(/*! ./email */ "../modules/forms/submissions/assets/js/admin/components/submission-value/email.js"));

var _tel = _interopRequireDefault(__webpack_require__(/*! ./tel */ "../modules/forms/submissions/assets/js/admin/components/submission-value/tel.js"));

var _url = _interopRequireDefault(__webpack_require__(/*! ./url */ "../modules/forms/submissions/assets/js/admin/components/submission-value/url.js"));

var _radio = _interopRequireDefault(__webpack_require__(/*! ./radio */ "../modules/forms/submissions/assets/js/admin/components/submission-value/radio.js"));

var _select = _interopRequireDefault(__webpack_require__(/*! ./select */ "../modules/forms/submissions/assets/js/admin/components/submission-value/select.js"));

var _checkbox = _interopRequireDefault(__webpack_require__(/*! ./checkbox */ "../modules/forms/submissions/assets/js/admin/components/submission-value/checkbox.js"));

var _acceptance = _interopRequireDefault(__webpack_require__(/*! ./acceptance */ "../modules/forms/submissions/assets/js/admin/components/submission-value/acceptance.js"));

var _upload = _interopRequireDefault(__webpack_require__(/*! ./upload */ "../modules/forms/submissions/assets/js/admin/components/submission-value/upload.js"));

var _date = _interopRequireDefault(__webpack_require__(/*! ./date */ "../modules/forms/submissions/assets/js/admin/components/submission-value/date.js"));

var _time = _interopRequireDefault(__webpack_require__(/*! ./time */ "../modules/forms/submissions/assets/js/admin/components/submission-value/time.js"));

var _textarea = _interopRequireDefault(__webpack_require__(/*! ./textarea */ "../modules/forms/submissions/assets/js/admin/components/submission-value/textarea.js"));

var _React = _react.default,
    useMemo = _React.useMemo;
var defaultComponent = _text.default;
var components = (0, _entries.default)({
  Email: _email.default,
  Tel: _tel.default,
  Url: _url.default,
  Radio: _radio.default,
  Select: _select.default,
  Checkbox: _checkbox.default,
  Acceptance: _acceptance.default,
  Upload: _upload.default,
  Date: _date.default,
  Time: _time.default,
  Textarea: _textarea.default,
  Text: _text.default
}).reduce(function (current, _ref) {
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
      key = _ref2[0],
      component = _ref2[1];

  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, key.toLowerCase(), component));
}, {});
var basePropTypes = {
  value: PropTypes.string,
  isEditMode: PropTypes.bool,
  onChange: PropTypes.func.isRequired,
  field: PropTypes.shape({
    id: PropTypes.string.isRequired,
    type: PropTypes.string,
    options: PropTypes.arrayOf(PropTypes.string),
    is_multiple: PropTypes.bool
  })
};
exports.basePropTypes = basePropTypes;

function SubmissionValue(props) {
  var Component = useMemo(function () {
    var _props$field;

    var key = (_props$field = props.field) === null || _props$field === void 0 ? void 0 : _props$field.type;
    return components.hasOwnProperty(key) ? components[key] : defaultComponent;
  }, [props.field, props.value]);
  return /*#__PURE__*/_react.default.createElement(Component, {
    value: props.value,
    field: props.field,
    isEditMode: props.isEditMode,
    onChange: function onChange(value) {
      return props.onChange(props.field.id, value);
    }
  });
}

SubmissionValue.propTypes = (0, _objectSpread3.default)({}, basePropTypes);
SubmissionValue.defaultProps = {
  isEditMode: false
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/radio.js":
/*!*****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/radio.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Radio;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _useFormFieldOptions = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-form-field-options */ "../modules/forms/submissions/assets/js/admin/hooks/use-form-field-options.js"));

var _React = _react.default,
    useState = _React.useState;

function Radio(props) {
  var _useState = useState(props.value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  var options = (0, _useFormFieldOptions.default)(props.field.options);
  return options.map(function (option) {
    return /*#__PURE__*/_react.default.createElement("label", {
      className: "e-form-submissions-value-label",
      key: option.value
    }, /*#__PURE__*/_react.default.createElement("input", {
      type: "radio",
      value: option.value,
      checked: props.isEditMode ? option.value === localValue : option.value === props.value,
      onChange: function onChange() {
        setLocalValue(option.value);
        props.onChange(option.value);
      },
      disabled: !props.isEditMode
    }), option.label);
  });
}

Radio.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/select.js":
/*!******************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/select.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Select;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _from = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _useFormFieldOptions = _interopRequireDefault(__webpack_require__(/*! ../../hooks/use-form-field-options */ "../modules/forms/submissions/assets/js/admin/hooks/use-form-field-options.js"));

var _React = _react.default,
    useState = _React.useState;

function Select(props) {
  var value = props.field.is_multiple ? props.value.split(', ') : props.value;

  var _useState = useState(value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  var options = (0, _useFormFieldOptions.default)(props.field.options);
  return /*#__PURE__*/_react.default.createElement("select", {
    value: props.isEditMode ? localValue : value,
    multiple: props.field.is_multiple,
    onChange: function onChange(e) {
      var selectedValues = (0, _from.default)(e.target.selectedOptions, function (option) {
        return option.value;
      });
      setLocalValue(props.field.is_multiple ? selectedValues : selectedValues[0]);
      props.onChange(selectedValues.join(', '));
    },
    disabled: !props.isEditMode
  }, options.map(function (option) {
    return /*#__PURE__*/_react.default.createElement("option", {
      value: option.value,
      key: option.value
    }, option.label);
  }));
}

Select.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/tel.js":
/*!***************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/tel.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Tel;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

function Tel(props) {
  return /*#__PURE__*/_react.default.createElement(_text.default, {
    value: props.value,
    isEditMode: props.isEditMode,
    onChange: props.onChange,
    field: props.field
  }, props.value && /*#__PURE__*/_react.default.createElement("a", {
    href: "tel:".concat(props.value)
  }, props.value));
}

Tel.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js":
/*!****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/text.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Text;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _React = _react.default,
    useState = _React.useState,
    useMemo = _React.useMemo;
var availableInputTypes = {
  email: 'email',
  date: 'date',
  time: 'time',
  tel: 'tel',
  url: 'url',
  number: 'number',
  text: 'text'
};
var defaultInputType = availableInputTypes.text;

function Text(props) {
  var _useState = useState(props.value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  var inputType = useMemo(function () {
    var _props$field;

    return availableInputTypes.hasOwnProperty((_props$field = props.field) === null || _props$field === void 0 ? void 0 : _props$field.type) ? availableInputTypes[props.field.type] : defaultInputType;
  }, [props.field]);
  return props.isEditMode ? /*#__PURE__*/_react.default.createElement("input", {
    type: inputType,
    value: localValue,
    onChange: function onChange(_ref) {
      var value = _ref.target.value;
      setLocalValue(value);
      props.onChange(value);
    }
  }) : props.children || props.value;
}

Text.propTypes = (0, _objectSpread2.default)({
  children: PropTypes.oneOfType([PropTypes.node, PropTypes.string])
}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/textarea.js":
/*!********************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/textarea.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Textarea;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _React = _react.default,
    useState = _React.useState;

function Textarea(props) {
  var _useState = useState(props.value),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      localValue = _useState2[0],
      setLocalValue = _useState2[1];

  return props.isEditMode ? /*#__PURE__*/_react.default.createElement("textarea", {
    value: props.isEditMode ? localValue : props.value,
    rows: "4",
    onChange: function onChange(e) {
      var value = e.target.value;
      setLocalValue(value);
      props.onChange(value);
    }
  }) : props.value;
}

Textarea.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/time.js":
/*!****************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/time.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Time;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

var _date = __webpack_require__(/*! ../../utils/date */ "../modules/forms/submissions/assets/js/admin/utils/date.js");

function Time(props) {
  return /*#__PURE__*/_react.default.createElement(_text.default, {
    value: props.value,
    isEditMode: props.isEditMode,
    onChange: props.onChange,
    field: props.field
  }, props.value && (0, _date.formatToLocalTime)("2000-01-01 ".concat(props.value)));
}

Time.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/upload.js":
/*!******************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/upload.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Upload;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

function Upload(props) {
  var value = props.value.split(' , ');
  return value.map(function (path) {
    return /*#__PURE__*/_react.default.createElement("div", {
      key: path
    }, /*#__PURE__*/_react.default.createElement("a", {
      href: path,
      target: "_blank",
      rel: "noreferrer"
    }, path));
  });
}

Upload.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/submission-value/url.js":
/*!***************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/submission-value/url.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Url;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _index = __webpack_require__(/*! ./index */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js");

var _text = _interopRequireDefault(__webpack_require__(/*! ./text */ "../modules/forms/submissions/assets/js/admin/components/submission-value/text.js"));

function Url(props) {
  return /*#__PURE__*/_react.default.createElement(_text.default, {
    value: props.value,
    isEditMode: props.isEditMode,
    onChange: props.onChange,
    field: props.field
  }, props.value && /*#__PURE__*/_react.default.createElement("a", {
    href: props.value,
    target: "_blank",
    rel: "noreferrer"
  }, props.value));
}

Url.propTypes = (0, _objectSpread2.default)({}, _index.basePropTypes);

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/body.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/body.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Body;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function Body(props) {
  return /*#__PURE__*/_react.default.createElement("tbody", {
    id: "the-list"
  }, props.children);
}

Body.propTypes = {
  children: PropTypes.any
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/cell.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/cell.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Cell;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function Cell(props) {
  var Component = props.component;
  return /*#__PURE__*/_react.default.createElement(Component, {
    className: props.className,
    style: props.style,
    "data-colname": props.colName,
    colSpan: props.colSpan
  }, props.children);
}

Cell.propTypes = {
  component: PropTypes.string,
  children: PropTypes.any,
  className: PropTypes.string,
  style: PropTypes.object,
  colName: PropTypes.string,
  colSpan: PropTypes.number
};
Cell.defaultProps = {
  component: 'td',
  className: ''
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/footer.js":
/*!**********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/footer.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Footer;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function Footer(props) {
  return /*#__PURE__*/_react.default.createElement("tfoot", null, props.children);
}

Footer.propTypes = {
  children: PropTypes.any
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/header.js":
/*!**********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/header.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Header;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function Header(props) {
  return /*#__PURE__*/_react.default.createElement("thead", null, props.children);
}

Header.propTypes = {
  children: PropTypes.any
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/index.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/index.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = WpTable;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _header = _interopRequireDefault(__webpack_require__(/*! ./header */ "../modules/forms/submissions/assets/js/admin/components/wp-table/header.js"));

var _body = _interopRequireDefault(__webpack_require__(/*! ./body */ "../modules/forms/submissions/assets/js/admin/components/wp-table/body.js"));

var _footer = _interopRequireDefault(__webpack_require__(/*! ./footer */ "../modules/forms/submissions/assets/js/admin/components/wp-table/footer.js"));

var _row = _interopRequireDefault(__webpack_require__(/*! ./row */ "../modules/forms/submissions/assets/js/admin/components/wp-table/row.js"));

var _cell = _interopRequireDefault(__webpack_require__(/*! ./cell */ "../modules/forms/submissions/assets/js/admin/components/wp-table/cell.js"));

var _orderableCell = _interopRequireDefault(__webpack_require__(/*! ./orderable-cell */ "../modules/forms/submissions/assets/js/admin/components/wp-table/orderable-cell.js"));

var _rowActions = _interopRequireDefault(__webpack_require__(/*! ./row-actions */ "../modules/forms/submissions/assets/js/admin/components/wp-table/row-actions.js"));

function WpTable(props) {
  return /*#__PURE__*/_react.default.createElement("table", {
    className: "wp-list-table widefat fixed table-view-list ".concat(props.className),
    style: props.style
  }, props.children);
}

WpTable.propTypes = {
  children: PropTypes.any,
  style: PropTypes.object,
  className: PropTypes.string
};
WpTable.defaultProps = {
  className: ''
};
WpTable.Header = _header.default;
WpTable.Body = _body.default;
WpTable.Footer = _footer.default;
WpTable.Row = _row.default;
WpTable.Cell = _cell.default;
WpTable.OrderableCell = _orderableCell.default;
WpTable.RowActions = _rowActions.default;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/orderable-cell.js":
/*!******************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/orderable-cell.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = OrderableCell;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _cell = _interopRequireDefault(__webpack_require__(/*! ./cell */ "../modules/forms/submissions/assets/js/admin/components/wp-table/cell.js"));

function OrderableCell(props) {
  var className = "".concat(props.className, " sortable ").concat(props.order.current.by === props.order.key && "sorted ".concat(props.order.current.direction));
  return /*#__PURE__*/_react.default.createElement(_cell.default, {
    component: props.component,
    style: props.style,
    className: className
  }, /*#__PURE__*/_react.default.createElement("a", {
    href: "#",
    onClick: function onClick() {
      return props.order.onChange({
        by: props.order.key,
        direction: props.order.key === props.order.current.by && 'asc' === props.order.current.direction ? 'desc' : 'asc'
      });
    }
  }, /*#__PURE__*/_react.default.createElement("span", null, props.children), /*#__PURE__*/_react.default.createElement("span", {
    className: "sorting-indicator"
  })));
}

OrderableCell.propTypes = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _cell.default.propTypes), {}, {
  order: PropTypes.shape({
    key: PropTypes.string.isRequired,
    current: PropTypes.shape({
      by: PropTypes.string,
      direction: PropTypes.oneOf(['asc', 'desc'])
    }).isRequired,
    onChange: PropTypes.func.isRequired
  }).isRequired
});
OrderableCell.defaultProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _cell.default.defaultProps), {}, {
  component: 'th'
});

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/row-actions.js":
/*!***************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/row-actions.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = RowActions;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

function RowActions(props) {
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "row-actions",
    style: {
      fontWeight: 'normal'
    }
  }, props.actions.map(function (action, index) {
    var isLastAction = index + 1 === props.actions.length;
    var ActionComponent = action.component || 'a';
    return /*#__PURE__*/_react.default.createElement("span", {
      key: action.key,
      className: action.className
    }, /*#__PURE__*/_react.default.createElement(ActionComponent, (0, _extends2.default)({
      href: "#",
      "aria-label": action.label,
      onClick: function onClick(e) {
        e.preventDefault();
        action.onApply(props.item);
      }
    }, action.props ? action.props(props.item) : {}), action.label), !isLastAction && /*#__PURE__*/_react.default.createElement("span", null, "\xA0|\xA0"));
  }));
}

RowActions.propTypes = {
  actions: PropTypes.arrayOf(PropTypes.shape({
    key: PropTypes.string.isRequired,
    label: PropTypes.string.isRequired,
    onApply: PropTypes.func,
    className: PropTypes.string,
    props: PropTypes.func,
    component: PropTypes.any
  })),
  // The resource item that the table present.
  item: PropTypes.object
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/components/wp-table/row.js":
/*!*******************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/components/wp-table/row.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Row;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

function Row(props) {
  return /*#__PURE__*/_react.default.createElement("tr", {
    style: props.style,
    className: props.className
  }, props.children);
}

Row.propTypes = {
  children: PropTypes.any,
  style: PropTypes.object,
  className: PropTypes.string
};
Row.defaultProps = {
  style: {},
  className: ''
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/context/notices-context.js":
/*!*******************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/context/notices-context.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.useNoticesContext = useNoticesContext;
exports.NoticesProvider = NoticesProvider;
exports.NOTICE_TYPE_ERROR = exports.NOTICE_TYPE_SUCCESS = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _now = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/date/now */ "../node_modules/@babel/runtime-corejs2/core-js/date/now.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _React = _react.default,
    createContext = _React.createContext,
    useState = _React.useState,
    useCallback = _React.useCallback,
    useContext = _React.useContext;
var NOTICE_TYPE_SUCCESS = 'success';
exports.NOTICE_TYPE_SUCCESS = NOTICE_TYPE_SUCCESS;
var NOTICE_TYPE_ERROR = 'error';
exports.NOTICE_TYPE_ERROR = NOTICE_TYPE_ERROR;
var NoticesContext = createContext({
  notices: []
});
/**
 * Use Notifications context.
 *
 * @return {{}} -
 */

function useNoticesContext() {
  return useContext(NoticesContext);
}
/**
 * Notification Provider.
 *
 * @param {any} props
 * @return {JSX.Element} -
 * @class
 */


function NoticesProvider(props) {
  var _useState = useState([]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      notices = _useState2[0],
      setNotices = _useState2[1]; // Dismiss notification (remove from view).


  var dismiss = useCallback(function (key) {
    setNotices(function (prev) {
      return prev.filter(function (notice) {
        return notice.key !== key;
      });
    });
  }, []); // Add notification (show in view).

  var notify = useCallback(function (_ref) {
    var message = _ref.message,
        undoAction = _ref.undoAction,
        type = _ref.type,
        _ref$dismissible = _ref.dismissible,
        dismissible = _ref$dismissible === void 0 ? true : _ref$dismissible;

    if (!message) {
      return;
    }

    var key = (0, _now.default)() + Math.random();
    setNotices(function (prev) {
      return [{
        key: key,
        message: message,
        type: type,
        undoAction: undoAction,
        dismissible: dismissible
      }].concat((0, _toConsumableArray2.default)(prev));
    });

    if (props.dismissTimeout) {
      setTimeout(function () {
        return dismiss(key);
      }, props.dismissTimeout);
    }
  }, []); // Notify an error message

  var notifyError = useCallback(function (message) {
    notify({
      message: message,
      type: NOTICE_TYPE_ERROR
    });
  }, [notify]); // Notify a success message

  var notifySuccess = useCallback(function (message, undoAction) {
    notify({
      message: message,
      undoAction: undoAction,
      type: NOTICE_TYPE_SUCCESS
    });
  }, [notify]);
  return /*#__PURE__*/_react.default.createElement(NoticesContext.Provider, {
    value: {
      notices: notices,
      notify: notify,
      notifyError: notifyError,
      notifySuccess: notifySuccess,
      dismiss: dismiss
    }
  }, props.children);
}

NoticesProvider.propTypes = {
  children: PropTypes.any,
  dismissTimeout: PropTypes.number
};
NoticesProvider.defaultProps = {
  dismissTimeout: 4000
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/context/settings-context.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/context/settings-context.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.useSettingsContext = useSettingsContext;
exports.SettingsProvider = SettingsProvider;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _React = _react.default,
    createContext = _React.createContext,
    useContext = _React.useContext;
var SettingsContext = createContext({});
/**
 * Consume the context
 *
 * @return {{emptyTrashDays: number}} -
 */

function useSettingsContext() {
  return useContext(SettingsContext);
}
/**
 * Settings Provider
 *
 * @param {any} props
 * @return {JSX.Element} -
 * @class
 */


function SettingsProvider(props) {
  return /*#__PURE__*/_react.default.createElement(SettingsContext.Provider, {
    value: props.value
  }, props.children);
}

SettingsProvider.propTypes = {
  children: PropTypes.any,
  value: PropTypes.object.isRequired
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/commands/export.js":
/*!****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/commands/export.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.Export = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Export = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Export, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Export);

  function Export() {
    (0, _classCallCheck2.default)(this, Export);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Export, [{
    key: "onCatchApply",
    value: function onCatchApply() {// Do nothing. (override parent behavior)
    }
  }], [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'form-submissions/export/{id}';
    }
  }]);
  return Export;
}($e.modules.CommandData);

exports.Export = Export;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/commands/forms-index.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/commands/forms-index.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.Index = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Index = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Index, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Index);

  function Index() {
    (0, _classCallCheck2.default)(this, Index);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Index, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'forms/{id}';
    }
  }]);
  return Index;
}($e.modules.CommandData);

exports.Index = Index;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/commands/index.js":
/*!***************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/commands/index.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Restore", {
  enumerable: true,
  get: function get() {
    return _restore.Restore;
  }
});

_Object$defineProperty(exports, "Export", {
  enumerable: true,
  get: function get() {
    return _export.Export;
  }
});

_Object$defineProperty(exports, "Referer", {
  enumerable: true,
  get: function get() {
    return _referer.Referer;
  }
});

exports.Index = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _restore = __webpack_require__(/*! ./restore */ "../modules/forms/submissions/assets/js/admin/data/commands/restore.js");

var _export = __webpack_require__(/*! ./export */ "../modules/forms/submissions/assets/js/admin/data/commands/export.js");

var _referer = __webpack_require__(/*! ./referer */ "../modules/forms/submissions/assets/js/admin/data/commands/referer.js");

var Index = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Index, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Index);

  function Index() {
    (0, _classCallCheck2.default)(this, Index);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Index, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'form-submissions/{id}';
    }
  }]);
  return Index;
}($e.modules.CommandData);

exports.Index = Index;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/commands/referer.js":
/*!*****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/commands/referer.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.Referer = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Referer = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Referer, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Referer);

  function Referer() {
    (0, _classCallCheck2.default)(this, Referer);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Referer, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'form-submissions/referer/{id}';
    }
  }]);
  return Referer;
}($e.modules.CommandData);

exports.Referer = Referer;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/commands/restore.js":
/*!*****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/commands/restore.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.Restore = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Restore = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Restore, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Restore);

  function Restore() {
    (0, _classCallCheck2.default)(this, Restore);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Restore, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'form-submissions/restore/{id}';
    }
  }]);
  return Restore;
}($e.modules.CommandData);

exports.Restore = Restore;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/component.js":
/*!**********************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/component.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../modules/forms/submissions/assets/js/admin/data/commands/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return 'form-submissions';
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/data/forms-component.js":
/*!****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/data/forms-component.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands/forms-index */ "../modules/forms/submissions/assets/js/admin/data/commands/forms-index.js"));

var FormsComponent = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(FormsComponent, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(FormsComponent);

  function FormsComponent() {
    (0, _classCallCheck2.default)(this, FormsComponent);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(FormsComponent, [{
    key: "getNamespace",
    value: function getNamespace() {
      return this.constructor.namespace;
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
  return FormsComponent;
}($e.modules.ComponentBase);

exports.default = FormsComponent;
(0, _defineProperty2.default)(FormsComponent, "namespace", 'forms');

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js":
/*!*****************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useDataAction;
exports.STATUS_ERROR = exports.STATUS_SUCCESS = exports.STATUS_LOADING = exports.STATUS_IDLE = void 0;

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _React = React,
    useRef = _React.useRef,
    useCallback = _React.useCallback,
    useState = _React.useState,
    useMemo = _React.useMemo;
var STATUS_IDLE = 'idle';
exports.STATUS_IDLE = STATUS_IDLE;
var STATUS_LOADING = 'loading';
exports.STATUS_LOADING = STATUS_LOADING;
var STATUS_SUCCESS = 'success';
exports.STATUS_SUCCESS = STATUS_SUCCESS;
var STATUS_ERROR = 'error';
exports.STATUS_ERROR = STATUS_ERROR;

function useDataAction(action) {
  var deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  var abortControllerRef = useRef();

  var _useState = useState(STATUS_IDLE),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      status = _useState2[0],
      setStatus = _useState2[1]; // To avoid multiple declaration of the action callback, it memorize the argument that SHOULD
  // trigger a new declaration of the action callback.


  var calculatedDeps = useMemo(function () {
    return [].concat((0, _toConsumableArray2.default)(deps), [status]);
  }, [deps, status]);
  var wrappedAction = useCallback(function () {
    if (abortControllerRef.current) {
      abortControllerRef.current.abort();
    }

    abortControllerRef.current = new AbortController();
    setStatus(STATUS_LOADING);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return action(args, {
      abortController: abortControllerRef.current,
      status: status
    }).then(function (result) {
      setStatus(STATUS_SUCCESS);
      return result;
    }).catch(function (error) {
      setStatus(STATUS_ERROR);
      return _promise.default.reject(error);
    });
  }, [calculatedDeps]);
  return [wrappedAction, {
    abortController: abortControllerRef.current,
    status: status
  }];
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-export.js":
/*!************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-export.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.useExport = useExport;
exports.EXPORT_MODE_FILTERED = exports.EXPORT_MODE_SELECTED = exports.EXPORT_MODE_ALL = void 0;

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _useDataAction3 = _interopRequireWildcard(__webpack_require__(/*! ./use-data-action */ "../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js"));

var _downloadBlob = _interopRequireDefault(__webpack_require__(/*! ../utils/download-blob */ "../modules/forms/submissions/assets/js/admin/utils/download-blob.js"));

var _noticesContext = __webpack_require__(/*! ../context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

var EXPORT_MODE_ALL = 'all';
exports.EXPORT_MODE_ALL = EXPORT_MODE_ALL;
var EXPORT_MODE_SELECTED = 'selected';
exports.EXPORT_MODE_SELECTED = EXPORT_MODE_SELECTED;
var EXPORT_MODE_FILTERED = 'filtered';
exports.EXPORT_MODE_FILTERED = EXPORT_MODE_FILTERED;
var _React = React,
    useState = _React.useState,
    useMemo = _React.useMemo;
var ZIP_NAME_FORMAT = 'elementor-submissions-export-{DATE}';
var EXPORT_FILE_NAME_FORMAT = 'elementor-submissions-export-{FORM_LABEL}-{DATE}';
var DEFAULT_MAX_ROWS_PER_REQUEST = 10000;
var defaultOptions = {
  maxRowsPerRequest: DEFAULT_MAX_ROWS_PER_REQUEST,
  checked: [],
  filter: {}
};
/**
 * Export functionality
 *
 * @param {any} hookOptions
 * @return {(any|{mode: (string), progress: {success: number, count: number}, status: string})[]} -
 */

function useExport(hookOptions) {
  var options = useMemo(function () {
    return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, defaultOptions), hookOptions);
  }, [hookOptions]);

  var _useNoticesContext = (0, _noticesContext.useNoticesContext)(),
      notifyError = _useNoticesContext.notifyError;

  var _useState = useState({
    count: 0,
    success: 0
  }),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      progress = _useState2[0],
      setProgress = _useState2[1];

  var mode = useMemo(function () {
    if (options.checked.length > 0) {
      return EXPORT_MODE_SELECTED;
    }

    var filter = Object.fromEntries((0, _entries.default)(options.filter).filter(function (_ref) {
      var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
          value = _ref2[1];

      return value;
    }));

    if (1 === (0, _keys.default)(filter).length && 'all' === filter.status) {
      return EXPORT_MODE_ALL;
    }

    return EXPORT_MODE_FILTERED;
  }, [options.checked, options.filter]);

  var _useDataAction = (0, _useDataAction3.default)(function (_ref3, _ref4) {
    var _ref5 = (0, _slicedToArray2.default)(_ref3, 2),
        query = _ref5[0],
        total = _ref5[1];

    var abortController = _ref4.abortController,
        status = _ref4.status;

    if (status === _useDataAction3.STATUS_LOADING && abortController) {
      abortController.abort();
      return _promise.default.reject({
        message: 'Aborted'
      });
    }

    var numberOfRequests = Math.ceil(total / options.maxRowsPerRequest);
    var exportDataByForm = {};

    var promise = _promise.default.resolve();

    setProgress({
      count: numberOfRequests,
      success: 0
    });

    var _loop = function _loop(i) {
      promise = promise.then(function () {
        return $e.data.get('form-submissions/export', (0, _objectSpread3.default)((0, _objectSpread3.default)({}, query), {}, {
          per_page: options.maxRowsPerRequest,
          page: i
        }), {
          refresh: true,
          signal: abortController.signal
        });
      }).then(function (result) {
        var shouldSaveHeaders = 1 === i;
        exportDataByForm = mergeFormExportData(result.data.data, exportDataByForm, shouldSaveHeaders);
        setProgress(function (prev) {
          return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prev), {}, {
            success: i
          });
        });
      });
    };

    for (var i = 1; i <= numberOfRequests; i++) {
      _loop(i);
    }

    return promise.then(function () {
      return downloadExportsResults((0, _values.default)(exportDataByForm));
    }).catch(function (error) {
      return notifyError(error.message);
    });
  }, [options.maxRowsPerRequest]),
      _useDataAction2 = (0, _slicedToArray2.default)(_useDataAction, 2),
      exportSubmissions = _useDataAction2[0],
      exportStatus = _useDataAction2[1].status;

  return [exportSubmissions, {
    mode: mode,
    progress: progress,
    status: exportStatus
  }];
}
/**
 * Merge data from one response into the current data from all the other responses.
 *
 * @param {Array} response
 * @param {any} current
 * @param {boolean} shouldSaveHeaders
 * @return {any} -
 */


function mergeFormExportData(response, current, shouldSaveHeaders) {
  response.forEach(function (formResult) {
    var _current$formResult$i;

    // The first row of each csv response is the headers row. When it merges all csv responses, it deletes
    // the headers for each response except from the first one, the result will be only one row headers in the final csv.
    if (!shouldSaveHeaders) {
      delete formResult.content[0];
    }

    current = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, formResult.id, (0, _objectSpread3.default)((0, _objectSpread3.default)({}, formResult), {}, {
      content: (((_current$formResult$i = current[formResult.id]) === null || _current$formResult$i === void 0 ? void 0 : _current$formResult$i.content) || '') + formResult.content.join('\n')
    })));
  });
  return current;
}
/**
 * Merge all the promises result into one csv and download it.
 *
 * @param {Array} dataResults
 */


function downloadExportsResults(dataResults) {
  var currentDate = wp.date.date('Y-m-d');
  var files = dataResults.map(function (item) {
    return transformFormResultIntoBlob(item, currentDate);
  }); // If there is only one form file, just download it as csv instead of compressing it into a zip file.

  if (1 === files.length) {
    (0, _downloadBlob.default)(files[0].blob, files[0].filename);
    return;
  }

  __webpack_require__.e(/*! import() | jszip.vendor */ "jszip.vendor").then(__webpack_require__.t.bind(__webpack_require__, /*! jszip */ "../node_modules/jszip/dist/jszip.min.js", 23)).then(function (_ref6) {
    var JSZip = _ref6.default;
    var zip = new JSZip();
    files.forEach(function (_ref7) {
      var filename = _ref7.filename,
          blob = _ref7.blob;
      return zip.file(filename, blob);
    });
    return zip.generateAsync({
      type: 'blob'
    });
  }).then(function (zipBlob) {
    (0, _downloadBlob.default)(zipBlob, ZIP_NAME_FORMAT.replace('{DATE}', currentDate));
  });
}
/**
 * Transform the merged result from the server into a blob.
 *
 * @param {any} formResult
 * @param {Date} currentDate
 * @return {{filename: string, blob: Blob}} -
 */


function transformFormResultIntoBlob(formResult, currentDate) {
  return {
    filename: EXPORT_FILE_NAME_FORMAT.replace('{FORM_LABEL}', formResult.form_label).replace('{DATE}', currentDate).concat(".".concat(formResult.extension)),
    blob: new Blob([// UTF-8 BOM to support microsoft excel
    // ref: https://stackoverflow.com/questions/31959487/utf-8-encoidng-issue-when-exporting-csv-file-javascript
    "\uFEFF", formResult.content], {
      type: formResult.mimetype
    })
  };
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-form-field-options.js":
/*!************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-form-field-options.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useFormFieldOptions;

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

var _React = React,
    useMemo = _React.useMemo;
/**
 * The options that received from the API is an array of strings,
 * each string can be a regular value e.g: 'red' or 'blue'
 * or a pair of label and value e.g: 'Red|red' or 'Blue|blue'
 * this parse the array and return an object of 'value' and 'label'
 *
 * @param {Array} options
 */

function useFormFieldOptions(options) {
  return useMemo(function () {
    return options.map(function (rawOption) {
      var _rawOption$split = rawOption.split('|'),
          _rawOption$split2 = (0, _slicedToArray2.default)(_rawOption$split, 2),
          label = _rawOption$split2[0],
          value = _rawOption$split2[1];

      return {
        label: label,
        value: value === undefined ? label : value
      };
    });
  }, [options]);
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-methods-reducer.js":
/*!*********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-methods-reducer.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useMethodsReducer;

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

/**
 * Creates a more convenient way to use `useReducer`.
 * Inspired by useMethods package
 *
 * @see https://github.com/pelotom/use-methods
 *
 * @param {any} methods
 * @param {any} initialState
 * @param {any} init
 * @return {Array<any>} -
 */
function useMethodsReducer(methods, initialState) {
  var init = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;

  var _React$useReducer = React.useReducer(function (currentState, action) {
    if (!methods.hasOwnProperty(action.type)) {
      throw Error("The action type ".concat(action.type, " is not exists"));
    }

    return methods[action.type](currentState, action.payload);
  }, initialState, init),
      _React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
      state = _React$useReducer2[0],
      dispatch = _React$useReducer2[1];

  return [state, generateActions(methods, dispatch), dispatch];
}
/**
 * Bind all the actions to the dispatcher.
 *
 * @param {any} methods
 * @param {Function} dispatch
 * @return {{}} -
 */


function generateActions(methods, dispatch) {
  return (0, _keys.default)(methods).reduce(function (current, type) {
    return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, type, function (payload) {
      return dispatch({
        type: type,
        payload: payload
      });
    }));
  }, {});
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-rest-data-list.js":
/*!********************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-rest-data-list.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useRestDataList;

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _isArray = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _objectSpread5 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _useMethodsReducer3 = _interopRequireDefault(__webpack_require__(/*! ./use-methods-reducer */ "../modules/forms/submissions/assets/js/admin/hooks/use-methods-reducer.js"));

var _useRouterQueryString3 = _interopRequireDefault(__webpack_require__(/*! ./use-router-query-string */ "../modules/forms/submissions/assets/js/admin/hooks/use-router-query-string.js"));

var _useDataAction5 = _interopRequireDefault(__webpack_require__(/*! ./use-data-action */ "../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js"));

var _React = React,
    useState = _React.useState,
    useEffect = _React.useEffect,
    useMemo = _React.useMemo;
/**
 * Default options for the use function
 *
 * @type {{useRouterQueryString: boolean, allowedFilters: Array}}
 */

var defaultOptions = {
  allowedFilters: [],
  useRouterQueryString: false,
  hooks: {
    afterFetch: function afterFetch() {}
  }
};
var defaultQueryArgs = ['order', 'order_by', 'page', 'per_page'];
var currentFlatQuery = {};
/**
 * Main function
 *
 * @param {any} command
 * @param {Object} options
 * @return {{fetchData: any, data: any, meta: any, query: any, fetchOptions: any, actions: {setOrder: any, setFilter: any, setPage: any}}} -
 */

function useRestDataList(command) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  options = (0, _objectSpread5.default)((0, _objectSpread5.default)({}, defaultOptions), options);

  var queryArgs = [].concat(defaultQueryArgs, (0, _toConsumableArray2.default)(options.allowedFilters)),
      _useState = useState(false),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      fetchOptions = _useState2[0],
      setFetchOptions = _useState2[1],
      _useState3 = useState({
    data: [],
    meta: {}
  }),
      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
      _useState4$ = _useState4[0],
      data = _useState4$.data,
      meta = _useState4$.meta,
      setFetchResult = _useState4[1],
      _useQuery = useQuery(),
      query = _useQuery.query,
      flatQuery = _useQuery.flatQuery,
      _useQuery$actions = _useQuery.actions,
      setFilter = _useQuery$actions.setFilter,
      setPage = _useQuery$actions.setPage,
      setOrder = _useQuery$actions.setOrder,
      setInitial = _useQuery$actions.setInitial,
      _useRouterQueryString = (0, _useRouterQueryString3.default)(queryArgs),
      _useRouterQueryString2 = (0, _slicedToArray2.default)(_useRouterQueryString, 2),
      routerQueryString = _useRouterQueryString2[0],
      setRouterQueryString = _useRouterQueryString2[1]; // There is a weird bug, when calling the fetch data function from another function
  // the flatQuery inside the function is an old version of the flatQuery and not the updated one.
  // this cause a wrong request to the server that retrieve a wrong result.


  currentFlatQuery = flatQuery; // Fetch all the fetch options.

  var _useDataAction = (0, _useDataAction5.default)(function (args, _ref) {
    var abortController = _ref.abortController;
    return $e.data.options(command, {}, {
      signal: abortController.signal
    }).then(function (result) {
      return normalizeFetchOptionsResult(result.data, options.allowedFilters);
    }).then(function (normalizedResult) {
      return setFetchOptions(normalizedResult);
    });
  }, [command]),
      _useDataAction2 = (0, _slicedToArray2.default)(_useDataAction, 2),
      fetchFetchOptions = _useDataAction2[0],
      fetchOptionsStatus = _useDataAction2[1].status; // The fetch data action.


  var _useDataAction3 = (0, _useDataAction5.default)(function (args, _ref2) {
    var abortController = _ref2.abortController;
    return $e.data.get(command, currentFlatQuery, {
      refresh: true,
      signal: abortController.signal
    }).then(function (response) {
      return setFetchResult(response.data);
    }).then(function () {
      return options.hooks.afterFetch();
    });
  }, [command, flatQuery]),
      _useDataAction4 = (0, _slicedToArray2.default)(_useDataAction3, 2),
      fetchData = _useDataAction4[0],
      fetchDataStatus = _useDataAction4[1].status; // Runs on render only and fetch all the "fetch options".


  useEffect(function () {
    fetchFetchOptions();
  }, []); // When the fetch options in ready it prepare the query for the fetch.
  // This effect should be run only once and only when the fetchOptions is ready.

  useEffect(function () {
    var _fetchOptions$page, _fetchOptions$per_pag, _fetchOptions$order_b, _fetchOptions$order;

    if (!fetchOptions) {
      return;
    }

    var queryStringResult = options.useRouterQueryString ? routerQueryString : {};
    setInitial({
      filter: (0, _keys.default)(fetchOptions.filter).reduce(function (current, key) {
        var _fetchOptions$filter, _fetchOptions$filter$;

        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, key, (queryStringResult === null || queryStringResult === void 0 ? void 0 : queryStringResult[key]) || (fetchOptions === null || fetchOptions === void 0 ? void 0 : (_fetchOptions$filter = fetchOptions.filter) === null || _fetchOptions$filter === void 0 ? void 0 : (_fetchOptions$filter$ = _fetchOptions$filter[key]) === null || _fetchOptions$filter$ === void 0 ? void 0 : _fetchOptions$filter$.default) || null));
      }, {}),
      page: queryStringResult.page || ((_fetchOptions$page = fetchOptions.page) === null || _fetchOptions$page === void 0 ? void 0 : _fetchOptions$page.default) || 1,
      perPage: queryStringResult.per_page || ((_fetchOptions$per_pag = fetchOptions.per_page) === null || _fetchOptions$per_pag === void 0 ? void 0 : _fetchOptions$per_pag.default) || null,
      order: {
        by: queryStringResult.order_by || ((_fetchOptions$order_b = fetchOptions.order_by) === null || _fetchOptions$order_b === void 0 ? void 0 : _fetchOptions$order_b.default) || null,
        direction: queryStringResult.order || ((_fetchOptions$order = fetchOptions.order) === null || _fetchOptions$order === void 0 ? void 0 : _fetchOptions$order.default) || null
      }
    });
  }, [fetchOptions]); // This effect runs every time the query object changes, and it fetch the data from the server.

  useEffect(function () {
    if (!query.ready) {
      return;
    }

    if (options.useRouterQueryString) {
      setRouterQueryString(flatQuery);
    }

    fetchData();
  }, [flatQuery]);
  return {
    data: data,
    meta: meta,
    query: query,
    flatQuery: flatQuery,
    fetchOptions: fetchOptions,
    fetchData: fetchData,
    statuses: {
      fetchDataStatus: fetchDataStatus,
      fetchOptionsStatus: fetchOptionsStatus
    },
    actions: {
      setFilter: setFilter,
      setOrder: setOrder,
      setPage: setPage
    }
  };
}
/**
 * A reducer for the query of the rest list fetch.
 *
 * @return {{perPage: any, page: number}|{filter: any, page: number}|{ready: boolean}|{page: any}|(any|{})|Array|{sort: any}} -
 */


function useQuery() {
  var _useMethodsReducer = (0, _useMethodsReducer3.default)({
    setFilter: function setFilter(state, filter) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, state), {}, {
        page: 1,
        filter: (0, _objectSpread5.default)((0, _objectSpread5.default)({}, state.filter), filter)
      });
    },
    setPage: function setPage(state, page) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, state), {}, {
        page: page
      });
    },
    setPerPage: function setPerPage(state, perPage) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, state), {}, {
        page: 1,
        perPage: perPage
      });
    },
    setOrder: function setOrder(state, order) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, state), {}, {
        order: order
      });
    },
    setInitial: function setInitial(state, payload) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)((0, _objectSpread5.default)({}, state), payload), {}, {
        ready: true
      });
    }
  }, {
    ready: false,
    filter: {},
    page: 1,
    perPage: null,
    order: {
      by: 'id',
      direction: 'desc'
    }
  }),
      _useMethodsReducer2 = (0, _slicedToArray2.default)(_useMethodsReducer, 2),
      query = _useMethodsReducer2[0],
      actions = _useMethodsReducer2[1];

  var flatQuery = useMemo(function () {
    return Object.fromEntries((0, _entries.default)((0, _objectSpread5.default)((0, _objectSpread5.default)({}, query.filter), {}, {
      page: query.page,
      per_page: query.perPage,
      order: query.order.direction,
      order_by: query.order.by
    })).filter(function (_ref3) {
      var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
          value = _ref4[1];

      // Removes all the falsy values from the flatQuery. In JS empty array is not a falsy value
      // so there is a special case that checks array and removes it from the flatQuery if it is an empty array.
      if ((0, _isArray.default)(value) && 0 === value.length) {
        return false;
      }

      return !!value;
    }));
  }, [query]);
  return {
    query: query,
    flatQuery: flatQuery,
    actions: actions
  };
}
/**
 * Normalize the fetch options that returns from the server
 *
 * @param {any} data
 * @param {Array<string>} allowedFilters
 * @return {{}} -
 */


function normalizeFetchOptionsResult(data, allowedFilters) {
  var endpoint = data.endpoints.find(function (dataEndpoint) {
    return dataEndpoint.methods.includes('GET');
  });

  if (!endpoint) {
    return {};
  }

  return (0, _entries.default)(endpoint.args).reduce(function (current, _ref5) {
    var _value$additionalProp;

    var _ref6 = (0, _slicedToArray2.default)(_ref5, 2),
        key = _ref6[0],
        value = _ref6[1];

    if (defaultQueryArgs.includes(key)) {
      return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, key, value));
    }

    if (((_value$additionalProp = value.additionalProperties) === null || _value$additionalProp === void 0 ? void 0 : _value$additionalProp.context) !== 'filter' || !allowedFilters.includes(key)) {
      return (0, _objectSpread5.default)({}, current);
    }

    return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, {
      filter: (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current.filter), {}, (0, _defineProperty2.default)({}, key, value))
    });
  }, {
    filter: {}
  });
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-router-query-string.js":
/*!*************************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-router-query-string.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useRouterQueryString;

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");

var _React = React,
    useEffect = _React.useEffect,
    useState = _React.useState;
/**
 * Manage the router query string base on "hash" history.
 *
 * @param {string[]} queryArgs
 * @return {Array<any, any>} -
 */

function useRouterQueryString() {
  var queryArgs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];

  var location = (0, _router.useLocation)(),
      _useState = useState(false),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      isLocationRead = _useState2[0],
      setIsLocationRead = _useState2[1],
      _useState3 = useState(false),
      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
      query = _useState4[0],
      setQuery = _useState4[1]; // Read the query string (only at first render)


  useEffect(function () {
    if (!(location !== null && location !== void 0 && location.pathname) || isLocationRead) {
      return;
    }

    var parsedQueryString = queryArgs.reduce(function (current, arg) {
      var value = wp.url.getQueryArg(location.pathname, arg);

      if (undefined === value) {
        return current;
      }

      return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, arg, value));
    }, {});
    setQuery(parsedQueryString);
    setIsLocationRead(true);
  }, [location]); // Update the query string based on the query.

  useEffect(function () {
    if (!query) {
      return;
    }

    var basePath = location.pathname.split('?')[0] || '/';
    history.pushState(undefined, undefined, "#".concat(wp.url.addQueryArgs(basePath, query)));
  }, [query]);
  return [query, setQuery];
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/hooks/use-watch.js":
/*!***********************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/hooks/use-watch.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useWatch;
var _React = React,
    useEffect = _React.useEffect,
    useRef = _React.useRef;

function useWatch(callback, deps) {
  var isFirstRender = useRef(true);
  useEffect(function () {
    if (isFirstRender.current) {
      isFirstRender.current = false;
      return;
    }

    callback();
  }, deps);
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/notice-messages.js":
/*!***********************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/notice-messages.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");

var generalError = function generalError() {
  return __('Something went wrong, please try again later.', 'elementor-pro');
};

var _default = {
  trashed: {
    success: function success() {
      var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      return (0, _i18n.sprintf)((0, _i18n._n)('%d submission moved to Trash.', '%d submissions moved to Trash.', count, 'elementor-pro'), count);
    },
    error: generalError
  },
  deleted: {
    success: function success() {
      var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      return (0, _i18n.sprintf)((0, _i18n._n)('%d submission permanently deleted.', '%d submissions permanently deleted.', count, 'elementor-pro'), count);
    },
    error: generalError
  },
  updated: {
    success: function success() {
      var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      return (0, _i18n.sprintf)((0, _i18n._n)('Submission has been successfully updated.', '%d submissions have been successfully updated.', count, 'elementor-pro'), count);
    },
    error: generalError
  },
  restored: {
    success: function success() {
      var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
      return (0, _i18n.sprintf)((0, _i18n._n)('%d submission restored from Trash.', '%d submissions restored from Trash.', count, 'elementor-pro'), count);
    },
    error: generalError
  },
  markedAsRead: {
    success: function success() {
      return null;
    },
    error: generalError
  },
  markedAsUnread: {
    success: function success() {
      return null;
    },
    error: generalError
  },
  actionLogs: {
    success: function success() {
      return __('Action completed successfully.', 'elementor-pro');
    },
    failed: function failed() {
      return __('Action failed to run, please check your integration.', 'elementor-pro');
    }
  }
};
exports.default = _default;

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/pages/index.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/pages/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Index;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

__webpack_require__(/*! core-js/modules/es6.regexp.search.js */ "../node_modules/core-js/modules/es6.regexp.search.js");

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _checkbox = _interopRequireDefault(__webpack_require__(/*! ../components/checkbox */ "../modules/forms/submissions/assets/js/admin/components/checkbox/index.js"));

var _dateFilter = _interopRequireDefault(__webpack_require__(/*! ../components/date-filter */ "../modules/forms/submissions/assets/js/admin/components/date-filter.js"));

var _exportButton = _interopRequireDefault(__webpack_require__(/*! ../components/export-button */ "../modules/forms/submissions/assets/js/admin/components/export-button.js"));

var _link = _interopRequireDefault(__webpack_require__(/*! ../components/link */ "../modules/forms/submissions/assets/js/admin/components/link.js"));

var _linksFilter = _interopRequireDefault(__webpack_require__(/*! ../components/links-filter */ "../modules/forms/submissions/assets/js/admin/components/links-filter.js"));

var _noticeMessages = _interopRequireDefault(__webpack_require__(/*! ../notice-messages */ "../modules/forms/submissions/assets/js/admin/notice-messages.js"));

var _pagination = _interopRequireDefault(__webpack_require__(/*! ../components/pagination */ "../modules/forms/submissions/assets/js/admin/components/pagination.js"));

var _refererFilter = _interopRequireDefault(__webpack_require__(/*! ../components/referer-filter */ "../modules/forms/submissions/assets/js/admin/components/referer-filter.js"));

var _resourceFilter = _interopRequireDefault(__webpack_require__(/*! ../components/resource-filter */ "../modules/forms/submissions/assets/js/admin/components/resource-filter.js"));

var _searchBox = _interopRequireDefault(__webpack_require__(/*! ../components/search-box */ "../modules/forms/submissions/assets/js/admin/components/search-box.js"));

var _submissionRow = _interopRequireDefault(__webpack_require__(/*! ../components/submission-row */ "../modules/forms/submissions/assets/js/admin/components/submission-row.js"));

var _useDataAction7 = _interopRequireWildcard(__webpack_require__(/*! ../hooks/use-data-action */ "../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js"));

var _useRestDataList2 = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-rest-data-list */ "../modules/forms/submissions/assets/js/admin/hooks/use-rest-data-list.js"));

var _wpTable = _interopRequireDefault(__webpack_require__(/*! ../components/wp-table */ "../modules/forms/submissions/assets/js/admin/components/wp-table/index.js"));

var _bulkActionSelect = __webpack_require__(/*! ../components/bulk-action-select */ "../modules/forms/submissions/assets/js/admin/components/bulk-action-select.js");

var _useExport3 = __webpack_require__(/*! ../hooks/use-export */ "../modules/forms/submissions/assets/js/admin/hooks/use-export.js");

var _noticesContext = __webpack_require__(/*! ../context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../modules/forms/submissions/assets/js/admin/context/settings-context.js");

var _React = _react.default,
    useMemo = _React.useMemo,
    useState = _React.useState;
var SEARCH_FILTER_KEY = 'search';
var STATUS_FILTER_KEY = 'status';
var FORM_FILTER_KEY = 'form';
var REFERER_FILTER_KEY = 'referer';
var AFTER_FILTER_KEY = 'after';
var BEFORE_FILTER_KEY = 'before';

function Index() {
  var _meta$pagination2, _fetchOptions$filter, _fetchOptions$filter2, _fetchOptions$filter3, _fetchOptions$filter4;

  var _useNoticesContext = (0, _noticesContext.useNoticesContext)(),
      notifyError = _useNoticesContext.notifyError,
      notifySuccess = _useNoticesContext.notifySuccess;

  var _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
      isTrashEnabled = _useSettingsContext.isTrashEnabled;

  var _useState = useState([]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      checked = _useState2[0],
      setChecked = _useState2[1];

  var _useRestDataList = (0, _useRestDataList2.default)('form-submissions/index', {
    allowedFilters: [SEARCH_FILTER_KEY, STATUS_FILTER_KEY, FORM_FILTER_KEY, REFERER_FILTER_KEY, AFTER_FILTER_KEY, BEFORE_FILTER_KEY],
    useRouterQueryString: true,
    hooks: {
      afterFetch: function afterFetch() {
        return setChecked([]);
      }
    }
  }),
      data = _useRestDataList.data,
      meta = _useRestDataList.meta,
      fetchOptions = _useRestDataList.fetchOptions,
      fetchData = _useRestDataList.fetchData,
      flatQuery = _useRestDataList.flatQuery,
      _useRestDataList$quer = _useRestDataList.query,
      order = _useRestDataList$quer.order,
      filter = _useRestDataList$quer.filter,
      _useRestDataList$stat = _useRestDataList.statuses,
      fetchOptionsStatus = _useRestDataList$stat.fetchOptionsStatus,
      fetchDataStatus = _useRestDataList$stat.fetchDataStatus,
      _useRestDataList$acti = _useRestDataList.actions,
      setFilter = _useRestDataList$acti.setFilter,
      setOrder = _useRestDataList$acti.setOrder,
      setPage = _useRestDataList$acti.setPage;

  var isTrashFilterOn = useMemo(function () {
    return 'trash' === filter[STATUS_FILTER_KEY];
  }, [filter[STATUS_FILTER_KEY]]);

  var _useExport = (0, _useExport3.useExport)({
    checked: checked,
    filter: filter
  }),
      _useExport2 = (0, _slicedToArray2.default)(_useExport, 2),
      exportSubmissions = _useExport2[0],
      exportOptions = _useExport2[1];

  var _useDataAction = (0, _useDataAction7.default)(function (_ref, _ref2) {
    var _ref3 = (0, _slicedToArray2.default)(_ref, 2),
        query = _ref3[0],
        isRead = _ref3[1];

    var abortController = _ref2.abortController;

    if (!validateRestAction(query)) {
      return _promise.default.reject();
    }

    var messages = _noticeMessages.default[isRead ? 'markedAsRead' : 'markedAsUnread'];
    return $e.data.update('form-submissions/index', {
      is_read: isRead
    }, query, {
      signal: abortController.signal
    }).then(function (result) {
      var _result$data$meta;

      return notifySuccess(messages.success(((_result$data$meta = result.data.meta) === null || _result$data$meta === void 0 ? void 0 : _result$data$meta.affected) || 1));
    }).then(fetchData).catch(function () {
      return notifyError(messages.error());
    });
  }),
      _useDataAction2 = (0, _slicedToArray2.default)(_useDataAction, 1),
      updateRead = _useDataAction2[0];

  var _useDataAction3 = (0, _useDataAction7.default)(function (_ref4, _ref5) {
    var _ref6 = (0, _slicedToArray2.default)(_ref4, 1),
        query = _ref6[0];

    var abortController = _ref5.abortController;

    if (!validateRestAction(query)) {
      return _promise.default.reject();
    }

    return $e.data.update('form-submissions/restore', {}, query, {
      signal: abortController.signal
    }).then(function (result) {
      var _result$data$meta2;

      return notifySuccess(_noticeMessages.default.restored.success(((_result$data$meta2 = result.data.meta) === null || _result$data$meta2 === void 0 ? void 0 : _result$data$meta2.affected) || 1));
    }).then(fetchData).catch(function () {
      return notifyError(_noticeMessages.default.restored.error());
    });
  }),
      _useDataAction4 = (0, _slicedToArray2.default)(_useDataAction3, 1),
      restoreItems = _useDataAction4[0];

  var _useDataAction5 = (0, _useDataAction7.default)(function (_ref7, _ref8) {
    var _ref9 = (0, _slicedToArray2.default)(_ref7, 1),
        query = _ref9[0];

    var abortController = _ref8.abortController;

    if (!validateRestAction(query)) {
      return _promise.default.reject();
    }

    var messages = _noticeMessages.default[query.force ? 'deleted' : 'trashed'];
    return $e.data.delete('form-submissions/index', query, {
      signal: abortController.signal
    }).then(function (result) {
      var _result$data$meta3;

      return notifySuccess(messages.success(((_result$data$meta3 = result.data.meta) === null || _result$data$meta3 === void 0 ? void 0 : _result$data$meta3.affected) || 1), query.force ? null : function () {
        return restoreItems(query);
      });
    }).then(fetchData).catch(function () {
      return notifyError(messages.error());
    });
  }),
      _useDataAction6 = (0, _slicedToArray2.default)(_useDataAction5, 1),
      deleteItems = _useDataAction6[0];

  var rowActions = useMemo(function () {
    return [{
      key: 'view',
      label: __('View', 'elementor-pro'),
      shouldShow: function shouldShow(item) {
        return 'trash' !== item.status;
      },
      props: function props(item) {
        return {
          to: "/".concat(item.id),
          // override the default behavior of click event
          onClick: undefined
        };
      },
      component: _link.default
    }, {
      key: 'restore',
      label: __('Restore', 'elementor-pro'),
      onApply: function onApply(item) {
        return restoreItems({
          id: item.id
        });
      },
      shouldShow: function shouldShow(item) {
        return 'trash' === item.status;
      }
    }, {
      key: 'trash',
      label: __('Trash', 'elementor-pro'),
      onApply: function onApply(item) {
        return deleteItems({
          id: item.id
        });
      },
      shouldShow: function shouldShow(item) {
        return 'trash' !== item.status && isTrashEnabled;
      },
      className: 'trash'
    }, {
      key: 'delete',
      label: __('Delete Permanently', 'elementor-pro'),
      onApply: function onApply(item) {
        return deleteItems({
          id: item.id,
          force: 1
        });
      },
      shouldShow: function shouldShow(item) {
        return 'trash' === item.status || !isTrashEnabled;
      },
      className: 'trash'
    }, {
      key: 'read',
      label: __('Mark as Read', 'elementor-pro'),
      onApply: function onApply(item) {
        return updateRead({
          id: item.id
        }, true);
      },
      shouldShow: function shouldShow(item) {
        return 'trash' !== item.status && !item.is_read;
      }
    }, {
      key: 'unread',
      label: __('Mark as Unread', 'elementor-pro'),
      onApply: function onApply(item) {
        return updateRead({
          id: item.id
        }, false);
      },
      shouldShow: function shouldShow(item) {
        return 'trash' !== item.status && item.is_read;
      }
    }];
  }, []);
  var bulkActions = useMemo(function () {
    return [{
      label: __('Mark as Read', 'elementor-pro'),
      value: 'read',
      onApply: function onApply() {
        return updateRead({
          ids: checked
        }, true);
      },
      shouldShow: function shouldShow() {
        return !isTrashFilterOn;
      }
    }, {
      label: __('Mark as Unread', 'elementor-pro'),
      value: 'unread',
      onApply: function onApply() {
        return updateRead({
          ids: checked
        }, false);
      },
      shouldShow: function shouldShow() {
        return !isTrashFilterOn;
      }
    }, {
      label: __('Move to Trash', 'elementor-pro'),
      value: 'trash',
      onApply: function onApply() {
        return deleteItems({
          ids: checked
        });
      },
      shouldShow: function shouldShow() {
        return !isTrashFilterOn && isTrashEnabled;
      }
    }, {
      label: __('Delete Permanently', 'elementor-pro'),
      value: 'delete',
      onApply: function onApply() {
        return deleteItems({
          ids: checked,
          force: 1
        });
      },
      shouldShow: function shouldShow() {
        return isTrashFilterOn || !isTrashEnabled;
      }
    }, {
      label: __('Restore', 'elementor-pro'),
      value: 'restore',
      onApply: function onApply() {
        return restoreItems({
          ids: checked
        });
      },
      shouldShow: function shouldShow() {
        return isTrashFilterOn;
      }
    }].filter(function (action) {
      return action.shouldShow();
    });
  }, [checked, isTrashFilterOn]);
  var tableTitles = useMemo(function () {
    return {
      main_meta_id: {
        label: __('Main', 'elementor-pro'),
        className: 'column-primary'
      },
      actions_log_status: {
        label: __('Actions Status', 'elementor-pro'),
        className: 'column-actions'
      },
      form: {
        label: __('Form', 'elementor-pro'),
        className: 'column-form'
      },
      page: {
        label: __('Page', 'elementor-pro'),
        className: 'column-page'
      },
      id: {
        label: __('ID', 'elementor-pro'),
        className: 'column-id'
      },
      created_at: {
        label: __('Submission Date', 'elementor-pro'),
        className: 'column-date'
      }
    };
  }, []);

  var headerFooterRow = /*#__PURE__*/_react.default.createElement(_wpTable.default.Row, null, /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "manage-column bulk-checkbox-column"
  }, /*#__PURE__*/_react.default.createElement(_checkbox.default.Bulk, {
    checkedGroup: checked,
    onChange: setChecked,
    allValues: data.map(function (checkedItem) {
      return checkedItem.id;
    })
  })), (0, _entries.default)(tableTitles).map(function (_ref10) {
    var _fetchOptions$order_b;

    var _ref11 = (0, _slicedToArray2.default)(_ref10, 2),
        key = _ref11[0],
        tableTitle = _ref11[1];

    var cellProps = {
      component: 'th',
      className: "manage-column ".concat(tableTitle.className || '')
    };

    if ((_fetchOptions$order_b = fetchOptions.order_by) !== null && _fetchOptions$order_b !== void 0 && _fetchOptions$order_b.enum.includes(key)) {
      return /*#__PURE__*/_react.default.createElement(_wpTable.default.OrderableCell, (0, _extends2.default)({}, cellProps, {
        key: key,
        order: {
          key: key,
          current: order,
          onChange: function onChange(value) {
            return setOrder(value);
          }
        }
      }), tableTitle.label);
    }

    return /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, (0, _extends2.default)({
      key: key
    }, cellProps), tableTitle.label);
  }));

  var exportButton = /*#__PURE__*/_react.default.createElement("div", {
    className: "alignright"
  }, /*#__PURE__*/_react.default.createElement(_exportButton.default, {
    onClick: function onClick() {
      var _meta$pagination;

      exportSubmissions(_useExport3.EXPORT_MODE_SELECTED === exportOptions.mode ? {
        ids: checked
      } : (0, _objectSpread2.default)({}, flatQuery), checked.length || ((_meta$pagination = meta.pagination) === null || _meta$pagination === void 0 ? void 0 : _meta$pagination.total));
    },
    isLoading: _useDataAction7.STATUS_LOADING === exportOptions.status,
    progress: exportOptions.progress,
    mode: exportOptions.mode,
    disabled: !((_meta$pagination2 = meta.pagination) !== null && _meta$pagination2 !== void 0 && _meta$pagination2.total) && _useDataAction7.STATUS_LOADING !== exportOptions.status
  }));

  var tablePagination = meta.pagination && /*#__PURE__*/_react.default.createElement(_pagination.default, {
    total: meta.pagination.total,
    currentPage: meta.pagination.current_page,
    lastPage: meta.pagination.last_page,
    perPage: meta.pagination.per_page,
    onChange: function onChange(value) {
      return setPage(value);
    }
  });

  if (_useDataAction7.STATUS_SUCCESS !== fetchOptionsStatus) {
    return __('Loading...', 'elementor-pro');
  }

  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, ((_fetchOptions$filter = fetchOptions.filter) === null || _fetchOptions$filter === void 0 ? void 0 : _fetchOptions$filter[SEARCH_FILTER_KEY]) && /*#__PURE__*/_react.default.createElement(_searchBox.default, {
    key: SEARCH_FILTER_KEY,
    value: filter[SEARCH_FILTER_KEY],
    onChange: function onChange(value) {
      return setFilter((0, _defineProperty2.default)({}, SEARCH_FILTER_KEY, value));
    },
    isSearching: !!filter[SEARCH_FILTER_KEY] && fetchDataStatus === _useDataAction7.STATUS_LOADING
  }), ((_fetchOptions$filter2 = fetchOptions.filter) === null || _fetchOptions$filter2 === void 0 ? void 0 : _fetchOptions$filter2[STATUS_FILTER_KEY]) && /*#__PURE__*/_react.default.createElement(_linksFilter.default, {
    options: fetchOptions.filter[STATUS_FILTER_KEY].enum.map(function (value) {
      var _meta$count, _meta$count2;

      return {
        value: value,
        label: fetchOptions.filter[STATUS_FILTER_KEY].additionalProperties.options.labels[value],
        count: (_meta$count = meta.count) === null || _meta$count === void 0 ? void 0 : _meta$count[value],
        shouldShow: 'all' === value || ((_meta$count2 = meta.count) === null || _meta$count2 === void 0 ? void 0 : _meta$count2[value]) > 0
      };
    }),
    value: filter[STATUS_FILTER_KEY],
    onChange: function onChange(value) {
      return setFilter((0, _defineProperty2.default)({}, STATUS_FILTER_KEY, value));
    }
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "clear"
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "tablenav top"
  }, /*#__PURE__*/_react.default.createElement(_bulkActionSelect.BulkActionSelect, {
    actions: bulkActions,
    className: "alignleft"
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "alignleft actions"
  }, ((_fetchOptions$filter3 = fetchOptions.filter) === null || _fetchOptions$filter3 === void 0 ? void 0 : _fetchOptions$filter3[REFERER_FILTER_KEY]) && /*#__PURE__*/_react.default.createElement(_refererFilter.default, {
    value: filter[REFERER_FILTER_KEY] || '',
    onChange: function onChange(value) {
      return setFilter((0, _defineProperty2.default)({}, REFERER_FILTER_KEY, value));
    }
  }), ((_fetchOptions$filter4 = fetchOptions.filter) === null || _fetchOptions$filter4 === void 0 ? void 0 : _fetchOptions$filter4[FORM_FILTER_KEY]) && /*#__PURE__*/_react.default.createElement(_resourceFilter.default, {
    value: filter[FORM_FILTER_KEY] || '',
    onChange: function onChange(value) {
      return setFilter((0, _defineProperty2.default)({}, FORM_FILTER_KEY, value));
    },
    options: [{
      value: '',
      label: __('All Forms', 'elementor-pro')
    }],
    resourceOptions: fetchOptions.filter[FORM_FILTER_KEY].additionalProperties.options,
    name: FORM_FILTER_KEY,
    label: __('Filter by form', 'elementor-pro')
  }), /*#__PURE__*/_react.default.createElement(_dateFilter.default, {
    value: {
      after: filter[AFTER_FILTER_KEY],
      before: filter[BEFORE_FILTER_KEY]
    },
    onChange: function onChange(_ref12) {
      var after = _ref12.after,
          before = _ref12.before;
      setFilter((0, _objectSpread2.default)((0, _objectSpread2.default)({}, after !== undefined ? (0, _defineProperty2.default)({}, AFTER_FILTER_KEY, after) : {}), before !== undefined ? (0, _defineProperty2.default)({}, BEFORE_FILTER_KEY, before) : {}));
    },
    label: __('Filter by date', 'elementor-pro'),
    name: "date"
  })), exportButton, tablePagination), /*#__PURE__*/_react.default.createElement(_wpTable.default, {
    className: "e-form-submissions-list-table striped table-view-list"
  }, headerFooterRow && /*#__PURE__*/_react.default.createElement(_wpTable.default.Header, null, headerFooterRow), /*#__PURE__*/_react.default.createElement(_wpTable.default.Body, null, 0 === data.length && /*#__PURE__*/_react.default.createElement(_wpTable.default.Row, {
    className: "no-items"
  }, /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, {
    className: "colspanchange",
    colSpan: 7
  }, __('No submissions found.', 'elementor-pro'))), data.map(function (item) {
    var filteredRowActions = rowActions.filter(function (action) {
      return action.shouldShow(item);
    });
    return /*#__PURE__*/_react.default.createElement(_submissionRow.default, {
      key: item.id,
      item: item,
      tableTitles: tableTitles,
      checkBoxComponent: /*#__PURE__*/_react.default.createElement(_checkbox.default, {
        checkedGroup: checked,
        onChange: setChecked,
        value: item.id
      }),
      rowActionComponent: /*#__PURE__*/_react.default.createElement(_wpTable.default.RowActions, {
        actions: filteredRowActions,
        item: item
      })
    });
  })), headerFooterRow && /*#__PURE__*/_react.default.createElement(_wpTable.default.Footer, null, headerFooterRow)), /*#__PURE__*/_react.default.createElement("div", {
    className: "tablenav bottom"
  }, /*#__PURE__*/_react.default.createElement(_bulkActionSelect.BulkActionSelect, {
    actions: bulkActions,
    className: "alignleft"
  }), exportButton, tablePagination)));
}

function validateRestAction(query) {
  return query.id || query.ids && query.ids.length > 0;
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/pages/item.js":
/*!******************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/pages/item.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Item;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.array.iterator.js */ "../node_modules/core-js/modules/es6.array.iterator.js");

__webpack_require__(/*! core-js/modules/web.dom.iterable.js */ "../node_modules/core-js/modules/web.dom.iterable.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _objectSpread4 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _wpTable = _interopRequireDefault(__webpack_require__(/*! ../components/wp-table */ "../modules/forms/submissions/assets/js/admin/components/wp-table/index.js"));

var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");

var _noticesContext = __webpack_require__(/*! ../context/notices-context */ "../modules/forms/submissions/assets/js/admin/context/notices-context.js");

var _postBox = _interopRequireDefault(__webpack_require__(/*! ../components/post-box */ "../modules/forms/submissions/assets/js/admin/components/post-box.js"));

var _formActionsLog = _interopRequireDefault(__webpack_require__(/*! ../components/form-actions-log */ "../modules/forms/submissions/assets/js/admin/components/form-actions-log.js"));

var _noticeMessages = _interopRequireDefault(__webpack_require__(/*! ../notice-messages */ "../modules/forms/submissions/assets/js/admin/notice-messages.js"));

var _useDataAction5 = _interopRequireWildcard(__webpack_require__(/*! ../hooks/use-data-action */ "../modules/forms/submissions/assets/js/admin/hooks/use-data-action.js"));

var _date = __webpack_require__(/*! ../utils/date */ "../modules/forms/submissions/assets/js/admin/utils/date.js");

var _submissionValue = _interopRequireDefault(__webpack_require__(/*! ../components/submission-value */ "../modules/forms/submissions/assets/js/admin/components/submission-value/index.js"));

var _settingsContext = __webpack_require__(/*! ../context/settings-context */ "../modules/forms/submissions/assets/js/admin/context/settings-context.js");

var _React = _react.default,
    useEffect = _React.useEffect,
    useState = _React.useState,
    useMemo = _React.useMemo;

function Item(props) {
  var _data$form2;

  var _useState = useState({
    data: {},
    meta: {}
  }),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      data = _useState2[0].data,
      setFetchResult = _useState2[1],
      _useState3 = useState(null),
      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
      error = _useState4[0],
      setError = _useState4[1],
      _useState5 = useState(false),
      _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
      isEditMode = _useState6[0],
      setIsEditMode = _useState6[1],
      _useState7 = useState({}),
      _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
      formData = _useState8[0],
      setFormData = _useState8[1],
      navigate = (0, _router.useNavigate)(),
      _useNoticesContext = (0, _noticesContext.useNoticesContext)(),
      notifySuccess = _useNoticesContext.notifySuccess,
      notifyError = _useNoticesContext.notifyError,
      _useSettingsContext = (0, _settingsContext.useSettingsContext)(),
      isTrashEnabled = _useSettingsContext.isTrashEnabled;

  var fields = useMemo(function () {
    var _data$form;

    return (_data$form = data.form) === null || _data$form === void 0 ? void 0 : _data$form.fields.reduce(function (current, field) {
      return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, current), {}, (0, _defineProperty2.default)({}, field.id, field));
    }, {});
  }, [(_data$form2 = data.form) === null || _data$form2 === void 0 ? void 0 : _data$form2.fields]); // Fetch a single submission on first render

  useEffect(function () {
    $e.data.get('form-submissions/index', {
      id: props.id
    }, {
      refresh: true
    }).then(function (result) {
      setFetchResult(result.data);
      return result.data;
    }).then(function (resultData) {
      if (resultData.data.is_read) {
        return;
      } // Mark the submission as read if is not read already


      $e.data.update('form-submissions/index', {
        is_read: true
      }, {
        id: props.id
      });
    }).catch(function (e) {
      return setError(e);
    });
  }, []); // Move submission to trash

  var _useDataAction = (0, _useDataAction5.default)(function (_ref, _ref2) {
    var _ref3 = (0, _slicedToArray2.default)(_ref, 1),
        _ref3$ = _ref3[0],
        query = _ref3$ === void 0 ? {} : _ref3$;

    var abortController = _ref2.abortController;
    var messages = _noticeMessages.default[query.force ? 'deleted' : 'trashed'];
    return $e.data.delete('form-submissions/index', (0, _objectSpread4.default)({
      id: props.id
    }, query), {
      signal: abortController.signal
    }).then(function () {
      return notifySuccess(messages.success(1));
    }).then(function () {
      return navigate('/');
    }).catch(function () {
      return notifyError(messages.error());
    });
  }, [props.id]),
      _useDataAction2 = (0, _slicedToArray2.default)(_useDataAction, 1),
      deleteItem = _useDataAction2[0]; // Update field values.


  var _useDataAction3 = (0, _useDataAction5.default)(function (_ref4) {
    var _ref5 = (0, _slicedToArray2.default)(_ref4, 1),
        values = _ref5[0];

    return $e.data.update('form-submissions/index', {
      values: values
    }, {
      id: props.id
    }).then(function (result) {
      return setFetchResult(result.data);
    }).then(function () {
      setIsEditMode(false);
      setFormData({});
    }).then(function () {
      return notifySuccess(_noticeMessages.default.updated.success(1));
    }).catch(function () {
      return notifyError(_noticeMessages.default.updated.error());
    });
  }, [props.id]),
      _useDataAction4 = (0, _slicedToArray2.default)(_useDataAction3, 2),
      update = _useDataAction4[0],
      updateStatus = _useDataAction4[1].status;

  if (!(0, _keys.default)(data).length) {
    if (error) {
      return /*#__PURE__*/_react.default.createElement("p", null, " ", error.message || __('Not Found', 'elementor-pro'), " ");
    }

    return __('Loading...', 'elementor-pro');
  }

  return /*#__PURE__*/_react.default.createElement("div", {
    id: "poststuff"
  }, /*#__PURE__*/_react.default.createElement("form", {
    id: "post-body",
    className: "metabox-holder columns-2",
    onSubmit: function onSubmit(e) {
      e.preventDefault();

      if (!isEditMode || updateStatus === _useDataAction5.STATUS_LOADING) {
        return;
      }

      update(formData);
    }
  }, /*#__PURE__*/_react.default.createElement("div", {
    id: "post-body-content"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "e-form-submissions-main"
  }, /*#__PURE__*/_react.default.createElement(_postBox.default, {
    header: /*#__PURE__*/_react.default.createElement("div", {
      className: "e-form-submissions-main__header"
    }, /*#__PURE__*/_react.default.createElement("h2", null, __('Submission', 'elementor-pro'), " #", data.id), /*#__PURE__*/_react.default.createElement("button", {
      onClick: function onClick(e) {
        e.preventDefault();

        if (updateStatus === _useDataAction5.STATUS_LOADING) {
          return;
        }

        setIsEditMode(function (prev) {
          return !prev;
        });
      },
      className: "button button-secondary",
      type: "button",
      disabled: updateStatus === _useDataAction5.STATUS_LOADING
    }, isEditMode ? __('Cancel', 'elementor-pro') : __('Edit', 'elementor-pro')))
  }, /*#__PURE__*/_react.default.createElement(_wpTable.default, {
    className: "e-form-submissions-item-table"
  }, /*#__PURE__*/_react.default.createElement(_wpTable.default.Body, null, data.values.map(function (value) {
    var _fields$value$key;

    return /*#__PURE__*/_react.default.createElement(_wpTable.default.Row, {
      key: value.id
    }, /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, null, (fields === null || fields === void 0 ? void 0 : (_fields$value$key = fields[value.key]) === null || _fields$value$key === void 0 ? void 0 : _fields$value$key.label) || value.key), /*#__PURE__*/_react.default.createElement(_wpTable.default.Cell, null, /*#__PURE__*/_react.default.createElement(_submissionValue.default, {
      value: value.value,
      field: (fields === null || fields === void 0 ? void 0 : fields[value.key]) || {
        id: value.key,
        type: 'text'
      },
      isEditMode: isEditMode,
      onChange: function onChange(id, fieldValue) {
        return setFormData(function (prev) {
          return (0, _objectSpread4.default)((0, _objectSpread4.default)({}, prev), {}, (0, _defineProperty2.default)({}, id, fieldValue));
        });
      }
    })));
  }))))), data.form_actions_log && /*#__PURE__*/_react.default.createElement(_formActionsLog.default, {
    actions: data.form_actions_log
  })), /*#__PURE__*/_react.default.createElement("div", {
    className: "postbox-container",
    id: "postbox-container-1"
  }, /*#__PURE__*/_react.default.createElement(_postBox.default, {
    header: /*#__PURE__*/_react.default.createElement("h2", null, __('Additional Info', 'elementor-pro'), " ")
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "submitbox"
  }, /*#__PURE__*/_react.default.createElement("div", {
    id: "misc-publishing-actions"
  }, data.post && /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('Form:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("a", {
    href: data.post.edit_url,
    target: "_blank",
    rel: "noreferrer"
  }, data.form.name, " (#", data.form.element_id, ")")), /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('Page:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("a", {
    href: data.referer,
    target: "_blank",
    rel: "noreferrer"
  }, data.referer_title || /*#__PURE__*/_react.default.createElement("i", {
    className: "eicon-editor-external-link e-form-submissions-referer-icon"
  }))), /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('Create Date:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("strong", null, (0, _date.formatToLocalDateTime)(data.created_at))), /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('Update Date:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("strong", null, (0, _date.formatToLocalDateTime)(data.updated_at))), data.user_name && /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('User Name:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("strong", null, data.user_name)), /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('User IP:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("strong", null, data.user_ip)), /*#__PURE__*/_react.default.createElement("div", {
    className: "misc-pub-section"
  }, __('User Agent:', 'elementor-pro'), " ", /*#__PURE__*/_react.default.createElement("strong", null, data.user_agent))), /*#__PURE__*/_react.default.createElement("div", {
    id: "major-publishing-actions"
  }, /*#__PURE__*/_react.default.createElement("div", {
    id: "delete-action"
  }, /*#__PURE__*/_react.default.createElement("a", {
    className: "submitdelete deletion",
    href: "#",
    onClick: function onClick(e) {
      e.preventDefault();
      deleteItem({
        force: isTrashEnabled ? 0 : 1
      });
    }
  }, isTrashEnabled ? __('Move to Trash', 'elementor-pro') : __('Delete Permanently', 'elementor-pro'))), /*#__PURE__*/_react.default.createElement("div", {
    id: "publishing-action"
  }, /*#__PURE__*/_react.default.createElement("button", {
    type: "submit",
    name: "save",
    id: "publish",
    className: "button button-primary button-large",
    disabled: !isEditMode || updateStatus === _useDataAction5.STATUS_LOADING
  }, __('Update', 'elementor-pro'))), /*#__PURE__*/_react.default.createElement("div", {
    className: "clear"
  })))))), /*#__PURE__*/_react.default.createElement("br", {
    className: "clear"
  }));
}

Item.propTypes = {
  id: PropTypes.string
};

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/utils/date.js":
/*!******************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/utils/date.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.formatToLocalDate = formatToLocalDate;
exports.formatToLocalTime = formatToLocalTime;
exports.formatToLocalDateTime = formatToLocalDateTime;
var momentLocale = moment.localeData();

function formatToLocalDate(dateString) {
  return wp.date.format(momentLocale.longDateFormat('LL'), dateString);
}

function formatToLocalTime(dateString) {
  return wp.date.format(momentLocale.longDateFormat('LT'), dateString);
}

function formatToLocalDateTime(dateString) {
  return "".concat(formatToLocalDate(dateString), " ").concat(formatToLocalTime(dateString));
}

/***/ }),

/***/ "../modules/forms/submissions/assets/js/admin/utils/download-blob.js":
/*!***************************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/utils/download-blob.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = downloadBlob;

/**
 * A util function to make sure the user download the blob data.
 *
 * @param {any} blob
 * @param {string} filename
 */
function downloadBlob(blob) {
  var filename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  var link = document.createElement('a');
  link.setAttribute('href', URL.createObjectURL(blob));
  link.style.visibility = 'hidden';

  if (filename) {
    link.setAttribute('download', filename);
  }

  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/date/now.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/library/fn/date/now.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.date.now */ "../node_modules/core-js/library/modules/es6.date.now.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Date.now;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/assign.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/assign.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.assign */ "../node_modules/core-js/library/modules/es6.object.assign.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.assign;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-properties.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-properties.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-properties */ "../node_modules/core-js/library/modules/es6.object.define-properties.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperties(T, D) {
  return $Object.defineProperties(T, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/entries.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/entries.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.entries */ "../node_modules/core-js/library/modules/es7.object.entries.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.entries;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptors.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertyDescriptors;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-symbols.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/keys.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.keys */ "../node_modules/core-js/library/modules/es6.object.keys.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.keys;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/values.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/values.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.values */ "../node_modules/core-js/library/modules/es7.object.values.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.values;


/***/ }),

/***/ "../node_modules/core-js/library/fn/promise.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/library/fn/promise.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.promise */ "../node_modules/core-js/library/modules/es6.promise.js");
__webpack_require__(/*! ../modules/es7.promise.finally */ "../node_modules/core-js/library/modules/es7.promise.finally.js");
__webpack_require__(/*! ../modules/es7.promise.try */ "../node_modules/core-js/library/modules/es7.promise.try.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Promise;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/fn/weak-map.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/library/fn/weak-map.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.weak-map */ "../node_modules/core-js/library/modules/es6.weak-map.js");
__webpack_require__(/*! ../modules/es7.weak-map.of */ "../node_modules/core-js/library/modules/es7.weak-map.of.js");
__webpack_require__(/*! ../modules/es7.weak-map.from */ "../node_modules/core-js/library/modules/es7.weak-map.from.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").WeakMap;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-instance.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-instance.js ***!
  \***************************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-methods.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-methods.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/library/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-constructor.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-constructor.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-create.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-create.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/library/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection-weak.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection-weak.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var getWeak = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").getWeak;
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js");
var $has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var arrayFind = createArrayMethod(5);
var arrayFindIndex = createArrayMethod(6);
var id = 0;

// fallback for uncaught frozen keys
var uncaughtFrozenStore = function (that) {
  return that._l || (that._l = new UncaughtFrozenStore());
};
var UncaughtFrozenStore = function () {
  this.a = [];
};
var findUncaughtFrozen = function (store, key) {
  return arrayFind(store.a, function (it) {
    return it[0] === key;
  });
};
UncaughtFrozenStore.prototype = {
  get: function (key) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) return entry[1];
  },
  has: function (key) {
    return !!findUncaughtFrozen(this, key);
  },
  set: function (key, value) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) entry[1] = value;
    else this.a.push([key, value]);
  },
  'delete': function (key) {
    var index = arrayFindIndex(this.a, function (it) {
      return it[0] === key;
    });
    if (~index) this.a.splice(index, 1);
    return !!~index;
  }
};

module.exports = {
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
    var C = wrapper(function (that, iterable) {
      anInstance(that, C, NAME, '_i');
      that._t = NAME;      // collection type
      that._i = id++;      // collection id
      that._l = undefined; // leak store for uncaught frozen objects
      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
    });
    redefineAll(C.prototype, {
      // 23.3.3.2 WeakMap.prototype.delete(key)
      // 23.4.3.3 WeakSet.prototype.delete(value)
      'delete': function (key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
        return data && $has(data, this._i) && delete data[this._i];
      },
      // 23.3.3.4 WeakMap.prototype.has(key)
      // 23.4.3.4 WeakSet.prototype.has(value)
      has: function has(key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
        return data && $has(data, this._i);
      }
    });
    return C;
  },
  def: function (that, key, value) {
    var data = getWeak(anObject(key), true);
    if (data === true) uncaughtFrozenStore(that).set(key, value);
    else data[that._i] = value;
    return that;
  },
  ufstore: uncaughtFrozenStore
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
  var Base = global[NAME];
  var C = Base;
  var ADDER = IS_MAP ? 'set' : 'add';
  var proto = C && C.prototype;
  var O = {};
  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
    new C().entries().next();
  }))) {
    // create collection constructor
    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
    redefineAll(C.prototype, methods);
    meta.NEED = true;
  } else {
    C = wrapper(function (target, iterable) {
      anInstance(target, C, NAME, '_c');
      target._c = new Base();
      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
    });
    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
      var IS_ADDER = KEY == 'add' || KEY == 'set';
      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
        anInstance(this, C, KEY);
        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
        var result = this._c[KEY](a === 0 ? 0 : a, b);
        return IS_ADDER ? this : result;
      });
    });
    IS_WEAK || dP(C.prototype, 'size', {
      get: function () {
        return this._c.size;
      }
    });
  }

  setToStringTag(C, NAME);

  O[NAME] = C;
  $export($export.G + $export.W + $export.F, O);

  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);

  return C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_for-of.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_for-of.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_microtask.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_microtask.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_new-promise-capability.js":
/*!**************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_new-promise-capability.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-assign.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-assign.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) { B[k] = k; });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;
  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
    }
  } return T;
} : $assign;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-to-array.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-to-array.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var isEnum = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f;
module.exports = function (isEntries) {
  return function (it) {
    var O = toIObject(it);
    var keys = getKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || isEnum.call(O, key)) {
        result.push(isEntries ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_own-keys.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_own-keys.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all object keys, includes non-enumerable and symbols
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var Reflect = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
  var keys = gOPN.f(anObject(it));
  var getSymbols = gOPS.f;
  return getSymbols ? keys.concat(getSymbols(it)) : keys;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_perform.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_perform.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_promise-resolve.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_promise-resolve.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine-all.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine-all.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];
    else hide(target, key, src[key]);
  } return target;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-from.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-from.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
    var mapFn = arguments[1];
    var mapping, A, n, cb;
    aFunction(this);
    mapping = mapFn !== undefined;
    if (mapping) aFunction(mapFn);
    if (source == undefined) return new this();
    A = [];
    if (mapping) {
      n = 0;
      cb = ctx(mapFn, arguments[2], 2);
      forOf(source, false, function (nextItem) {
        A.push(cb(nextItem, n++));
      });
    } else {
      forOf(source, false, A.push, A);
    }
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { of: function of() {
    var length = arguments.length;
    var A = new Array(length);
    while (length--) A[length] = arguments[length];
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-species.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-species.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_species-constructor.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_species-constructor.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_task.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_task.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_user-agent.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_user-agent.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_validate-collection.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_validate-collection.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it, TYPE) {
  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.date.now.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.date.now.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 20.3.3.1 / 15.9.4.4 Date.now()
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.assign.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.assign.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-properties.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-properties.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.keys.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.keys.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.promise.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.promise.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/library/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/library/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/library/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.weak-map.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.weak-map.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var assign = __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js");
var weak = __webpack_require__(/*! ./_collection-weak */ "../node_modules/core-js/library/modules/_collection-weak.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
var WEAK_MAP = 'WeakMap';
var getWeak = meta.getWeak;
var isExtensible = Object.isExtensible;
var uncaughtFrozenStore = weak.ufstore;
var InternalMap;

var wrapper = function (get) {
  return function WeakMap() {
    return get(this, arguments.length > 0 ? arguments[0] : undefined);
  };
};

var methods = {
  // 23.3.3.3 WeakMap.prototype.get(key)
  get: function get(key) {
    if (isObject(key)) {
      var data = getWeak(key);
      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
      return data ? data[this._i] : undefined;
    }
  },
  // 23.3.3.5 WeakMap.prototype.set(key, value)
  set: function set(key, value) {
    return weak.def(validate(this, WEAK_MAP), key, value);
  }
};

// 23.3 WeakMap Objects
var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "../node_modules/core-js/library/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true);

// IE11 WeakMap frozen keys fix
if (NATIVE_WEAK_MAP && IS_IE11) {
  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
  assign(InternalMap.prototype, methods);
  meta.NEED = true;
  each(['delete', 'has', 'get', 'set'], function (key) {
    var proto = $WeakMap.prototype;
    var method = proto[key];
    redefine(proto, key, function (a, b) {
      // store frozen objects on internal weakmap shim
      if (isObject(a) && !isExtensible(a)) {
        if (!this._f) this._f = new InternalMap();
        var result = this._f[key](a, b);
        return key == 'set' ? this : result;
      // store all the rest on native weakmap
      } return method.call(this, a, b);
    });
  });
}


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.entries.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.entries.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $entries = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(true);

$export($export.S, 'Object', {
  entries: function entries(it) {
    return $entries(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js":
/*!******************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-getownpropertydescriptors
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var ownKeys = __webpack_require__(/*! ./_own-keys */ "../node_modules/core-js/library/modules/_own-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");

$export($export.S, 'Object', {
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
    var O = toIObject(object);
    var getDesc = gOPD.f;
    var keys = ownKeys(O);
    var result = {};
    var i = 0;
    var key, desc;
    while (keys.length > i) {
      desc = getDesc(O, key = keys[i++]);
      if (desc !== undefined) createProperty(result, key, desc);
    }
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.values.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.values.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $values = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(false);

$export($export.S, 'Object', {
  values: function values(it) {
    return $values(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.finally.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.finally.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.try.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.try.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/proposal-promise-try
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");

$export($export.S, 'Promise', { 'try': function (callbackfn) {
  var promiseCapability = newPromiseCapability.f(this);
  var result = perform(callbackfn);
  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
  return promiseCapability.promise;
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.from.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.from.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
__webpack_require__(/*! ./_set-collection-from */ "../node_modules/core-js/library/modules/_set-collection-from.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.of.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.of.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
__webpack_require__(/*! ./_set-collection-of */ "../node_modules/core-js/library/modules/_set-collection-of.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_advance-string-index.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_advance-string-index.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/modules/_string-at.js")(true);

 // `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? at(S, index).length : 1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_enum-bug-keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_enum-bug-keys.js ***!
  \*********************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails-is-regexp.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/_fails-is-regexp.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (KEY) {
  var re = /./;
  try {
    '/./'[KEY](re);
  } catch (e) {
    try {
      re[MATCH] = false;
      return !'/./'[KEY](re);
    } catch (f) { /* empty */ }
  } return true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fix-re-wks.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_fix-re-wks.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.exec */ "../node_modules/core-js/modules/es6.regexp.exec.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");

var SPECIES = wks('species');

var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
  // #replace needs built-in support for named groups.
  // #match works fine because it just return the exec results, even if it has
  // a "grops" property.
  var re = /./;
  re.exec = function () {
    var result = [];
    result.groups = { a: '7' };
    return result;
  };
  return ''.replace(re, '$<a>') !== '7';
});

var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
  var re = /(?:)/;
  var originalExec = re.exec;
  re.exec = function () { return originalExec.apply(this, arguments); };
  var result = 'ab'.split(re);
  return result.length === 2 && result[0] === 'a' && result[1] === 'b';
})();

module.exports = function (KEY, length, exec) {
  var SYMBOL = wks(KEY);

  var DELEGATES_TO_SYMBOL = !fails(function () {
    // String methods call symbol-named RegEp methods
    var O = {};
    O[SYMBOL] = function () { return 7; };
    return ''[KEY](O) != 7;
  });

  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
    // Symbol-named RegExp methods call .exec
    var execCalled = false;
    var re = /a/;
    re.exec = function () { execCalled = true; return null; };
    if (KEY === 'split') {
      // RegExp[@@split] doesn't call the regex's exec method, but first creates
      // a new one. We need to return the patched regex when creating the new one.
      re.constructor = {};
      re.constructor[SPECIES] = function () { return re; };
    }
    re[SYMBOL]('');
    return !execCalled;
  }) : undefined;

  if (
    !DELEGATES_TO_SYMBOL ||
    !DELEGATES_TO_EXEC ||
    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
  ) {
    var nativeRegExpMethod = /./[SYMBOL];
    var fns = exec(
      defined,
      SYMBOL,
      ''[KEY],
      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
        if (regexp.exec === regexpExec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            // The native String method already delegates to @@method (this
            // polyfilled function), leasing to infinite recursion.
            // We avoid it by directly calling the native @@method method.
            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
          }
          return { done: true, value: nativeMethod.call(str, regexp, arg2) };
        }
        return { done: false };
      }
    );
    var strfn = fns[0];
    var rxfn = fns[1];

    redefine(String.prototype, KEY, strfn);
    hide(RegExp.prototype, SYMBOL, length == 2
      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
      ? function (string, arg) { return rxfn.call(string, this, arg); }
      // 21.2.5.6 RegExp.prototype[@@match](string)
      // 21.2.5.9 RegExp.prototype[@@search](string)
      : function (string) { return rxfn.call(string, this); }
    );
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_flags.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_flags.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 21.2.5.3 get RegExp.prototype.flags
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_html.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_html.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-regexp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-regexp.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-create.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-create.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-define.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-define.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-step.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-step.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iterators.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iterators.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-create.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_object-create.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dps.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dps.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-gpo.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-gpo.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys-internal.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys-internal.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec-abstract.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec-abstract.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var builtinExec = RegExp.prototype.exec;

 // `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (typeof exec === 'function') {
    var result = exec.call(R, S);
    if (typeof result !== 'object') {
      throw new TypeError('RegExp exec method returned something other than an Object or null');
    }
    return result;
  }
  if (classof(R) !== 'RegExp') {
    throw new TypeError('RegExp#exec called on incompatible receiver');
  }
  return builtinExec.call(R, S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var regexpFlags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");

var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;

var patchedExec = nativeExec;

var LAST_INDEX = 'lastIndex';

var UPDATES_LAST_INDEX_WRONG = (function () {
  var re1 = /a/,
      re2 = /b*/g;
  nativeExec.call(re1, 'a');
  nativeExec.call(re2, 'a');
  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
})();

// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;

var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;

if (PATCH) {
  patchedExec = function exec(str) {
    var re = this;
    var lastIndex, reCopy, match, i;

    if (NPCG_INCLUDED) {
      reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
    }
    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];

    match = nativeExec.call(re, str);

    if (UPDATES_LAST_INDEX_WRONG && match) {
      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
    }
    if (NPCG_INCLUDED && match && match.length > 1) {
      // Fix browsers whose `exec` methods don't consistently return `undefined`
      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
      // eslint-disable-next-line no-loop-func
      nativeReplace.call(match[0], reCopy, function () {
        for (i = 1; i < arguments.length - 2; i++) {
          if (arguments[i] === undefined) match[i] = undefined;
        }
      });
    }

    return match;
  };
}

module.exports = patchedExec;


/***/ }),

/***/ "../node_modules/core-js/modules/_same-value.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_same-value.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.2.9 SameValue(x, y)
module.exports = Object.is || function is(x, y) {
  // eslint-disable-next-line no-self-compare
  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_set-to-string-tag.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_set-to-string-tag.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared-key.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_shared-key.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_species-constructor.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/_species-constructor.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-at.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_string-at.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-context.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_string-context.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// helper for String#{startsWith, endsWith, includes}
var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");

module.exports = function (that, searchString, NAME) {
  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
  return String(defined(that));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.filter.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.filter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $filter = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(2);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.function.name.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.function.name.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// 19.2.4.2 name
NAME in FProto || __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
  configurable: true,
  get: function () {
    try {
      return ('' + this).match(nameRE)[1];
    } catch (e) {
      return '';
    }
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.exec.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.exec.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
__webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js")({
  target: 'RegExp',
  proto: true,
  forced: regexpExec !== /./.exec
}, {
  exec: regexpExec
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.replace.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.replace.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var max = Math.max;
var min = Math.min;
var floor = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
  return [
    // `String.prototype.replace` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = defined(this);
      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
      return fn !== undefined
        ? fn.call(searchValue, O, replaceValue)
        : $replace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      var res = maybeCallNative($replace, regexp, this, replaceValue);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);
      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;
        results.push(result);
        if (!global) break;
        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }
      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];
        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];

    // https://tc39.github.io/ecma262/#sec-getsubstitution
  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
    if (namedCaptures !== undefined) {
      namedCaptures = toObject(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
    return $replace.call(replacement, symbols, function (match, ch) {
      var capture;
      switch (ch.charAt(0)) {
        case '$': return '$';
        case '&': return matched;
        case '`': return str.slice(0, position);
        case "'": return str.slice(tailPos);
        case '<':
          capture = namedCaptures[ch.slice(1, -1)];
          break;
        default: // \d\d?
          var n = +ch;
          if (n === 0) return match;
          if (n > m) {
            var f = floor(n / 10);
            if (f === 0) return match;
            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
            return match;
          }
          capture = captures[n - 1];
      }
      return capture === undefined ? '' : capture;
    });
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.search.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.search.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var sameValue = __webpack_require__(/*! ./_same-value */ "../node_modules/core-js/modules/_same-value.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");

// @@search logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('search', 1, function (defined, SEARCH, $search, maybeCallNative) {
  return [
    // `String.prototype.search` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.search
    function search(regexp) {
      var O = defined(this);
      var fn = regexp == undefined ? undefined : regexp[SEARCH];
      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
    },
    // `RegExp.prototype[@@search]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
    function (regexp) {
      var res = maybeCallNative($search, regexp, this);
      if (res.done) return res.value;
      var rx = anObject(regexp);
      var S = String(this);
      var previousLastIndex = rx.lastIndex;
      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
      var result = regExpExec(rx, S);
      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
      return result === null ? -1 : result.index;
    }
  ];
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.split.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.split.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/modules/_species-constructor.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var $min = Math.min;
var $push = [].push;
var $SPLIT = 'split';
var LENGTH = 'length';
var LAST_INDEX = 'lastIndex';
var MAX_UINT32 = 0xffffffff;

// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });

// @@split logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
  var internalSplit;
  if (
    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
    ''[$SPLIT](/.?/)[LENGTH]
  ) {
    // based on es5-shim implementation, need to rework it
    internalSplit = function (separator, limit) {
      var string = String(this);
      if (separator === undefined && limit === 0) return [];
      // If `separator` is not a regex, use native split
      if (!isRegExp(separator)) return $split.call(string, separator, limit);
      var output = [];
      var flags = (separator.ignoreCase ? 'i' : '') +
                  (separator.multiline ? 'm' : '') +
                  (separator.unicode ? 'u' : '') +
                  (separator.sticky ? 'y' : '');
      var lastLastIndex = 0;
      var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
      // Make `global` and avoid `lastIndex` issues by working with a copy
      var separatorCopy = new RegExp(separator.source, flags + 'g');
      var match, lastIndex, lastLength;
      while (match = regexpExec.call(separatorCopy, string)) {
        lastIndex = separatorCopy[LAST_INDEX];
        if (lastIndex > lastLastIndex) {
          output.push(string.slice(lastLastIndex, match.index));
          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
          lastLength = match[0][LENGTH];
          lastLastIndex = lastIndex;
          if (output[LENGTH] >= splitLimit) break;
        }
        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
      }
      if (lastLastIndex === string[LENGTH]) {
        if (lastLength || !separatorCopy.test('')) output.push('');
      } else output.push(string.slice(lastLastIndex));
      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
    };
  // Chakra, V8
  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
    internalSplit = function (separator, limit) {
      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
    };
  } else {
    internalSplit = $split;
  }

  return [
    // `String.prototype.split` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.split
    function split(separator, limit) {
      var O = defined(this);
      var splitter = separator == undefined ? undefined : separator[SPLIT];
      return splitter !== undefined
        ? splitter.call(separator, O, limit)
        : internalSplit.call(String(O), separator, limit);
    },
    // `RegExp.prototype[@@split]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
    //
    // NOTE: This cannot be properly polyfilled in engines that don't support
    // the 'y' flag.
    function (regexp, limit) {
      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var C = speciesConstructor(rx, RegExp);

      var unicodeMatching = rx.unicode;
      var flags = (rx.ignoreCase ? 'i' : '') +
                  (rx.multiline ? 'm' : '') +
                  (rx.unicode ? 'u' : '') +
                  (SUPPORTS_Y ? 'y' : 'g');

      // ^(? + rx + ) is needed, in combination with some S slicing, to
      // simulate the 'y' flag.
      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
      if (lim === 0) return [];
      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
      var p = 0;
      var q = 0;
      var A = [];
      while (q < S.length) {
        splitter.lastIndex = SUPPORTS_Y ? q : 0;
        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
        var e;
        if (
          z === null ||
          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
        ) {
          q = advanceStringIndex(S, q, unicodeMatching);
        } else {
          A.push(S.slice(p, q));
          if (A.length === lim) return A;
          for (var i = 1; i <= z.length - 1; i++) {
            A.push(z[i]);
            if (A.length === lim) return A;
          }
          q = p = e;
        }
      }
      A.push(S.slice(p));
      return A;
    }
  ];
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.includes.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.includes.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// 21.1.3.7 String.prototype.includes(searchString, position = 0)

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var context = __webpack_require__(/*! ./_string-context */ "../node_modules/core-js/modules/_string-context.js");
var INCLUDES = 'includes';

$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "../node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', {
  includes: function includes(searchString /* , position = 0 */) {
    return !!~context(this, searchString, INCLUDES)
      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es7.array.includes.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es7.array.includes.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/Array.prototype.includes
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $includes = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(true);

$export($export.P, 'Array', {
  includes: function includes(el /* , fromIndex = 0 */) {
    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
  }
});

__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")('includes');


/***/ }),

/***/ "../node_modules/core-js/modules/web.dom.iterable.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/web.dom.iterable.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/modules/es6.array.iterator.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/modules/_object-keys.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var ITERATOR = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
var ArrayValues = Iterators.Array;

var DOMIterables = {
  CSSRuleList: true, // TODO: Not spec compliant, should be false.
  CSSStyleDeclaration: false,
  CSSValueList: false,
  ClientRectList: false,
  DOMRectList: false,
  DOMStringList: false,
  DOMTokenList: true,
  DataTransferItemList: false,
  FileList: false,
  HTMLAllCollection: false,
  HTMLCollection: false,
  HTMLFormElement: false,
  HTMLSelectElement: false,
  MediaList: true, // TODO: Not spec compliant, should be false.
  MimeTypeArray: false,
  NamedNodeMap: false,
  NodeList: true,
  PaintRequestList: false,
  Plugin: false,
  PluginArray: false,
  SVGLengthList: false,
  SVGNumberList: false,
  SVGPathSegList: false,
  SVGPointList: false,
  SVGStringList: false,
  SVGTransformList: false,
  SourceBufferList: false,
  StyleSheetList: true, // TODO: Not spec compliant, should be false.
  TextTrackCueList: false,
  TextTrackList: false,
  TouchList: false
};

for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
  var NAME = collections[i];
  var explicit = DOMIterables[NAME];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  var key;
  if (proto) {
    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
    Iterators[NAME] = ArrayValues;
    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
  }
}


/***/ }),

/***/ "../node_modules/create-react-context/lib/implementation.js":
/*!******************************************************************!*\
  !*** ../node_modules/create-react-context/lib/implementation.js ***!
  \******************************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";


exports.__esModule = true;

var _react = __webpack_require__(/*! react */ "react");

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _gud = __webpack_require__(/*! gud */ "../node_modules/gud/index.js");

var _gud2 = _interopRequireDefault(_gud);

var _warning = __webpack_require__(/*! warning */ "../node_modules/warning/warning.js");

var _warning2 = _interopRequireDefault(_warning);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var MAX_SIGNED_31_BIT_INT = 1073741823;

// Inlined Object.is polyfill.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
function objectIs(x, y) {
  if (x === y) {
    return x !== 0 || 1 / x === 1 / y;
  } else {
    return x !== x && y !== y;
  }
}

function createEventEmitter(value) {
  var handlers = [];
  return {
    on: function on(handler) {
      handlers.push(handler);
    },
    off: function off(handler) {
      handlers = handlers.filter(function (h) {
        return h !== handler;
      });
    },
    get: function get() {
      return value;
    },
    set: function set(newValue, changedBits) {
      value = newValue;
      handlers.forEach(function (handler) {
        return handler(value, changedBits);
      });
    }
  };
}

function onlyChild(children) {
  return Array.isArray(children) ? children[0] : children;
}

function createReactContext(defaultValue, calculateChangedBits) {
  var _Provider$childContex, _Consumer$contextType;

  var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';

  var Provider = function (_Component) {
    _inherits(Provider, _Component);

    function Provider() {
      var _temp, _this, _ret;

      _classCallCheck(this, Provider);

      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);
    }

    Provider.prototype.getChildContext = function getChildContext() {
      var _ref;

      return _ref = {}, _ref[contextProp] = this.emitter, _ref;
    };

    Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      if (this.props.value !== nextProps.value) {
        var oldValue = this.props.value;
        var newValue = nextProps.value;
        var changedBits = void 0;

        if (objectIs(oldValue, newValue)) {
          changedBits = 0; // No change
        } else {
          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;
          if (true) {
            (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);
          }

          changedBits |= 0;

          if (changedBits !== 0) {
            this.emitter.set(nextProps.value, changedBits);
          }
        }
      }
    };

    Provider.prototype.render = function render() {
      return this.props.children;
    };

    return Provider;
  }(_react.Component);

  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);

  var Consumer = function (_Component2) {
    _inherits(Consumer, _Component2);

    function Consumer() {
      var _temp2, _this2, _ret2;

      _classCallCheck(this, Consumer);

      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        args[_key2] = arguments[_key2];
      }

      return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {
        value: _this2.getValue()
      }, _this2.onUpdate = function (newValue, changedBits) {
        var observedBits = _this2.observedBits | 0;
        if ((observedBits & changedBits) !== 0) {
          _this2.setState({ value: _this2.getValue() });
        }
      }, _temp2), _possibleConstructorReturn(_this2, _ret2);
    }

    Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      var observedBits = nextProps.observedBits;

      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default
      : observedBits;
    };

    Consumer.prototype.componentDidMount = function componentDidMount() {
      if (this.context[contextProp]) {
        this.context[contextProp].on(this.onUpdate);
      }
      var observedBits = this.props.observedBits;

      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default
      : observedBits;
    };

    Consumer.prototype.componentWillUnmount = function componentWillUnmount() {
      if (this.context[contextProp]) {
        this.context[contextProp].off(this.onUpdate);
      }
    };

    Consumer.prototype.getValue = function getValue() {
      if (this.context[contextProp]) {
        return this.context[contextProp].get();
      } else {
        return defaultValue;
      }
    };

    Consumer.prototype.render = function render() {
      return onlyChild(this.props.children)(this.state.value);
    };

    return Consumer;
  }(_react.Component);

  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);


  return {
    Provider: Provider,
    Consumer: Consumer
  };
}

exports.default = createReactContext;
module.exports = exports['default'];

/***/ }),

/***/ "../node_modules/create-react-context/lib/index.js":
/*!*********************************************************!*\
  !*** ../node_modules/create-react-context/lib/index.js ***!
  \*********************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";


exports.__esModule = true;

var _react = __webpack_require__(/*! react */ "react");

var _react2 = _interopRequireDefault(_react);

var _implementation = __webpack_require__(/*! ./implementation */ "../node_modules/create-react-context/lib/implementation.js");

var _implementation2 = _interopRequireDefault(_implementation);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = _react2.default.createContext || _implementation2.default;
module.exports = exports['default'];

/***/ }),

/***/ "../node_modules/gud/index.js":
/*!************************************!*\
  !*** ../node_modules/gud/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// @flow


var key = '__global_unique_id__';

module.exports = function() {
  return __webpack_require__.g[key] = (__webpack_require__.g[key] || 0) + 1;
};


/***/ }),

/***/ "../node_modules/invariant/browser.js":
/*!********************************************!*\
  !*** ../node_modules/invariant/browser.js ***!
  \********************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if (true) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;


/***/ }),

/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
  !*** ../node_modules/object-assign/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
  !*** ../node_modules/prop-types/checkPropTypes.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
  var loggedTypeFailures = {};
  var has = Function.call.bind(Object.prototype.hasOwnProperty);

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
  !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");

var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");

var has = Function.call.bind(Object.prototype.hasOwnProperty);
var printWarning = function() {};

if (true) {
  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

function emptyFunctionThatReturnsNull() {
  return null;
}

module.exports = function(isValidElement, throwOnDirectAccess) {
  /* global Symbol */
  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

  /**
   * Returns the iterator method function contained on the iterable object.
   *
   * Be sure to invoke the function with the iterable as context:
   *
   *     var iteratorFn = getIteratorFn(myIterable);
   *     if (iteratorFn) {
   *       var iterator = iteratorFn.call(myIterable);
   *       ...
   *     }
   *
   * @param {?object} maybeIterable
   * @return {?function}
   */
  function getIteratorFn(maybeIterable) {
    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  /**
   * Collection of methods that allow declaration and validation of props that are
   * supplied to React components. Example usage:
   *
   *   var Props = require('ReactPropTypes');
   *   var MyArticle = React.createClass({
   *     propTypes: {
   *       // An optional string prop named "description".
   *       description: Props.string,
   *
   *       // A required enum prop named "category".
   *       category: Props.oneOf(['News','Photos']).isRequired,
   *
   *       // A prop named "dialog" that requires an instance of Dialog.
   *       dialog: Props.instanceOf(Dialog).isRequired
   *     },
   *     render: function() { ... }
   *   });
   *
   * A more formal specification of how these methods are used:
   *
   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
   *   decl := ReactPropTypes.{type}(.isRequired)?
   *
   * Each and every declaration produces a function with the same signature. This
   * allows the creation of custom validation functions. For example:
   *
   *  var MyLink = React.createClass({
   *    propTypes: {
   *      // An optional string or URI prop named "href".
   *      href: function(props, propName, componentName) {
   *        var propValue = props[propName];
   *        if (propValue != null && typeof propValue !== 'string' &&
   *            !(propValue instanceof URI)) {
   *          return new Error(
   *            'Expected a string or an URI for ' + propName + ' in ' +
   *            componentName
   *          );
   *        }
   *      }
   *    },
   *    render: function() {...}
   *  });
   *
   * @internal
   */

  var ANONYMOUS = '<<anonymous>>';

  // Important!
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  var ReactPropTypes = {
    array: createPrimitiveTypeChecker('array'),
    bool: createPrimitiveTypeChecker('boolean'),
    func: createPrimitiveTypeChecker('function'),
    number: createPrimitiveTypeChecker('number'),
    object: createPrimitiveTypeChecker('object'),
    string: createPrimitiveTypeChecker('string'),
    symbol: createPrimitiveTypeChecker('symbol'),

    any: createAnyTypeChecker(),
    arrayOf: createArrayOfTypeChecker,
    element: createElementTypeChecker(),
    elementType: createElementTypeTypeChecker(),
    instanceOf: createInstanceTypeChecker,
    node: createNodeChecker(),
    objectOf: createObjectOfTypeChecker,
    oneOf: createEnumTypeChecker,
    oneOfType: createUnionTypeChecker,
    shape: createShapeTypeChecker,
    exact: createStrictShapeTypeChecker,
  };

  /**
   * inlined Object.is polyfill to avoid requiring consumers ship their own
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
   */
  /*eslint-disable no-self-compare*/
  function is(x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  }
  /*eslint-enable no-self-compare*/

  /**
   * We use an Error-like object for backward compatibility as people may call
   * PropTypes directly and inspect their output. However, we don't use real
   * Errors anymore. We don't inspect their stack anyway, and creating them
   * is prohibitively expensive if they are created too often, such as what
   * happens in oneOfType() for any type before the one that matched.
   */
  function PropTypeError(message) {
    this.message = message;
    this.stack = '';
  }
  // Make `instanceof Error` still work for returned errors.
  PropTypeError.prototype = Error.prototype;

  function createChainableTypeChecker(validate) {
    if (true) {
      var manualPropTypeCallCache = {};
      var manualPropTypeWarningCount = 0;
    }
    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
      componentName = componentName || ANONYMOUS;
      propFullName = propFullName || propName;

      if (secret !== ReactPropTypesSecret) {
        if (throwOnDirectAccess) {
          // New behavior only for users of `prop-types` package
          var err = new Error(
            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
            'Use `PropTypes.checkPropTypes()` to call them. ' +
            'Read more at http://fb.me/use-check-prop-types'
          );
          err.name = 'Invariant Violation';
          throw err;
        } else if ( true && typeof console !== 'undefined') {
          // Old behavior for people using React.PropTypes
          var cacheKey = componentName + ':' + propName;
          if (
            !manualPropTypeCallCache[cacheKey] &&
            // Avoid spamming the console because they are often not actionable except for lib authors
            manualPropTypeWarningCount < 3
          ) {
            printWarning(
              'You are manually calling a React.PropTypes validation ' +
              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
              'and will throw in the standalone `prop-types` package. ' +
              'You may be seeing this warning due to a third-party PropTypes ' +
              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
            );
            manualPropTypeCallCache[cacheKey] = true;
            manualPropTypeWarningCount++;
          }
        }
      }
      if (props[propName] == null) {
        if (isRequired) {
          if (props[propName] === null) {
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
          }
          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
        }
        return null;
      } else {
        return validate(props, propName, componentName, location, propFullName);
      }
    }

    var chainedCheckType = checkType.bind(null, false);
    chainedCheckType.isRequired = checkType.bind(null, true);

    return chainedCheckType;
  }

  function createPrimitiveTypeChecker(expectedType) {
    function validate(props, propName, componentName, location, propFullName, secret) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== expectedType) {
        // `propValue` being instance of, say, date/regexp, pass the 'object'
        // check, but we can offer a more precise error message here rather than
        // 'of type `object`'.
        var preciseType = getPreciseType(propValue);

        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createAnyTypeChecker() {
    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
  }

  function createArrayOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
      }
      var propValue = props[propName];
      if (!Array.isArray(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
      }
      for (var i = 0; i < propValue.length; i++) {
        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
        if (error instanceof Error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!isValidElement(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!ReactIs.isValidElementType(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createInstanceTypeChecker(expectedClass) {
    function validate(props, propName, componentName, location, propFullName) {
      if (!(props[propName] instanceof expectedClass)) {
        var expectedClassName = expectedClass.name || ANONYMOUS;
        var actualClassName = getClassName(props[propName]);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createEnumTypeChecker(expectedValues) {
    if (!Array.isArray(expectedValues)) {
      if (true) {
        if (arguments.length > 1) {
          printWarning(
            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
          );
        } else {
          printWarning('Invalid argument supplied to oneOf, expected an array.');
        }
      }
      return emptyFunctionThatReturnsNull;
    }

    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      for (var i = 0; i < expectedValues.length; i++) {
        if (is(propValue, expectedValues[i])) {
          return null;
        }
      }

      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
        var type = getPreciseType(value);
        if (type === 'symbol') {
          return String(value);
        }
        return value;
      });
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createObjectOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
      }
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
      }
      for (var key in propValue) {
        if (has(propValue, key)) {
          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createUnionTypeChecker(arrayOfTypeCheckers) {
    if (!Array.isArray(arrayOfTypeCheckers)) {
       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
      return emptyFunctionThatReturnsNull;
    }

    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (typeof checker !== 'function') {
        printWarning(
          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
        );
        return emptyFunctionThatReturnsNull;
      }
    }

    function validate(props, propName, componentName, location, propFullName) {
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
          return null;
        }
      }

      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createNodeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      if (!isNode(props[propName])) {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      for (var key in shapeTypes) {
        var checker = shapeTypes[key];
        if (!checker) {
          continue;
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createStrictShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      // We need to check all keys in case some are required but missing from
      // props.
      var allKeys = assign({}, props[propName], shapeTypes);
      for (var key in allKeys) {
        var checker = shapeTypes[key];
        if (!checker) {
          return new PropTypeError(
            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
          );
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }

    return createChainableTypeChecker(validate);
  }

  function isNode(propValue) {
    switch (typeof propValue) {
      case 'number':
      case 'string':
      case 'undefined':
        return true;
      case 'boolean':
        return !propValue;
      case 'object':
        if (Array.isArray(propValue)) {
          return propValue.every(isNode);
        }
        if (propValue === null || isValidElement(propValue)) {
          return true;
        }

        var iteratorFn = getIteratorFn(propValue);
        if (iteratorFn) {
          var iterator = iteratorFn.call(propValue);
          var step;
          if (iteratorFn !== propValue.entries) {
            while (!(step = iterator.next()).done) {
              if (!isNode(step.value)) {
                return false;
              }
            }
          } else {
            // Iterator will provide entry [k,v] tuples rather than values.
            while (!(step = iterator.next()).done) {
              var entry = step.value;
              if (entry) {
                if (!isNode(entry[1])) {
                  return false;
                }
              }
            }
          }
        } else {
          return false;
        }

        return true;
      default:
        return false;
    }
  }

  function isSymbol(propType, propValue) {
    // Native Symbol.
    if (propType === 'symbol') {
      return true;
    }

    // falsy value can't be a Symbol
    if (!propValue) {
      return false;
    }

    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
    if (propValue['@@toStringTag'] === 'Symbol') {
      return true;
    }

    // Fallback for non-spec compliant Symbols which are polyfilled.
    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
      return true;
    }

    return false;
  }

  // Equivalent of `typeof` but with special handling for array and regexp.
  function getPropType(propValue) {
    var propType = typeof propValue;
    if (Array.isArray(propValue)) {
      return 'array';
    }
    if (propValue instanceof RegExp) {
      // Old webkits (at least until Android 4.0) return 'function' rather than
      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
      // passes PropTypes.object.
      return 'object';
    }
    if (isSymbol(propType, propValue)) {
      return 'symbol';
    }
    return propType;
  }

  // This handles more types than `getPropType`. Only used for error messages.
  // See `createPrimitiveTypeChecker`.
  function getPreciseType(propValue) {
    if (typeof propValue === 'undefined' || propValue === null) {
      return '' + propValue;
    }
    var propType = getPropType(propValue);
    if (propType === 'object') {
      if (propValue instanceof Date) {
        return 'date';
      } else if (propValue instanceof RegExp) {
        return 'regexp';
      }
    }
    return propType;
  }

  // Returns a string that is postfixed to a warning about an invalid type.
  // For example, "undefined" or "of type array"
  function getPostfixForTypeWarning(value) {
    var type = getPreciseType(value);
    switch (type) {
      case 'array':
      case 'object':
        return 'an ' + type;
      case 'boolean':
      case 'date':
      case 'regexp':
        return 'a ' + type;
      default:
        return type;
    }
  }

  // Returns class name of the object, if any.
  function getClassName(propValue) {
    if (!propValue.constructor || !propValue.constructor.name) {
      return ANONYMOUS;
    }
    return propValue.constructor.name;
  }

  ReactPropTypes.checkPropTypes = checkPropTypes;
  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ "../node_modules/prop-types/index.js":
/*!*******************************************!*\
  !*** ../node_modules/prop-types/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (true) {
  var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");

  // By explicitly using `prop-types` you are opting into new development behavior.
  // http://fb.me/prop-types-in-prod
  var throwOnDirectAccess = true;
  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
} else {}


/***/ }),

/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!**************************************************************!*\
  !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "../node_modules/reach-router-hash-history/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/reach-router-hash-history/index.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "createHashSource": () => (/* binding */ createHashSource)
/* harmony export */ });
// take some code from
// https://github.com/ReactTraining/history/blob/master/modules/createHashHistory.js

function getHashPath() {
  // We can't use window.location.hash here because it's not
  // consistent across browsers - Firefox will pre-decode it!
  const href = window.location.href;
  const hashIndex = href.indexOf('#');
  return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
}

function pushHashPath(path) {
  window.location.hash = '#' + path;
}

function replaceHashPath(path) {
  const hashIndex = window.location.href.indexOf('#');
  window.location.replace(
    window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path
  );
}

let createHashSource = (initialPathname = '/') => {
  let index = 0;
  // let stack = [{ pathname: initialPathname, search: '' }];
  // let states = [];

  return {
    get location() {
      return { pathname: getHashPath(), search: '' };
      // return stack[index];
    },
    addEventListener(name, fn) {
      if (name === 'popstate') {
        window.addEventListener('hashchange', fn);
      }
    },
    removeEventListener(name, fn) {
      if (name === 'popstate') {
        window.addEventListener('hashchange', fn);
      }
    },
    history: {
      get entries() {
        return [{ pathname: getHashPath(), search: '' }];
        // return stack;
      },
      get index() {
        return index;
      },
      get state() {
        return undefined;
        // return states[index];
      },
      pushState(state, _, uri) {
        pushHashPath(uri);
        // let [pathname, search = ''] = uri.split('?');
        // index++;
        // stack.push({ pathname, search });
        // states.push(state);
      },
      replaceState(state, _, uri) {
        replaceHashPath(uri);
        // let [pathname, search = ''] = uri.split('?');
        // stack[index] = { pathname, search };
        // states[index] = state;
      }
    }
  };
};




/***/ }),

/***/ "../node_modules/react-is/cjs/react-is.development.js":
/*!************************************************************!*\
  !*** ../node_modules/react-is/cjs/react-is.development.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}


/***/ }),

/***/ "../node_modules/react-is/index.js":
/*!*****************************************!*\
  !*** ../node_modules/react-is/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
}


/***/ }),

/***/ "../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "polyfill": () => (/* binding */ polyfill)
/* harmony export */ });
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

function componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  }
  // Binding "this" is important for shallow renderer support.
  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
      prevProps,
      prevState
    );
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
}

// React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.
componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill(Component) {
  var prototype = Component.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (
    typeof Component.getDerivedStateFromProps !== 'function' &&
    typeof prototype.getSnapshotBeforeUpdate !== 'function'
  ) {
    return Component;
  }

  // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.
  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;
  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }
  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }
  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }
  if (
    foundWillMountName !== null ||
    foundWillReceivePropsName !== null ||
    foundWillUpdateName !== null
  ) {
    var componentName = Component.displayName || Component.name;
    var newApiName =
      typeof Component.getDerivedStateFromProps === 'function'
        ? 'getDerivedStateFromProps()'
        : 'getSnapshotBeforeUpdate()';

    throw Error(
      'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
        componentName +
        ' uses ' +
        newApiName +
        ' but also contains the following legacy lifecycles:' +
        (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') +
        (foundWillReceivePropsName !== null
          ? '\n  ' + foundWillReceivePropsName
          : '') +
        (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') +
        '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
        'https://fb.me/react-async-component-lifecycle-hooks'
    );
  }

  // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.
  if (typeof Component.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  }

  // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.
  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error(
        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
      );
    }

    prototype.componentWillUpdate = componentWillUpdate;

    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(
      prevProps,
      prevState,
      maybeSnapshot
    ) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag
        ? this.__reactInternalSnapshot
        : maybeSnapshot;

      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component;
}




/***/ }),

/***/ "../node_modules/warning/warning.js":
/*!******************************************!*\
  !*** ../node_modules/warning/warning.js ***!
  \******************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var __DEV__ = "development" !== 'production';

var warning = function() {};

if (__DEV__) {
  var printWarning = function printWarning(format, args) {
    var len = arguments.length;
    args = new Array(len > 1 ? len - 1 : 0);
    for (var key = 1; key < len; key++) {
      args[key - 1] = arguments[key];
    }
    var argIndex = 0;
    var message = 'Warning: ' +
      format.replace(/%s/g, function() {
        return args[argIndex++];
      });
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  }

  warning = function(condition, format, args) {
    var len = arguments.length;
    args = new Array(len > 2 ? len - 2 : 0);
    for (var key = 2; key < len; key++) {
      args[key - 2] = arguments[key];
    }
    if (format === undefined) {
      throw new Error(
          '`warning(condition, format, ...args)` requires a warning ' +
          'message argument'
      );
    }
    if (!condition) {
      printWarning.apply(null, [format].concat(args));
    }
  };
}

module.exports = warning;


/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/***/ ((module) => {

"use strict";
module.exports = React;

/***/ }),

/***/ "@wordpress/i18n":
/*!**************************!*\
  !*** external "wp.i18n" ***!
  \**************************/
/***/ ((module) => {

"use strict";
module.exports = wp.i18n;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = __webpack_modules__;
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/create fake namespace object */
/******/ 	(() => {
/******/ 		var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
/******/ 		var leafPrototypes;
/******/ 		// create a fake namespace object
/******/ 		// mode & 1: value is a module id, require it
/******/ 		// mode & 2: merge all properties of value into the ns
/******/ 		// mode & 4: return value when already ns object
/******/ 		// mode & 16: return value when it's Promise-like
/******/ 		// mode & 8|1: behave like require
/******/ 		__webpack_require__.t = function(value, mode) {
/******/ 			if(mode & 1) value = this(value);
/******/ 			if(mode & 8) return value;
/******/ 			if(typeof value === 'object' && value) {
/******/ 				if((mode & 4) && value.__esModule) return value;
/******/ 				if((mode & 16) && typeof value.then === 'function') return value;
/******/ 			}
/******/ 			var ns = Object.create(null);
/******/ 			__webpack_require__.r(ns);
/******/ 			var def = {};
/******/ 			leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
/******/ 			for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
/******/ 				Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
/******/ 			}
/******/ 			def['default'] = () => (value);
/******/ 			__webpack_require__.d(ns, def);
/******/ 			return ns;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/ensure chunk */
/******/ 	(() => {
/******/ 		__webpack_require__.f = {};
/******/ 		// This file contains only the entry chunk.
/******/ 		// The chunk loading function for additional chunks
/******/ 		__webpack_require__.e = (chunkId) => {
/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
/******/ 				__webpack_require__.f[key](chunkId, promises);
/******/ 				return promises;
/******/ 			}, []));
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/get javascript chunk filename */
/******/ 	(() => {
/******/ 		// This function allow to reference async chunks
/******/ 		__webpack_require__.u = (chunkId) => {
/******/ 			// return url for filenames not based on template
/******/ 			if (chunkId === "jszip.vendor") return "" + chunkId + ".8911033537a0c9d6e5f8.bundle.js";
/******/ 			// return url for filenames based on template
/******/ 			return undefined;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/load script */
/******/ 	(() => {
/******/ 		var inProgress = {};
/******/ 		var dataWebpackPrefix = "elementor-pro:";
/******/ 		// loadScript function to load a script via script tag
/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
/******/ 			var script, needAttach;
/******/ 			if(key !== undefined) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				for(var i = 0; i < scripts.length; i++) {
/******/ 					var s = scripts[i];
/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
/******/ 				}
/******/ 			}
/******/ 			if(!script) {
/******/ 				needAttach = true;
/******/ 				script = document.createElement('script');
/******/ 		
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
/******/ 				script.src = url;
/******/ 			}
/******/ 			inProgress[url] = [done];
/******/ 			var onScriptComplete = (prev, event) => {
/******/ 				// avoid mem leaks in IE.
/******/ 				script.onerror = script.onload = null;
/******/ 				clearTimeout(timeout);
/******/ 				var doneFns = inProgress[url];
/******/ 				delete inProgress[url];
/******/ 				script.parentNode && script.parentNode.removeChild(script);
/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
/******/ 				if(prev) return prev(event);
/******/ 			}
/******/ 			;
/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
/******/ 			needAttach && document.head.appendChild(script);
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/publicPath */
/******/ 	(() => {
/******/ 		var scriptUrl;
/******/ 		if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
/******/ 		var document = __webpack_require__.g.document;
/******/ 		if (!scriptUrl && document) {
/******/ 			if (document.currentScript)
/******/ 				scriptUrl = document.currentScript.src
/******/ 			if (!scriptUrl) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				if(scripts.length) scriptUrl = scripts[scripts.length - 1].src
/******/ 			}
/******/ 		}
/******/ 		// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
/******/ 		// or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
/******/ 		if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
/******/ 		scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
/******/ 		__webpack_require__.p = scriptUrl;
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/jsonp chunk loading */
/******/ 	(() => {
/******/ 		// no baseURI
/******/ 		
/******/ 		// object to store loaded and loading chunks
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ 		var installedChunks = {
/******/ 			"form-submission-admin": 0
/******/ 		};
/******/ 		
/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
/******/ 				// JSONP chunk loading for javascript
/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
/******/ 		
/******/ 					// a Promise means "currently loading".
/******/ 					if(installedChunkData) {
/******/ 						promises.push(installedChunkData[2]);
/******/ 					} else {
/******/ 						if(true) { // all chunks have JS
/******/ 							// setup Promise in chunk cache
/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
/******/ 							promises.push(installedChunkData[2] = promise);
/******/ 		
/******/ 							// start chunk loading
/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
/******/ 							// create error before stack unwound to get useful stacktrace later
/******/ 							var error = new Error();
/******/ 							var loadingEnded = (event) => {
/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
/******/ 									installedChunkData = installedChunks[chunkId];
/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
/******/ 									if(installedChunkData) {
/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 										var realSrc = event && event.target && event.target.src;
/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 										error.name = 'ChunkLoadError';
/******/ 										error.type = errorType;
/******/ 										error.request = realSrc;
/******/ 										installedChunkData[1](error);
/******/ 									}
/******/ 								}
/******/ 							};
/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
/******/ 						} else installedChunks[chunkId] = 0;
/******/ 					}
/******/ 				}
/******/ 		};
/******/ 		
/******/ 		// no prefetching
/******/ 		
/******/ 		// no preloaded
/******/ 		
/******/ 		// no HMR
/******/ 		
/******/ 		// no HMR manifest
/******/ 		
/******/ 		// no on chunks loaded
/******/ 		
/******/ 		// install a JSONP callback for chunk loading
/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ 			var [chunkIds, moreModules, runtime] = data;
/******/ 			// add "moreModules" to the modules object,
/******/ 			// then flag all "chunkIds" as loaded and fire callback
/******/ 			var moduleId, chunkId, i = 0;
/******/ 			for(moduleId in moreModules) {
/******/ 				if(__webpack_require__.o(moreModules, moduleId)) {
/******/ 					__webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ 				}
/******/ 			}
/******/ 			if(runtime) var result = runtime(__webpack_require__);
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ 			for(;i < chunkIds.length; i++) {
/******/ 				chunkId = chunkIds[i];
/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ 					installedChunks[chunkId][0]();
/******/ 				}
/******/ 				installedChunks[chunkIds[i]] = 0;
/******/ 			}
/******/ 		
/******/ 		}
/******/ 		
/******/ 		var chunkLoadingGlobal = self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || [];
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!*************************************************************!*\
  !*** ../modules/forms/submissions/assets/js/admin/admin.js ***!
  \*************************************************************/


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./data/component */ "../modules/forms/submissions/assets/js/admin/data/component.js"));

var _formsComponent = _interopRequireDefault(__webpack_require__(/*! ./data/forms-component */ "../modules/forms/submissions/assets/js/admin/data/forms-component.js"));

var _app = _interopRequireDefault(__webpack_require__(/*! ./app */ "../modules/forms/submissions/assets/js/admin/app.js"));

$e.components.register(new _component.default());
$e.components.register(new _formsComponent.default());
var AppWrapper = elementorCommon.config.isDebug ? _react.default.StrictMode : _react.default.Fragment;
ReactDOM.render( /*#__PURE__*/_react.default.createElement(AppWrapper, null, /*#__PURE__*/_react.default.createElement(_app.default, null)), document.getElementById('e-form-submissions'));
})();

/******/ })()
;
//# sourceMappingURL=form-submission-admin.js.mapPK!EW�../assets/js/slides.6d3f738223ac9b3c9b7a.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["slides"],{

/***/ "../modules/slides/assets/js/frontend/handlers/slides.js":
/*!***************************************************************!*\
  !*** ../modules/slides/assets/js/frontend/handlers/slides.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class SlidesHandler extends elementorModules.frontend.handlers.SwiperBase {
  getDefaultSettings() {
    return {
      selectors: {
        slider: '.elementor-slides-wrapper',
        slide: '.swiper-slide',
        slideInnerContents: '.swiper-slide-contents',
        activeSlide: '.swiper-slide-active',
        activeDuplicate: '.swiper-slide-duplicate-active'
      },
      classes: {
        animated: 'animated',
        kenBurnsActive: 'elementor-ken-burns--active',
        slideBackground: 'swiper-slide-bg'
      },
      attributes: {
        dataSliderOptions: 'slider_options',
        dataAnimation: 'animation'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {
      $swiperContainer: this.$element.find(selectors.slider)
    };
    elements.$slides = elements.$swiperContainer.find(selectors.slide);
    return elements;
  }

  getSwiperOptions() {
    const elementSettings = this.getElementSettings(),
          swiperOptions = {
      autoplay: this.getAutoplayConfig(),
      grabCursor: true,
      initialSlide: this.getInitialSlide(),
      slidesPerView: 1,
      slidesPerGroup: 1,
      loop: 'yes' === elementSettings.infinite,
      speed: elementSettings.transition_speed,
      effect: elementSettings.transition,
      observeParents: true,
      observer: true,
      handleElementorBreakpoints: true,
      on: {
        slideChange: () => {
          this.handleKenBurns();
        }
      }
    };
    const showArrows = 'arrows' === elementSettings.navigation || 'both' === elementSettings.navigation,
          pagination = 'dots' === elementSettings.navigation || 'both' === elementSettings.navigation;

    if (showArrows) {
      swiperOptions.navigation = {
        prevEl: '.elementor-swiper-button-prev',
        nextEl: '.elementor-swiper-button-next'
      };
    }

    if (pagination) {
      swiperOptions.pagination = {
        el: '.swiper-pagination',
        type: 'bullets',
        clickable: true
      };
    }

    if (true === swiperOptions.loop) {
      swiperOptions.loopedSlides = this.getSlidesCount();
    }

    if ('fade' === swiperOptions.effect) {
      swiperOptions.fadeEffect = {
        crossFade: true
      };
    }

    return swiperOptions;
  }

  getAutoplayConfig() {
    const elementSettings = this.getElementSettings();

    if ('yes' !== elementSettings.autoplay) {
      return false;
    }

    return {
      stopOnLastSlide: true,
      // Has no effect in infinite mode by default.
      delay: elementSettings.autoplay_speed,
      disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
    };
  }

  initSingleSlideAnimations() {
    const settings = this.getSettings(),
          animation = this.elements.$swiperContainer.data(settings.attributes.dataAnimation);
    this.elements.$swiperContainer.find('.' + settings.classes.slideBackground).addClass(settings.classes.kenBurnsActive); // If there is an animation, get the container of the slide's inner contents and add the animation classes to it

    if (animation) {
      this.elements.$swiperContainer.find(settings.selectors.slideInnerContents).addClass(settings.classes.animated + ' ' + animation);
    }
  }

  async initSlider() {
    const $slider = this.elements.$swiperContainer,
          settings = this.getSettings(),
          elementSettings = this.getElementSettings(),
          animation = $slider.data(settings.attributes.dataAnimation);

    if (!$slider.length) {
      return;
    }

    if (1 >= this.getSlidesCount()) {
      return;
    }

    const Swiper = elementorFrontend.utils.swiper;
    this.swiper = await new Swiper($slider, this.getSwiperOptions()); // Expose the swiper instance in the frontend

    $slider.data('swiper', this.swiper); // The Ken Burns effect will only apply on the specific slides that toggled the effect ON,
    // since it depends on an additional class besides 'elementor-ken-burns--active'

    this.handleKenBurns();

    if (elementSettings.pause_on_hover) {
      this.togglePauseOnHover(true);
    }

    if (!animation) {
      return;
    }

    this.swiper.on('slideChangeTransitionStart', function () {
      const $sliderContent = $slider.find(settings.selectors.slideInnerContents);
      $sliderContent.removeClass(settings.classes.animated + ' ' + animation).hide();
    });
    this.swiper.on('slideChangeTransitionEnd', function () {
      const $currentSlide = $slider.find(settings.selectors.slideInnerContents);
      $currentSlide.show().addClass(settings.classes.animated + ' ' + animation);
    });
  }

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);

    if (2 > this.getSlidesCount()) {
      this.initSingleSlideAnimations();
      return;
    }

    this.initSlider();
  }

  getChangeableProperties() {
    return {
      pause_on_hover: 'pauseOnHover',
      pause_on_interaction: 'disableOnInteraction',
      autoplay_speed: 'delay',
      transition_speed: 'speed'
    };
  }

  updateSwiperOption(propertyName) {
    if (0 === propertyName.indexOf('width')) {
      this.swiper.update();
      return;
    }

    const elementSettings = this.getElementSettings(),
          newSettingValue = elementSettings[propertyName],
          changeableProperties = this.getChangeableProperties();
    let propertyToUpdate = changeableProperties[propertyName],
        valueToUpdate = newSettingValue; // Handle special cases where the value to update is not the value that the Swiper library accepts

    switch (propertyName) {
      case 'autoplay_speed':
        propertyToUpdate = 'autoplay';
        valueToUpdate = {
          delay: newSettingValue,
          disableOnInteraction: 'yes' === elementSettings.pause_on_interaction
        };
        break;

      case 'pause_on_hover':
        this.togglePauseOnHover('yes' === newSettingValue);
        break;

      case 'pause_on_interaction':
        valueToUpdate = 'yes' === newSettingValue;
        break;
    } // 'pause_on_hover' is implemented by the handler with event listeners, not the Swiper library


    if ('pause_on_hover' !== propertyName) {
      this.swiper.params[propertyToUpdate] = valueToUpdate;
    }

    this.swiper.update();
  }

  onElementChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    const changeableProperties = this.getChangeableProperties();

    if (changeableProperties.hasOwnProperty(propertyName)) {
      this.updateSwiperOption(propertyName);
    }
  }

  onEditSettingsChange(propertyName) {
    if (1 >= this.getSlidesCount()) {
      return;
    }

    if ('activeItemIndex' === propertyName) {
      this.swiper.slideToLoop(this.getEditSettings('activeItemIndex') - 1);
    }
  }

}

exports.default = SlidesHandler;

/***/ })

}]);
//# sourceMappingURL=slides.6d3f738223ac9b3c9b7a.bundle.js.mapPK!.�.�HH5assets/js/carousel.6a71b6c6e34400c456a5.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[369],{2539:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class CarouselBase extends elementorModules.frontend.handlers.SwiperBase{getDefaultSettings(){return{selectors:{swiperContainer:".elementor-main-swiper",swiperSlide:".swiper-slide"},slidesPerView:{widescreen:3,desktop:3,laptop:3,tablet_extra:3,tablet:2,mobile_extra:2,mobile:1}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.swiperContainer)};return t.$slides=t.$swiperContainer.find(e.swiperSlide),t}getEffect(){return this.getElementSettings("effect")}getDeviceSlidesPerView(e){const t="slides_per_view"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||this.getSettings("slidesPerView")[e])}getSlidesPerView(e){return"slide"===this.getEffect()?this.getDeviceSlidesPerView(e):1}getDeviceSlidesToScroll(e){const t="slides_to_scroll"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||1)}getSlidesToScroll(e){return"slide"===this.getEffect()?this.getDeviceSlidesToScroll(e):1}getSpaceBetween(e){let t="space_between";return e&&"desktop"!==e&&(t+="_"+e),this.getElementSettings(t).size||0}getSwiperOptions(){const e=this.getElementSettings(),t={grabCursor:!0,initialSlide:this.getInitialSlide(),slidesPerView:this.getSlidesPerView("desktop"),slidesPerGroup:this.getSlidesToScroll("desktop"),spaceBetween:this.getSpaceBetween(),loop:"yes"===e.loop,speed:e.speed,effect:this.getEffect(),preventClicksPropagation:!1,slideToClickedSlide:!0,handleElementorBreakpoints:!0};if(e.show_arrows&&(t.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),e.pagination&&(t.pagination={el:".swiper-pagination",type:e.pagination,clickable:!0}),"cube"!==this.getEffect()){const e={},i=elementorFrontend.config.responsive.activeBreakpoints;Object.keys(i).forEach((t=>{e[i[t].value]={slidesPerView:this.getSlidesPerView(t),slidesPerGroup:this.getSlidesToScroll(t),spaceBetween:this.getSpaceBetween(t)}})),t.breakpoints=e}return!this.isEdit&&e.autoplay&&(t.autoplay={delay:e.autoplay_speed,disableOnInteraction:!!e.pause_on_interaction}),t}getDeviceBreakpointValue(e){if(!this.breakpointsDictionary){const e=elementorFrontend.config.responsive.activeBreakpoints;this.breakpointsDictionary={},Object.keys(e).forEach((t=>{this.breakpointsDictionary[t]=e[t].value}))}return this.breakpointsDictionary[e]}updateSpaceBetween(e){const t=e.match("space_between_(.*)"),i=t?t[1]:"desktop",s=this.getSpaceBetween(i);"desktop"!==i?this.swiper.params.breakpoints[this.getDeviceBreakpointValue(i)].spaceBetween=s:this.swiper.params.spaceBetween=s,this.swiper.params.spaceBetween=s,this.swiper.update()}async onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments);const e=this.getElementSettings();if(1>=this.getSlidesCount())return;const t=elementorFrontend.utils.swiper;this.swiper=await new t(this.elements.$swiperContainer,this.getSwiperOptions()),"yes"===e.pause_on_hover&&this.togglePauseOnHover(!0),this.elements.$swiperContainer.data("swiper",this.swiper)}getChangeableProperties(){return{autoplay:"autoplay",pause_on_hover:"pauseOnHover",pause_on_interaction:"disableOnInteraction",autoplay_speed:"delay",speed:"speed",width:"width"}}updateSwiperOption(e){if(0===e.indexOf("width"))return void this.swiper.update();const t=this.getElementSettings(),i=t[e];let s=this.getChangeableProperties()[e],n=i;switch(e){case"autoplay":n=!!i&&{delay:t.autoplay_speed,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"autoplay_speed":s="autoplay",n={delay:i,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"pause_on_hover":this.togglePauseOnHover("yes"===i);break;case"pause_on_interaction":n="yes"===i}"pause_on_hover"!==e&&(this.swiper.params[s]=n),this.swiper.update()}onElementChange(e){if(1>=this.getSlidesCount())return;if(0===e.indexOf("width"))return this.swiper.update(),void(this.thumbsSwiper&&this.thumbsSwiper.update());if(0===e.indexOf("space_between"))return void this.updateSpaceBetween(e);this.getChangeableProperties().hasOwnProperty(e)&&this.updateSwiperOption(e)}onEditSettingsChange(e){1>=this.getSlidesCount()||"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}}t.default=CarouselBase},1507:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=s(i(2539));class TestimonialCarousel extends n.default{getDefaultSettings(){const e=super.getDefaultSettings();return e.slidesPerView={desktop:1},Object.keys(elementorFrontend.config.responsive.activeBreakpoints).forEach((t=>{e.slidesPerView[t]=1})),e.loop&&(e.loopedSlides=this.getSlidesCount()),e}getEffect(){return"slide"}}t.default=TestimonialCarousel}}]);PK!���8�8�5assets/js/jszip.vendor.8911033537a0c9d6e5f8.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["jszip.vendor"],{

/***/ "../node_modules/jszip/dist/jszip.min.js":
/*!***********************************************!*\
  !*** ../node_modules/jszip/dist/jszip.min.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/*!

JSZip v3.6.0 - A JavaScript class for generating and reading zip files
<http://stuartk.com/jszip>

(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.

JSZip uses the library pako released under the MIT license :
https://github.com/nodeca/pako/blob/master/LICENSE
*/

!function(e){if(true)module.exports=e();else {}}(function(){return function s(a,o,u){function h(r,e){if(!o[r]){if(!a[r]){var t=undefined;if(!e&&t)return require(r,!0);if(f)return f(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return h(t||e)},i,i.exports,s,a,o,u)}return o[r].exports}for(var f=undefined,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){"object"==typeof n&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r="function"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f="function"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){"object"==typeof n&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r="function"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f="function"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){"object"==typeof n&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r="function"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f="function"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){"object"==typeof n&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r="function"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f="function"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(l,t,n){(function(r){!function(e){"object"==typeof n&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:this).JSZip=e()}(function(){return function s(a,o,u){function h(t,e){if(!o[t]){if(!a[t]){var r="function"==typeof l&&l;if(!e&&r)return r(t,!0);if(f)return f(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[t]={exports:{}};a[t][0].call(i.exports,function(e){return h(a[t][1][e]||e)},i,i.exports,s,a,o,u)}return o[t].exports}for(var f="function"==typeof l&&l,e=0;e<u.length;e++)h(u[e]);return h}({1:[function(e,t,r){"use strict";var c=e("./utils"),l=e("./support"),p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(e){for(var t,r,n,i,s,a,o,u=[],h=0,f=e.length,l=f,d="string"!==c.getTypeOf(e);h<e.length;)l=f-h,n=d?(t=e[h++],r=h<f?e[h++]:0,h<f?e[h++]:0):(t=e.charCodeAt(h++),r=h<f?e.charCodeAt(h++):0,h<f?e.charCodeAt(h++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<l?(15&r)<<2|n>>6:64,o=2<l?63&n:64,u.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return u.join("")},r.decode=function(e){var t,r,n,i,s,a,o=0,u=0;if("data:"===e.substr(0,"data:".length))throw new Error("Invalid base64 input, it looks like a data url.");var h,f=3*(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error("Invalid base64 input, bad content length.");for(h=l.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),h[u++]=t,64!==s&&(h[u++]=r),64!==a&&(h[u++]=n);return h}},{"./support":30,"./utils":32}],2:[function(e,t,r){"use strict";var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){"use strict";var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(e){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){"use strict";var n=e("./utils"),a=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r){var n=a,i=0+r;e^=-1;for(var s=0;s<i;s++)e=e>>>8^n[255&(e^t[s])];return-1^e}(0|t,e,e.length):function(e,t,r){var n=a,i=0+r;e^=-1;for(var s=0;s<i;s++)e=e>>>8^n[255&(e^t.charCodeAt(s))];return-1^e}(0|t,e,e.length):0}},{"./utils":32}],5:[function(e,t,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){"use strict";var n;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function u(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(u,a),u.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},u.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new u("Deflate",e)},r.uncompressWorker=function(){return new u("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){"use strict";function I(e,t){var r,n="";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function i(e,t,r,n,i,s){var a,o,u=e.file,h=e.compression,f=s!==B.utf8encode,l=O.transformTo("string",s(u.name)),d=O.transformTo("string",B.utf8encode(u.name)),c=u.comment,p=O.transformTo("string",s(c)),m=O.transformTo("string",B.utf8encode(c)),_=d.length!==u.name.length,g=m.length!==c.length,v="",b="",w="",y=u.dir,k=u.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),f||!_&&!g||(S|=2048);var z,E=0,C=0;y&&(E|=16),"UNIX"===i?(C=798,E|=((z=u.unixPermissions)||(z=y?16893:33204),(65535&z)<<16)):(C=20,E|=63&(u.dosPermissions||0)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v+="up"+I((b=I(1,1)+I(T(l),4)+d).length,2)+b),g&&(v+="uc"+I((w=I(1,1)+I(T(p),4)+m).length,2)+w);var A="";return A+="\n\0",A+=I(S,2),A+=h.magic,A+=I(a,2),A+=I(o,2),A+=I(x.crc32,4),A+=I(x.compressedSize,4),A+=I(x.uncompressedSize,4),A+=I(l.length,2),A+=I(v.length,2),{fileRecord:R.LOCAL_FILE_HEADER+A+l+v,dirRecord:R.CENTRAL_FILE_HEADER+I(C,2)+A+I(p.length,2)+"\0\0\0\0"+I(E,4)+I(n,4)+l+v+p}}var O=e("../utils"),s=e("../stream/GenericWorker"),B=e("../utf8"),T=e("../crc32"),R=e("../signature");function n(e,t,r,n){s.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}O.inherits(n,s),n.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,s.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},n.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=i(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},n.prototype.closedSource=function(e){this.accumulate=!1;var t,r=this.streamFiles&&!e.file.dir,n=i(e,r,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),r)this.push({data:(t=e,R.DATA_DESCRIPTOR+I(t.crc32,4)+I(t.compressedSize,4)+I(t.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},n.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r,n,i,s,a,o,u=this.bytesWritten-e,h=(r=this.dirRecords.length,n=u,i=e,s=this.zipComment,a=this.encodeFileName,o=O.transformTo("string",a(s)),R.CENTRAL_DIRECTORY_END+"\0\0\0\0"+I(r,2)+I(r,2)+I(n,4)+I(i,4)+I(o.length,2)+o);this.push({data:h,meta:{percent:100}})},n.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},n.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(e){t.processChunk(e)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(e){t.error(e)}),this},n.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},n.prototype.error=function(e){var t=this._sources;if(!s.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},n.prototype.lock=function(){s.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=n},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,r){"use strict";var h=e("../compressions"),n=e("./ZipFileWorker");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),u=0;try{e.forEach(function(e,t){u++;var r=function(e,t){var r=e||t,n=h[r];if(!n)throw new Error(r+" is not a valid compression method !");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo("file",{name:e,dir:i,date:s,comment:t.comment||"",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=u}catch(e){o.error(e)}return o}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,r){"use strict";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var e=new n;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e("./object")).loadAsync=e("./load"),n.support=e("./support"),n.defaults=e("./defaults"),n.version="3.5.0",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e("./external"),t.exports=n},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,r){"use strict";var n=e("./utils"),i=e("./external"),o=e("./utf8"),u=e("./zipEntries"),s=e("./stream/Crc32Probe"),h=e("./nodejsUtils");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new s);r.on("error",function(e){t(e)}).on("end",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error("Corrupted zip : CRC32 mismatch")):e()}).resume()})}t.exports=function(e,s){var a=this;return s=n.extend(s||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),h.isNode&&h.isStream(e)?i.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):n.prepareContent("the loaded zip file",e,!0,s.optimizedBinaryString,s.base64).then(function(e){var t=new u(s);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(s.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n];a.file(i.fileNameStr,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:s.createFolders})}return t.zipComment.length&&(a.comment=t.zipComment),a})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../stream/GenericWorker");function s(e,t){i.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",function(e){t.push({data:e,meta:{percent:0}})}).on("error",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,r){"use strict";var i=e("readable-stream").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on("data",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on("error",function(e){n.emit("error",e)}).on("end",function(){n.push(null)})}e("../utils").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{"../utils":32,"readable-stream":16}],14:[function(e,t,r){"use strict";t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}}},{}],15:[function(e,t,r){"use strict";function s(e,t,r){var n,i=f.getTypeOf(t),s=f.extend(r||{},d);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),"string"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=h(e)),s.createFolders&&(n=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""}(e))&&g.call(this,n,!0);var a,o="string"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!o),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t="",s.compression="STORE",i="string"),a=t instanceof c||t instanceof l?t:m.isNode&&m.isStream(t)?new _(e,t):f.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var u=new p(e,a,s);this.files[e]=u}function h(e){return"/"!==e.slice(-1)&&(e+="/"),e}var i=e("./utf8"),f=e("./utils"),l=e("./stream/GenericWorker"),a=e("./stream/StreamHelper"),d=e("./defaults"),c=e("./compressedObject"),p=e("./zipObject"),o=e("./generate"),m=e("./nodejsUtils"),_=e("./nodejs/NodejsStreamInputAdapter"),g=function(e,t){return t=void 0!==t?t:d.createFolders,e=h(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function u(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,r,n;for(t in this.files)this.files.hasOwnProperty(t)&&(n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n))},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(u(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(u(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=g.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||("/"!==r.slice(-1)&&(r+="/"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(e){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,r={};try{if((r=f.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),"binarystring"===r.type&&(r.type="string"),!r.type)throw new Error("No output type specified.");f.checkSupport(r.type),"darwin"!==r.platform&&"freebsd"!==r.platform&&"linux"!==r.platform&&"sunos"!==r.platform||(r.platform="UNIX"),"win32"===r.platform&&(r.platform="DOS");var n=r.comment||this.comment||"";t=o.generateWorker(this,r,n)}catch(e){(t=new l("error")).error(e)}return new a(t,r.type||"string",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,r){t.exports=e("stream")},{stream:void 0}],17:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],18:[function(e,t,r){"use strict";var n=e("../utils");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(e){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(e){},lastIndexOfSignature:function(e){},readAndCheckSignature:function(e){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){"use strict";var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){"use strict";var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),u=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new u(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){"use strict";function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(e){t.processChunk(e)}),e.on("end",function(){t.end()}),e.on("error",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=n},{}],29:[function(e,t,r){"use strict";var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),f=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function u(e,t,r){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s("error"),this._worker.error(e)}}u.prototype={accumulate:function(e){return o=this,u=e,new a.Promise(function(t,r){var n=[],i=o._internalType,s=o._outputType,a=o._mimeType;o.on("data",function(e,t){n.push(e),u&&u(t)}).on("error",function(e){n=[],r(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return f.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()});var o,u},on:function(e,t){var r=this;return"data"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new o(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=u},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,r){"use strict";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,r.nodebuffer="undefined"!=typeof Buffer,r.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:"application/zip"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob("application/zip").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e("readable-stream").Readable}catch(e){r.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,s){"use strict";for(var o=e("./utils"),u=e("./support"),r=e("./nodejsUtils"),n=e("./stream/GenericWorker"),h=new Array(256),i=0;i<256;i++)h[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;function a(){n.call(this,"utf-8 decode"),this.leftOver=null}function f(){n.call(this,"utf-8 encode")}h[254]=h[254]=1,s.utf8encode=function(e){return u.nodebuffer?r.newBufferFrom(e,"utf-8"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=u.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return u.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=h[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(u.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(u.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(u.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+h[e[r]]>t?r:t}(t),i=t;n!==t.length&&(u.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(f,n),f.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=f},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,o){"use strict";var u=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),n=e("set-immediate-shim"),f=e("./external");function i(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}o.newBlob=function(t,r){o.checkSupport("blob");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var s={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)"array"===t||"nodebuffer"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join("")},stringifyByChar:function(e){for(var t="",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return u.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return u.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function a(e){var t=65536,r=o.getTypeOf(e),n=!0;if("uint8array"===r?n=s.applyCanBeUsed.uint8array:"nodebuffer"===r&&(n=s.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return s.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return s.stringifyByChar(e)}function d(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}o.applyFromCharCode=a;var c={};c.string={string:i,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:a,array:i,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return a(new Uint8Array(e))},array:function(e){return d(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:i,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:a,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:i,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:a,array:function(e){return d(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return d(e,new Uint8Array(e.length))},nodebuffer:i},o.transformTo=function(e,t){if(t=t||"",!e)return t;o.checkSupport(e);var r=o.getTypeOf(t);return c[r][e](t)},o.getTypeOf=function(e){return"string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":u.nodebuffer&&r.isBuffer(e)?"nodebuffer":u.uint8array&&e instanceof Uint8Array?"uint8array":u.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},o.checkSupport=function(e){if(!u[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},o.MAX_VALUE_16BITS=65535,o.MAX_VALUE_32BITS=-1,o.pretty=function(e){var t,r,n="";for(r=0;r<(e||"").length;r++)n+="\\x"+((t=e.charCodeAt(r))<16?"0":"")+t.toString(16).toUpperCase();return n},o.delay=function(e,t,r){n(function(){e.apply(r||null,t||[])})},o.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},o.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])arguments[e].hasOwnProperty(t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},o.prepareContent=function(n,e,i,s,a){return f.Promise.resolve(e).then(function(n){return u.blob&&(n instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(n)))&&"undefined"!=typeof FileReader?new f.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t,r=o.getTypeOf(e);return r?("arraybuffer"===r?e=o.transformTo("uint8array",e):"string"===r&&(a?e=h.decode(e):i&&!0!==s&&(e=l(t=e,u.uint8array?new Uint8Array(t.length):new Array(t.length)))),e):f.Promise.reject(new Error("Can't read the data of '"+n+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(e,t,r){"use strict";var n=e("./reader/readerFor"),i=e("./utils"),s=e("./signature"),a=e("./zipEntry"),o=(e("./utf8"),e("./support"));function u(e){this.files=[],this.loadOptions=e}u.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+i.pretty(t)+", expected "+i.pretty(e)+")")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?"uint8array":"array",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error("Corrupted zip: missing "+Math.abs(n)+" bytes.")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=u},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(e,t,r){"use strict";var n=e("./reader/readerFor"),s=e("./utils"),i=e("./compressedObject"),a=e("./crc32"),o=e("./utf8"),u=e("./compressions"),h=e("./support");function f(e,t){this.options=e,this.loadOptions=t}f.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in u)if(u.hasOwnProperty(t)&&u[t].magic===e)return u[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(e){if(this.extraFields[1]){var t=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=t.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=t.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=t.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=t.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=h.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=f},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,r){"use strict";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e("./stream/StreamHelper"),i=e("./stream/DataWorker"),a=e("./utf8"),o=e("./compressedObject"),u=e("./stream/GenericWorker");n.prototype={internalStream:function(e){var t=null,r="string";try{if(!e)throw new Error("No output type specified.");var n="string"===(r=e.toLowerCase())||"text"===r;"binarystring"!==r&&"text"!==r||(r="string"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new u("error")).error(e)}return new s(t,r,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof u?this._data:new i(this._data)}};for(var h=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],f=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<h.length;l++)n.prototype[h[l]]=f;t.exports=n},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,f,t){(function(t){"use strict";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(h),a=t.document.createTextNode("");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){h(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(h,0)};else{var o=new t.MessageChannel;o.port1.onmessage=h,r=function(){o.port2.postMessage(0)}}var u=[];function h(){var e,t;n=!0;for(var r=u.length;r;){for(t=u,u=[],e=-1;++e<r;)t[e]();r=u.length}n=!1}f.exports=function(e){1!==u.push(e)||n||r()}}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,r){"use strict";var i=e("immediate");function h(){}var f={},s=["REJECTED"],a=["FULFILLED"],n=["PENDING"];function o(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=n,this.queue=[],this.outcome=void 0,e!==h&&c(this,e)}function u(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function l(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return f.reject(t,e)}e===t?f.reject(t,new TypeError("Cannot resolve promise with itself")):f.resolve(t,e)})}function d(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function c(t,e){var r=!1;function n(e){r||(r=!0,f.reject(t,e))}function i(e){r||(r=!0,f.resolve(t,e))}var s=p(function(){e(i,n)});"error"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if("function"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if("function"!=typeof e&&this.state===a||"function"!=typeof t&&this.state===s)return this;var r=new this.constructor(h);return this.state!==n?l(r,this.state===a?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){f.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){l(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){f.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){l(this.promise,this.onRejected,e)},f.resolve=function(e,t){var r=p(d,t);if("error"===r.status)return f.reject(e,r.value);var n=r.value;if(n)c(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},f.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){return e instanceof this?e:f.resolve(new this(h),e)},o.reject=function(e){var t=new this(h);return f.reject(t,e)},o.all=function(e){var r=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,i=!1;if(!n)return this.resolve([]);for(var s=new Array(n),a=0,t=-1,o=new this(h);++t<n;)u(e[t],t);return o;function u(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,f.resolve(o,s))},function(e){i||(i=!0,f.reject(o,e))})}},o.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,i=-1,s=new this(h);++i<t;)n=e[i],this.resolve(n).then(function(e){r||(r=!0,f.resolve(s,e))},function(e){r||(r=!0,f.reject(s,e))});return s}},{immediate:36}],38:[function(e,t,r){"use strict";var n={};(0,e("./lib/utils/common").assign)(n,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=n},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,r){"use strict";var a=e("./zlib/deflate"),o=e("./utils/common"),u=e("./utils/strings"),i=e("./zlib/messages"),s=e("./zlib/zstream"),h=Object.prototype.toString,f=0,l=-1,d=0,c=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:l,method:c,chunkSize:16384,windowBits:15,memLevel:8,strategy:d,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==f)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n="string"==typeof t.dictionary?u.string2buf(t.dictionary):"[object ArrayBuffer]"===h.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==f)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,"string"==typeof e?i.input=u.string2buf(e):"[object ArrayBuffer]"===h.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==f)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||("string"===this.options.to?this.onData(u.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===f):2!==n||(this.onEnd(f),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===f&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,r){"use strict";var d=e("./zlib/inflate"),c=e("./utils/common"),p=e("./utils/strings"),m=e("./zlib/constants"),n=e("./zlib/messages"),i=e("./zlib/zstream"),s=e("./zlib/gzheader"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=c.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=d.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,d.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,u=this.strm,h=this.options.chunkSize,f=this.options.dictionary,l=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,"string"==typeof e?u.input=p.binstring2buf(e):"[object ArrayBuffer]"===_.call(e)?u.input=new Uint8Array(e):u.input=e,u.next_in=0,u.avail_in=u.input.length;do{if(0===u.avail_out&&(u.output=new c.Buf8(h),u.next_out=0,u.avail_out=h),(r=d.inflate(u,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&f&&(o="string"==typeof f?p.string2buf(f):"[object ArrayBuffer]"===_.call(f)?new Uint8Array(f):f,r=d.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===l&&(r=m.Z_OK,l=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);u.next_out&&(0!==u.avail_out&&r!==m.Z_STREAM_END&&(0!==u.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||("string"===this.options.to?(i=p.utf8border(u.output,u.next_out),s=u.next_out-i,a=p.buf2string(u.output,i),u.next_out=s,u.avail_out=h-s,s&&c.arraySet(u.output,u.output,i,s,0),this.onData(a)):this.onData(c.shrinkBuf(u.output,u.next_out)))),0===u.avail_in&&0===u.avail_out&&(l=!0)}while((0<u.avail_in||0===u.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=d.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(u.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=c.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){"use strict";var u=e("./common"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var h=new u.Buf8(256),n=0;n<256;n++)h[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function f(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,u.shrinkBuf(e,t));for(var r="",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}h[254]=h[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new u.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return f(e,e.length)},r.binstring2buf=function(e){for(var t=new u.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=h[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return f(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+h[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){"use strict";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){"use strict";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){"use strict";var u,d=e("../utils/common"),h=e("./trees"),c=e("./adler32"),p=e("./crc32"),n=e("./messages"),f=0,l=0,m=-2,i=2,_=8,s=286,a=30,o=19,g=2*s+1,v=15,b=3,w=258,y=w+b+1,k=42,x=113;function S(e,t){return e.msg=n[t],t}function z(e){return(e<<1)-(4<e?9:0)}function E(e){for(var t=e.length;0<=--t;)e[t]=0}function C(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(d.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function A(e,t){h._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,C(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function O(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function B(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,u=e.strstart>e.w_size-y?e.strstart-(e.w_size-y):0,h=e.window,f=e.w_mask,l=e.prev,d=e.strstart+w,c=h[s+a-1],p=h[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(h[(r=t)+a]===p&&h[r+a-1]===c&&h[r]===h[s]&&h[++r]===h[s+1]){s+=2,r++;do{}while(h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&h[++s]===h[++r]&&s<d);if(n=w-(d-s),s=d-w,a<n){if(e.match_start=t,o<=(a=n))break;c=h[s+a-1],p=h[s+a]}}}while((t=l[t&f])>u&&0!=--i);return a<=e.lookahead?a:e.lookahead}function T(e){var t,r,n,i,s,a,o,u,h,f,l=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=l+(l-y)){for(d.arraySet(e.window,e.window,l,l,0),e.match_start-=l,e.strstart-=l,e.block_start-=l,t=r=e.hash_size;n=e.head[--t],e.head[t]=l<=n?n-l:0,--r;);for(t=r=l;n=e.prev[--t],e.prev[t]=l<=n?n-l:0,--r;);i+=l}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,u=e.strstart+e.lookahead,f=void 0,(h=i)<(f=a.avail_in)&&(f=h),r=0===f?0:(a.avail_in-=f,d.arraySet(o,a.input,a.next_in,f,u),1===a.state.wrap?a.adler=c(a.adler,o,f,u):2===a.state.wrap&&(a.adler=p(a.adler,o,f,u)),a.next_in+=f,a.total_in+=f,f),e.lookahead+=r,e.lookahead+e.insert>=b)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+b-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<b)););}while(e.lookahead<y&&0!==e.strm.avail_in)}function R(e,t){for(var r,n;;){if(e.lookahead<y){if(T(e),e.lookahead<y&&t===f)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=b&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-y&&(e.match_length=B(e,r)),e.match_length>=b)if(n=h._tr_tally(e,e.strstart-e.match_start,e.match_length-b),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=b){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<b-1?e.strstart:b-1,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function D(e,t){for(var r,n,i;;){if(e.lookahead<y){if(T(e),e.lookahead<y&&t===f)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=b&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=b-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-y&&(e.match_length=B(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===b&&4096<e.strstart-e.match_start)&&(e.match_length=b-1)),e.prev_length>=b&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-b,n=h._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-b),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+b-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=b-1,e.strstart++,n&&(A(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=h._tr_tally(e,0,e.window[e.strstart-1]))&&A(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=h._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<b-1?e.strstart:b-1,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}function F(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function N(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=_,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new d.Buf16(2*g),this.dyn_dtree=new d.Buf16(2*(2*a+1)),this.bl_tree=new d.Buf16(2*(2*o+1)),E(this.dyn_ltree),E(this.dyn_dtree),E(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new d.Buf16(v+1),this.heap=new d.Buf16(2*s+1),E(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new d.Buf16(2*s+1),E(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function U(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?k:x,e.adler=2===t.wrap?0:1,t.last_flush=f,h._tr_init(t),l):S(e,m)}function P(e){var t,r=U(e);return r===l&&((t=e.state).window_size=2*t.w_size,E(t.head),t.max_lazy_match=u[t.level].max_lazy,t.good_match=u[t.level].good_length,t.nice_match=u[t.level].nice_length,t.max_chain_length=u[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=b-1,t.match_available=0,t.ins_h=0),r}function L(e,t,r,n,i,s){if(!e)return m;var a=1;if(-1===t&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||9<i||r!==_||n<8||15<n||t<0||9<t||s<0||4<s)return S(e,m);8===n&&(n=9);var o=new N;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+b-1)/b),o.window=new d.Buf8(2*o.w_size),o.head=new d.Buf16(o.hash_size),o.prev=new d.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new d.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,P(e)}u=[new F(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(T(e),0===e.lookahead&&t===f)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,A(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-y&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(A(e,!1),e.strm.avail_out),1)}),new F(4,4,8,4,R),new F(4,5,16,8,R),new F(4,6,32,32,R),new F(4,4,16,16,D),new F(8,16,32,32,D),new F(8,16,128,128,D),new F(8,32,128,256,D),new F(32,128,258,1024,D),new F(32,258,258,4096,D)],r.deflateInit=function(e,t){return L(e,t,_,15,8,0)},r.deflateInit2=L,r.deflateReset=P,r.deflateResetKeep=U,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?m:(e.state.gzhead=t,l):m},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?S(e,m):m;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&4!==t)return S(e,0===e.avail_out?-5:m);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===k)if(2===n.wrap)e.adler=0,I(n,31),I(n,139),I(n,8),n.gzhead?(I(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),I(n,255&n.gzhead.time),I(n,n.gzhead.time>>8&255),I(n,n.gzhead.time>>16&255),I(n,n.gzhead.time>>24&255),I(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),I(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(I(n,255&n.gzhead.extra.length),I(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(I(n,0),I(n,0),I(n,0),I(n,0),I(n,0),I(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),I(n,3),n.status=x);else{var a=_+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=x,O(n,a),0!==n.strstart&&(O(n,e.adler>>>16),O(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),C(e),i=n.pending,n.pending!==n.pending_buf_size));)I(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),C(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,I(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),C(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,I(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&C(e),n.pending+2<=n.pending_buf_size&&(I(n,255&e.adler),I(n,e.adler>>8&255),e.adler=0,n.status=x)):n.status=x),0!==n.pending){if(C(e),0===e.avail_out)return n.last_flush=-1,l}else if(0===e.avail_in&&z(t)<=z(r)&&4!==t)return S(e,-5);if(666===n.status&&0!==e.avail_in)return S(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==f&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(T(e),0===e.lookahead)){if(t===f)return 1;break}if(e.match_length=0,r=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=w){if(T(e),e.lookahead<=w&&t===f)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=b&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+w;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=w-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=b?(r=h._tr_tally(e,1,e.match_length-b),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=h._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(A(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(A(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(A(e,!1),0===e.strm.avail_out)?1:2}(n,t):u[n.level].func(n,t);if(3!==o&&4!==o||(n.status=666),1===o||3===o)return 0===e.avail_out&&(n.last_flush=-1),l;if(2===o&&(1===t?h._tr_align(n):5!==t&&(h._tr_stored_block(n,0,0,!1),3===t&&(E(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),C(e),0===e.avail_out))return n.last_flush=-1,l}return 4!==t?l:n.wrap<=0?1:(2===n.wrap?(I(n,255&e.adler),I(n,e.adler>>8&255),I(n,e.adler>>16&255),I(n,e.adler>>24&255),I(n,255&e.total_in),I(n,e.total_in>>8&255),I(n,e.total_in>>16&255),I(n,e.total_in>>24&255)):(O(n,e.adler>>>16),O(n,65535&e.adler)),C(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?l:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==k&&69!==t&&73!==t&&91!==t&&103!==t&&t!==x&&666!==t?S(e,m):(e.state=null,t===x?S(e,-3):l):m},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,u,h,f=t.length;if(!e||!e.state)return m;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==k||r.lookahead)return m;for(1===s&&(e.adler=c(e.adler,t,f,0)),r.wrap=0,f>=r.w_size&&(0===s&&(E(r.head),r.strstart=0,r.block_start=0,r.insert=0),h=new d.Buf8(r.w_size),d.arraySet(h,t,f-r.w_size,r.w_size,0),t=h,f=r.w_size),a=e.avail_in,o=e.next_in,u=e.input,e.avail_in=f,e.next_in=0,e.input=t,T(r);r.lookahead>=b;){for(n=r.strstart,i=r.lookahead-(b-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+b-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=b-1,T(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=b-1,r.match_available=0,e.next_in=o,e.input=u,e.avail_in=a,r.wrap=s,l},r.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,r){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){"use strict";t.exports=function(e,t){var r,n,i,s,a,o,u,h,f,l,d,c,p,m,_,g,v,b,w,y,k,x,S,z,E;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,E=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),u=r.dmax,h=r.wsize,f=r.whave,l=r.wnext,d=r.window,c=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,v=(1<<r.distbits)-1;e:do{p<15&&(c+=z[n++]<<p,p+=8,c+=z[n++]<<p,p+=8),b=m[c&g];t:for(;;){if(c>>>=w=b>>>24,p-=w,0==(w=b>>>16&255))E[s++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=m[(65535&b)+(c&(1<<w)-1)];continue t}if(32&w){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}y=65535&b,(w&=15)&&(p<w&&(c+=z[n++]<<p,p+=8),y+=c&(1<<w)-1,c>>>=w,p-=w),p<15&&(c+=z[n++]<<p,p+=8,c+=z[n++]<<p,p+=8),b=_[c&v];r:for(;;){if(c>>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=_[(65535&b)+(c&(1<<w)-1)];continue r}e.msg="invalid distance code",r.mode=30;break e}if(k=65535&b,p<(w&=15)&&(c+=z[n++]<<p,(p+=8)<w&&(c+=z[n++]<<p,p+=8)),u<(k+=c&(1<<w)-1)){e.msg="invalid distance too far back",r.mode=30;break e}if(c>>>=w,p-=w,(w=s-a)<k){if(f<(w=k-w)&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(S=d,(x=0)===l){if(x+=h-w,w<y){for(y-=w;E[s++]=d[x++],--w;);x=s-k,S=E}}else if(l<w){if(x+=h+l-w,(w-=l)<y){for(y-=w;E[s++]=d[x++],--w;);if(x=0,l<y){for(y-=w=l;E[s++]=d[x++],--w;);x=s-k,S=E}}}else if(x+=l-w,w<y){for(y-=w;E[s++]=d[x++],--w;);x=s-k,S=E}for(;2<y;)E[s++]=S[x++],E[s++]=S[x++],E[s++]=S[x++],y-=3;y&&(E[s++]=S[x++],1<y&&(E[s++]=S[x++]))}else{for(x=s-k;E[s++]=E[x++],E[s++]=E[x++],E[s++]=E[x++],2<(y-=3););y&&(E[s++]=E[x++],1<y&&(E[s++]=E[x++]))}break}}break}}while(n<i&&s<o);n-=y=p>>3,c&=(1<<(p-=y<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=c,r.bits=p}},{}],49:[function(e,t,r){"use strict";var I=e("../utils/common"),O=e("./adler32"),B=e("./crc32"),T=e("./inffast"),R=e("./inftrees"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function u(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function h(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=u(e,t))!==N&&(e.state=null),r):U}var f,l,d=!0;function j(e){if(d){var t;for(f=new I.Buf32(512),l=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(R(D,e.lens,0,288,f,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;R(F,e.lens,0,32,l,0,e.work,{bits:5}),d=!1}e.lencode=f,e.lenbits=9,e.distcode=l,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=u,r.inflateResetKeep=a,r.inflateInit=function(e){return h(e,15)},r.inflateInit2=h,r.inflate=function(e,t){var r,n,i,s,a,o,u,h,f,l,d,c,p,m,_,g,v,b,w,y,k,x,S,z,E=0,C=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,u=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,h=r.hold,f=r.bits,l=o,d=u,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(2&r.wrap&&35615===h){C[r.check=0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0),f=h=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&h)){e.msg="unknown compression method",r.mode=30;break}if(f-=4,k=8+(15&(h>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&h?10:12,f=h=0;break;case 2:for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(r.flags=h,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=h>>8&1),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0)),f=h=0,r.mode=3;case 3:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.head&&(r.head.time=h),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,C[2]=h>>>16&255,C[3]=h>>>24&255,r.check=B(r.check,C,4,0)),f=h=0,r.mode=4;case 4:for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.head&&(r.head.xflags=255&h,r.head.os=h>>8),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0)),f=h=0,r.mode=5;case 5:if(1024&r.flags){for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.length=h,r.head&&(r.head.extra_len=h),512&r.flags&&(C[0]=255&h,C[1]=h>>>8&255,r.check=B(r.check,C,2,0)),f=h=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,c,k)),512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,r.length-=c),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(c=0;k=n[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(c=0;k=n[s+c++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&c<o;);if(512&r.flags&&(r.check=B(r.check,n,c,s)),o-=c,s+=c,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;f<16;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}f=h=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}e.adler=r.check=L(h),f=h=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){h>>>=7&f,f-=7&f,r.mode=27;break}for(;f<3;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}switch(r.last=1&h,f-=1,3&(h>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;h>>>=2,f-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}h>>>=2,f-=2;break;case 14:for(h>>>=7&f,f-=7&f;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if((65535&h)!=(h>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&h,f=h=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(c=r.length){if(o<c&&(c=o),u<c&&(c=u),0===c)break e;I.arraySet(i,n,s,c,a),o-=c,s+=c,u-=c,a+=c,r.length-=c;break}r.mode=12;break;case 17:for(;f<14;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(r.nlen=257+(31&h),h>>>=5,f-=5,r.ndist=1+(31&h),h>>>=5,f-=5,r.ncode=4+(15&h),h>>>=4,f-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;f<3;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.lens[A[r.have++]]=7&h,h>>>=3,f-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=R(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(E=r.lencode[h&(1<<r.lenbits)-1])>>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(v<16)h>>>=_,f-=_,r.lens[r.have++]=v;else{if(16===v){for(z=_+2;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h>>>=_,f-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&h),h>>>=2,f-=2}else if(17===v){for(z=_+3;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}f-=_,k=0,c=3+(7&(h>>>=_)),h>>>=3,f-=3}else{for(z=_+7;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}f-=_,k=0,c=11+(127&(h>>>=_)),h>>>=7,f-=7}if(r.have+c>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=R(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=R(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=u){e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,T(e,d),a=e.next_out,i=e.output,u=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,h=r.hold,f=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(E=r.lencode[h&(1<<r.lenbits)-1])>>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(g&&0==(240&g)){for(b=_,w=g,y=v;g=(E=r.lencode[y+((h&(1<<b+w)-1)>>b)])>>>16&255,v=65535&E,!(b+(_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}h>>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,r.length=v,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.length+=h&(1<<r.extra)-1,h>>>=r.extra,f-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(E=r.distcode[h&(1<<r.distbits)-1])>>>16&255,v=65535&E,!((_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(0==(240&g)){for(b=_,w=g,y=v;g=(E=r.distcode[y+((h&(1<<b+w)-1)>>b)])>>>16&255,v=65535&E,!(b+(_=E>>>24)<=f);){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}h>>>=b,f-=b,r.back+=b}if(h>>>=_,f-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=v,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;f<z;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}r.offset+=h&(1<<r.extra)-1,h>>>=r.extra,f-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===u)break e;if(c=d-u,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=i,p=a-r.offset,c=r.length;for(u<c&&(c=u),u-=c,r.length-=c;i[a++]=m[p++],--c;);0===r.length&&(r.mode=21);break;case 26:if(0===u)break e;i[a++]=r.length,u--,r.mode=21;break;case 27:if(r.wrap){for(;f<32;){if(0===o)break e;o--,h|=n[s++]<<f,f+=8}if(d-=u,e.total_out+=d,r.total+=d,d&&(e.adler=r.check=r.flags?B(r.check,i,d,a-d):O(r.check,i,d,a-d)),d=u,(r.flags?h:L(h))!==r.check){e.msg="incorrect data check",r.mode=30;break}f=h=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;f<32;){if(0===o)break e;o--,h+=n[s++]<<f,f+=8}if(h!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}f=h=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=u,e.next_in=s,e.avail_in=o,r.hold=h,r.bits=f,(r.wsize||d!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,d-e.avail_out)?(r.mode=31,-4):(l-=e.avail_in,d-=e.avail_out,e.total_in+=l,e.total_out+=d,r.total+=d,r.wrap&&d&&(e.adler=r.check=r.flags?B(r.check,i,d,e.next_out-d):O(r.check,i,d,e.next_out-d)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==l&&0===d||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,r){"use strict";var D=e("../utils/common"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var u,h,f,l,d,c,p,m,_,g=o.bits,v=0,b=0,w=0,y=0,k=0,x=0,S=0,z=0,E=0,C=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),T=null,R=0;for(v=0;v<=15;v++)O[v]=0;for(b=0;b<n;b++)O[t[r+b]]++;for(k=g,y=15;1<=y&&0===O[y];y--);if(y<k&&(k=y),0===y)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(w=1;w<y&&0===O[w];w++);for(k<w&&(k=w),v=z=1;v<=15;v++)if(z<<=1,(z-=O[v])<0)return-1;if(0<z&&(0===e||1!==y))return-1;for(B[1]=0,v=1;v<15;v++)B[v+1]=B[v]+O[v];for(b=0;b<n;b++)0!==t[r+b]&&(a[B[t[r+b]]++]=b);if(c=0===e?(A=T=a,19):1===e?(A=F,I-=257,T=N,R-=257,256):(A=U,T=P,-1),v=w,d=s,S=b=C=0,f=-1,l=(E=1<<(x=k))-1,1===e&&852<E||2===e&&592<E)return 1;for(;;){for(p=v-S,_=a[b]<c?(m=0,a[b]):a[b]>c?(m=T[R+a[b]],A[I+a[b]]):(m=96,0),u=1<<v-S,w=h=1<<x;i[d+(C>>S)+(h-=u)]=p<<24|m<<16|_|0,0!==h;);for(u=1<<v-1;C&u;)u>>=1;if(0!==u?(C&=u-1,C+=u):C=0,b++,0==--O[v]){if(v===y)break;v=t[r+a[b]]}if(k<v&&(C&l)!==f){for(0===S&&(S=k),d+=w,z=1<<(x=v-S);x+S<y&&!((z-=O[x+S])<=0);)x++,z<<=1;if(E+=1<<x,1===e&&852<E||2===e&&592<E)return 1;i[f=C&l]=k<<24|x<<16|d-s|0}}return 0!==C&&(i[d+C]=v-S<<24|64<<16|0),o.bits=k,0}},{"../utils/common":41}],51:[function(e,t,r){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,t,r){"use strict";var o=e("../utils/common");function n(e){for(var t=e.length;0<=--t;)e[t]=0}var _=15,i=16,u=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],h=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Array(576);n(l);var d=new Array(60);n(d);var c=new Array(512);n(c);var p=new Array(256);n(p);var m=new Array(29);n(m);var g,v,b,w=new Array(30);function y(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function s(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function k(e){return e<256?c[e]:c[256+(e>>>7)]}function x(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function S(e,t,r){e.bi_valid>i-r?(e.bi_buf|=t<<e.bi_valid&65535,x(e,e.bi_buf),e.bi_buf=t>>i-e.bi_valid,e.bi_valid+=r-i):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function z(e,t,r){S(e,r[2*t],r[2*t+1])}function E(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function C(e,t,r){var n,i,s=new Array(_+1),a=0;for(n=1;n<=_;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=E(s[o]++,o))}}function A(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function I(e){8<e.bi_valid?x(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function O(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function B(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&O(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!O(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function T(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?z(e,i,t):(z(e,(s=p[i])+256+1,t),0!==(a=u[s])&&S(e,i-=m[s],a),z(e,s=k(--n),r),0!==(a=h[s])&&S(e,n-=w[s],a)),o<e.last_lit;);z(e,256,t)}function R(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,u=t.stat_desc.elems,h=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<u;r++)0!==s[2*r]?(e.heap[++e.heap_len]=h=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=h<2?++h:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=h,r=e.heap_len>>1;1<=r;r--)B(e,s,r);for(i=u;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],B(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,B(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,u=t.dyn_tree,h=t.max_code,f=t.stat_desc.static_tree,l=t.stat_desc.has_stree,d=t.stat_desc.extra_bits,c=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=_;s++)e.bl_count[s]=0;for(u[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)p<(s=u[2*u[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),u[2*n+1]=s,h<n||(e.bl_count[s]++,a=0,c<=n&&(a=d[n-c]),o=u[2*n],e.opt_len+=o*(s+a),l&&(e.static_len+=o*(f[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)h<(i=e.heap[--r])||(u[2*i+1]!==s&&(e.opt_len+=(s-u[2*i+1])*u[2*i],u[2*i+1]=s),n--)}}(e,t),C(s,h,e.bl_count)}function D(e,t,r){var n,i,s=-1,a=t[1],o=0,u=7,h=4;for(0===a&&(u=138,h=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<u&&i===a||(o<h?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,s=i,h=(o=0)===a?(u=138,3):i===a?(u=6,3):(u=7,4))}function F(e,t,r){var n,i,s=-1,a=t[1],o=0,u=7,h=4;for(0===a&&(u=138,h=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<u&&i===a)){if(o<h)for(;z(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(z(e,i,e.bl_tree),o--),z(e,16,e.bl_tree),S(e,o-3,2)):o<=10?(z(e,17,e.bl_tree),S(e,o-3,3)):(z(e,18,e.bl_tree),S(e,o-11,7));s=i,h=(o=0)===a?(u=138,3):i===a?(u=6,3):(u=7,4)}}n(w);var N=!1;function U(e,t,r,n){var i,s,a;S(e,0+(n?1:0),3),s=t,a=r,I(i=e),x(i,a),x(i,~a),o.arraySet(i.pending_buf,i.window,s,a,i.pending),i.pending+=a}r._tr_init=function(e){N||(function(){var e,t,r,n,i,s=new Array(_+1);for(n=r=0;n<28;n++)for(m[n]=r,e=0;e<1<<u[n];e++)p[r++]=n;for(p[r-1]=n,n=i=0;n<16;n++)for(w[n]=i,e=0;e<1<<h[n];e++)c[i++]=n;for(i>>=7;n<30;n++)for(w[n]=i<<7,e=0;e<1<<h[n]-7;e++)c[256+i++]=n;for(t=0;t<=_;t++)s[t]=0;for(e=0;e<=143;)l[2*e+1]=8,e++,s[8]++;for(;e<=255;)l[2*e+1]=9,e++,s[9]++;for(;e<=279;)l[2*e+1]=7,e++,s[7]++;for(;e<=287;)l[2*e+1]=8,e++,s[8]++;for(C(l,287,s),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=E(e,5);g=new y(l,u,257,286,_),v=new y(d,h,0,30,_),b=new y(new Array(0),a,0,19,7)}(),N=!0),e.l_desc=new s(e.dyn_ltree,g),e.d_desc=new s(e.dyn_dtree,v),e.bl_desc=new s(e.bl_tree,b),e.bi_buf=0,e.bi_valid=0,A(e)},r._tr_stored_block=U,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),R(e,e.l_desc),R(e,e.d_desc),a=function(e){var t;for(D(e,e.dyn_ltree,e.l_desc.max_code),D(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*f[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?U(e,t,r,n):4===e.strategy||s===i?(S(e,2+(n?1:0),3),T(e,l,d)):(S(e,4+(n?1:0),3),function(e,t,r,n){var i;for(S(e,t-257,5),S(e,r-1,5),S(e,n-4,4),i=0;i<n;i++)S(e,e.bl_tree[2*f[i]+1],3);F(e,e.dyn_ltree,t-1),F(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),T(e,e.dyn_ltree,e.dyn_dtree)),A(e),n&&I(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(p[r]+256+1)]++,e.dyn_dtree[2*k(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){var t;S(e,2,3),z(e,256,l),16===(t=e).bi_valid?(x(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}},{"../utils/common":41}],53:[function(e,t,r){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){"use strict";t.exports="function"==typeof setImmediate?setImmediate:function(){var e=[].slice.apply(arguments);e.splice(1,0,0),setTimeout.apply(null,e)}},{}]},{},[10])(10)})}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,void 0!==r?r:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,"undefined"!=typeof __webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)});

/***/ })

}]);
//# sourceMappingURL=jszip.vendor.8911033537a0c9d6e5f8.bundle.js.mapPK!�Z((assets/js/qunit-tests.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{"use strict";var r={52797:()=>{}},e={};function __webpack_require__(_){var t=e[_];if(void 0!==t)return t.exports;var o=e[_]={exports:{}};return r[_](o,o.exports,__webpack_require__),o.exports}new(__webpack_require__(52797).EditorBootstrapPro)})();PK!�Ba���Cassets/js/woocommerce-my-account.29644c6bcc614d12067e.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[979],{427:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Base extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{stickyRightColumn:".e-sticky-right-column"},classes:{stickyRightColumnActive:"e-sticky-right-column--active"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$stickyRightColumn:this.$element.find(e.stickyRightColumn)}}bindEvents(){elementorFrontend.elements.$document.on("select2:open",(e=>{this.addSelect2Wrapper(e)}))}addSelect2Wrapper(e){const t=jQuery(e.target).data("select2");t.$dropdown&&t.$dropdown.addClass("e-woo-select2-wrapper")}isStickyRightColumnActive(){const e=this.getSettings("classes");return this.elements.$stickyRightColumn.hasClass(e.stickyRightColumnActive)}activateStickyRightColumn(){const e=this.getElementSettings(),t=elementorFrontend.elements.$wpAdminBar,s=this.getSettings("classes");let i=e.sticky_right_column_offset||0;t.length&&"fixed"===t.css("position")&&(i+=t.height()),"yes"===this.getElementSettings("sticky_right_column")&&(this.elements.$stickyRightColumn.addClass(s.stickyRightColumnActive),this.elements.$stickyRightColumn.css("top",i+"px"))}deactivateStickyRightColumn(){if(!this.isStickyRightColumnActive())return;const e=this.getSettings("classes");this.elements.$stickyRightColumn.removeClass(e.stickyRightColumnActive)}toggleStickyRightColumn(){this.getElementSettings("sticky_right_column")?this.isStickyRightColumnActive()||this.activateStickyRightColumn():this.deactivateStickyRightColumn()}equalizeElementHeight(e){if(e.length){e.removeAttr("style");let t=0;e.each(((e,s)=>{t=Math.max(t,s.offsetHeight)})),0<t&&e.css({height:t+"px"})}}}t.default=Base},4838:(e,t,s)=>{"use strict";var i=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=i(s(427));class MyAccountHandler extends n.default{getDefaultSettings(){return{selectors:{address:"address",tabLinks:".woocommerce-MyAccount-navigation-link a",viewOrderButtons:".my_account_orders .woocommerce-button.view",viewOrderLinks:".woocommerce-orders-table__cell-order-number a",authForms:"form.login, form.register",tabWrapper:".e-my-account-tab",tabItem:".woocommerce-MyAccount-navigation li",allPageElements:"[e-my-account-page]",purchasenote:"tr.product-purchase-note"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$address:this.$element.find(e.address),$tabLinks:this.$element.find(e.tabLinks),$viewOrderButtons:this.$element.find(e.viewOrderButtons),$viewOrderLinks:this.$element.find(e.viewOrderLinks),$authForms:this.$element.find(e.authForms),$tabWrapper:this.$element.find(e.tabWrapper),$tabItem:this.$element.find(e.tabItem),$allPageElements:this.$element.find(e.allPageElements),$purchasenote:this.$element.find(e.purchasenote)}}editorInitTabs(){this.elements.$allPageElements.each(((e,t)=>{const s=t.getAttribute("e-my-account-page");let i;switch(s){case"view-order":i=this.elements.$viewOrderLinks.add(this.elements.$viewOrderButtons);break;default:i=this.$element.find(".woocommerce-MyAccount-navigation-link--"+s)}i.on("click",(()=>{this.currentPage=s,this.editorShowTab()}))}))}editorShowTab(){const e=this.$element.find('[e-my-account-page="'+this.currentPage+'"]');this.$element.attr("e-my-account-page",this.currentPage),this.elements.$allPageElements.hide(),e.show(),this.toggleEndpointClasses(),"view-order"!==this.currentPage&&(this.elements.$tabItem.removeClass("is-active"),this.$element.find(".woocommerce-MyAccount-navigation-link--"+this.currentPage).addClass("is-active")),"edit-address"!==this.currentPage&&"view-order"!==this.currentPage||this.equalizeElementHeights()}toggleEndpointClasses(){const e=["dashboard","orders","view-order","downloads","edit-account","edit-address","payment-methods"];this.elements.$tabWrapper.removeClass("e-my-account-tab__"+e.join(" e-my-account-tab__")),e.includes(this.currentPage)&&this.elements.$tabWrapper.addClass("e-my-account-tab__"+this.currentPage)}applyButtonsHoverAnimation(){const e=this.getElementSettings();e.forms_buttons_hover_animation&&this.$element.find(".woocommerce button.button").addClass("elementor-animation-"+e.forms_buttons_hover_animation),e.tables_button_hover_animation&&this.$element.find(".order-again .button, td .button, .woocommerce-pagination .button").addClass("elementor-animation-"+e.tables_button_hover_animation)}equalizeElementHeights(){this.equalizeElementHeight(this.elements.$address),this.isEdit||this.equalizeElementHeight(this.elements.$authForms)}removePaddingBetweenPurchaseNote(){this.elements.$purchasenote&&this.elements.$purchasenote.each(((e,t)=>{jQuery(t).prev().children("td").addClass("product-purchase-note-is-below")}))}onElementChange(e){0!==e.indexOf("general_text_typography")&&0!==e.indexOf("sections_padding")||this.equalizeElementHeights(),0===e.indexOf("forms_rows_gap")&&this.removePaddingBetweenPurchaseNote()}bindEvents(){super.bindEvents(),elementorFrontend.elements.$body.on("keyup change",".register #reg_password",(()=>{this.equalizeElementHeights()}))}onInit(...e){super.onInit(...e),this.isEdit&&(this.editorInitTabs(),this.$element.attr("e-my-account-page")?this.currentPage=this.$element.attr("e-my-account-page"):this.currentPage="dashboard",this.editorShowTab()),this.applyButtonsHoverAnimation(),this.equalizeElementHeights(),this.removePaddingBetweenPurchaseNote()}}t.default=MyAccountHandler}}]);PK!A�.0

assets/js/admin.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/json/stringify */ "../node_modules/core-js/library/fn/json/stringify.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/entries.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/entries */ "../node_modules/core-js/library/fn/object/entries.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/get */ "../node_modules/core-js/library/fn/reflect/get.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/get.js":
/*!*************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/get.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$get = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/get */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/get.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js");

function _get(target, property, receiver) {
  if (typeof Reflect !== "undefined" && _Reflect$get) {
    module.exports = _get = _Reflect$get;
    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _get = function _get(target, property, receiver) {
      var base = superPropBase(target, property);
      if (!base) return;

      var desc = _Object$getOwnPropertyDescriptor(base, property);

      if (desc.get) {
        return desc.get.call(receiver);
      }

      return desc.value;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _get(target, property, receiver || target);
}

module.exports = _get;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/superPropBase.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

function _superPropBase(object, property) {
  while (!Object.prototype.hasOwnProperty.call(object, property)) {
    object = getPrototypeOf(object);
    if (object === null) break;
  }

  return object;
}

module.exports = _superPropBase;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin.js":
/*!****************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _elementorFontManager = _interopRequireDefault(__webpack_require__(/*! ./admin/elementor-font-manager */ "../modules/assets-manager/assets/js/admin/elementor-font-manager.js"));

var _elementorCustomIcons = _interopRequireDefault(__webpack_require__(/*! ./admin/elementor-custom-icons */ "../modules/assets-manager/assets/js/admin/elementor-custom-icons.js"));

module.exports = function () {
  var TypekitAdmin = __webpack_require__(/*! ./admin/typekit */ "../modules/assets-manager/assets/js/admin/typekit.js"),
      CustomIcon = _elementorCustomIcons.default,
      FontAwesomeProAdmin = __webpack_require__(/*! ./admin/font-awesome-pro */ "../modules/assets-manager/assets/js/admin/font-awesome-pro.js").default;

  this.fontManager = new _elementorFontManager.default();
  this.typekit = new TypekitAdmin();
  this.fontAwesomePro = new FontAwesomeProAdmin();
  this.customIcons = new CustomIcon();
};

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/custom-assets-base.js":
/*!***********************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/custom-assets-base.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var CustomAssetsBase = /*#__PURE__*/function (_elementorModules$Vie) {
  (0, _inherits2.default)(CustomAssetsBase, _elementorModules$Vie);

  var _super = (0, _createSuper2.default)(CustomAssetsBase);

  function CustomAssetsBase() {
    (0, _classCallCheck2.default)(this, CustomAssetsBase);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(CustomAssetsBase, [{
    key: "showAlertDialog",
    value: function showAlertDialog(id, message) {
      var onConfirm = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
      var onHide = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
      var alertData = {
        id: id,
        message: message
      };

      if (onConfirm) {
        alertData.onConfirm = onConfirm;
      }

      if (onHide) {
        alertData.onHide = onHide;
      } // Save the instance of the alert dialog to check for its visibility later


      if (!this.alertWidget) {
        this.alertWidget = elementorCommon.dialogsManager.createWidget('alert', alertData);
      }

      this.alertWidget.show();
    }
  }, {
    key: "onDialogDismiss",
    value: function onDialogDismiss() {
      // WP's publish button gets a disabled class on submit attempt
      this.elements.$publishButton.removeClass('disabled'); // Prevent WP's publish spinner from appearing on publish attempt

      this.elements.$publishButtonSpinner.removeClass('is-active');
    }
  }, {
    key: "handleSubmit",
    value: function handleSubmit(event) {
      var _this = this;

      // if we know there is a file already, return to continue submission normally
      if (this.fileWasUploaded) {
        return;
      }

      var hasValue = this.checkInputsForValues(); // method exists in the child classes
      // If the file input is not empty, continue the submission process

      if (hasValue) {
        this.fileWasUploaded = true;
        this.elements.$postForm.trigger('submit');
        return;
      }

      event.preventDefault(); // prevent new asset submission
      // If no value was found, stop submission and display a notice modal

      this.showAlertDialog('noData', this.getSettings('notice'), function () {
        return _this.onDialogDismiss();
      }, // onConfirm
      function () {
        return _this.onDialogDismiss();
      } // onHide
      );
      return false;
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      this.elements.$postForm.on('submit', this.handleSubmit.bind(this));
    }
  }]);
  return CustomAssetsBase;
}(elementorModules.ViewModule);

var _default = CustomAssetsBase;
exports.default = _default;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/elementor-custom-icons.js":
/*!***************************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/elementor-custom-icons.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _customAssetsBase = _interopRequireDefault(__webpack_require__(/*! ./custom-assets-base */ "../modules/assets-manager/assets/js/admin/custom-assets-base.js"));

var _elementorProDropzone = _interopRequireDefault(__webpack_require__(/*! ./fields/elementor-pro-dropzone */ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-dropzone.js"));

var CustomIcons = /*#__PURE__*/function (_CustomAssetsBase) {
  (0, _inherits2.default)(CustomIcons, _CustomAssetsBase);

  var _super = (0, _createSuper2.default)(CustomIcons);

  function CustomIcons() {
    (0, _classCallCheck2.default)(this, CustomIcons);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(CustomIcons, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        fields: {
          dropzone: _elementorProDropzone.default
        },
        classes: {
          editPageClass: 'post-type-elementor_icons',
          editPhp: 'edit-php',
          hasIcons: 'elementor--has-icons'
        },
        selectors: {
          editPageClass: 'post-type-elementor_icons',
          title: '#title',
          metaboxContainer: '#elementor-custom-icons-metabox',
          metabox: '.elementor-custom-icons-metabox',
          closeHandle: 'button.handlediv',
          iconsTemplate: '#elementor-icons-template',
          dataInput: '#elementor_custom_icon_set_config',
          dropzone: '.zip_upload',
          submitDelete: '.submitdelete',
          dayInput: '#hidden_jj',
          mmInput: '#hidden_mm',
          yearInput: '#hidden_aa',
          hourInput: '#hidden_hh',
          minuteInput: '#hidden_mn',
          publishButton: '#publish',
          publishButtonSpinner: '#publishing-action > .spinner',
          submitMetabox: '#postbox-container-1',
          postForm: '#post',
          fileInput: '#zip_upload',
          iconSetConfigInput: '#elementor_custom_icon_set_config'
        },
        templates: {
          icon: '<li><div class="icon"><i class="{{icon}}"></i><div class="icon-name">{{label}}</div></div></li>',
          header: jQuery('#elementor-custom-icons-template-header').html(),
          footer: jQuery('#elementor-custom-icons-template-footer').html(),
          duplicatePrefix: jQuery('#elementor-custom-icons-template-duplicate-prefix').html()
        },
        notice: ElementorProConfig.i18n.fontsUploadEmptyNotice
      };
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var elements = {},
          selectors = this.getSettings('selectors');
      jQuery.each(selectors, function (element, selector) {
        elements['$' + element] = jQuery(selector);
      });
      return elements;
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(CustomIcons.prototype), "bindEvents", this).call(this);

      if ('' !== this.getData()) {
        this.bindOnTitleChange();
      }
    }
  }, {
    key: "bindOnTitleChange",
    value: function bindOnTitleChange() {
      var _this = this;

      var $title = this.elements.$title,
          onTitleInput = function onTitleInput(event) {
        return _this.onTitleInput(event);
      };

      $title.on('input change', onTitleInput);
    }
  }, {
    key: "removeCloseHandle",
    value: function removeCloseHandle() {
      var $metaboxContainer = this.elements.$metaboxContainer;
      $metaboxContainer.find('h2').remove();
      $metaboxContainer.find('button').remove();
      $metaboxContainer.removeClass('closed').removeClass('postbox');
    }
  }, {
    key: "prepareIconName",
    value: function prepareIconName(icon) {
      var iconName = icon.replace('_', ' ').replace('-', ' ');
      return elementorCommon.helpers.upperCaseWords(iconName);
    }
  }, {
    key: "getCreatedOn",
    value: function getCreatedOn() {
      var _this$elements = this.elements,
          $dayInput = _this$elements.$dayInput,
          $mmInput = _this$elements.$mmInput,
          $yearInput = _this$elements.$yearInput,
          $hourInput = _this$elements.$hourInput,
          $minuteInput = _this$elements.$minuteInput;
      return {
        day: $dayInput.val(),
        mm: $mmInput.val(),
        year: $yearInput.val(),
        hour: $hourInput.val(),
        minute: $minuteInput.val()
      };
    }
  }, {
    key: "enqueueCSS",
    value: function enqueueCSS(url) {
      if (!elementorCommon.elements.$document.find('link[href="' + url + '"]').length) {
        elementorCommon.elements.$document.find('link').last().after('<link href="' + url + '" rel="stylesheet" type="text/css">');
      }
    }
  }, {
    key: "setData",
    value: function setData(data) {
      this.elements.$dataInput.val((0, _stringify.default)(data));
    }
  }, {
    key: "getData",
    value: function getData() {
      var value = this.elements.$dataInput.val();
      return '' === value ? '' : JSON.parse(value);
    }
  }, {
    key: "renderIconList",
    value: function renderIconList(config) {
      var _this2 = this;

      var iconTemplate = this.getSettings('templates.icon');
      return config.icons.map(function (icon) {
        var data = {
          icon: config.displayPrefix + ' ' + config.prefix + icon,
          label: _this2.prepareIconName(icon)
        };
        return elementorCommon.compileTemplate(iconTemplate, data);
      }).join('\n');
    }
  }, {
    key: "renderIcons",
    value: function renderIcons(config) {
      var _this$elements2 = this.elements,
          $metaboxContainer = _this$elements2.$metaboxContainer,
          $metabox = _this$elements2.$metabox,
          $submitMetabox = _this$elements2.$submitMetabox;

      var _this$getSettings = this.getSettings('templates'),
          header = _this$getSettings.header,
          footer = _this$getSettings.footer;

      $metaboxContainer.addClass(this.getSettings('classes.hasIcons'));
      $submitMetabox.show();
      this.setData(config);
      this.enqueueCSS(config.url);
      $metabox.html('');
      $metaboxContainer.prepend(elementorCommon.compileTemplate(header, config));
      $metabox.append('<ul>' + this.renderIconList(config) + '</ul>');
      $metaboxContainer.append(elementorCommon.compileTemplate(footer, this.getCreatedOn()));
    }
  }, {
    key: "onTitleInput",
    value: function onTitleInput(event) {
      var data = this.getData();
      data.label = event.target.value;
      this.setData(data);
    }
  }, {
    key: "checkInputsForValues",
    value: function checkInputsForValues() {
      // If creating new icon set - check the file input for a value
      // If editing an existing icon set - check the icon set config input for a value
      if ('' !== this.elements.$fileInput.val() || '' !== this.elements.$iconSetConfigInput.val()) {
        return true;
      }

      return false;
    }
  }, {
    key: "onSuccess",
    value: function onSuccess(data) {
      var _this3 = this;

      // it is possible to add a `dropzoneElement` param to this method for implementing upload progress bar
      if (data.data.errors) {
        var id, message;
        jQuery.each(data.data.errors, function (errorId, errorMessage) {
          id = errorId;
          message = errorMessage;
          return false;
        });
        return this.showAlertDialog(id, message);
      }

      if (data.data.config.duplicate_prefix) {
        delete data.data.config.duplicatePrefix;
        return this.showAlertDialog('duplicate-prefix', this.getSettings('templates.duplicatePrefix'), function () {
          return _this3.saveInitialUpload(data.data.config);
        });
      }

      this.saveInitialUpload(data.data.config);
    }
  }, {
    key: "saveInitialUpload",
    value: function saveInitialUpload(config) {
      this.setData(config);
      var _this$elements3 = this.elements,
          $publishButton = _this$elements3.$publishButton,
          $title = _this$elements3.$title,
          $submitMetabox = _this$elements3.$submitMetabox;
      $submitMetabox.show();

      if ('' === $title.val()) {
        $title.val(config.name);
      }

      this.fileWasUploaded = true; // Flag to prevent infinite loop in the handleSubmit() method

      $publishButton.trigger('click');
    }
  }, {
    key: "onInit",
    value: function onInit() {
      var _this4 = this;

      var $body = elementorCommon.elements.$body,
          _this$getSettings2 = this.getSettings('classes'),
          editPageClass = _this$getSettings2.editPageClass,
          editPhp = _this$getSettings2.editPhp;

      if (!$body.hasClass(editPageClass) || $body.hasClass(editPhp)) {
        return;
      }

      (0, _get2.default)((0, _getPrototypeOf2.default)(CustomIcons.prototype), "onInit", this).call(this);
      this.removeCloseHandle();
      var dropzoneFieldClass = this.getSettings('fields.dropzone'),
          dropzoneField = new dropzoneFieldClass(),
          config = this.getData(),
          _this$elements4 = this.elements,
          $dropzone = _this$elements4.$dropzone,
          $metaboxContainer = _this$elements4.$metaboxContainer;

      if ('' === config) {
        $dropzone.show('fast');
        dropzoneField.setSettings('onSuccess', function () {
          return _this4.onSuccess.apply(_this4, arguments);
        });
      } else {
        this.renderIcons(config);
      }

      $metaboxContainer.show('fast');
    }
  }]);
  return CustomIcons;
}(_customAssetsBase.default);

var _default = CustomIcons;
exports.default = _default;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/elementor-font-manager.js":
/*!***************************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/elementor-font-manager.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

__webpack_require__(/*! core-js/modules/es6.array.slice.js */ "../node_modules/core-js/modules/es6.array.slice.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _customAssetsBase = _interopRequireDefault(__webpack_require__(/*! ./custom-assets-base */ "../modules/assets-manager/assets/js/admin/custom-assets-base.js"));

var _elementorProUpload = _interopRequireDefault(__webpack_require__(/*! ./fields/elementor-pro-upload */ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-upload.js"));

var _elementorProRepeater = _interopRequireDefault(__webpack_require__(/*! ./fields/elementor-pro-repeater */ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-repeater.js"));

var CustomFontsManager = /*#__PURE__*/function (_CustomAssetsBase) {
  (0, _inherits2.default)(CustomFontsManager, _CustomAssetsBase);

  var _super = (0, _createSuper2.default)(CustomFontsManager);

  function CustomFontsManager() {
    (0, _classCallCheck2.default)(this, CustomFontsManager);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(CustomFontsManager, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        fields: {
          upload: _elementorProUpload.default,
          repeater: _elementorProRepeater.default
        },
        selectors: {
          editPageClass: 'post-type-elementor_font',
          title: '#title',
          repeaterBlock: '.repeater-block',
          repeaterTitle: '.repeater-title',
          removeRowBtn: '.remove-repeater-row',
          editRowBtn: '.toggle-repeater-row',
          closeRowBtn: '.close-repeater-row',
          styleInput: '.font_style',
          weightInput: '.font_weight',
          customFontsMetaBox: '#elementor-font-custommetabox',
          closeHandle: 'button.handlediv',
          toolbar: '.elementor-field-toolbar',
          inlinePreview: '.inline-preview',
          fileUrlInput: '.elementor-field-file input[type="text"]',
          postForm: '#post',
          publishButton: '#publish',
          publishButtonSpinner: '#publishing-action > .spinner'
        },
        notice: ElementorProConfig.i18n.fontsUploadEmptyNotice,
        fontLabelTemplate: '<ul class="row-font-label">' + '<li class="row-font-weight">{{weight}}</li>' + '<li class="row-font-style">{{style}}</li>' + '<li class="row-font-preview">{{preview}}</li>' + '{{toolbar}}' + '</ul>'
      };
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var selectors = this.getSettings('selectors');
      return {
        $postForm: jQuery(selectors.postForm),
        $publishButton: jQuery(selectors.publishButton),
        $publishButtonSpinner: jQuery(selectors.publishButtonSpinner),
        $closeHandle: jQuery(selectors.closeHandle),
        $customFontsMetaBox: jQuery(selectors.customFontsMetaBox),
        $title: jQuery(selectors.title)
      };
    }
  }, {
    key: "renderTemplate",
    value: function renderTemplate(tpl, data) {
      var re = /{{([^}}]+)?}}/g;
      var match;

      while (match = re.exec(tpl)) {
        // eslint-disable-line no-cond-assign
        tpl = tpl.replace(match[0], data[match[1]]);
      }

      return tpl;
    }
  }, {
    key: "ucFirst",
    value: function ucFirst(string) {
      return string.charAt(0).toUpperCase() + string.slice(1);
    }
  }, {
    key: "getPreviewStyle",
    value: function getPreviewStyle($table) {
      var selectors = this.getSettings('selectors'),
          fontFamily = this.elements.$title.val(),
          style = $table.find('select' + selectors.styleInput).first().val(),
          weight = $table.find('select' + selectors.weightInput).first().val();
      return {
        style: this.ucFirst(style),
        weight: this.ucFirst(weight),
        styleAttribute: 'font-family: ' + fontFamily + ' ;font-style: ' + style + '; font-weight: ' + weight + ';'
      };
    }
  }, {
    key: "updateRowLabel",
    value: function updateRowLabel(event, $table) {
      var selectors = this.getSettings('selectors'),
          fontLabelTemplate = this.getSettings('fontLabelTemplate'),
          $block = $table.closest(selectors.repeaterBlock),
          $deleteBtn = $block.find(selectors.removeRowBtn).first(),
          $editBtn = $block.find(selectors.editRowBtn).first(),
          $closeBtn = $block.find(selectors.closeRowBtn).first(),
          $toolbar = $table.find(selectors.toolbar).last().clone(),
          previewStyle = this.getPreviewStyle($table);

      if ($editBtn.length > 0) {
        $editBtn.not(selectors.toolbar + ' ' + selectors.editRowBtn).remove();
      }

      if ($closeBtn.length > 0) {
        $closeBtn.not(selectors.toolbar + ' ' + selectors.closeRowBtn).remove();
      }

      if ($deleteBtn.length > 0) {
        $deleteBtn.not(selectors.toolbar + ' ' + selectors.removeRowBtn).remove();
      }

      var toolbarHtml = jQuery('<li class="row-font-actions">').append($toolbar)[0].outerHTML;
      return this.renderTemplate(fontLabelTemplate, {
        weight: '<span class="label">Weight:</span>' + previewStyle.weight,
        style: '<span class="label">Style:</span>' + previewStyle.style,
        preview: '<span style="' + previewStyle.styleAttribute + '">Elementor is making the web beautiful</span>',
        toolbar: toolbarHtml
      });
    }
  }, {
    key: "onRepeaterToggleVisible",
    value: function onRepeaterToggleVisible(event, $btn, $table) {
      var selectors = this.getSettings('selectors'),
          $previewElement = $table.find(selectors.inlinePreview),
          previewStyle = this.getPreviewStyle($table);
      $previewElement.attr('style', previewStyle.styleAttribute);
    }
  }, {
    key: "onRepeaterNewRow",
    value: function onRepeaterNewRow(event, $btn, $block) {
      var selectors = this.getSettings('selectors');
      $block.find(selectors.removeRowBtn).first().remove();
      $block.find(selectors.editRowBtn).first().remove();
      $block.find(selectors.closeRowBtn).first().remove();
    }
  }, {
    key: "maybeToggle",
    value: function maybeToggle(event) {
      event.preventDefault();
      var selectors = this.getSettings('selectors');

      if (jQuery(this).is(':visible') && !jQuery(event.target).hasClass(selectors.editRowBtn)) {
        jQuery(this).find(selectors.editRowBtn).trigger('click');
      }
    }
  }, {
    key: "onInputChange",
    value: function onInputChange(event) {
      var $el = jQuery(event.target).next(),
          fields = this.getSettings('fields');
      fields.upload.setFields($el);
      fields.upload.setLabels($el);
      fields.upload.replaceButtonClass($el);
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      var selectors = this.getSettings('selectors');
      jQuery(document).on('repeaterComputedLabel', this.updateRowLabel.bind(this)).on('onRepeaterToggleVisible', this.onRepeaterToggleVisible.bind(this)).on('onRepeaterNewRow', this.onRepeaterNewRow.bind(this)).on('click', selectors.repeaterTitle, this.maybeToggle.bind(this)).on('input', selectors.fileUrlInput, this.onInputChange.bind(this));
      (0, _get3.default)((0, _getPrototypeOf2.default)(CustomFontsManager.prototype), "bindEvents", this).call(this);
    }
  }, {
    key: "checkInputsForValues",
    value: function checkInputsForValues() {
      var selectors = this.getSettings('selectors');
      var hasValue = false; // Check the file inputs for a value

      jQuery(selectors.fileUrlInput).each(function (index, element) {
        if ('' !== jQuery(element).val()) {
          hasValue = true;
          return false; // If a value was found, break the loop
        }
      });
      return hasValue;
    }
  }, {
    key: "removeCloseHandle",
    value: function removeCloseHandle() {
      this.elements.$closeHandle.remove();
      this.elements.$customFontsMetaBox.removeClass('closed').removeClass('postbox');
    }
  }, {
    key: "titleRequired",
    value: function titleRequired() {
      this.elements.$title.prop('required', true);
    }
  }, {
    key: "onInit",
    value: function onInit() {
      var _get2;

      var settings = this.getSettings();

      if (!jQuery('body').hasClass(settings.selectors.editPageClass)) {
        return;
      }

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      (_get2 = (0, _get3.default)((0, _getPrototypeOf2.default)(CustomFontsManager.prototype), "onInit", this)).call.apply(_get2, [this].concat(args));

      this.removeCloseHandle();
      this.titleRequired();
      settings.fields.upload.init();
      settings.fields.repeater.init();
    }
  }]);
  return CustomFontsManager;
}(_customAssetsBase.default);

exports.default = CustomFontsManager;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-dropzone.js":
/*!**********************************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/fields/elementor-pro-dropzone.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _entries = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/entries */ "../node_modules/@babel/runtime-corejs2/core-js/object/entries.js"));

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/get */ "../node_modules/@babel/runtime-corejs2/helpers/get.js"));

var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/getPrototypeOf */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var DropZoneField = /*#__PURE__*/function (_elementorModules$Vie) {
  (0, _inherits2.default)(DropZoneField, _elementorModules$Vie);

  var _super = (0, _createSuper2.default)(DropZoneField);

  function DropZoneField() {
    (0, _classCallCheck2.default)(this, DropZoneField);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(DropZoneField, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      var baseSelector = '.elementor-dropzone-field';
      return {
        droppedFiles: false,
        selectors: {
          dropZone: baseSelector,
          input: baseSelector + ' [type="file"]',
          label: baseSelector + 'label',
          errorMsg: baseSelector + '.box__error span',
          restart: baseSelector + '.box__restart',
          browseButton: baseSelector + ' .elementor--dropzone--upload__browse',
          postId: '#post_ID'
        },
        classes: {
          drag: 'is-dragover',
          error: 'is-error',
          success: 'is-success',
          upload: 'is-uploading'
        },
        onSuccess: null,
        onError: null
      };
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var elements = {};
      var selectors = this.getSettings('selectors');
      jQuery.each(selectors, function (element, selector) {
        elements['$' + element] = jQuery(selector);
      });
      return elements;
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      var _this = this;

      var _this$elements = this.elements,
          $dropZone = _this$elements.$dropZone,
          $browseButton = _this$elements.$browseButton,
          $input = _this$elements.$input;

      var _this$getSettings = this.getSettings('classes'),
          drag = _this$getSettings.drag;

      $browseButton.on('click', function () {
        return $input.trigger('click');
      });
      $dropZone.on('drag dragstart dragend dragover dragenter dragleave drop', function (event) {
        event.preventDefault();
        event.stopPropagation();
      }).on('dragover dragenter', function () {
        $dropZone.addClass(drag);
      }).on('dragleave dragend drop', function () {
        $dropZone.removeClass(drag);
      }).on('drop change', function (event) {
        if ('change' === event.type) {
          _this.setSettings('droppedFiles', event.originalEvent.target.files);
        } else {
          _this.setSettings('droppedFiles', event.originalEvent.dataTransfer.files);
        }

        _this.handleUpload();
      });
    }
  }, {
    key: "handleUpload",
    value: function handleUpload() {
      var _arguments = arguments;
      var droppedFiles = this.getSettings('droppedFiles');

      if (!droppedFiles) {
        return;
      }

      var _this$elements2 = this.elements,
          $input = _this$elements2.$input,
          $dropZone = _this$elements2.$dropZone,
          $postId = _this$elements2.$postId,
          $errorMsg = _this$elements2.$errorMsg,
          _this$getSettings2 = this.getSettings('classes'),
          error = _this$getSettings2.error,
          _success = _this$getSettings2.success,
          upload = _this$getSettings2.upload,
          _this$getSettings3 = this.getSettings(),
          onSuccess = _this$getSettings3.onSuccess,
          onError = _this$getSettings3.onError,
          ajaxData = new FormData(),
          fieldName = $input.attr('name'),
          actionKey = 'pro_assets_manager_custom_icon_upload',
          self = this;

      (0, _entries.default)(droppedFiles).forEach(function (file) {
        ajaxData.append(fieldName, file[1]);
      });
      ajaxData.append('actions', (0, _stringify.default)({
        pro_assets_manager_custom_icon_upload: {
          action: actionKey,
          data: {
            post_id: $postId.val()
          }
        }
      }));
      $dropZone.removeClass(_success).removeClass(error);
      elementorCommon.ajax.send('ajax', {
        data: ajaxData,
        cache: false,
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,
        //TODO: Do something with upload progress

        /*xhr: () => {
        	const xhr = jQuery.ajaxSettings.xhr();
        	xhr.upload.onprogress = ( evt ) => {
        		if ( evt.lengthComputable ) {
        			const percentComplete = Math.round( ( evt.loaded * 100 / evt.total ) );
        		}
        	};
        		return xhr;
        },*/
        complete: function complete() {
          $dropZone.removeClass(upload);
        },
        success: function success(response) {
          var data = response.responses[actionKey];
          $dropZone.addClass(data.success ? _success : error);

          if (data.success) {
            if (onSuccess) {
              onSuccess(data, self);
            }
          } else {
            $errorMsg.text(data.error);

            if (onError) {
              onError(self, _arguments);
            }
          }
        },
        error: function error() {
          if ('function' === typeof onError) {
            onError(self, _arguments);
          }
        }
      });
    }
  }, {
    key: "onInit",
    value: function onInit() {
      (0, _get2.default)((0, _getPrototypeOf2.default)(DropZoneField.prototype), "onInit", this).call(this);
      elementorCommon.elements.$document.trigger('onDropzoneLoaded', [this]);
    }
  }]);
  return DropZoneField;
}(elementorModules.ViewModule);

var _default = DropZoneField;
exports.default = _default;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-repeater.js":
/*!**********************************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/fields/elementor-pro-repeater.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

__webpack_require__(/*! core-js/modules/es6.regexp.constructor.js */ "../node_modules/core-js/modules/es6.regexp.constructor.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.regexp.to-string.js */ "../node_modules/core-js/modules/es6.regexp.to-string.js");

module.exports = {
  selectors: {
    add: '.add-repeater-row',
    remove: '.remove-repeater-row',
    toggle: '.toggle-repeater-row',
    close: '.close-repeater-row',
    sort: '.sort-repeater-row',
    table: '.form-table',
    block: '.repeater-block',
    repeaterLabel: '.repeater-title',
    repeaterField: '.elementor-field-repeater'
  },
  counters: [],
  trigger: function trigger(eventName, params) {
    jQuery(document).trigger(eventName, params);
  },
  triggerHandler: function triggerHandler(eventName, params) {
    return jQuery(document).triggerHandler(eventName, params);
  },
  countBlocks: function countBlocks($btn) {
    return $btn.closest(this.selectors.repeaterField).find(this.selectors.block).length || 0;
  },
  add: function add(btn) {
    var self = this,
        $btn = jQuery(btn),
        id = $btn.data('template-id'),
        repeaterBlock;

    if (!self.counters.hasOwnProperty(id)) {
      self.counters[id] = self.countBlocks($btn);
    }

    self.counters[id] += 1;
    repeaterBlock = jQuery('#' + id).html();
    repeaterBlock = self.replaceAll('__counter__', self.counters[id], repeaterBlock);
    $btn.before(repeaterBlock);
    self.trigger('onRepeaterNewRow', [$btn, $btn.prev()]);
  },
  remove: function remove(btn) {
    var self = this;
    jQuery(btn).closest(self.selectors.block).remove();
  },
  toggle: function toggle(btn) {
    var self = this,
        $btn = jQuery(btn),
        $table = $btn.closest(self.selectors.block).find(self.selectors.table),
        $toggleLabel = $btn.closest(self.selectors.block).find(self.selectors.repeaterLabel);
    $table.toggle(0, 'none', function () {
      if ($table.is(':visible')) {
        $table.closest(self.selectors.block).addClass('block-visible');
        self.trigger('onRepeaterToggleVisible', [$btn, $table, $toggleLabel]);
      } else {
        $table.closest(self.selectors.block).removeClass('block-visible');
        self.trigger('onRepeaterToggleHidden', [$btn, $table, $toggleLabel]);
      }
    });
    $toggleLabel.toggle(); // Update row label

    self.updateRowLabel(btn);
  },
  close: function close(btn) {
    var self = this,
        $btn = jQuery(btn),
        $table = $btn.closest(self.selectors.block).find(self.selectors.table),
        $toggleLabel = $btn.closest(self.selectors.block).find(self.selectors.repeaterLabel);
    $table.closest(self.selectors.block).removeClass('block-visible');
    $table.hide();
    self.trigger('onRepeaterToggleHidden', [$btn, $table, $toggleLabel]);
    $toggleLabel.show();
    self.updateRowLabel(btn);
  },
  updateRowLabel: function updateRowLabel(btn) {
    var self = this,
        $btn = jQuery(btn),
        $table = $btn.closest(self.selectors.block).find(self.selectors.table),
        $toggleLabel = $btn.closest(self.selectors.block).find(self.selectors.repeaterLabel);
    var selector = $toggleLabel.data('selector'); // For some browsers, `attr` is undefined; for others,  `attr` is false.  Check for both.

    if ((0, _typeof2.default)(selector) !== ( true ? "undefined" : 0) && false !== selector) {
      var value = false,
          std = $toggleLabel.data('default');

      if ($table.find(selector).length) {
        value = $table.find(selector).val();
      } //filter hook


      var computedLabel = self.triggerHandler('repeaterComputedLabel', [$table, $toggleLabel, value]); // For some browsers, `attr` is undefined; for others,  `attr` is false.  Check for both.

      if (undefined !== computedLabel && false !== computedLabel) {
        value = computedLabel;
      } // Fallback to default row label


      if (undefined === value || false === value) {
        value = std;
      }

      $toggleLabel.html(value);
    }
  },
  replaceAll: function replaceAll(search, replace, string) {
    return string.replace(new RegExp(search, 'g'), replace);
  },
  init: function init() {
    var self = this;
    jQuery(document).on('click', this.selectors.add, function (event) {
      event.preventDefault();
      self.add(jQuery(this), event);
    }).on('click', this.selectors.remove, function (event) {
      event.preventDefault(); // eslint-disable-next-line no-alert

      var result = confirm(jQuery(this).data('confirm').toString());

      if (!result) {
        return;
      }

      self.remove(jQuery(this), event);
    }).on('click', this.selectors.toggle, function (event) {
      event.preventDefault();
      event.stopPropagation();
      self.toggle(jQuery(this), event);
    }).on('click', this.selectors.close, function (event) {
      event.preventDefault();
      event.stopPropagation();
      self.close(jQuery(this), event);
    });
    jQuery(this.selectors.toggle).each(function () {
      self.updateRowLabel(jQuery(this));
    });
    this.trigger('onRepeaterLoaded', [this]);
  }
};

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/fields/elementor-pro-upload.js":
/*!********************************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/fields/elementor-pro-upload.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

__webpack_require__(/*! core-js/modules/es6.regexp.split.js */ "../node_modules/core-js/modules/es6.regexp.split.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

module.exports = {
  $btn: null,
  fileId: null,
  fileUrl: null,
  fileFrame: [],
  selectors: {
    uploadBtnClass: 'elementor-upload-btn',
    clearBtnClass: 'elementor-upload-clear-btn',
    uploadBtn: '.elementor-upload-btn',
    clearBtn: '.elementor-upload-clear-btn',
    inputURLField: '.elementor-field-file input[type="text"]'
  },
  hasValue: function hasValue() {
    return '' !== jQuery(this.fileUrl).val();
  },
  setLabels: function setLabels($el) {
    if (!this.hasValue()) {
      $el.val($el.data('upload_text'));
    } else {
      $el.val($el.data('remove_text'));
    }
  },
  setFields: function setFields(el) {
    var self = this;
    self.fileUrl = jQuery(el).prev();
    self.fileId = jQuery(self.fileUrl).prev();
  },
  setUploadParams: function setUploadParams(ext, name) {
    var uploader = this.fileFrame[name].uploader.uploader;
    uploader.param('uploadType', ext);
    uploader.param('uploadTypeCaller', 'elementor-admin-font-upload');
    uploader.param('post_id', this.getPostId());
  },
  setUploadMimeType: function setUploadMimeType(frame, ext) {
    // Set {ext} as only allowed upload extensions
    var oldExtensions = _wpPluploadSettings.defaults.filters.mime_types[0].extensions,
        self = this;
    frame.on('ready', function () {
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = ext;
    });
    frame.on('close', function () {
      // restore allowed upload extensions
      _wpPluploadSettings.defaults.filters.mime_types[0].extensions = oldExtensions;
      self.replaceButtonClass(self.$btn);
    });
  },
  replaceButtonClass: function replaceButtonClass(el) {
    if (this.hasValue()) {
      jQuery(el).removeClass(this.selectors.uploadBtnClass).addClass(this.selectors.clearBtnClass);
    } else {
      jQuery(el).removeClass(this.selectors.clearBtnClass).addClass(this.selectors.uploadBtnClass);
    }

    this.setLabels(el);
  },
  uploadFile: function uploadFile(el) {
    var _this = this;

    var self = this,
        $el = jQuery(el),
        mime = $el.attr('data-mime_type') || '',
        ext = $el.attr('data-ext') || false,
        name = $el.attr('id'); // If the media frame already exists, reopen it.

    if ('undefined' !== typeof self.fileFrame[name]) {
      if (ext) {
        self.setUploadParams(ext, name);
      }

      self.fileFrame[name].open();
      return;
    } // Create the media frame.


    self.fileFrame[name] = wp.media({
      library: {
        type: [].concat((0, _toConsumableArray2.default)(mime.split(',')), [mime.split(',').join('')])
      },
      title: $el.data('box_title'),
      button: {
        text: $el.data('box_action')
      },
      multiple: false
    }); // When an file is selected, run a callback.

    self.fileFrame[name].on('select', function () {
      // We set multiple to false so only get one image from the uploader
      var attachment = self.fileFrame[name].state().get('selection').first().toJSON(); // Do something with attachment.id and/or attachment.url here

      jQuery(self.fileId).val(attachment.id);
      jQuery(self.fileUrl).val(attachment.url);
      self.replaceButtonClass(el);
      self.updatePreview(el);
    });
    self.fileFrame[name].on('open', function () {
      var selectedId = _this.fileId.val();

      if (!selectedId) {
        return;
      }

      var selection = self.fileFrame[name].state().get('selection');
      selection.add(wp.media.attachment(selectedId));
    });
    self.setUploadMimeType(self.fileFrame[name], ext); // Finally, open the modal

    self.fileFrame[name].open();

    if (ext) {
      self.setUploadParams(ext, name);
    }
  },
  updatePreview: function updatePreview(el) {
    var self = this,
        $ul = jQuery(el).parent().find('ul'),
        $li = jQuery('<li>'),
        showUrlType = jQuery(el).data('preview_anchor') || 'full';
    $ul.html('');

    if (self.hasValue() && 'none' !== showUrlType) {
      var anchor = jQuery(self.fileUrl).val();

      if ('full' !== showUrlType) {
        anchor = anchor.substring(anchor.lastIndexOf('/') + 1);
      }

      $li.html('<a href="' + jQuery(self.fileUrl).val() + '" download>' + anchor + '</a>');
      $ul.append($li);
    }
  },
  setup: function setup() {
    var self = this;
    jQuery(self.selectors.uploadBtn + ', ' + self.selectors.clearBtn).each(function () {
      self.setFields(jQuery(this));
      self.updatePreview(jQuery(this));
      self.setLabels(jQuery(this));
      self.replaceButtonClass(jQuery(this));
    });
  },
  getPostId: function getPostId() {
    return jQuery('#post_ID').val();
  },
  handleUploadClick: function handleUploadClick(event) {
    event.preventDefault();
    var $element = jQuery(event.target);

    if ('text' === $element.attr('type')) {
      return $element.next().removeClass(this.selectors.clearBtnClass).addClass(this.selectors.uploadBtnClass).trigger('click');
    }

    this.$btn = $element;
    this.setFields($element);
    this.uploadFile($element);
  },
  init: function init() {
    var _this2 = this;

    var self = this,
        _this$selectors = this.selectors,
        uploadBtn = _this$selectors.uploadBtn,
        inputURLField = _this$selectors.inputURLField,
        clearBtn = _this$selectors.clearBtn,
        handleUpload = function handleUpload(event) {
      return _this2.handleUploadClick(event);
    };

    jQuery(document).on('click', uploadBtn, handleUpload);
    jQuery(document).on('click', inputURLField, function (event) {
      if ('' !== event.target.value) {
        handleUpload(event);
      }
    });
    jQuery(document).on('click', clearBtn, function (event) {
      event.preventDefault();
      var $element = jQuery(this);
      self.setFields($element);
      jQuery(self.fileUrl).val('');
      jQuery(self.fileId).val('');
      self.updatePreview($element);
      self.replaceButtonClass($element);
    });
    this.setup();
    jQuery(document).on('onRepeaterNewRow', function () {
      self.setup();
    });
  }
};

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/font-awesome-pro.js":
/*!*********************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/font-awesome-pro.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _default = /*#__PURE__*/function (_elementorModules$Vie) {
  (0, _inherits2.default)(_default, _elementorModules$Vie);

  var _super = (0, _createSuper2.default)(_default);

  function _default() {
    (0, _classCallCheck2.default)(this, _default);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(_default, [{
    key: "getDefaultSettings",
    value: function getDefaultSettings() {
      return {
        selectors: {
          button: '#elementor_pro_fa_pro_validate_button',
          kitIdField: '#elementor_font_awesome_pro_kit_id'
        }
      };
    }
  }, {
    key: "getDefaultElements",
    value: function getDefaultElements() {
      var elements = {};
      var selectors = this.getSettings('selectors');
      jQuery.each(selectors, function (element, selector) {
        elements['$' + element] = jQuery(selector);
      });
      return elements;
    }
  }, {
    key: "bindEvents",
    value: function bindEvents() {
      var _this = this;

      var _this$elements = this.elements,
          $button = _this$elements.$button,
          $kitIdField = _this$elements.$kitIdField;
      $button.on('click', function (event) {
        event.preventDefault();

        _this.testKitUrl();
      });
      $kitIdField.on('change', function () {
        _this.setState('clear');
      });
    }
  }, {
    key: "setState",
    value: function setState(type) {
      var classes = ['loading', 'success', 'error'],
          $button = this.elements.$button;
      var currentClass, classIndex;

      for (classIndex in classes) {
        currentClass = classes[classIndex];

        if (type === currentClass) {
          $button.addClass(currentClass);
        } else {
          $button.removeClass(currentClass);
        }
      }
    }
  }, {
    key: "testKitUrl",
    value: function testKitUrl() {
      this.setState('loading');
      var self = this,
          kitID = this.elements.$kitIdField.val();

      if ('' === kitID) {
        this.setState('clear');
        return;
      }

      jQuery.ajax({
        url: 'https://kit.fontawesome.com/' + kitID + '.js',
        method: 'GET',
        complete: function complete(xhr) {
          if (200 !== xhr.status) {
            self.setState('error');
          } else {
            self.setState('success');
          }
        }
      });
    }
  }]);
  return _default;
}(elementorModules.ViewModule);

exports.default = _default;

/***/ }),

/***/ "../modules/assets-manager/assets/js/admin/typekit.js":
/*!************************************************************!*\
  !*** ../modules/assets-manager/assets/js/admin/typekit.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

module.exports = function () {
  var self = this;

  self.cacheElements = function () {
    this.cache = {
      $button: jQuery('#elementor_pro_typekit_validate_button'),
      $kitIdField: jQuery('#elementor_typekit-kit-id'),
      $dataLabelSpan: jQuery('.elementor-pro-typekit-data')
    };
  };

  self.bindEvents = function () {
    this.cache.$button.on('click', function (event) {
      event.preventDefault();
      self.fetchFonts();
    });
    this.cache.$kitIdField.on('change', function () {
      self.setState('clear');
    });
  };

  self.fetchFonts = function () {
    this.setState('loading');
    this.cache.$dataLabelSpan.addClass('hidden');
    var kitID = this.cache.$kitIdField.val();

    if ('' === kitID) {
      this.setState('clear');
      return;
    }

    jQuery.post(ajaxurl, {
      action: 'elementor_pro_admin_fetch_fonts',
      kit_id: kitID,
      _nonce: self.cache.$button.data('nonce')
    }).done(function (data) {
      if (data.success) {
        var template = self.cache.$button.data('found');
        template = template.replace('{{count}}', data.data.count);
        self.cache.$dataLabelSpan.html(template).removeClass('hidden');
        self.setState('success');
      } else {
        self.setState('error');
      }
    }).fail(function () {
      self.setState();
    });
  };

  self.setState = function (type) {
    var classes = ['loading', 'success', 'error'],
        currentClass,
        classIndex;

    for (classIndex in classes) {
      currentClass = classes[classIndex];

      if (type === currentClass) {
        this.cache.$button.addClass(currentClass);
      } else {
        this.cache.$button.removeClass(currentClass);
      }
    }
  };

  self.init = function () {
    this.cacheElements();
    this.bindEvents();
  };

  self.init();
};

/***/ }),

/***/ "../modules/forms/assets/js/admin.js":
/*!*******************************************!*\
  !*** ../modules/forms/assets/js/admin.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = function () {
  var ApiValidations = __webpack_require__(/*! ./admin/api-validations */ "../modules/forms/assets/js/admin/api-validations.js");

  this.dripButton = new ApiValidations('drip_api_token');
  this.getResponse = new ApiValidations('getresponse_api_key');
  this.convertKit = new ApiValidations('convertkit_api_key');
  this.mailChimp = new ApiValidations('mailchimp_api_key');
  this.mailerLite = new ApiValidations('mailerlite_api_key');
  this.activeCcampaign = new ApiValidations('activecampaign_api_key', 'activecampaign_api_url');
};

/***/ }),

/***/ "../modules/forms/assets/js/admin/api-validations.js":
/*!***********************************************************!*\
  !*** ../modules/forms/assets/js/admin/api-validations.js ***!
  \***********************************************************/
/***/ ((module) => {

"use strict";


module.exports = function (key, fieldID) {
  var self = this;

  self.cacheElements = function () {
    this.cache = {
      $button: jQuery('#elementor_pro_' + key + '_button'),
      $apiKeyField: jQuery('#elementor_pro_' + key),
      $apiUrlField: jQuery('#elementor_pro_' + fieldID)
    };
  };

  self.bindEvents = function () {
    this.cache.$button.on('click', function (event) {
      event.preventDefault();
      self.validateApi();
    });
    this.cache.$apiKeyField.on('change', function () {
      self.setState('clear');
    });
  };

  self.validateApi = function () {
    this.setState('loading');
    var apiKey = this.cache.$apiKeyField.val();

    if ('' === apiKey) {
      this.setState('clear');
      return;
    }

    if (this.cache.$apiUrlField.length && '' === this.cache.$apiUrlField.val()) {
      this.setState('clear');
      return;
    }

    jQuery.post(ajaxurl, {
      action: self.cache.$button.data('action'),
      api_key: apiKey,
      api_url: this.cache.$apiUrlField.val(),
      _nonce: self.cache.$button.data('nonce')
    }).done(function (data) {
      if (data.success) {
        self.setState('success');
      } else {
        self.setState('error');
      }
    }).fail(function () {
      self.setState();
    });
  };

  self.setState = function (type) {
    var classes = ['loading', 'success', 'error'],
        currentClass,
        classIndex;

    for (classIndex in classes) {
      currentClass = classes[classIndex];

      if (type === currentClass) {
        this.cache.$button.addClass(currentClass);
      } else {
        this.cache.$button.removeClass(currentClass);
      }
    }
  };

  self.init = function () {
    this.cacheElements();
    this.bindEvents();
  };

  self.init();
};

/***/ }),

/***/ "../modules/library/assets/js/admin.js":
/*!*********************************************!*\
  !*** ../modules/library/assets/js/admin.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = function () {
  var EditButton = __webpack_require__(/*! ./admin/edit-button */ "../modules/library/assets/js/admin/edit-button.js");

  this.editButton = new EditButton();
};

/***/ }),

/***/ "../modules/library/assets/js/admin/edit-button.js":
/*!*********************************************************!*\
  !*** ../modules/library/assets/js/admin/edit-button.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = function () {
  var self = this;

  self.init = function () {
    jQuery(document).on('change', '.elementor-widget-template-select', function () {
      var $this = jQuery(this),
          templateID = $this.val(),
          $editButton = $this.parents('p').find('.elementor-edit-template'),
          type = $this.find('[value="' + templateID + '"]').data('type');

      if ('page' !== type) {
        // 'widget' is editable only from Elementor page
        $editButton.hide();
        return;
      }

      var editUrl = ElementorProConfig.i18n.home_url + '?p=' + templateID + '&elementor';
      $editButton.prop('href', editUrl).show();
    });
  };

  self.init();
};

/***/ }),

/***/ "../modules/role-manager/assets/js/admin.js":
/*!**************************************************!*\
  !*** ../modules/role-manager/assets/js/admin.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = function () {
  var AdvancedRoleManager = __webpack_require__(/*! ./admin/role-mananger */ "../modules/role-manager/assets/js/admin/role-mananger.js");

  this.advancedRoleManager = new AdvancedRoleManager();
};

/***/ }),

/***/ "../modules/role-manager/assets/js/admin/role-mananger.js":
/*!****************************************************************!*\
  !*** ../modules/role-manager/assets/js/admin/role-mananger.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = function () {
  var self = this;

  self.cacheElements = function () {
    this.cache = {
      $checkBox: jQuery('input[name="elementor_exclude_user_roles[]"]'),
      $advanced: jQuery('#elementor_advanced_role_manager')
    };
  };

  self.bindEvents = function () {
    this.cache.$checkBox.on('change', function (event) {
      event.preventDefault();
      self.checkBoxUpdate(jQuery(this));
    });
  };

  self.checkBoxUpdate = function ($element) {
    var role = $element.val();

    if ($element.is(':checked')) {
      self.cache.$advanced.find('div.' + role).addClass('hidden');
    } else {
      self.cache.$advanced.find('div.' + role).removeClass('hidden');
    }
  };

  self.init = function () {
    if (!jQuery('body').hasClass('elementor_page_elementor-role-manager')) {
      return;
    }

    this.cacheElements();
    this.bindEvents();
  };

  self.init();
};

/***/ }),

/***/ "../modules/theme-builder/assets/js/admin/admin.js":
/*!*********************************************************!*\
  !*** ../modules/theme-builder/assets/js/admin/admin.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


module.exports = function () {
  var CreateTemplateDialog = __webpack_require__(/*! ./create-template-dialog */ "../modules/theme-builder/assets/js/admin/create-template-dialog.js");

  this.createTemplateDialog = new CreateTemplateDialog();
};

/***/ }),

/***/ "../modules/theme-builder/assets/js/admin/create-template-dialog.js":
/*!**************************************************************************!*\
  !*** ../modules/theme-builder/assets/js/admin/create-template-dialog.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

module.exports = function () {
  var selectors = {
    templateTypeInput: '#elementor-new-template__form__template-type',
    locationWrapper: '#elementor-new-template__form__location__wrapper',
    postTypeWrapper: '#elementor-new-template__form__post-type__wrapper'
  };
  var elements = {
    $templateTypeInput: null,
    $locationWrapper: null,
    $postTypeWrapper: null
  };

  var setElements = function setElements() {
    jQuery.each(selectors, function (key, selector) {
      key = '$' + key;
      elements[key] = elementorNewTemplate.layout.getModal().getElements('content').find(selector);
    });
  };

  var setLocationFieldVisibility = function setLocationFieldVisibility() {
    elements.$locationWrapper.toggle('section' === elements.$templateTypeInput.val());
    elements.$postTypeWrapper.toggle('single' === elements.$templateTypeInput.val());
  };

  var run = function run() {
    setElements();
    setLocationFieldVisibility();
    elements.$templateTypeInput.on('change', setLocationFieldVisibility);
  };

  this.init = function () {
    if (!window.elementorNewTemplate) {
      return;
    } // Make sure the modal has already been initialized


    elementorNewTemplate.layout.getModal();
    run();
  };

  jQuery(setTimeout.bind(window, this.init));
};

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/json/stringify.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/json/stringify.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js");
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
  return $JSON.stringify.apply($JSON, arguments);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/entries.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/entries.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.entries */ "../node_modules/core-js/library/modules/es7.object.entries.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.entries;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/get.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/get.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.get */ "../node_modules/core-js/library/modules/es6.reflect.get.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.get;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-to-array.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-to-array.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var isEnum = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f;
module.exports = function (isEntries) {
  return function (it) {
    var O = toIObject(it);
    var keys = getKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || isEnum.call(O, key)) {
        result.push(isEntries ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.get.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.get.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.6 Reflect.get(target, propertyKey [, receiver])
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");

function get(target, propertyKey /* , receiver */) {
  var receiver = arguments.length < 3 ? target : arguments[2];
  var desc, proto;
  if (anObject(target) === receiver) return target[propertyKey];
  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
    ? desc.value
    : desc.get !== undefined
      ? desc.get.call(receiver)
      : undefined;
  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
}

$export($export.S, 'Reflect', { get: get });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.entries.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.entries.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $entries = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(true);

$export($export.S, 'Object', {
  entries: function entries(it) {
    return $entries(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_advance-string-index.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_advance-string-index.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/modules/_string-at.js")(true);

 // `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? at(S, index).length : 1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_enum-bug-keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_enum-bug-keys.js ***!
  \*********************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fix-re-wks.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_fix-re-wks.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.exec */ "../node_modules/core-js/modules/es6.regexp.exec.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");

var SPECIES = wks('species');

var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
  // #replace needs built-in support for named groups.
  // #match works fine because it just return the exec results, even if it has
  // a "grops" property.
  var re = /./;
  re.exec = function () {
    var result = [];
    result.groups = { a: '7' };
    return result;
  };
  return ''.replace(re, '$<a>') !== '7';
});

var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
  var re = /(?:)/;
  var originalExec = re.exec;
  re.exec = function () { return originalExec.apply(this, arguments); };
  var result = 'ab'.split(re);
  return result.length === 2 && result[0] === 'a' && result[1] === 'b';
})();

module.exports = function (KEY, length, exec) {
  var SYMBOL = wks(KEY);

  var DELEGATES_TO_SYMBOL = !fails(function () {
    // String methods call symbol-named RegEp methods
    var O = {};
    O[SYMBOL] = function () { return 7; };
    return ''[KEY](O) != 7;
  });

  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
    // Symbol-named RegExp methods call .exec
    var execCalled = false;
    var re = /a/;
    re.exec = function () { execCalled = true; return null; };
    if (KEY === 'split') {
      // RegExp[@@split] doesn't call the regex's exec method, but first creates
      // a new one. We need to return the patched regex when creating the new one.
      re.constructor = {};
      re.constructor[SPECIES] = function () { return re; };
    }
    re[SYMBOL]('');
    return !execCalled;
  }) : undefined;

  if (
    !DELEGATES_TO_SYMBOL ||
    !DELEGATES_TO_EXEC ||
    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
  ) {
    var nativeRegExpMethod = /./[SYMBOL];
    var fns = exec(
      defined,
      SYMBOL,
      ''[KEY],
      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
        if (regexp.exec === regexpExec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            // The native String method already delegates to @@method (this
            // polyfilled function), leasing to infinite recursion.
            // We avoid it by directly calling the native @@method method.
            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
          }
          return { done: true, value: nativeMethod.call(str, regexp, arg2) };
        }
        return { done: false };
      }
    );
    var strfn = fns[0];
    var rxfn = fns[1];

    redefine(String.prototype, KEY, strfn);
    hide(RegExp.prototype, SYMBOL, length == 2
      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
      ? function (string, arg) { return rxfn.call(string, this, arg); }
      // 21.2.5.6 RegExp.prototype[@@match](string)
      // 21.2.5.9 RegExp.prototype[@@search](string)
      : function (string) { return rxfn.call(string, this); }
    );
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_flags.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_flags.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 21.2.5.3 get RegExp.prototype.flags
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_html.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_html.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_inherit-if-required.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/_inherit-if-required.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var setPrototypeOf = __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/modules/_set-proto.js").set;
module.exports = function (that, target, C) {
  var S = target.constructor;
  var P;
  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
    setPrototypeOf(that, P);
  } return that;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-regexp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-regexp.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-gopd.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-gopd.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-gopn.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-gopn.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-keys-internal.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_object-keys-internal.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-pie.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_object-pie.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec-abstract.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec-abstract.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var builtinExec = RegExp.prototype.exec;

 // `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (typeof exec === 'function') {
    var result = exec.call(R, S);
    if (typeof result !== 'object') {
      throw new TypeError('RegExp exec method returned something other than an Object or null');
    }
    return result;
  }
  if (classof(R) !== 'RegExp') {
    throw new TypeError('RegExp#exec called on incompatible receiver');
  }
  return builtinExec.call(R, S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var regexpFlags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");

var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;

var patchedExec = nativeExec;

var LAST_INDEX = 'lastIndex';

var UPDATES_LAST_INDEX_WRONG = (function () {
  var re1 = /a/,
      re2 = /b*/g;
  nativeExec.call(re1, 'a');
  nativeExec.call(re2, 'a');
  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
})();

// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;

var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;

if (PATCH) {
  patchedExec = function exec(str) {
    var re = this;
    var lastIndex, reCopy, match, i;

    if (NPCG_INCLUDED) {
      reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
    }
    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];

    match = nativeExec.call(re, str);

    if (UPDATES_LAST_INDEX_WRONG && match) {
      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
    }
    if (NPCG_INCLUDED && match && match.length > 1) {
      // Fix browsers whose `exec` methods don't consistently return `undefined`
      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
      // eslint-disable-next-line no-loop-func
      nativeReplace.call(match[0], reCopy, function () {
        for (i = 1; i < arguments.length - 2; i++) {
          if (arguments[i] === undefined) match[i] = undefined;
        }
      });
    }

    return match;
  };
}

module.exports = patchedExec;


/***/ }),

/***/ "../node_modules/core-js/modules/_set-proto.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_set-proto.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/modules/_set-species.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_set-species.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared-key.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_shared-key.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_species-constructor.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/_species-constructor.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-at.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_string-at.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.slice.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.slice.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/modules/_html.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var arraySlice = [].slice;

// fallback for not array-like ES3 strings and DOM objects
$export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  if (html) arraySlice.call(html);
}), 'Array', {
  slice: function slice(begin, end) {
    var len = toLength(this.length);
    var klass = cof(this);
    end = end === undefined ? len : end;
    if (klass == 'Array') return arraySlice.call(this, begin, end);
    var start = toAbsoluteIndex(begin, len);
    var upTo = toAbsoluteIndex(end, len);
    var size = toLength(upTo - start);
    var cloned = new Array(size);
    var i = 0;
    for (; i < size; i++) cloned[i] = klass == 'String'
      ? this.charAt(start + i)
      : this[start + i];
    return cloned;
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.function.name.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.function.name.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// 19.2.4.2 name
NAME in FProto || __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
  configurable: true,
  get: function () {
    try {
      return ('' + this).match(nameRE)[1];
    } catch (e) {
      return '';
    }
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.constructor.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.constructor.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "../node_modules/core-js/modules/_inherit-if-required.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/modules/_object-gopn.js").f;
var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var $flags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");
var $RegExp = global.RegExp;
var Base = $RegExp;
var proto = $RegExp.prototype;
var re1 = /a/g;
var re2 = /a/g;
// "new" creates a new object, old webkit buggy here
var CORRECT_NEW = new $RegExp(re1) !== re1;

if (__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && (!CORRECT_NEW || __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  re2[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match')] = false;
  // RegExp constructor can alter flags and IsRegExp works correct with @@match
  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
}))) {
  $RegExp = function RegExp(p, f) {
    var tiRE = this instanceof $RegExp;
    var piRE = isRegExp(p);
    var fiU = f === undefined;
    return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
      : inheritIfRequired(CORRECT_NEW
        ? new Base(piRE && !fiU ? p.source : p, f)
        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
      , tiRE ? this : proto, $RegExp);
  };
  var proxy = function (key) {
    key in $RegExp || dP($RegExp, key, {
      configurable: true,
      get: function () { return Base[key]; },
      set: function (it) { Base[key] = it; }
    });
  };
  for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
  proto.constructor = $RegExp;
  $RegExp.prototype = proto;
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(global, 'RegExp', $RegExp);
}

__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/modules/_set-species.js")('RegExp');


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.exec.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.exec.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
__webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js")({
  target: 'RegExp',
  proto: true,
  forced: regexpExec !== /./.exec
}, {
  exec: regexpExec
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.flags.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.flags.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 21.2.5.3 get RegExp.prototype.flags()
if (__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', {
  configurable: true,
  get: __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js")
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.replace.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.replace.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var max = Math.max;
var min = Math.min;
var floor = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
  return [
    // `String.prototype.replace` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = defined(this);
      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
      return fn !== undefined
        ? fn.call(searchValue, O, replaceValue)
        : $replace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      var res = maybeCallNative($replace, regexp, this, replaceValue);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);
      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;
        results.push(result);
        if (!global) break;
        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }
      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];
        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];

    // https://tc39.github.io/ecma262/#sec-getsubstitution
  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
    if (namedCaptures !== undefined) {
      namedCaptures = toObject(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
    return $replace.call(replacement, symbols, function (match, ch) {
      var capture;
      switch (ch.charAt(0)) {
        case '$': return '$';
        case '&': return matched;
        case '`': return str.slice(0, position);
        case "'": return str.slice(tailPos);
        case '<':
          capture = namedCaptures[ch.slice(1, -1)];
          break;
        default: // \d\d?
          var n = +ch;
          if (n === 0) return match;
          if (n > m) {
            var f = floor(n / 10);
            if (f === 0) return match;
            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
            return match;
          }
          capture = captures[n - 1];
      }
      return capture === undefined ? '' : capture;
    });
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.split.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.split.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/modules/_species-constructor.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var $min = Math.min;
var $push = [].push;
var $SPLIT = 'split';
var LENGTH = 'length';
var LAST_INDEX = 'lastIndex';
var MAX_UINT32 = 0xffffffff;

// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });

// @@split logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
  var internalSplit;
  if (
    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
    ''[$SPLIT](/.?/)[LENGTH]
  ) {
    // based on es5-shim implementation, need to rework it
    internalSplit = function (separator, limit) {
      var string = String(this);
      if (separator === undefined && limit === 0) return [];
      // If `separator` is not a regex, use native split
      if (!isRegExp(separator)) return $split.call(string, separator, limit);
      var output = [];
      var flags = (separator.ignoreCase ? 'i' : '') +
                  (separator.multiline ? 'm' : '') +
                  (separator.unicode ? 'u' : '') +
                  (separator.sticky ? 'y' : '');
      var lastLastIndex = 0;
      var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
      // Make `global` and avoid `lastIndex` issues by working with a copy
      var separatorCopy = new RegExp(separator.source, flags + 'g');
      var match, lastIndex, lastLength;
      while (match = regexpExec.call(separatorCopy, string)) {
        lastIndex = separatorCopy[LAST_INDEX];
        if (lastIndex > lastLastIndex) {
          output.push(string.slice(lastLastIndex, match.index));
          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
          lastLength = match[0][LENGTH];
          lastLastIndex = lastIndex;
          if (output[LENGTH] >= splitLimit) break;
        }
        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
      }
      if (lastLastIndex === string[LENGTH]) {
        if (lastLength || !separatorCopy.test('')) output.push('');
      } else output.push(string.slice(lastLastIndex));
      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
    };
  // Chakra, V8
  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
    internalSplit = function (separator, limit) {
      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
    };
  } else {
    internalSplit = $split;
  }

  return [
    // `String.prototype.split` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.split
    function split(separator, limit) {
      var O = defined(this);
      var splitter = separator == undefined ? undefined : separator[SPLIT];
      return splitter !== undefined
        ? splitter.call(separator, O, limit)
        : internalSplit.call(String(O), separator, limit);
    },
    // `RegExp.prototype[@@split]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
    //
    // NOTE: This cannot be properly polyfilled in engines that don't support
    // the 'y' flag.
    function (regexp, limit) {
      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var C = speciesConstructor(rx, RegExp);

      var unicodeMatching = rx.unicode;
      var flags = (rx.ignoreCase ? 'i' : '') +
                  (rx.multiline ? 'm' : '') +
                  (rx.unicode ? 'u' : '') +
                  (SUPPORTS_Y ? 'y' : 'g');

      // ^(? + rx + ) is needed, in combination with some S slicing, to
      // simulate the 'y' flag.
      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
      if (lim === 0) return [];
      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
      var p = 0;
      var q = 0;
      var A = [];
      while (q < S.length) {
        splitter.lastIndex = SUPPORTS_Y ? q : 0;
        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
        var e;
        if (
          z === null ||
          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
        ) {
          q = advanceStringIndex(S, q, unicodeMatching);
        } else {
          A.push(S.slice(p, q));
          if (A.length === lim) return A;
          for (var i = 1; i <= z.length - 1; i++) {
            A.push(z[i]);
            if (A.length === lim) return A;
          }
          q = p = e;
        }
      }
      A.push(S.slice(p));
      return A;
    }
  ];
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.flags */ "../node_modules/core-js/modules/es6.regexp.flags.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var $flags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js");
var TO_STRING = 'toString';
var $toString = /./[TO_STRING];

var define = function (fn) {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true);
};

// 21.2.5.14 RegExp.prototype.toString()
if (__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
  define(function toString() {
    var R = anObject(this);
    return '/'.concat(R.source, '/',
      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
  });
// FF44- RegExp#toString has a wrong name
} else if ($toString.name != TO_STRING) {
  define(function toString() {
    return $toString.call(this);
  });
}


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!***************************************!*\
  !*** ../assets/dev/js/admin/admin.js ***!
  \***************************************/


var modules = {
  widget_template_edit_button: __webpack_require__(/*! modules/library/assets/js/admin */ "../modules/library/assets/js/admin.js"),
  forms_integrations: __webpack_require__(/*! modules/forms/assets/js/admin */ "../modules/forms/assets/js/admin.js"),
  AssetsManager: __webpack_require__(/*! modules/assets-manager/assets/js/admin */ "../modules/assets-manager/assets/js/admin.js"),
  RoleManager: __webpack_require__(/*! modules/role-manager/assets/js/admin */ "../modules/role-manager/assets/js/admin.js"),
  ThemeBuilder: __webpack_require__(/*! modules/theme-builder/assets/js/admin/admin */ "../modules/theme-builder/assets/js/admin/admin.js")
};
window.elementorProAdmin = {
  widget_template_edit_button: new modules.widget_template_edit_button(),
  forms_integrations: new modules.forms_integrations(),
  assetsManager: new modules.AssetsManager(),
  roleManager: new modules.RoleManager(),
  themeBuilder: new modules.ThemeBuilder()
};
jQuery(function () {
  elementorProAdmin.roleManager.advancedRoleManager.init();
});
})();

/******/ })()
;
//# sourceMappingURL=admin.js.mapPK!ʸQ�O`O`assets/js/custom-code.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var t={75453:(t,e,n)=>{t.exports=n(7421)},59396:(t,e,n)=>{t.exports=n(70157)},32009:(t,e,n)=>{t.exports=n(89710)},15149:(t,e,n)=>{t.exports=n(66458)},38401:(t,e,n)=>{t.exports=n(14710)},92937:(t,e,n)=>{t.exports=n(23022)},67394:(t,e,n)=>{t.exports=n(43153)},23587:(t,e,n)=>{t.exports=n(32622)},63774:(t,e,n)=>{t.exports=n(27410)},95315:(t,e,n)=>{t.exports=n(19035)},82055:(t,e,n)=>{t.exports=n(58535)},83452:(t,e,n)=>{t.exports=n(97220)},28274:(t,e,n)=>{t.exports=n(65135)},35657:(t,e,n)=>{t.exports=n(69591)},73220:(t,e,n)=>{t.exports=n(76483)},75499:(t,e,n)=>{t.exports=n(43094)},41281:(t,e,n)=>{t.exports=n(19103)},50093:(t,e,n)=>{t.exports=n(39871)},93168:(t,e,n)=>{t.exports=n(89999)},72292:t=>{t.exports=function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r},t.exports.default=t.exports,t.exports.__esModule=!0},86870:(t,e,n)=>{var r=n(59396);t.exports=function _arrayWithHoles(t){if(r(t))return t},t.exports.default=t.exports,t.exports.__esModule=!0},35693:(t,e,n)=>{var r=n(59396),o=n(72292);t.exports=function _arrayWithoutHoles(t){if(r(t))return o(t)},t.exports.default=t.exports,t.exports.__esModule=!0},38852:t=>{t.exports=function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},49117:(t,e,n)=>{var r=n(73220);function asyncGeneratorStep(t,e,n,o,i,a,u){try{var s=t[a](u),c=s.value}catch(t){return void n(t)}s.done?e(c):r.resolve(c).then(o,i)}t.exports=function _asyncToGenerator(t){return function(){var e=this,n=arguments;return new r((function(r,o){var i=t.apply(e,n);function _next(t){asyncGeneratorStep(i,r,o,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(i,r,o,_next,_throw,"throw",t)}_next(void 0)}))}},t.exports.default=t.exports,t.exports.__esModule=!0},11959:t=>{t.exports=function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},39041:(t,e,n)=>{var r=n(67394);function _defineProperties(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),r(t,o.key,o)}}t.exports=function _createClass(t,e,n){return e&&_defineProperties(t.prototype,e),n&&_defineProperties(t,n),t},t.exports.default=t.exports,t.exports.__esModule=!0},68537:(t,e,n)=>{var r=n(75499),o=n(44263),i=n(898),a=n(59771);t.exports=function _createSuper(t){var e=i();return function _createSuperInternal(){var n,i=o(t);if(e){var u=o(this).constructor;n=r(i,arguments,u)}else n=i.apply(this,arguments);return a(this,n)}},t.exports.default=t.exports,t.exports.__esModule=!0},18042:(t,e,n)=>{var r=n(67394);t.exports=function _defineProperty(t,e,n){return e in t?r(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},t.exports.default=t.exports,t.exports.__esModule=!0},37959:(t,e,n)=>{var r=n(15149);function _extends(){return t.exports=_extends=r||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},t.exports.default=t.exports,t.exports.__esModule=!0,_extends.apply(this,arguments)}t.exports=_extends,t.exports.default=t.exports,t.exports.__esModule=!0},44263:(t,e,n)=>{var r=n(28274),o=n(82055);function _getPrototypeOf(e){return t.exports=_getPrototypeOf=r?o:function _getPrototypeOf(t){return t.__proto__||o(t)},t.exports.default=t.exports,t.exports.__esModule=!0,_getPrototypeOf(e)}t.exports=_getPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},77371:(t,e,n)=>{var r=n(38401),o=n(76870);t.exports=function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=r(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},67971:t=>{t.exports=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}},t.exports.default=t.exports,t.exports.__esModule=!0},52369:(t,e,n)=>{var r=n(24596).default,o=n(93168),i=n(67394),a=n(23587);function _getRequireWildcardCache(t){if("function"!=typeof o)return null;var e=new o,n=new o;return(_getRequireWildcardCache=function _getRequireWildcardCache(t){return t?n:e})(t)}t.exports=function _interopRequireWildcard(t,e){if(!e&&t&&t.__esModule)return t;if(null===t||"object"!==r(t)&&"function"!=typeof t)return{default:t};var n=_getRequireWildcardCache(e);if(n&&n.has(t))return n.get(t);var o={},u=i&&a;for(var s in t)if("default"!==s&&Object.prototype.hasOwnProperty.call(t,s)){var c=u?a(t,s):null;c&&(c.get||c.set)?i(o,s,c):o[s]=t[s]}return o.default=t,n&&n.set(t,o),o},t.exports.default=t.exports,t.exports.__esModule=!0},898:(t,e,n)=>{var r=n(75499);t.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!r)return!1;if(r.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(r(Boolean,[],(function(){}))),!0}catch(t){return!1}},t.exports.default=t.exports,t.exports.__esModule=!0},95915:(t,e,n)=>{var r=n(41281),o=n(50093),i=n(75453);t.exports=function _iterableToArray(t){if(void 0!==r&&null!=t[o]||null!=t["@@iterator"])return i(t)},t.exports.default=t.exports,t.exports.__esModule=!0},79968:(t,e,n)=>{var r=n(41281),o=n(50093);t.exports=function _iterableToArrayLimit(t,e){var n=t&&(void 0!==r&&t[o]||t["@@iterator"]);if(null!=n){var i,a,u=[],s=!0,c=!1;try{for(n=n.call(t);!(s=(i=n.next()).done)&&(u.push(i.value),!e||u.length!==e);s=!0);}catch(t){c=!0,a=t}finally{try{s||null==n.return||n.return()}finally{if(c)throw a}}return u}},t.exports.default=t.exports,t.exports.__esModule=!0},39198:t=>{t.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},84360:t=>{t.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},84899:(t,e,n)=>{var r=n(83452),o=n(95315),i=n(23587),a=n(63774),u=n(92937),s=n(67394),c=n(18042);function ownKeys(t,e){var n=r(t);if(o){var a=o(t);e&&(a=a.filter((function(e){return i(t,e).enumerable}))),n.push.apply(n,a)}return n}t.exports=function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(n),!0).forEach((function(e){c(t,e,n[e])})):a?u(t,a(n)):ownKeys(Object(n)).forEach((function(e){s(t,e,i(n,e))}))}return t},t.exports.default=t.exports,t.exports.__esModule=!0},59771:(t,e,n)=>{var r=n(24596).default,o=n(38852);t.exports=function _possibleConstructorReturn(t,e){return!e||"object"!==r(e)&&"function"!=typeof e?o(t):e},t.exports.default=t.exports,t.exports.__esModule=!0},76870:(t,e,n)=>{var r=n(28274);function _setPrototypeOf(e,n){return t.exports=_setPrototypeOf=r||function _setPrototypeOf(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,_setPrototypeOf(e,n)}t.exports=_setPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},47834:(t,e,n)=>{var r=n(86870),o=n(79968),i=n(24594),a=n(39198);t.exports=function _slicedToArray(t,e){return r(t)||o(t,e)||i(t,e)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},74846:(t,e,n)=>{var r=n(35693),o=n(95915),i=n(24594),a=n(84360);t.exports=function _toConsumableArray(t){return r(t)||o(t)||i(t)||a()},t.exports.default=t.exports,t.exports.__esModule=!0},24596:(t,e,n)=>{var r=n(41281),o=n(50093);function _typeof(e){return"function"==typeof r&&"symbol"==typeof o?(t.exports=_typeof=function _typeof(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=_typeof=function _typeof(t){return t&&"function"==typeof r&&t.constructor===r&&t!==r.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),_typeof(e)}t.exports=_typeof,t.exports.default=t.exports,t.exports.__esModule=!0},24594:(t,e,n)=>{var r=n(75453),o=n(72292);t.exports=function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?r(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},57135:(t,e,n)=>{t.exports=n(86248)},55246:(t,e,n)=>{"use strict";var r=n(63804),o=n(67394),i=n(67971);o(e,"__esModule",{value:!0}),e.default=e.BaseContext=void 0;var a=i(n(73220)),u=i(n(84899)),s=i(n(11959)),c=i(n(39041)),l=i(n(38852)),f=i(n(77371)),d=i(n(68537)),p=function(t){(0,f.default)(BaseContext,t);var e=(0,d.default)(BaseContext);function BaseContext(t){var n;return(0,s.default)(this,BaseContext),(n=e.call(this,t)).state={action:{current:null,loading:!1,error:null,errorMeta:{}},updateActionState:n.updateActionState.bind((0,l.default)(n)),resetActionState:n.resetActionState.bind((0,l.default)(n))},n}return(0,c.default)(BaseContext,[{key:"executeAction",value:function executeAction(t,e){var n=this;return this.updateActionState({current:t,loading:!0,error:null,errorMeta:{}}),e().then((function(t){return n.resetActionState(),a.default.resolve(t)})).catch((function(e){return n.updateActionState({current:t,loading:!1,error:e.message,errorMeta:e}),a.default.reject(e)}))}},{key:"updateActionState",value:function updateActionState(t){return this.setState((function(e){return{action:(0,u.default)((0,u.default)({},e.action),t)}}))}},{key:"resetActionState",value:function resetActionState(){this.updateActionState({current:null,loading:!1,error:null,errorMeta:{}})}}]),BaseContext}(r.Component);e.BaseContext=p;var v=p;e.default=v},78221:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=e.ConditionsProvider=e.Context=void 0;var u=a(n(63804)),s=a(n(35657)),c=a(n(83452)),l=a(n(73220));n(90286),n(76139),n(44321),n(99745),n(10195),n(71954);var f=a(n(84899)),d=a(n(11959)),p=a(n(39041)),v=a(n(38852)),h=a(n(77371)),y=a(n(68537)),m=a(n(18042)),g=a(n(79537)),x=a(n(3145)),b=a(n(55246)),C=n(2410),S=u.default.createContext();e.Context=S;var w=function(t){(0,h.default)(ConditionsProvider,t);var e=(0,y.default)(ConditionsProvider);function ConditionsProvider(t){var n;return(0,d.default)(this,ConditionsProvider),n=e.call(this,t),(0,m.default)((0,v.default)(n),"conditionsConfig",null),n.state=(0,f.default)((0,f.default)({},n.state),{},{conditions:{},updateConditionItemState:n.updateConditionItemState.bind((0,v.default)(n)),removeConditionItemInState:n.removeConditionItemInState.bind((0,v.default)(n)),createConditionItemInState:n.createConditionItemInState.bind((0,v.default)(n)),findConditionItemInState:n.findConditionItemInState.bind((0,v.default)(n)),saveConditions:n.saveConditions.bind((0,v.default)(n))}),n}return(0,p.default)(ConditionsProvider,[{key:"componentDidMount",value:function componentDidMount(){var t=this;this.executeAction(ConditionsProvider.actions.FETCH_CONFIG,(function(){return x.default.create()})).then((function(e){return t.conditionsConfig=e})).then(this.normalizeConditionsState.bind(this)).then(this.setSubIdTitles.bind(this))}},{key:"saveConditions",value:function saveConditions(){var t=this,e=(0,s.default)(this.state.conditions).map((function(t){return t.forDb()}));return this.executeAction(ConditionsProvider.actions.SAVE,(function(){return $e.data.update(C.TemplatesConditions.signature,{conditions:e},{id:t.props.currentTemplate.id})})).then((function(){var e=(0,s.default)(t.state.conditions).map((function(t){return t.forContext()}));t.props.onConditionsSaved(t.props.currentTemplate.id,{conditions:e,instances:t.conditionsConfig.calculateInstances((0,s.default)(t.state.conditions)),isActive:!(!(0,c.default)(t.state.conditions).length||"publish"!==t.props.currentTemplate.status)})}))}},{key:"checkConflicts",value:function checkConflicts(t){var e=this;return this.executeAction(ConditionsProvider.actions.CHECK_CONFLICTS,(function(){return $e.data.get(C.TemplatesConditionsConflicts.signature,{post_id:e.props.currentTemplate.id,condition:t.clone().toString()})})).then((function(n){return e.updateConditionItemState(t.id,{conflictErrors:(0,s.default)(n.data)},!1)}))}},{key:"fetchSubIdsTitles",value:function fetchSubIdsTitles(t){return new l.default((function(e){return elementorCommon.ajax.loadObjects({action:"query_control_value_titles",ids:_.isArray(t.subId)?t.subId:[t.subId],data:{get_titles:t.subIdAutocomplete,unique_id:elementorCommon.helpers.getUniqueId()},success:function success(t){e(t)}})}))}},{key:"normalizeConditionsState",value:function normalizeConditionsState(){var t=this;this.updateConditionsState((function(){return t.props.currentTemplate.conditions.reduce((function(e,n){var r=new g.default((0,f.default)((0,f.default)({},n),{},{default:t.props.currentTemplate.defaultCondition,options:t.conditionsConfig.getOptions(),subOptions:t.conditionsConfig.getSubOptions(n.name),subIdAutocomplete:t.conditionsConfig.getSubIdAutocomplete(n.sub),supIdOptions:n.subId?[{value:n.subId,label:n.subId}]:[]}));return(0,f.default)((0,f.default)({},e),{},(0,m.default)({},r.id,r))}),{})})).then((function(){(0,s.default)(t.state.conditions).forEach((function(e){return t.checkConflicts(e)}))}))}},{key:"setSubIdTitles",value:function setSubIdTitles(){var t=this;return(0,s.default)(this.state.conditions).forEach((function(e){if(e.subId)return t.fetchSubIdsTitles(e).then((function(n){return t.updateConditionItemState(e.id,{subIdOptions:[{label:(0,s.default)(n)[0],value:e.subId}]},!1)}))}))}},{key:"updateConditionItemState",value:function updateConditionItemState(t,e){var n=this,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e.name&&(e.subOptions=this.conditionsConfig.getSubOptions(e.name)),(e.sub||e.name)&&(e.subIdAutocomplete=this.conditionsConfig.getSubIdAutocomplete(e.sub),e.subIdOptions=[]),this.updateConditionsState((function(n){var r=n[t];return(0,f.default)((0,f.default)({},n),{},(0,m.default)({},t,r.clone().set(e)))})).then((function(){r&&n.checkConflicts(n.findConditionItemInState(t))}))}},{key:"removeConditionItemInState",value:function removeConditionItemInState(t){this.updateConditionsState((function(e){var n=(0,f.default)({},e);return delete n[t],n}))}},{key:"createConditionItemInState",value:function createConditionItemInState(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this.props.currentTemplate.defaultCondition,r=new g.default({name:n,default:n,options:this.conditionsConfig.getOptions(),subOptions:this.conditionsConfig.getSubOptions(n),subIdAutocomplete:this.conditionsConfig.getSubIdAutocomplete("")});this.updateConditionsState((function(t){return(0,f.default)((0,f.default)({},t),{},(0,m.default)({},r.id,r))})).then((function(){e&&t.checkConflicts(r)}))}},{key:"findConditionItemInState",value:function findConditionItemInState(t){return(0,s.default)(this.state.conditions).find((function(e){return e.id===t}))}},{key:"updateConditionsState",value:function updateConditionsState(t){var e=this;return new l.default((function(n){return e.setState((function(e){return{conditions:t(e.conditions)}}),n)}))}},{key:"render",value:function render(){if(this.state.action.current===ConditionsProvider.actions.FETCH_CONFIG){if(this.state.error)return u.default.createElement("h3",null,r("Error:","elementor-pro")," ",this.state.error);if(this.state.loading)return u.default.createElement("h3",null,r("Loading","elementor-pro"),"...")}return u.default.createElement(S.Provider,{value:this.state},this.props.children)}}]),ConditionsProvider}(b.default);e.ConditionsProvider=w,(0,m.default)(w,"propTypes",{children:o.any.isRequired,currentTemplate:o.object.isRequired,onConditionsSaved:o.func.isRequired,validateConflicts:o.bool}),(0,m.default)(w,"defaultProps",{validateConflicts:!0}),(0,m.default)(w,"actions",{FETCH_CONFIG:"fetch-config",SAVE:"save",CHECK_CONFLICTS:"check-conflicts"});var O=w;e.default=O},79537:(t,e,n)=>{"use strict";var r=n(67394),o=n(67971);r(e,"__esModule",{value:!0}),e.default=void 0,n(64434),n(3777),n(38081),n(99745),n(10195);var i=o(n(15149)),a=o(n(59396)),u=o(n(83452)),s=o(n(32009)),c=o(n(11959)),l=o(n(39041)),f=o(n(18042)),d=function(){function Condition(t){(0,c.default)(this,Condition),(0,f.default)(this,"id",elementorCommon.helpers.getUniqueId()),(0,f.default)(this,"default",""),(0,f.default)(this,"type","include"),(0,f.default)(this,"name",""),(0,f.default)(this,"sub",""),(0,f.default)(this,"subId",""),(0,f.default)(this,"options",[]),(0,f.default)(this,"subOptions",[]),(0,f.default)(this,"subIdAutocomplete",[]),(0,f.default)(this,"subIdOptions",[]),(0,f.default)(this,"conflictErrors",[]),this.set(t)}return(0,l.default)(Condition,[{key:"set",value:function set(t){return(0,i.default)(this,t),this}},{key:"clone",value:function clone(){return(0,i.default)(new Condition,this)}},{key:"remove",value:function remove(t){var e=this;return(0,a.default)(t)||(t=[t]),t.forEach((function(t){delete e[t]})),this}},{key:"only",value:function only(t){(0,a.default)(t)||(t=[t]);var e=(0,u.default)(this).filter((function(e){return!t.includes(e)}));return this.remove(e),this}},{key:"toJson",value:function toJson(){return(0,s.default)(this)}},{key:"toString",value:function toString(){return this.forDb().filter((function(t){return t})).join("/")}},{key:"forDb",value:function forDb(){return[this.type,this.name,this.sub,this.subId]}},{key:"forContext",value:function forContext(){return{type:this.type,name:this.name,sub:this.sub,subId:this.subId}}}]),Condition}();e.default=d},3145:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(67971);o(e,"__esModule",{value:!0}),e.default=e.ConditionsConfig=void 0;var a=i(n(35657)),u=i(n(83452)),s=i(n(73220));n(90286),n(10195),n(99745);var c=i(n(84899)),l=i(n(24596)),f=i(n(74846)),d=i(n(11959)),p=i(n(39041)),v=i(n(18042)),h=n(2410),y=function(){function ConditionsConfig(t){(0,d.default)(this,ConditionsConfig),(0,v.default)(this,"config",null),this.config=t}return(0,p.default)(ConditionsConfig,[{key:"getOptions",value:function getOptions(){return this.getSubOptions("general",!0).map((function(t){return{label:t.label,value:t.value}}))}},{key:"getSubOptions",value:function getSubOptions(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.config[t];return r?[{label:r.all_label,value:n?t:""}].concat((0,f.default)(r.sub_conditions.map((function(t){var n=e.config[t];return{label:n.label,value:t,children:n.sub_conditions.length?e.getSubOptions(t,!0):null}})))):[]}},{key:"getSubIdAutocomplete",value:function getSubIdAutocomplete(t){var e,n=this.config[t];if(!n||"object"!==(0,l.default)(n.controls))return{};var r=(0,a.default)(n.controls);return null!=r&&null!==(e=r[0])&&void 0!==e&&e.autocomplete?r[0].autocomplete:{}}},{key:"calculateInstances",value:function calculateInstances(t){var e=this,n=t.reduce((function(t,n){if("exclude"===n.type)return t;var r=n.sub||n.name,o=e.config[r];if(!o)return t;var i=n.subId?"".concat(o.label," #").concat(n.subId):o.all_label;return(0,c.default)((0,c.default)({},t),{},(0,v.default)({},r,i))}),{});return 0===(0,u.default)(n).length&&(n=[r("No instances","elementor-pro")]),n}}],[{key:"create",value:function create(){return ConditionsConfig.instance?s.default.resolve(ConditionsConfig.instance):$e.data.get(h.ConditionsConfig.signature).then((function(t){return ConditionsConfig.instance=new ConditionsConfig(t.data),ConditionsConfig.instance}))}}]),ConditionsConfig}();e.ConditionsConfig=y,(0,v.default)(y,"instance",void 0);var m=y;e.default=m},79924:(t,e,n)=>{"use strict";var r=n(67394),o=n(67971);r(e,"__esModule",{value:!0}),e.default=e.ConditionsConfig=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),c=o(n(18042)),l=function(t){(0,u.default)(ConditionsConfig,t);var e=(0,s.default)(ConditionsConfig);function ConditionsConfig(){return(0,i.default)(this,ConditionsConfig),e.apply(this,arguments)}return(0,a.default)(ConditionsConfig,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/conditions-config/{id}"}}]),ConditionsConfig}($e.modules.CommandData);e.ConditionsConfig=l,(0,c.default)(l,"signature","site-editor/conditions-config");var f=l;e.default=f},2410:(t,e,n)=>{"use strict";var r=n(67394);r(e,"__esModule",{value:!0}),r(e,"Templates",{enumerable:!0,get:function get(){return o.Templates}}),r(e,"ConditionsConfig",{enumerable:!0,get:function get(){return i.ConditionsConfig}}),r(e,"TemplatesConditions",{enumerable:!0,get:function get(){return a.TemplatesConditions}}),r(e,"TemplatesConditionsConflicts",{enumerable:!0,get:function get(){return u.TemplatesConditionsConflicts}});var o=n(49672),i=n(79924),a=n(19743),u=n(52924)},52924:(t,e,n)=>{"use strict";var r=n(67394),o=n(67971);r(e,"__esModule",{value:!0}),e.default=e.TemplatesConditionsConflicts=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),c=o(n(18042)),l=function(t){(0,u.default)(TemplatesConditionsConflicts,t);var e=(0,s.default)(TemplatesConditionsConflicts);function TemplatesConditionsConflicts(){return(0,i.default)(this,TemplatesConditionsConflicts),e.apply(this,arguments)}return(0,a.default)(TemplatesConditionsConflicts,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"".concat(TemplatesConditionsConflicts.signature,"/{id}")}}]),TemplatesConditionsConflicts}($e.modules.CommandData);e.TemplatesConditionsConflicts=l,(0,c.default)(l,"signature","site-editor/templates-conditions-conflicts");var f=l;e.default=f},19743:(t,e,n)=>{"use strict";var r=n(67394),o=n(67971);r(e,"__esModule",{value:!0}),e.default=e.TemplatesConditions=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),c=o(n(18042)),l=function(t){(0,u.default)(TemplatesConditions,t);var e=(0,s.default)(TemplatesConditions);function TemplatesConditions(){return(0,i.default)(this,TemplatesConditions),e.apply(this,arguments)}return(0,a.default)(TemplatesConditions,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates-conditions/{id}"}}]),TemplatesConditions}($e.modules.CommandData);e.TemplatesConditions=l,(0,c.default)(l,"signature","site-editor/templates-conditions");var f=l;e.default=f},49672:(t,e,n)=>{"use strict";var r=n(67394),o=n(67971);r(e,"__esModule",{value:!0}),e.default=e.Templates=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),c=o(n(18042)),l=function(t){(0,u.default)(Templates,t);var e=(0,s.default)(Templates);function Templates(){return(0,i.default)(this,Templates),e.apply(this,arguments)}return(0,a.default)(Templates,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates/{id}"}}]),Templates}($e.modules.CommandData);e.Templates=l,(0,c.default)(l,"signature","site-editor/templates");var f=l;e.default=f},88704:(t,e,n)=>{"use strict";var r=n(67394),o=n(52369),i=n(67971);r(e,"__esModule",{value:!0}),e.default=void 0;var a=i(n(11959)),u=i(n(39041)),s=i(n(77371)),c=i(n(68537)),l=i(n(18042)),f=o(n(2410)),d=function(t){(0,s.default)(Component,t);var e=(0,c.default)(Component);function Component(){return(0,a.default)(this,Component),e.apply(this,arguments)}return(0,u.default)(Component,[{key:"getNamespace",value:function getNamespace(){return this.constructor.namespace}},{key:"defaultData",value:function defaultData(){return this.importCommands(f)}}]),Component}($e.modules.ComponentBase);e.default=d,(0,l.default)(d,"namespace","site-editor")},73391:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=ConditionConflicts;var u=a(n(63804));n(90286);var s=n(78675);function ConditionConflicts(t){if(!t.conflicts.length)return"";var e=t.conflicts.map((function(t){return u.default.createElement(s.Button,{key:t.template_id,target:"_blank",url:t.edit_url,text:t.template_title})}));return u.default.createElement(s.Text,{className:"e-site-editor-conditions__conflict",variant:"sm"},r("Elementor recognized that you have set this location for other templates: ","elementor-pro")," ",e)}ConditionConflicts.propTypes={conflicts:o.array.isRequired}},87072:(t,e,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(e,"__esModule",{value:!0}),e.default=ConditionName;var a=i(n(63804));n(99745);var u=n(78675);function ConditionName(t){if("general"!==t.default)return"";return a.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},a.default.createElement(u.Select,{options:t.options,value:t.name,onChange:function onChange(e){return t.updateConditions(t.id,{name:e.target.value,sub:"",subId:""})}}))}ConditionName.propTypes={updateConditions:r.func.isRequired,id:r.string.isRequired,name:r.string.isRequired,options:r.array.isRequired,default:r.string.isRequired},ConditionName.defaultProps={name:""}},72888:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=ConditionSubId;var u=a(n(63804)),s=a(n(83452));n(10195);var c=n(78675);function ConditionSubId(t){if(!t.sub||!(0,s.default)(t.subIdAutocomplete).length)return"";var e=u.default.useMemo((function(){return function getSettings(t){return{allowClear:!1,placeholder:r("All","elementor-pro"),dir:elementorCommon.config.isRTL?"rtl":"ltr",ajax:{transport:function transport(e,n,r){return elementorCommon.ajax.addRequest("pro_panel_posts_control_filter_autocomplete",{data:{q:e.data.q,autocomplete:t},success:n,error:r})},data:function data(t){return{q:t.term,page:t.page}},cache:!0},escapeMarkup:function escapeMarkup(t){return t},minimumInputLength:1}}(t.subIdAutocomplete)}),[t.subIdAutocomplete]);return u.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},u.default.createElement(c.Select2,{onChange:function onChange(e){return t.updateConditions(t.id,{subId:e.target.value})},value:t.subId,settings:e,options:t.subIdOptions}))}ConditionSubId.propTypes={subIdAutocomplete:o.object,id:o.string.isRequired,sub:o.string,subId:o.string,updateConditions:o.func,subIdOptions:o.array},ConditionSubId.defaultProps={subId:"",subIdOptions:[]}},74090:(t,e,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(e,"__esModule",{value:!0}),e.default=ConditionSub;var a=i(n(63804));n(99745),n(10195);var u=n(78675);function ConditionSub(t){if("general"===t.name||!t.subOptions.length)return"";return a.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},a.default.createElement(u.Select,{options:t.subOptions,value:t.sub,onChange:function onChange(e){return t.updateConditions(t.id,{sub:e.target.value,subId:""})}}))}ConditionSub.propTypes={updateConditions:r.func.isRequired,id:r.string.isRequired,name:r.string.isRequired,sub:r.string.isRequired,subOptions:r.array.isRequired},ConditionSub.defaultProps={sub:"",subOptions:{}}},44172:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=ConditionType;var u=a(n(63804)),s=n(78675);function ConditionType(t){var e=u.default.createRef(),n=[{label:r("Include","elementor-pro"),value:"include"},{label:r("Exclude","elementor-pro"),value:"exclude"}];return u.default.useEffect((function(){e.current.setAttribute("data-elementor-condition-type",t.type)})),u.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper e-site-editor-conditions__input-wrapper--condition-type",ref:e},u.default.createElement(s.Select,{options:n,value:t.type,onChange:function onChange(e){t.updateConditions(t.id,{type:e.target.value})}}))}ConditionType.propTypes={updateConditions:o.func.isRequired,id:o.string.isRequired,type:o.string.isRequired},ConditionType.defaultProps={type:""}},7707:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=ConditionsRows;var u=a(n(63804)),s=a(n(37959)),c=a(n(35657));n(90286);var l=n(78221),f=n(78675),d=a(n(44172)),p=a(n(87072)),v=a(n(74090)),h=a(n(72888)),y=a(n(73391));function ConditionsRows(t){var e=u.default.useContext(l.Context),n=e.conditions,o=e.createConditionItemInState,i=e.updateConditionItemState,a=e.removeConditionItemInState,m=e.saveConditions,g=e.action,x=e.resetActionState,_=(0,c.default)(n).map((function(t){return u.default.createElement("div",{key:t.id},u.default.createElement("div",{className:"e-site-editor-conditions__row"},u.default.createElement("div",{className:"e-site-editor-conditions__row-controls ".concat(t.conflictErrors.length&&"e-site-editor-conditions__row-controls--error")},u.default.createElement(d.default,(0,s.default)({},t,{updateConditions:i})),u.default.createElement("div",{className:"e-site-editor-conditions__row-controls-inner"},u.default.createElement(p.default,(0,s.default)({},t,{updateConditions:i})),u.default.createElement(v.default,(0,s.default)({},t,{updateConditions:i})),u.default.createElement(h.default,(0,s.default)({},t,{updateConditions:i})))),u.default.createElement(f.Button,{className:"e-site-editor-conditions__remove-condition",text:r("Delete","elementor-pro"),icon:"eicon-close",hideText:!0,onClick:function onClick(){return a(t.id)}})),u.default.createElement(y.default,{conflicts:t.conflictErrors}))})),b=g.current===l.ConditionsProvider.actions.SAVE&&g.loading;return u.default.createElement(u.default.Fragment,null,g.error&&u.default.createElement(f.Dialog,{text:g.error,dismissButtonText:r("Go Back","elementor-pro"),dismissButtonOnClick:x,approveButtonText:r("Learn More","elementor-pro"),approveButtonColor:"link",approveButtonUrl:"https://go.elementor.com/app-theme-builder-conditions-load-issue",approveButtonTarget:"_target"}),u.default.createElement("div",{className:"e-site-editor-conditions__rows"},_),u.default.createElement("div",{className:"e-site-editor-conditions__add-button-container"},u.default.createElement(f.Button,{className:"e-site-editor-conditions__add-button",variant:"contained",size:"lg",text:r("Add Condition","elementor-pro"),onClick:o})),u.default.createElement("div",{className:"e-site-editor-conditions__footer"},u.default.createElement(f.Button,{variant:"contained",color:"primary",size:"lg",hideText:b,icon:b?"eicon-loading eicon-animation-spin":"",text:r("Save & Close","elementor-pro"),onClick:function onClick(){return m().then(t.onAfterSave)}})))}ConditionsRows.propTypes={onAfterSave:o.func}},40474:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(67971);o(e,"__esModule",{value:!0}),e.default=void 0;var a=i(n(63804)),u=i(n(11959)),s=i(n(39041)),c=i(n(38852)),l=i(n(77371)),f=i(n(68537)),d=i(n(88704)),p=i(n(34312)),v=function(t){(0,l.default)(CustomCode,t);var e=(0,f.default)(CustomCode);function CustomCode(){var t;return(0,u.default)(this,CustomCode),t=e.call(this),jQuery(t.initialize.bind((0,c.default)(t))),t}return(0,s.default)(CustomCode,[{key:"initialize",value:function initialize(){$e.components.register(new d.default),ReactDOM.render(a.default.createElement(p.default,null),document.querySelector(".post-conditions")),this.addTipsyToFields(),this.addDescription(),this.addLocationChangeHandler(),this.setOptionsPlacementVisibility("elementor_body_end"===jQuery("#location").val())}},{key:"addTipsyToFields",value:function addTipsyToFields(){jQuery(".elementor-field-label i[data-info]").tipsy({title:function title(){return this.getAttribute("data-info")},gravity:function gravity(){return"s"}})}},{key:"addDescription",value:function addDescription(){var t="<p>"+r("Manage and create all of your custom code here.<br />Organize all of your custom code and incorporate code snippets in your site. Add tracking codes, meta titles, and other scripts. Set display conditions, locations, and priority all from one place.","elementor-pro")+'&nbsp;<a target="_blank" href="https://go.elementor.com/wp-dash-custom-code">'+r("Learn more","elementor-pro")+"</a></p>";jQuery(t).insertBefore(".wp-header-end")}},{key:"addLocationChangeHandler",value:function addLocationChangeHandler(){var t=this;jQuery("#location").on("change",(function(e){t.setOptionsPlacementVisibility("elementor_body_end"===e.target.value)}))}},{key:"setOptionsPlacementVisibility",value:function setOptionsPlacementVisibility(t){jQuery(".elementor-custom-code-options-placement").toggleClass("show",t)}}]),CustomCode}(elementorModules.Module);e.default=v,elementorProAdmin.customCode=new v},34312:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971),u=n(52369);i(e,"__esModule",{value:!0}),e.default=ConditionsModal;var s=u(n(63804)),c=a(n(57135));n(90286),n(99745);var l=a(n(35657)),f=a(n(32009)),d=a(n(49117)),p=a(n(84899)),v=a(n(47834)),h=n(78675),y=a(n(86250)),m=a(n(3145));function ConditionsModal(){var t=(0,s.useState)(!1),e=(0,v.default)(t,2),n=e[0],o=e[1],i=(0,s.useState)({conditions:null,instances:null}),a=(0,v.default)(i,2),u=a[0],g=a[1],x=(0,s.useRef)(!1),_=elementorProAdmin.customCode.post,b=(0,s.useMemo)((function(){return{$form:jQuery("#post"),$formConditions:jQuery("<input />"),$publishButton:jQuery("#publish"),title:{$label:jQuery("#title-prompt-text"),$input:jQuery("#title")}}}),[]),C=function onPostSubmit(){var t=b.title;t.$input.attr("value").length||(t.$label.addClass("screen-reader-text"),t.$input.attr("value",r("Elementor Custom-Code #","elementor-pro")+elementorProAdmin.customCode.post.ID))},S=function onPublishClick(t){if("auto-draft"===_.post_status&&!n&&!x.current){t.preventDefault();var e=[{name:"general",sub:"",subId:"",type:"include"}];g((function(t){return(0,p.default)((0,p.default)({},t),{},{conditions:e})})),o(!0)}},w=function(){var t=(0,d.default)(c.default.mark((function _callee(){var t;return c.default.wrap((function _callee$(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,m.default.create();case 2:t=e.sent,$e.data.get("site-editor/templates-conditions",{id:_.ID},{refresh:!0}).then((function(e){var n=(0,l.default)(e.data).map((function(t){return{type:t.type,name:t.name,sub:t.sub_name,subId:t.sub_id}})),r=(0,l.default)(t.calculateInstances(n)).join(",");g((function(t){return(0,p.default)((0,p.default)({},t),{},{conditions:n,instances:r})}))}));case 4:case"end":return e.stop()}}),_callee)})));return function initData(){return t.apply(this,arguments)}}();return(0,s.useEffect)((function(){w(),function bindEvents(){b.$publishButton.on("click",S),b.$form.on("submit",C)}()}),[]),_&&u.conditions?s.default.createElement(s.default.Fragment,null,s.default.createElement(h.Text,{tag:"span",className:"post-conditions-display"},s.default.createElement("b",null,u.instances+" ")),s.default.createElement(h.Button,{onClick:function onClick(){return o(!0)},text:r("Edit","elementor"),variant:"underlined"}),s.default.createElement(h.ModalProvider,{show:n,setShow:o,title:r("Publish Settings","elementor"),icon:"eps-app__logo eicon-elementor"},s.default.createElement(h.CssGrid,{columns:1,spacing:700},s.default.createElement("section",null,s.default.createElement(y.default,{id:_.ID,status:_.post_status,conditions:u.conditions,onConditionsSaved:function onConditionsSaved(t){var e=t.conditions,n=(0,l.default)(t.instances).join(","),r=b.$form,i=b.$formConditions,a=b.$publishButton;x.current=!0,g((function(t){return(0,p.default)((0,p.default)({},t),{},{conditions:e,instances:n})})),"auto-draft"!==_.post_status&&"draft"!==_.post_status||i.attr("type","hidden").attr("name","_conditions").attr("value",(0,f.default)(e)).appendTo(r),a.trigger("click"),o(!1)},onAfterSave:function onAfterSave(){}}))))):s.default.createElement(s.default.Fragment,null,s.default.createElement(h.Text,{tag:"span"},r("Loading","elementor")),s.default.createElement(h.Icon,{className:"spinner"}))}ConditionsModal.propTypes={children:o.object}},86250:(t,e,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(e,"__esModule",{value:!0}),e.default=Conditions;var u=a(n(63804)),s=a(n(84899)),c=n(78675),l=a(n(78221)),f=a(n(7707));function Conditions(t){var e=(0,s.default)((0,s.default)({},t),{},{defaultCondition:"general"});return u.default.createElement("section",{className:"e-site-editor-conditions"},u.default.createElement("div",{className:"e-site-editor-conditions__header"},u.default.createElement("img",{className:"e-site-editor-conditions__header-image",src:"".concat(elementorAppProConfig.baseUrl,"/modules/theme-builder/assets/images/conditions-tab.svg"),alt:r("Conditions","elementor-pro")}),u.default.createElement(c.Heading,{variant:"h1",tag:"h1"},r("Where Do You Want to Display Your Code?","elementor-pro")),u.default.createElement(c.Text,{variant:"md"},r("Set the conditions that determine where your code snippet is used throughout your site.","elementor-pro"),u.default.createElement("br",null),r("For example, choose 'Entire Site' to display the code snippet across your site.","elementor-pro"))),u.default.createElement(l.default,{validateConflicts:!1,currentTemplate:e,onConditionsSaved:function onConditionsSaved(e,n){$e.data.setCache($e.components.get("site-editor"),"site-editor/templates-conditions",{id:e},n.conditions),t.onConditionsSaved(n)}},u.default.createElement(f.default,{onAfterSave:t.onAfterSave})))}Conditions.propTypes={id:o.number,status:o.string.isRequired,conditions:o.array,onConditionsSaved:o.func,onAfterSave:o.func.isRequired},Conditions.defaultProps={conditions:[],onConditionsSaved:function onConditionsSaved(){}}},7421:(t,e,n)=>{n(99572),n(37627),t.exports=n(47208).Array.from},70157:(t,e,n)=>{n(42580),t.exports=n(47208).Array.isArray},89710:(t,e,n)=>{var r=n(47208),o=r.JSON||(r.JSON={stringify:JSON.stringify});t.exports=function stringify(t){return o.stringify.apply(o,arguments)}},66458:(t,e,n)=>{n(99954),t.exports=n(47208).Object.assign},14710:(t,e,n)=>{n(30785);var r=n(47208).Object;t.exports=function create(t,e){return r.create(t,e)}},23022:(t,e,n)=>{n(23078);var r=n(47208).Object;t.exports=function defineProperties(t,e){return r.defineProperties(t,e)}},43153:(t,e,n)=>{n(40168);var r=n(47208).Object;t.exports=function defineProperty(t,e,n){return r.defineProperty(t,e,n)}},32622:(t,e,n)=>{n(18576);var r=n(47208).Object;t.exports=function getOwnPropertyDescriptor(t,e){return r.getOwnPropertyDescriptor(t,e)}},27410:(t,e,n)=>{n(67685),t.exports=n(47208).Object.getOwnPropertyDescriptors},19035:(t,e,n)=>{n(54370),t.exports=n(47208).Object.getOwnPropertySymbols},58535:(t,e,n)=>{n(4840),t.exports=n(47208).Object.getPrototypeOf},97220:(t,e,n)=>{n(5453),t.exports=n(47208).Object.keys},65135:(t,e,n)=>{n(13890),t.exports=n(47208).Object.setPrototypeOf},69591:(t,e,n)=>{n(57188),t.exports=n(47208).Object.values},76483:(t,e,n)=>{n(70285),n(99572),n(74114),n(86082),n(81522),n(25757),t.exports=n(47208).Promise},43094:(t,e,n)=>{n(11320),t.exports=n(47208).Reflect.construct},19103:(t,e,n)=>{n(54370),n(70285),n(87573),n(97224),t.exports=n(47208).Symbol},39871:(t,e,n)=>{n(99572),n(74114),t.exports=n(7273).f("iterator")},89999:(t,e,n)=>{n(70285),n(74114),n(23337),n(10143),n(92797),t.exports=n(47208).WeakMap},26610:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},29697:t=>{t.exports=function(){}},54677:t=>{t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},30498:(t,e,n)=>{var r=n(39632);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},69191:(t,e,n)=>{var r=n(1504),o=n(37154),i=n(46723);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if((u=s[l++])!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},97647:(t,e,n)=>{var r=n(61725),o=n(13115),i=n(60061),a=n(37154),u=n(41904);t.exports=function(t,e){var n=1==t,s=2==t,c=3==t,l=4==t,f=6==t,d=5==t||f,p=e||u;return function(e,u,v){for(var h,y,m=i(e),g=o(m),x=r(u,v,3),_=a(g.length),b=0,C=n?p(e,_):s?p(e,0):void 0;_>b;b++)if((d||b in g)&&(y=x(h=g[b],b,m),t))if(n)C[b]=y;else if(y)switch(t){case 3:return!0;case 5:return h;case 6:return b;case 2:C.push(h)}else if(l)return!1;return f?-1:c||l?l:C}}},88320:(t,e,n)=>{var r=n(39632),o=n(7359),i=n(24300)("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},41904:(t,e,n)=>{var r=n(88320);t.exports=function(t,e){return new(r(t))(e)}},45515:(t,e,n)=>{"use strict";var r=n(26610),o=n(39632),i=n(19897),a=[].slice,u={},construct=function(t,e,n){if(!(e in u)){for(var r=[],o=0;o<e;o++)r[o]="a["+o+"]";u[e]=Function("F,a","return new F("+r.join(",")+")")}return u[e](t,n)};t.exports=Function.bind||function bind(t){var e=r(this),n=a.call(arguments,1),bound=function(){var r=n.concat(a.call(arguments));return this instanceof bound?construct(e,r.length,r):i(e,r,t)};return o(e.prototype)&&(bound.prototype=e.prototype),bound}},8312:(t,e,n)=>{var r=n(41352),o=n(24300)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},41352:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},92600:(t,e,n)=>{"use strict";var r=n(13199),o=n(6758).getWeak,i=n(30498),a=n(39632),u=n(54677),s=n(25985),c=n(97647),l=n(20657),f=n(41081),d=c(5),p=c(6),v=0,uncaughtFrozenStore=function(t){return t._l||(t._l=new UncaughtFrozenStore)},UncaughtFrozenStore=function(){this.a=[]},findUncaughtFrozen=function(t,e){return d(t.a,(function(t){return t[0]===e}))};UncaughtFrozenStore.prototype={get:function(t){var e=findUncaughtFrozen(this,t);if(e)return e[1]},has:function(t){return!!findUncaughtFrozen(this,t)},set:function(t,e){var n=findUncaughtFrozen(this,t);n?n[1]=e:this.a.push([t,e])},delete:function(t){var e=p(this.a,(function(e){return e[0]===t}));return~e&&this.a.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,i){var c=t((function(t,r){u(t,c,e,"_i"),t._t=e,t._i=v++,t._l=void 0,null!=r&&s(r,n,t[i],t)}));return r(c.prototype,{delete:function(t){if(!a(t))return!1;var n=o(t);return!0===n?uncaughtFrozenStore(f(this,e)).delete(t):n&&l(n,this._i)&&delete n[this._i]},has:function has(t){if(!a(t))return!1;var n=o(t);return!0===n?uncaughtFrozenStore(f(this,e)).has(t):n&&l(n,this._i)}}),c},def:function(t,e,n){var r=o(i(e),!0);return!0===r?uncaughtFrozenStore(t).set(e,n):r[t._i]=n,t},ufstore:uncaughtFrozenStore}},70770:(t,e,n)=>{"use strict";var r=n(43280),o=n(98310),i=n(6758),a=n(90472),u=n(62292),s=n(13199),c=n(25985),l=n(54677),f=n(39632),d=n(2413),p=n(60510).f,v=n(97647)(0),h=n(75179);t.exports=function(t,e,n,y,m,g){var x=r[t],_=x,b=m?"set":"add",C=_&&_.prototype,S={};return h&&"function"==typeof _&&(g||C.forEach&&!a((function(){(new _).entries().next()})))?(_=e((function(e,n){l(e,_,t,"_c"),e._c=new x,null!=n&&c(n,m,e[b],e)})),v("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(t){var e="add"==t||"set"==t;!(t in C)||g&&"clear"==t||u(_.prototype,t,(function(n,r){if(l(this,_,t),!e&&g&&!f(n))return"get"==t&&void 0;var o=this._c[t](0===n?0:n,r);return e?this:o}))})),g||p(_.prototype,"size",{get:function(){return this._c.size}})):(_=y.getConstructor(e,t,m,b),s(_.prototype,n),i.NEED=!0),d(_,t),S[t]=_,o(o.G+o.W+o.F,S),g||y.setStrong(_,t,m),_}},47208:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},87352:(t,e,n)=>{"use strict";var r=n(60510),o=n(48439);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},61725:(t,e,n)=>{var r=n(26610);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},18239:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},75179:(t,e,n)=>{t.exports=!n(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(t,e,n)=>{var r=n(39632),o=n(43280).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},31986:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(t,e,n)=>{var r=n(86425),o=n(97739),i=n(67410);t.exports=function(t){var e=r(t),n=o.f;if(n)for(var a,u=n(t),s=i.f,c=0;u.length>c;)s.call(t,a=u[c++])&&e.push(a);return e}},98310:(t,e,n)=>{var r=n(43280),o=n(47208),i=n(61725),a=n(62292),u=n(20657),$export=function(t,e,n){var s,c,l,f=t&$export.F,d=t&$export.G,p=t&$export.S,v=t&$export.P,h=t&$export.B,y=t&$export.W,m=d?o:o[e]||(o[e]={}),g=m.prototype,x=d?r:p?r[e]:(r[e]||{}).prototype;for(s in d&&(n=e),n)(c=!f&&x&&void 0!==x[s])&&u(m,s)||(l=c?x[s]:n[s],m[s]=d&&"function"!=typeof x[s]?n[s]:h&&c?i(l,r):y&&x[s]==l?function(t){var F=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return F.prototype=t.prototype,F}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&$export.R&&g&&!g[s]&&a(g,s,l)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},90472:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},25985:(t,e,n)=>{var r=n(61725),o=n(93086),i=n(11827),a=n(30498),u=n(37154),s=n(26116),c={},l={},f=t.exports=function(t,e,n,f,d){var p,v,h,y,m=d?function(){return t}:s(t),g=r(n,f,e?2:1),x=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(p=u(t.length);p>x;x++)if((y=e?g(a(v=t[x])[0],v[1]):g(t[x]))===c||y===l)return y}else for(h=m.call(t);!(v=h.next()).done;)if((y=o(h,g,v.value,e))===c||y===l)return y};f.BREAK=c,f.RETURN=l},43280:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},20657:t=>{var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},62292:(t,e,n)=>{var r=n(60510),o=n(48439);t.exports=n(75179)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},92477:(t,e,n)=>{var r=n(43280).document;t.exports=r&&r.documentElement},64457:(t,e,n)=>{t.exports=!n(75179)&&!n(90472)((function(){return 7!=Object.defineProperty(n(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:t=>{t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},13115:(t,e,n)=>{var r=n(41352);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},11827:(t,e,n)=>{var r=n(79105),o=n(24300)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},7359:(t,e,n)=>{var r=n(41352);t.exports=Array.isArray||function isArray(t){return"Array"==r(t)}},39632:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},93086:(t,e,n)=>{var r=n(30498);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},19802:(t,e,n)=>{"use strict";var r=n(82488),o=n(48439),i=n(2413),a={};n(62292)(a,n(24300)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},6125:(t,e,n)=>{"use strict";var r=n(36794),o=n(98310),i=n(19312),a=n(62292),u=n(79105),s=n(19802),c=n(2413),l=n(999),f=n(24300)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",v="values",returnThis=function(){return this};t.exports=function(t,e,n,h,y,m,g){s(n,e,h);var x,_,b,getMethod=function(t){if(!d&&t in O)return O[t];switch(t){case p:return function keys(){return new n(this,t)};case v:return function values(){return new n(this,t)}}return function entries(){return new n(this,t)}},C=e+" Iterator",S=y==v,w=!1,O=t.prototype,E=O[f]||O["@@iterator"]||y&&O[y],P=E||getMethod(y),I=y?S?getMethod("entries"):P:void 0,T="Array"==e&&O.entries||E;if(T&&(b=l(T.call(new t)))!==Object.prototype&&b.next&&(c(b,C,!0),r||"function"==typeof b[f]||a(b,f,returnThis)),S&&E&&E.name!==v&&(w=!0,P=function values(){return E.call(this)}),r&&!g||!d&&!w&&O[f]||a(O,f,P),u[e]=P,u[C]=returnThis,y)if(x={values:S?P:getMethod(v),keys:m?P:getMethod(p),entries:I},g)for(_ in x)_ in O||i(O,_,x[_]);else o(o.P+o.F*(d||w),e,x);return x}},26797:(t,e,n)=>{var r=n(24300)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},9329:t=>{t.exports=function(t,e){return{value:e,done:!!t}}},79105:t=>{t.exports={}},36794:t=>{t.exports=!0},6758:(t,e,n)=>{var r=n(54251)("meta"),o=n(39632),i=n(20657),a=n(60510).f,u=0,s=Object.isExtensible||function(){return!0},c=!n(90472)((function(){return s(Object.preventExtensions({}))})),setMeta=function(t){a(t,r,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:r,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!s(t))return"F";if(!e)return"E";setMeta(t)}return t[r].i},getWeak:function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;setMeta(t)}return t[r].w},onFreeze:function(t){return c&&l.NEED&&s(t)&&!i(t,r)&&setMeta(t),t}}},4326:(t,e,n)=>{var r=n(43280),o=n(6022).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,s="process"==n(41352)(a);t.exports=function(){var t,e,n,flush=function(){var r,o;for(s&&(r=a.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(s)n=function(){a.nextTick(flush)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var c=u.resolve(void 0);n=function(){c.then(flush)}}else n=function(){o.call(r,flush)};else{var l=!0,f=document.createTextNode("");new i(flush).observe(f,{characterData:!0}),n=function(){f.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},88579:(t,e,n)=>{"use strict";var r=n(26610);function PromiseCapability(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new PromiseCapability(t)}},77995:(t,e,n)=>{"use strict";var r=n(75179),o=n(86425),i=n(97739),a=n(67410),u=n(60061),s=n(13115),c=Object.assign;t.exports=!c||n(90472)((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r}))?function assign(t,e){for(var n=u(t),c=arguments.length,l=1,f=i.f,d=a.f;c>l;)for(var p,v=s(arguments[l++]),h=f?o(v).concat(f(v)):o(v),y=h.length,m=0;y>m;)p=h[m++],r&&!d.call(v,p)||(n[p]=v[p]);return n}:c},82488:(t,e,n)=>{var r=n(30498),o=n(36607),i=n(31986),a=n(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var t,e=n(48765)("iframe"),r=i.length;for(e.style.display="none",n(92477).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),createDict=t.F;r--;)delete createDict.prototype[i[r]];return createDict()};t.exports=Object.create||function create(t,e){var n;return null!==t?(Empty.prototype=r(t),n=new Empty,Empty.prototype=null,n[a]=t):n=createDict(),void 0===e?n:o(n,e)}},60510:(t,e,n)=>{var r=n(30498),o=n(64457),i=n(12737),a=Object.defineProperty;e.f=n(75179)?Object.defineProperty:function defineProperty(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},36607:(t,e,n)=>{var r=n(60510),o=n(30498),i=n(86425);t.exports=n(75179)?Object.defineProperties:function defineProperties(t,e){o(t);for(var n,a=i(e),u=a.length,s=0;u>s;)r.f(t,n=a[s++],e[n]);return t}},83264:(t,e,n)=>{var r=n(67410),o=n(48439),i=n(1504),a=n(12737),u=n(20657),s=n(64457),c=Object.getOwnPropertyDescriptor;e.f=n(75179)?c:function getOwnPropertyDescriptor(t,e){if(t=i(t),e=a(e,!0),s)try{return c(t,e)}catch(t){}if(u(t,e))return o(!r.f.call(t,e),t[e])}},26084:(t,e,n)=>{var r=n(1504),o=n(8772).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return a&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return a.slice()}}(t):o(r(t))}},8772:(t,e,n)=>{var r=n(65326),o=n(31986).concat("length","prototype");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return r(t,o)}},97739:(t,e)=>{e.f=Object.getOwnPropertySymbols},999:(t,e,n)=>{var r=n(20657),o=n(60061),i=n(18478)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},65326:(t,e,n)=>{var r=n(20657),o=n(1504),i=n(69191)(!1),a=n(18478)("IE_PROTO");t.exports=function(t,e){var n,u=o(t),s=0,c=[];for(n in u)n!=a&&r(u,n)&&c.push(n);for(;e.length>s;)r(u,n=e[s++])&&(~i(c,n)||c.push(n));return c}},86425:(t,e,n)=>{var r=n(65326),o=n(31986);t.exports=Object.keys||function keys(t){return r(t,o)}},67410:(t,e)=>{e.f={}.propertyIsEnumerable},57972:(t,e,n)=>{var r=n(98310),o=n(47208),i=n(90472);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},9480:(t,e,n)=>{var r=n(75179),o=n(86425),i=n(1504),a=n(67410).f;t.exports=function(t){return function(e){for(var n,u=i(e),s=o(u),c=s.length,l=0,f=[];c>l;)n=s[l++],r&&!a.call(u,n)||f.push(t?[n,u[n]]:u[n]);return f}}},64344:(t,e,n)=>{var r=n(8772),o=n(97739),i=n(30498),a=n(43280).Reflect;t.exports=a&&a.ownKeys||function ownKeys(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},52745:t=>{t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},88747:(t,e,n)=>{var r=n(30498),o=n(39632),i=n(88579);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},48439:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},13199:(t,e,n)=>{var r=n(62292);t.exports=function(t,e,n){for(var o in e)n&&t[o]?t[o]=e[o]:r(t,o,e[o]);return t}},19312:(t,e,n)=>{t.exports=n(62292)},14689:(t,e,n)=>{"use strict";var r=n(98310),o=n(26610),i=n(61725),a=n(25985);t.exports=function(t){r(r.S,t,{from:function from(t){var e,n,r,u,s=arguments[1];return o(this),(e=void 0!==s)&&o(s),null==t?new this:(n=[],e?(r=0,u=i(s,arguments[2],2),a(t,!1,(function(t){n.push(u(t,r++))}))):a(t,!1,n.push,n),new this(n))}})}},7883:(t,e,n)=>{"use strict";var r=n(98310);t.exports=function(t){r(r.S,t,{of:function of(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)}})}},25574:(t,e,n)=>{var r=n(39632),o=n(30498),check=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(61725)(Function.call,n(83264).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function setPrototypeOf(t,n){return check(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check}},5698:(t,e,n)=>{"use strict";var r=n(43280),o=n(47208),i=n(60510),a=n(75179),u=n(24300)("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:r[t];a&&e&&!e[u]&&i.f(e,u,{configurable:!0,get:function(){return this}})}},2413:(t,e,n)=>{var r=n(60510).f,o=n(20657),i=n(24300)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},18478:(t,e,n)=>{var r=n(29990)("keys"),o=n(54251);t.exports=function(t){return r[t]||(r[t]=o(t))}},29990:(t,e,n)=>{var r=n(47208),o=n(43280),i="__core-js_shared__",a=o[i]||(o[i]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},73732:(t,e,n)=>{var r=n(30498),o=n(26610),i=n(24300)("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||null==(n=r(a)[i])?e:o(n)}},78502:(t,e,n)=>{var r=n(58290),o=n(18239);t.exports=function(t){return function(e,n){var i,a,u=String(o(e)),s=r(n),c=u.length;return s<0||s>=c?t?"":void 0:(i=u.charCodeAt(s))<55296||i>56319||s+1===c||(a=u.charCodeAt(s+1))<56320||a>57343?t?u.charAt(s):i:t?u.slice(s,s+2):a-56320+(i-55296<<10)+65536}}},6022:(t,e,n)=>{var r,o,i,a=n(61725),u=n(19897),s=n(92477),c=n(48765),l=n(43280),f=l.process,d=l.setImmediate,p=l.clearImmediate,v=l.MessageChannel,h=l.Dispatch,y=0,m={},g="onreadystatechange",run=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},listener=function(t){run.call(t.data)};d&&p||(d=function setImmediate(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++y]=function(){u("function"==typeof t?t:Function(t),e)},r(y),y},p=function clearImmediate(t){delete m[t]},"process"==n(41352)(f)?r=function(t){f.nextTick(a(run,t,1))}:h&&h.now?r=function(t){h.now(a(run,t,1))}:v?(i=(o=new v).port2,o.port1.onmessage=listener,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",listener,!1)):r=g in c("script")?function(t){s.appendChild(c("script")).onreadystatechange=function(){s.removeChild(this),run.call(t)}}:function(t){setTimeout(a(run,t,1),0)}),t.exports={set:d,clear:p}},46723:(t,e,n)=>{var r=n(58290),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},58290:t=>{var e=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:e)(t)}},1504:(t,e,n)=>{var r=n(13115),o=n(18239);t.exports=function(t){return r(o(t))}},37154:(t,e,n)=>{var r=n(58290),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},60061:(t,e,n)=>{var r=n(18239);t.exports=function(t){return Object(r(t))}},12737:(t,e,n)=>{var r=n(39632);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},54251:t=>{var e=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+n).toString(36))}},35701:(t,e,n)=>{var r=n(43280).navigator;t.exports=r&&r.userAgent||""},41081:(t,e,n)=>{var r=n(39632);t.exports=function(t,e){if(!r(t)||t._t!==e)throw TypeError("Incompatible receiver, "+e+" required!");return t}},31164:(t,e,n)=>{var r=n(43280),o=n(47208),i=n(36794),a=n(7273),u=n(60510).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},7273:(t,e,n)=>{e.f=n(24300)},24300:(t,e,n)=>{var r=n(29990)("wks"),o=n(54251),i=n(43280).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},26116:(t,e,n)=>{var r=n(8312),o=n(24300)("iterator"),i=n(79105);t.exports=n(47208).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},37627:(t,e,n)=>{"use strict";var r=n(61725),o=n(98310),i=n(60061),a=n(93086),u=n(11827),s=n(37154),c=n(87352),l=n(26116);o(o.S+o.F*!n(26797)((function(t){Array.from(t)})),"Array",{from:function from(t){var e,n,o,f,d=i(t),p="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,y=void 0!==h,m=0,g=l(d);if(y&&(h=r(h,v>2?arguments[2]:void 0,2)),null==g||p==Array&&u(g))for(n=new p(e=s(d.length));e>m;m++)c(n,m,y?h(d[m],m):d[m]);else for(f=g.call(d),n=new p;!(o=f.next()).done;m++)c(n,m,y?a(f,h,[o.value,m],!0):o.value);return n.length=m,n}})},42580:(t,e,n)=>{var r=n(98310);r(r.S,"Array",{isArray:n(7359)})},84411:(t,e,n)=>{"use strict";var r=n(29697),o=n(9329),i=n(79105),a=n(1504);t.exports=n(6125)(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},99954:(t,e,n)=>{var r=n(98310);r(r.S+r.F,"Object",{assign:n(77995)})},30785:(t,e,n)=>{var r=n(98310);r(r.S,"Object",{create:n(82488)})},23078:(t,e,n)=>{var r=n(98310);r(r.S+r.F*!n(75179),"Object",{defineProperties:n(36607)})},40168:(t,e,n)=>{var r=n(98310);r(r.S+r.F*!n(75179),"Object",{defineProperty:n(60510).f})},18576:(t,e,n)=>{var r=n(1504),o=n(83264).f;n(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(t,e){return o(r(t),e)}}))},4840:(t,e,n)=>{var r=n(60061),o=n(999);n(57972)("getPrototypeOf",(function(){return function getPrototypeOf(t){return o(r(t))}}))},5453:(t,e,n)=>{var r=n(60061),o=n(86425);n(57972)("keys",(function(){return function keys(t){return o(r(t))}}))},13890:(t,e,n)=>{var r=n(98310);r(r.S,"Object",{setPrototypeOf:n(25574).set})},70285:()=>{},86082:(t,e,n)=>{"use strict";var r,o,i,a,u=n(36794),s=n(43280),c=n(61725),l=n(8312),f=n(98310),d=n(39632),p=n(26610),v=n(54677),h=n(25985),y=n(73732),m=n(6022).set,g=n(4326)(),x=n(88579),_=n(52745),b=n(35701),C=n(88747),S="Promise",w=s.TypeError,O=s.process,E=O&&O.versions,P=E&&E.v8||"",I=s.Promise,T="process"==l(O),empty=function(){},j=o=x.f,k=!!function(){try{var t=I.resolve(1),e=(t.constructor={})[n(24300)("species")]=function(t){t(empty,empty)};return(T||"function"==typeof PromiseRejectionEvent)&&t.then(empty)instanceof e&&0!==P.indexOf("6.6")&&-1===b.indexOf("Chrome/66")}catch(t){}}(),isThenable=function(t){var e;return!(!d(t)||"function"!=typeof(e=t.then))&&e},notify=function(t,e){if(!t._n){t._n=!0;var n=t._c;g((function(){for(var r=t._v,o=1==t._s,i=0,run=function(e){var n,i,a,u=o?e.ok:e.fail,s=e.resolve,c=e.reject,l=e.domain;try{u?(o||(2==t._h&&onHandleUnhandled(t),t._h=1),!0===u?n=r:(l&&l.enter(),n=u(r),l&&(l.exit(),a=!0)),n===e.promise?c(w("Promise-chain cycle")):(i=isThenable(n))?i.call(n,s,c):s(n)):c(r)}catch(t){l&&!a&&l.exit(),c(t)}};n.length>i;)run(n[i++]);t._c=[],t._n=!1,e&&!t._h&&onUnhandled(t)}))}},onUnhandled=function(t){m.call(s,(function(){var e,n,r,o=t._v,i=isUnhandled(t);if(i&&(e=_((function(){T?O.emit("unhandledRejection",o,t):(n=s.onunhandledrejection)?n({promise:t,reason:o}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=T||isUnhandled(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},isUnhandled=function(t){return 1!==t._h&&0===(t._a||t._c).length},onHandleUnhandled=function(t){m.call(s,(function(){var e;T?O.emit("rejectionHandled",t):(e=s.onrejectionhandled)&&e({promise:t,reason:t._v})}))},$reject=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),notify(e,!0))},$resolve=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw w("Promise can't be resolved itself");(e=isThenable(t))?g((function(){var r={_w:n,_d:!1};try{e.call(t,c($resolve,r,1),c($reject,r,1))}catch(t){$reject.call(r,t)}})):(n._v=t,n._s=1,notify(n,!1))}catch(t){$reject.call({_w:n,_d:!1},t)}}};k||(I=function Promise(t){v(this,I,S,"_h"),p(t),r.call(this);try{t(c($resolve,this,1),c($reject,this,1))}catch(t){$reject.call(this,t)}},(r=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(13199)(I.prototype,{then:function then(t,e){var n=j(y(this,I));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=T?O.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&notify(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=c($resolve,t,1),this.reject=c($reject,t,1)},x.f=j=function(t){return t===I||t===a?new i(t):o(t)}),f(f.G+f.W+f.F*!k,{Promise:I}),n(2413)(I,S),n(5698)(S),a=n(47208).Promise,f(f.S+f.F*!k,S,{reject:function reject(t){var e=j(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(u||!k),S,{resolve:function resolve(t){return C(u&&this===a?I:this,t)}}),f(f.S+f.F*!(k&&n(26797)((function(t){I.all(t).catch(empty)}))),S,{all:function all(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=_((function(){var n=[],i=0,a=1;h(t,!1,(function(t){var u=i++,s=!1;n.push(void 0),a++,e.resolve(t).then((function(t){s||(s=!0,n[u]=t,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function race(t){var e=this,n=j(e),r=n.reject,o=_((function(){h(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},11320:(t,e,n)=>{var r=n(98310),o=n(82488),i=n(26610),a=n(30498),u=n(39632),s=n(90472),c=n(45515),l=(n(43280).Reflect||{}).construct,f=s((function(){function F(){}return!(l((function(){}),[],F)instanceof F)})),d=!s((function(){l((function(){}))}));r(r.S+r.F*(f||d),"Reflect",{construct:function construct(t,e){i(t),a(e);var n=arguments.length<3?t:i(arguments[2]);if(d&&!f)return l(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var r=[null];return r.push.apply(r,e),new(c.apply(t,r))}var s=n.prototype,p=o(u(s)?s:Object.prototype),v=Function.apply.call(t,p,e);return u(v)?v:p}})},99572:(t,e,n)=>{"use strict";var r=n(78502)(!0);n(6125)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},54370:(t,e,n)=>{"use strict";var r=n(43280),o=n(20657),i=n(75179),a=n(98310),u=n(19312),s=n(6758).KEY,c=n(90472),l=n(29990),f=n(2413),d=n(54251),p=n(24300),v=n(7273),h=n(31164),y=n(42266),m=n(7359),g=n(30498),x=n(39632),_=n(60061),b=n(1504),C=n(12737),S=n(48439),w=n(82488),O=n(26084),E=n(83264),P=n(97739),I=n(60510),T=n(86425),j=E.f,k=I.f,A=O.f,M=r.Symbol,R=r.JSON,L=R&&R.stringify,N=p("_hidden"),D=p("toPrimitive"),G={}.propertyIsEnumerable,q=l("symbol-registry"),W=l("symbols"),B=l("op-symbols"),$=Object.prototype,z="function"==typeof M&&!!P.f,H=r.QObject,U=!H||!H.prototype||!H.prototype.findChild,V=i&&c((function(){return 7!=w(k({},"a",{get:function(){return k(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=j($,e);r&&delete $[e],k(t,e,n),r&&t!==$&&k($,e,r)}:k,wrap=function(t){var e=W[t]=w(M.prototype);return e._k=t,e},K=z&&"symbol"==typeof M.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof M},Q=function defineProperty(t,e,n){return t===$&&Q(B,e,n),g(t),e=C(e,!0),g(n),o(W,e)?(n.enumerable?(o(t,N)&&t[N][e]&&(t[N][e]=!1),n=w(n,{enumerable:S(0,!1)})):(o(t,N)||k(t,N,S(1,{})),t[N][e]=!0),V(t,e,n)):k(t,e,n)},J=function defineProperties(t,e){g(t);for(var n,r=y(e=b(e)),o=0,i=r.length;i>o;)Q(t,n=r[o++],e[n]);return t},Y=function propertyIsEnumerable(t){var e=G.call(this,t=C(t,!0));return!(this===$&&o(W,t)&&!o(B,t))&&(!(e||!o(this,t)||!o(W,t)||o(this,N)&&this[N][t])||e)},X=function getOwnPropertyDescriptor(t,e){if(t=b(t),e=C(e,!0),t!==$||!o(W,e)||o(B,e)){var n=j(t,e);return!n||!o(W,e)||o(t,N)&&t[N][e]||(n.enumerable=!0),n}},Z=function getOwnPropertyNames(t){for(var e,n=A(b(t)),r=[],i=0;n.length>i;)o(W,e=n[i++])||e==N||e==s||r.push(e);return r},tt=function getOwnPropertySymbols(t){for(var e,n=t===$,r=A(n?B:b(t)),i=[],a=0;r.length>a;)!o(W,e=r[a++])||n&&!o($,e)||i.push(W[e]);return i};z||(u((M=function Symbol(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),$set=function(e){this===$&&$set.call(B,e),o(this,N)&&o(this[N],t)&&(this[N][t]=!1),V(this,t,S(1,e))};return i&&U&&V($,t,{configurable:!0,set:$set}),wrap(t)}).prototype,"toString",(function toString(){return this._k})),E.f=X,I.f=Q,n(8772).f=O.f=Z,n(67410).f=Y,P.f=tt,i&&!n(36794)&&u($,"propertyIsEnumerable",Y,!0),v.f=function(t){return wrap(p(t))}),a(a.G+a.W+a.F*!z,{Symbol:M});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)p(et[nt++]);for(var rt=T(p.store),ot=0;rt.length>ot;)h(rt[ot++]);a(a.S+a.F*!z,"Symbol",{for:function(t){return o(q,t+="")?q[t]:q[t]=M(t)},keyFor:function keyFor(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var e in q)if(q[e]===t)return e},useSetter:function(){U=!0},useSimple:function(){U=!1}}),a(a.S+a.F*!z,"Object",{create:function create(t,e){return void 0===e?w(t):J(w(t),e)},defineProperty:Q,defineProperties:J,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:tt});var it=c((function(){P.f(1)}));a(a.S+a.F*it,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(t){return P.f(_(t))}}),R&&a(a.S+a.F*(!z||c((function(){var t=M();return"[null]"!=L([t])||"{}"!=L({a:t})||"{}"!=L(Object(t))}))),"JSON",{stringify:function stringify(t){for(var e,n,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=e=r[1],(x(e)||void 0!==t)&&!K(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!K(e))return e}),r[1]=e,L.apply(R,r)}}),M.prototype[D]||n(62292)(M.prototype,D,M.prototype.valueOf),f(M,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},23337:(t,e,n)=>{"use strict";var r,o=n(43280),i=n(97647)(0),a=n(19312),u=n(6758),s=n(77995),c=n(92600),l=n(39632),f=n(41081),d=n(41081),p=!o.ActiveXObject&&"ActiveXObject"in o,v="WeakMap",h=u.getWeak,y=Object.isExtensible,m=c.ufstore,wrapper=function(t){return function WeakMap(){return t(this,arguments.length>0?arguments[0]:void 0)}},g={get:function get(t){if(l(t)){var e=h(t);return!0===e?m(f(this,v)).get(t):e?e[this._i]:void 0}},set:function set(t,e){return c.def(f(this,v),t,e)}},x=t.exports=n(70770)(v,wrapper,g,c,!0,!0);d&&p&&(s((r=c.getConstructor(wrapper,v)).prototype,g),u.NEED=!0,i(["delete","has","get","set"],(function(t){var e=x.prototype,n=e[t];a(e,t,(function(e,o){if(l(e)&&!y(e)){this._f||(this._f=new r);var i=this._f[t](e,o);return"set"==t?this:i}return n.call(this,e,o)}))})))},67685:(t,e,n)=>{var r=n(98310),o=n(64344),i=n(1504),a=n(83264),u=n(87352);r(r.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var e,n,r=i(t),s=a.f,c=o(r),l={},f=0;c.length>f;)void 0!==(n=s(r,e=c[f++]))&&u(l,e,n);return l}})},57188:(t,e,n)=>{var r=n(98310),o=n(9480)(!1);r(r.S,"Object",{values:function values(t){return o(t)}})},81522:(t,e,n)=>{"use strict";var r=n(98310),o=n(47208),i=n(43280),a=n(73732),u=n(88747);r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return u(e,t()).then((function(){return n}))}:t,n?function(n){return u(e,t()).then((function(){throw n}))}:t)}})},25757:(t,e,n)=>{"use strict";var r=n(98310),o=n(88579),i=n(52745);r(r.S,"Promise",{try:function(t){var e=o.f(this),n=i(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},87573:(t,e,n)=>{n(31164)("asyncIterator")},97224:(t,e,n)=>{n(31164)("observable")},92797:(t,e,n)=>{n(14689)("WeakMap")},10143:(t,e,n)=>{n(7883)("WeakMap")},74114:(t,e,n)=>{n(84411);for(var r=n(43280),o=n(62292),i=n(79105),a=n(24300)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<u.length;s++){var c=u[s],l=r[c],f=l&&l.prototype;f&&!f[a]&&o(f,a,c),i[c]=i.Array}},22761:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},42094:(t,e,n)=>{var r=n(62190)("unscopables"),o=Array.prototype;null==o[r]&&n(74216)(o,r,{}),t.exports=function(t){o[r][t]=!0}},6365:(t,e,n)=>{var r=n(67334);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},59021:(t,e,n)=>{var r=n(15703),o=n(26078),i=n(78615);t.exports=function(t){return function(e,n,a){var u,s=r(e),c=o(s.length),l=i(a,c);if(t&&n!=n){for(;c>l;)if((u=s[l++])!=u)return!0}else for(;c>l;l++)if((t||l in s)&&s[l]===n)return t||l||0;return!t&&-1}}},78309:(t,e,n)=>{var r=n(11528),o=n(8467),i=n(26033),a=n(26078),u=n(63531);t.exports=function(t,e){var n=1==t,s=2==t,c=3==t,l=4==t,f=6==t,d=5==t||f,p=e||u;return function(e,u,v){for(var h,y,m=i(e),g=o(m),x=r(u,v,3),_=a(g.length),b=0,C=n?p(e,_):s?p(e,0):void 0;_>b;b++)if((d||b in g)&&(y=x(h=g[b],b,m),t))if(n)C[b]=y;else if(y)switch(t){case 3:return!0;case 5:return h;case 6:return b;case 2:C.push(h)}else if(l)return!1;return f?-1:c||l?l:C}}},81071:(t,e,n)=>{var r=n(67334),o=n(99141),i=n(62190)("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},63531:(t,e,n)=>{var r=n(81071);t.exports=function(t,e){return new(r(t))(e)}},20106:(t,e,n)=>{var r=n(26688),o=n(62190)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},26688:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},60066:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},11528:(t,e,n)=>{var r=n(22761);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},61622:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},36628:(t,e,n)=>{t.exports=!n(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(t,e,n)=>{var r=n(67334),o=n(38113).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},65772:(t,e,n)=>{var r=n(38113),o=n(60066),i=n(74216),a=n(17738),u=n(11528),$export=function(t,e,n){var s,c,l,f,d=t&$export.F,p=t&$export.G,v=t&$export.S,h=t&$export.P,y=t&$export.B,m=p?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,g=p?o:o[e]||(o[e]={}),x=g.prototype||(g.prototype={});for(s in p&&(n=e),n)l=((c=!d&&m&&void 0!==m[s])?m:n)[s],f=y&&c?u(l,r):h&&"function"==typeof l?u(Function.call,l):l,m&&a(m,s,l,t&$export.U),g[s]!=l&&i(g,s,f),h&&x[s]!=l&&(x[s]=l)};r.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},86570:(t,e,n)=>{var r=n(62190)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},48625:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},74859:(t,e,n)=>{"use strict";var r=n(6365);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},20646:(t,e,n)=>{t.exports=n(8655)("native-function-to-string",Function.toString)},38113:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},54040:t=>{var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},74216:(t,e,n)=>{var r=n(98558),o=n(36061);t.exports=n(36628)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},5100:(t,e,n)=>{t.exports=!n(36628)&&!n(48625)((function(){return 7!=Object.defineProperty(n(5050)("div"),"a",{get:function(){return 7}}).a}))},8467:(t,e,n)=>{var r=n(26688);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},99141:(t,e,n)=>{var r=n(26688);t.exports=Array.isArray||function isArray(t){return"Array"==r(t)}},67334:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},94587:(t,e,n)=>{var r=n(67334),o=n(26688),i=n(62190)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},81422:t=>{t.exports=!1},98558:(t,e,n)=>{var r=n(6365),o=n(5100),i=n(31382),a=Object.defineProperty;e.f=n(36628)?Object.defineProperty:function defineProperty(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},36061:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},17738:(t,e,n)=>{var r=n(38113),o=n(74216),i=n(54040),a=n(25078)("src"),u=n(20646),s="toString",c=(""+u).split(s);n(60066).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:u?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,s,(function toString(){return"function"==typeof this&&this[a]||u.call(this)}))},8655:(t,e,n)=>{var r=n(60066),o=n(38113),i="__core-js_shared__",a=o[i]||(o[i]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},10225:(t,e,n)=>{"use strict";var r=n(48625);t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},465:(t,e,n)=>{var r=n(94587),o=n(61622);t.exports=function(t,e,n){if(r(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(t))}},65776:(t,e,n)=>{var r=n(65772),o=n(48625),i=n(61622),a=/"/g,createHTML=function(t,e,n,r){var o=String(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),u+">"+o+"</"+e+">"};t.exports=function(t,e){var n={};n[t]=e(createHTML),r(r.P+r.F*o((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3})),"String",n)}},78615:(t,e,n)=>{var r=n(3338),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},3338:t=>{var e=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:e)(t)}},15703:(t,e,n)=>{var r=n(8467),o=n(61622);t.exports=function(t){return r(o(t))}},26078:(t,e,n)=>{var r=n(3338),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},26033:(t,e,n)=>{var r=n(61622);t.exports=function(t){return Object(r(t))}},31382:(t,e,n)=>{var r=n(67334);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},25078:t=>{var e=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+n).toString(36))}},62190:(t,e,n)=>{var r=n(8655)("wks"),o=n(25078),i=n(38113).Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},64434:(t,e,n)=>{"use strict";var r=n(65772),o=n(78309)(2);r(r.P+r.F*!n(10225)([].filter,!0),"Array",{filter:function filter(t){return o(this,t,arguments[1])}})},71954:(t,e,n)=>{"use strict";var r=n(65772),o=n(78309)(5),i="find",a=!0;i in[]&&Array(1).find((function(){a=!1})),r(r.P+r.F*a,"Array",{find:function find(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(42094)(i)},90286:(t,e,n)=>{"use strict";var r=n(65772),o=n(78309)(1);r(r.P+r.F*!n(10225)([].map,!0),"Array",{map:function map(t){return o(this,t,arguments[1])}})},99745:(t,e,n)=>{var r=n(98558).f,o=Function.prototype,i=/^\s*function ([^ (]*)/,a="name";a in o||n(36628)&&r(o,a,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(t){return""}}})},76139:(t,e,n)=>{"use strict";var r=n(20106),o={};o[n(62190)("toStringTag")]="z",o+""!="[object z]"&&n(17738)(Object.prototype,"toString",(function toString(){return"[object "+r(this)+"]"}),!0)},40751:(t,e,n)=>{n(36628)&&"g"!=/./g.flags&&n(98558).f(RegExp.prototype,"flags",{configurable:!0,get:n(74859)})},44321:(t,e,n)=>{"use strict";n(40751);var r=n(6365),o=n(74859),i=n(36628),a="toString",u=/./.toString,define=function(t){n(17738)(RegExp.prototype,a,t,!0)};n(48625)((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?define((function toString(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):u.name!=a&&define((function toString(){return u.call(this)}))},3777:(t,e,n)=>{"use strict";var r=n(65772),o=n(465),i="includes";r(r.P+r.F*n(86570)(i),"String",{includes:function includes(t){return!!~o(this,t,i).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},10195:(t,e,n)=>{"use strict";n(65776)("sub",(function(t){return function sub(){return t(this,"sub","","")}}))},38081:(t,e,n)=>{"use strict";var r=n(65772),o=n(59021)(!0);r(r.P,"Array",{includes:function includes(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(42094)("includes")},58772:(t,e,n)=>{"use strict";var r=n(90331);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,t.exports=function(){function shim(t,e,n,o,i,a){if(a!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function getShim(){return shim}shim.isRequired=shim;var t={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return t.PropTypes=t,t}},23615:(t,e,n)=>{t.exports=n(58772)()},90331:t=>{"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},86248:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function define(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}catch(t){define=function(t,e,n){return t[e]=n}}function wrap(t,e,n,r){var o=e&&e.prototype instanceof Generator?e:Generator,i=Object.create(o.prototype),a=new Context(r||[]);return i._invoke=function makeInvokeMethod(t,e,n){var r=s;return function invoke(o,i){if(r===l)throw new Error("Generator is already running");if(r===f){if("throw"===o)throw i;return doneResult()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=maybeInvokeDelegate(a,n);if(u){if(u===d)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===s)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=l;var p=tryCatch(t,e,n);if("normal"===p.type){if(r=n.done?f:c,p.arg===d)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(r=f,n.method="throw",n.arg=p.arg)}}}(t,n,a),i}function tryCatch(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=wrap;var s="suspendedStart",c="suspendedYield",l="executing",f="completed",d={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};p[i]=function(){return this};var v=Object.getPrototypeOf,h=v&&v(v(values([])));h&&h!==n&&r.call(h,i)&&(p=h);var y=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(n,o,i,a){var u=tryCatch(t[n],t,o);if("throw"!==u.type){var s=u.arg,c=s.value;return c&&"object"==typeof c&&r.call(c,"__await")?e.resolve(c.__await).then((function(t){invoke("next",t,i,a)}),(function(t){invoke("throw",t,i,a)})):e.resolve(c).then((function(t){s.value=t,i(s)}),(function(t){return invoke("throw",t,i,a)}))}a(u.arg)}var n;this._invoke=function enqueue(t,r){function callInvokeWithMethodAndArg(){return new e((function(e,n){invoke(t,r,e,n)}))}return n=n?n.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,maybeInvokeDelegate(t,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=tryCatch(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function next(){for(;++o<t.length;)if(r.call(t,o))return next.value=t[o],next.done=!1,next;return next.value=e,next.done=!0,next};return a.next=a}}return{next:doneResult}}function doneResult(){return{value:e,done:!0}}return GeneratorFunction.prototype=y.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(y),t},t.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[a]=function(){return this},t.AsyncIterator=AsyncIterator,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(y),define(y,u,"Generator"),y[i]=function(){return this},y.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function next(){for(;e.length;){var n=e.pop();if(n in t)return next.value=n,next.done=!1,next}return next.done=!0,next}},t.values=values,Context.prototype={constructor:Context,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(resetTryEntry),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function handle(r,o){return a.type="throw",a.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var u=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(u&&s){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),resetTryEntry(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;resetTryEntry(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:values(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},63804:t=>{"use strict";t.exports=React},78675:t=>{"use strict";t.exports=elementorAppPackages.appUi},18194:t=>{"use strict";t.exports=wp.i18n}},e={};(function __webpack_require__(n){var r=e[n];if(void 0!==r)return r.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,__webpack_require__),o.exports})(40474)})();PK!��v��4assets/js/search-form.fda69e244861c6890e79.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["search-form"],{

/***/ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js":
/*!****************************************************************************!*\
  !*** ../modules/theme-elements/assets/js/frontend/handlers/search-form.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        wrapper: '.elementor-search-form',
        container: '.elementor-search-form__container',
        icon: '.elementor-search-form__icon',
        input: '.elementor-search-form__input',
        toggle: '.elementor-search-form__toggle',
        submit: '.elementor-search-form__submit',
        closeButton: '.dialog-close-button'
      },
      classes: {
        isFocus: 'elementor-search-form--focus',
        isFullScreen: 'elementor-search-form--full-screen',
        lightbox: 'elementor-lightbox'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$wrapper = this.$element.find(selectors.wrapper);
    elements.$container = this.$element.find(selectors.container);
    elements.$input = this.$element.find(selectors.input);
    elements.$icon = this.$element.find(selectors.icon);
    elements.$toggle = this.$element.find(selectors.toggle);
    elements.$submit = this.$element.find(selectors.submit);
    elements.$closeButton = this.$element.find(selectors.closeButton);
    return elements;
  },

  bindEvents() {
    var self = this,
        $container = self.elements.$container,
        $closeButton = self.elements.$closeButton,
        $input = self.elements.$input,
        $wrapper = self.elements.$wrapper,
        $icon = self.elements.$icon,
        skin = this.getElementSettings('skin'),
        classes = this.getSettings('classes');

    if ('full_screen' === skin) {
      // Activate full-screen mode on click
      self.elements.$toggle.on('click', function () {
        $container.toggleClass(classes.isFullScreen).toggleClass(classes.lightbox);
        $input.trigger('focus');
      }); // Deactivate full-screen mode on click or on esc.

      $container.on('click', function (event) {
        if ($container.hasClass(classes.isFullScreen) && $container[0] === event.target) {
          $container.removeClass(classes.isFullScreen).removeClass(classes.lightbox);
        }
      });
      $closeButton.on('click', function () {
        $container.removeClass(classes.isFullScreen).removeClass(classes.lightbox);
      });
      elementorFrontend.elements.$document.on('keyup', function (event) {
        var ESC_KEY = 27;

        if (ESC_KEY === event.keyCode) {
          if ($container.hasClass(classes.isFullScreen)) {
            $container.trigger('click');
          }
        }
      });
    } else {
      // Apply focus style on wrapper element when input is focused
      $input.on({
        focus() {
          $wrapper.addClass(classes.isFocus);
        },

        blur() {
          $wrapper.removeClass(classes.isFocus);
        }

      });
    }

    if ('minimal' === skin) {
      // Apply focus style on wrapper element when icon is clicked in minimal skin
      $icon.on('click', function () {
        $wrapper.addClass(classes.isFocus);
        $input.trigger('focus');
      });
    }
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=search-form.fda69e244861c6890e79.bundle.js.mapPK!�ɰ9�9�assets/js/elements-handlers.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["elements-handlers"],{

/***/ "../assets/dev/js/frontend/elements-handlers.js":
/*!******************************************************!*\
  !*** ../assets/dev/js/frontend/elements-handlers.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

var _frontend = _interopRequireDefault(__webpack_require__(/*! modules/animated-headline/assets/js/frontend/frontend */ "../modules/animated-headline/assets/js/frontend/frontend.js"));

var _frontend2 = _interopRequireDefault(__webpack_require__(/*! modules/carousel/assets/js/frontend/frontend */ "../modules/carousel/assets/js/frontend/frontend.js"));

var _frontend3 = _interopRequireDefault(__webpack_require__(/*! modules/countdown/assets/js/frontend/frontend */ "../modules/countdown/assets/js/frontend/frontend.js"));

var _frontend4 = _interopRequireDefault(__webpack_require__(/*! modules/hotspot/assets/js/frontend/frontend */ "../modules/hotspot/assets/js/frontend/frontend.js"));

var _frontend5 = _interopRequireDefault(__webpack_require__(/*! modules/forms/assets/js/frontend/frontend */ "../modules/forms/assets/js/frontend/frontend.js"));

var _frontend6 = _interopRequireDefault(__webpack_require__(/*! modules/gallery/assets/js/frontend/frontend */ "../modules/gallery/assets/js/frontend/frontend.js"));

var _frontend7 = _interopRequireDefault(__webpack_require__(/*! modules/lottie/assets/js/frontend/frontend */ "../modules/lottie/assets/js/frontend/frontend.js"));

var _frontend8 = _interopRequireDefault(__webpack_require__(/*! modules/nav-menu/assets/js/frontend/frontend */ "../modules/nav-menu/assets/js/frontend/frontend.js"));

var _frontend9 = _interopRequireDefault(__webpack_require__(/*! modules/popup/assets/js/frontend/frontend */ "../modules/popup/assets/js/frontend/frontend.js"));

var _frontend10 = _interopRequireDefault(__webpack_require__(/*! modules/posts/assets/js/frontend/frontend */ "../modules/posts/assets/js/frontend/frontend.js"));

var _frontend11 = _interopRequireDefault(__webpack_require__(/*! modules/share-buttons/assets/js/frontend/frontend */ "../modules/share-buttons/assets/js/frontend/frontend.js"));

var _frontend12 = _interopRequireDefault(__webpack_require__(/*! modules/slides/assets/js/frontend/frontend */ "../modules/slides/assets/js/frontend/frontend.js"));

var _frontend13 = _interopRequireDefault(__webpack_require__(/*! modules/social/assets/js/frontend/frontend */ "../modules/social/assets/js/frontend/frontend.js"));

var _frontend14 = _interopRequireDefault(__webpack_require__(/*! modules/table-of-contents/assets/js/frontend/frontend */ "../modules/table-of-contents/assets/js/frontend/frontend.js"));

var _frontend15 = _interopRequireDefault(__webpack_require__(/*! modules/theme-builder/assets/js/frontend/frontend */ "../modules/theme-builder/assets/js/frontend/frontend.js"));

var _frontend16 = _interopRequireDefault(__webpack_require__(/*! modules/theme-elements/assets/js/frontend/frontend */ "../modules/theme-elements/assets/js/frontend/frontend.js"));

var _frontend17 = _interopRequireDefault(__webpack_require__(/*! modules/woocommerce/assets/js/frontend/frontend */ "../modules/woocommerce/assets/js/frontend/frontend.js"));

const extendDefaultHandlers = defaultHandlers => {
  const handlers = {
    animatedText: _frontend.default,
    carousel: _frontend2.default,
    countdown: _frontend3.default,
    hotspot: _frontend4.default,
    form: _frontend5.default,
    gallery: _frontend6.default,
    lottie: _frontend7.default,
    nav_menu: _frontend8.default,
    popup: _frontend9.default,
    posts: _frontend10.default,
    share_buttons: _frontend11.default,
    slides: _frontend12.default,
    social: _frontend13.default,
    themeBuilder: _frontend15.default,
    themeElements: _frontend16.default,
    woocommerce: _frontend17.default,
    tableOfContents: _frontend14.default
  };
  return { ...defaultHandlers,
    ...handlers
  };
};

elementorProFrontend.on('elementor-pro/modules/init:before', () => {
  elementorFrontend.hooks.addFilter('elementor-pro/frontend/handlers', extendDefaultHandlers);
});

/***/ }),

/***/ "../assets/dev/js/frontend/utils/icons/e-icons.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/frontend/utils/icons/e-icons.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.close = void 0;

var _manager = _interopRequireDefault(__webpack_require__(/*! ./manager */ "../assets/dev/js/frontend/utils/icons/manager.js"));

// This file is automatically generated, please don't change anything in this file.
const iconsManager = new _manager.default('eicon');
const close = {
  get element() {
    const svgData = {
      path: 'M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z',
      width: 1000,
      height: 1000
    };
    return iconsManager.createSvgElement('close', svgData);
  }

};
exports.close = close;

/***/ }),

/***/ "../assets/dev/js/frontend/utils/icons/manager.js":
/*!********************************************************!*\
  !*** ../assets/dev/js/frontend/utils/icons/manager.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));

class IconsManager {
  constructor(elementsPrefix) {
    this.prefix = `${elementsPrefix}-`;

    if (!IconsManager.symbolsContainer) {
      const symbolsContainerId = 'e-font-icon-svg-symbols';
      IconsManager.symbolsContainer = document.getElementById(symbolsContainerId);

      if (!IconsManager.symbolsContainer) {
        IconsManager.symbolsContainer = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
        IconsManager.symbolsContainer.setAttributeNS(null, 'style', 'display: none;');
        IconsManager.symbolsContainer.setAttributeNS(null, 'class', symbolsContainerId);
        document.body.appendChild(IconsManager.symbolsContainer);
      }
    }
  }

  createSvgElement(name, {
    path,
    width,
    height
  }) {
    const elementName = this.prefix + name,
          elementSelector = '#' + this.prefix + name; // Create symbol if not exist yet.

    if (!IconsManager.iconsUsageList.includes(elementName)) {
      if (!IconsManager.symbolsContainer.querySelector(elementSelector)) {
        const symbol = document.createElementNS('http://www.w3.org/2000/svg', 'symbol');
        symbol.id = elementName;
        symbol.innerHTML = '<path d="' + path + '"></path>';
        symbol.setAttributeNS(null, 'viewBox', '0 0 ' + width + ' ' + height);
        IconsManager.symbolsContainer.appendChild(symbol);
      }

      IconsManager.iconsUsageList.push(elementName);
    }

    const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
    svg.innerHTML = '<use xlink:href="' + elementSelector + '" />';
    svg.setAttributeNS(null, 'class', 'e-font-icon-svg e-' + elementName);
    return svg;
  }

}

exports.default = IconsManager;
(0, _defineProperty2.default)(IconsManager, "symbolsContainer", void 0);
(0, _defineProperty2.default)(IconsManager, "iconsUsageList", []);

/***/ }),

/***/ "../modules/animated-headline/assets/js/frontend/frontend.js":
/*!*******************************************************************!*\
  !*** ../modules/animated-headline/assets/js/frontend/frontend.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('animated-headline', () => __webpack_require__.e(/*! import() | animated-headline */ "animated-headline").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/animated-headlines */ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/carousel/assets/js/frontend/frontend.js":
/*!**********************************************************!*\
  !*** ../modules/carousel/assets/js/frontend/frontend.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('media-carousel', () => __webpack_require__.e(/*! import() | media-carousel */ "media-carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/media-carousel */ "../modules/carousel/assets/js/frontend/handlers/media-carousel.js")));
    elementorFrontend.elementsHandler.attachHandler('testimonial-carousel', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
    elementorFrontend.elementsHandler.attachHandler('reviews', () => __webpack_require__.e(/*! import() | carousel */ "carousel").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/testimonial-carousel */ "../modules/carousel/assets/js/frontend/handlers/testimonial-carousel.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/countdown/assets/js/frontend/frontend.js":
/*!***********************************************************!*\
  !*** ../modules/countdown/assets/js/frontend/frontend.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('countdown', () => __webpack_require__.e(/*! import() | countdown */ "countdown").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/countdown */ "../modules/countdown/assets/js/frontend/handlers/countdown.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/frontend.js":
/*!*******************************************************!*\
  !*** ../modules/forms/assets/js/frontend/frontend.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('form', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/date */ "../modules/forms/assets/js/frontend/handlers/fields/date.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/recaptcha */ "../modules/forms/assets/js/frontend/handlers/recaptcha.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/fields/time */ "../modules/forms/assets/js/frontend/handlers/fields/time.js"))]);
    elementorFrontend.elementsHandler.attachHandler('subscribe', [() => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-steps */ "../modules/forms/assets/js/frontend/handlers/form-steps.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-sender */ "../modules/forms/assets/js/frontend/handlers/form-sender.js")), () => __webpack_require__.e(/*! import() | form */ "form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/form-redirect */ "../modules/forms/assets/js/frontend/handlers/form-redirect.js"))]);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/gallery/assets/js/frontend/frontend.js":
/*!*********************************************************!*\
  !*** ../modules/gallery/assets/js/frontend/frontend.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('gallery', () => __webpack_require__.e(/*! import() | gallery */ "gallery").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/gallery/assets/js/frontend/handler.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/hotspot/assets/js/frontend/frontend.js":
/*!*********************************************************!*\
  !*** ../modules/hotspot/assets/js/frontend/frontend.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('hotspot', () => __webpack_require__.e(/*! import() | hotspot */ "hotspot").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/hotspot */ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/lottie/assets/js/frontend/frontend.js":
/*!********************************************************!*\
  !*** ../modules/lottie/assets/js/frontend/frontend.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('lottie', () => __webpack_require__.e(/*! import() | lottie */ "lottie").then(__webpack_require__.bind(__webpack_require__, /*! ./handler */ "../modules/lottie/assets/js/frontend/handler.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/nav-menu/assets/js/frontend/frontend.js":
/*!**********************************************************!*\
  !*** ../modules/nav-menu/assets/js/frontend/frontend.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();

    if (jQuery.fn.smartmenus) {
      // Override the default stupid detection
      jQuery.SmartMenus.prototype.isCSSOn = function () {
        return true;
      };

      if (elementorFrontend.config.is_rtl) {
        jQuery.fn.smartmenus.defaults.rightToLeftSubMenus = true;
      }
    }

    elementorFrontend.elementsHandler.attachHandler('nav-menu', () => __webpack_require__.e(/*! import() | nav-menu */ "nav-menu").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/nav-menu */ "../modules/nav-menu/assets/js/frontend/handlers/nav-menu.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/document.js":
/*!*******************************************************!*\
  !*** ../modules/popup/assets/js/frontend/document.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _triggers = _interopRequireDefault(__webpack_require__(/*! ./triggers */ "../modules/popup/assets/js/frontend/triggers.js"));

var _timing = _interopRequireDefault(__webpack_require__(/*! ./timing */ "../modules/popup/assets/js/frontend/timing.js"));

var _eIcons = __webpack_require__(/*! @elementor-pro/e-icons */ "../assets/dev/js/frontend/utils/icons/e-icons.js");

// Temporary solution, when core 3.5.0 will be the minimum version, is should be replaced with @elementor/e-icons.
class _default extends elementorModules.frontend.Document {
  bindEvents() {
    const openSelector = this.getDocumentSettings('open_selector');

    if (openSelector) {
      elementorFrontend.elements.$body.on('click', openSelector, this.showModal.bind(this));
    }
  }

  startTiming() {
    const timing = new _timing.default(this.getDocumentSettings('timing'), this);

    if (timing.check()) {
      this.initTriggers();
    }
  }

  initTriggers() {
    this.triggers = new _triggers.default(this.getDocumentSettings('triggers'), this);
  }

  showModal(avoidMultiple) {
    const settings = this.getDocumentSettings();

    if (!this.isEdit) {
      if (!elementorFrontend.isWPPreviewMode()) {
        if (this.getStorage('disable')) {
          return;
        }

        if (avoidMultiple && elementorProFrontend.modules.popup.popupPopped && settings.avoid_multiple_popups) {
          return;
        }
      } // A clean copy of the element without previous initializations and events


      this.$element = jQuery(this.elementHTML);
      this.elements.$elements = this.$element.find(this.getSettings('selectors.elements'));
    }

    const modal = this.getModal(),
          $closeButton = modal.getElements('closeButton');
    modal.setMessage(this.$element).show();

    if (!this.isEdit) {
      if (settings.close_button_delay) {
        $closeButton.hide();
        clearTimeout(this.closeButtonTimeout);
        this.closeButtonTimeout = setTimeout(() => $closeButton.show(), settings.close_button_delay * 1000);
      }

      super.runElementsHandlers();
    }

    this.setEntranceAnimation();

    if (!settings.timing || !settings.timing.times_count) {
      this.countTimes();
    }

    elementorProFrontend.modules.popup.popupPopped = true;
  }

  setEntranceAnimation() {
    const $widgetContent = this.getModal().getElements('widgetContent'),
          settings = this.getDocumentSettings(),
          newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'entrance_animation');

    if (this.currentAnimation) {
      $widgetContent.removeClass(this.currentAnimation);
    }

    this.currentAnimation = newAnimation;

    if (!newAnimation) {
      return;
    }

    const animationDuration = settings.entrance_animation_duration.size;
    $widgetContent.addClass(newAnimation);
    setTimeout(() => $widgetContent.removeClass(newAnimation), animationDuration * 1000);
  }

  setExitAnimation() {
    const modal = this.getModal(),
          settings = this.getDocumentSettings(),
          $widgetContent = modal.getElements('widgetContent'),
          newAnimation = elementorFrontend.getCurrentDeviceSetting(settings, 'exit_animation'),
          animationDuration = newAnimation ? settings.entrance_animation_duration.size : 0;
    setTimeout(() => {
      if (newAnimation) {
        $widgetContent.removeClass(newAnimation + ' reverse');
      }

      if (!this.isEdit) {
        this.$element.remove();
        modal.getElements('widget').hide();
      }
    }, animationDuration * 1000);

    if (newAnimation) {
      $widgetContent.addClass(newAnimation + ' reverse');
    }
  }

  initModal() {
    let modal;

    this.getModal = () => {
      if (!modal) {
        const settings = this.getDocumentSettings(),
              id = this.getSettings('id'),
              triggerPopupEvent = eventType => elementorFrontend.elements.$document.trigger('elementor/popup/' + eventType, [id, this]);

        let classes = 'elementor-popup-modal';

        if (settings.classes) {
          classes += ' ' + settings.classes;
        }

        const modalProperties = {
          id: 'elementor-popup-modal-' + id,
          className: classes,
          closeButton: true,
          preventScroll: settings.prevent_scroll,
          onShow: () => triggerPopupEvent('show'),
          onHide: () => triggerPopupEvent('hide'),
          effects: {
            hide: () => {
              if (settings.timing && settings.timing.times_count) {
                this.countTimes();
              }

              this.setExitAnimation();
            },
            show: 'show'
          },
          hide: {
            auto: !!settings.close_automatically,
            autoDelay: settings.close_automatically * 1000,
            onBackgroundClick: !settings.prevent_close_on_background_click,
            onOutsideClick: !settings.prevent_close_on_background_click,
            onEscKeyPress: !settings.prevent_close_on_esc_key,
            ignore: '.flatpickr-calendar'
          },
          position: {
            enable: false
          }
        };

        if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg) {
          modalProperties.closeButtonOptions = {
            iconElement: _eIcons.close.element
          };
        } // This line should be moved to the condition above, as an 'else' case, once the core minimum version is 3.5.0.


        modalProperties.closeButtonClass = 'eicon-close';
        modal = elementorFrontend.getDialogsManager().createWidget('lightbox', modalProperties);
        modal.getElements('widgetContent').addClass('animated');
        const $closeButton = modal.getElements('closeButton');

        if (this.isEdit) {
          $closeButton.off('click');

          modal.hide = () => {};
        }

        this.setCloseButtonPosition();
      }

      return modal;
    };
  }

  setCloseButtonPosition() {
    const modal = this.getModal(),
          closeButtonPosition = this.getDocumentSettings('close_button_position'),
          $closeButton = modal.getElements('closeButton');
    $closeButton.appendTo(modal.getElements('outside' === closeButtonPosition ? 'widget' : 'widgetContent'));
  }

  disable() {
    this.setStorage('disable', true);
  }

  setStorage(key, value, options) {
    elementorFrontend.storage.set(`popup_${this.getSettings('id')}_${key}`, value, options);
  }

  getStorage(key, options) {
    return elementorFrontend.storage.get(`popup_${this.getSettings('id')}_${key}`, options);
  }

  countTimes() {
    const displayTimes = this.getStorage('times') || 0;
    this.setStorage('times', displayTimes + 1);
  }

  runElementsHandlers() {}

  async onInit() {
    super.onInit(); // In case that the library was not loaded, it indicates a Core version that enables dynamic loading.

    if (!window.DialogsManager) {
      await elementorFrontend.utils.assetsLoader.load('script', 'dialog');
    }

    this.initModal();

    if (this.isEdit) {
      this.showModal();
      return;
    }

    this.$element.show().remove();
    this.elementHTML = this.$element[0].outerHTML;

    if (elementorFrontend.isEditMode()) {
      return;
    }

    if (elementorFrontend.isWPPreviewMode() && elementorFrontend.config.post.id === this.getSettings('id')) {
      this.showModal();
      return;
    }

    this.startTiming();
  }

  onSettingsChange(model) {
    const changedKey = Object.keys(model.changed)[0];

    if (-1 !== changedKey.indexOf('entrance_animation')) {
      this.setEntranceAnimation();
    }

    if ('exit_animation' === changedKey) {
      this.setExitAnimation();
    }

    if ('close_button_position' === changedKey) {
      this.setCloseButtonPosition();
    }
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/frontend.js":
/*!*******************************************************!*\
  !*** ../modules/popup/assets/js/frontend/frontend.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _document = _interopRequireDefault(__webpack_require__(/*! ./document */ "../modules/popup/assets/js/frontend/document.js"));

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.hooks.addAction('elementor/frontend/documents-manager/init-classes', this.addDocumentClass);
    elementorFrontend.elementsHandler.attachHandler('form', () => __webpack_require__.e(/*! import() | popup */ "popup").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/forms-action */ "../modules/popup/assets/js/frontend/handlers/forms-action.js")));
    elementorFrontend.on('components:init', () => this.onFrontendComponentsInit());

    if (!elementorFrontend.isEditMode() && !elementorFrontend.isWPPreviewMode()) {
      this.setViewsAndSessions();
    }
  }

  addDocumentClass(documentsManager) {
    documentsManager.addDocumentClass('popup', _document.default);
  }

  setViewsAndSessions() {
    const pageViews = elementorFrontend.storage.get('pageViews') || 0;
    elementorFrontend.storage.set('pageViews', pageViews + 1);
    const activeSession = elementorFrontend.storage.get('activeSession', {
      session: true
    });

    if (!activeSession) {
      elementorFrontend.storage.set('activeSession', true, {
        session: true
      });
      const sessions = elementorFrontend.storage.get('sessions') || 0;
      elementorFrontend.storage.set('sessions', sessions + 1);
    }
  }

  showPopup(settings) {
    const popup = elementorFrontend.documentsManager.documents[settings.id];

    if (!popup) {
      return;
    }

    const modal = popup.getModal();

    if (settings.toggle && modal.isVisible()) {
      modal.hide();
    } else {
      popup.showModal();
    }
  }

  closePopup(settings, event) {
    const popupID = jQuery(event.target).parents('[data-elementor-type="popup"]').data('elementorId');

    if (!popupID) {
      return;
    }

    const document = elementorFrontend.documentsManager.documents[popupID];
    document.getModal().hide();

    if (settings.do_not_show_again) {
      document.disable();
    }
  }

  onFrontendComponentsInit() {
    elementorFrontend.utils.urlActions.addAction('popup:open', settings => this.showPopup(settings));
    elementorFrontend.utils.urlActions.addAction('popup:close', (settings, event) => this.closePopup(settings, event));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing.js":
/*!*****************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _pageViews = _interopRequireDefault(__webpack_require__(/*! ./timing/page-views */ "../modules/popup/assets/js/frontend/timing/page-views.js"));

var _sessions = _interopRequireDefault(__webpack_require__(/*! ./timing/sessions */ "../modules/popup/assets/js/frontend/timing/sessions.js"));

var _url = _interopRequireDefault(__webpack_require__(/*! ./timing/url */ "../modules/popup/assets/js/frontend/timing/url.js"));

var _sources = _interopRequireDefault(__webpack_require__(/*! ./timing/sources */ "../modules/popup/assets/js/frontend/timing/sources.js"));

var _loggedIn = _interopRequireDefault(__webpack_require__(/*! ./timing/logged-in */ "../modules/popup/assets/js/frontend/timing/logged-in.js"));

var _devices = _interopRequireDefault(__webpack_require__(/*! ./timing/devices */ "../modules/popup/assets/js/frontend/timing/devices.js"));

var _times = _interopRequireDefault(__webpack_require__(/*! ./timing/times */ "../modules/popup/assets/js/frontend/timing/times.js"));

var _browsers = _interopRequireDefault(__webpack_require__(/*! ./timing/browsers */ "../modules/popup/assets/js/frontend/timing/browsers.js"));

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
    this.timingClasses = {
      page_views: _pageViews.default,
      sessions: _sessions.default,
      url: _url.default,
      sources: _sources.default,
      logged_in: _loggedIn.default,
      devices: _devices.default,
      times: _times.default,
      browsers: _browsers.default
    };
  }

  check() {
    const settings = this.getSettings();
    let checkPassed = true;
    jQuery.each(this.timingClasses, (key, TimingClass) => {
      if (!settings[key]) {
        return;
      }

      const timing = new TimingClass(settings, this.document);

      if (!timing.check()) {
        checkPassed = false;
      }
    });
    return checkPassed;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/base.js":
/*!**********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/base.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
  }

  getTimingSetting(settingKey) {
    return this.getSettings(this.getName() + '_' + settingKey);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/browsers.js":
/*!**************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/browsers.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'browsers';
  }

  check() {
    if ('all' === this.getTimingSetting('browsers')) {
      return true;
    }

    const targetedBrowsers = this.getTimingSetting('browsers_options'),
          browserDetectionFlags = elementorFrontend.utils.environment;
    return targetedBrowsers.some(browserName => browserDetectionFlags[browserName]);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/devices.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/devices.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'devices';
  }

  check() {
    return -1 !== this.getTimingSetting('devices').indexOf(elementorFrontend.getCurrentDeviceMode());
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/logged-in.js":
/*!***************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/logged-in.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'logged_in';
  }

  check() {
    const userConfig = elementorFrontend.config.user;

    if (!userConfig) {
      return true;
    }

    if ('all' === this.getTimingSetting('users')) {
      return false;
    }

    const userRolesInHideList = this.getTimingSetting('roles').filter(role => -1 !== userConfig.roles.indexOf(role));
    return !userRolesInHideList.length;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/page-views.js":
/*!****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/page-views.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'page_views';
  }

  check() {
    const pageViews = elementorFrontend.storage.get('pageViews'),
          name = this.getName();
    let initialPageViews = this.document.getStorage(name + '_initialPageViews');

    if (!initialPageViews) {
      this.document.setStorage(name + '_initialPageViews', pageViews);
      initialPageViews = pageViews;
    }

    return pageViews - initialPageViews >= this.getTimingSetting('views');
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/sessions.js":
/*!**************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/sessions.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'sessions';
  }

  check() {
    const sessions = elementorFrontend.storage.get('sessions'),
          name = this.getName();
    let initialSessions = this.document.getStorage(name + '_initialSessions');

    if (!initialSessions) {
      this.document.setStorage(name + '_initialSessions', sessions);
      initialSessions = sessions;
    }

    return sessions - initialSessions >= this.getTimingSetting('sessions');
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/sources.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/sources.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'sources';
  }

  check() {
    const sources = this.getTimingSetting('sources');

    if (3 === sources.length) {
      return true;
    }

    const referrer = document.referrer.replace(/https?:\/\/(?:www\.)?/, ''),
          isInternal = 0 === referrer.indexOf(location.host.replace('www.', ''));

    if (isInternal) {
      return -1 !== sources.indexOf('internal');
    }

    if (-1 !== sources.indexOf('external')) {
      return true;
    }

    if (-1 !== sources.indexOf('search')) {
      return /^(google|yahoo|bing|yandex|baidu)\./.test(referrer);
    }

    return false;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/times.js":
/*!***********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/times.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'times';
  }

  check() {
    const displayTimes = this.document.getStorage('times') || 0;
    return this.getTimingSetting('times') > displayTimes;
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/timing/url.js":
/*!*********************************************************!*\
  !*** ../modules/popup/assets/js/frontend/timing/url.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/timing/base.js"));

class _default extends _base.default {
  getName() {
    return 'url';
  }

  check() {
    const url = this.getTimingSetting('url'),
          action = this.getTimingSetting('action'),
          referrer = document.referrer;

    if ('regex' !== action) {
      return 'hide' === action ^ -1 !== referrer.indexOf(url);
    }

    let regexp;

    try {
      regexp = new RegExp(url);
    } catch (e) {
      return false;
    }

    return regexp.test(referrer);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers.js":
/*!*******************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _pageLoad = _interopRequireDefault(__webpack_require__(/*! ./triggers/page-load */ "../modules/popup/assets/js/frontend/triggers/page-load.js"));

var _scrolling = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling */ "../modules/popup/assets/js/frontend/triggers/scrolling.js"));

var _scrollingTo = _interopRequireDefault(__webpack_require__(/*! ./triggers/scrolling-to */ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js"));

var _click = _interopRequireDefault(__webpack_require__(/*! ./triggers/click */ "../modules/popup/assets/js/frontend/triggers/click.js"));

var _inactivity = _interopRequireDefault(__webpack_require__(/*! ./triggers/inactivity */ "../modules/popup/assets/js/frontend/triggers/inactivity.js"));

var _exitIntent = _interopRequireDefault(__webpack_require__(/*! ./triggers/exit-intent */ "../modules/popup/assets/js/frontend/triggers/exit-intent.js"));

class _default extends elementorModules.Module {
  constructor(settings, document) {
    super(settings);
    this.document = document;
    this.triggers = [];
    this.triggerClasses = {
      page_load: _pageLoad.default,
      scrolling: _scrolling.default,
      scrolling_to: _scrollingTo.default,
      click: _click.default,
      inactivity: _inactivity.default,
      exit_intent: _exitIntent.default
    };
    this.runTriggers();
  }

  runTriggers() {
    const settings = this.getSettings();
    jQuery.each(this.triggerClasses, (key, TriggerClass) => {
      if (!settings[key]) {
        return;
      }

      const trigger = new TriggerClass(settings, () => this.onTriggerFired());
      trigger.run();
      this.triggers.push(trigger);
    });
  }

  destroyTriggers() {
    this.triggers.forEach(trigger => trigger.destroy());
    this.triggers = [];
  }

  onTriggerFired() {
    this.document.showModal(true);
    this.destroyTriggers();
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/base.js":
/*!************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/base.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor(settings, callback) {
    super(settings);
    this.callback = callback;
  }

  getTriggerSetting(settingKey) {
    return this.getSettings(this.getName() + '_' + settingKey);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/click.js":
/*!*************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/click.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.checkClick = this.checkClick.bind(this);
    this.clicksCount = 0;
  }

  getName() {
    return 'click';
  }

  checkClick() {
    this.clicksCount++;

    if (this.clicksCount === this.getTriggerSetting('times')) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$body.on('click', this.checkClick);
  }

  destroy() {
    elementorFrontend.elements.$body.off('click', this.checkClick);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/exit-intent.js":
/*!*******************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/exit-intent.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.detectExitIntent = this.detectExitIntent.bind(this);
  }

  getName() {
    return 'exit_intent';
  }

  detectExitIntent(event) {
    if (event.clientY <= 0) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$window.on('mouseleave', this.detectExitIntent);
  }

  destroy() {
    elementorFrontend.elements.$window.off('mouseleave', this.detectExitIntent);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/inactivity.js":
/*!******************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/inactivity.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.restartTimer = this.restartTimer.bind(this);
  }

  getName() {
    return 'inactivity';
  }

  run() {
    this.startTimer();
    elementorFrontend.elements.$document.on('keypress mousemove', this.restartTimer);
  }

  startTimer() {
    this.timeOut = setTimeout(this.callback, this.getTriggerSetting('time') * 1000);
  }

  clearTimer() {
    clearTimeout(this.timeOut);
  }

  restartTimer() {
    this.clearTimer();
    this.startTimer();
  }

  destroy() {
    this.clearTimer();
    elementorFrontend.elements.$document.off('keypress mousemove', this.restartTimer);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/page-load.js":
/*!*****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/page-load.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  getName() {
    return 'page_load';
  }

  run() {
    this.timeout = setTimeout(this.callback, this.getTriggerSetting('delay') * 1000);
  }

  destroy() {
    clearTimeout(this.timeout);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/scrolling-to.js":
/*!********************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/scrolling-to.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  getName() {
    return 'scrolling_to';
  }

  run() {
    let $targetElement;

    try {
      $targetElement = jQuery(this.getTriggerSetting('selector'));
    } catch (e) {
      return;
    }

    this.waypointInstance = elementorFrontend.waypoint($targetElement, this.callback)[0];
  }

  destroy() {
    if (this.waypointInstance) {
      this.waypointInstance.destroy();
    }
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/popup/assets/js/frontend/triggers/scrolling.js":
/*!*****************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/triggers/scrolling.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/popup/assets/js/frontend/triggers/base.js"));

class _default extends _base.default {
  constructor(...args) {
    super(...args);
    this.checkScroll = this.checkScroll.bind(this);
    this.lastScrollOffset = 0;
  }

  getName() {
    return 'scrolling';
  }

  checkScroll() {
    const scrollDirection = scrollY > this.lastScrollOffset ? 'down' : 'up',
          requestedDirection = this.getTriggerSetting('direction');
    this.lastScrollOffset = scrollY;

    if (scrollDirection !== requestedDirection) {
      return;
    }

    if ('up' === scrollDirection) {
      this.callback();
      return;
    }

    const fullScroll = elementorFrontend.elements.$document.height() - innerHeight,
          scrollPercent = scrollY / fullScroll * 100;

    if (scrollPercent >= this.getTriggerSetting('offset')) {
      this.callback();
    }
  }

  run() {
    elementorFrontend.elements.$window.on('scroll', this.checkScroll);
  }

  destroy() {
    elementorFrontend.elements.$window.off('scroll', this.checkScroll);
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/frontend.js":
/*!*******************************************************!*\
  !*** ../modules/posts/assets/js/frontend/frontend.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    ['classic', 'full_content', 'cards'].forEach(skinName => {
      elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | load-more */ "load-more").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/load-more */ "../modules/posts/assets/js/frontend/handlers/load-more.js")), skinName);
    });
    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'classic');
    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/posts */ "../modules/posts/assets/js/frontend/handlers/posts.js")), 'full_content');
    elementorFrontend.elementsHandler.attachHandler('posts', () => __webpack_require__.e(/*! import() | posts */ "posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cards */ "../modules/posts/assets/js/frontend/handlers/cards.js")), 'cards');
    elementorFrontend.elementsHandler.attachHandler('portfolio', () => __webpack_require__.e(/*! import() | portfolio */ "portfolio").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/portfolio */ "../modules/posts/assets/js/frontend/handlers/portfolio.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/share-buttons/assets/js/frontend/frontend.js":
/*!***************************************************************!*\
  !*** ../modules/share-buttons/assets/js/frontend/frontend.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('share-buttons', () => __webpack_require__.e(/*! import() | share-buttons */ "share-buttons").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/share-buttons */ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/slides/assets/js/frontend/frontend.js":
/*!********************************************************!*\
  !*** ../modules/slides/assets/js/frontend/frontend.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('slides', () => __webpack_require__.e(/*! import() | slides */ "slides").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/slides */ "../modules/slides/assets/js/frontend/handlers/slides.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/social/assets/js/frontend/frontend.js":
/*!********************************************************!*\
  !*** ../modules/social/assets/js/frontend/frontend.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('facebook-button', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
    elementorFrontend.elementsHandler.attachHandler('facebook-comments', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
    elementorFrontend.elementsHandler.attachHandler('facebook-embed', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
    elementorFrontend.elementsHandler.attachHandler('facebook-page', () => __webpack_require__.e(/*! import() | social */ "social").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/facebook */ "../modules/social/assets/js/frontend/handlers/facebook.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/table-of-contents/assets/js/frontend/frontend.js":
/*!*******************************************************************!*\
  !*** ../modules/table-of-contents/assets/js/frontend/frontend.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('table-of-contents', () => __webpack_require__.e(/*! import() | table-of-contents */ "table-of-contents").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/table-of-contents */ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/theme-builder/assets/js/frontend/frontend.js":
/*!***************************************************************!*\
  !*** ../modules/theme-builder/assets/js/frontend/frontend.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    ['archive_classic', 'archive_full_content', 'archive_cards'].forEach(skinName => {
      elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-load-more */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-load-more.js")), skinName);
    });
    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_classic');
    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-classic */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-classic.js")), 'archive_full_content');
    elementorFrontend.elementsHandler.attachHandler('archive-posts', () => __webpack_require__.e(/*! import() | archive-posts */ "archive-posts").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/archive-posts-skin-cards */ "../modules/theme-builder/assets/js/frontend/handlers/archive-posts-skin-cards.js")), 'archive_cards');
    jQuery(function () {
      // Go to elementor element - if the URL is something like http://domain.com/any-page?preview=true&theme_template_id=6479
      var match = location.search.match(/theme_template_id=(\d*)/),
          $element = match ? jQuery('.elementor-' + match[1]) : [];

      if ($element.length) {
        jQuery('html, body').animate({
          scrollTop: $element.offset().top - window.innerHeight / 2
        });
      }
    });
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/theme-elements/assets/js/frontend/frontend.js":
/*!****************************************************************!*\
  !*** ../modules/theme-elements/assets/js/frontend/frontend.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('search-form', () => __webpack_require__.e(/*! import() | search-form */ "search-form").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/search-form */ "../modules/theme-elements/assets/js/frontend/handlers/search-form.js")));
  }

}

exports.default = _default;

/***/ }),

/***/ "../modules/woocommerce/assets/js/frontend/frontend.js":
/*!*************************************************************!*\
  !*** ../modules/woocommerce/assets/js/frontend/frontend.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class _default extends elementorModules.Module {
  constructor() {
    super();
    elementorFrontend.elementsHandler.attachHandler('woocommerce-menu-cart', () => __webpack_require__.e(/*! import() | woocommerce-menu-cart */ "woocommerce-menu-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/menu-cart */ "../modules/woocommerce/assets/js/frontend/handlers/menu-cart.js")));
    elementorFrontend.elementsHandler.attachHandler('woocommerce-checkout-page', () => __webpack_require__.e(/*! import() | woocommerce-checkout-page */ "woocommerce-checkout-page").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/checkout-page */ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js")));
    elementorFrontend.elementsHandler.attachHandler('woocommerce-cart', () => __webpack_require__.e(/*! import() | woocommerce-cart */ "woocommerce-cart").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/cart */ "../modules/woocommerce/assets/js/frontend/handlers/cart.js")));
    elementorFrontend.elementsHandler.attachHandler('woocommerce-my-account', () => __webpack_require__.e(/*! import() | woocommerce-my-account */ "woocommerce-my-account").then(__webpack_require__.bind(__webpack_require__, /*! ./handlers/my-account */ "../modules/woocommerce/assets/js/frontend/handlers/my-account.js")));
  }

}

exports.default = _default;

/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ "use strict";
/******/ 
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, ["frontend"], () => (__webpack_exec__("../assets/dev/js/frontend/elements-handlers.js")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=elements-handlers.js.mapPK!�$�<�X�X;assets/js/video-playlist.780d8267a738bfbd96a6.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[721],{1591:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class baseTabs extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{tablist:'[role="tablist"]',tabTitle:".e-tab-title",tabContent:".e-tab-content"},classes:{active:"e-active"},showTabFn:"show",hideTabFn:"hide",toggleSelf:!0,hidePrevious:!0,autoExpand:!0,keyDirection:{ArrowLeft:elementorFrontendConfig.is_rtl?1:-1,ArrowUp:-1,ArrowRight:elementorFrontendConfig.is_rtl?-1:1,ArrowDown:1}}}getDefaultElements(){const e=this.getSettings("selectors");return{$tabTitles:this.findElement(e.tabTitle),$tabContents:this.findElement(e.tabContent)}}activateDefaultTab(e){const t=this.getSettings();if(!t.autoExpand||"editor"===t.autoExpand&&!this.isEdit)return;const i=this.getEditSettings("activeItemIndex")||e||1,s={showTabFn:t.showTabFn,hideTabFn:t.hideTabFn};this.setSettings({showTabFn:"show",hideTabFn:"hide"}),this.changeActiveTab(i),this.setSettings(s)}handleKeyboardNavigation(e){const t=e.currentTarget,i=jQuery(t.closest(this.getSettings("selectors").tablist)),s=i.find(this.getSettings("selectors").tabTitle),a="vertical"===i.attr("aria-orientation");switch(e.key){case"ArrowLeft":case"ArrowRight":if(a)return;break;case"ArrowUp":case"ArrowDown":if(!a)return;e.preventDefault();break;case"Home":return e.preventDefault(),void s.first().trigger("focus");case"End":return e.preventDefault(),void s.last().trigger("focus");default:return}const n=t.getAttribute("data-tab")-1,r=this.getSettings("keyDirection")[e.key],l=s[n+r];l?l.focus():-1===n+r?s.last().trigger("focus"):s.first().trigger("focus")}deactivateActiveTab(e){const t=this.getSettings(),i=t.classes.active,s=e?'[data-tab="'+e+'"]':"."+i,a=this.elements.$tabTitles.filter(s),n=this.elements.$tabContents.filter(s);a.add(n).removeClass(i),a.attr({tabindex:"-1","aria-selected":"false"}),n[t.hideTabFn](),n.attr("hidden","hidden")}activateTab(e){const t=this.getSettings(),i=t.classes.active,s=this.elements.$tabTitles.filter('[data-tab="'+e+'"]'),a=this.elements.$tabContents.filter('[data-tab="'+e+'"]'),n="show"===t.showTabFn?0:400;s.add(a).addClass(i),s.attr({tabindex:"0","aria-selected":"true"}),a[t.showTabFn](n,(()=>elementorFrontend.elements.$window.trigger("resize"))),a.removeAttr("hidden")}isActiveTab(e){return this.elements.$tabTitles.filter('[data-tab="'+e+'"]').hasClass(this.getSettings("classes.active"))}bindEvents(){this.elements.$tabTitles.on({keydown:e=>{jQuery(e.target).is("a")&&"Enter"===e.key&&e.preventDefault(),["End","Home","ArrowUp","ArrowDown"].includes(e.key)&&this.handleKeyboardNavigation(e)},keyup:e=>{switch(e.key){case"ArrowLeft":case"ArrowRight":this.handleKeyboardNavigation(e);break;case"Enter":case"Space":e.preventDefault(),this.changeActiveTab(e.currentTarget.getAttribute("data-tab"))}},click:e=>{e.preventDefault(),this.changeActiveTab(e.currentTarget.getAttribute("data-tab"))}})}onInit(...e){super.onInit(...e)}changeActiveTab(e){const t=this.isActiveTab(e),i=this.getSettings();!i.toggleSelf&&t||!i.hidePrevious||this.deactivateActiveTab(),!i.hidePrevious&&t&&this.deactivateActiveTab(e),t||this.activateTab(e)}}t.default=baseTabs},870:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function triggerEvent(e,t,i,s){const n=new a.default({event:await getEventEventObject(e,t,i,s),tab:getEventTabsObject(e),playlist:getEventPlaylistObject(e,s),video:getEventVideoObject(e,s)});jQuery("body").trigger("elementor-video-playList",n)};var a=s(i(9147));function getEventTabsObject(e){const t=e.elements.$innerTabs.filter(".e-active").find(".e-inner-tabs-wrapper .e-inner-tab-title");if(t.length){const e=t.filter(".e-inner-tab-active");return{name:e.text().trim(),index:e.index()+1}}return{name:"none",index:"none"}}function getEventPlaylistObject(e,t){const i=t||e.currentPlaylistItemIndex;return{name:e.getElementSettings("playlist_title"),currentItem:i,amount:e.playlistItemsArray.filter((e=>"section"!==e.videoType)).length}}function getEventVideoObject(e,t){const i=t||e.currentPlaylistItemIndex,s=e.playlistItemsArray[i-1];return{provider:s.videoType,url:s.videoUrl,title:s.videoTitle,duration:s.videoDuration}}async function getEventEventObject(e,t,i,s){const a=s||e.currentPlaylistItemIndex,n=e.playlistItemsArray[a-1];return{type:t,time:await n.playerInstance.getCurrentTime(),element:e.$element,trigger:i,watchCount:n.playerInstance.watchCount}}},1427:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=s(i(1591)),n=s(i(832)),r=s(i(9980)),l=s(i(8803)),o=i(5721),d=i(6940),h=i(3276),c=s(i(870));class VideoPlaylistHandler extends a.default{getDefaultSettings(){const e=super.getDefaultSettings();return{...e,selectors:{...e.selectors,tabsWrapper:".e-tabs-items-wrapper",tabsItems:".e-tabs-items",toggleVideosDisplayButton:".e-tabs-toggle-videos-display-button",videos:".e-tabs-content-wrapper .e-tab-content",innerTabs:".e-tabs-inner-tabs .e-tab-content",imageOverlay:".elementor-custom-embed-image-overlay"}}}getDefaultElements(){const e=super.getDefaultElements(),t=this.getSettings("selectors");return{...e,$tabsWrapper:this.findElement(t.tabsWrapper),$tabsItems:this.findElement(t.tabsItems),$toggleVideosDisplayButton:this.findElement(t.toggleVideosDisplayButton),$videos:this.findElement(t.videos),$innerTabs:this.findElement(t.innerTabs),$imageOverlay:this.findElement(t.imageOverlay)}}initEditorListeners(){super.initEditorListeners(),this.editorListeners.push({event:"elementorPlaylistWidget:fetchVideoData",to:elementor.channels.editor,callback:e=>{this.getCurrentPlayerSelected().setVideoProviderData().then((()=>{e.currentItem=this.getCurrentItemSelected(),elementor.channels.editor.trigger("elementorPlaylistWidget:setVideoData",e)}))}})}bindEvents(){super.bindEvents(),this.elements.$imageOverlay.on({click:e=>{e.currentTarget.remove(),this.getCurrentPlayerSelected().play()}}),this.elements.$innerTabs.on({click:e=>{(0,d.handleInnerTabs)(e,this)}}),this.elements.$tabsItems.on({scroll:e=>{(0,o.handleVideosPanelScroll)(this.elements,e)}}),this.elements.$toggleVideosDisplayButton.on({click:e=>{jQuery(e.target).toggleClass("rotate-up"),jQuery(e.target).toggleClass("rotate-down"),this.elements.$tabsWrapper.slideToggle("slow")}})}onInit(...e){super.onInit(...e),this.playlistId=this.getID(),this.storageKey="watched_videos_"+this.getID();const t=elementorFrontend.storage.get(this.storageKey);this.watchedVideosArray=t?JSON.parse(t):[],this.watchedIndication=this.getElementSettings("show_watched_indication"),(0,o.handleVideosPanelScroll)(this.elements),this.isAutoplayOnLoad="yes"===this.getElementSettings("autoplay_on_load"),this.isAutoplayNextUp="yes"===this.getElementSettings("autoplay_next"),this.isFirstVideoActivated=!0,this.createPlaylistItems(),this.isCollapsible=this.getElementSettings("inner_tab_is_content_collapsible"),this.innerTabsHeightLimit=this.getElementSettings("inner_tab_collapsible_height"),this.currentPlayingPlaylistItemIndex=1,this.activateInitialVideo(),this.activateInnerTabInEditMode()}onEditSettingsChange(e){"panel"===e&&(this.preventTabActivation=!0),"activeItemIndex"===e&&(this.preventTabActivation?this.preventTabActivation=!1:this.activateDefaultTab())}activateInitialVideo(){this.isPageOnLoad=!0;const e=!!this.getElementSettings("lazy_load"),t=(0,h.handleURLParams)(this.playlistId,this.playlistItemsArray);let i=!1;t?(this.currentPlaylistItemIndex=t,this.currentPlayingPlaylistItemIndex=t,i=!0):(this.currentPlaylistItemIndex=1,this.currentPlayingPlaylistItemIndex=1),this.isAutoplayOnLoad&&!i&&(0,h.setVideoParams)(this.playlistId,this.playlistItemsArray,this.currentPlaylistItemIndex),this.handleFirstVideoActivation(e)}handleFirstVideoActivation(e){if(!e)return void this.activateDefaultTab(this.currentPlaylistItemIndex);const t=document.querySelector(".elementor-element-"+this.playlistId+" .e-tabs-main-area"),i=elementorModules.utils.Scroll.scrollObserver({callback:e=>{e.isInViewport&&(this.activateDefaultTab(this.currentPlaylistItemIndex),i.unobserve(t))}});i.observe(t)}getCurrentItemSelected(){return this.playlistItemsArray[this.currentPlaylistItemIndex-1]}getCurrentPlayerSelected(){return this.getCurrentItemSelected().playerInstance}getCurrentPlayerPlaying(){return this.playlistItemsArray[this.currentPlayingPlaylistItemIndex-1].playerInstance}isVideoShouldBePlayed(){if(this.currentPlayingPlaylistItemIndex!==this.currentPlaylistItemIndex)this.getCurrentPlayerPlaying()&&this.getCurrentPlayerPlaying().pause(),this.currentPlayingPlaylistItemIndex=this.currentPlaylistItemIndex;else if(this.getCurrentPlayerPlaying().isVideoPlaying)return this.getCurrentPlayerPlaying().pause(),!1;return!0}activateInnerTabInEditMode(){if(this.isEdit&&this.getEditSettings("innerActiveIndex")){const e=this.getEditSettings("innerActiveIndex");jQuery(this.elements.$innerTabs.eq(this.currentPlaylistItemIndex-1).find(".e-inner-tab-title a"))[e].click()}}handleVideo(e){if(e.playerInstance)this.isVideoShouldBePlayed()&&(1===this.currentPlaylistItemIndex&&this.elements.$imageOverlay&&this.elements.$imageOverlay.remove(),this.playVideoAfterCreation(e));else{const t={youtube:n.default,vimeo:r.default,hosted:l.default};e.playerInstance=new t[e.videoType](e,this.currentPlaylistItemIndex),e.playerInstance.create().then((()=>{this.isVideoShouldBePlayed()&&this.playVideoOnCreation(e),e.playerInstance.handleFullScreenChange((e=>{(0,c.default)(this,e?"videoFullScreen":"videoExitFullScreen","click")})),e.playerInstance.handlePlayed((()=>{const t=this.getCurrentItemSelected();let i="click";t.isAutoplayOnLoad?(i="onLoad",e.isAutoplayOnLoad=!1):t.isAutoPlayNextUp&&(i="nextVideo"),(0,c.default)(this,t.playerInstance.isVideoPausedLocal?"videoResume":"videoStart",i)})),e.playerInstance.handleEnded((()=>{(0,c.default)(this,"videoEnded","click"),this.watchedIndication&&this.elements.$tabTitles.filter(".e-active").addClass("watched-video");const e=this.getCurrentItemSelected().dataItemId;if(!this.watchedVideosArray.includes(e)&&this.watchedIndication&&(this.watchedVideosArray.push(this.getCurrentItemSelected().dataItemId),elementorFrontend.storage.set(this.storageKey,JSON.stringify(this.watchedVideosArray))),this.isAutoplayNextUp&&this.playlistItemsArray.length>=++this.currentPlaylistItemIndex){for(;"section"===this.getCurrentItemSelected().videoType;)if(this.currentPlaylistItemIndex++,this.playlistItemsArray.length<this.currentPlaylistItemIndex)return void(this.currentPlaylistItemIndex=this.playlistItemsArray.length);this.changeActiveTab(this.currentPlaylistItemIndex,!0)}})),e.playerInstance.handlePaused((e=>{(0,c.default)(this,"videoPaused","click",e)}))}))}}playVideoAfterCreation(e){e.playerInstance.play()}playVideoOnCreation(e){this.isAutoplayOnLoad?(e.isAutoplayOnLoad=!0,e.playerInstance.mute(),e.playerInstance.play(),this.isAutoplayOnLoad=!1):this.isFirstVideoActivated||(e.isAutoPlayNextUp=!0,e.playerInstance.play()),this.isFirstVideoActivated=!1}createPlaylistItems(){this.playlistItemsArray=[],this.elements.$videos.each(((e,t)=>{const i={},s=jQuery(t);i.videoUrl=s.attr("data-video-url"),i.videoType=s.attr("data-video-type"),i.videoTitle=s.attr("data-video-title"),i.videoDuration=s.attr("data-video-duration"),i.tabContent=t,i.dataTab=e+1,i.dataItemId=this.getElementSettings().tabs[e]._id,this.playlistItemsArray.push(i)})),this.watchedVideosArray.length>0&&this.watchedIndication&&this.watchedVideosArray.forEach((e=>{const t=this.playlistItemsArray.find((t=>t.dataItemId===e));this.elements.$tabTitles.filter('[data-tab="'+t.dataTab+'"]').addClass("watched-video")}))}changeActiveTab(e,t){if(super.changeActiveTab(e),this.playlistItemsArray[e-1]&&"section"!==this.playlistItemsArray[e-1].videoType&&(this.currentPlaylistItemIndex=parseInt(e),t&&(this.currentPlayingPlaylistItemIndex=this.currentPlaylistItemIndex),this.handleVideo(this.getCurrentItemSelected(),t),this.isPageOnLoad||(0,h.setVideoParams)(this.playlistId,this.playlistItemsArray,this.currentPlaylistItemIndex),this.isPageOnLoad=!1,jQuery(this.elements.$innerTabs.eq(e-1)).find(".e-inner-tab-content").length>0)){const e=this.elements.$innerTabs.filter(".e-active").find(".e-inner-tab-content");(0,d.handleInnerTabsButtonsDisplay)(e.toArray(),this.isCollapsible,this.innerTabsHeightLimit)}}}t.default=VideoPlaylistHandler},6940:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.handleInnerTabs=function handleInnerTabs(e,t){const i=e.target,s=i.tagName;if(i.classList.contains("e-inner-tab-title-text")){e.preventDefault();const s=jQuery(i).parent(".e-inner-tab-title");toggleInnerTabs(e,s,t)}if(i.classList.contains("e-tab-mobile-title")){const s=jQuery(i);toggleInnerTabs(e,s,t)}"button"===s.toLowerCase()&&onTabContentButtonsClick(e,t)},t.handleInnerTabsButtonsDisplay=handleInnerTabsButtonsDisplay,t.onTabContentButtonsClick=onTabContentButtonsClick;var a=s(i(870));function toggleInnerTabs(e,t,i){const s=e.currentTarget,n=s.querySelectorAll(".e-inner-tab-title");if(t.hasClass("e-inner-tab-active")||n.length<2)return;const r=s.querySelectorAll(".e-inner-tab-content");n.forEach((e=>{e.classList.toggle("e-inner-tab-active")})),r.forEach((e=>{e.toggleAttribute("hidden"),e.classList.toggle("e-inner-tab-active")})),handleInnerTabsButtonsDisplay(Array.from(r),i.isCollapsible,i.innerTabsHeightLimit),(0,a.default)(i,"tabOpened","click")}function handleInnerTabsButtonsDisplay(e,t,i){if(!t)return;const s=e.filter((e=>e.classList.contains("e-inner-tab-active"))),a=s[0].querySelector(".e-inner-tab-text > div").offsetHeight,n=parseInt(i.size);n&&a>n&&s[0].classList.add("show-inner-tab-buttons")}function onTabContentButtonsClick(e,t){const i=jQuery(e.currentTarget).find(".e-inner-tab-content").filter(".e-inner-tab-active");i.find("button").toggleClass("show-button"),i.toggleClass("show-full-height");const s=i.hasClass("show-full-height")?"tabExpanded":"tabCollapsed";(0,a.default)(t,s,"click")}},1198:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=class PlayerBase{constructor(e,t){this.playlistItem=e,this.positionInVideoList=t}formatDuration(e){const t=new Date(1e3*e),i=t.getUTCHours(),s=t.getUTCMinutes(),a=t.getSeconds();return 0!==i?`${i.toString()}:${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`:`${s.toString()}:${a.toString().padStart(2,"0")}`}}},8803:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=s(i(1198));class playerHosted extends a.default{constructor(e,t){super(e,t),this.playerObject=null,this.watchCount=0,this.isVideoPlaying=!1,this.isVideoPausedLocal=!1,this.isVideoSeeking=!1,this.isVideoEnded=!1,this.isReady=!1}create(){return new Promise((e=>{const t=document.createElement("video");t.setAttribute("controls","");const i=document.createTextNode("Sorry, your browser doesn't support embedded videos."),s=document.createElement("source");s.setAttribute("src",this.playlistItem.videoUrl),s.setAttribute("type","video/"+this.playlistItem.videoUrl.split(".").pop()),t.appendChild(s),t.appendChild(i),this.playerObject=t,this.playlistItem.tabContent.querySelector("div").replaceWith(this.playerObject),this.playerObject.addEventListener("canplay",(()=>{this.isReady=!0,e()})),this.playerObject.addEventListener("seeked",(()=>{this.isVideoSeeking=!1})),this.playerObject.addEventListener("seeking",(()=>{clearTimeout(this.seekTimeOut),this.isVideoSeeking=!0}))}))}handleEnded(e){this.playerObject.addEventListener("ended",(()=>{this.watchCount++,this.isVideoEnded=!0,this.isVideoPlaying=!1,e(this.playlistItem)}))}handlePaused(e){this.playerObject.addEventListener("pause",(()=>{this.seekTimeOut=setTimeout((()=>{this.isVideoSeeking||this.isVideoEnded?this.isVideoEnded=!1:(e(this.positionInVideoList),this.isVideoPausedLocal=!0)}),30)}))}handlePlayed(e){this.playerObject.addEventListener("play",(()=>{this.isVideoSeeking||e(this.playlistItem)}))}handleFullScreenChange(e){jQuery(this.playerObject).on("webkitfullscreenchange mozfullscreenchange fullscreenchange",(()=>{e(document.fullscreenElement)}))}getCurrentTime(){return this.playerObject.currentTime}play(){this.isReady&&(this.isVideoPlaying=!0,this.playerObject.play())}pause(){this.isReady&&(this.isVideoPlaying=!1,this.playerObject.pause())}mute(){this.playerObject.muted=!0}}t.default=playerHosted},9980:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=s(i(1198));class playerVimeo extends a.default{constructor(e,t){super(e,t),this.apiProvider=elementorFrontend.utils.vimeo,this.playerObject=null,this.watchCount=0,this.isVideoInFullScreenChange=!1,this.isReady=!1}create(){return this.currentVideoID=this.apiProvider.getVideoIDFromURL(this.playlistItem.videoUrl),new Promise((e=>{this.apiProvider.onApiReady((t=>{const i={id:this.currentVideoID,autoplay:!0};this.playerObject=new t.Player(this.playlistItem.tabContent.querySelector("div"),i),this.playerObject.ready().then((()=>{this.isReady=!0,e()}))}))}))}handleEnded(e){this.playerObject.on("ended",(()=>{this.watchCount++,e(this.playlistItem)}))}handlePaused(e){this.playerObject.on("pause",(t=>{0===t.percent||t.percent>=1||this.isVideoInFullScreenChange||e(this.positionInVideoList)}))}handlePlayed(e){this.playerObject.on("play",(()=>{this.isVideoInFullScreenChange?this.isVideoInFullScreenChange=!1:e(this.playlistItem)}))}handleFullScreenChange(e){this.playerObject.element.addEventListener("fullscreenchange",(()=>{e(document.fullscreenElement),this.isVideoInFullScreenChange=!0}))}getCurrentTime(){return this.playerObject.getCurrentTime().then((e=>e))}play(){this.isReady&&this.playerObject.play()}pause(){this.isReady&&this.playerObject.pause()}mute(){this.playerObject.setMuted(!0)}async setVideoProviderData(){if(!this.currentVideoID&&9===!this.currentVideoID.length)return;const e=await this.playerObject.getVideoId(),t=await fetch("https://vimeo.com/api/v2/video/"+e+".json"),i=await t.json();return this.playlistItem.duration=this.formatDuration(i[0].duration),this.playlistItem.video_title=i[0].title,this.playlistItem.thumbnail={url:i[0].thumbnail_medium},this.playlistItem}}t.default=playerVimeo},832:(e,t,i)=>{"use strict";var s=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=s(i(1198));class playerYoutube extends a.default{constructor(e,t){super(e,t),this.apiProvider=elementorFrontend.utils.youtube,this.playerObject=null,this.watchCount=0,this.isVideoPlaying=!1,this.isVideoPausedLocal=!1,this.isVideoEnded=!1,this.seekSequenceArray=[],this.pauseCurrentTime=null,this.isReady=!1}create(){this.currentVideoID=this.apiProvider.getVideoIDFromURL(this.playlistItem.videoUrl);return new Promise((e=>{this.apiProvider.onApiReady((t=>{const i={width:"773",videoId:this.currentVideoID,playerVars:{rel:0,showinfo:0,ecver:2},events:{onReady:()=>{this.isReady=!0,e()}}};this.playerObject=new t.Player(this.playlistItem.tabContent.querySelector("div"),i),this.playerObject.addEventListener("onStateChange",(e=>{3===e.data&&(2===this.seekSequenceArray[this.seekSequenceArray.length-1]?this.seekSequenceArray.push(3):(this.seekSequenceArray=[],clearTimeout(this.seekTimeOut)))}))}))}))}handleEnded(e){this.playerObject.addEventListener("onStateChange",(t=>{0===t.data&&(this.watchCount++,this.isVideoEnded=!0,t.target.seekTo(0),t.target.stopVideo(),this.isVideoPlaying=!1,e())}))}handlePaused(e){this.playerObject.addEventListener("onStateChange",(t=>{2===t.data&&(this.seekSequenceArray=[],this.seekSequenceArray.push(2),this.pauseCurrentTime=this.playerObject.playerInfo.currentTime,this.seekTimeOut=setTimeout((()=>{2===this.seekSequenceArray.length&&2===this.seekSequenceArray[0]&&3===this.seekSequenceArray[1]?(this.seekSequenceArray=[],clearTimeout(this.seekTimeOut)):(e(this.positionInVideoList),this.isVideoPausedLocal=!0)}),1e3))}))}handlePlayed(e){this.playerObject.addEventListener("onStateChange",(t=>{1!==t.data||this.isVideoEnded?this.isVideoEnded=!1:2===this.seekSequenceArray.length&&2===this.seekSequenceArray[0]&&3===this.seekSequenceArray[1]||e()}))}handleError(e){this.playerObject.addEventListener("onError",(()=>{e()}))}handleFullScreenChange(e){this.playerObject.h.addEventListener("fullscreenchange",(()=>{e(document.fullscreenElement)}))}getCurrentTime(){const e=this.pauseCurrentTime?this.pauseCurrentTime:this.playerObject.playerInfo.currentTime;return this.pauseCurrentTime=null,e}play(){this.isReady&&(this.isVideoPlaying=!0,this.playerObject.playVideo())}pause(){this.isReady&&(this.isVideoPlaying=!1,this.playerObject.pauseVideo())}mute(){this.playerObject.mute()}async setVideoProviderData(){this.isReady&&(this.currentVideoID&&11===this.currentVideoID.length?(this.playlistItem.thumbnail={url:"http://img.youtube.com/vi/"+this.playerObject.getVideoData().video_id+"/maxresdefault.jpg"},this.playlistItem.video_title=this.playerObject.getVideoData().title,this.playlistItem.duration=this.formatDuration(this.playerObject.getDuration())):(this.playlistItem.thumbnail={url:""},this.playlistItem.video_title="",this.playlistItem.duration=""))}}t.default=playerYoutube},9147:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=class PlaylistEvent{constructor({event:e,tab:t,playlist:i,video:s}){this.event={type:e.type||"",time:e.time||0,element:e.element,trigger:e.trigger||"",watchCount:e.watchCount||0},this.tab={name:t.name,index:t.index},this.playlist={name:i.name,currentItem:i.currentItem,amount:i.amount},this.video={provider:s.provider,url:s.url,title:s.title,duration:s.duration}}}},5721:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handleVideosPanelScroll=function handleVideosPanelScroll(e,t){if(!t)return void(e.$tabsItems[0].offsetHeight<e.$tabsItems[0].scrollHeight&&e.$tabsWrapper.addClass("bottom-shadow"));t.target.scrollTop>0?e.$tabsWrapper.addClass("top-shadow"):e.$tabsWrapper.removeClass("top-shadow");t.target.offsetHeight+t.target.scrollTop>=t.target.scrollHeight?e.$tabsWrapper.removeClass("bottom-shadow"):e.$tabsWrapper.addClass("bottom-shadow")}},3276:(e,t)=>{"use strict";function setVideoParams(e,t,i){const s=new URLSearchParams(location.search);s.set("playlist",e),s.set("video",t[i-1].dataItemId),history.replaceState({},"",location.pathname+"?"+s)}Object.defineProperty(t,"__esModule",{value:!0}),t.handleURLParams=function handleURLParams(e,t){const i=new URLSearchParams(location.search),s=i.get("video"),a=i.get("playlist");if(!a)return!1;if(a===e){const i=t.find((e=>s===e.dataItemId)),a=i?i.dataTab:1;return a||setVideoParams(e,t,1),a||!1}},t.setVideoParams=setVideoParams}}]);PK!ze)��K�K1assets/js/form.0fc25ba6639255b98660.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[680],{8906:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class DataTimeFieldBase extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{fields:this.getFieldsSelector()},classes:{useNative:"elementor-use-native"}}}getDefaultElements(){const{selectors:e}=this.getDefaultSettings();return{$fields:this.$element.find(e.fields)}}addPicker(e){const{classes:t}=this.getDefaultSettings();jQuery(e).hasClass(t.useNative)||e.flatpickr(this.getPickerOptions(e))}onInit(...e){super.onInit(...e),this.elements.$fields.each(((e,t)=>this.addPicker(t)))}}t.default=DataTimeFieldBase},4610:(e,t,s)=>{"use strict";var r=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(s(8906));class DateField extends i.default{getFieldsSelector(){return".elementor-date-field"}getPickerOptions(e){const t=jQuery(e);return{minDate:t.attr("min")||null,maxDate:t.attr("max")||null,allowInput:!0}}}t.default=DateField},6374:(e,t,s)=>{"use strict";var r=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(s(8906));class TimeField extends i.default{getFieldsSelector(){return".elementor-time-field"}getPickerOptions(){return{noCalendar:!0,enableTime:!0,allowInput:!0}}}t.default=TimeField},611:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t},bindEvents(){this.elements.$form.on("form_destruct",this.handleSubmit)},handleSubmit(e,t){void 0!==t.data.redirect_url&&(location.href=t.data.redirect_url)}});t.default=s},7300:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form",submitButton:'[type="submit"]'},action:"elementor_pro_forms_send_form",ajaxUrl:elementorProFrontend.config.ajaxurl}),getDefaultElements(){const e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t.$submitButton=t.$form.find(e.submitButton),t},bindEvents(){this.elements.$form.on("submit",this.handleSubmit);const e=this.elements.$form.find("input[type=file]");e.length&&e.on("change",this.validateFileSize)},validateFileSize(e){const t=jQuery(e.currentTarget),s=t[0].files;if(!s.length)return;const r=1024*parseInt(t.attr("data-maxsize"))*1024,i=t.attr("data-maxsize-message");Array.prototype.slice.call(s).forEach((e=>{r<e.size&&(t.parent().addClass("elementor-error").append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">'+i+"</span>").find(":input").attr("aria-invalid","true"),this.elements.$form.trigger("error"))}))},beforeSend(){const e=this.elements.$form;e.animate({opacity:"0.45"},500).addClass("elementor-form-waiting"),e.find(".elementor-message").remove(),e.find(".elementor-error").removeClass("elementor-error"),e.find("div.elementor-field-group").removeClass("error").find("span.elementor-form-help-inline").remove().end().find(":input").attr("aria-invalid","false"),this.elements.$submitButton.attr("disabled","disabled").find("> span").prepend('<span class="elementor-button-text elementor-form-spinner"><i class="fa fa-spinner fa-spin"></i>&nbsp;</span>')},getFormData(){const e=new FormData(this.elements.$form[0]);return e.append("action",this.getSettings("action")),e.append("referrer",location.toString()),e},onSuccess(e){const t=this.elements.$form;this.elements.$submitButton.removeAttr("disabled").find(".elementor-form-spinner").remove(),t.animate({opacity:"1"},100).removeClass("elementor-form-waiting"),e.success?(t.trigger("submit_success",e.data),t.trigger("form_destruct",e.data),t.trigger("reset"),void 0!==e.data.message&&""!==e.data.message&&t.append('<div class="elementor-message elementor-message-success" role="alert">'+e.data.message+"</div>")):(e.data.errors&&(jQuery.each(e.data.errors,(function(e,s){t.find("#form-field-"+e).parent().addClass("elementor-error").append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">'+s+"</span>").find(":input").attr("aria-invalid","true")})),t.trigger("error")),t.append('<div class="elementor-message elementor-message-danger" role="alert">'+e.data.message+"</div>"))},onError(e,t){const s=this.elements.$form;s.append('<div class="elementor-message elementor-message-danger" role="alert">'+t+"</div>"),this.elements.$submitButton.html(this.elements.$submitButton.text()).removeAttr("disabled"),s.animate({opacity:"1"},100).removeClass("elementor-form-waiting"),s.trigger("error")},handleSubmit(e){const t=this,s=this.elements.$form;if(e.preventDefault(),s.hasClass("elementor-form-waiting"))return!1;this.beforeSend(),jQuery.ajax({url:t.getSettings("ajaxUrl"),type:"POST",dataType:"json",data:t.getFormData(),processData:!1,contentType:!1,success:t.onSuccess,error:t.onError})}});t.default=s},9706:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class FormSteps extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{form:".elementor-form",fieldsWrapper:".elementor-form-fields-wrapper",fieldGroup:".elementor-field-group",stepWrapper:".elementor-field-type-step",stepField:".e-field-step",submitWrapper:".elementor-field-type-submit",submitButton:'[type="submit"]',buttons:".e-form__buttons",buttonWrapper:".e-form__buttons__wrapper",button:".e-form__buttons__wrapper__button",indicator:".e-form__indicators__indicator",indicatorProgress:".e-form__indicators__indicator__progress",indicatorProgressMeter:".e-form__indicators__indicator__progress__meter",formHelpInline:".elementor-form-help-inline"},classes:{hidden:"elementor-hidden",column:"elementor-column",fieldGroup:"elementor-field-group",elementorButton:"elementor-button",step:"e-form__step",buttons:"e-form__buttons",buttonWrapper:"e-form__buttons__wrapper",button:"e-form__buttons__wrapper__button",indicators:"e-form__indicators",indicator:"e-form__indicators__indicator",indicatorIcon:"e-form__indicators__indicator__icon",indicatorNumber:"e-form__indicators__indicator__number",indicatorLabel:"e-form__indicators__indicator__label",indicatorProgress:"e-form__indicators__indicator__progress",indicatorProgressMeter:"e-form__indicators__indicator__progress__meter",indicatorSeparator:"e-form__indicators__indicator__separator",indicatorInactive:"e-form__indicators__indicator--state-inactive",indicatorActive:"e-form__indicators__indicator--state-active",indicatorCompleted:"e-form__indicators__indicator--state-completed",indicatorShapeCircle:"e-form__indicators__indicator--shape-circle",indicatorShapeSquare:"e-form__indicators__indicator--shape-square",indicatorShapeRounded:"e-form__indicators__indicator--shape-rounded",indicatorShapeNone:"e-form__indicators__indicator--shape-none"}}}getDefaultElements(){const{selectors:e}=this.getSettings(),t={$form:this.$element.find(e.form)};return t.$fieldsWrapper=t.$form.children(e.fieldsWrapper),t.$stepWrapper=t.$fieldsWrapper.children(e.stepWrapper),t.$stepField=t.$stepWrapper.children(e.stepField),t.$fieldGroup=t.$fieldsWrapper.children(e.fieldGroup),t.$submitWrapper=t.$fieldsWrapper.children(e.submitWrapper),t.$submitButton=t.$submitWrapper.children(e.submitButton),t}onInit(...e){super.onInit(...e),this.isStepsExist()&&(this.data={steps:[],indicatorsWithObjectTags:[]},this.state={currentStep:0,stepsType:"",stepsShape:""},this.buildSteps(),this.elements={...this.elements,...this.createStepsIndicators(),...this.createStepsButtons()},this.initProgressBar(),this.extractResponsiveSizeFromSubmitWrapper())}bindEvents(){this.isStepsExist()&&this.elements.$form.on({submit:()=>this.resetForm(),keydown:e=>{13!==e.keyCode||this.isLastStep()||"textarea"===e.target.localName||(e.preventDefault(),this.applyStep("next"))},error:()=>this.onFormError()})}isStepsExist(){return this.elements.$stepWrapper.length}initProgressBar(){"progress_bar"===this.getElementSettings().step_type&&this.setProgressBar()}buildSteps(){this.elements.$stepWrapper.each(((e,t)=>{const{selectors:s,classes:r}=this.getSettings(),i=jQuery(t);i.addClass(r.step).removeClass(r.fieldGroup,r.column),e&&i.addClass(r.hidden),this.setStepData(i.children(s.stepField)),i.append(i.nextUntil(this.elements.$stepWrapper).not(this.elements.$submitWrapper))}))}setStepData(e){const t={};["label","previousButton","nextButton","iconUrl","iconLibrary","icon"].forEach((s=>{const r=e.attr("data-"+s);r&&(t[s]=r)})),this.data.steps.push(t)}createStepsIndicators(){const e=this.getElementSettings(),t={};if("none"!==e.step_type){const{selectors:s,classes:r}=this.getSettings(),i=r.indicators+"--type-"+e.step_type,n=[r.indicators,i];t.$indicatorsWrapper=jQuery("<div>",{class:n.join(" ")}),t.$indicatorsWrapper.append(this.buildIndicators()),this.elements.$fieldsWrapper.before(t.$indicatorsWrapper),"progress_bar"===e.step_type?(t.$progressBar=t.$indicatorsWrapper.find(s.indicatorProgress),t.$progressBarMeter=t.$indicatorsWrapper.find(s.indicatorProgressMeter)):(t.$indicators=t.$indicatorsWrapper.find(s.indicator),t.$currentIndicator=t.$indicators.eq(this.state.currentStep))}return this.saveIndicatorsState(),t}buildIndicators(){return"progress_bar"===this.getElementSettings().step_type?this.buildProgressBar():this.buildIndicatorsFromStepsData()}buildProgressBar(){const{classes:e}=this.getSettings(),t=jQuery("<div>",{class:e.indicatorProgress}),s=jQuery("<div>",{class:e.indicatorProgressMeter});return t.append(s),t}getProgressBarValue(){const e=this.data.steps.length,t=this.state.currentStep,s=t?(t+1)/e*100:100/e;return Math.floor(s)+"%"}setProgressBar(){const e=this.getProgressBarValue();this.updateProgressMeterCSSVariable(e),this.elements.$progressBarMeter.text(e)}updateProgressMeterCSSVariable(e){this.$element[0].style.setProperty("--e-form-steps-indicator-progress-meter-width",e)}saveIndicatorsState(){const e=this.getElementSettings();this.state.stepsType=e.step_type,["none","text","progress_bar"].includes(e.step_type)||(this.state.stepsShape=e.step_icon_shape)}buildIndicatorsFromStepsData(){const e=[];return this.data.steps.forEach(((t,s)=>{s&&e.push(this.getStepSeparator()),e.push(this.getStepIndicatorElement(t,s))})),e}getStepIndicatorElement(e,t){const{classes:s}=this.getSettings(),r=this.getElementSettings(),i=this.getIndicatorStateClass(t),n=[s.indicator,i],a=jQuery("<div>",{class:n.join(" ")});return r.step_type.includes("icon")&&a.append(this.getStepIconElement(e)),r.step_type.includes("number")&&a.append(this.getStepNumberElement(t)),r.step_type.includes("text")&&a.append(this.getStepLabelElement(e.label)),a}getIndicatorStateClass(e){const{classes:t}=this.getSettings();return e<this.state.currentStep?t.indicatorCompleted:e>this.state.currentStep?t.indicatorInactive:t.indicatorActive}getIndicatorShapeClass(){const e=this.getElementSettings(),{classes:t}=this.getSettings();return t["indicatorShape"+this.firstLetterToUppercase(e.step_icon_shape)]}firstLetterToUppercase(e){return e.charAt(0).toUpperCase()+e.slice(1)}getStepNumberElement(e){const{classes:t}=this.getSettings(),s=[t.indicatorNumber,this.getIndicatorShapeClass()];return jQuery("<div>",{class:s.join(" "),text:e+1})}getStepIconElement(e){const{classes:t}=this.getSettings(),s=[t.indicatorIcon,this.getIndicatorShapeClass()],r=jQuery("<div>",{class:s.join(" ")});if(e.icon)r.html(e.icon);else{let t;e.iconLibrary?t=jQuery("<i>",{class:e.iconLibrary}):(t=jQuery(`<object type="image/svg+xml" data="${e.iconUrl}"></object>`),t.on("load",(e=>{e.target.contentDocument.querySelector("svg").style.fill=t.css("fill")})),this.data.indicatorsWithObjectTags.push(t)),r.append(t)}return r}getStepLabelElement(e){const{classes:t}=this.getSettings();return jQuery("<label>",{class:t.indicatorLabel,text:e})}getStepSeparator(){const{classes:e}=this.getSettings();return jQuery("<div>",{class:e.indicatorSeparator})}createStepsButtons(){const{selectors:e}=this.getSettings(),t={};return this.injectButtonsToSteps(t),t.$buttonsContainer=this.elements.$stepWrapper.find(e.buttons),t.$buttonsWrappers=t.$buttonsContainer.children(e.buttonWrapper),t}injectButtonsToSteps(){const e=this.elements.$stepWrapper.length;this.elements.$stepWrapper.each(((t,s)=>{const r=jQuery(s),i=this.getButtonsContainer();let n;t?(i.append(this.getStepButton("previous",t)),n=t===e-1?this.getSubmitButton():this.getStepButton("next",t)):n=this.getStepButton("next",t),i.append(n),r.append(i)}))}getButtonsContainer(){const{classes:e}=this.getSettings(),t=this.getElementSettings(),s=[e.buttons,e.column,"elementor-col-"+t.button_width];return jQuery("<div>",{class:s.join(" ")})}extractResponsiveSizeFromSubmitWrapper(){let e=[];this.elements.$submitWrapper.removeClass(((t,s)=>{var r;return e=null===(r=s.match(/elementor-(sm|md)-[0-9]+/g))||void 0===r?void 0:r.join(" "),e})),this.elements.$buttonsContainer.addClass(e)}getStepButton(e,t){const{classes:s}=this.getSettings(),r=this.getButton(e,t).on("click",(()=>this.applyStep(e))),i=[s.fieldGroup,s.buttonWrapper,"elementor-field-type-"+e];return jQuery("<div>",{class:i.join(" ")}).append(r)}getSubmitButton(){const{classes:e}=this.getSettings();return this.elements.$submitButton.addClass(e.button),this.elements.$submitWrapper.attr("class",((e,t)=>this.replaceClassNameColSize(t,""))).removeClass(e.column).removeClass(e.buttons).addClass(e.buttonWrapper)}replaceClassNameColSize(e,t){return e.replace(/elementor-col-([0-9]+)/g,t)}getButton(e,t){const{classes:s}=this.getSettings(),r=this.elements.$submitButton.attr("class").match(/elementor-size-([^\W\d]+)/g),i=[s.elementorButton,r,s.button,s.button+"-"+e];return jQuery("<button>",{type:"button",text:this.getButtonLabel(e,t),class:i.join(" ")})}getButtonLabel(e,t){const s=this.getElementSettings(),r=`step_${e}_label`;return this.data.steps[t][e+"Button"]||s[r]}applyStep(e){const t="next"===e?this.state.currentStep+1:this.state.currentStep-1;if("next"===e&&!this.isFieldsValid(this.elements.$stepWrapper))return!1;this.goToStep(t),this.state.currentStep=t,"progress_bar"===this.state.stepsType?this.setProgressBar():"none"!==this.state.stepsType&&this.updateIndicatorsState(e)}goToStep(e){const{classes:t}=this.getSettings();this.elements.$stepWrapper.eq(this.state.currentStep).addClass(t.hidden),this.elements.$stepWrapper.eq(e).removeClass(t.hidden).children(this.getSettings("selectors.fieldGroup")).first().find(":input").first().trigger("focus")}isFieldsValid(e){let t=!0;return e.eq(this.state.currentStep).find(".elementor-field-group :input").each(((e,s)=>{if(!s.checkValidity())return s.reportValidity(),t=!1})),t}isLastStep(){return this.state.currentStep===this.data.steps.length-1}resetForm(){this.state.currentStep=0,this.resetSteps(),"progress_bar"===this.state.stepsType?this.setProgressBar():"none"!==this.state.stepsType&&(this.elements.$currentIndicator=this.elements.$indicators.eq(this.state.currentStep),this.resetIndicators())}resetSteps(){const{classes:e}=this.getSettings();this.elements.$stepWrapper.addClass(e.hidden).eq(0).removeClass(e.hidden)}resetIndicators(){const{classes:e}=this.getSettings(),t=["inactive","active","completed"].map((t=>e.indicator+"--state-"+t));this.elements.$indicators.removeClass(t.join(" ")).not(this.elements.$indicators.eq(0)).addClass(e.indicatorInactive),this.elements.$indicators.eq(0).addClass(e.indicatorActive)}updateIndicatorsState(e){const{classes:t}=this.getSettings(),s={current:{remove:t.indicatorActive,add:"next"===e?t.indicatorCompleted:t.indicatorInactive},next:{remove:"next"===e?t.indicatorInactive:t.indicatorCompleted,add:t.indicatorActive}};this.elements.$currentIndicator.removeClass(s.current.remove).addClass(s.current.add),this.elements.$currentIndicator=this.elements.$indicators.eq(this.state.currentStep),this.elements.$currentIndicator.removeClass(s.next.remove).addClass(s.next.add),this.data.indicatorsWithObjectTags.forEach((e=>{e.contents().children("svg").css("fill",e.css("fill"))}))}updateValue(e){const t={step_type:()=>this.updateStepsType(),step_icon_shape:()=>this.updateStepsShape(),step_next_label:()=>this.updateStepButtonsLabel("next"),step_previous_label:()=>this.updateStepButtonsLabel("previous")};t[e]&&t[e]()}updateStepsType(){const e=this.getElementSettings();this.elements.$indicatorsWrapper&&this.elements.$indicatorsWrapper.remove(),"none"!==e.step_type&&this.rebuildIndicators(),this.state.stepsType=e.step_type}rebuildIndicators(){this.elements={...this.elements,...this.createStepsIndicators()},this.initProgressBar()}updateStepsShape(){const e=this.getElementSettings(),{selectors:t,classes:s}=this.getSettings(),r=s.indicator+"--shape-",i=r+this.state.stepsShape,n=r+e.step_icon_shape;let a="";e.step_type.includes("icon")?a="icon":e.step_type.includes("number")&&(a="number"),this.elements.$indicators.children(t.indicator+"__"+a).removeClass(i).addClass(n),this.state.stepsShape=e.step_icon_shape}updateStepButtonsLabel(e){const{selectors:t}=this.getSettings(),s={previous:t.button+"-previous",next:t.button+"-next"};this.elements.$stepWrapper.each(((t,r)=>{jQuery(r).find(s[e]).text(this.getButtonLabel(e,t))}))}onFormError(){const{selectors:e}=this.getSettings(),t=this.elements.$form.find(e.formHelpInline).closest(e.stepWrapper);t.length&&this.goToStep(t.index())}onElementChange(e){this.isStepsExist()&&this.updateValue(e)}}t.default=FormSteps},9228:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Recaptcha extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{recaptcha:".elementor-g-recaptcha:last",submit:'button[type="submit"]',recaptchaResponse:'[name="g-recaptcha-response"]'}}}getDefaultElements(){const{selectors:e}=this.getDefaultSettings(),t={$recaptcha:this.$element.find(e.recaptcha)};return t.$form=t.$recaptcha.parents("form"),t.$submit=t.$form.find(e.submit),t}bindEvents(){this.onRecaptchaApiReady()}isActive(e){const{selectors:t}=this.getDefaultSettings();return e.$element.find(t.recaptcha).length}addRecaptcha(){const e=this.elements.$recaptcha.data(),t="v3"!==e.type,s=[];s.forEach((e=>window.grecaptcha.reset(e)));const r=window.grecaptcha.render(this.elements.$recaptcha[0],e);this.elements.$form.on("reset error",(()=>{window.grecaptcha.reset(r)})),t?this.elements.$recaptcha.data("widgetId",r):(s.push(r),this.elements.$submit.on("click",(e=>this.onV3FormSubmit(e,r))))}onV3FormSubmit(e,t){e.preventDefault(),window.grecaptcha.ready((()=>{const e=this.elements.$form;grecaptcha.execute(t,{action:this.elements.$recaptcha.data("action")}).then((t=>{this.elements.$recaptchaResponse?this.elements.$recaptchaResponse.val(t):(this.elements.$recaptchaResponse=jQuery("<input>",{type:"hidden",value:t,name:"g-recaptcha-response"}),e.append(this.elements.$recaptchaResponse));(!e[0].reportValidity||"function"!=typeof e[0].reportValidity||e[0].reportValidity())&&e.trigger("submit")}))}))}onRecaptchaApiReady(){window.grecaptcha&&window.grecaptcha.render?this.addRecaptcha():setTimeout((()=>this.onRecaptchaApiReady()),350)}}t.default=Recaptcha}}]);PK!�|;;2assets/js/posts.2a35b76ad8ea8f612cd7.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[287],{8014:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2926)).default.extend({getSkinPrefix:()=>"cards_"});t.default=i},2926:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getSkinPrefix:()=>"classic_",bindEvents(){var e=this.getModelCID();elementorFrontend.addListenerOnce(e,"resize",this.onWindowResize)},getClosureMethodsNames(){return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this,arguments).concat(["fitImages","onWindowResize","runMasonry"])},getDefaultSettings:()=>({classes:{fitHeight:"elementor-fit-height",hasItemRatio:"elementor-has-item-ratio"},selectors:{postsContainer:".elementor-posts-container",post:".elementor-post",postThumbnail:".elementor-post__thumbnail",postThumbnailImage:".elementor-post__thumbnail img"}}),getDefaultElements(){var e=this.getSettings("selectors");return{$postsContainer:this.$element.find(e.postsContainer),$posts:this.$element.find(e.post)}},fitImage(e){var t=this.getSettings(),s=e.find(t.selectors.postThumbnail),n=s.find("img")[0];if(n){var i=s.outerHeight()/s.outerWidth(),o=n.naturalHeight/n.naturalWidth;s.toggleClass(t.classes.fitHeight,o<i)}},fitImages(){var e=jQuery,t=this,s=getComputedStyle(this.$element[0],":after").content,n=this.getSettings();this.elements.$postsContainer.toggleClass(n.classes.hasItemRatio,!!s.match(/\d/)),t.isMasonryEnabled()||this.elements.$posts.each((function(){var s=e(this),i=s.find(n.selectors.postThumbnailImage);t.fitImage(s),i.on("load",(function(){t.fitImage(s)}))}))},setColsCountSettings(){var e,t=elementorFrontend.getCurrentDeviceMode(),s=this.getElementSettings(),n=this.getSkinPrefix();switch(t){case"mobile":e=s[n+"columns_mobile"];break;case"tablet":e=s[n+"columns_tablet"];break;default:e=s[n+"columns"]}this.setSettings("colsCount",e)},isMasonryEnabled(){return!!this.getElementSettings(this.getSkinPrefix()+"masonry")},initMasonry(){imagesLoaded(this.elements.$posts,this.runMasonry)},runMasonry(){var e=this.elements;e.$posts.css({marginTop:"",transitionDuration:""}),this.setColsCountSettings();var t=this.getSettings("colsCount"),s=this.isMasonryEnabled()&&t>=2;if(e.$postsContainer.toggleClass("elementor-posts-masonry",s),s){var n=this.getElementSettings(this.getSkinPrefix()+"row_gap.size");""===this.getSkinPrefix()&&""===n&&(n=this.getElementSettings(this.getSkinPrefix()+"item_gap.size")),new elementorModules.utils.Masonry({container:e.$postsContainer,items:e.$posts.filter(":visible"),columnsCount:this.getSettings("colsCount"),verticalSpaceBetween:n}).run()}else e.$postsContainer.height("")},run(){setTimeout(this.fitImages,0),this.initMasonry()},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.bindEvents(),this.run()},onWindowResize(){this.fitImages(),this.runMasonry()},onElementChange(){this.fitImages(),setTimeout(this.runMasonry)}});t.default=s}}]);PK!s~3���=assets/js/progress-tracker.ad310e07a2a9063dd3ed.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[241],{9728:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=class CircularProgress{constructor(e,r){this.settings=r,this.lastKnownProgress=null,this.circularProgressTracker=e.find(".elementor-scrolling-tracker-circular")[0],this.circularCurrentProgress=this.circularProgressTracker.getElementsByClassName("current-progress")[0],this.circularCurrentProgressPercentage=this.circularProgressTracker.getElementsByClassName("current-progress-percentage")[0];const s=2*this.circularCurrentProgress.r.baseVal.value*Math.PI;this.circularCurrentProgress.style.strokeDasharray=`${s} ${s}`,this.circularCurrentProgress.style.strokeDashoffset=s,this.elements=this.cacheElements(),this.resizeObserver=new ResizeObserver((()=>{this.lastKnownProgress&&this.updateProgress(this.lastKnownProgress)})),this.resizeObserver.observe(this.circularProgressTracker)}cacheElements(){return{circularProgressTracker:this.circularProgressTracker,circularCurrentProgress:this.circularCurrentProgress,circularCurrentProgressPercentage:this.circularCurrentProgressPercentage}}updateProgress(e){if(e<=0)return this.elements.circularCurrentProgress.style.display="none",void(this.elements.circularCurrentProgressPercentage.style.display="none");this.elements.circularCurrentProgress.style.display="block",this.elements.circularCurrentProgressPercentage.style.display="block";const r=2*this.elements.circularCurrentProgress.r.baseVal.value*Math.PI,s=r-e/100*r;this.lastKnownProgress=e,this.elements.circularCurrentProgress.style.strokeDasharray=`${r} ${r}`,this.elements.circularCurrentProgress.style.strokeDashoffset="ltr"===this.settings.direction?-s:s,"yes"===this.settings.percentage&&(this.elements.circularCurrentProgressPercentage.innerHTML=Math.round(e)+"%")}onDestroy(){this.resizeObserver.unobserve(this.circularProgressTracker)}};r.default=s},9696:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=class LinearProgress{constructor(e,r){this.settings=r,this.linearProgressTracker=e.find(".elementor-scrolling-tracker-horizontal")[0],this.linearCurrentProgress=this.linearProgressTracker.getElementsByClassName("current-progress")[0],this.linearCurrentProgressPercentage=this.linearProgressTracker.getElementsByClassName("current-progress-percentage")[0],this.elements=this.cacheElements()}cacheElements(){return{linearProgressTracker:this.linearProgressTracker,linearCurrentProgress:this.linearCurrentProgress,linearCurrentProgressPercentage:this.linearCurrentProgressPercentage}}updateProgress(e){e<1?this.elements.linearCurrentProgress.style.display="none":(this.elements.linearCurrentProgress.style.display="flex",this.elements.linearCurrentProgress.style.width=e+"%","yes"===this.settings.percentage&&this.elements.linearCurrentProgress.getBoundingClientRect().width>1.5*this.elements.linearCurrentProgressPercentage.getBoundingClientRect().width?(this.elements.linearCurrentProgressPercentage.innerHTML=Math.round(e)+"%",this.elements.linearCurrentProgressPercentage.style.color=getComputedStyle(this.linearCurrentProgress).getPropertyValue("--percentage-color")):this.elements.linearCurrentProgressPercentage.style.color="transparent")}};r.default=s},6440:(e,r,s)=>{"use strict";var t=s(7914);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=t(s(9728)),l=t(s(9696));class ProgressTracker extends elementorModules.frontend.handlers.Base{onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.circular="circular"===this.getElementSettings().type;const e=this.circular?n.default:l.default;this.progressBar=new e(this.$element,this.getElementSettings()),this.progressPercentage=0,this.scrollHandler(),this.handler=this.scrollHandler.bind(this),this.initListeners()}getTrackingElementSelector(){let e;switch(this.getElementSettings().relative_to){case"selector":e=jQuery(this.getElementSettings().selector);break;case"post_content":e=jQuery(".elementor-widget-theme-post-content");break;default:e=this.isScrollSnap()?jQuery("#e-scroll-snap-container"):elementorFrontend.elements.$body}return e}isScrollSnap(){return"yes"===(this.isEdit?elementor.settings.page.model.attributes.scroll_snap:elementorFrontend.config.settings.page.scroll_snap)}addScrollSnapContainer(){this.isScrollSnap()&&!jQuery("#e-scroll-snap-container").length&&jQuery("body").wrapInner('<div id="e-scroll-snap-container" />')}scrollHandler(){this.addScrollSnapContainer();const e=this.getTrackingElementSelector(),r=e.is(elementorFrontend.elements.$body)||e.is(jQuery("#e-scroll-snap-container"))?-100:0;this.progressPercentage=elementorModules.utils.Scroll.getElementViewportPercentage(this.getTrackingElementSelector(),{start:r,end:-100}),this.progressBar.updateProgress(this.progressPercentage)}initListeners(){window.addEventListener("scroll",this.handler),elementorFrontend.elements.$body[0].addEventListener("scroll",this.handler)}onDestroy(){this.progressBar.onDestroy&&this.progressBar.onDestroy(),window.removeEventListener("scroll",this.handler),elementorFrontend.elements.$body[0].removeEventListener("scroll",this.handler)}}var i=ProgressTracker;r.default=i}}]);PK!e��R��3assets/js/slides.39da68ee3c8123589b2e.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[114],{7956:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class SlidesHandler extends elementorModules.frontend.handlers.SwiperBase{getDefaultSettings(){return{selectors:{slider:".elementor-slides-wrapper",slide:".swiper-slide",slideInnerContents:".swiper-slide-contents",activeSlide:".swiper-slide-active",activeDuplicate:".swiper-slide-duplicate-active"},classes:{animated:"animated",kenBurnsActive:"elementor-ken-burns--active",slideBackground:"swiper-slide-bg"},attributes:{dataSliderOptions:"slider_options",dataAnimation:"animation"}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.slider)};return t.$slides=t.$swiperContainer.find(e.slide),t}getSwiperOptions(){const e=this.getElementSettings(),t={autoplay:this.getAutoplayConfig(),grabCursor:!0,initialSlide:this.getInitialSlide(),slidesPerView:1,slidesPerGroup:1,loop:"yes"===e.infinite,speed:e.transition_speed,effect:e.transition,observeParents:!0,observer:!0,handleElementorBreakpoints:!0,on:{slideChange:()=>{this.handleKenBurns()}}},i="arrows"===e.navigation||"both"===e.navigation,s="dots"===e.navigation||"both"===e.navigation;return i&&(t.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),s&&(t.pagination={el:".swiper-pagination",type:"bullets",clickable:!0}),!0===t.loop&&(t.loopedSlides=this.getSlidesCount()),"fade"===t.effect&&(t.fadeEffect={crossFade:!0}),t}getAutoplayConfig(){const e=this.getElementSettings();return"yes"===e.autoplay&&{stopOnLastSlide:!0,delay:e.autoplay_speed,disableOnInteraction:"yes"===e.pause_on_interaction}}initSingleSlideAnimations(){const e=this.getSettings(),t=this.elements.$swiperContainer.data(e.attributes.dataAnimation);this.elements.$swiperContainer.find("."+e.classes.slideBackground).addClass(e.classes.kenBurnsActive),t&&this.elements.$swiperContainer.find(e.selectors.slideInnerContents).addClass(e.classes.animated+" "+t)}async initSlider(){const e=this.elements.$swiperContainer,t=this.getSettings(),i=this.getElementSettings(),s=e.data(t.attributes.dataAnimation);if(!e.length)return;if(1>=this.getSlidesCount())return;const n=elementorFrontend.utils.swiper;this.swiper=await new n(e,this.getSwiperOptions()),e.data("swiper",this.swiper),this.handleKenBurns(),i.pause_on_hover&&this.togglePauseOnHover(!0),s&&(this.swiper.on("slideChangeTransitionStart",(function(){e.find(t.selectors.slideInnerContents).removeClass(t.classes.animated+" "+s).hide()})),this.swiper.on("slideChangeTransitionEnd",(function(){e.find(t.selectors.slideInnerContents).show().addClass(t.classes.animated+" "+s)})))}onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),2>this.getSlidesCount()?this.initSingleSlideAnimations():this.initSlider()}getChangeableProperties(){return{pause_on_hover:"pauseOnHover",pause_on_interaction:"disableOnInteraction",autoplay_speed:"delay",transition_speed:"speed"}}updateSwiperOption(e){if(0===e.indexOf("width"))return void this.swiper.update();const t=this.getElementSettings(),i=t[e];let s=this.getChangeableProperties()[e],n=i;switch(e){case"autoplay_speed":s="autoplay",n={delay:i,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"pause_on_hover":this.togglePauseOnHover("yes"===i);break;case"pause_on_interaction":n="yes"===i}"pause_on_hover"!==e&&(this.swiper.params[s]=n),this.swiper.update()}onElementChange(e){if(1>=this.getSlidesCount())return;this.getChangeableProperties().hasOwnProperty(e)&&this.updateSwiperOption(e)}onEditSettingsChange(e){1>=this.getSlidesCount()||"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}}t.default=SlidesHandler}}]);PK!�qm����assets/js/preview.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var t={38401:(t,e,r)=>{t.exports=r(14710)},67394:(t,e,r)=>{t.exports=r(43153)},82055:(t,e,r)=>{t.exports=r(58535)},28274:(t,e,r)=>{t.exports=r(65135)},75499:(t,e,r)=>{t.exports=r(43094)},41281:(t,e,r)=>{t.exports=r(19103)},50093:(t,e,r)=>{t.exports=r(39871)},38852:t=>{t.exports=function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},11959:t=>{t.exports=function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},39041:(t,e,r)=>{var n=r(67394);function _defineProperties(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),n(t,o.key,o)}}t.exports=function _createClass(t,e,r){return e&&_defineProperties(t.prototype,e),r&&_defineProperties(t,r),t},t.exports.default=t.exports,t.exports.__esModule=!0},68537:(t,e,r)=>{var n=r(75499),o=r(44263),i=r(898),u=r(59771);t.exports=function _createSuper(t){var e=i();return function _createSuperInternal(){var r,i=o(t);if(e){var c=o(this).constructor;r=n(i,arguments,c)}else r=i.apply(this,arguments);return u(this,r)}},t.exports.default=t.exports,t.exports.__esModule=!0},44263:(t,e,r)=>{var n=r(28274),o=r(82055);function _getPrototypeOf(e){return t.exports=_getPrototypeOf=n?o:function _getPrototypeOf(t){return t.__proto__||o(t)},t.exports.default=t.exports,t.exports.__esModule=!0,_getPrototypeOf(e)}t.exports=_getPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},77371:(t,e,r)=>{var n=r(38401),o=r(76870);t.exports=function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=n(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},67971:t=>{t.exports=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}},t.exports.default=t.exports,t.exports.__esModule=!0},898:(t,e,r)=>{var n=r(75499);t.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!n)return!1;if(n.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(n(Boolean,[],(function(){}))),!0}catch(t){return!1}},t.exports.default=t.exports,t.exports.__esModule=!0},59771:(t,e,r)=>{var n=r(24596).default,o=r(38852);t.exports=function _possibleConstructorReturn(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?o(t):e},t.exports.default=t.exports,t.exports.__esModule=!0},76870:(t,e,r)=>{var n=r(28274);function _setPrototypeOf(e,r){return t.exports=_setPrototypeOf=n||function _setPrototypeOf(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,_setPrototypeOf(e,r)}t.exports=_setPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},24596:(t,e,r)=>{var n=r(41281),o=r(50093);function _typeof(e){return"function"==typeof n&&"symbol"==typeof o?(t.exports=_typeof=function _typeof(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=_typeof=function _typeof(t){return t&&"function"==typeof n&&t.constructor===n&&t!==n.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),_typeof(e)}t.exports=_typeof,t.exports.default=t.exports,t.exports.__esModule=!0},49021:(t,e,r)=>{"use strict";var n=r(67394),o=r(67971);n(e,"__esModule",{value:!0}),e.default=void 0,r(6632),r(76139),r(2235);var i=o(r(11959)),u=o(r(39041)),c=o(r(77371)),s=o(r(68537)),a=function(t){(0,c.default)(Preview,t);var e=(0,s.default)(Preview);function Preview(){var t;return(0,i.default)(this,Preview),t=e.call(this),elementorFrontend.on("components:init",(function(){return t.onFrontendComponentsInit()})),t}return(0,u.default)(Preview,[{key:"createDocumentsHandles",value:function createDocumentsHandles(){var t=this;jQuery.each(elementorFrontend.documentsManager.documents,(function(e,r){var n=r.$element;if(!n.hasClass("elementor-edit-mode")&&!r.$element.children(".elementor-document-handle").length){var o=jQuery("<div>",{class:"elementor-document-handle"}),i=jQuery("<i>",{class:"eicon-edit"}),u=n.data("elementor-title"),c=jQuery("<div>",{class:"elementor-document-handle__title"}).text(elementorPro.translate("edit_element",[u]));o.append(i,c),o.on("click",(function(){return t.onDocumentHandleClick(r)})),n.prepend(o)}}))}},{key:"onDocumentHandleClick",value:function onDocumentHandleClick(t){elementorCommon.api.internal("panel/state-loading"),elementorCommon.api.run("editor/documents/switch",{id:t.getSettings("id")}).finally((function(){return elementorCommon.api.internal("panel/state-ready")}))}},{key:"onFrontendComponentsInit",value:function onFrontendComponentsInit(){var t=this;this.createDocumentsHandles(),elementor.on("document:loaded",(function(){return t.createDocumentsHandles()}))}}]),Preview}(elementorModules.ViewModule);e.default=a,window.elementorProPreview=new a},14710:(t,e,r)=>{r(30785);var n=r(47208).Object;t.exports=function create(t,e){return n.create(t,e)}},43153:(t,e,r)=>{r(40168);var n=r(47208).Object;t.exports=function defineProperty(t,e,r){return n.defineProperty(t,e,r)}},58535:(t,e,r)=>{r(4840),t.exports=r(47208).Object.getPrototypeOf},65135:(t,e,r)=>{r(13890),t.exports=r(47208).Object.setPrototypeOf},43094:(t,e,r)=>{r(11320),t.exports=r(47208).Reflect.construct},19103:(t,e,r)=>{r(54370),r(70285),r(87573),r(97224),t.exports=r(47208).Symbol},39871:(t,e,r)=>{r(99572),r(74114),t.exports=r(7273).f("iterator")},26610:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},29697:t=>{t.exports=function(){}},30498:(t,e,r)=>{var n=r(39632);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},69191:(t,e,r)=>{var n=r(1504),o=r(37154),i=r(46723);t.exports=function(t){return function(e,r,u){var c,s=n(e),a=o(s.length),f=i(u,a);if(t&&r!=r){for(;a>f;)if((c=s[f++])!=c)return!0}else for(;a>f;f++)if((t||f in s)&&s[f]===r)return t||f||0;return!t&&-1}}},45515:(t,e,r)=>{"use strict";var n=r(26610),o=r(39632),i=r(19897),u=[].slice,c={},construct=function(t,e,r){if(!(e in c)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";c[e]=Function("F,a","return new F("+n.join(",")+")")}return c[e](t,r)};t.exports=Function.bind||function bind(t){var e=n(this),r=u.call(arguments,1),bound=function(){var n=r.concat(u.call(arguments));return this instanceof bound?construct(e,n.length,n):i(e,n,t)};return o(e.prototype)&&(bound.prototype=e.prototype),bound}},41352:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},47208:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},61725:(t,e,r)=>{var n=r(26610);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},18239:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},75179:(t,e,r)=>{t.exports=!r(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(t,e,r)=>{var n=r(39632),o=r(43280).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},31986:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(t,e,r)=>{var n=r(86425),o=r(97739),i=r(67410);t.exports=function(t){var e=n(t),r=o.f;if(r)for(var u,c=r(t),s=i.f,a=0;c.length>a;)s.call(t,u=c[a++])&&e.push(u);return e}},98310:(t,e,r)=>{var n=r(43280),o=r(47208),i=r(61725),u=r(62292),c=r(20657),$export=function(t,e,r){var s,a,f,p=t&$export.F,l=t&$export.G,v=t&$export.S,y=t&$export.P,h=t&$export.B,d=t&$export.W,x=l?o:o[e]||(o[e]={}),m=x.prototype,_=l?n:v?n[e]:(n[e]||{}).prototype;for(s in l&&(r=e),r)(a=!p&&_&&void 0!==_[s])&&c(x,s)||(f=a?_[s]:r[s],x[s]=l&&"function"!=typeof _[s]?r[s]:h&&a?i(f,n):d&&_[s]==f?function(t){var F=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return F.prototype=t.prototype,F}(f):y&&"function"==typeof f?i(Function.call,f):f,y&&((x.virtual||(x.virtual={}))[s]=f,t&$export.R&&m&&!m[s]&&u(m,s,f)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},90472:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},43280:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},20657:t=>{var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},62292:(t,e,r)=>{var n=r(60510),o=r(48439);t.exports=r(75179)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},92477:(t,e,r)=>{var n=r(43280).document;t.exports=n&&n.documentElement},64457:(t,e,r)=>{t.exports=!r(75179)&&!r(90472)((function(){return 7!=Object.defineProperty(r(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:t=>{t.exports=function(t,e,r){var n=void 0===r;switch(e.length){case 0:return n?t():t.call(r);case 1:return n?t(e[0]):t.call(r,e[0]);case 2:return n?t(e[0],e[1]):t.call(r,e[0],e[1]);case 3:return n?t(e[0],e[1],e[2]):t.call(r,e[0],e[1],e[2]);case 4:return n?t(e[0],e[1],e[2],e[3]):t.call(r,e[0],e[1],e[2],e[3])}return t.apply(r,e)}},13115:(t,e,r)=>{var n=r(41352);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},7359:(t,e,r)=>{var n=r(41352);t.exports=Array.isArray||function isArray(t){return"Array"==n(t)}},39632:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},19802:(t,e,r)=>{"use strict";var n=r(82488),o=r(48439),i=r(2413),u={};r(62292)(u,r(24300)("iterator"),(function(){return this})),t.exports=function(t,e,r){t.prototype=n(u,{next:o(1,r)}),i(t,e+" Iterator")}},6125:(t,e,r)=>{"use strict";var n=r(36794),o=r(98310),i=r(19312),u=r(62292),c=r(79105),s=r(19802),a=r(2413),f=r(999),p=r(24300)("iterator"),l=!([].keys&&"next"in[].keys()),v="keys",y="values",returnThis=function(){return this};t.exports=function(t,e,r,h,d,x,m){s(r,e,h);var _,g,b,getMethod=function(t){if(!l&&t in S)return S[t];switch(t){case v:return function keys(){return new r(this,t)};case y:return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}},w=e+" Iterator",O=d==y,P=!1,S=t.prototype,j=S[p]||S["@@iterator"]||d&&S[d],M=j||getMethod(d),E=d?O?getMethod("entries"):M:void 0,T="Array"==e&&S.entries||j;if(T&&(b=f(T.call(new t)))!==Object.prototype&&b.next&&(a(b,w,!0),n||"function"==typeof b[p]||u(b,p,returnThis)),O&&j&&j.name!==y&&(P=!0,M=function values(){return j.call(this)}),n&&!m||!l&&!P&&S[p]||u(S,p,M),c[e]=M,c[w]=returnThis,d)if(_={values:O?M:getMethod(y),keys:x?M:getMethod(v),entries:E},m)for(g in _)g in S||i(S,g,_[g]);else o(o.P+o.F*(l||P),e,_);return _}},9329:t=>{t.exports=function(t,e){return{value:e,done:!!t}}},79105:t=>{t.exports={}},36794:t=>{t.exports=!0},6758:(t,e,r)=>{var n=r(54251)("meta"),o=r(39632),i=r(20657),u=r(60510).f,c=0,s=Object.isExtensible||function(){return!0},a=!r(90472)((function(){return s(Object.preventExtensions({}))})),setMeta=function(t){u(t,n,{value:{i:"O"+ ++c,w:{}}})},f=t.exports={KEY:n,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,n)){if(!s(t))return"F";if(!e)return"E";setMeta(t)}return t[n].i},getWeak:function(t,e){if(!i(t,n)){if(!s(t))return!0;if(!e)return!1;setMeta(t)}return t[n].w},onFreeze:function(t){return a&&f.NEED&&s(t)&&!i(t,n)&&setMeta(t),t}}},82488:(t,e,r)=>{var n=r(30498),o=r(36607),i=r(31986),u=r(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var t,e=r(48765)("iframe"),n=i.length;for(e.style.display="none",r(92477).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),createDict=t.F;n--;)delete createDict.prototype[i[n]];return createDict()};t.exports=Object.create||function create(t,e){var r;return null!==t?(Empty.prototype=n(t),r=new Empty,Empty.prototype=null,r[u]=t):r=createDict(),void 0===e?r:o(r,e)}},60510:(t,e,r)=>{var n=r(30498),o=r(64457),i=r(12737),u=Object.defineProperty;e.f=r(75179)?Object.defineProperty:function defineProperty(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return u(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},36607:(t,e,r)=>{var n=r(60510),o=r(30498),i=r(86425);t.exports=r(75179)?Object.defineProperties:function defineProperties(t,e){o(t);for(var r,u=i(e),c=u.length,s=0;c>s;)n.f(t,r=u[s++],e[r]);return t}},83264:(t,e,r)=>{var n=r(67410),o=r(48439),i=r(1504),u=r(12737),c=r(20657),s=r(64457),a=Object.getOwnPropertyDescriptor;e.f=r(75179)?a:function getOwnPropertyDescriptor(t,e){if(t=i(t),e=u(e,!0),s)try{return a(t,e)}catch(t){}if(c(t,e))return o(!n.f.call(t,e),t[e])}},26084:(t,e,r)=>{var n=r(1504),o=r(8772).f,i={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return u&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return u.slice()}}(t):o(n(t))}},8772:(t,e,r)=>{var n=r(65326),o=r(31986).concat("length","prototype");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,o)}},97739:(t,e)=>{e.f=Object.getOwnPropertySymbols},999:(t,e,r)=>{var n=r(20657),o=r(60061),i=r(18478)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),n(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},65326:(t,e,r)=>{var n=r(20657),o=r(1504),i=r(69191)(!1),u=r(18478)("IE_PROTO");t.exports=function(t,e){var r,c=o(t),s=0,a=[];for(r in c)r!=u&&n(c,r)&&a.push(r);for(;e.length>s;)n(c,r=e[s++])&&(~i(a,r)||a.push(r));return a}},86425:(t,e,r)=>{var n=r(65326),o=r(31986);t.exports=Object.keys||function keys(t){return n(t,o)}},67410:(t,e)=>{e.f={}.propertyIsEnumerable},57972:(t,e,r)=>{var n=r(98310),o=r(47208),i=r(90472);t.exports=function(t,e){var r=(o.Object||{})[t]||Object[t],u={};u[t]=e(r),n(n.S+n.F*i((function(){r(1)})),"Object",u)}},48439:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},19312:(t,e,r)=>{t.exports=r(62292)},25574:(t,e,r)=>{var n=r(39632),o=r(30498),check=function(t,e){if(o(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{(n=r(61725)(Function.call,r(83264).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function setPrototypeOf(t,r){return check(t,r),e?t.__proto__=r:n(t,r),t}}({},!1):void 0),check}},2413:(t,e,r)=>{var n=r(60510).f,o=r(20657),i=r(24300)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},18478:(t,e,r)=>{var n=r(29990)("keys"),o=r(54251);t.exports=function(t){return n[t]||(n[t]=o(t))}},29990:(t,e,r)=>{var n=r(47208),o=r(43280),i="__core-js_shared__",u=o[i]||(o[i]={});(t.exports=function(t,e){return u[t]||(u[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},78502:(t,e,r)=>{var n=r(58290),o=r(18239);t.exports=function(t){return function(e,r){var i,u,c=String(o(e)),s=n(r),a=c.length;return s<0||s>=a?t?"":void 0:(i=c.charCodeAt(s))<55296||i>56319||s+1===a||(u=c.charCodeAt(s+1))<56320||u>57343?t?c.charAt(s):i:t?c.slice(s,s+2):u-56320+(i-55296<<10)+65536}}},46723:(t,e,r)=>{var n=r(58290),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=n(t))<0?o(t+e,0):i(t,e)}},58290:t=>{var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},1504:(t,e,r)=>{var n=r(13115),o=r(18239);t.exports=function(t){return n(o(t))}},37154:(t,e,r)=>{var n=r(58290),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},60061:(t,e,r)=>{var n=r(18239);t.exports=function(t){return Object(n(t))}},12737:(t,e,r)=>{var n=r(39632);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},54251:t=>{var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},31164:(t,e,r)=>{var n=r(43280),o=r(47208),i=r(36794),u=r(7273),c=r(60510).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||c(e,t,{value:u.f(t)})}},7273:(t,e,r)=>{e.f=r(24300)},24300:(t,e,r)=>{var n=r(29990)("wks"),o=r(54251),i=r(43280).Symbol,u="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=n},84411:(t,e,r)=>{"use strict";var n=r(29697),o=r(9329),i=r(79105),u=r(1504);t.exports=r(6125)(Array,"Array",(function(t,e){this._t=u(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?r:"values"==e?t[r]:[r,t[r]])}),"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},30785:(t,e,r)=>{var n=r(98310);n(n.S,"Object",{create:r(82488)})},40168:(t,e,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperty:r(60510).f})},4840:(t,e,r)=>{var n=r(60061),o=r(999);r(57972)("getPrototypeOf",(function(){return function getPrototypeOf(t){return o(n(t))}}))},13890:(t,e,r)=>{var n=r(98310);n(n.S,"Object",{setPrototypeOf:r(25574).set})},70285:()=>{},11320:(t,e,r)=>{var n=r(98310),o=r(82488),i=r(26610),u=r(30498),c=r(39632),s=r(90472),a=r(45515),f=(r(43280).Reflect||{}).construct,p=s((function(){function F(){}return!(f((function(){}),[],F)instanceof F)})),l=!s((function(){f((function(){}))}));n(n.S+n.F*(p||l),"Reflect",{construct:function construct(t,e){i(t),u(e);var r=arguments.length<3?t:i(arguments[2]);if(l&&!p)return f(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(a.apply(t,n))}var s=r.prototype,v=o(c(s)?s:Object.prototype),y=Function.apply.call(t,v,e);return c(y)?y:v}})},99572:(t,e,r)=>{"use strict";var n=r(78502)(!0);r(6125)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},54370:(t,e,r)=>{"use strict";var n=r(43280),o=r(20657),i=r(75179),u=r(98310),c=r(19312),s=r(6758).KEY,a=r(90472),f=r(29990),p=r(2413),l=r(54251),v=r(24300),y=r(7273),h=r(31164),d=r(42266),x=r(7359),m=r(30498),_=r(39632),g=r(60061),b=r(1504),w=r(12737),O=r(48439),P=r(82488),S=r(26084),j=r(83264),M=r(97739),E=r(60510),T=r(86425),k=j.f,C=E.f,L=S.f,A=n.Symbol,N=n.JSON,I=N&&N.stringify,R=v("_hidden"),D=v("toPrimitive"),G={}.propertyIsEnumerable,H=f("symbol-registry"),B=f("symbols"),W=f("op-symbols"),V=Object.prototype,z="function"==typeof A&&!!M.f,U=n.QObject,K=!U||!U.prototype||!U.prototype.findChild,Q=i&&a((function(){return 7!=P(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a}))?function(t,e,r){var n=k(V,e);n&&delete V[e],C(t,e,r),n&&t!==V&&C(V,e,n)}:C,wrap=function(t){var e=B[t]=P(A.prototype);return e._k=t,e},q=z&&"symbol"==typeof A.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof A},J=function defineProperty(t,e,r){return t===V&&J(W,e,r),m(t),e=w(e,!0),m(r),o(B,e)?(r.enumerable?(o(t,R)&&t[R][e]&&(t[R][e]=!1),r=P(r,{enumerable:O(0,!1)})):(o(t,R)||C(t,R,O(1,{})),t[R][e]=!0),Q(t,e,r)):C(t,e,r)},Y=function defineProperties(t,e){m(t);for(var r,n=d(e=b(e)),o=0,i=n.length;i>o;)J(t,r=n[o++],e[r]);return t},$=function propertyIsEnumerable(t){var e=G.call(this,t=w(t,!0));return!(this===V&&o(B,t)&&!o(W,t))&&(!(e||!o(this,t)||!o(B,t)||o(this,R)&&this[R][t])||e)},X=function getOwnPropertyDescriptor(t,e){if(t=b(t),e=w(e,!0),t!==V||!o(B,e)||o(W,e)){var r=k(t,e);return!r||!o(B,e)||o(t,R)&&t[R][e]||(r.enumerable=!0),r}},Z=function getOwnPropertyNames(t){for(var e,r=L(b(t)),n=[],i=0;r.length>i;)o(B,e=r[i++])||e==R||e==s||n.push(e);return n},tt=function getOwnPropertySymbols(t){for(var e,r=t===V,n=L(r?W:b(t)),i=[],u=0;n.length>u;)!o(B,e=n[u++])||r&&!o(V,e)||i.push(B[e]);return i};z||(c((A=function Symbol(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var t=l(arguments.length>0?arguments[0]:void 0),$set=function(e){this===V&&$set.call(W,e),o(this,R)&&o(this[R],t)&&(this[R][t]=!1),Q(this,t,O(1,e))};return i&&K&&Q(V,t,{configurable:!0,set:$set}),wrap(t)}).prototype,"toString",(function toString(){return this._k})),j.f=X,E.f=J,r(8772).f=S.f=Z,r(67410).f=$,M.f=tt,i&&!r(36794)&&c(V,"propertyIsEnumerable",$,!0),y.f=function(t){return wrap(v(t))}),u(u.G+u.W+u.F*!z,{Symbol:A});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;et.length>rt;)v(et[rt++]);for(var nt=T(v.store),ot=0;nt.length>ot;)h(nt[ot++]);u(u.S+u.F*!z,"Symbol",{for:function(t){return o(H,t+="")?H[t]:H[t]=A(t)},keyFor:function keyFor(t){if(!q(t))throw TypeError(t+" is not a symbol!");for(var e in H)if(H[e]===t)return e},useSetter:function(){K=!0},useSimple:function(){K=!1}}),u(u.S+u.F*!z,"Object",{create:function create(t,e){return void 0===e?P(t):Y(P(t),e)},defineProperty:J,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:tt});var it=a((function(){M.f(1)}));u(u.S+u.F*it,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(t){return M.f(g(t))}}),N&&u(u.S+u.F*(!z||a((function(){var t=A();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))}))),"JSON",{stringify:function stringify(t){for(var e,r,n=[t],o=1;arguments.length>o;)n.push(arguments[o++]);if(r=e=n[1],(_(e)||void 0!==t)&&!q(t))return x(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!q(e))return e}),n[1]=e,I.apply(N,n)}}),A.prototype[D]||r(62292)(A.prototype,D,A.prototype.valueOf),p(A,"Symbol"),p(Math,"Math",!0),p(n.JSON,"JSON",!0)},87573:(t,e,r)=>{r(31164)("asyncIterator")},97224:(t,e,r)=>{r(31164)("observable")},74114:(t,e,r)=>{r(84411);for(var n=r(43280),o=r(62292),i=r(79105),u=r(24300)("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<c.length;s++){var a=c[s],f=n[a],p=f&&f.prototype;p&&!p[u]&&o(p,u,a),i[a]=i.Array}},22761:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},35824:t=>{t.exports=function(t,e,r,n){if(!(t instanceof e)||void 0!==n&&n in t)throw TypeError(r+": incorrect invocation!");return t}},6365:(t,e,r)=>{var n=r(67334);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},20106:(t,e,r)=>{var n=r(26688),o=r(62190)("toStringTag"),i="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:i?n(e):"Object"==(u=n(e))&&"function"==typeof e.callee?"Arguments":u}},26688:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},60066:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},11528:(t,e,r)=>{var n=r(22761);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},36628:(t,e,r)=>{t.exports=!r(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(t,e,r)=>{var n=r(67334),o=r(38113).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},65772:(t,e,r)=>{var n=r(38113),o=r(60066),i=r(74216),u=r(17738),c=r(11528),$export=function(t,e,r){var s,a,f,p,l=t&$export.F,v=t&$export.G,y=t&$export.S,h=t&$export.P,d=t&$export.B,x=v?n:y?n[e]||(n[e]={}):(n[e]||{}).prototype,m=v?o:o[e]||(o[e]={}),_=m.prototype||(m.prototype={});for(s in v&&(r=e),r)f=((a=!l&&x&&void 0!==x[s])?x:r)[s],p=d&&a?c(f,n):h&&"function"==typeof f?c(Function.call,f):f,x&&u(x,s,f,t&$export.U),m[s]!=f&&i(m,s,p),h&&_[s]!=f&&(_[s]=f)};n.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},48625:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},91891:(t,e,r)=>{var n=r(11528),o=r(33221),i=r(28908),u=r(6365),c=r(26078),s=r(7107),a={},f={},p=t.exports=function(t,e,r,p,l){var v,y,h,d,x=l?function(){return t}:s(t),m=n(r,p,e?2:1),_=0;if("function"!=typeof x)throw TypeError(t+" is not iterable!");if(i(x)){for(v=c(t.length);v>_;_++)if((d=e?m(u(y=t[_])[0],y[1]):m(t[_]))===a||d===f)return d}else for(h=x.call(t);!(y=h.next()).done;)if((d=o(h,m,y.value,e))===a||d===f)return d};p.BREAK=a,p.RETURN=f},20646:(t,e,r)=>{t.exports=r(8655)("native-function-to-string",Function.toString)},38113:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},54040:t=>{var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},74216:(t,e,r)=>{var n=r(98558),o=r(36061);t.exports=r(36628)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},8954:(t,e,r)=>{var n=r(38113).document;t.exports=n&&n.documentElement},5100:(t,e,r)=>{t.exports=!r(36628)&&!r(48625)((function(){return 7!=Object.defineProperty(r(5050)("div"),"a",{get:function(){return 7}}).a}))},97757:t=>{t.exports=function(t,e,r){var n=void 0===r;switch(e.length){case 0:return n?t():t.call(r);case 1:return n?t(e[0]):t.call(r,e[0]);case 2:return n?t(e[0],e[1]):t.call(r,e[0],e[1]);case 3:return n?t(e[0],e[1],e[2]):t.call(r,e[0],e[1],e[2]);case 4:return n?t(e[0],e[1],e[2],e[3]):t.call(r,e[0],e[1],e[2],e[3])}return t.apply(r,e)}},28908:(t,e,r)=>{var n=r(23988),o=r(62190)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||i[o]===t)}},67334:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},33221:(t,e,r)=>{var n=r(6365);t.exports=function(t,e,r,o){try{return o?e(n(r)[0],r[1]):e(r)}catch(e){var i=t.return;throw void 0!==i&&n(i.call(t)),e}}},73143:(t,e,r)=>{var n=r(62190)("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var r=!1;try{var i=[7],u=i[n]();u.next=function(){return{done:r=!0}},i[n]=function(){return u},t(i)}catch(t){}return r}},23988:t=>{t.exports={}},81422:t=>{t.exports=!1},63492:(t,e,r)=>{var n=r(38113),o=r(59124).set,i=n.MutationObserver||n.WebKitMutationObserver,u=n.process,c=n.Promise,s="process"==r(26688)(u);t.exports=function(){var t,e,r,flush=function(){var n,o;for(s&&(n=u.domain)&&n.exit();t;){o=t.fn,t=t.next;try{o()}catch(n){throw t?r():e=void 0,n}}e=void 0,n&&n.enter()};if(s)r=function(){u.nextTick(flush)};else if(!i||n.navigator&&n.navigator.standalone)if(c&&c.resolve){var a=c.resolve(void 0);r=function(){a.then(flush)}}else r=function(){o.call(n,flush)};else{var f=!0,p=document.createTextNode("");new i(flush).observe(p,{characterData:!0}),r=function(){p.data=f=!f}}return function(n){var o={fn:n,next:void 0};e&&(e.next=o),t||(t=o,r()),e=o}}},58577:(t,e,r)=>{"use strict";var n=r(22761);function PromiseCapability(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n})),this.resolve=n(e),this.reject=n(r)}t.exports.f=function(t){return new PromiseCapability(t)}},98558:(t,e,r)=>{var n=r(6365),o=r(5100),i=r(31382),u=Object.defineProperty;e.f=r(36628)?Object.defineProperty:function defineProperty(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return u(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},99739:t=>{t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},2070:(t,e,r)=>{var n=r(6365),o=r(67334),i=r(58577);t.exports=function(t,e){if(n(t),o(e)&&e.constructor===t)return e;var r=i.f(t);return(0,r.resolve)(e),r.promise}},36061:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},72243:(t,e,r)=>{var n=r(17738);t.exports=function(t,e,r){for(var o in e)n(t,o,e[o],r);return t}},17738:(t,e,r)=>{var n=r(38113),o=r(74216),i=r(54040),u=r(25078)("src"),c=r(20646),s="toString",a=(""+c).split(s);r(60066).inspectSource=function(t){return c.call(t)},(t.exports=function(t,e,r,c){var s="function"==typeof r;s&&(i(r,"name")||o(r,"name",e)),t[e]!==r&&(s&&(i(r,u)||o(r,u,t[e]?""+t[e]:a.join(String(e)))),t===n?t[e]=r:c?t[e]?t[e]=r:o(t,e,r):(delete t[e],o(t,e,r)))})(Function.prototype,s,(function toString(){return"function"==typeof this&&this[u]||c.call(this)}))},49766:(t,e,r)=>{"use strict";var n=r(38113),o=r(98558),i=r(36628),u=r(62190)("species");t.exports=function(t){var e=n[t];i&&e&&!e[u]&&o.f(e,u,{configurable:!0,get:function(){return this}})}},55727:(t,e,r)=>{var n=r(98558).f,o=r(54040),i=r(62190)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},8655:(t,e,r)=>{var n=r(60066),o=r(38113),i="__core-js_shared__",u=o[i]||(o[i]={});(t.exports=function(t,e){return u[t]||(u[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},11987:(t,e,r)=>{var n=r(6365),o=r(22761),i=r(62190)("species");t.exports=function(t,e){var r,u=n(t).constructor;return void 0===u||null==(r=n(u)[i])?e:o(r)}},59124:(t,e,r)=>{var n,o,i,u=r(11528),c=r(97757),s=r(8954),a=r(5050),f=r(38113),p=f.process,l=f.setImmediate,v=f.clearImmediate,y=f.MessageChannel,h=f.Dispatch,d=0,x={},m="onreadystatechange",run=function(){var t=+this;if(x.hasOwnProperty(t)){var e=x[t];delete x[t],e()}},listener=function(t){run.call(t.data)};l&&v||(l=function setImmediate(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return x[++d]=function(){c("function"==typeof t?t:Function(t),e)},n(d),d},v=function clearImmediate(t){delete x[t]},"process"==r(26688)(p)?n=function(t){p.nextTick(u(run,t,1))}:h&&h.now?n=function(t){h.now(u(run,t,1))}:y?(i=(o=new y).port2,o.port1.onmessage=listener,n=u(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(n=function(t){f.postMessage(t+"","*")},f.addEventListener("message",listener,!1)):n=m in a("script")?function(t){s.appendChild(a("script")).onreadystatechange=function(){s.removeChild(this),run.call(t)}}:function(t){setTimeout(u(run,t,1),0)}),t.exports={set:l,clear:v}},3338:t=>{var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},26078:(t,e,r)=>{var n=r(3338),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},31382:(t,e,r)=>{var n=r(67334);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},25078:t=>{var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},45822:(t,e,r)=>{var n=r(38113).navigator;t.exports=n&&n.userAgent||""},62190:(t,e,r)=>{var n=r(8655)("wks"),o=r(25078),i=r(38113).Symbol,u="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=n},7107:(t,e,r)=>{var n=r(20106),o=r(62190)("iterator"),i=r(23988);t.exports=r(60066).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[n(t)]}},76139:(t,e,r)=>{"use strict";var n=r(20106),o={};o[r(62190)("toStringTag")]="z",o+""!="[object z]"&&r(17738)(Object.prototype,"toString",(function toString(){return"[object "+n(this)+"]"}),!0)},2235:(t,e,r)=>{"use strict";var n,o,i,u,c=r(81422),s=r(38113),a=r(11528),f=r(20106),p=r(65772),l=r(67334),v=r(22761),y=r(35824),h=r(91891),d=r(11987),x=r(59124).set,m=r(63492)(),_=r(58577),g=r(99739),b=r(45822),w=r(2070),O="Promise",P=s.TypeError,S=s.process,j=S&&S.versions,M=j&&j.v8||"",E=s.Promise,T="process"==f(S),empty=function(){},k=o=_.f,C=!!function(){try{var t=E.resolve(1),e=(t.constructor={})[r(62190)("species")]=function(t){t(empty,empty)};return(T||"function"==typeof PromiseRejectionEvent)&&t.then(empty)instanceof e&&0!==M.indexOf("6.6")&&-1===b.indexOf("Chrome/66")}catch(t){}}(),isThenable=function(t){var e;return!(!l(t)||"function"!=typeof(e=t.then))&&e},notify=function(t,e){if(!t._n){t._n=!0;var r=t._c;m((function(){for(var n=t._v,o=1==t._s,i=0,run=function(e){var r,i,u,c=o?e.ok:e.fail,s=e.resolve,a=e.reject,f=e.domain;try{c?(o||(2==t._h&&onHandleUnhandled(t),t._h=1),!0===c?r=n:(f&&f.enter(),r=c(n),f&&(f.exit(),u=!0)),r===e.promise?a(P("Promise-chain cycle")):(i=isThenable(r))?i.call(r,s,a):s(r)):a(n)}catch(t){f&&!u&&f.exit(),a(t)}};r.length>i;)run(r[i++]);t._c=[],t._n=!1,e&&!t._h&&onUnhandled(t)}))}},onUnhandled=function(t){x.call(s,(function(){var e,r,n,o=t._v,i=isUnhandled(t);if(i&&(e=g((function(){T?S.emit("unhandledRejection",o,t):(r=s.onunhandledrejection)?r({promise:t,reason:o}):(n=s.console)&&n.error&&n.error("Unhandled promise rejection",o)})),t._h=T||isUnhandled(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},isUnhandled=function(t){return 1!==t._h&&0===(t._a||t._c).length},onHandleUnhandled=function(t){x.call(s,(function(){var e;T?S.emit("rejectionHandled",t):(e=s.onrejectionhandled)&&e({promise:t,reason:t._v})}))},$reject=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),notify(e,!0))},$resolve=function(t){var e,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw P("Promise can't be resolved itself");(e=isThenable(t))?m((function(){var n={_w:r,_d:!1};try{e.call(t,a($resolve,n,1),a($reject,n,1))}catch(t){$reject.call(n,t)}})):(r._v=t,r._s=1,notify(r,!1))}catch(t){$reject.call({_w:r,_d:!1},t)}}};C||(E=function Promise(t){y(this,E,O,"_h"),v(t),n.call(this);try{t(a($resolve,this,1),a($reject,this,1))}catch(t){$reject.call(this,t)}},(n=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(72243)(E.prototype,{then:function then(t,e){var r=k(d(this,E));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=T?S.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&notify(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new n;this.promise=t,this.resolve=a($resolve,t,1),this.reject=a($reject,t,1)},_.f=k=function(t){return t===E||t===u?new i(t):o(t)}),p(p.G+p.W+p.F*!C,{Promise:E}),r(55727)(E,O),r(49766)(O),u=r(60066).Promise,p(p.S+p.F*!C,O,{reject:function reject(t){var e=k(this);return(0,e.reject)(t),e.promise}}),p(p.S+p.F*(c||!C),O,{resolve:function resolve(t){return w(c&&this===u?E:this,t)}}),p(p.S+p.F*!(C&&r(73143)((function(t){E.all(t).catch(empty)}))),O,{all:function all(t){var e=this,r=k(e),n=r.resolve,o=r.reject,i=g((function(){var r=[],i=0,u=1;h(t,!1,(function(t){var c=i++,s=!1;r.push(void 0),u++,e.resolve(t).then((function(t){s||(s=!0,r[c]=t,--u||n(r))}),o)})),--u||n(r)}));return i.e&&o(i.v),r.promise},race:function race(t){var e=this,r=k(e),n=r.reject,o=g((function(){h(t,!1,(function(t){e.resolve(t).then(r.resolve,n)}))}));return o.e&&n(o.v),r.promise}})},6632:(t,e,r)=>{"use strict";var n=r(65772),o=r(60066),i=r(38113),u=r(11987),c=r(2070);n(n.P+n.R,"Promise",{finally:function(t){var e=u(this,o.Promise||i.Promise),r="function"==typeof t;return this.then(r?function(r){return c(e,t()).then((function(){return r}))}:t,r?function(r){return c(e,t()).then((function(){throw r}))}:t)}})}},e={};(function __webpack_require__(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,__webpack_require__),o.exports})(49021)})();PK!�W(����,assets/js/preloaded-elements-handlers.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[995,26,534,369,804,888,680,121,288,42,50,985,287,824,58,114,443,838,685,858,102,124,859,979],{6070:(e,t,s)=>{"use strict";var n=s(7914),i=n(s(9459)),o=n(s(9378)),r=n(s(7950)),a=n(s(4337)),l=n(s(3786)),d=n(s(1853)),c=n(s(9698)),h=n(s(9122)),m=n(s(651)),u=n(s(4484)),g=n(s(7990)),p=n(s(5056)),f=n(s(2189)),v=n(s(4429)),_=n(s(9940)),S=n(s(9874)),y=n(s(4269));const extendDefaultHandlers=e=>({...e,...{animatedText:i.default,carousel:o.default,countdown:r.default,form:a.default,gallery:l.default,hotspot:d.default,lottie:c.default,nav_menu:h.default,popup:m.default,posts:u.default,share_buttons:g.default,slides:p.default,social:f.default,themeBuilder:_.default,themeElements:S.default,woocommerce:y.default,tableOfContents:v.default}});elementorProFrontend.on("elementor-pro/modules/init:before",(()=>{elementorFrontend.hooks.addFilter("elementor-pro/frontend/handlers",extendDefaultHandlers)}))},2993:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.close=void 0;const i=new(n(s(8544)).default)("eicon"),o={get element(){return i.createSvgElement("close",{path:"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z",width:1e3,height:1e3})}};t.close=o},8544:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(5526));class IconsManager{constructor(e){if(this.prefix=`${e}-`,!IconsManager.symbolsContainer){const e="e-font-icon-svg-symbols";IconsManager.symbolsContainer=document.getElementById(e),IconsManager.symbolsContainer||(IconsManager.symbolsContainer=document.createElementNS("http://www.w3.org/2000/svg","svg"),IconsManager.symbolsContainer.setAttributeNS(null,"style","display: none;"),IconsManager.symbolsContainer.setAttributeNS(null,"class",e),document.body.appendChild(IconsManager.symbolsContainer))}}createSvgElement(e,{path:t,width:s,height:n}){const i=this.prefix+e,o="#"+this.prefix+e;if(!IconsManager.iconsUsageList.includes(i)){if(!IconsManager.symbolsContainer.querySelector(o)){const e=document.createElementNS("http://www.w3.org/2000/svg","symbol");e.id=i,e.innerHTML='<path d="'+t+'"></path>',e.setAttributeNS(null,"viewBox","0 0 "+s+" "+n),IconsManager.symbolsContainer.appendChild(e)}IconsManager.iconsUsageList.push(i)}const r=document.createElementNS("http://www.w3.org/2000/svg","svg");return r.innerHTML='<use xlink:href="'+o+'" />',r.setAttributeNS(null,"class","e-font-icon-svg e-"+i),r}}t.default=IconsManager,(0,i.default)(IconsManager,"symbolsContainer",void 0),(0,i.default)(IconsManager,"iconsUsageList",[])},9237:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,window.elementorCommon&&window.elementorCommon.helpers.softDeprecated('Scroll util from "/dev/js/frontend/utils/scroll"',"3.1.0","elementorModules.utils.Scroll");var s=elementorModules.utils.Scroll;t.default=s},9459:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(7750));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("animated-headline",i.default)}}t.default=_default},7750:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9237)),o=elementorModules.frontend.handlers.Base.extend({svgPaths:{circle:["M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7"],underline_zigzag:["M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9"],x:["M497.4,23.9C301.6,40,155.9,80.6,4,144.4","M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7"],strikethrough:["M3,75h493.5"],curly:["M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6"],diagonal:["M13.5,15.5c131,13.7,289.3,55.5,475,125.5"],double:["M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2","M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8"],double_underline:["M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6","M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4"],underline:["M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7"]},getDefaultSettings(){const e=this.getElementSettings("rotate_iteration_delay"),t={animationDelay:e||2500,lettersDelay:.02*e||50,typeLettersDelay:.06*e||150,selectionDuration:.2*e||500,revealDuration:.24*e||600,revealAnimationDelay:.6*e||1500,highlightAnimationDuration:this.getElementSettings("highlight_animation_duration")||1200,highlightAnimationDelay:this.getElementSettings("highlight_iteration_delay")||8e3};return t.typeAnimationDelay=t.selectionDuration+800,t.selectors={headline:".elementor-headline",dynamicWrapper:".elementor-headline-dynamic-wrapper",dynamicText:".elementor-headline-dynamic-text"},t.classes={dynamicText:"elementor-headline-dynamic-text",dynamicLetter:"elementor-headline-dynamic-letter",textActive:"elementor-headline-text-active",textInactive:"elementor-headline-text-inactive",letters:"elementor-headline-letters",animationIn:"elementor-headline-animation-in",typeSelected:"elementor-headline-typing-selected",activateHighlight:"e-animated",hideHighlight:"e-hide-highlight"},t},getDefaultElements(){var e=this.getSettings("selectors");return{$headline:this.$element.find(e.headline),$dynamicWrapper:this.$element.find(e.dynamicWrapper),$dynamicText:this.$element.find(e.dynamicText)}},getNextWord:e=>e.is(":last-child")?e.parent().children().eq(0):e.next(),switchWord(e,t){e.removeClass("elementor-headline-text-active").addClass("elementor-headline-text-inactive"),t.removeClass("elementor-headline-text-inactive").addClass("elementor-headline-text-active"),this.setDynamicWrapperWidth(t)},singleLetters(){var e=this.getSettings("classes");this.elements.$dynamicText.each((function(){var t=jQuery(this),s=t.text().split(""),n=t.hasClass(e.textActive);t.empty(),s.forEach((function(s){var i=jQuery("<span>",{class:e.dynamicLetter}).text(s);n&&i.addClass(e.animationIn),t.append(i)})),t.css("opacity",1)}))},showLetter(e,t,s,n){var i=this,o=this.getSettings("classes");e.addClass(o.animationIn),e.is(":last-child")?s||setTimeout((function(){i.hideWord(t)}),i.getSettings("animationDelay")):setTimeout((function(){i.showLetter(e.next(),t,s,n)}),n)},hideLetter(e,t,s,n){var i=this,o=this.getSettings();e.removeClass(o.classes.animationIn),e.is(":last-child")?s&&setTimeout((function(){i.hideWord(i.getNextWord(t))}),i.getSettings("animationDelay")):setTimeout((function(){i.hideLetter(e.next(),t,s,n)}),n)},showWord(e,t){var s=this,n=s.getSettings(),i=s.getElementSettings("animation_type");"typing"===i?(s.showLetter(e.find("."+n.classes.dynamicLetter).eq(0),e,!1,t),e.addClass(n.classes.textActive).removeClass(n.classes.textInactive)):"clip"===i&&s.elements.$dynamicWrapper.animate({width:e.width()+10},n.revealDuration,(function(){setTimeout((function(){s.hideWord(e)}),n.revealAnimationDelay)}))},hideWord(e){var t=this,s=t.getSettings(),n=s.classes,i="."+n.dynamicLetter,o=t.getElementSettings("animation_type"),r=t.getNextWord(e);if(this.isLoopMode||!e.is(":last-child"))if("typing"===o)t.elements.$dynamicWrapper.addClass(n.typeSelected),setTimeout((function(){t.elements.$dynamicWrapper.removeClass(n.typeSelected),e.addClass(s.classes.textInactive).removeClass(n.textActive).children(i).removeClass(n.animationIn)}),s.selectionDuration),setTimeout((function(){t.showWord(r,s.typeLettersDelay)}),s.typeAnimationDelay);else if(t.elements.$headline.hasClass(n.letters)){var a=e.children(i).length>=r.children(i).length;t.hideLetter(e.find(i).eq(0),e,a,s.lettersDelay),t.showLetter(r.find(i).eq(0),r,a,s.lettersDelay),t.setDynamicWrapperWidth(r)}else"clip"===o?t.elements.$dynamicWrapper.animate({width:"2px"},s.revealDuration,(function(){t.switchWord(e,r),t.showWord(r)})):(t.switchWord(e,r),setTimeout((function(){t.hideWord(r)}),s.animationDelay))},setDynamicWrapperWidth(e){const t=this.getElementSettings("animation_type");"clip"!==t&&"typing"!==t&&this.elements.$dynamicWrapper.css("width",e.width())},animateHeadline(){var e=this,t=e.getElementSettings("animation_type"),s=e.elements.$dynamicWrapper;"clip"===t?s.width(s.width()+10):"typing"!==t&&e.setDynamicWrapperWidth(e.elements.$dynamicText),setTimeout((function(){e.hideWord(e.elements.$dynamicText.eq(0))}),e.getSettings("animationDelay"))},getSvgPaths(e){var t=this.svgPaths[e],s=jQuery();return t.forEach((function(e){s=s.add(jQuery("<path>",{d:e}))})),s},addHighlight(){const e=this.getElementSettings(),t=jQuery("<svg>",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 150",preserveAspectRatio:"none"}).html(this.getSvgPaths(e.marker));this.elements.$dynamicWrapper.append(t[0].outerHTML)},rotateHeadline(){var e=this.getSettings();this.elements.$headline.hasClass(e.classes.letters)&&this.singleLetters(),this.animateHeadline()},initHeadline(){const e=this.getElementSettings("headline_style");"rotate"===e?this.rotateHeadline():"highlight"===e&&(this.addHighlight(),this.activateHighlightAnimation()),this.deactivateScrollListener()},activateHighlightAnimation(){const e=this.getSettings(),t=e.classes,s=this.elements.$headline;s.removeClass(t.hideHighlight).addClass(t.activateHighlight),this.isLoopMode&&(setTimeout((()=>{s.removeClass(t.activateHighligh).addClass(t.hideHighlight)}),e.highlightAnimationDuration+.8*e.highlightAnimationDelay),setTimeout((()=>{this.activateHighlightAnimation(!1)}),e.highlightAnimationDuration+e.highlightAnimationDelay))},activateScrollListener(){this.intersectionObservers.startAnimation.observer=i.default.scrollObserver({offset:"0px 0px -100px",callback:e=>{e.isInViewport&&this.initHeadline()}}),this.intersectionObservers.startAnimation.element=this.elements.$headline[0],this.intersectionObservers.startAnimation.observer.observe(this.intersectionObservers.startAnimation.element)},deactivateScrollListener(){this.intersectionObservers.startAnimation.observer.unobserve(this.intersectionObservers.startAnimation.element)},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.intersectionObservers={startAnimation:{observer:null,element:null}},this.isLoopMode="yes"===this.getElementSettings("loop"),this.activateScrollListener()}});t.default=o},9378:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(7393)),o=n(s(1507));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("media-carousel",i.default),elementorFrontend.elementsHandler.attachHandler("testimonial-carousel",o.default),elementorFrontend.elementsHandler.attachHandler("reviews",o.default)}}t.default=_default},2539:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class CarouselBase extends elementorModules.frontend.handlers.SwiperBase{getDefaultSettings(){return{selectors:{swiperContainer:".elementor-main-swiper",swiperSlide:".swiper-slide"},slidesPerView:{widescreen:3,desktop:3,laptop:3,tablet_extra:3,tablet:2,mobile_extra:2,mobile:1}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.swiperContainer)};return t.$slides=t.$swiperContainer.find(e.swiperSlide),t}getEffect(){return this.getElementSettings("effect")}getDeviceSlidesPerView(e){const t="slides_per_view"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||this.getSettings("slidesPerView")[e])}getSlidesPerView(e){return"slide"===this.getEffect()?this.getDeviceSlidesPerView(e):1}getDeviceSlidesToScroll(e){const t="slides_to_scroll"+("desktop"===e?"":"_"+e);return Math.min(this.getSlidesCount(),+this.getElementSettings(t)||1)}getSlidesToScroll(e){return"slide"===this.getEffect()?this.getDeviceSlidesToScroll(e):1}getSpaceBetween(e){let t="space_between";return e&&"desktop"!==e&&(t+="_"+e),this.getElementSettings(t).size||0}getSwiperOptions(){const e=this.getElementSettings(),t={grabCursor:!0,initialSlide:this.getInitialSlide(),slidesPerView:this.getSlidesPerView("desktop"),slidesPerGroup:this.getSlidesToScroll("desktop"),spaceBetween:this.getSpaceBetween(),loop:"yes"===e.loop,speed:e.speed,effect:this.getEffect(),preventClicksPropagation:!1,slideToClickedSlide:!0,handleElementorBreakpoints:!0};if(e.show_arrows&&(t.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),e.pagination&&(t.pagination={el:".swiper-pagination",type:e.pagination,clickable:!0}),"cube"!==this.getEffect()){const e={},s=elementorFrontend.config.responsive.activeBreakpoints;Object.keys(s).forEach((t=>{e[s[t].value]={slidesPerView:this.getSlidesPerView(t),slidesPerGroup:this.getSlidesToScroll(t),spaceBetween:this.getSpaceBetween(t)}})),t.breakpoints=e}return!this.isEdit&&e.autoplay&&(t.autoplay={delay:e.autoplay_speed,disableOnInteraction:!!e.pause_on_interaction}),t}getDeviceBreakpointValue(e){if(!this.breakpointsDictionary){const e=elementorFrontend.config.responsive.activeBreakpoints;this.breakpointsDictionary={},Object.keys(e).forEach((t=>{this.breakpointsDictionary[t]=e[t].value}))}return this.breakpointsDictionary[e]}updateSpaceBetween(e){const t=e.match("space_between_(.*)"),s=t?t[1]:"desktop",n=this.getSpaceBetween(s);"desktop"!==s?this.swiper.params.breakpoints[this.getDeviceBreakpointValue(s)].spaceBetween=n:this.swiper.params.spaceBetween=n,this.swiper.params.spaceBetween=n,this.swiper.update()}async onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments);const e=this.getElementSettings();if(1>=this.getSlidesCount())return;const t=elementorFrontend.utils.swiper;this.swiper=await new t(this.elements.$swiperContainer,this.getSwiperOptions()),"yes"===e.pause_on_hover&&this.togglePauseOnHover(!0),this.elements.$swiperContainer.data("swiper",this.swiper)}getChangeableProperties(){return{autoplay:"autoplay",pause_on_hover:"pauseOnHover",pause_on_interaction:"disableOnInteraction",autoplay_speed:"delay",speed:"speed",width:"width"}}updateSwiperOption(e){if(0===e.indexOf("width"))return void this.swiper.update();const t=this.getElementSettings(),s=t[e];let n=this.getChangeableProperties()[e],i=s;switch(e){case"autoplay":i=!!s&&{delay:t.autoplay_speed,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"autoplay_speed":n="autoplay",i={delay:s,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"pause_on_hover":this.togglePauseOnHover("yes"===s);break;case"pause_on_interaction":i="yes"===s}"pause_on_hover"!==e&&(this.swiper.params[n]=i),this.swiper.update()}onElementChange(e){if(1>=this.getSlidesCount())return;if(0===e.indexOf("width"))return this.swiper.update(),void(this.thumbsSwiper&&this.thumbsSwiper.update());if(0===e.indexOf("space_between"))return void this.updateSpaceBetween(e);this.getChangeableProperties().hasOwnProperty(e)&&this.updateSwiperOption(e)}onEditSettingsChange(e){1>=this.getSlidesCount()||"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}}t.default=CarouselBase},7393:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2539));class MediaCarousel extends i.default{isSlideshow(){return"slideshow"===this.getElementSettings("skin")}getDefaultSettings(...e){const t=super.getDefaultSettings(...e);return this.isSlideshow()&&(t.selectors.thumbsSwiper=".elementor-thumbnails-swiper",t.slidesPerView={widescreen:5,desktop:5,laptop:5,tablet_extra:5,tablet:4,mobile_extra:4,mobile:3}),t}getSlidesPerViewSettingNames(){if(!this.slideshowElementSettings){this.slideshowElementSettings=["slides_per_view"];const e=elementorFrontend.config.responsive.activeBreakpoints;Object.keys(e).forEach((e=>{this.slideshowElementSettings.push("slides_per_view_"+e)}))}return this.slideshowElementSettings}getElementSettings(e){return-1!==this.getSlidesPerViewSettingNames().indexOf(e)&&this.isSlideshow()&&(e="slideshow_"+e),super.getElementSettings(e)}getDefaultElements(...e){const t=this.getSettings("selectors"),s=super.getDefaultElements(...e);return this.isSlideshow()&&(s.$thumbsSwiper=this.$element.find(t.thumbsSwiper)),s}getEffect(){return"coverflow"===this.getElementSettings("skin")?"coverflow":super.getEffect()}getSlidesPerView(e){return this.isSlideshow()?1:"coverflow"===this.getElementSettings("skin")?this.getDeviceSlidesPerView(e):super.getSlidesPerView(e)}getSwiperOptions(){const e=super.getSwiperOptions();return this.isSlideshow()&&(e.loopedSlides=this.getSlidesCount(),delete e.pagination,delete e.breakpoints),e}async onInit(){await super.onInit();const e=this.getSlidesCount();if(!this.isSlideshow()||1>=e)return;const t=this.getElementSettings(),s="yes"===t.loop,n={},i=elementorFrontend.config.responsive.activeBreakpoints,o=this.getDeviceSlidesPerView("desktop");Object.keys(i).forEach((e=>{n[i[e].value]={slidesPerView:this.getDeviceSlidesPerView(e),spaceBetween:this.getSpaceBetween(e)}}));const r={slidesPerView:o,initialSlide:this.getInitialSlide(),centeredSlides:t.centered_slides,slideToClickedSlide:!0,spaceBetween:this.getSpaceBetween(),loopedSlides:e,loop:s,breakpoints:n,handleElementorBreakpoints:!0},a=elementorFrontend.utils.swiper;this.swiper.controller.control=this.thumbsSwiper=await new a(this.elements.$thumbsSwiper,r),this.elements.$thumbsSwiper.data("swiper",this.thumbsSwiper),this.thumbsSwiper.controller.control=this.swiper}}t.default=MediaCarousel},1507:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2539));class TestimonialCarousel extends i.default{getDefaultSettings(){const e=super.getDefaultSettings();return e.slidesPerView={desktop:1},Object.keys(elementorFrontend.config.responsive.activeBreakpoints).forEach((t=>{e.slidesPerView[t]=1})),e.loop&&(e.loopedSlides=this.getSlidesCount()),e}getEffect(){return"slide"}}t.default=TestimonialCarousel},7950:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(7097));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("countdown",i.default)}}t.default=_default},7097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({cache:null,cacheElements(){const e=this.$element.find(".elementor-countdown-wrapper");this.cache={$countDown:e,timeInterval:null,elements:{$countdown:e.find(".elementor-countdown-wrapper"),$daysSpan:e.find(".elementor-countdown-days"),$hoursSpan:e.find(".elementor-countdown-hours"),$minutesSpan:e.find(".elementor-countdown-minutes"),$secondsSpan:e.find(".elementor-countdown-seconds"),$expireMessage:e.parent().find(".elementor-countdown-expire--message")},data:{id:this.$element.data("id"),endTime:new Date(1e3*e.data("date")),actions:e.data("expire-actions"),evergreenInterval:e.data("evergreen-interval")}}},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.cacheElements(),0<this.cache.data.evergreenInterval&&(this.cache.data.endTime=this.getEvergreenDate()),this.initializeClock()},updateClock(){const e=this,t=this.getTimeRemaining(this.cache.data.endTime);jQuery.each(t.parts,(function(t){const s=e.cache.elements["$"+t+"Span"];let n=this.toString();1===n.length&&(n=0+n),s.length&&s.text(n)})),t.total<=0&&(clearInterval(this.cache.timeInterval),this.runActions())},initializeClock(){const e=this;this.updateClock(),this.cache.timeInterval=setInterval((function(){e.updateClock()}),1e3)},runActions(){const e=this;e.$element.trigger("countdown_expire",e.$element),this.cache.data.actions&&this.cache.data.actions.forEach((function(t){switch(t.type){case"hide":e.cache.$countDown.hide();break;case"redirect":t.redirect_url&&(window.location.href=t.redirect_url);break;case"message":e.cache.elements.$expireMessage.show()}}))},getTimeRemaining(e){const t=e-new Date;let s=Math.floor(t/1e3%60),n=Math.floor(t/1e3/60%60),i=Math.floor(t/36e5%24),o=Math.floor(t/864e5);return(o<0||i<0||n<0)&&(s=n=i=o=0),{total:t,parts:{days:o,hours:i,minutes:n,seconds:s}}},getEvergreenDate(){const e=this,t=this.cache.data.id,s=this.cache.data.evergreenInterval,n=t+"-evergreen_due_date",i=t+"-evergreen_interval",o={dueDate:localStorage.getItem(n),interval:localStorage.getItem(i)},initEvergreen=function(){var t=new Date;return e.cache.data.endTime=t.setSeconds(t.getSeconds()+s),localStorage.setItem(n,e.cache.data.endTime),localStorage.setItem(i,s),e.cache.data.endTime};return null===o.dueDate&&null===o.interval||null!==o.dueDate&&s!==parseInt(o.interval,10)?initEvergreen():o.dueDate>0&&parseInt(o.interval,10)===s?o.dueDate:void 0}});t.default=s},4337:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9706)),o=n(s(7300)),r=n(s(611)),a=n(s(9228)),l=n(s(4610)),d=n(s(6374));class _default extends elementorModules.Module{constructor(){super();const e=[i.default,o.default,r.default];elementorFrontend.elementsHandler.attachHandler("form",[...e,a.default,l.default,d.default]),elementorFrontend.elementsHandler.attachHandler("subscribe",e)}}t.default=_default},8906:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class DataTimeFieldBase extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{fields:this.getFieldsSelector()},classes:{useNative:"elementor-use-native"}}}getDefaultElements(){const{selectors:e}=this.getDefaultSettings();return{$fields:this.$element.find(e.fields)}}addPicker(e){const{classes:t}=this.getDefaultSettings();jQuery(e).hasClass(t.useNative)||e.flatpickr(this.getPickerOptions(e))}onInit(...e){super.onInit(...e),this.elements.$fields.each(((e,t)=>this.addPicker(t)))}}t.default=DataTimeFieldBase},4610:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(8906));class DateField extends i.default{getFieldsSelector(){return".elementor-date-field"}getPickerOptions(e){const t=jQuery(e);return{minDate:t.attr("min")||null,maxDate:t.attr("max")||null,allowInput:!0}}}t.default=DateField},6374:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(8906));class TimeField extends i.default{getFieldsSelector(){return".elementor-time-field"}getPickerOptions(){return{noCalendar:!0,enableTime:!0,allowInput:!0}}}t.default=TimeField},611:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t},bindEvents(){this.elements.$form.on("form_destruct",this.handleSubmit)},handleSubmit(e,t){void 0!==t.data.redirect_url&&(location.href=t.data.redirect_url)}});t.default=s},7300:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form",submitButton:'[type="submit"]'},action:"elementor_pro_forms_send_form",ajaxUrl:elementorProFrontend.config.ajaxurl}),getDefaultElements(){const e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t.$submitButton=t.$form.find(e.submitButton),t},bindEvents(){this.elements.$form.on("submit",this.handleSubmit);const e=this.elements.$form.find("input[type=file]");e.length&&e.on("change",this.validateFileSize)},validateFileSize(e){const t=jQuery(e.currentTarget),s=t[0].files;if(!s.length)return;const n=1024*parseInt(t.attr("data-maxsize"))*1024,i=t.attr("data-maxsize-message");Array.prototype.slice.call(s).forEach((e=>{n<e.size&&(t.parent().addClass("elementor-error").append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">'+i+"</span>").find(":input").attr("aria-invalid","true"),this.elements.$form.trigger("error"))}))},beforeSend(){const e=this.elements.$form;e.animate({opacity:"0.45"},500).addClass("elementor-form-waiting"),e.find(".elementor-message").remove(),e.find(".elementor-error").removeClass("elementor-error"),e.find("div.elementor-field-group").removeClass("error").find("span.elementor-form-help-inline").remove().end().find(":input").attr("aria-invalid","false"),this.elements.$submitButton.attr("disabled","disabled").find("> span").prepend('<span class="elementor-button-text elementor-form-spinner"><i class="fa fa-spinner fa-spin"></i>&nbsp;</span>')},getFormData(){const e=new FormData(this.elements.$form[0]);return e.append("action",this.getSettings("action")),e.append("referrer",location.toString()),e},onSuccess(e){const t=this.elements.$form;this.elements.$submitButton.removeAttr("disabled").find(".elementor-form-spinner").remove(),t.animate({opacity:"1"},100).removeClass("elementor-form-waiting"),e.success?(t.trigger("submit_success",e.data),t.trigger("form_destruct",e.data),t.trigger("reset"),void 0!==e.data.message&&""!==e.data.message&&t.append('<div class="elementor-message elementor-message-success" role="alert">'+e.data.message+"</div>")):(e.data.errors&&(jQuery.each(e.data.errors,(function(e,s){t.find("#form-field-"+e).parent().addClass("elementor-error").append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">'+s+"</span>").find(":input").attr("aria-invalid","true")})),t.trigger("error")),t.append('<div class="elementor-message elementor-message-danger" role="alert">'+e.data.message+"</div>"))},onError(e,t){const s=this.elements.$form;s.append('<div class="elementor-message elementor-message-danger" role="alert">'+t+"</div>"),this.elements.$submitButton.html(this.elements.$submitButton.text()).removeAttr("disabled"),s.animate({opacity:"1"},100).removeClass("elementor-form-waiting"),s.trigger("error")},handleSubmit(e){const t=this,s=this.elements.$form;if(e.preventDefault(),s.hasClass("elementor-form-waiting"))return!1;this.beforeSend(),jQuery.ajax({url:t.getSettings("ajaxUrl"),type:"POST",dataType:"json",data:t.getFormData(),processData:!1,contentType:!1,success:t.onSuccess,error:t.onError})}});t.default=s},9706:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class FormSteps extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{form:".elementor-form",fieldsWrapper:".elementor-form-fields-wrapper",fieldGroup:".elementor-field-group",stepWrapper:".elementor-field-type-step",stepField:".e-field-step",submitWrapper:".elementor-field-type-submit",submitButton:'[type="submit"]',buttons:".e-form__buttons",buttonWrapper:".e-form__buttons__wrapper",button:".e-form__buttons__wrapper__button",indicator:".e-form__indicators__indicator",indicatorProgress:".e-form__indicators__indicator__progress",indicatorProgressMeter:".e-form__indicators__indicator__progress__meter",formHelpInline:".elementor-form-help-inline"},classes:{hidden:"elementor-hidden",column:"elementor-column",fieldGroup:"elementor-field-group",elementorButton:"elementor-button",step:"e-form__step",buttons:"e-form__buttons",buttonWrapper:"e-form__buttons__wrapper",button:"e-form__buttons__wrapper__button",indicators:"e-form__indicators",indicator:"e-form__indicators__indicator",indicatorIcon:"e-form__indicators__indicator__icon",indicatorNumber:"e-form__indicators__indicator__number",indicatorLabel:"e-form__indicators__indicator__label",indicatorProgress:"e-form__indicators__indicator__progress",indicatorProgressMeter:"e-form__indicators__indicator__progress__meter",indicatorSeparator:"e-form__indicators__indicator__separator",indicatorInactive:"e-form__indicators__indicator--state-inactive",indicatorActive:"e-form__indicators__indicator--state-active",indicatorCompleted:"e-form__indicators__indicator--state-completed",indicatorShapeCircle:"e-form__indicators__indicator--shape-circle",indicatorShapeSquare:"e-form__indicators__indicator--shape-square",indicatorShapeRounded:"e-form__indicators__indicator--shape-rounded",indicatorShapeNone:"e-form__indicators__indicator--shape-none"}}}getDefaultElements(){const{selectors:e}=this.getSettings(),t={$form:this.$element.find(e.form)};return t.$fieldsWrapper=t.$form.children(e.fieldsWrapper),t.$stepWrapper=t.$fieldsWrapper.children(e.stepWrapper),t.$stepField=t.$stepWrapper.children(e.stepField),t.$fieldGroup=t.$fieldsWrapper.children(e.fieldGroup),t.$submitWrapper=t.$fieldsWrapper.children(e.submitWrapper),t.$submitButton=t.$submitWrapper.children(e.submitButton),t}onInit(...e){super.onInit(...e),this.isStepsExist()&&(this.data={steps:[],indicatorsWithObjectTags:[]},this.state={currentStep:0,stepsType:"",stepsShape:""},this.buildSteps(),this.elements={...this.elements,...this.createStepsIndicators(),...this.createStepsButtons()},this.initProgressBar(),this.extractResponsiveSizeFromSubmitWrapper())}bindEvents(){this.isStepsExist()&&this.elements.$form.on({submit:()=>this.resetForm(),keydown:e=>{13!==e.keyCode||this.isLastStep()||"textarea"===e.target.localName||(e.preventDefault(),this.applyStep("next"))},error:()=>this.onFormError()})}isStepsExist(){return this.elements.$stepWrapper.length}initProgressBar(){"progress_bar"===this.getElementSettings().step_type&&this.setProgressBar()}buildSteps(){this.elements.$stepWrapper.each(((e,t)=>{const{selectors:s,classes:n}=this.getSettings(),i=jQuery(t);i.addClass(n.step).removeClass(n.fieldGroup,n.column),e&&i.addClass(n.hidden),this.setStepData(i.children(s.stepField)),i.append(i.nextUntil(this.elements.$stepWrapper).not(this.elements.$submitWrapper))}))}setStepData(e){const t={};["label","previousButton","nextButton","iconUrl","iconLibrary","icon"].forEach((s=>{const n=e.attr("data-"+s);n&&(t[s]=n)})),this.data.steps.push(t)}createStepsIndicators(){const e=this.getElementSettings(),t={};if("none"!==e.step_type){const{selectors:s,classes:n}=this.getSettings(),i=n.indicators+"--type-"+e.step_type,o=[n.indicators,i];t.$indicatorsWrapper=jQuery("<div>",{class:o.join(" ")}),t.$indicatorsWrapper.append(this.buildIndicators()),this.elements.$fieldsWrapper.before(t.$indicatorsWrapper),"progress_bar"===e.step_type?(t.$progressBar=t.$indicatorsWrapper.find(s.indicatorProgress),t.$progressBarMeter=t.$indicatorsWrapper.find(s.indicatorProgressMeter)):(t.$indicators=t.$indicatorsWrapper.find(s.indicator),t.$currentIndicator=t.$indicators.eq(this.state.currentStep))}return this.saveIndicatorsState(),t}buildIndicators(){return"progress_bar"===this.getElementSettings().step_type?this.buildProgressBar():this.buildIndicatorsFromStepsData()}buildProgressBar(){const{classes:e}=this.getSettings(),t=jQuery("<div>",{class:e.indicatorProgress}),s=jQuery("<div>",{class:e.indicatorProgressMeter});return t.append(s),t}getProgressBarValue(){const e=this.data.steps.length,t=this.state.currentStep,s=t?(t+1)/e*100:100/e;return Math.floor(s)+"%"}setProgressBar(){const e=this.getProgressBarValue();this.updateProgressMeterCSSVariable(e),this.elements.$progressBarMeter.text(e)}updateProgressMeterCSSVariable(e){this.$element[0].style.setProperty("--e-form-steps-indicator-progress-meter-width",e)}saveIndicatorsState(){const e=this.getElementSettings();this.state.stepsType=e.step_type,["none","text","progress_bar"].includes(e.step_type)||(this.state.stepsShape=e.step_icon_shape)}buildIndicatorsFromStepsData(){const e=[];return this.data.steps.forEach(((t,s)=>{s&&e.push(this.getStepSeparator()),e.push(this.getStepIndicatorElement(t,s))})),e}getStepIndicatorElement(e,t){const{classes:s}=this.getSettings(),n=this.getElementSettings(),i=this.getIndicatorStateClass(t),o=[s.indicator,i],r=jQuery("<div>",{class:o.join(" ")});return n.step_type.includes("icon")&&r.append(this.getStepIconElement(e)),n.step_type.includes("number")&&r.append(this.getStepNumberElement(t)),n.step_type.includes("text")&&r.append(this.getStepLabelElement(e.label)),r}getIndicatorStateClass(e){const{classes:t}=this.getSettings();return e<this.state.currentStep?t.indicatorCompleted:e>this.state.currentStep?t.indicatorInactive:t.indicatorActive}getIndicatorShapeClass(){const e=this.getElementSettings(),{classes:t}=this.getSettings();return t["indicatorShape"+this.firstLetterToUppercase(e.step_icon_shape)]}firstLetterToUppercase(e){return e.charAt(0).toUpperCase()+e.slice(1)}getStepNumberElement(e){const{classes:t}=this.getSettings(),s=[t.indicatorNumber,this.getIndicatorShapeClass()];return jQuery("<div>",{class:s.join(" "),text:e+1})}getStepIconElement(e){const{classes:t}=this.getSettings(),s=[t.indicatorIcon,this.getIndicatorShapeClass()],n=jQuery("<div>",{class:s.join(" ")});if(e.icon)n.html(e.icon);else{let t;e.iconLibrary?t=jQuery("<i>",{class:e.iconLibrary}):(t=jQuery(`<object type="image/svg+xml" data="${e.iconUrl}"></object>`),t.on("load",(e=>{e.target.contentDocument.querySelector("svg").style.fill=t.css("fill")})),this.data.indicatorsWithObjectTags.push(t)),n.append(t)}return n}getStepLabelElement(e){const{classes:t}=this.getSettings();return jQuery("<label>",{class:t.indicatorLabel,text:e})}getStepSeparator(){const{classes:e}=this.getSettings();return jQuery("<div>",{class:e.indicatorSeparator})}createStepsButtons(){const{selectors:e}=this.getSettings(),t={};return this.injectButtonsToSteps(t),t.$buttonsContainer=this.elements.$stepWrapper.find(e.buttons),t.$buttonsWrappers=t.$buttonsContainer.children(e.buttonWrapper),t}injectButtonsToSteps(){const e=this.elements.$stepWrapper.length;this.elements.$stepWrapper.each(((t,s)=>{const n=jQuery(s),i=this.getButtonsContainer();let o;t?(i.append(this.getStepButton("previous",t)),o=t===e-1?this.getSubmitButton():this.getStepButton("next",t)):o=this.getStepButton("next",t),i.append(o),n.append(i)}))}getButtonsContainer(){const{classes:e}=this.getSettings(),t=this.getElementSettings(),s=[e.buttons,e.column,"elementor-col-"+t.button_width];return jQuery("<div>",{class:s.join(" ")})}extractResponsiveSizeFromSubmitWrapper(){let e=[];this.elements.$submitWrapper.removeClass(((t,s)=>{var n;return e=null===(n=s.match(/elementor-(sm|md)-[0-9]+/g))||void 0===n?void 0:n.join(" "),e})),this.elements.$buttonsContainer.addClass(e)}getStepButton(e,t){const{classes:s}=this.getSettings(),n=this.getButton(e,t).on("click",(()=>this.applyStep(e))),i=[s.fieldGroup,s.buttonWrapper,"elementor-field-type-"+e];return jQuery("<div>",{class:i.join(" ")}).append(n)}getSubmitButton(){const{classes:e}=this.getSettings();return this.elements.$submitButton.addClass(e.button),this.elements.$submitWrapper.attr("class",((e,t)=>this.replaceClassNameColSize(t,""))).removeClass(e.column).removeClass(e.buttons).addClass(e.buttonWrapper)}replaceClassNameColSize(e,t){return e.replace(/elementor-col-([0-9]+)/g,t)}getButton(e,t){const{classes:s}=this.getSettings(),n=this.elements.$submitButton.attr("class").match(/elementor-size-([^\W\d]+)/g),i=[s.elementorButton,n,s.button,s.button+"-"+e];return jQuery("<button>",{type:"button",text:this.getButtonLabel(e,t),class:i.join(" ")})}getButtonLabel(e,t){const s=this.getElementSettings(),n=`step_${e}_label`;return this.data.steps[t][e+"Button"]||s[n]}applyStep(e){const t="next"===e?this.state.currentStep+1:this.state.currentStep-1;if("next"===e&&!this.isFieldsValid(this.elements.$stepWrapper))return!1;this.goToStep(t),this.state.currentStep=t,"progress_bar"===this.state.stepsType?this.setProgressBar():"none"!==this.state.stepsType&&this.updateIndicatorsState(e)}goToStep(e){const{classes:t}=this.getSettings();this.elements.$stepWrapper.eq(this.state.currentStep).addClass(t.hidden),this.elements.$stepWrapper.eq(e).removeClass(t.hidden).children(this.getSettings("selectors.fieldGroup")).first().find(":input").first().trigger("focus")}isFieldsValid(e){let t=!0;return e.eq(this.state.currentStep).find(".elementor-field-group :input").each(((e,s)=>{if(!s.checkValidity())return s.reportValidity(),t=!1})),t}isLastStep(){return this.state.currentStep===this.data.steps.length-1}resetForm(){this.state.currentStep=0,this.resetSteps(),"progress_bar"===this.state.stepsType?this.setProgressBar():"none"!==this.state.stepsType&&(this.elements.$currentIndicator=this.elements.$indicators.eq(this.state.currentStep),this.resetIndicators())}resetSteps(){const{classes:e}=this.getSettings();this.elements.$stepWrapper.addClass(e.hidden).eq(0).removeClass(e.hidden)}resetIndicators(){const{classes:e}=this.getSettings(),t=["inactive","active","completed"].map((t=>e.indicator+"--state-"+t));this.elements.$indicators.removeClass(t.join(" ")).not(this.elements.$indicators.eq(0)).addClass(e.indicatorInactive),this.elements.$indicators.eq(0).addClass(e.indicatorActive)}updateIndicatorsState(e){const{classes:t}=this.getSettings(),s={current:{remove:t.indicatorActive,add:"next"===e?t.indicatorCompleted:t.indicatorInactive},next:{remove:"next"===e?t.indicatorInactive:t.indicatorCompleted,add:t.indicatorActive}};this.elements.$currentIndicator.removeClass(s.current.remove).addClass(s.current.add),this.elements.$currentIndicator=this.elements.$indicators.eq(this.state.currentStep),this.elements.$currentIndicator.removeClass(s.next.remove).addClass(s.next.add),this.data.indicatorsWithObjectTags.forEach((e=>{e.contents().children("svg").css("fill",e.css("fill"))}))}updateValue(e){const t={step_type:()=>this.updateStepsType(),step_icon_shape:()=>this.updateStepsShape(),step_next_label:()=>this.updateStepButtonsLabel("next"),step_previous_label:()=>this.updateStepButtonsLabel("previous")};t[e]&&t[e]()}updateStepsType(){const e=this.getElementSettings();this.elements.$indicatorsWrapper&&this.elements.$indicatorsWrapper.remove(),"none"!==e.step_type&&this.rebuildIndicators(),this.state.stepsType=e.step_type}rebuildIndicators(){this.elements={...this.elements,...this.createStepsIndicators()},this.initProgressBar()}updateStepsShape(){const e=this.getElementSettings(),{selectors:t,classes:s}=this.getSettings(),n=s.indicator+"--shape-",i=n+this.state.stepsShape,o=n+e.step_icon_shape;let r="";e.step_type.includes("icon")?r="icon":e.step_type.includes("number")&&(r="number"),this.elements.$indicators.children(t.indicator+"__"+r).removeClass(i).addClass(o),this.state.stepsShape=e.step_icon_shape}updateStepButtonsLabel(e){const{selectors:t}=this.getSettings(),s={previous:t.button+"-previous",next:t.button+"-next"};this.elements.$stepWrapper.each(((t,n)=>{jQuery(n).find(s[e]).text(this.getButtonLabel(e,t))}))}onFormError(){const{selectors:e}=this.getSettings(),t=this.elements.$form.find(e.formHelpInline).closest(e.stepWrapper);t.length&&this.goToStep(t.index())}onElementChange(e){this.isStepsExist()&&this.updateValue(e)}}t.default=FormSteps},9228:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Recaptcha extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{recaptcha:".elementor-g-recaptcha:last",submit:'button[type="submit"]',recaptchaResponse:'[name="g-recaptcha-response"]'}}}getDefaultElements(){const{selectors:e}=this.getDefaultSettings(),t={$recaptcha:this.$element.find(e.recaptcha)};return t.$form=t.$recaptcha.parents("form"),t.$submit=t.$form.find(e.submit),t}bindEvents(){this.onRecaptchaApiReady()}isActive(e){const{selectors:t}=this.getDefaultSettings();return e.$element.find(t.recaptcha).length}addRecaptcha(){const e=this.elements.$recaptcha.data(),t="v3"!==e.type,s=[];s.forEach((e=>window.grecaptcha.reset(e)));const n=window.grecaptcha.render(this.elements.$recaptcha[0],e);this.elements.$form.on("reset error",(()=>{window.grecaptcha.reset(n)})),t?this.elements.$recaptcha.data("widgetId",n):(s.push(n),this.elements.$submit.on("click",(e=>this.onV3FormSubmit(e,n))))}onV3FormSubmit(e,t){e.preventDefault(),window.grecaptcha.ready((()=>{const e=this.elements.$form;grecaptcha.execute(t,{action:this.elements.$recaptcha.data("action")}).then((t=>{this.elements.$recaptchaResponse?this.elements.$recaptchaResponse.val(t):(this.elements.$recaptchaResponse=jQuery("<input>",{type:"hidden",value:t,name:"g-recaptcha-response"}),e.append(this.elements.$recaptchaResponse));(!e[0].reportValidity||"function"!=typeof e[0].reportValidity||e[0].reportValidity())&&e.trigger("submit")}))}))}onRecaptchaApiReady(){window.grecaptcha&&window.grecaptcha.render?this.addRecaptcha():setTimeout((()=>this.onRecaptchaApiReady()),350)}}t.default=Recaptcha},3786:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(5357));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("gallery",i.default)}}t.default=_default},5357:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class galleryHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".elementor-gallery__container",galleryTitles:".elementor-gallery-title",galleryImages:".e-gallery-image",galleryItemOverlay:".elementor-gallery-item__overlay",galleryItemContent:".elementor-gallery-item__content"},classes:{activeTitle:"elementor-item-active"}}}getDefaultElements(){const{selectors:e}=this.getSettings(),t={$container:this.$element.find(e.container),$titles:this.$element.find(e.galleryTitles)};return t.$items=t.$container.children(),t.$images=t.$items.children(e.galleryImages),t.$itemsOverlay=t.$items.children(e.galleryItemOverlay),t.$itemsContent=t.$items.children(e.galleryItemContent),t.$itemsContentElements=t.$itemsContent.children(),t}getGallerySettings(){const e=this.getElementSettings(),t=elementorFrontend.config.responsive.activeBreakpoints,s=Object.keys(t),n={},i=elementorFrontend.getDeviceSetting("desktop",e,"ideal_row_height");return s.forEach((s=>{if("widescreen"!==s){const i=elementorFrontend.getDeviceSetting(s,e,"ideal_row_height");n[t[s].value]={horizontalGap:elementorFrontend.getDeviceSetting(s,e,"gap").size,verticalGap:elementorFrontend.getDeviceSetting(s,e,"gap").size,columns:elementorFrontend.getDeviceSetting(s,e,"columns"),idealRowHeight:null==i?void 0:i.size}}})),{type:e.gallery_layout,idealRowHeight:null==i?void 0:i.size,container:this.elements.$container,columns:e.columns,aspectRatio:e.aspect_ratio,lastRow:"normal",horizontalGap:elementorFrontend.getDeviceSetting("desktop",e,"gap").size,verticalGap:elementorFrontend.getDeviceSetting("desktop",e,"gap").size,animationDuration:e.content_animation_duration,breakpoints:n,rtl:elementorFrontend.config.is_rtl,lazyLoad:"yes"===e.lazyload}}initGallery(){this.gallery=new EGallery(this.getGallerySettings()),this.toggleAllAnimationsClasses()}removeAnimationClasses(e){e.removeClass(((e,t)=>(t.match(/elementor-animated-item-\S+/g)||[]).join(" ")))}toggleOverlayHoverAnimation(){this.removeAnimationClasses(this.elements.$itemsOverlay);const e=this.getElementSettings("background_overlay_hover_animation");e&&this.elements.$itemsOverlay.addClass("elementor-animated-item--"+e)}toggleOverlayContentAnimation(){this.removeAnimationClasses(this.elements.$itemsContentElements);const e=this.getElementSettings("content_hover_animation");e&&this.elements.$itemsContentElements.addClass("elementor-animated-item--"+e)}toggleOverlayContentSequencedAnimation(){this.elements.$itemsContent.toggleClass("elementor-gallery--sequenced-animation","yes"===this.getElementSettings("content_sequenced_animation"))}toggleImageHoverAnimation(){const e=this.getElementSettings("image_hover_animation");this.removeAnimationClasses(this.elements.$images),e&&this.elements.$images.addClass("elementor-animated-item--"+e)}toggleAllAnimationsClasses(){const e=this.getElementSettings(),t=e.background_overlay_hover_animation||e.content_hover_animation||e.image_hover_animation;this.elements.$items.toggleClass("elementor-animated-content",!!t),this.toggleImageHoverAnimation(),this.toggleOverlayHoverAnimation(),this.toggleOverlayContentAnimation(),this.toggleOverlayContentSequencedAnimation()}toggleAnimationClasses(e){"content_sequenced_animation"===e&&this.toggleOverlayContentSequencedAnimation(),"background_overlay_hover_animation"===e&&this.toggleOverlayHoverAnimation(),"content_hover_animation"===e&&this.toggleOverlayContentAnimation(),"image_hover_animation"===e&&this.toggleImageHoverAnimation()}setGalleryTags(e){this.gallery.setSettings("tags","all"===e?[]:[""+e])}bindEvents(){this.elements.$titles.on("click",this.galleriesNavigationListener.bind(this))}galleriesNavigationListener(e){const t=this.getSettings("classes"),s=jQuery(e.target);this.elements.$titles.removeClass(t.activeTitle),s.addClass(t.activeTitle),this.setGalleryTags(s.data("gallery-index"));setTimeout((()=>this.setLightboxGalleryIndex(s.data("gallery-index"))),1e3)}setLightboxGalleryIndex(e="all"){if("all"===e)return this.elements.$items.attr("data-elementor-lightbox-slideshow","all_"+this.getID());this.elements.$items.not(".e-gallery-item--hidden").attr("data-elementor-lightbox-slideshow",e+"_"+this.getID())}onInit(...e){super.onInit(...e),elementorFrontend.isEditMode()&&1<=this.$element.find(".elementor-widget-empty-icon").length&&this.$element.addClass("elementor-widget-empty"),this.elements.$container.length&&(this.initGallery(),this.elements.$titles.first().trigger("click"))}getSettingsDictionary(){if(this.settingsDictionary)return this.settingsDictionary;const e=elementorFrontend.config.responsive.activeBreakpoints,t=Object.keys(e),s={columns:["columns"],gap:["horizontalGap","verticalGap"],ideal_row_height:["idealRowHeight"]};return t.forEach((t=>{"widescreen"!==t&&(s["columns_"+t]=["breakpoints."+e[t].value+".columns"],s["gap_"+t]=["breakpoints."+e[t].value+".horizontalGap","breakpoints."+e[t].value+".verticalGap"],s["ideal_row_height_"+t]=["breakpoints."+e[t].value+".idealRowHeight"])})),s.aspect_ratio=["aspectRatio"],this.settingsDictionary=s,this.settingsDictionary}onElementChange(e){if(-1!==["background_overlay_hover_animation","content_hover_animation","image_hover_animation","content_sequenced_animation"].indexOf(e))return void this.toggleAnimationClasses(e);const t=this.getSettingsDictionary()[e];if(t){const e=this.getGallerySettings();t.forEach((t=>{this.gallery.setSettings(t,this.getItems(e,t))}))}}onDestroy(){super.onDestroy(),this.gallery&&this.gallery.destroy()}}t.default=galleryHandler},1853:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9556));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("hotspot",i.default)}}t.default=_default},9556:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Hotspot extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{hotspot:".e-hotspot",tooltip:".e-hotspot__tooltip"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$hotspot:this.$element.find(e.hotspot),$hotspotsExcludesLinks:this.$element.find(e.hotspot).filter(":not(.e-hotspot--no-tooltip)"),$tooltip:this.$element.find(e.tooltip)}}bindEvents(){const e=this.getCurrentDeviceSetting("tooltip_trigger"),t="mouseenter"===e?"mouseleave mouseenter":e;"none"!==t&&this.elements.$hotspotsExcludesLinks.on(t,(e=>this.onHotspotTriggerEvent(e)))}onDeviceModeChange(){this.elements.$hotspotsExcludesLinks.off(),this.bindEvents()}onHotspotTriggerEvent(e){const t=jQuery(e.target),s=t.closest(".e-hotspot__button").length,n="mouseleave"===e.type&&(t.is(".e-hotspot--tooltip-position")||t.parents(".e-hotspot--tooltip-position").length),i="mobile"===elementorFrontend.getCurrentDeviceMode();if(!(t.closest(".e-hotspot--link").length&&i&&("mouseleave"===e.type||"mouseenter"===e.type))&&(s||n)){const t=jQuery(e.currentTarget);this.elements.$hotspot.not(t).removeClass("e-hotspot--active"),t.toggleClass("e-hotspot--active")}}editorAddSequencedAnimation(){this.elements.$hotspot.toggleClass("e-hotspot--sequenced","yes"===this.getElementSettings("hotspot_sequenced_animation"))}hotspotSequencedAnimation(){const e=this.getElementSettings();if("no"===e.hotspot_sequenced_animation)return;const t=elementorModules.utils.Scroll.scrollObserver({callback:s=>{s.isInViewport&&(t.unobserve(this.$element[0]),this.elements.$hotspot.each(((t,s)=>{if(0===t)return;const n=e.hotspot_sequenced_animation_duration,i=t*((n?n.size:1e3)/this.elements.$hotspot.length);s.style.animationDelay=i+"ms"})))}});t.observe(this.$element[0])}setTooltipPositionControl(){const e=this.getElementSettings();void 0!==e.tooltip_animation&&e.tooltip_animation.match(/^e-hotspot--(slide|fade)-direction/)&&(this.elements.$tooltip.removeClass("e-hotspot--tooltip-animation-from-left e-hotspot--tooltip-animation-from-top e-hotspot--tooltip-animation-from-right e-hotspot--tooltip-animation-from-bottom"),this.elements.$tooltip.addClass("e-hotspot--tooltip-animation-from-"+e.tooltip_position))}onInit(...e){super.onInit(...e),this.hotspotSequencedAnimation(),this.setTooltipPositionControl(),window.elementor&&elementor.listenTo(elementor.channels.deviceMode,"change",(()=>this.onDeviceModeChange()))}onElementChange(e){e.startsWith("tooltip_position")&&this.setTooltipPositionControl(),e.startsWith("hotspot_sequenced_animation")&&this.editorAddSequencedAnimation()}}t.default=Hotspot},9698:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(4927));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("lottie",i.default)}}t.default=_default},4927:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class lottieHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".e-lottie__container",containerLink:".e-lottie__container__link",animation:".e-lottie__animation",caption:".e-lottie__caption"},classes:{caption:"e-lottie__caption"}}}getDefaultElements(){const{selectors:e}=this.getSettings();return{$widgetWrapper:this.$element,$container:this.$element.find(e.container),$containerLink:this.$element.find(e.containerLink),$animation:this.$element.find(e.animation),$caption:this.$element.find(e.caption),$sectionParent:this.$element.closest(".elementor-section"),$columnParent:this.$element.closest(".elementor-column")}}onInit(...e){super.onInit(...e),this.lottie=null,this.state={isAnimationScrollUpdateNeededOnFirstLoad:!0,isNewLoopCycle:!1,isInViewport:!1,loop:!1,animationDirection:"forward",currentAnimationTrigger:"",effectsRelativeTo:"",hoverOutMode:"",hoverArea:"",caption:"",playAnimationCount:0,animationSpeed:0,linkTimeout:0,viewportOffset:{start:0,end:100}},this.intersectionObservers={animation:{observer:null,element:null},lazyload:{observer:null,element:null}},this.animationFrameRequest={timer:null,lastScrollY:0},this.listeners={collection:[],elements:{$widgetArea:{triggerAnimationHoverIn:null,triggerAnimationHoverOut:null},$container:{triggerAnimationClick:null}}},this.initLottie()}initLottie(){this.getLottieSettings().lazyload?this.lazyloadLottie():this.generateLottie()}lazyloadLottie(){this.intersectionObservers.lazyload.observer=elementorModules.utils.Scroll.scrollObserver({offset:"0px 0px 200px",callback:e=>{e.isInViewport&&(this.generateLottie(),this.intersectionObservers.lazyload.observer.unobserve(this.intersectionObservers.lazyload.element))}}),this.intersectionObservers.lazyload.element=this.elements.$container[0],this.intersectionObservers.lazyload.observer.observe(this.intersectionObservers.lazyload.element)}generateLottie(){this.createLottieInstance(),this.setLottieEvents()}createLottieInstance(){const e=this.getLottieSettings();this.lottie=bodymovin.loadAnimation({container:this.elements.$animation[0],path:this.getAnimationPath(),renderer:e.renderer,autoplay:!1,name:"lottie-widget"}),this.elements.$animation.data("lottie",this.lottie)}getAnimationPath(){var e,t;const s=this.getLottieSettings();return null!==(e=s.source_json)&&void 0!==e&&e.url&&"json"===s.source_json.url.toLowerCase().substr(-4)?s.source_json.url:null!==(t=s.source_external_url)&&void 0!==t&&t.url?s.source_external_url.url:elementorProFrontend.config.lottie.defaultAnimationUrl}setCaption(){const e=this.getLottieSettings();if("external_url"===e.source||"media_file"===e.source&&"custom"===e.caption_source){this.getCaptionElement().text(e.caption)}}getCaptionElement(){if(!this.elements.$caption.length){const{classes:e}=this.getSettings();return this.elements.$caption=jQuery("<p>",{class:e.caption}),this.elements.$container.append(this.elements.$caption),this.elements.$caption}return this.elements.$caption}setLottieEvents(){this.lottie.addEventListener("DOMLoaded",(()=>this.onLottieDomLoaded())),this.lottie.addEventListener("complete",(()=>this.onComplete()))}saveInitialValues(){var e;const t=this.getLottieSettings();this.lottie.__initialTotalFrames=this.lottie.totalFrames,this.lottie.__initialFirstFrame=this.lottie.firstFrame,this.state.currentAnimationTrigger=t.trigger,this.state.effectsRelativeTo=t.effects_relative_to,this.state.viewportOffset.start=t.viewport?t.viewport.sizes.start:0,this.state.viewportOffset.end=t.viewport?t.viewport.sizes.end:100,this.state.animationSpeed=null===(e=t.play_speed)||void 0===e?void 0:e.size,this.state.linkTimeout=t.link_timeout,this.state.caption=t.caption,this.state.loop=t.loop}setAnimationFirstFrame(){const e=this.getAnimationFrames();e.first=e.first-this.lottie.__initialFirstFrame,this.lottie.goToAndStop(e.first,!0)}initAnimationTrigger(){switch(this.getLottieSettings().trigger){case"none":this.playLottie();break;case"arriving_to_viewport":this.playAnimationWhenArrivingToViewport();break;case"bind_to_scroll":this.playAnimationWhenBindToScroll();break;case"on_click":this.bindAnimationClickEvents();break;case"on_hover":this.bindAnimationHoverEvents()}}playAnimationWhenArrivingToViewport(){const e=this.getOffset();this.intersectionObservers.animation.observer=elementorModules.utils.Scroll.scrollObserver({offset:`${e.end}% 0% ${e.start}%`,callback:e=>{e.isInViewport?(this.state.isInViewport=!0,this.playLottie()):(this.state.isInViewport=!1,this.lottie.pause())}}),this.intersectionObservers.animation.element=this.elements.$widgetWrapper[0],this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element)}getOffset(){const e=this.getLottieSettings();return{start:-e.viewport.sizes.start||0,end:-(100-e.viewport.sizes.end)||0}}playAnimationWhenBindToScroll(){const e=this.getLottieSettings(),t=this.getOffset();this.intersectionObservers.animation.observer=elementorModules.utils.Scroll.scrollObserver({offset:`${t.end}% 0% ${t.start}%`,callback:e=>this.onLottieIntersection(e)}),this.intersectionObservers.animation.element="viewport"===e.effects_relative_to?this.elements.$widgetWrapper[0]:document.documentElement,this.intersectionObservers.animation.observer.observe(this.intersectionObservers.animation.element)}updateAnimationByScrollPosition(){let e;e="page"===this.getLottieSettings().effects_relative_to?this.getLottiePagePercentage():"fixed"===this.getCurrentDeviceSetting("_position")?this.getLottieViewportHeightPercentage():this.getLottieViewportPercentage();let t=this.getFrameNumberByPercent(e);t-=this.lottie.__initialFirstFrame,this.lottie.goToAndStop(t,!0)}getLottieViewportPercentage(){return elementorModules.utils.Scroll.getElementViewportPercentage(this.elements.$widgetWrapper,this.getOffset())}getLottiePagePercentage(){return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset())}getLottieViewportHeightPercentage(){return elementorModules.utils.Scroll.getPageScrollPercentage(this.getOffset(),window.innerHeight)}getFrameNumberByPercent(e){const t=this.getAnimationFrames();return e=Math.min(100,Math.max(0,e)),t.first+(t.last-t.first)*e/100}getAnimationFrames(){const e=this.getLottieSettings(),t=this.getAnimationCurrentFrame(),s=this.getAnimationRange().start,n=this.getAnimationRange().end;let i=this.lottie.__initialFirstFrame,o=0===this.lottie.__initialFirstFrame?this.lottie.__initialTotalFrames:this.lottie.__initialFirstFrame+this.lottie.__initialTotalFrames;return s&&s>i&&(i=s),n&&n<o&&(o=n),this.state.isNewLoopCycle||"bind_to_scroll"===e.trigger||(i=s&&s>t?s:t),"backward"===this.state.animationDirection&&this.isReverseMode()&&(i=t,o=s&&s>this.lottie.__initialFirstFrame?s:this.lottie.__initialFirstFrame),{first:i,last:o,current:t,total:this.lottie.__initialTotalFrames}}getAnimationRange(){const e=this.getLottieSettings();return{start:this.getInitialFrameNumberByPercent(e.start_point.size),end:this.getInitialFrameNumberByPercent(e.end_point.size)}}getInitialFrameNumberByPercent(e){return e=Math.min(100,Math.max(0,e)),this.lottie.__initialFirstFrame+(this.lottie.__initialTotalFrames-this.lottie.__initialFirstFrame)*e/100}getAnimationCurrentFrame(){return 0===this.lottie.firstFrame?this.lottie.currentFrame:this.lottie.firstFrame+this.lottie.currentFrame}setLinkTimeout(){var e;const t=this.getLottieSettings();"on_click"===t.trigger&&null!==(e=t.custom_link)&&void 0!==e&&e.url&&t.link_timeout&&this.elements.$containerLink.on("click",(e=>{e.preventDefault(),this.isEdit||setTimeout((()=>{const e="on"===t.custom_link.is_external?"_blank":"_self";window.open(t.custom_link.url,e)}),t.link_timeout)}))}bindAnimationClickEvents(){this.listeners.elements.$container.triggerAnimationClick=()=>{this.playLottie()},this.addSessionEventListener(this.elements.$container,"click",this.listeners.elements.$container.triggerAnimationClick)}getLottieSettings(){const e=this.getElementSettings();return{...e,lazyload:"yes"===e.lazyload,loop:"yes"===e.loop}}playLottie(){const e=this.getAnimationFrames();this.lottie.stop(),this.lottie.playSegments([e.first,e.last],!0),this.state.isNewLoopCycle=!1}bindAnimationHoverEvents(){this.createAnimationHoverInEvents(),this.createAnimationHoverOutEvents()}createAnimationHoverInEvents(){const e=this.getLottieSettings(),t=this.getHoverAreaElement();this.state.hoverArea=e.hover_area,this.listeners.elements.$widgetArea.triggerAnimationHoverIn=()=>{this.state.animationDirection="forward",this.playLottie()},this.addSessionEventListener(t,"mouseenter",this.listeners.elements.$widgetArea.triggerAnimationHoverIn)}addSessionEventListener(e,t,s){e.on(t,s),this.listeners.collection.push({$el:e,event:t,callback:s})}createAnimationHoverOutEvents(){const e=this.getLottieSettings(),t=this.getHoverAreaElement();"pause"!==e.on_hover_out&&"reverse"!==e.on_hover_out||(this.state.hoverOutMode=e.on_hover_out,this.listeners.elements.$widgetArea.triggerAnimationHoverOut=()=>{"pause"===e.on_hover_out?this.lottie.pause():(this.state.animationDirection="backward",this.playLottie())},this.addSessionEventListener(t,"mouseleave",this.listeners.elements.$widgetArea.triggerAnimationHoverOut))}getHoverAreaElement(){const e=this.getLottieSettings();return"section"===e.hover_area?this.elements.$sectionParent:"column"===e.hover_area?this.elements.$columnParent:this.elements.$container}setLoopOnAnimationComplete(){const e=this.getLottieSettings();this.state.isNewLoopCycle=!0,e.loop&&!this.isReverseMode()?this.setLoopWhenNotReverse():e.loop&&this.isReverseMode()?this.setReverseAnimationOnLoop():!e.loop&&this.isReverseMode()&&this.setReverseAnimationOnSingleTrigger()}isReverseMode(){const e=this.getLottieSettings();return"yes"===e.reverse_animation||"reverse"===e.on_hover_out&&"backward"===this.state.animationDirection}setLoopWhenNotReverse(){const e=this.getLottieSettings();e.number_of_times>0?(this.state.playAnimationCount++,this.state.playAnimationCount<e.number_of_times?this.playLottie():this.state.playAnimationCount=0):this.playLottie()}setReverseAnimationOnLoop(){const e=this.getLottieSettings();!e.number_of_times||this.state.playAnimationCount<e.number_of_times?(this.state.animationDirection="forward"===this.state.animationDirection?"backward":"forward",this.playLottie(),"backward"===this.state.animationDirection&&this.state.playAnimationCount++):(this.state.playAnimationCount=0,this.state.animationDirection="forward")}setReverseAnimationOnSingleTrigger(){this.state.playAnimationCount<1?(this.state.playAnimationCount++,this.state.animationDirection="backward",this.playLottie()):this.state.playAnimationCount>=1&&"forward"===this.state.animationDirection?(this.state.animationDirection="backward",this.playLottie()):(this.state.playAnimationCount=0,this.state.animationDirection="forward")}setAnimationSpeed(){const e=this.getLottieSettings();e.play_speed&&this.lottie.setSpeed(e.play_speed.size)}onElementChange(){this.updateLottieValues(),this.resetAnimationTrigger()}updateLottieValues(){var e;const t=this.getLottieSettings();[{sourceVal:null===(e=t.play_speed)||void 0===e?void 0:e.size,stateProp:"animationSpeed",callback:()=>this.setAnimationSpeed()},{sourceVal:t.link_timeout,stateProp:"linkTimeout",callback:()=>this.setLinkTimeout()},{sourceVal:t.caption,stateProp:"caption",callback:()=>this.setCaption()},{sourceVal:t.effects_relative_to,stateProp:"effectsRelativeTo",callback:()=>this.updateAnimationByScrollPosition()},{sourceVal:t.loop,stateProp:"loop",callback:()=>this.onLoopStateChange()}].forEach((e=>{void 0!==e.sourceVal&&e.sourceVal!==this.state[e.stateProp]&&(this.state[e.stateProp]=e.sourceVal,e.callback())}))}onLoopStateChange(){const e="arriving_to_viewport"===this.state.currentAnimationTrigger&&this.state.isInViewport;this.state.loop&&(e||"none"===this.state.currentAnimationTrigger)&&this.playLottie()}resetAnimationTrigger(){const e=this.getLottieSettings(),t=e.trigger!==this.state.currentAnimationTrigger,s=!!e.viewport&&this.isViewportOffsetChange(),n=!!e.on_hover_out&&this.isHoverOutModeChange(),i=!!e.hover_area&&this.isHoverAreaChange();(t||s||n||i)&&(this.removeAnimationFrameRequests(),this.removeObservers(),this.removeEventListeners(),this.initAnimationTrigger())}isViewportOffsetChange(){const e=this.getLottieSettings(),t=e.viewport.sizes.start!==this.state.viewportOffset.start,s=e.viewport.sizes.end!==this.state.viewportOffset.end;return t||s}isHoverOutModeChange(){return this.getLottieSettings().on_hover_out!==this.state.hoverOutMode}isHoverAreaChange(){return this.getLottieSettings().hover_area!==this.state.hoverArea}removeEventListeners(){this.listeners.collection.forEach((e=>{e.$el.off(e.event,null,e.callback)}))}removeObservers(){for(const e in this.intersectionObservers)this.intersectionObservers[e].observer&&this.intersectionObservers[e].element&&this.intersectionObservers[e].observer.unobserve(this.intersectionObservers[e].element)}removeAnimationFrameRequests(){cancelAnimationFrame(this.animationFrameRequest.timer)}onDestroy(){super.onDestroy(),this.destroyLottie()}destroyLottie(){this.removeAnimationFrameRequests(),this.removeObservers(),this.removeEventListeners(),this.elements.$animation.removeData("lottie"),this.lottie&&this.lottie.destroy()}onLottieDomLoaded(){this.saveInitialValues(),this.setAnimationSpeed(),this.setLinkTimeout(),this.setCaption(),this.setAnimationFirstFrame(),this.initAnimationTrigger()}onComplete(){this.setLoopOnAnimationComplete()}onLottieIntersection(e){if(e.isInViewport)this.state.isAnimationScrollUpdateNeededOnFirstLoad&&(this.state.isAnimationScrollUpdateNeededOnFirstLoad=!1,this.updateAnimationByScrollPosition()),this.animationFrameRequest.timer=requestAnimationFrame((()=>this.onAnimationFrameRequest()));else{const t=this.getAnimationFrames(),s="up"===e.intersectionScrollDirection?t.first:t.last;this.state.isAnimationScrollUpdateNeededOnFirstLoad=!1,cancelAnimationFrame(this.animationFrameRequest.timer),this.lottie.goToAndStop(s,!0)}}onAnimationFrameRequest(){window.scrollY!==this.animationFrameRequest.lastScrollY&&(this.updateAnimationByScrollPosition(),this.animationFrameRequest.lastScrollY=window.scrollY),this.animationFrameRequest.timer=requestAnimationFrame((()=>this.onAnimationFrameRequest()))}}t.default=lottieHandler},9122:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(5389));class _default extends elementorModules.Module{constructor(){super(),jQuery.fn.smartmenus&&(jQuery.SmartMenus.prototype.isCSSOn=function(){return!0},elementorFrontend.config.is_rtl&&(jQuery.fn.smartmenus.defaults.rightToLeftSubMenus=!0)),elementorFrontend.elementsHandler.attachHandler("nav-menu",i.default)}}t.default=_default},5389:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({stretchElement:null,getDefaultSettings:()=>({selectors:{menu:".elementor-nav-menu",anchorLink:".elementor-nav-menu--main .elementor-item-anchor",dropdownMenu:".elementor-nav-menu__container.elementor-nav-menu--dropdown",menuToggle:".elementor-menu-toggle"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$menu=this.$element.find(e.menu),t.$anchorLink=this.$element.find(e.anchorLink),t.$dropdownMenu=this.$element.find(e.dropdownMenu),t.$dropdownMenuFinalItems=t.$dropdownMenu.find(".menu-item:not(.menu-item-has-children) > a"),t.$menuToggle=this.$element.find(e.menuToggle),t.$links=t.$dropdownMenu.find("a.elementor-item"),t},bindEvents(){this.elements.$menu.length&&(this.elements.$menuToggle.on("click",this.toggleMenu.bind(this)),this.getElementSettings("full_width")&&this.elements.$dropdownMenuFinalItems.on("click",this.toggleMenu.bind(this,!1)),elementorFrontend.addListenerOnce(this.$element.data("model-cid"),"resize",this.stretchMenu))},initStretchElement(){this.stretchElement=new elementorModules.frontend.tools.StretchElement({element:this.elements.$dropdownMenu})},toggleNavLinksTabIndex(e=!0){this.elements.$links.attr("tabindex",e?0:-1)},toggleMenu(e){var t=this.elements.$menuToggle.hasClass("elementor-active");"boolean"!=typeof e&&(e=!t),this.elements.$menuToggle.attr("aria-expanded",e),this.elements.$dropdownMenu.attr("aria-hidden",!e),this.elements.$menuToggle.toggleClass("elementor-active",e),this.toggleNavLinksTabIndex(e),e&&this.getElementSettings("full_width")&&this.stretchElement.stretch()},followMenuAnchors(){var e=this;e.elements.$anchorLink.each((function(){location.pathname===this.pathname&&""!==this.hash&&e.followMenuAnchor(jQuery(this))}))},followMenuAnchor(e){const t=e[0].hash;let s,n=-300;try{s=jQuery(decodeURIComponent(t))}catch(e){return}if(s.length){if(!s.hasClass("elementor-menu-anchor")){var i=jQuery(window).height()/2;n=-s.outerHeight()+i}elementorFrontend.waypoint(s,(function(t){"down"===t?e.addClass("elementor-item-active"):e.removeClass("elementor-item-active")}),{offset:"50%",triggerOnce:!1}),elementorFrontend.waypoint(s,(function(t){"down"===t?e.removeClass("elementor-item-active"):e.addClass("elementor-item-active")}),{offset:n,triggerOnce:!1})}},stretchMenu(){this.getElementSettings("full_width")?(this.stretchElement.stretch(),this.elements.$dropdownMenu.css("top",this.elements.$menuToggle.outerHeight())):this.stretchElement.reset()},onInit(){if(elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),!this.elements.$menu.length)return;const e=this.getElementSettings().submenu_icon.value;let t="";e&&(t=e.indexOf("<")>-1?e:`<i class="${e}"></i>`),this.elements.$menu.smartmenus({subIndicators:""!==t,subIndicatorsText:t,subIndicatorsPos:"append",subMenusMaxWidth:"1000px"}),this.initStretchElement(),this.stretchMenu(),elementorFrontend.isEditMode()||this.followMenuAnchors()},onElementChange(e){"full_width"===e&&this.stretchMenu()}});t.default=s},2731:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9545)),o=n(s(4339)),r=s(2993);class _default extends elementorModules.frontend.Document{bindEvents(){const e=this.getDocumentSettings("open_selector");e&&elementorFrontend.elements.$body.on("click",e,this.showModal.bind(this))}startTiming(){new o.default(this.getDocumentSettings("timing"),this).check()&&this.initTriggers()}initTriggers(){this.triggers=new i.default(this.getDocumentSettings("triggers"),this)}showModal(e){const t=this.getDocumentSettings();if(!this.isEdit){if(!elementorFrontend.isWPPreviewMode()){if(this.getStorage("disable"))return;if(e&&elementorProFrontend.modules.popup.popupPopped&&t.avoid_multiple_popups)return}this.$element=jQuery(this.elementHTML),this.elements.$elements=this.$element.find(this.getSettings("selectors.elements"))}const s=this.getModal(),n=s.getElements("closeButton");s.setMessage(this.$element).show(),this.isEdit||(t.close_button_delay&&(n.hide(),clearTimeout(this.closeButtonTimeout),this.closeButtonTimeout=setTimeout((()=>n.show()),1e3*t.close_button_delay)),super.runElementsHandlers()),this.setEntranceAnimation(),t.timing&&t.timing.times_count||this.countTimes(),elementorProFrontend.modules.popup.popupPopped=!0}setEntranceAnimation(){const e=this.getModal().getElements("widgetContent"),t=this.getDocumentSettings(),s=elementorFrontend.getCurrentDeviceSetting(t,"entrance_animation");if(this.currentAnimation&&e.removeClass(this.currentAnimation),this.currentAnimation=s,!s)return;const n=t.entrance_animation_duration.size;e.addClass(s),setTimeout((()=>e.removeClass(s)),1e3*n)}setExitAnimation(){const e=this.getModal(),t=this.getDocumentSettings(),s=e.getElements("widgetContent"),n=elementorFrontend.getCurrentDeviceSetting(t,"exit_animation"),i=n?t.entrance_animation_duration.size:0;setTimeout((()=>{n&&s.removeClass(n+" reverse"),this.isEdit||(this.$element.remove(),e.getElements("widget").hide())}),1e3*i),n&&s.addClass(n+" reverse")}initModal(){let e;this.getModal=()=>{if(!e){const t=this.getDocumentSettings(),s=this.getSettings("id"),triggerPopupEvent=e=>elementorFrontend.elements.$document.trigger("elementor/popup/"+e,[s,this]);let n="elementor-popup-modal";t.classes&&(n+=" "+t.classes);const i={id:"elementor-popup-modal-"+s,className:n,closeButton:!0,preventScroll:t.prevent_scroll,onShow:()=>triggerPopupEvent("show"),onHide:()=>triggerPopupEvent("hide"),effects:{hide:()=>{t.timing&&t.timing.times_count&&this.countTimes(),this.setExitAnimation()},show:"show"},hide:{auto:!!t.close_automatically,autoDelay:1e3*t.close_automatically,onBackgroundClick:!t.prevent_close_on_background_click,onOutsideClick:!t.prevent_close_on_background_click,onEscKeyPress:!t.prevent_close_on_esc_key,ignore:".flatpickr-calendar"},position:{enable:!1}};elementorFrontend.config.experimentalFeatures.e_font_icon_svg&&(i.closeButtonOptions={iconElement:r.close.element}),i.closeButtonClass="eicon-close",e=elementorFrontend.getDialogsManager().createWidget("lightbox",i),e.getElements("widgetContent").addClass("animated");const o=e.getElements("closeButton");this.isEdit&&(o.off("click"),e.hide=()=>{}),this.setCloseButtonPosition()}return e}}setCloseButtonPosition(){const e=this.getModal(),t=this.getDocumentSettings("close_button_position");e.getElements("closeButton").appendTo(e.getElements("outside"===t?"widget":"widgetContent"))}disable(){this.setStorage("disable",!0)}setStorage(e,t,s){elementorFrontend.storage.set(`popup_${this.getSettings("id")}_${e}`,t,s)}getStorage(e,t){return elementorFrontend.storage.get(`popup_${this.getSettings("id")}_${e}`,t)}countTimes(){const e=this.getStorage("times")||0;this.setStorage("times",e+1)}runElementsHandlers(){}async onInit(){super.onInit(),window.DialogsManager||await elementorFrontend.utils.assetsLoader.load("script","dialog"),this.initModal(),this.isEdit?this.showModal():(this.$element.show().remove(),this.elementHTML=this.$element[0].outerHTML,elementorFrontend.isEditMode()||(elementorFrontend.isWPPreviewMode()&&elementorFrontend.config.post.id===this.getSettings("id")?this.showModal():this.startTiming()))}onSettingsChange(e){const t=Object.keys(e.changed)[0];-1!==t.indexOf("entrance_animation")&&this.setEntranceAnimation(),"exit_animation"===t&&this.setExitAnimation(),"close_button_position"===t&&this.setCloseButtonPosition()}}t.default=_default},651:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2731)),o=n(s(3573));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.hooks.addAction("elementor/frontend/documents-manager/init-classes",this.addDocumentClass),elementorFrontend.elementsHandler.attachHandler("form",o.default),elementorFrontend.on("components:init",(()=>this.onFrontendComponentsInit())),elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode()||this.setViewsAndSessions()}addDocumentClass(e){e.addDocumentClass("popup",i.default)}setViewsAndSessions(){const e=elementorFrontend.storage.get("pageViews")||0;elementorFrontend.storage.set("pageViews",e+1);if(!elementorFrontend.storage.get("activeSession",{session:!0})){elementorFrontend.storage.set("activeSession",!0,{session:!0});const e=elementorFrontend.storage.get("sessions")||0;elementorFrontend.storage.set("sessions",e+1)}}showPopup(e){const t=elementorFrontend.documentsManager.documents[e.id];if(!t)return;const s=t.getModal();e.toggle&&s.isVisible()?s.hide():t.showModal()}closePopup(e,t){const s=jQuery(t.target).parents('[data-elementor-type="popup"]').data("elementorId");if(!s)return;const n=elementorFrontend.documentsManager.documents[s];n.getModal().hide(),e.do_not_show_again&&n.disable()}onFrontendComponentsInit(){elementorFrontend.utils.urlActions.addAction("popup:open",(e=>this.showPopup(e))),elementorFrontend.utils.urlActions.addAction("popup:close",((e,t)=>this.closePopup(e,t)))}}t.default=_default},3573:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t},bindEvents(){this.elements.$form.on("submit_success",this.handleFormAction)},handleFormAction(e,t){if(void 0===t.data.popup)return;const s=t.data.popup;if("open"===s.action)return elementorProFrontend.modules.popup.showPopup(s);setTimeout((()=>elementorProFrontend.modules.popup.closePopup(s,e)),1e3)}});t.default=s},4339:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(275)),o=n(s(1795)),r=n(s(2894)),a=n(s(1306)),l=n(s(9912)),d=n(s(3245)),c=n(s(6850)),h=n(s(8937));class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t,this.timingClasses={page_views:i.default,sessions:o.default,url:r.default,sources:a.default,logged_in:l.default,devices:d.default,times:c.default,browsers:h.default}}check(){const e=this.getSettings();let t=!0;return jQuery.each(this.timingClasses,((s,n)=>{if(!e[s])return;new n(e,this.document).check()||(t=!1)})),t}}t.default=_default},3565:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t}getTimingSetting(e){return this.getSettings(this.getName()+"_"+e)}}t.default=_default},8937:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"browsers"}check(){if("all"===this.getTimingSetting("browsers"))return!0;const e=this.getTimingSetting("browsers_options"),t=elementorFrontend.utils.environment;return e.some((e=>t[e]))}}t.default=_default},3245:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"devices"}check(){return-1!==this.getTimingSetting("devices").indexOf(elementorFrontend.getCurrentDeviceMode())}}t.default=_default},9912:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"logged_in"}check(){const e=elementorFrontend.config.user;if(!e)return!0;if("all"===this.getTimingSetting("users"))return!1;return!this.getTimingSetting("roles").filter((t=>-1!==e.roles.indexOf(t))).length}}t.default=_default},275:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"page_views"}check(){const e=elementorFrontend.storage.get("pageViews"),t=this.getName();let s=this.document.getStorage(t+"_initialPageViews");return s||(this.document.setStorage(t+"_initialPageViews",e),s=e),e-s>=this.getTimingSetting("views")}}t.default=_default},1795:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"sessions"}check(){const e=elementorFrontend.storage.get("sessions"),t=this.getName();let s=this.document.getStorage(t+"_initialSessions");return s||(this.document.setStorage(t+"_initialSessions",e),s=e),e-s>=this.getTimingSetting("sessions")}}t.default=_default},1306:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"sources"}check(){const e=this.getTimingSetting("sources");if(3===e.length)return!0;const t=document.referrer.replace(/https?:\/\/(?:www\.)?/,"");return 0===t.indexOf(location.host.replace("www.",""))?-1!==e.indexOf("internal"):-1!==e.indexOf("external")||-1!==e.indexOf("search")&&/^(google|yahoo|bing|yandex|baidu)\./.test(t)}}t.default=_default},6850:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"times"}check(){const e=this.document.getStorage("times")||0;return this.getTimingSetting("times")>e}}t.default=_default},2894:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3565));class _default extends i.default{getName(){return"url"}check(){const e=this.getTimingSetting("url"),t=this.getTimingSetting("action"),s=document.referrer;if("regex"!==t)return"hide"===t^-1!==s.indexOf(e);let n;try{n=new RegExp(e)}catch(e){return!1}return n.test(s)}}t.default=_default},9545:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(974)),o=n(s(8330)),r=n(s(1220)),a=n(s(9863)),l=n(s(1055)),d=n(s(9972));class _default extends elementorModules.Module{constructor(e,t){super(e),this.document=t,this.triggers=[],this.triggerClasses={page_load:i.default,scrolling:o.default,scrolling_to:r.default,click:a.default,inactivity:l.default,exit_intent:d.default},this.runTriggers()}runTriggers(){const e=this.getSettings();jQuery.each(this.triggerClasses,((t,s)=>{if(!e[t])return;const n=new s(e,(()=>this.onTriggerFired()));n.run(),this.triggers.push(n)}))}destroyTriggers(){this.triggers.forEach((e=>e.destroy())),this.triggers=[]}onTriggerFired(){this.document.showModal(!0),this.destroyTriggers()}}t.default=_default},144:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(e,t){super(e),this.callback=t}getTriggerSetting(e){return this.getSettings(this.getName()+"_"+e)}}t.default=_default},9863:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{constructor(...e){super(...e),this.checkClick=this.checkClick.bind(this),this.clicksCount=0}getName(){return"click"}checkClick(){this.clicksCount++,this.clicksCount===this.getTriggerSetting("times")&&this.callback()}run(){elementorFrontend.elements.$body.on("click",this.checkClick)}destroy(){elementorFrontend.elements.$body.off("click",this.checkClick)}}t.default=_default},9972:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{constructor(...e){super(...e),this.detectExitIntent=this.detectExitIntent.bind(this)}getName(){return"exit_intent"}detectExitIntent(e){e.clientY<=0&&this.callback()}run(){elementorFrontend.elements.$window.on("mouseleave",this.detectExitIntent)}destroy(){elementorFrontend.elements.$window.off("mouseleave",this.detectExitIntent)}}t.default=_default},1055:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{constructor(...e){super(...e),this.restartTimer=this.restartTimer.bind(this)}getName(){return"inactivity"}run(){this.startTimer(),elementorFrontend.elements.$document.on("keypress mousemove",this.restartTimer)}startTimer(){this.timeOut=setTimeout(this.callback,1e3*this.getTriggerSetting("time"))}clearTimer(){clearTimeout(this.timeOut)}restartTimer(){this.clearTimer(),this.startTimer()}destroy(){this.clearTimer(),elementorFrontend.elements.$document.off("keypress mousemove",this.restartTimer)}}t.default=_default},974:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{getName(){return"page_load"}run(){this.timeout=setTimeout(this.callback,1e3*this.getTriggerSetting("delay"))}destroy(){clearTimeout(this.timeout)}}t.default=_default},1220:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{getName(){return"scrolling_to"}run(){let e;try{e=jQuery(this.getTriggerSetting("selector"))}catch(e){return}this.waypointInstance=elementorFrontend.waypoint(e,this.callback)[0]}destroy(){this.waypointInstance&&this.waypointInstance.destroy()}}t.default=_default},8330:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(144));class _default extends i.default{constructor(...e){super(...e),this.checkScroll=this.checkScroll.bind(this),this.lastScrollOffset=0}getName(){return"scrolling"}checkScroll(){const e=scrollY>this.lastScrollOffset?"down":"up",t=this.getTriggerSetting("direction");if(this.lastScrollOffset=scrollY,e!==t)return;if("up"===e)return void this.callback();const s=elementorFrontend.elements.$document.height()-innerHeight;scrollY/s*100>=this.getTriggerSetting("offset")&&this.callback()}run(){elementorFrontend.elements.$window.on("scroll",this.checkScroll)}destroy(){elementorFrontend.elements.$window.off("scroll",this.checkScroll)}}t.default=_default},4484:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2926)),o=n(s(8014)),r=n(s(2763)),a=n(s(9738));class _default extends elementorModules.Module{constructor(){super(),["classic","full_content","cards"].forEach((e=>{elementorFrontend.elementsHandler.attachHandler("posts",a.default,e)})),elementorFrontend.elementsHandler.attachHandler("posts",i.default,"classic"),elementorFrontend.elementsHandler.attachHandler("posts",i.default,"full_content"),elementorFrontend.elementsHandler.attachHandler("posts",o.default,"cards"),elementorFrontend.elementsHandler.attachHandler("portfolio",r.default)}}t.default=_default},8014:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2926)).default.extend({getSkinPrefix:()=>"cards_"});t.default=i},9738:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class LoadMore extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{postsContainer:".elementor-posts-container",loadMoreButton:".elementor-button",loadMoreSpinnerWrapper:".e-load-more-spinner",loadMoreSpinner:".e-load-more-spinner i, .e-load-more-spinner svg",loadMoreAnchor:".e-load-more-anchor"},classes:{loadMoreSpin:"eicon-animation-spin",loadMoreIsLoading:"e-load-more-pagination-loading",loadMorePaginationEnd:"e-load-more-pagination-end",loadMoreNoSpinner:"e-load-more-no-spinner"}}}getDefaultElements(){const e=this.getSettings("selectors");return{postsWidgetWrapper:this.$element[0],postsContainer:this.$element[0].querySelector(e.postsContainer),loadMoreButton:this.$element[0].querySelector(e.loadMoreButton),loadMoreSpinnerWrapper:this.$element[0].querySelector(e.loadMoreSpinnerWrapper),loadMoreSpinner:this.$element[0].querySelector(e.loadMoreSpinner),loadMoreAnchor:this.$element[0].querySelector(e.loadMoreAnchor)}}bindEvents(){super.bindEvents(),this.elements.loadMoreButton&&this.elements.loadMoreButton.addEventListener("click",(e=>{this.isLoading||(e.preventDefault(),this.handlePostsQuery())}))}onInit(){super.onInit(),this.classes=this.getSettings("classes"),this.isLoading=!1;const e=this.getElementSettings("pagination_type");"load_more_on_click"!==e&&"load_more_infinite_scroll"!==e||(this.isInfinteScroll="load_more_infinite_scroll"===e,this.isSpinnerAvailable=this.getElementSettings("load_more_spinner").value,this.isSpinnerAvailable||this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreNoSpinner),this.isInfinteScroll?this.handleInfiniteScroll():this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreButton.insertAdjacentElement("beforeEnd",this.elements.loadMoreSpinnerWrapper),this.elementId=this.getID(),this.postId=elementorFrontendConfig.post.id,this.currentPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-page")),this.maxPage=parseInt(this.elements.loadMoreAnchor.getAttribute("data-max-page")),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts())}handleInfiniteScroll(){this.isEdit||(this.observer=elementorModules.utils.Scroll.scrollObserver({callback:e=>{e.isInViewport&&!this.isLoading&&(this.observer.unobserve(this.elements.loadMoreAnchor),this.handlePostsQuery().then((()=>{this.currentPage!==this.maxPage&&this.observer.observe(this.elements.loadMoreAnchor)})))}}),this.observer.observe(this.elements.loadMoreAnchor))}handleUiBeforeLoading(){this.isLoading=!0,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.add(this.classes.loadMoreSpin),this.elements.postsWidgetWrapper.classList.add(this.classes.loadMoreIsLoading)}handleUiAfterLoading(){this.isLoading=!1,this.elements.loadMoreSpinner&&this.elements.loadMoreSpinner.classList.remove(this.classes.loadMoreSpin),this.isInfinteScroll&&this.elements.loadMoreSpinnerWrapper&&this.elements.loadMoreAnchor.insertAdjacentElement("afterend",this.elements.loadMoreSpinnerWrapper),this.elements.postsWidgetWrapper.classList.remove(this.classes.loadMoreIsLoading)}handleUiWhenNoPosts(){this.elements.postsWidgetWrapper.classList.add(this.classes.loadMorePaginationEnd)}handleSuccessFetch(e){this.handleUiAfterLoading();const t=e.querySelectorAll(".elementor-posts-container > article"),s=e.querySelector(".e-load-more-anchor").getAttribute("data-next-page"),n=[...t].reduce(((e,t)=>e+t.outerHTML),"");this.elements.postsContainer.insertAdjacentHTML("beforeend",n),this.elements.loadMoreAnchor.setAttribute("data-page",this.currentPage),this.elements.loadMoreAnchor.setAttribute("data-next-page",s),this.currentPage===this.maxPage&&this.handleUiWhenNoPosts()}handlePostsQuery(){this.handleUiBeforeLoading(),this.currentPage++;const e=this.elements.loadMoreAnchor.getAttribute("data-next-page");return fetch(e).then((e=>e.text())).then((e=>{const t=(new DOMParser).parseFromString(e,"text/html");this.handleSuccessFetch(t)})).catch((e=>{console.warn("Something went wrong.",e)}))}}t.default=LoadMore},2763:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2926)),o=i.default.extend({isActive:e=>e.$element.find(".elementor-portfolio").length,getSkinPrefix:()=>"",getDefaultSettings(){var e=i.default.prototype.getDefaultSettings.apply(this,arguments);return e.transitionDuration=450,jQuery.extend(e.classes,{active:"elementor-active",item:"elementor-portfolio-item",ghostItem:"elementor-portfolio-ghost-item"}),e},getDefaultElements(){var e=i.default.prototype.getDefaultElements.apply(this,arguments);return e.$filterButtons=this.$element.find(".elementor-portfolio__filter"),e},getOffset(e,t,s){var n=this.getSettings(),i=this.elements.$postsContainer.width()/n.colsCount-t;return{start:(t+(i+=i/(n.colsCount-1)))*(e%n.colsCount),top:(s+i)*Math.floor(e/n.colsCount)}},getClosureMethodsNames(){return i.default.prototype.getClosureMethodsNames.apply(this,arguments).concat(["onFilterButtonClick"])},filterItems(e){var t=this.elements.$posts,s=this.getSettings("classes.active"),n=".elementor-filter-"+e;"__all"!==e?(t.not(n).removeClass(s),t.filter(n).addClass(s)):t.addClass(s)},removeExtraGhostItems(){var e=this.getSettings(),t=this.elements.$posts.filter(":visible"),s=(e.colsCount-t.length%e.colsCount)%e.colsCount;this.elements.$postsContainer.find("."+e.classes.ghostItem).slice(s).remove()},handleEmptyColumns(){this.removeExtraGhostItems();for(var e=this.getSettings(),t=this.elements.$posts.filter(":visible"),s=this.elements.$postsContainer.find("."+e.classes.ghostItem),n=(e.colsCount-(t.length+s.length)%e.colsCount)%e.colsCount,i=0;i<n;i++)this.elements.$postsContainer.append(jQuery("<div>",{class:e.classes.item+" "+e.classes.ghostItem}))},showItems(e){e.show(),setTimeout((function(){e.css({opacity:1})}))},hideItems(e){e.hide()},arrangeGrid(){var e=jQuery,t=this,s=t.getSettings(),n=t.elements.$posts.filter("."+s.classes.active),i=t.elements.$posts.not("."+s.classes.active),o=t.elements.$posts.filter(":visible"),r=n.add(o),a=n.filter(":visible"),l=n.filter(":hidden"),d=i.filter(":visible"),c=o.outerWidth(),h=o.outerHeight();if(t.elements.$posts.css("transition-duration",s.transitionDuration+"ms"),t.showItems(l),t.isEdit&&t.fitImages(),t.handleEmptyColumns(),t.isMasonryEnabled())return t.hideItems(d),t.showItems(l),t.handleEmptyColumns(),void t.runMasonry();d.css({opacity:0,transform:"scale3d(0.2, 0.2, 1)"}),a.each((function(){var s=e(this),n=t.getOffset(r.index(s),c,h),i=t.getOffset(o.index(s),c,h);n.start===i.start&&n.top===i.top||(i.start-=n.start,i.top-=n.top,elementorFrontend.config.is_rtl&&(i.start*=-1),s.css({transitionDuration:"",transform:"translate3d("+i.start+"px, "+i.top+"px, 0)"}))})),setTimeout((function(){n.each((function(){var i=e(this),o=t.getOffset(r.index(i),c,h),a=t.getOffset(n.index(i),c,h);i.css({transitionDuration:s.transitionDuration+"ms"}),a.start-=o.start,a.top-=o.top,elementorFrontend.config.is_rtl&&(a.start*=-1),setTimeout((function(){i.css("transform","translate3d("+a.start+"px, "+a.top+"px, 0)")}))}))})),setTimeout((function(){t.hideItems(d),n.css({transitionDuration:"",transform:"translate3d(0px, 0px, 0px)"}),t.handleEmptyColumns()}),s.transitionDuration)},activeFilterButton(e){var t=this.getSettings("classes.active"),s=this.elements.$filterButtons,n=s.filter('[data-filter="'+e+'"]');s.removeClass(t),n.addClass(t)},setFilter(e){this.activeFilterButton(e),this.filterItems(e),this.arrangeGrid()},refreshGrid(){this.setColsCountSettings(),this.arrangeGrid()},bindEvents(){i.default.prototype.bindEvents.apply(this,arguments),this.elements.$filterButtons.on("click",this.onFilterButtonClick)},isMasonryEnabled(){return!!this.getElementSettings("masonry")},run(){i.default.prototype.run.apply(this,arguments),this.setColsCountSettings(),this.setFilter("__all"),this.handleEmptyColumns()},onFilterButtonClick(e){this.setFilter(jQuery(e.currentTarget).data("filter"))},onWindowResize(){i.default.prototype.onWindowResize.apply(this,arguments),this.refreshGrid()},onElementChange(e){i.default.prototype.onElementChange.apply(this,arguments),"classic_item_ratio"===e&&this.refreshGrid()}});t.default=o},2926:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getSkinPrefix:()=>"classic_",bindEvents(){var e=this.getModelCID();elementorFrontend.addListenerOnce(e,"resize",this.onWindowResize)},getClosureMethodsNames(){return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this,arguments).concat(["fitImages","onWindowResize","runMasonry"])},getDefaultSettings:()=>({classes:{fitHeight:"elementor-fit-height",hasItemRatio:"elementor-has-item-ratio"},selectors:{postsContainer:".elementor-posts-container",post:".elementor-post",postThumbnail:".elementor-post__thumbnail",postThumbnailImage:".elementor-post__thumbnail img"}}),getDefaultElements(){var e=this.getSettings("selectors");return{$postsContainer:this.$element.find(e.postsContainer),$posts:this.$element.find(e.post)}},fitImage(e){var t=this.getSettings(),s=e.find(t.selectors.postThumbnail),n=s.find("img")[0];if(n){var i=s.outerHeight()/s.outerWidth(),o=n.naturalHeight/n.naturalWidth;s.toggleClass(t.classes.fitHeight,o<i)}},fitImages(){var e=jQuery,t=this,s=getComputedStyle(this.$element[0],":after").content,n=this.getSettings();this.elements.$postsContainer.toggleClass(n.classes.hasItemRatio,!!s.match(/\d/)),t.isMasonryEnabled()||this.elements.$posts.each((function(){var s=e(this),i=s.find(n.selectors.postThumbnailImage);t.fitImage(s),i.on("load",(function(){t.fitImage(s)}))}))},setColsCountSettings(){var e,t=elementorFrontend.getCurrentDeviceMode(),s=this.getElementSettings(),n=this.getSkinPrefix();switch(t){case"mobile":e=s[n+"columns_mobile"];break;case"tablet":e=s[n+"columns_tablet"];break;default:e=s[n+"columns"]}this.setSettings("colsCount",e)},isMasonryEnabled(){return!!this.getElementSettings(this.getSkinPrefix()+"masonry")},initMasonry(){imagesLoaded(this.elements.$posts,this.runMasonry)},runMasonry(){var e=this.elements;e.$posts.css({marginTop:"",transitionDuration:""}),this.setColsCountSettings();var t=this.getSettings("colsCount"),s=this.isMasonryEnabled()&&t>=2;if(e.$postsContainer.toggleClass("elementor-posts-masonry",s),s){var n=this.getElementSettings(this.getSkinPrefix()+"row_gap.size");""===this.getSkinPrefix()&&""===n&&(n=this.getElementSettings(this.getSkinPrefix()+"item_gap.size")),new elementorModules.utils.Masonry({container:e.$postsContainer,items:e.$posts.filter(":visible"),columnsCount:this.getSettings("colsCount"),verticalSpaceBetween:n}).run()}else e.$postsContainer.height("")},run(){setTimeout(this.fitImages,0),this.initMasonry()},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.bindEvents(),this.run()},onWindowResize(){this.fitImages(),this.runMasonry()},onElementChange(){this.fitImages(),setTimeout(this.runMasonry)}});t.default=s},7990:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9327));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("share-buttons",i.default)}}t.default=_default},9327:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({async onInit(){if(!this.isActive())return;elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments);const e=this.getElementSettings(),t=this.getSettings("classes"),s=e.share_url&&e.share_url.url,n={classPrefix:t.shareLinkPrefix};s?n.url=e.share_url.url:(n.url=location.href,n.title=elementorFrontend.config.post.title,n.text=elementorFrontend.config.post.excerpt,n.image=elementorFrontend.config.post.featuredImage),!window.ShareLink&&elementorFrontend.utils.assetsLoader&&await elementorFrontend.utils.assetsLoader.load("script","share-link"),this.elements.$shareButton.shareLink&&this.elements.$shareButton.shareLink(n)},getDefaultSettings:()=>({selectors:{shareButton:".elementor-share-btn"},classes:{shareLinkPrefix:"elementor-share-btn_"}}),getDefaultElements(){var e=this.getSettings("selectors");return{$shareButton:this.$element.find(e.shareButton)}},isActive:()=>!elementorFrontend.isEditMode()});t.default=s},5056:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(7956));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("slides",i.default)}}t.default=_default},7956:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class SlidesHandler extends elementorModules.frontend.handlers.SwiperBase{getDefaultSettings(){return{selectors:{slider:".elementor-slides-wrapper",slide:".swiper-slide",slideInnerContents:".swiper-slide-contents",activeSlide:".swiper-slide-active",activeDuplicate:".swiper-slide-duplicate-active"},classes:{animated:"animated",kenBurnsActive:"elementor-ken-burns--active",slideBackground:"swiper-slide-bg"},attributes:{dataSliderOptions:"slider_options",dataAnimation:"animation"}}}getDefaultElements(){const e=this.getSettings("selectors"),t={$swiperContainer:this.$element.find(e.slider)};return t.$slides=t.$swiperContainer.find(e.slide),t}getSwiperOptions(){const e=this.getElementSettings(),t={autoplay:this.getAutoplayConfig(),grabCursor:!0,initialSlide:this.getInitialSlide(),slidesPerView:1,slidesPerGroup:1,loop:"yes"===e.infinite,speed:e.transition_speed,effect:e.transition,observeParents:!0,observer:!0,handleElementorBreakpoints:!0,on:{slideChange:()=>{this.handleKenBurns()}}},s="arrows"===e.navigation||"both"===e.navigation,n="dots"===e.navigation||"both"===e.navigation;return s&&(t.navigation={prevEl:".elementor-swiper-button-prev",nextEl:".elementor-swiper-button-next"}),n&&(t.pagination={el:".swiper-pagination",type:"bullets",clickable:!0}),!0===t.loop&&(t.loopedSlides=this.getSlidesCount()),"fade"===t.effect&&(t.fadeEffect={crossFade:!0}),t}getAutoplayConfig(){const e=this.getElementSettings();return"yes"===e.autoplay&&{stopOnLastSlide:!0,delay:e.autoplay_speed,disableOnInteraction:"yes"===e.pause_on_interaction}}initSingleSlideAnimations(){const e=this.getSettings(),t=this.elements.$swiperContainer.data(e.attributes.dataAnimation);this.elements.$swiperContainer.find("."+e.classes.slideBackground).addClass(e.classes.kenBurnsActive),t&&this.elements.$swiperContainer.find(e.selectors.slideInnerContents).addClass(e.classes.animated+" "+t)}async initSlider(){const e=this.elements.$swiperContainer,t=this.getSettings(),s=this.getElementSettings(),n=e.data(t.attributes.dataAnimation);if(!e.length)return;if(1>=this.getSlidesCount())return;const i=elementorFrontend.utils.swiper;this.swiper=await new i(e,this.getSwiperOptions()),e.data("swiper",this.swiper),this.handleKenBurns(),s.pause_on_hover&&this.togglePauseOnHover(!0),n&&(this.swiper.on("slideChangeTransitionStart",(function(){e.find(t.selectors.slideInnerContents).removeClass(t.classes.animated+" "+n).hide()})),this.swiper.on("slideChangeTransitionEnd",(function(){e.find(t.selectors.slideInnerContents).show().addClass(t.classes.animated+" "+n)})))}onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),2>this.getSlidesCount()?this.initSingleSlideAnimations():this.initSlider()}getChangeableProperties(){return{pause_on_hover:"pauseOnHover",pause_on_interaction:"disableOnInteraction",autoplay_speed:"delay",transition_speed:"speed"}}updateSwiperOption(e){if(0===e.indexOf("width"))return void this.swiper.update();const t=this.getElementSettings(),s=t[e];let n=this.getChangeableProperties()[e],i=s;switch(e){case"autoplay_speed":n="autoplay",i={delay:s,disableOnInteraction:"yes"===t.pause_on_interaction};break;case"pause_on_hover":this.togglePauseOnHover("yes"===s);break;case"pause_on_interaction":i="yes"===s}"pause_on_hover"!==e&&(this.swiper.params[n]=i),this.swiper.update()}onElementChange(e){if(1>=this.getSlidesCount())return;this.getChangeableProperties().hasOwnProperty(e)&&this.updateSwiperOption(e)}onEditSettingsChange(e){1>=this.getSlidesCount()||"activeItemIndex"===e&&this.swiper.slideToLoop(this.getEditSettings("activeItemIndex")-1)}}t.default=SlidesHandler},2189:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(908));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("facebook-button",i.default),elementorFrontend.elementsHandler.attachHandler("facebook-comments",i.default),elementorFrontend.elementsHandler.attachHandler("facebook-embed",i.default),elementorFrontend.elementsHandler.attachHandler("facebook-page",i.default)}}t.default=_default},908:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class FacebookHandler extends elementorModules.frontend.handlers.Base{getConfig(){return elementorProFrontend.config.facebook_sdk}setConfig(e,t){elementorProFrontend.config.facebook_sdk[e]=t}parse(){FB.XFBML.parse(this.$element[0])}loadSDK(){const e=this.getConfig();e.isLoading||e.isLoaded||(this.setConfig("isLoading",!0),jQuery.ajax({url:"https://connect.facebook.net/"+e.lang+"/sdk.js",dataType:"script",cache:!0,success:()=>{FB.init({appId:e.app_id,version:"v2.10",xfbml:!1}),this.setConfig("isLoaded",!0),this.setConfig("isLoading",!1),elementorFrontend.elements.$document.trigger("fb:sdk:loaded")}}))}onInit(...e){super.onInit(...e),this.loadSDK();this.getConfig().isLoaded?this.parse():elementorFrontend.elements.$document.on("fb:sdk:loaded",(()=>this.parse()))}}t.default=FacebookHandler},4429:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(5791));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("table-of-contents",i.default)}}t.default=_default},5791:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class TOCHandler extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{widgetContainer:".elementor-widget-container",postContentContainer:'.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"])',expandButton:".elementor-toc__toggle-button--expand",collapseButton:".elementor-toc__toggle-button--collapse",body:".elementor-toc__body",headerTitle:".elementor-toc__header-title"},classes:{anchor:"elementor-menu-anchor",listWrapper:"elementor-toc__list-wrapper",listItem:"elementor-toc__list-item",listTextWrapper:"elementor-toc__list-item-text-wrapper",firstLevelListItem:"elementor-toc__top-level",listItemText:"elementor-toc__list-item-text",activeItem:"elementor-item-active",headingAnchor:"elementor-toc__heading-anchor",collapsed:"elementor-toc--collapsed"},listWrapperTag:"numbers"===this.getElementSettings().marker_view?"ol":"ul"}}getDefaultElements(){const e=this.getSettings();return{$pageContainer:this.getContainer(),$widgetContainer:this.$element.find(e.selectors.widgetContainer),$expandButton:this.$element.find(e.selectors.expandButton),$collapseButton:this.$element.find(e.selectors.collapseButton),$tocBody:this.$element.find(e.selectors.body),$listItems:this.$element.find("."+e.classes.listItem)}}getContainer(){const e=this.getSettings(),t=this.getElementSettings();if(t.container)return jQuery(t.container);const s=this.$element.parents(".elementor");return"popup"===s.attr("data-elementor-type")?s:jQuery(e.selectors.postContentContainer)}bindEvents(){const e=this.getElementSettings();e.minimize_box&&(this.elements.$expandButton.on("click",(()=>this.expandBox())),this.elements.$collapseButton.on("click",(()=>this.collapseBox()))),e.collapse_subitems&&this.elements.$listItems.on("hover",(e=>jQuery(e.target).slideToggle()))}getHeadings(){const e=this.getElementSettings(),t=e.headings_by_tags.join(","),s=this.getSettings("selectors"),n=e.exclude_headings_by_selector;return this.elements.$pageContainer.find(t).not(s.headerTitle).filter(((e,t)=>!jQuery(t).closest(n).length))}addAnchorsBeforeHeadings(){const e=this.getSettings("classes");this.elements.$headings.before((t=>{if(!jQuery(this.elements.$headings[t]).data("hasOwnID"))return`<span id="${e.headingAnchor}-${t}" class="${e.anchor} "></span>`}))}activateItem(e){const t=this.getSettings("classes");if(this.deactivateActiveItem(e),e.addClass(t.activeItem),this.$activeItem=e,!this.getElementSettings("collapse_subitems"))return;let s;s=e.hasClass(t.firstLevelListItem)?e.parent().next():e.parents("."+t.listWrapper).eq(-2),s.length?(this.$activeList=s,this.$activeList.stop().slideDown()):delete this.$activeList}deactivateActiveItem(e){if(!this.$activeItem||this.$activeItem.is(e))return;const{classes:t}=this.getSettings();this.$activeItem.removeClass(t.activeItem),!this.$activeList||e&&this.$activeList[0].contains(e[0])||this.$activeList.slideUp()}followAnchor(e,t){const s=e[0].hash;let n;try{n=jQuery(decodeURIComponent(s))}catch(e){return}elementorFrontend.waypoint(n,(s=>{if(this.itemClicked)return;const i=n.attr("id");"down"===s?(this.viewportItems[i]=!0,this.activateItem(e)):(delete this.viewportItems[i],this.activateItem(this.$listItemTexts.eq(t-1)))}),{offset:"bottom-in-view",triggerOnce:!1}),elementorFrontend.waypoint(n,(s=>{if(this.itemClicked)return;const i=n.attr("id");"down"===s?(delete this.viewportItems[i],Object.keys(this.viewportItems).length&&this.activateItem(this.$listItemTexts.eq(t+1))):(this.viewportItems[i]=!0,this.activateItem(e))}),{offset:0,triggerOnce:!1})}followAnchors(){this.$listItemTexts.each(((e,t)=>this.followAnchor(jQuery(t),e)))}populateTOC(){this.listItemPointer=0;this.getElementSettings().hierarchical_view?this.createNestedList():this.createFlatList(),this.$listItemTexts=this.$element.find(".elementor-toc__list-item-text"),this.$listItemTexts.on("click",this.onListItemClick.bind(this)),elementorFrontend.isEditMode()||this.followAnchors()}createNestedList(){this.headingsData.forEach(((e,t)=>{e.level=0;for(let s=t-1;s>=0;s--){const t=this.headingsData[s];if(t.tag<=e.tag){e.level=t.level,t.tag<e.tag&&e.level++;break}}})),this.elements.$tocBody.html(this.getNestedLevel(0))}createFlatList(){this.elements.$tocBody.html(this.getNestedLevel())}getNestedLevel(e){const t=this.getSettings(),s=this.getElementSettings(),n=this.getElementSettings("icon");let i;n&&(i=elementorFrontend.config.experimentalFeatures.e_font_icon_svg&&!elementorFrontend.isEditMode()?n.rendered_tag:`<i class="${n.value}"></i>`);let o=`<${t.listWrapperTag} class="${t.classes.listWrapper}">`;for(;this.listItemPointer<this.headingsData.length;){const r=this.headingsData[this.listItemPointer];let a=t.classes.listItemText;if(0===r.level&&(a+=" "+t.classes.firstLevelListItem),e>r.level)break;if(e===r.level){o+=`<li class="${t.classes.listItem}">`,o+=`<div class="${t.classes.listTextWrapper}">`;let l=`<a href="#${r.anchorLink}" class="${a}">${r.text}</a>`;"bullets"===s.marker_view&&n&&(l=`${i}${l}`),o+=l,o+="</div>",this.listItemPointer++;const d=this.headingsData[this.listItemPointer];d&&e<d.level&&(o+=this.getNestedLevel(d.level)),o+="</li>"}}return o+=`</${t.listWrapperTag}>`,o}handleNoHeadingsFound(){let e=elementorProFrontend.config.i18n.toc_no_headings_found;return elementorFrontend.isEditMode()&&(e=elementorPro.translate("toc_no_headings_found")),this.elements.$tocBody.html(e)}collapseOnInit(){const e=this.getElementSettings("minimized_on"),t=elementorFrontend.getCurrentDeviceMode();("tablet"===e&&"desktop"!==t||"mobile"===e&&"mobile"===t)&&this.collapseBox()}getHeadingAnchorLink(e,t){const s=this.elements.$headings[e].id,n=this.elements.$headings[e].closest(".elementor-widget").id;let i="";return s?i=s:n&&(i=n),s||n?jQuery(this.elements.$headings[e]).data("hasOwnID",!0):i=`${t.headingAnchor}-${e}`,i}setHeadingsData(){this.headingsData=[];const e=this.getSettings("classes");this.elements.$headings.each(((t,s)=>{const n=this.getHeadingAnchorLink(t,e);this.headingsData.push({tag:+s.nodeName.slice(1),text:s.textContent,anchorLink:n})}))}run(){if(this.elements.$headings=this.getHeadings(),!this.elements.$headings.length)return this.handleNoHeadingsFound();this.setHeadingsData(),elementorFrontend.isEditMode()||this.addAnchorsBeforeHeadings(),this.populateTOC(),this.getElementSettings("minimize_box")&&this.collapseOnInit()}expandBox(){const e=this.getCurrentDeviceSetting("min_height");this.$element.removeClass(this.getSettings("classes.collapsed")),this.elements.$tocBody.slideDown(),this.elements.$widgetContainer.css("min-height",e.size+e.unit)}collapseBox(){this.$element.addClass(this.getSettings("classes.collapsed")),this.elements.$tocBody.slideUp(),this.elements.$widgetContainer.css("min-height","0px")}onInit(...e){super.onInit(...e),this.viewportItems=[],jQuery((()=>this.run()))}onListItemClick(e){this.itemClicked=!0,setTimeout((()=>this.itemClicked=!1),2e3);const t=jQuery(e.target),s=t.parent().next(),n=this.getElementSettings("collapse_subitems");let i;n&&t.hasClass(this.getSettings("classes.firstLevelListItem"))&&s.is(":visible")&&(i=!0),this.activateItem(t),n&&i&&s.slideUp()}}t.default=TOCHandler},9940:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(3824)),o=n(s(7177)),r=n(s(2231));class _default extends elementorModules.Module{constructor(){super(),["archive_classic","archive_full_content","archive_cards"].forEach((e=>{elementorFrontend.elementsHandler.attachHandler("archive-posts",r.default,e)})),elementorFrontend.elementsHandler.attachHandler("archive-posts",i.default,"archive_classic"),elementorFrontend.elementsHandler.attachHandler("archive-posts",i.default,"archive_full_content"),elementorFrontend.elementsHandler.attachHandler("archive-posts",o.default,"archive_cards"),jQuery((function(){var e=location.search.match(/theme_template_id=(\d*)/),t=e?jQuery(".elementor-"+e[1]):[];t.length&&jQuery("html, body").animate({scrollTop:t.offset().top-window.innerHeight/2})}))}}t.default=_default},2231:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9738));class ArchivePostsLoadMore extends i.default{}t.default=ArchivePostsLoadMore},7177:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(8014)).default.extend({getSkinPrefix:()=>"archive_cards_"});t.default=i},3824:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(2926)).default.extend({getSkinPrefix:()=>"archive_classic_"});t.default=i},9874:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(188));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("search-form",i.default)}}t.default=_default},188:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{wrapper:".elementor-search-form",container:".elementor-search-form__container",icon:".elementor-search-form__icon",input:".elementor-search-form__input",toggle:".elementor-search-form__toggle",submit:".elementor-search-form__submit",closeButton:".dialog-close-button"},classes:{isFocus:"elementor-search-form--focus",isFullScreen:"elementor-search-form--full-screen",lightbox:"elementor-lightbox"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$wrapper=this.$element.find(e.wrapper),t.$container=this.$element.find(e.container),t.$input=this.$element.find(e.input),t.$icon=this.$element.find(e.icon),t.$toggle=this.$element.find(e.toggle),t.$submit=this.$element.find(e.submit),t.$closeButton=this.$element.find(e.closeButton),t},bindEvents(){var e=this,t=e.elements.$container,s=e.elements.$closeButton,n=e.elements.$input,i=e.elements.$wrapper,o=e.elements.$icon,r=this.getElementSettings("skin"),a=this.getSettings("classes");"full_screen"===r?(e.elements.$toggle.on("click",(function(){t.toggleClass(a.isFullScreen).toggleClass(a.lightbox),n.trigger("focus")})),t.on("click",(function(e){t.hasClass(a.isFullScreen)&&t[0]===e.target&&t.removeClass(a.isFullScreen).removeClass(a.lightbox)})),s.on("click",(function(){t.removeClass(a.isFullScreen).removeClass(a.lightbox)})),elementorFrontend.elements.$document.on("keyup",(function(e){27===e.keyCode&&t.hasClass(a.isFullScreen)&&t.trigger("click")}))):n.on({focus(){i.addClass(a.isFocus)},blur(){i.removeClass(a.isFocus)}}),"minimal"===r&&o.on("click",(function(){i.addClass(a.isFocus),n.trigger("focus")}))}});t.default=s},4269:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(9428)),o=n(s(9903)),r=n(s(3898)),a=n(s(4838));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("woocommerce-menu-cart",i.default),elementorFrontend.elementsHandler.attachHandler("woocommerce-checkout-page",o.default),elementorFrontend.elementsHandler.attachHandler("woocommerce-cart",r.default),elementorFrontend.elementsHandler.attachHandler("woocommerce-my-account",a.default)}}t.default=_default},427:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class Base extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{stickyRightColumn:".e-sticky-right-column"},classes:{stickyRightColumnActive:"e-sticky-right-column--active"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$stickyRightColumn:this.$element.find(e.stickyRightColumn)}}bindEvents(){elementorFrontend.elements.$document.on("select2:open",(e=>{this.addSelect2Wrapper(e)}))}addSelect2Wrapper(e){const t=jQuery(e.target).data("select2");t.$dropdown&&t.$dropdown.addClass("e-woo-select2-wrapper")}isStickyRightColumnActive(){const e=this.getSettings("classes");return this.elements.$stickyRightColumn.hasClass(e.stickyRightColumnActive)}activateStickyRightColumn(){const e=this.getElementSettings(),t=elementorFrontend.elements.$wpAdminBar,s=this.getSettings("classes");let n=e.sticky_right_column_offset||0;t.length&&"fixed"===t.css("position")&&(n+=t.height()),"yes"===this.getElementSettings("sticky_right_column")&&(this.elements.$stickyRightColumn.addClass(s.stickyRightColumnActive),this.elements.$stickyRightColumn.css("top",n+"px"))}deactivateStickyRightColumn(){if(!this.isStickyRightColumnActive())return;const e=this.getSettings("classes");this.elements.$stickyRightColumn.removeClass(e.stickyRightColumnActive)}toggleStickyRightColumn(){this.getElementSettings("sticky_right_column")?this.isStickyRightColumnActive()||this.activateStickyRightColumn():this.deactivateStickyRightColumn()}equalizeElementHeight(e){if(e.length){e.removeAttr("style");let t=0;e.each(((e,s)=>{t=Math.max(t,s.offsetHeight)})),0<t&&e.css({height:t+"px"})}}}t.default=Base},3898:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(427));class Cart extends i.default{getDefaultSettings(...e){const t=super.getDefaultSettings(...e);return{selectors:{...t.selectors,shippingForm:".shipping-calculator-form",quantityInput:".qty",updateCartButton:"button[name=update_cart]",wpHttpRefererInputs:"[name=_wp_http_referer]",hiddenInput:"input[type=hidden]",productRemove:".product-remove a"},classes:t.classes,ajaxUrl:elementorProFrontend.config.ajaxurl}}getDefaultElements(...e){const t=this.getSettings("selectors");return{...super.getDefaultElements(...e),$shippingForm:this.$element.find(t.shippingForm),$stickyColumn:this.$element.find(t.stickyColumn),$hiddenInput:this.$element.find(t.hiddenInput)}}bindEvents(){super.bindEvents();const e=this.getSettings("selectors");elementorFrontend.elements.$body.on("wc_fragments_refreshed",(()=>this.applyButtonsHoverAnimation())),"yes"===this.getElementSettings("update_cart_automatically")&&this.$element.on("click",e.quantityInput,(()=>this.updateCart())),(elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode())&&elementorFrontend.elements.$body.on("wc_fragments_loaded wc_fragments_refreshed",(()=>{this.modifyWpHttpReferer(),this.disableActions()}))}onInit(...e){super.onInit(...e),this.toggleStickyRightColumn(),this.hideHiddenInputsParentElements(),elementorFrontend.isEditMode()&&this.elements.$shippingForm.show(),this.applyButtonsHoverAnimation(),(elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode())&&(this.modifyWpHttpReferer(),this.disableActions())}disableActions(){const e=this.getSettings("selectors");this.$element.find(e.updateCartButton).attr({disabled:"disabled","aria-disabled":"true"}),elementorFrontend.isEditMode()&&(this.$element.find(e.quantityInput).attr("disabled","disabled"),this.$element.find(e.productRemove).css("pointer-events","none"))}onElementChange(e){"sticky_right_column"===e&&this.toggleStickyRightColumn()}onDestroy(...e){super.onDestroy(...e),this.deactivateStickyRightColumn()}updateCart(){const e=this.getSettings("selectors");clearTimeout(this._debounce),this._debounce=setTimeout((()=>{this.$element.find(e.updateCartButton).trigger("click")}),600)}applyButtonsHoverAnimation(){const e=this.getElementSettings();e.checkout_button_hover_animation&&jQuery(".checkout-button").addClass("elementor-animation-"+e.checkout_button_hover_animation),e.forms_buttons_hover_animation&&jQuery(".shop_table .button").addClass("elementor-animation-"+e.forms_buttons_hover_animation)}hideHiddenInputsParentElements(){this.isEdit&&this.elements.$hiddenInput&&this.elements.$hiddenInput.parent(".form-row").addClass("elementor-hidden")}modifyWpHttpReferer(){const e=this.getSettings("selectors");elementorFrontend.isEditMode()&&this.$element.find(e.wpHttpRefererInputs).attr("value",elementor.documents.getCurrent().config.urls.wp_preview)}}t.default=Cart},9903:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(427));class Checkout extends i.default{getDefaultSettings(...e){const t=super.getDefaultSettings(...e);return{selectors:{...t.selectors,container:".elementor-widget-woocommerce-checkout-page",loginForm:".e-woocommerce-login-anchor",loginSubmit:".e-woocommerce-form-login-submit",loginSection:".e-woocommerce-login-section",showCouponForm:".e-show-coupon-form",couponSection:".e-coupon-anchor",showLoginForm:".e-show-login",applyCoupon:".e-apply-coupon",checkoutForm:"form.woocommerce-checkout",couponBox:".e-coupon-box",address:"address",wpHttpRefererInputs:'[name="_wp_http_referer"]'},classes:t.classes,ajaxUrl:elementorProFrontend.config.ajaxurl}}getDefaultElements(...e){const t=this.getSettings("selectors");return{...super.getDefaultElements(...e),$container:this.$element.find(t.container),$loginForm:this.$element.find(t.loginForm),$showCouponForm:this.$element.find(t.showCouponForm),$couponSection:this.$element.find(t.couponSection),$showLoginForm:this.$element.find(t.showLoginForm),$applyCoupon:this.$element.find(t.applyCoupon),$loginSubmit:this.$element.find(t.loginSubmit),$couponBox:this.$element.find(t.couponBox),$checkoutForm:this.$element.find(t.checkoutForm),$loginSection:this.$element.find(t.loginSection),$address:this.$element.find(t.address)}}bindEvents(...e){super.bindEvents(...e),this.elements.$showCouponForm.on("click",(e=>{e.preventDefault(),this.elements.$couponSection.slideToggle()})),this.elements.$showLoginForm.on("click",(e=>{e.preventDefault(),this.elements.$loginForm.slideToggle()})),this.elements.$applyCoupon.on("click",(e=>{e.preventDefault(),this.applyCoupon()})),this.elements.$loginSubmit.on("click",(e=>{e.preventDefault(),this.loginUser()})),elementorFrontend.elements.$body.on("updated_checkout",(()=>{this.applyPurchaseButtonHoverAnimation(),this.updateWpReferers()}))}onInit(...e){super.onInit(...e),this.toggleStickyRightColumn(),this.updateWpReferers(),this.equalizeElementHeight(this.elements.$address),elementorFrontend.isEditMode()&&(this.elements.$loginForm.show(),this.elements.$couponSection.show(),this.applyPurchaseButtonHoverAnimation())}onElementChange(e){"sticky_right_column"===e&&this.toggleStickyRightColumn()}onDestroy(...e){super.onDestroy(...e),this.deactivateStickyRightColumn()}applyPurchaseButtonHoverAnimation(){const e=this.getElementSettings("purchase_button_hover_animation");e&&jQuery("#place_order").addClass("elementor-animation-"+e)}applyCoupon(){if(!wc_checkout_params)return;this.startProcessing(this.elements.$couponBox);const e={security:wc_checkout_params.apply_coupon_nonce,coupon_code:this.elements.$couponBox.find('input[name="coupon_code"]').val()};jQuery.ajax({type:"POST",url:wc_checkout_params.wc_ajax_url.toString().replace("%%endpoint%%","apply_coupon"),context:this,data:e,success(t){jQuery(".woocommerce-error, .woocommerce-message").remove(),this.elements.$couponBox.removeClass("processing").unblock(),t&&(this.elements.$checkoutForm.before(t),this.elements.$couponSection.slideUp(),elementorFrontend.elements.$body.trigger("applied_coupon_in_checkout",[e.coupon_code]),elementorFrontend.elements.$body.trigger("update_checkout",{update_shipping_method:!1}))},dataType:"html"})}loginUser(){this.startProcessing(this.elements.$loginSection);const e={action:"elementor_woocommerce_checkout_login_user",username:this.elements.$loginSection.find('input[name="username"]').val(),password:this.elements.$loginSection.find('input[name="password"]').val(),nonce:this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(),remember:this.elements.$loginSection.find("input#rememberme").prop("checked")};jQuery.ajax({type:"POST",url:this.getSettings("ajaxUrl"),context:this,data:e,success(e){e=JSON.parse(e),this.elements.$loginSection.removeClass("processing").unblock();jQuery(".woocommerce-error, .woocommerce-message").remove(),e.logged_in?location.reload():this.elements.$checkoutForm.before(e.message)}})}startProcessing(e){e.is(".processing")||e.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})}updateWpReferers(){const e=this.getSettings("selectors"),t=this.$element.find(e.wpHttpRefererInputs),s=new URL(document.location);s.searchParams.set("elementorPostId",elementorFrontend.config.post.id),s.searchParams.set("elementorWidgetId",this.getID()),t.attr("value",s)}}t.default=Checkout},9428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{container:".elementor-menu-cart__container",main:".elementor-menu-cart__main",toggle:".elementor-menu-cart__toggle",toggleButton:"#elementor-menu-cart__toggle_button",toggleWrapper:".elementor-menu-cart__toggle_wrapper",closeButton:".elementor-menu-cart__close-button"},classes:{isShown:"elementor-menu-cart--shown"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$container:this.$element.find(e.container),$main:this.$element.find(e.main),$toggleWrapper:this.$element.find(e.toggleWrapper),$closeButton:this.$element.find(e.closeButton)}}toggleCart(){this.isCartOpen?this.hideCart():this.showCart()}showCart(){if(this.isCartOpen)return;const e=this.getSettings("classes"),t=this.getSettings("selectors");this.isCartOpen=!0,this.$element.addClass(e.isShown),this.$element.find(t.toggleButton).attr("aria-expanded",!0),this.elements.$main.attr("aria-hidden",!1),this.elements.$container.attr("aria-hidden",!1)}hideCart(){if(!this.isCartOpen)return;const e=this.getSettings("classes"),t=this.getSettings("selectors");this.isCartOpen=!1,this.$element.removeClass(e.isShown),this.$element.find(t.toggleButton).attr("aria-expanded",!1),this.elements.$main.attr("aria-hidden",!0),this.elements.$container.attr("aria-hidden",!0)}automaticallyOpenCart(){"yes"===this.getElementSettings().automatically_open_cart&&this.showCart()}bindEvents(){const e=elementorProFrontend.config.menu_cart,t=-1===e.cart_page_url.indexOf("?")?window.location.origin+window.location.pathname:window.location.href,s=e.cart_page_url,n=e.cart_page_url===t,i=e.checkout_page_url===t,o=this.getSettings("selectors"),r=this.getElementSettings(),a=this.getSettings("classes");n&&i?this.$element.find(o.toggleButton).attr("href",s):(this.isCartOpen=this.$element.hasClass(a.isShown),"mouseover"===r.open_cart?(this.elements.$toggleWrapper.on("mouseover click",o.toggleButton,(e=>{e.preventDefault(),this.showCart()})),this.elements.$toggleWrapper.on("mouseleave",(()=>this.hideCart()))):this.elements.$toggleWrapper.on("click",o.toggleButton,(e=>{e.preventDefault(),this.toggleCart()})),elementorFrontend.elements.$document.on("click",(e=>{if(!this.isCartOpen)return;const t=jQuery(e.target);t.closest(this.elements.$main).length||t.closest(o.toggle).length||this.hideCart()})),this.elements.$closeButton.on("click",(e=>{e.preventDefault(),this.hideCart()})),elementorFrontend.elements.$document.on("keyup",(e=>{27===e.keyCode&&this.hideCart()})),elementorFrontend.elements.$body.on("added_to_cart",(()=>this.automaticallyOpenCart())))}}t.default=_default},4838:(e,t,s)=>{"use strict";var n=s(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(s(427));class MyAccountHandler extends i.default{getDefaultSettings(){return{selectors:{address:"address",tabLinks:".woocommerce-MyAccount-navigation-link a",viewOrderButtons:".my_account_orders .woocommerce-button.view",viewOrderLinks:".woocommerce-orders-table__cell-order-number a",authForms:"form.login, form.register",tabWrapper:".e-my-account-tab",tabItem:".woocommerce-MyAccount-navigation li",allPageElements:"[e-my-account-page]",purchasenote:"tr.product-purchase-note"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$address:this.$element.find(e.address),$tabLinks:this.$element.find(e.tabLinks),$viewOrderButtons:this.$element.find(e.viewOrderButtons),$viewOrderLinks:this.$element.find(e.viewOrderLinks),$authForms:this.$element.find(e.authForms),$tabWrapper:this.$element.find(e.tabWrapper),$tabItem:this.$element.find(e.tabItem),$allPageElements:this.$element.find(e.allPageElements),$purchasenote:this.$element.find(e.purchasenote)}}editorInitTabs(){this.elements.$allPageElements.each(((e,t)=>{const s=t.getAttribute("e-my-account-page");let n;switch(s){case"view-order":n=this.elements.$viewOrderLinks.add(this.elements.$viewOrderButtons);break;default:n=this.$element.find(".woocommerce-MyAccount-navigation-link--"+s)}n.on("click",(()=>{this.currentPage=s,this.editorShowTab()}))}))}editorShowTab(){const e=this.$element.find('[e-my-account-page="'+this.currentPage+'"]');this.$element.attr("e-my-account-page",this.currentPage),this.elements.$allPageElements.hide(),e.show(),this.toggleEndpointClasses(),"view-order"!==this.currentPage&&(this.elements.$tabItem.removeClass("is-active"),this.$element.find(".woocommerce-MyAccount-navigation-link--"+this.currentPage).addClass("is-active")),"edit-address"!==this.currentPage&&"view-order"!==this.currentPage||this.equalizeElementHeights()}toggleEndpointClasses(){const e=["dashboard","orders","view-order","downloads","edit-account","edit-address","payment-methods"];this.elements.$tabWrapper.removeClass("e-my-account-tab__"+e.join(" e-my-account-tab__")),e.includes(this.currentPage)&&this.elements.$tabWrapper.addClass("e-my-account-tab__"+this.currentPage)}applyButtonsHoverAnimation(){const e=this.getElementSettings();e.forms_buttons_hover_animation&&this.$element.find(".woocommerce button.button").addClass("elementor-animation-"+e.forms_buttons_hover_animation),e.tables_button_hover_animation&&this.$element.find(".order-again .button, td .button, .woocommerce-pagination .button").addClass("elementor-animation-"+e.tables_button_hover_animation)}equalizeElementHeights(){this.equalizeElementHeight(this.elements.$address),this.isEdit||this.equalizeElementHeight(this.elements.$authForms)}removePaddingBetweenPurchaseNote(){this.elements.$purchasenote&&this.elements.$purchasenote.each(((e,t)=>{jQuery(t).prev().children("td").addClass("product-purchase-note-is-below")}))}onElementChange(e){0!==e.indexOf("general_text_typography")&&0!==e.indexOf("sections_padding")||this.equalizeElementHeights(),0===e.indexOf("forms_rows_gap")&&this.removePaddingBetweenPurchaseNote()}bindEvents(){super.bindEvents(),elementorFrontend.elements.$body.on("keyup change",".register #reg_password",(()=>{this.equalizeElementHeights()}))}onInit(...e){super.onInit(...e),this.isEdit&&(this.editorInitTabs(),this.$element.attr("e-my-account-page")?this.currentPage=this.$element.attr("e-my-account-page"):this.currentPage="dashboard",this.editorShowTab()),this.applyButtonsHoverAnimation(),this.equalizeElementHeights(),this.removePaddingBetweenPurchaseNote()}}t.default=MyAccountHandler}},e=>{"use strict";e.O(0,[819],(()=>{return t=6070,e(e.s=t);var t}));e.O()}]);PK!?Q�/[a[a&assets/js/form-submission-admin.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var e,t,r,n,o={75453:(e,t,r)=>{e.exports=r(7421)},59396:(e,t,r)=>{e.exports=r(70157)},49288:(e,t,r)=>{e.exports=r(55966)},15149:(e,t,r)=>{e.exports=r(66458)},38401:(e,t,r)=>{e.exports=r(14710)},92937:(e,t,r)=>{e.exports=r(23022)},67394:(e,t,r)=>{e.exports=r(43153)},38923:(e,t,r)=>{e.exports=r(8531)},23587:(e,t,r)=>{e.exports=r(32622)},63774:(e,t,r)=>{e.exports=r(27410)},95315:(e,t,r)=>{e.exports=r(19035)},82055:(e,t,r)=>{e.exports=r(58535)},83452:(e,t,r)=>{e.exports=r(97220)},28274:(e,t,r)=>{e.exports=r(65135)},35657:(e,t,r)=>{e.exports=r(69591)},73220:(e,t,r)=>{e.exports=r(76483)},75499:(e,t,r)=>{e.exports=r(43094)},41281:(e,t,r)=>{e.exports=r(19103)},50093:(e,t,r)=>{e.exports=r(39871)},93168:(e,t,r)=>{e.exports=r(89999)},72292:e=>{e.exports=function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n},e.exports.default=e.exports,e.exports.__esModule=!0},86870:(e,t,r)=>{var n=r(59396);e.exports=function _arrayWithHoles(e){if(n(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},35693:(e,t,r)=>{var n=r(59396),o=r(72292);e.exports=function _arrayWithoutHoles(e){if(n(e))return o(e)},e.exports.default=e.exports,e.exports.__esModule=!0},38852:e=>{e.exports=function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},11959:e=>{e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},39041:(e,t,r)=>{var n=r(67394);function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),n(e,o.key,o)}}e.exports=function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},68537:(e,t,r)=>{var n=r(75499),o=r(44263),a=r(898),u=r(59771);e.exports=function _createSuper(e){var t=a();return function _createSuperInternal(){var r,a=o(e);if(t){var i=o(this).constructor;r=n(a,arguments,i)}else r=a.apply(this,arguments);return u(this,r)}},e.exports.default=e.exports,e.exports.__esModule=!0},18042:(e,t,r)=>{var n=r(67394);e.exports=function _defineProperty(e,t,r){return t in e?n(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.default=e.exports,e.exports.__esModule=!0},37959:(e,t,r)=>{var n=r(15149);function _extends(){return e.exports=_extends=n||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,_extends.apply(this,arguments)}e.exports=_extends,e.exports.default=e.exports,e.exports.__esModule=!0},44263:(e,t,r)=>{var n=r(28274),o=r(82055);function _getPrototypeOf(t){return e.exports=_getPrototypeOf=n?o:function _getPrototypeOf(e){return e.__proto__||o(e)},e.exports.default=e.exports,e.exports.__esModule=!0,_getPrototypeOf(t)}e.exports=_getPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},77371:(e,t,r)=>{var n=r(38401),o=r(76870);e.exports=function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=n(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},67971:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},52369:(e,t,r)=>{var n=r(24596).default,o=r(93168),a=r(67394),u=r(23587);function _getRequireWildcardCache(e){if("function"!=typeof o)return null;var t=new o,r=new o;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}e.exports=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var r=_getRequireWildcardCache(t);if(r&&r.has(e))return r.get(e);var o={},i=a&&u;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var s=i?u(e,l):null;s&&(s.get||s.set)?a(o,l,s):o[l]=e[l]}return o.default=e,r&&r.set(e,o),o},e.exports.default=e.exports,e.exports.__esModule=!0},898:(e,t,r)=>{var n=r(75499);e.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!n)return!1;if(n.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(n(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},95915:(e,t,r)=>{var n=r(41281),o=r(50093),a=r(75453);e.exports=function _iterableToArray(e){if(void 0!==n&&null!=e[o]||null!=e["@@iterator"])return a(e)},e.exports.default=e.exports,e.exports.__esModule=!0},79968:(e,t,r)=>{var n=r(41281),o=r(50093);e.exports=function _iterableToArrayLimit(e,t){var r=e&&(void 0!==n&&e[o]||e["@@iterator"]);if(null!=r){var a,u,i=[],l=!0,s=!1;try{for(r=r.call(e);!(l=(a=r.next()).done)&&(i.push(a.value),!t||i.length!==t);l=!0);}catch(e){s=!0,u=e}finally{try{l||null==r.return||r.return()}finally{if(s)throw u}}return i}},e.exports.default=e.exports,e.exports.__esModule=!0},39198:e=>{e.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},84360:e=>{e.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},84899:(e,t,r)=>{var n=r(83452),o=r(95315),a=r(23587),u=r(63774),i=r(92937),l=r(67394),s=r(18042);function ownKeys(e,t){var r=n(e);if(o){var u=o(e);t&&(u=u.filter((function(t){return a(e,t).enumerable}))),r.push.apply(r,u)}return r}e.exports=function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){s(e,t,r[t])})):u?i(e,u(r)):ownKeys(Object(r)).forEach((function(t){l(e,t,a(r,t))}))}return e},e.exports.default=e.exports,e.exports.__esModule=!0},59771:(e,t,r)=>{var n=r(24596).default,o=r(38852);e.exports=function _possibleConstructorReturn(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?o(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},76870:(e,t,r)=>{var n=r(28274);function _setPrototypeOf(t,r){return e.exports=_setPrototypeOf=n||function _setPrototypeOf(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,_setPrototypeOf(t,r)}e.exports=_setPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},47834:(e,t,r)=>{var n=r(86870),o=r(79968),a=r(24594),u=r(39198);e.exports=function _slicedToArray(e,t){return n(e)||o(e,t)||a(e,t)||u()},e.exports.default=e.exports,e.exports.__esModule=!0},74846:(e,t,r)=>{var n=r(35693),o=r(95915),a=r(24594),u=r(84360);e.exports=function _toConsumableArray(e){return n(e)||o(e)||a(e)||u()},e.exports.default=e.exports,e.exports.__esModule=!0},24596:(e,t,r)=>{var n=r(41281),o=r(50093);function _typeof(t){return"function"==typeof n&&"symbol"==typeof o?(e.exports=_typeof=function _typeof(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_typeof=function _typeof(e){return e&&"function"==typeof n&&e.constructor===n&&e!==n.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),_typeof(t)}e.exports=_typeof,e.exports.default=e.exports,e.exports.__esModule=!0},24594:(e,t,r)=>{var n=r(75453),o=r(72292);e.exports=function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?n(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},50927:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Link:()=>Q,Location:()=>N,LocationProvider:()=>j,Match:()=>J,Redirect:()=>Y,Router:()=>I,ServerLocation:()=>L,createHistory:()=>S,createMemorySource:()=>C,globalHistory:()=>T,isRedirect:()=>X,matchPath:()=>f,navigate:()=>O,redirectTo:()=>z,useLocation:()=>Z,useMatch:()=>re,useNavigate:()=>ee,useParams:()=>te});var n=r(63804),o=r.n(n),a=(r(23615),r(3996)),u=r.n(a),i=r(68189),l=r.n(i);function componentWillMount(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function componentWillReceiveProps(e){this.setState(function updater(t){var r=this.constructor.getDerivedStateFromProps(e,t);return null!=r?r:null}.bind(this))}function componentWillUpdate(e,t){try{var r=this.props,n=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(r,n)}finally{this.props=r,this.state=n}}componentWillMount.__suppressDeprecationWarning=!0,componentWillReceiveProps.__suppressDeprecationWarning=!0,componentWillUpdate.__suppressDeprecationWarning=!0;var s=function startsWith(e,t){return e.substr(0,t.length)===t},c=function pick(e,t){for(var r=void 0,n=void 0,o=t.split("?")[0],a=_(o),i=""===a[0],l=g(e),s=0,c=l.length;s<c;s++){var f=!1,d=l[s].route;if(d.default)n={route:d,params:{},uri:t};else{for(var p=_(d.path),m={},y=Math.max(a.length,p.length),b=0;b<y;b++){var E=p[b],w=a[b];if(h(E)){m[E.slice(1)||"*"]=a.slice(b).map(decodeURIComponent).join("/");break}if(void 0===w){f=!0;break}var S=v.exec(E);if(S&&!i){-1===x.indexOf(S[1])||u()(!1);var C=decodeURIComponent(w);m[S[1]]=C}else if(E!==w){f=!0;break}}if(!f){r={route:d,params:m,uri:"/"+a.slice(0,b).join("/")};break}}}return r||n||null},f=function match(e,t){return c([{path:e}],t)},d=function resolve(e,t){if(s(e,"/"))return e;var r=e.split("?"),n=r[0],o=r[1],a=t.split("?")[0],u=_(n),i=_(a);if(""===u[0])return b(a,o);if(!s(u[0],".")){var l=i.concat(u).join("/");return b(("/"===a?"":"/")+l,o)}for(var c=i.concat(u),f=[],d=0,p=c.length;d<p;d++){var v=c[d];".."===v?f.pop():"."!==v&&f.push(v)}return b("/"+f.join("/"),o)},p=function insertParams(e,t){var r=e.split("?"),n=r[0],o=r[1],a=void 0===o?"":o,u="/"+_(n).map((function(e){var r=v.exec(e);return r?t[r[1]]:e})).join("/"),i=t.location,l=(i=void 0===i?{}:i).search,s=(void 0===l?"":l).split("?")[1]||"";return u=b(u,a,s)},v=/^:(.+)/,m=function isDynamic(e){return v.test(e)},h=function isSplat(e){return e&&"*"===e[0]},y=function rankRoute(e,t){return{route:e,score:e.default?0:_(e.path).reduce((function(e,t){return e+=4,!function isRootSegment(e){return""===e}(t)?m(t)?e+=2:h(t)?e-=5:e+=3:e+=1,e}),0),index:t}},g=function rankRoutes(e){return e.map(y).sort((function(e,t){return e.score<t.score?1:e.score>t.score?-1:e.index-t.index}))},_=function segmentize(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},b=function addQuery(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return e+((r=r.filter((function(e){return e&&e.length>0})))&&r.length>0?"?"+r.join("&"):"")},x=["uri","path"],E=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},w=function getLocation(e){var t=e.location,r=t.search,n=t.hash,o=t.href,a=t.origin,u=t.protocol,i=t.host,l=t.hostname,s=t.port,c=e.location.pathname;!c&&o&&P&&(c=new URL(o).pathname);return{pathname:encodeURI(decodeURI(c)),search:r,hash:n,href:o,origin:a,protocol:u,host:i,hostname:l,port:s,state:e.history.state,key:e.history.state&&e.history.state.key||"initial"}},S=function createHistory(e,t){var r=[],n=w(e),o=!1,a=function resolveTransition(){};return{get location(){return n},get transitioning(){return o},_onTransitionComplete:function _onTransitionComplete(){o=!1,a()},listen:function listen(t){r.push(t);var o=function popstateListener(){n=w(e),t({location:n,action:"POP"})};return e.addEventListener("popstate",o),function(){e.removeEventListener("popstate",o),r=r.filter((function(e){return e!==t}))}},navigate:function navigate(t){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=u.state,l=u.replace,s=void 0!==l&&l;if("number"==typeof t)e.history.go(t);else{i=E({},i,{key:Date.now()+""});try{o||s?e.history.replaceState(i,null,t):e.history.pushState(i,null,t)}catch(r){e.location[s?"replace":"assign"](t)}}n=w(e),o=!0;var c=new Promise((function(e){return a=e}));return r.forEach((function(e){return e({location:n,action:"PUSH"})})),c}}},C=function createMemorySource(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.indexOf("?"),r={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):""},n=0,o=[r],a=[null];return{get location(){return o[n]},addEventListener:function addEventListener(e,t){},removeEventListener:function removeEventListener(e,t){},history:{get entries(){return o},get index(){return n},get state(){return a[n]},pushState:function pushState(e,t,r){var u=r.split("?"),i=u[0],l=u[1],s=void 0===l?"":l;n++,o.push({pathname:i,search:s.length?"?"+s:s}),a.push(e)},replaceState:function replaceState(e,t,r){var u=r.split("?"),i=u[0],l=u[1],s=void 0===l?"":l;o[n]={pathname:i,search:s},a[n]=e},go:function go(e){var t=n+e;t<0||t>a.length-1||(n=t)}}}},P=!("undefined"==typeof window||!window.document||!window.document.createElement),T=S(function getSource(){return P?window:C()}()),O=T.navigate,R=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};function _objectWithoutProperties(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var M=function createNamedContext(e,t){var r=l()(t);return r.displayName=e,r},A=M("Location"),N=function Location(e){var t=e.children;return o().createElement(A.Consumer,null,(function(e){return e?t(e):o().createElement(j,null,t)}))},j=function(e){function LocationProvider(){var t,r;_classCallCheck(this,LocationProvider);for(var n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];return t=r=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),r.state={context:r.getContext(),refs:{unlisten:null}},_possibleConstructorReturn(r,t)}return _inherits(LocationProvider,e),LocationProvider.prototype.getContext=function getContext(){var e=this.props.history;return{navigate:e.navigate,location:e.location}},LocationProvider.prototype.componentDidCatch=function componentDidCatch(e,t){if(!X(e))throw e;(0,this.props.history.navigate)(e.uri,{replace:!0})},LocationProvider.prototype.componentDidUpdate=function componentDidUpdate(e,t){t.context.location!==this.state.context.location&&this.props.history._onTransitionComplete()},LocationProvider.prototype.componentDidMount=function componentDidMount(){var e=this,t=this.state.refs,r=this.props.history;r._onTransitionComplete(),t.unlisten=r.listen((function(){Promise.resolve().then((function(){requestAnimationFrame((function(){e.unmounted||e.setState((function(){return{context:e.getContext()}}))}))}))}))},LocationProvider.prototype.componentWillUnmount=function componentWillUnmount(){var e=this.state.refs;this.unmounted=!0,e.unlisten()},LocationProvider.prototype.render=function render(){var e=this.state.context,t=this.props.children;return o().createElement(A.Provider,{value:e},"function"==typeof t?t(e):t||null)},LocationProvider}(o().Component);j.defaultProps={history:T};var L=function ServerLocation(e){var t=e.url,r=e.children,n=t.indexOf("?"),a=void 0,u="";return n>-1?(a=t.substring(0,n),u=t.substring(n)):a=t,o().createElement(A.Provider,{value:{location:{pathname:a,search:u,hash:""},navigate:function navigate(){throw new Error("You can't call navigate on the server.")}}},r)},D=M("Base",{baseuri:"/",basepath:"/"}),I=function Router(e){return o().createElement(D.Consumer,null,(function(t){return o().createElement(N,null,(function(r){return o().createElement(q,R({},t,r,e))}))}))},q=function(e){function RouterImpl(){return _classCallCheck(this,RouterImpl),_possibleConstructorReturn(this,e.apply(this,arguments))}return _inherits(RouterImpl,e),RouterImpl.prototype.render=function render(){var e=this.props,t=e.location,r=e.navigate,n=e.basepath,a=e.primary,u=e.children,i=(e.baseuri,e.component),l=void 0===i?"div":i,s=_objectWithoutProperties(e,["location","navigate","basepath","primary","children","baseuri","component"]),f=o().Children.toArray(u).reduce((function(e,t){var r=oe(n)(t);return e.concat(r)}),[]),p=t.pathname,v=c(f,p);if(v){var m=v.params,h=v.uri,y=v.route,g=v.route.value;n=y.default?n:y.path.replace(/\*$/,"");var _=R({},m,{uri:h,location:t,navigate:function navigate(e,t){return r(d(e,h),t)}}),b=o().cloneElement(g,_,g.props.children?o().createElement(I,{location:t,primary:a},g.props.children):void 0),x=a?W:l,E=a?R({uri:h,location:t,component:l},s):s;return o().createElement(D.Provider,{value:{baseuri:h,basepath:n}},o().createElement(x,E,b))}return null},RouterImpl}(o().PureComponent);q.defaultProps={primary:!0};var U=M("Focus"),W=function FocusHandler(e){var t=e.uri,r=e.location,n=e.component,a=_objectWithoutProperties(e,["uri","location","component"]);return o().createElement(U.Consumer,null,(function(e){return o().createElement(H,R({},a,{component:n,requestFocus:e,uri:t,location:r}))}))},B=!0,G=0,H=function(e){function FocusHandlerImpl(){var t,r;_classCallCheck(this,FocusHandlerImpl);for(var n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];return t=r=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),r.state={},r.requestFocus=function(e){!r.state.shouldFocus&&e&&e.focus()},_possibleConstructorReturn(r,t)}return _inherits(FocusHandlerImpl,e),FocusHandlerImpl.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){if(null==t.uri)return R({shouldFocus:!0},e);var r=e.uri!==t.uri,n=t.location.pathname!==e.location.pathname&&e.location.pathname===e.uri;return R({shouldFocus:r||n},e)},FocusHandlerImpl.prototype.componentDidMount=function componentDidMount(){G++,this.focus()},FocusHandlerImpl.prototype.componentWillUnmount=function componentWillUnmount(){0===--G&&(B=!0)},FocusHandlerImpl.prototype.componentDidUpdate=function componentDidUpdate(e,t){e.location!==this.props.location&&this.state.shouldFocus&&this.focus()},FocusHandlerImpl.prototype.focus=function focus(){var e=this.props.requestFocus;e?e(this.node):B?B=!1:this.node&&(this.node.contains(document.activeElement)||this.node.focus())},FocusHandlerImpl.prototype.render=function render(){var e=this,t=this.props,r=(t.children,t.style),n=(t.requestFocus,t.component),a=void 0===n?"div":n,u=(t.uri,t.location,_objectWithoutProperties(t,["children","style","requestFocus","component","uri","location"]));return o().createElement(a,R({style:R({outline:"none"},r),tabIndex:"-1",ref:function ref(t){return e.node=t}},u),o().createElement(U.Provider,{value:this.requestFocus},this.props.children))},FocusHandlerImpl}(o().Component);!function polyfill(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var r=null,n=null,o=null;if("function"==typeof t.componentWillMount?r="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(r="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?n="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(n="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?o="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(o="UNSAFE_componentWillUpdate"),null!==r||null!==n||null!==o){var a=e.displayName||e.name,u="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+a+" uses "+u+" but also contains the following legacy lifecycles:"+(null!==r?"\n  "+r:"")+(null!==n?"\n  "+n:"")+(null!==o?"\n  "+o:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=componentWillMount,t.componentWillReceiveProps=componentWillReceiveProps),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=componentWillUpdate;var i=t.componentDidUpdate;t.componentDidUpdate=function componentDidUpdatePolyfill(e,t,r){var n=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:r;i.call(this,e,t,n)}}return e}(H);var $=function k(){},V=o().forwardRef;void 0===V&&(V=function forwardRef(e){return e});var Q=V((function(e,t){var r=e.innerRef,n=_objectWithoutProperties(e,["innerRef"]);return o().createElement(D.Consumer,null,(function(e){e.basepath;var a=e.baseuri;return o().createElement(N,null,(function(e){var u=e.location,i=e.navigate,l=n.to,c=n.state,f=n.replace,p=n.getProps,v=void 0===p?$:p,m=_objectWithoutProperties(n,["to","state","replace","getProps"]),h=d(l,a),y=encodeURI(h),g=u.pathname===y,_=s(u.pathname,y);return o().createElement("a",R({ref:t||r,"aria-current":g?"page":void 0},m,v({isCurrent:g,isPartiallyCurrent:_,href:h,location:u}),{href:h,onClick:function onClick(e){if(m.onClick&&m.onClick(e),ae(e)){e.preventDefault();var t=f;if("boolean"!=typeof f&&g){var r=R({},u.state),n=(r.key,_objectWithoutProperties(r,["key"]));t=function shallowCompare(e,t){var r=Object.keys(e);return r.length===Object.keys(t).length&&r.every((function(r){return t.hasOwnProperty(r)&&e[r]===t[r]}))}(R({},c),n)}i(h,{state:c,replace:t})}}}))}))}))}));function RedirectRequest(e){this.uri=e}Q.displayName="Link";var X=function isRedirect(e){return e instanceof RedirectRequest},z=function redirectTo(e){throw new RedirectRequest(e)},K=function(e){function RedirectImpl(){return _classCallCheck(this,RedirectImpl),_possibleConstructorReturn(this,e.apply(this,arguments))}return _inherits(RedirectImpl,e),RedirectImpl.prototype.componentDidMount=function componentDidMount(){var e=this.props,t=e.navigate,r=e.to,n=(e.from,e.replace),o=void 0===n||n,a=e.state,u=(e.noThrow,e.baseuri),i=_objectWithoutProperties(e,["navigate","to","from","replace","state","noThrow","baseuri"]);Promise.resolve().then((function(){var e=d(r,u);t(p(e,i),{replace:o,state:a})}))},RedirectImpl.prototype.render=function render(){var e=this.props,t=(e.navigate,e.to),r=(e.from,e.replace,e.state,e.noThrow),n=e.baseuri,o=_objectWithoutProperties(e,["navigate","to","from","replace","state","noThrow","baseuri"]),a=d(t,n);return r||z(p(a,o)),null},RedirectImpl}(o().Component),Y=function Redirect(e){return o().createElement(D.Consumer,null,(function(t){var r=t.baseuri;return o().createElement(N,null,(function(t){return o().createElement(K,R({},t,{baseuri:r},e))}))}))},J=function Match(e){var t=e.path,r=e.children;return o().createElement(D.Consumer,null,(function(e){var n=e.baseuri;return o().createElement(N,null,(function(e){var o=e.navigate,a=e.location,u=d(t,n),i=f(u,a.pathname);return r({navigate:o,location:a,match:i?R({},i.params,{uri:i.uri,path:t}):null})}))}))},Z=function useLocation(){var e=(0,n.useContext)(A);if(!e)throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return e.location},ee=function useNavigate(){var e=(0,n.useContext)(A);if(!e)throw new Error("useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return e.navigate},te=function useParams(){var e=(0,n.useContext)(D);if(!e)throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");var t=Z(),r=f(e.basepath,t.pathname);return r?r.params:null},re=function useMatch(e){if(!e)throw new Error("useMatch(path: string) requires an argument of a string to match against");var t=(0,n.useContext)(D);if(!t)throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");var r=Z(),o=d(e,t.baseuri),a=f(o,r.pathname);return a?R({},a.params,{uri:a.uri,path:e}):null},ne=function stripSlashes(e){return e.replace(/(^\/+|\/+$)/g,"")},oe=function createRoute(e){return function(t){if(!t)return null;if(t.type===o().Fragment&&t.props.children)return o().Children.map(t.props.children,createRoute(e));if(t.props.path||t.props.default||t.type===Y||u()(!1),t.type!==Y||t.props.from&&t.props.to||u()(!1),t.type!==Y||function validateRedirect(e,t){var r=function filter(e){return m(e)};return _(e).filter(r).sort().join("/")===_(t).filter(r).sort().join("/")}(t.props.from,t.props.to)||u()(!1),t.props.default)return{value:t,default:!0};var r=t.type===Y?t.props.from:t.props.path,n="/"===r?e:ne(e)+"/"+ne(r);return{value:t,default:t.props.default,path:t.props.children?ne(n)+"/*":n}}},ae=function shouldNavigate(e){return!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}},33407:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=function App(){return a.default.createElement("div",{id:"elementor-form-submissions"},a.default.createElement(l.SettingsProvider,{value:window.elementorSubmissionsConfig},a.default.createElement(i.NoticesProvider,null,a.default.createElement(s.default,null),a.default.createElement(u.LocationProvider,{history:p},a.default.createElement(u.Router,null,a.default.createElement(f.default,{path:"/"}),a.default.createElement(c.default,{path:"/:id"}))))))};var a=o(r(63804)),u=r(50927),i=r(26062),l=r(39848),s=o(r(82570)),c=o(r(13746)),f=o(r(35744)),d=r(22634),p=(0,u.createHistory)((0,d.createHashSource)())},29017:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.BulkActionSelect=BulkActionSelect;var u=a(r(63804));r(71954),r(90286);var i=a(r(47834)),l=a(r(23615)),s=u.default,c=s.useState,f=s.useCallback;function BulkActionSelect(e){var t=c(""),r=(0,i.default)(t,2),o=r[0],a=r[1],l=f((function(t){t.preventDefault();var r=e.actions.find((function(e){return e.value===o}));r&&(r.onApply(),a(""))}),[o,e.actions]);return u.default.createElement("form",{className:"actions bulkactions ".concat(e.className),onSubmit:l},u.default.createElement("label",{htmlFor:"bulk-action-selector-top",className:"screen-reader-text"},n("Select bulk action","elementor-pro")),u.default.createElement("select",{name:"action",value:o,onChange:function onChange(e){return a(e.target.value)}},u.default.createElement("option",{value:"",disabled:!0},n("Bulk actions","elementor-pro")),e.actions.map((function(e){return u.default.createElement("option",{key:e.value,value:e.value},e.label)}))),u.default.createElement("input",{type:"submit",className:"button action",value:n("Apply","elementor-pro")}))}BulkActionSelect.propTypes={className:l.default.string,actions:l.default.arrayOf(l.default.shape({label:l.default.string.isRequired,value:l.default.string.isRequired,onApply:l.default.func.isRequired})).isRequired},BulkActionSelect.defaultProps={className:""}},77057:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Bulk;var a=o(r(63804)),u=o(r(74846)),i=o(r(23615)),l=a.default.useCallback;function Bulk(e){var t=l((function(t){var r=t.target.checked?(0,u.default)(e.allValues):[];e.onChange(r)}),[e.onChange,e.checkedGroup,e.allValues]);return a.default.createElement("input",{type:"checkbox",checked:e.checkedGroup.length===e.allValues.length&&e.allValues.length>0,onChange:t})}Bulk.propTypes={checkedGroup:i.default.array.isRequired,allValues:i.default.array.isRequired,onChange:i.default.func.isRequired}},13682:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Checkbox;var a=o(r(63804));r(64434),r(3777),r(38081);var u=o(r(74846)),i=o(r(77057)),l=o(r(23615)),s=a.default.useCallback;function Checkbox(e){var t=s((function(t){var r=t.target.checked?[].concat((0,u.default)(e.checkedGroup),[e.value]):e.checkedGroup.filter((function(t){return t!==e.value}));e.onChange(r)}),[e.onChange,e.checkedGroup,e.value]);return a.default.createElement("input",{type:"checkbox",checked:e.checkedGroup.includes(e.value),onChange:t})}Checkbox.propTypes={checkedGroup:l.default.array.isRequired,value:l.default.number.isRequired,onChange:l.default.func.isRequired},Checkbox.Bulk=i.default},48059:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=DateFilter;var i=u(r(63804));r(71954),r(64434),r(99745),r(90286);var l=u(r(47834)),s=i.default,c=s.useState,f=s.useMemo,d=s.useCallback;function DateFilter(e){var t=c(!1),r=(0,l.default)(t,2),o=r[0],a=r[1],u=f((function(){var e=function format(e){return wp.date.date("Y-m-d",e)},t=new Date,r=new Date(t),o=new Date(t),a=new Date(t);return r.setDate(r.getDate()-1),o.setDate(o.getDate()-7),a.setDate(a.getDate()-30),[{label:n("All Time","elementor-pro"),value:"all",filter:{before:null,after:null}},{label:n("Today","elementor-pro"),value:"today",filter:{before:null,after:e(t)}},{label:n("Yesterday","elementor-pro"),value:"yesterday",filter:{before:e(r),after:e(r)}},{label:n("Last 7 days","elementor-pro"),value:"last7",filter:{before:null,after:e(o)}},{label:n("Last 30 days","elementor-pro"),value:"last_30",filter:{before:null,after:e(a)}},{label:n("Custom","elementor-pro"),value:"custom",filter:{before:null,after:null}}]}),[]),s=f((function(){if(o)return"custom";var t=u.find((function(t){return t.filter.after===e.value.after&&t.filter.before===e.value.before}));return t?t.value:"custom"}),[u,e.value,o]),p=d((function(t){var r=t.target.value,n=u.find((function(e){return e.value===r}));a("custom"===n.value),e.onChange(n.filter)}),[u]),v=d((function(t){"custom"===s&&e.onChange(t)}),[s]);return i.default.createElement(i.default.Fragment,null,e.label&&i.default.createElement("label",{htmlFor:"filter-by-".concat(e.name),className:"screen-reader-text"},e.label),i.default.createElement("select",{id:"filter-by-".concat(e.name),value:s,onChange:p},u.map((function(e){var t=e.value,r=e.label;return i.default.createElement("option",{key:t,value:t}," ",r," ")}))),"custom"===s&&i.default.createElement(i.default.Fragment,null,i.default.createElement("input",{type:"date","aria-label":n("Start Date","elementor-pro"),value:e.value.after||"",onChange:function onChange(e){var t=e.target.value;return v({after:t})}}),"  -  ",i.default.createElement("input",{type:"date","aria-label":n("End Date","elementor-pro"),value:e.value.before||"",onChange:function onChange(e){var t=e.target.value;return v({before:t})}})))}DateFilter.propTypes={value:o.shape({after:o.string,before:o.string}),label:o.string,onChange:o.func.isRequired,name:o.string.isRequired},DateFilter.defaultProps={value:{after:null,before:null},options:[]}},63906:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=ExportButton;var i,l=u(r(63804)),s=u(r(18042)),c=r(99194),f=l.default.useMemo,d=(i={},(0,s.default)(i,c.EXPORT_MODE_ALL,n("Export All to CSV","elementor-pro")),(0,s.default)(i,c.EXPORT_MODE_FILTERED,n("Export Filtered to CSV","elementor-pro")),(0,s.default)(i,c.EXPORT_MODE_SELECTED,n("Export Selected to CSV","elementor-pro")),i);function ExportButton(e){var t=f((function(){if(!e.progress)return 0;var t=e.progress,r=t.count,n=t.success;return 0===r||0===n?0:Math.round(n/r*100)}),[e.progress]);return l.default.createElement("button",{className:"button button-primary e-export-button",onClick:function onClick(){return!e.disabled&&e.onClick()},disabled:e.disabled},e.isLoading?l.default.createElement(l.default.Fragment,null,l.default.createElement("i",{className:"eicon-loading eicon-animation-spin"}),"  ",l.default.createElement("span",null," ",t,"% "),"  ",n("Click to Cancel","elementor-pro")):d[e.mode])}ExportButton.propTypes={onClick:o.func.isRequired,isLoading:o.bool,mode:o.oneOf([c.EXPORT_MODE_ALL,c.EXPORT_MODE_SELECTED,c.EXPORT_MODE_FILTERED]),disabled:o.bool,progress:o.shape({count:o.number,success:o.number})},ExportButton.defaultProps={isLoading:!1,hasSelected:!1,disabled:!1}},50361:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=FormActionsLog;var i=u(r(63804));r(90286),r(99745);var l=u(r(38044)),s=r(55301),c=u(r(63873));function FormActionsLog(e){return i.default.createElement(l.default,{header:i.default.createElement("h2",null,n("Actions Log","elementor-pro"))},0===e.actions.length&&i.default.createElement("div",{className:"inside"},i.default.createElement("p",{style:{margin:0}}," ",n("No form actions.","elementor-pro")," ")),e.actions.map((function(e){return i.default.createElement("div",{className:"inside e-form-submissions-action-log e-form-submissions-action-log--".concat("success"===e.status?"success":"error"),key:e.name},i.default.createElement("p",null,i.default.createElement("strong",{className:"e-form-submissions-action-log__label"}," ",e.label," "),i.default.createElement("i",{className:"".concat("success"===e.status?"eicon-success eicon-check-circle-o":"eicon-error eicon-warning"," e-form-submissions-action-log__icon")}),i.default.createElement("span",{className:"e-form-submissions-action-log__date"}," ",(0,s.formatToLocalDateTime)(e.created_at)," ")),i.default.createElement("p",{className:"e-form-submissions-action-log__message"},e.log||c.default.actionLogs[e.status]()))})))}FormActionsLog.propTypes={actions:o.arrayOf(o.shape({status:o.oneOf(["success","failed"]),name:o.string,label:o.string,created_at:o.string,log:o.string})).isRequired}},57403:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971),a=r(52369);n(t,"__esModule",{value:!0}),t.default=Link;var u=a(r(63804)),i=o(r(84899)),l=o(r(37959));r(99236);var s=r(50927);function Link(e){var t=(0,u.useRef)();return(0,u.useEffect)((function(){t.current&&t.current.setAttribute("href","".concat(location.href.split("#")[0],"#").concat(e.to))}),[e.to,t.current]),u.default.createElement(s.Link,(0,l.default)({},e,{ref:t}))}Link.propTypes=(0,i.default)({},s.Link.propTypes)},28825:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=LinksFilter;var u=a(r(63804));r(64434),r(90286);var i=u.default,l=i.useCallback,s=i.useMemo;function LinksFilter(e){var t=l((function(t,r){t.preventDefault(),e.onChange&&e.onChange(r)}),[]),r=s((function(){return e.options.filter((function(e){return e.shouldShow}))}),[e.options]);return u.default.createElement("ul",{className:"subsubsub"},r.map((function(n,o){var a=o+1===r.length;return u.default.createElement("li",{key:n.value}," ",u.default.createElement("a",{href:"#",className:n.value===e.value?"current":"",onClick:function onClick(e){return t(e,n.value)}},n.label,void 0!==n.count&&u.default.createElement("span",{className:"count"}," (",n.count,")"))," ",a?"":"|")})))}LinksFilter.propTypes={options:n.arrayOf(n.shape({value:n.string,label:n.string,count:n.number,shouldShow:n.bool})),value:n.string,onChange:n.func}},37995:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=Notice;var i=u(r(63804)),l=r(26062);function Notice(e){return i.default.createElement("div",{className:"notice notice-".concat(e.model.type," ").concat(e.model.dismissible?"is-dismissible":"")},i.default.createElement("p",null,e.model.message,e.model.undoAction&&i.default.createElement(i.default.Fragment,null," ",i.default.createElement("a",{href:"#",onClick:function onClick(t){t.preventDefault(),e.model.undoAction()}},n("Undo","elementor-pro")))),e.model.dismissible&&i.default.createElement("button",{type:"button",className:"notice-dismiss",onClick:e.dismiss},i.default.createElement("span",{className:"screen-reader-text"},n("Dismiss this notice.","elementor-pro"))))}Notice.propTypes={model:o.shape({key:o.number.isRequired,message:o.string.isRequired,type:o.oneOf([l.NOTICE_TYPE_SUCCESS,l.NOTICE_TYPE_ERROR]).isRequired,dismissible:o.bool,undoAction:o.func}),dismiss:o.func}},82570:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=function Notices(){var e=(0,u.useNoticesContext)(),t=e.notices,r=e.dismiss;return t.map((function(e){return a.default.createElement(i.default,{key:e.key,model:e,dismiss:function dismiss(){return r(e.key)}})}))};var a=o(r(63804));r(90286);var u=r(26062),i=o(r(37995))},31459:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=Pagination;var i=u(r(63804)),l=i.default,s=l.useCallback,c=l.useMemo;function Pagination(e){var t=c((function(){return 1!==e.currentPage}),[e.currentPage]),r=c((function(){return e.lastPage>e.currentPage}),[e.currentPage,e.lastPage]),o=t?"a":"span",a=r?"a":"span",u=s((function(t,r,n){t.preventDefault(),r&&e.onChange(n)}),[e.onChange]);return e.currentPage?i.default.createElement("div",{className:"tablenav-pages ".concat(e.lastPage<=1&&"one-page")},i.default.createElement("span",{className:"displaying-num"},e.total," ",n("items","elementor-pro")),1<e.lastPage&&i.default.createElement("span",{className:"pagination-links"},i.default.createElement(o,{className:"tablenav-pages-navspan button ".concat(!t&&"disabled"),onClick:function onClick(e){return u(e,t,1)}},"«")," ",i.default.createElement(o,{className:"tablenav-pages-navspan button ".concat(!t&&"disabled"),onClick:function onClick(r){return u(r,t,e.currentPage-1)}},"‹"),i.default.createElement("span",{className:"paging-input"},i.default.createElement("span",{className:"screen-reader-text"},n("Current Page","elementor-pro")),i.default.createElement("span",{className:"paging-input",style:{margin:"0 6px"}},i.default.createElement("span",{className:"tablenav-paging-text"},e.currentPage," ",n("of","elementor-pro"),i.default.createElement("span",{className:"total-pages",style:{margin:"0"}}," ",e.lastPage)))),i.default.createElement(a,{className:"tablenav-pages-navspan button ".concat(!r&&"disabled"),onClick:function onClick(t){return u(t,r,e.currentPage+1)}},"›")," ",i.default.createElement(a,{className:"tablenav-pages-navspan button ".concat(!r&&"disabled"),onClick:function onClick(t){return u(t,r,e.lastPage)}},"»"))):""}Pagination.propTypes={currentPage:o.number,total:o.number,lastPage:o.number,perPage:o.number,onChange:o.func.isRequired}},38044:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=PostBox;var u=a(r(63804));function PostBox(e){return u.default.createElement("div",{className:"postbox"},u.default.createElement("div",{className:"postbox-header"},e.header),u.default.createElement("div",{className:"inner"},e.children))}PostBox.propTypes={header:n.oneOfType([n.string,n.node,n.arrayOf(n.node)]),children:n.oneOfType([n.node,n.arrayOf(n.node)])}},57767:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=RefererFilter;var i=u(r(63804)),l=u(r(74846)),s=u(r(47834));r(42679),r(90286);var c=i.default,f=c.useEffect,d=c.useRef,p=c.useState;function renderSelect2(e,t){jQuery(e).select2({allowClear:!0,placeholder:n("All Pages","elementor-pro"),dir:elementorCommon.config.isRTL?"rtl":"ltr",ajax:{delay:400,transport:function transport(e,t,r){var n=e.data.search;return $e.data.get("form-submissions/referer",{search:n},{refresh:!0}).then(t).catch(r)},data:function data(e){return{search:e.term}},processResults:function processResults(e){return{results:e.data.data.map((function(e){var t=e.value,r=e.label;return{id:encodeURIComponent(t),text:r}}))}},cache:!0},minimumInputLength:3}).on("select2:select select2:unselect",(function(e){t(e.target.value)}))}function RefererFilter(e){var t=p([{value:"",label:n("All Pages","elementor-pro")}]),r=(0,s.default)(t,2),o=r[0],a=r[1],u=d();return f((function(){var t=null;return e.value?$e.data.get("form-submissions/referer",{value:e.value},{refresh:!0}).then((function(e){var t=e.data;return a((function(e){return[].concat((0,l.default)(e),(0,l.default)(t.data))}))})).then((function(){return t=renderSelect2(u.current,e.onChange)})):t=renderSelect2(u.current,e.onChange),function(){t&&t.select2("destroy").off("select2:select select2:unselect")}}),[]),i.default.createElement(i.default.Fragment,null,i.default.createElement("label",{htmlFor:"filter-by-referer",className:"screen-reader-text"},n("Filter by Page","elementor-pro")),i.default.createElement("select",{ref:u,id:"filter-by-referer",value:e.value},o.map((function(e){var t=e.value,r=e.label;return i.default.createElement("option",{key:t,value:encodeURIComponent(t)}," ",r," ")}))))}RefererFilter.propTypes={value:o.string,onChange:o.func.isRequired},RefererFilter.defaultProps={value:""}},95544:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=ResourceFilter;var u=a(r(63804));r(99745),r(90286);var i=a(r(74846)),l=a(r(47834)),s=u.default,c=s.useState,f=s.useEffect;function ResourceFilter(e){var t=c([]),r=(0,l.default)(t,2),n=r[0],o=r[1];return f((function(){$e.data.get(e.resourceOptions.command,e.resourceOptions.args,{refresh:!0}).then((function(e){return o(e.data.data)}))}),[]),u.default.createElement(u.default.Fragment,null,e.label&&u.default.createElement("label",{htmlFor:"filter-by-".concat(e.name),className:"screen-reader-text"},e.label),u.default.createElement("select",{id:"filter-by-".concat(e.name),value:e.value,onChange:function onChange(t){return e.onChange(t.target.value)}},[].concat((0,i.default)(e.options),(0,i.default)(n)).map((function(e){var t=e.value,r=e.label;return u.default.createElement("option",{key:t,value:t}," ",r," ")}))))}ResourceFilter.propTypes={value:n.string,onChange:n.func.isRequired,label:n.string,name:n.string.isRequired,options:n.arrayOf(n.shape({label:n.string,value:n.string})),resourceOptions:n.shape({command:n.string,args:n.object})},ResourceFilter.defaultProps={value:"",options:[]}},95240:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=SearchBox;var i=u(r(63804)),l=u(r(47834)),s=i.default,c=s.useState,f=s.useRef,d=s.useCallback;function SearchBox(e){var t=c(e.value||""),r=(0,l.default)(t,2),o=r[0],a=r[1],u=f(null),s=d((function(t){u.current&&clearTimeout(u.current);var r=t.target.value;a(r),u.current=setTimeout((function(){return e.onChange(r)}),e.debounceTimeout)}),[]);return i.default.createElement("p",{className:"search-box e-form-submissions-search"},e.label&&i.default.createElement("label",{className:"screen-reader-text",htmlFor:"search-input"},e.label),e.isSearching&&i.default.createElement("span",{className:"e-form-submissions-search__spinner"},i.default.createElement("i",{className:"eicon-loading eicon-animation-spin"})),i.default.createElement("input",{type:"search",id:"search-input",name:"s",value:o,onChange:s,placeholder:n("Search...","elementor-pro")}))}SearchBox.propTypes={value:o.string,onChange:o.func.isRequired,label:o.string,debounceTimeout:o.number,isSearching:o.bool},SearchBox.defaultProps={debounceTimeout:600,isSearching:!1}},20005:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(67971);a(t,"__esModule",{value:!0}),t.default=SubmissionRow;var i=u(r(63804));r(99745);var l=u(r(47834)),s=u(r(57403)),c=u(r(18939)),f=r(55301),d=i.default.useState;function SubmissionRow(e){var t=d(!1),r=(0,l.default)(t,2),o=r[0],a=r[1];return i.default.createElement(c.default.Row,{className:o?"is-expanded":"",style:{fontWeight:e.item.is_read?"inherit":"bold"}},i.default.createElement(c.default.Cell,{component:"th",className:"check-column"},e.checkBoxComponent),i.default.createElement(c.default.Cell,{className:"has-row-actions column-primary"},"trash"===e.item.status?e.item.main.value:i.default.createElement(s.default,{to:"/".concat(e.item.id),"aria-label":"View"},e.item.main.value),e.rowActionComponent,i.default.createElement("button",{type:"button",className:"toggle-row",onClick:function onClick(){return a((function(e){return!e}))}},i.default.createElement("span",{className:"screen-reader-text"},n("Show more details","elementor-pro")))),i.default.createElement(c.default.Cell,{className:"column-actions",colName:e.tableTitles.actions_log_status.label},e.item.actions_count>0&&i.default.createElement("i",{className:"".concat(e.item.actions_count===e.item.actions_succeeded_count?"eicon-success eicon-check-circle-o":"eicon-error eicon-warning"),title:"".concat(e.item.actions_succeeded_count,"/").concat(e.item.actions_count," ").concat(n("Succeed","elementor-pro"))})),i.default.createElement(c.default.Cell,{className:"column-form",colName:e.tableTitles.form.label},e.item.post&&i.default.createElement("a",{href:e.item.post.edit_url,target:"_blank",rel:"noreferrer"},e.item.form.name," (",e.item.form.element_id,")")),i.default.createElement(c.default.Cell,{className:"column-page",colName:e.tableTitles.page.label},i.default.createElement("a",{href:e.item.referer,target:"_blank",rel:"noreferrer",title:e.item.referer_title},e.item.referer_title||i.default.createElement("i",{className:"eicon-editor-external-link e-form-submissions-referer-icon"}))),i.default.createElement(c.default.Cell,{className:"column-id",colName:e.tableTitles.id.label},e.item.id),i.default.createElement(c.default.Cell,{className:"column-date",colName:e.tableTitles.created_at.label},(0,f.formatToLocalDateTime)(e.item.created_at)))}SubmissionRow.propTypes={item:o.object.isRequired,tableTitles:o.objectOf(o.shape({label:o.string})),rowActionComponent:o.node,checkBoxComponent:o.node}},81221:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Acceptance;var a=o(r(63804)),u=o(r(84899)),i=o(r(47834)),l=r(9036),s=a.default.useState;function Acceptance(e){var t=s(e.value),r=(0,i.default)(t,2),n=r[0],o=r[1];return a.default.createElement("label",{className:"e-form-submissions-value-label"},a.default.createElement("input",{type:"checkbox",value:"on",checked:e.isEditMode?"on"===n:"on"===e.value,onChange:function onChange(t){var r=t.target.checked?"on":"";o(r),e.onChange(r)},disabled:!e.isEditMode}))}Acceptance.propTypes=(0,u.default)({},l.basePropTypes)},12275:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Checkbox;var a=o(r(63804));r(99236),r(90286),r(3777),r(38081),r(64434);var u=o(r(84899)),i=o(r(74846)),l=o(r(47834)),s=r(9036),c=o(r(34578)),f=o(r(33497)),d=a.default,p=d.useState,v=d.useMemo;function Checkbox(e){var t=v((function(){return e.value.split(", ")}),[e.value]),r=p(t),n=(0,l.default)(r,2),o=n[0],u=n[1];return(0,c.default)((function(){return e.onChange(o.join(", "))}),[o]),(0,f.default)(e.field.options).map((function(r){return a.default.createElement("label",{className:"e-form-submissions-value-label",key:r.value},a.default.createElement("input",{type:"checkbox",value:r.value,checked:e.isEditMode?o.includes(r.value):t.includes(r.value),onChange:function onChange(e){var t=e.target.checked;u((function(e){return e=t?[].concat((0,i.default)(e),[r.value]):e.filter((function(e){return e!==r.value}))}))},disabled:!e.isEditMode}),r.label)}))}Checkbox.propTypes=(0,u.default)({},s.basePropTypes)},48184:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Date;var a=o(r(63804)),u=o(r(84899)),i=r(9036),l=o(r(47067)),s=r(55301);function Date(e){return a.default.createElement(l.default,{value:e.value,isEditMode:e.isEditMode,onChange:e.onChange,field:e.field},e.value&&(0,s.formatToLocalDate)(e.value))}Date.propTypes=(0,u.default)({},i.basePropTypes)},28559:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Email;var a=o(r(63804)),u=o(r(84899)),i=r(9036),l=o(r(47067));function Email(e){return a.default.createElement(l.default,{value:e.value,isEditMode:e.isEditMode,onChange:e.onChange,field:e.field},e.value&&a.default.createElement("a",{href:"mailto:".concat(e.value)},e.value))}Email.propTypes=(0,u.default)({},i.basePropTypes)},9036:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=SubmissionValue,t.basePropTypes=void 0;var u=a(r(63804)),i=a(r(18042)),l=a(r(84899)),s=a(r(47834)),c=a(r(38923)),f=a(r(47067)),d=a(r(28559)),p=a(r(20126)),v=a(r(38379)),m=a(r(58552)),h=a(r(97745)),y=a(r(12275)),g=a(r(81221)),_=a(r(10829)),b=a(r(48184)),x=a(r(77859)),E=a(r(87207)),w=u.default.useMemo,S=f.default,C=(0,c.default)({Email:d.default,Tel:p.default,Url:v.default,Radio:m.default,Select:h.default,Checkbox:y.default,Acceptance:g.default,Upload:_.default,Date:b.default,Time:x.default,Textarea:E.default,Text:f.default}).reduce((function(e,t){var r=(0,s.default)(t,2),n=r[0],o=r[1];return(0,l.default)((0,l.default)({},e),{},(0,i.default)({},n.toLowerCase(),o))}),{}),P={value:n.string,isEditMode:n.bool,onChange:n.func.isRequired,field:n.shape({id:n.string.isRequired,type:n.string,options:n.arrayOf(n.string),is_multiple:n.bool})};function SubmissionValue(e){var t=w((function(){var t,r=null===(t=e.field)||void 0===t?void 0:t.type;return C.hasOwnProperty(r)?C[r]:S}),[e.field,e.value]);return u.default.createElement(t,{value:e.value,field:e.field,isEditMode:e.isEditMode,onChange:function onChange(t){return e.onChange(e.field.id,t)}})}t.basePropTypes=P,SubmissionValue.propTypes=(0,l.default)({},P),SubmissionValue.defaultProps={isEditMode:!1}},58552:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Radio;var a=o(r(63804));r(90286);var u=o(r(84899)),i=o(r(47834)),l=r(9036),s=o(r(33497)),c=a.default.useState;function Radio(e){var t=c(e.value),r=(0,i.default)(t,2),n=r[0],o=r[1];return(0,s.default)(e.field.options).map((function(t){return a.default.createElement("label",{className:"e-form-submissions-value-label",key:t.value},a.default.createElement("input",{type:"radio",value:t.value,checked:e.isEditMode?t.value===n:t.value===e.value,onChange:function onChange(){o(t.value),e.onChange(t.value)},disabled:!e.isEditMode}),t.label)}))}Radio.propTypes=(0,u.default)({},l.basePropTypes)},97745:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Select;var a=o(r(63804)),u=o(r(75453)),i=o(r(84899)),l=o(r(47834));r(99236),r(90286);var s=r(9036),c=o(r(33497)),f=a.default.useState;function Select(e){var t=e.field.is_multiple?e.value.split(", "):e.value,r=f(t),n=(0,l.default)(r,2),o=n[0],i=n[1],s=(0,c.default)(e.field.options);return a.default.createElement("select",{value:e.isEditMode?o:t,multiple:e.field.is_multiple,onChange:function onChange(t){var r=(0,u.default)(t.target.selectedOptions,(function(e){return e.value}));i(e.field.is_multiple?r:r[0]),e.onChange(r.join(", "))},disabled:!e.isEditMode},s.map((function(e){return a.default.createElement("option",{value:e.value,key:e.value},e.label)})))}Select.propTypes=(0,i.default)({},s.basePropTypes)},20126:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Tel;var a=o(r(63804)),u=o(r(84899)),i=r(9036),l=o(r(47067));function Tel(e){return a.default.createElement(l.default,{value:e.value,isEditMode:e.isEditMode,onChange:e.onChange,field:e.field},e.value&&a.default.createElement("a",{href:"tel:".concat(e.value)},e.value))}Tel.propTypes=(0,u.default)({},i.basePropTypes)},47067:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Text;var u=a(r(63804)),i=a(r(84899)),l=a(r(47834)),s=r(9036),c=u.default,f=c.useState,d=c.useMemo,p={email:"email",date:"date",time:"time",tel:"tel",url:"url",number:"number",text:"text"},v=p.text;function Text(e){var t=f(e.value),r=(0,l.default)(t,2),n=r[0],o=r[1],a=d((function(){var t;return p.hasOwnProperty(null===(t=e.field)||void 0===t?void 0:t.type)?p[e.field.type]:v}),[e.field]);return e.isEditMode?u.default.createElement("input",{type:a,value:n,onChange:function onChange(t){var r=t.target.value;o(r),e.onChange(r)}}):e.children||e.value}Text.propTypes=(0,i.default)({children:n.oneOfType([n.node,n.string])},s.basePropTypes)},87207:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Textarea;var a=o(r(63804)),u=o(r(84899)),i=o(r(47834)),l=r(9036),s=a.default.useState;function Textarea(e){var t=s(e.value),r=(0,i.default)(t,2),n=r[0],o=r[1];return e.isEditMode?a.default.createElement("textarea",{value:e.isEditMode?n:e.value,rows:"4",onChange:function onChange(t){var r=t.target.value;o(r),e.onChange(r)}}):e.value}Textarea.propTypes=(0,u.default)({},l.basePropTypes)},77859:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Time;var a=o(r(63804)),u=o(r(84899)),i=r(9036),l=o(r(47067)),s=r(55301);function Time(e){return a.default.createElement(l.default,{value:e.value,isEditMode:e.isEditMode,onChange:e.onChange,field:e.field},e.value&&(0,s.formatToLocalTime)("2000-01-01 ".concat(e.value)))}Time.propTypes=(0,u.default)({},i.basePropTypes)},10829:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Upload;var a=o(r(63804)),u=o(r(84899));r(99236),r(90286);var i=r(9036);function Upload(e){return e.value.split(" , ").map((function(e){return a.default.createElement("div",{key:e},a.default.createElement("a",{href:e,target:"_blank",rel:"noreferrer"},e))}))}Upload.propTypes=(0,u.default)({},i.basePropTypes)},38379:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=Url;var a=o(r(63804)),u=o(r(84899)),i=r(9036),l=o(r(47067));function Url(e){return a.default.createElement(l.default,{value:e.value,isEditMode:e.isEditMode,onChange:e.onChange,field:e.field},e.value&&a.default.createElement("a",{href:e.value,target:"_blank",rel:"noreferrer"},e.value))}Url.propTypes=(0,u.default)({},i.basePropTypes)},67885:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Body;var u=a(r(63804));function Body(e){return u.default.createElement("tbody",{id:"the-list"},e.children)}Body.propTypes={children:n.any}},94435:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Cell;var u=a(r(63804));function Cell(e){var t=e.component;return u.default.createElement(t,{className:e.className,style:e.style,"data-colname":e.colName,colSpan:e.colSpan},e.children)}Cell.propTypes={component:n.string,children:n.any,className:n.string,style:n.object,colName:n.string,colSpan:n.number},Cell.defaultProps={component:"td",className:""}},37981:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Footer;var u=a(r(63804));function Footer(e){return u.default.createElement("tfoot",null,e.children)}Footer.propTypes={children:n.any}},89221:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Header;var u=a(r(63804));function Header(e){return u.default.createElement("thead",null,e.children)}Header.propTypes={children:n.any}},18939:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=WpTable;var u=a(r(63804)),i=a(r(89221)),l=a(r(67885)),s=a(r(37981)),c=a(r(10776)),f=a(r(94435)),d=a(r(62324)),p=a(r(6614));function WpTable(e){return u.default.createElement("table",{className:"wp-list-table widefat fixed table-view-list ".concat(e.className),style:e.style},e.children)}WpTable.propTypes={children:n.any,style:n.object,className:n.string},WpTable.defaultProps={className:""},WpTable.Header=i.default,WpTable.Body=l.default,WpTable.Footer=s.default,WpTable.Row=c.default,WpTable.Cell=f.default,WpTable.OrderableCell=d.default,WpTable.RowActions=p.default},62324:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=OrderableCell;var u=a(r(63804)),i=a(r(84899)),l=a(r(94435));function OrderableCell(e){var t="".concat(e.className," sortable ").concat(e.order.current.by===e.order.key&&"sorted ".concat(e.order.current.direction));return u.default.createElement(l.default,{component:e.component,style:e.style,className:t},u.default.createElement("a",{href:"#",onClick:function onClick(){return e.order.onChange({by:e.order.key,direction:e.order.key===e.order.current.by&&"asc"===e.order.current.direction?"desc":"asc"})}},u.default.createElement("span",null,e.children),u.default.createElement("span",{className:"sorting-indicator"})))}OrderableCell.propTypes=(0,i.default)((0,i.default)({},l.default.propTypes),{},{order:n.shape({key:n.string.isRequired,current:n.shape({by:n.string,direction:n.oneOf(["asc","desc"])}).isRequired,onChange:n.func.isRequired}).isRequired}),OrderableCell.defaultProps=(0,i.default)((0,i.default)({},l.default.defaultProps),{},{component:"th"})},6614:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=RowActions;var u=a(r(63804)),i=a(r(37959));function RowActions(e){return u.default.createElement("div",{className:"row-actions",style:{fontWeight:"normal"}},e.actions.map((function(t,r){var n=r+1===e.actions.length,o=t.component||"a";return u.default.createElement("span",{key:t.key,className:t.className},u.default.createElement(o,(0,i.default)({href:"#","aria-label":t.label,onClick:function onClick(r){r.preventDefault(),t.onApply(e.item)}},t.props?t.props(e.item):{}),t.label),!n&&u.default.createElement("span",null," | "))})))}r(90286),RowActions.propTypes={actions:n.arrayOf(n.shape({key:n.string.isRequired,label:n.string.isRequired,onApply:n.func,className:n.string,props:n.func,component:n.any})),item:n.object}},10776:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=Row;var u=a(r(63804));function Row(e){return u.default.createElement("tr",{style:e.style,className:e.className},e.children)}Row.propTypes={children:n.any,style:n.object,className:n.string},Row.defaultProps={style:{},className:""}},26062:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.useNoticesContext=function useNoticesContext(){return v(y)},t.NoticesProvider=NoticesProvider,t.NOTICE_TYPE_ERROR=t.NOTICE_TYPE_SUCCESS=void 0;var u=a(r(63804)),i=a(r(49288));r(64434);var l=a(r(74846)),s=a(r(47834)),c=u.default,f=c.createContext,d=c.useState,p=c.useCallback,v=c.useContext,m="success";t.NOTICE_TYPE_SUCCESS=m;var h="error";t.NOTICE_TYPE_ERROR=h;var y=f({notices:[]});function NoticesProvider(e){var t=d([]),r=(0,s.default)(t,2),n=r[0],o=r[1],a=p((function(e){o((function(t){return t.filter((function(t){return t.key!==e}))}))}),[]),c=p((function(t){var r=t.message,n=t.undoAction,u=t.type,s=t.dismissible,c=void 0===s||s;if(r){var f=(0,i.default)()+Math.random();o((function(e){return[{key:f,message:r,type:u,undoAction:n,dismissible:c}].concat((0,l.default)(e))})),e.dismissTimeout&&setTimeout((function(){return a(f)}),e.dismissTimeout)}}),[]),f=p((function(e){c({message:e,type:h})}),[c]),v=p((function(e,t){c({message:e,undoAction:t,type:m})}),[c]);return u.default.createElement(y.Provider,{value:{notices:n,notify:c,notifyError:f,notifySuccess:v,dismiss:a}},e.children)}NoticesProvider.propTypes={children:n.any,dismissTimeout:n.number},NoticesProvider.defaultProps={dismissTimeout:4e3}},39848:(e,t,r)=>{"use strict";var n=r(23615),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.useSettingsContext=function useSettingsContext(){return s(c)},t.SettingsProvider=SettingsProvider;var u=a(r(63804)),i=u.default,l=i.createContext,s=i.useContext,c=l({});function SettingsProvider(e){return u.default.createElement(c.Provider,{value:e.value},e.children)}SettingsProvider.propTypes={children:n.any,value:n.object.isRequired}},44951:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.Export=void 0;var a=o(r(11959)),u=o(r(39041)),i=o(r(77371)),l=o(r(68537)),s=function(e){(0,i.default)(Export,e);var t=(0,l.default)(Export);function Export(){return(0,a.default)(this,Export),t.apply(this,arguments)}return(0,u.default)(Export,[{key:"onCatchApply",value:function onCatchApply(){}}],[{key:"getEndpointFormat",value:function getEndpointFormat(){return"form-submissions/export/{id}"}}]),Export}($e.modules.CommandData);t.Export=s},61718:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.Index=void 0;var a=o(r(11959)),u=o(r(39041)),i=o(r(77371)),l=o(r(68537)),s=function(e){(0,i.default)(Index,e);var t=(0,l.default)(Index);function Index(){return(0,a.default)(this,Index),t.apply(this,arguments)}return(0,u.default)(Index,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"forms/{id}"}}]),Index}($e.modules.CommandData);t.Index=s},82009:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),n(t,"Restore",{enumerable:!0,get:function get(){return s.Restore}}),n(t,"Export",{enumerable:!0,get:function get(){return c.Export}}),n(t,"Referer",{enumerable:!0,get:function get(){return f.Referer}}),t.Index=void 0;var a=o(r(11959)),u=o(r(39041)),i=o(r(77371)),l=o(r(68537)),s=r(94465),c=r(44951),f=r(17518),d=function(e){(0,i.default)(Index,e);var t=(0,l.default)(Index);function Index(){return(0,a.default)(this,Index),t.apply(this,arguments)}return(0,u.default)(Index,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"form-submissions/{id}"}}]),Index}($e.modules.CommandData);t.Index=d},17518:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.Referer=void 0;var a=o(r(11959)),u=o(r(39041)),i=o(r(77371)),l=o(r(68537)),s=function(e){(0,i.default)(Referer,e);var t=(0,l.default)(Referer);function Referer(){return(0,a.default)(this,Referer),t.apply(this,arguments)}return(0,u.default)(Referer,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"form-submissions/referer/{id}"}}]),Referer}($e.modules.CommandData);t.Referer=s},94465:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.Restore=void 0;var a=o(r(11959)),u=o(r(39041)),i=o(r(77371)),l=o(r(68537)),s=function(e){(0,i.default)(Restore,e);var t=(0,l.default)(Restore);function Restore(){return(0,a.default)(this,Restore),t.apply(this,arguments)}return(0,u.default)(Restore,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"form-submissions/restore/{id}"}}]),Restore}($e.modules.CommandData);t.Restore=s},46042:(e,t,r)=>{"use strict";var n=r(67394),o=r(52369),a=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var u=a(r(11959)),i=a(r(39041)),l=a(r(77371)),s=a(r(68537)),c=o(r(82009)),f=function(e){(0,l.default)(Component,e);var t=(0,s.default)(Component);function Component(){return(0,u.default)(this,Component),t.apply(this,arguments)}return(0,i.default)(Component,[{key:"getNamespace",value:function getNamespace(){return"form-submissions"}},{key:"defaultData",value:function defaultData(){return this.importCommands(c)}}]),Component}($e.modules.ComponentBase);t.default=f},43023:(e,t,r)=>{"use strict";var n=r(67394),o=r(52369),a=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var u=a(r(11959)),i=a(r(39041)),l=a(r(77371)),s=a(r(68537)),c=a(r(18042)),f=o(r(61718)),d=function(e){(0,l.default)(FormsComponent,e);var t=(0,s.default)(FormsComponent);function FormsComponent(){return(0,u.default)(this,FormsComponent),t.apply(this,arguments)}return(0,i.default)(FormsComponent,[{key:"getNamespace",value:function getNamespace(){return this.constructor.namespace}},{key:"defaultData",value:function defaultData(){return this.importCommands(f)}}]),FormsComponent}($e.modules.ComponentBase);t.default=d,(0,c.default)(d,"namespace","forms")},47937:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=function useDataAction(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=c(),n=d(v),o=(0,l.default)(n,2),a=o[0],s=o[1],g=p((function(){return[].concat((0,i.default)(t),[a])}),[t,a]),_=f((function(){r.current&&r.current.abort(),r.current=new AbortController,s(m);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return e(n,{abortController:r.current,status:a}).then((function(e){return s(h),e})).catch((function(e){return s(y),u.default.reject(e)}))}),[g]);return[_,{abortController:r.current,status:a}]},t.STATUS_ERROR=t.STATUS_SUCCESS=t.STATUS_LOADING=t.STATUS_IDLE=void 0;var u=a(r(73220)),i=a(r(74846)),l=a(r(47834)),s=n,c=s.useRef,f=s.useCallback,d=s.useState,p=s.useMemo,v="idle";t.STATUS_IDLE=v;var m="loading";t.STATUS_LOADING=m;var h="success";t.STATUS_SUCCESS=h;var y="error";t.STATUS_ERROR=y},99194:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(52369),u=r(67971);o(t,"__esModule",{value:!0}),t.useExport=function useExport(e){var t=x((function(){return(0,p.default)((0,p.default)({},S),e)}),[e]),n=(0,h.useNoticesContext)().notifyError,o=b({count:0,success:0}),a=(0,d.default)(o,2),u=a[0],_=a[1],C=x((function(){if(t.checked.length>0)return y;var e=Object.fromEntries((0,i.default)(t.filter).filter((function(e){return(0,d.default)(e,2)[1]})));return 1===(0,l.default)(e).length&&"all"===e.status?"all":g}),[t.checked,t.filter]),P=(0,v.default)((function(e,o){var a=(0,d.default)(e,2),u=a[0],i=a[1],l=o.abortController;if(o.status===v.STATUS_LOADING&&l)return l.abort(),s.default.reject({message:"Aborted"});var h=Math.ceil(i/t.maxRowsPerRequest),y={},g=s.default.resolve();_({count:h,success:0});for(var b=function _loop(e){g=g.then((function(){return $e.data.get("form-submissions/export",(0,p.default)((0,p.default)({},u),{},{per_page:t.maxRowsPerRequest,page:e}),{refresh:!0,signal:l.signal})})).then((function(t){var r=1===e;y=function mergeFormExportData(e,t,r){return e.forEach((function(e){var n;r||delete e.content[0],t=(0,p.default)((0,p.default)({},t),{},(0,f.default)({},e.id,(0,p.default)((0,p.default)({},e),{},{content:((null===(n=t[e.id])||void 0===n?void 0:n.content)||"")+e.content.join("\n")})))})),t}(t.data.data,y,r),_((function(t){return(0,p.default)((0,p.default)({},t),{},{success:e})}))}))},x=1;x<=h;x++)b(x);return g.then((function(){return function downloadExportsResults(e){var t=wp.date.date("Y-m-d"),n=e.map((function(e){return function transformFormResultIntoBlob(e,t){return{filename:w.replace("{FORM_LABEL}",e.form_label).replace("{DATE}",t).concat(".".concat(e.extension)),blob:new Blob(["\ufeff",e.content],{type:e.mimetype})}}(e,t)}));if(1===n.length)return void(0,m.default)(n[0].blob,n[0].filename);r.e(972).then(r.t.bind(r,82858,23)).then((function(e){var t=new(0,e.default);return n.forEach((function(e){var r=e.filename,n=e.blob;return t.file(r,n)})),t.generateAsync({type:"blob"})})).then((function(e){(0,m.default)(e,E.replace("{DATE}",t))}))}((0,c.default)(y))})).catch((function(e){return n(e.message)}))}),[t.maxRowsPerRequest]),T=(0,d.default)(P,2),O=T[0],R=T[1].status;return[O,{mode:C,progress:u,status:R}]},t.EXPORT_MODE_FILTERED=t.EXPORT_MODE_SELECTED=t.EXPORT_MODE_ALL=void 0;var i=u(r(38923)),l=u(r(83452)),s=u(r(73220)),c=u(r(35657));r(64434),r(90286),r(84208);var f=u(r(18042)),d=u(r(47834)),p=u(r(84899)),v=a(r(47937)),m=u(r(6642)),h=r(26062);t.EXPORT_MODE_ALL="all";var y="selected";t.EXPORT_MODE_SELECTED=y;var g="filtered";t.EXPORT_MODE_FILTERED=g;var _=n,b=_.useState,x=_.useMemo,E="elementor-submissions-export-{DATE}",w="elementor-submissions-export-{FORM_LABEL}-{DATE}",S={maxRowsPerRequest:1e4,checked:[],filter:{}}},33497:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=function useFormFieldOptions(e){return i((function(){return e.map((function(e){var t=e.split("|"),r=(0,u.default)(t,2),n=r[0],o=r[1];return{label:n,value:void 0===o?n:o}}))}),[e])};var u=a(r(47834));r(90286),r(99236);var i=n.useMemo},58534:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=function useMethodsReducer(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,o=n.useReducer((function(t,r){if(!e.hasOwnProperty(r.type))throw Error("The action type ".concat(r.type," is not exists"));return e[r.type](t,r.payload)}),t,r),a=(0,s.default)(o,2),u=a[0],i=a[1];return[u,generateActions(e,i),i]};var u=a(r(83452)),i=a(r(18042)),l=a(r(84899)),s=a(r(47834));function generateActions(e,t){return(0,u.default)(e).reduce((function(e,r){return(0,l.default)((0,l.default)({},e),{},(0,i.default)({},r,(function(e){return t({type:r,payload:e})})))}),{})}},45589:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=function useRestDataList(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=(0,d.default)((0,d.default)({},b),t);var r=[].concat(x,(0,c.default)(t.allowedFilters)),n=y(!1),o=(0,f.default)(n,2),a=o[0],i=o[1],l=y({data:[],meta:{}}),p=(0,f.default)(l,2),h=p[0],_=h.data,w=h.meta,S=p[1],C=useQuery(),P=C.query,T=C.flatQuery,O=C.actions,R=O.setFilter,M=O.setPage,A=O.setOrder,N=O.setInitial,j=(0,v.default)(r),L=(0,f.default)(j,2),D=L[0],I=L[1];E=T;var q=(0,m.default)((function(r,n){var o=n.abortController;return $e.data.options(e,{},{signal:o.signal}).then((function(e){return normalizeFetchOptionsResult(e.data,t.allowedFilters)})).then((function(e){return i(e)}))}),[e]),U=(0,f.default)(q,2),W=U[0],B=U[1].status,G=(0,m.default)((function(r,n){var o=n.abortController;return $e.data.get(e,E,{refresh:!0,signal:o.signal}).then((function(e){return S(e.data)})).then((function(){return t.hooks.afterFetch()}))}),[e,T]),H=(0,f.default)(G,2),$=H[0],V=H[1].status;return g((function(){W()}),[]),g((function(){var e,r,n,o;if(a){var i=t.useRouterQueryString?D:{};N({filter:(0,u.default)(a.filter).reduce((function(e,t){var r,n;return(0,d.default)((0,d.default)({},e),{},(0,s.default)({},t,(null==i?void 0:i[t])||(null==a||null===(r=a.filter)||void 0===r||null===(n=r[t])||void 0===n?void 0:n.default)||null))}),{}),page:i.page||(null===(e=a.page)||void 0===e?void 0:e.default)||1,perPage:i.per_page||(null===(r=a.per_page)||void 0===r?void 0:r.default)||null,order:{by:i.order_by||(null===(n=a.order_by)||void 0===n?void 0:n.default)||null,direction:i.order||(null===(o=a.order)||void 0===o?void 0:o.default)||null}})}}),[a]),g((function(){P.ready&&(t.useRouterQueryString&&I(T),$())}),[T]),{data:_,meta:w,query:P,flatQuery:T,fetchOptions:a,fetchData:$,statuses:{fetchDataStatus:V,fetchOptionsStatus:B},actions:{setFilter:R,setOrder:A,setPage:M}}},r(64434),r(71954),r(3777),r(38081);var u=a(r(83452)),i=a(r(38923)),l=a(r(59396)),s=a(r(18042)),c=a(r(74846)),f=a(r(47834)),d=a(r(84899)),p=a(r(58534)),v=a(r(2722)),m=a(r(47937)),h=n,y=h.useState,g=h.useEffect,_=h.useMemo,b={allowedFilters:[],useRouterQueryString:!1,hooks:{afterFetch:function afterFetch(){}}},x=["order","order_by","page","per_page"],E={};function useQuery(){var e=(0,p.default)({setFilter:function setFilter(e,t){return(0,d.default)((0,d.default)({},e),{},{page:1,filter:(0,d.default)((0,d.default)({},e.filter),t)})},setPage:function setPage(e,t){return(0,d.default)((0,d.default)({},e),{},{page:t})},setPerPage:function setPerPage(e,t){return(0,d.default)((0,d.default)({},e),{},{page:1,perPage:t})},setOrder:function setOrder(e,t){return(0,d.default)((0,d.default)({},e),{},{order:t})},setInitial:function setInitial(e,t){return(0,d.default)((0,d.default)((0,d.default)({},e),t),{},{ready:!0})}},{ready:!1,filter:{},page:1,perPage:null,order:{by:"id",direction:"desc"}}),t=(0,f.default)(e,2),r=t[0],n=t[1],o=_((function(){return Object.fromEntries((0,i.default)((0,d.default)((0,d.default)({},r.filter),{},{page:r.page,per_page:r.perPage,order:r.order.direction,order_by:r.order.by})).filter((function(e){var t=(0,f.default)(e,2)[1];return(!(0,l.default)(t)||0!==t.length)&&!!t})))}),[r]);return{query:r,flatQuery:o,actions:n}}function normalizeFetchOptionsResult(e,t){var r=e.endpoints.find((function(e){return e.methods.includes("GET")}));return r?(0,i.default)(r.args).reduce((function(e,r){var n,o=(0,f.default)(r,2),a=o[0],u=o[1];return x.includes(a)?(0,d.default)((0,d.default)({},e),{},(0,s.default)({},a,u)):"filter"===(null===(n=u.additionalProperties)||void 0===n?void 0:n.context)&&t.includes(a)?(0,d.default)((0,d.default)({},e),{},{filter:(0,d.default)((0,d.default)({},e.filter),{},(0,s.default)({},a,u))}):(0,d.default)({},e)}),{filter:{}}):{}}},2722:(e,t,r)=>{"use strict";var n=r(63804),o=r(67394),a=r(67971);o(t,"__esModule",{value:!0}),t.default=function useRouterQueryString(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=(0,s.useLocation)(),r=d(!1),n=(0,l.default)(r,2),o=n[0],a=n[1],c=d(!1),p=(0,l.default)(c,2),v=p[0],m=p[1];return f((function(){if(null!=t&&t.pathname&&!o){var r=e.reduce((function(e,r){var n=wp.url.getQueryArg(t.pathname,r);return void 0===n?e:(0,i.default)((0,i.default)({},e),{},(0,u.default)({},r,n))}),{});m(r),a(!0)}}),[t]),f((function(){if(v){var e=t.pathname.split("?")[0]||"/";history.pushState(void 0,void 0,"#".concat(wp.url.addQueryArgs(e,v)))}}),[v]),[v,m]},r(99236);var u=a(r(18042)),i=a(r(84899)),l=a(r(47834)),s=r(50927),c=n,f=c.useEffect,d=c.useState},34578:(e,t,r)=>{"use strict";var n=r(63804);r(67394)(t,"__esModule",{value:!0}),t.default=function useWatch(e,t){var r=u(!0);a((function(){r.current?r.current=!1:e()}),t)};var o=n,a=o.useEffect,u=o.useRef},63873:(e,t,r)=>{"use strict";var n=r(18194).__;r(67394)(t,"__esModule",{value:!0}),t.default=void 0;var o=r(18194),a=function generalError(){return n("Something went wrong, please try again later.","elementor-pro")},u={trashed:{success:function success(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return(0,o.sprintf)((0,o._n)("%d submission moved to Trash.","%d submissions moved to Trash.",e,"elementor-pro"),e)},error:a},deleted:{success:function success(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return(0,o.sprintf)((0,o._n)("%d submission permanently deleted.","%d submissions permanently deleted.",e,"elementor-pro"),e)},error:a},updated:{success:function success(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return(0,o.sprintf)((0,o._n)("Submission has been successfully updated.","%d submissions have been successfully updated.",e,"elementor-pro"),e)},error:a},restored:{success:function success(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return(0,o.sprintf)((0,o._n)("%d submission restored from Trash.","%d submissions restored from Trash.",e,"elementor-pro"),e)},error:a},markedAsRead:{success:function success(){return null},error:a},markedAsUnread:{success:function success(){return null},error:a},actionLogs:{success:function success(){return n("Action completed successfully.","elementor-pro")},failed:function failed(){return n("Action failed to run, please check your integration.","elementor-pro")}}};t.default=u},35744:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(67394),a=r(52369),u=r(67971);o(t,"__esModule",{value:!0}),t.default=function Index(){var e,t,r,o,a,u=(0,M.useNoticesContext)(),N=u.notifyError,G=u.notifySuccess,H=(0,A.useSettingsContext)().isTrashEnabled,$=L([]),V=(0,p.default)($,2),Q=V[0],X=V[1],z=(0,P.default)("form-submissions/index",{allowedFilters:[D,I,q,U,W,B],useRouterQueryString:!0,hooks:{afterFetch:function afterFetch(){return X([])}}}),K=z.data,Y=z.meta,J=z.fetchOptions,Z=z.fetchData,ee=z.flatQuery,te=z.query,re=te.order,ne=te.filter,oe=z.statuses,ae=oe.fetchOptionsStatus,ue=oe.fetchDataStatus,ie=z.actions,le=ie.setFilter,se=ie.setOrder,ce=ie.setPage,fe=j((function(){return"trash"===ne.status}),[ne.status]),de=(0,R.useExport)({checked:Q,filter:ne}),pe=(0,p.default)(de,2),ve=pe[0],me=pe[1],he=(0,C.default)((function(e,t){var r=(0,p.default)(e,2),n=r[0],o=r[1],a=t.abortController;if(!validateRestAction(n))return l.default.reject();var u=_.default[o?"markedAsRead":"markedAsUnread"];return $e.data.update("form-submissions/index",{is_read:o},n,{signal:a.signal}).then((function(e){var t;return G(u.success((null===(t=e.data.meta)||void 0===t?void 0:t.affected)||1))})).then(Z).catch((function(){return N(u.error())}))})),ye=(0,p.default)(he,1)[0],ge=(0,C.default)((function(e,t){var r=(0,p.default)(e,1)[0],n=t.abortController;return validateRestAction(r)?$e.data.update("form-submissions/restore",{},r,{signal:n.signal}).then((function(e){var t;return G(_.default.restored.success((null===(t=e.data.meta)||void 0===t?void 0:t.affected)||1))})).then(Z).catch((function(){return N(_.default.restored.error())})):l.default.reject()})),_e=(0,p.default)(ge,1)[0],be=(0,C.default)((function(e,t){var r=(0,p.default)(e,1)[0],n=t.abortController;if(!validateRestAction(r))return l.default.reject();var o=_.default[r.force?"deleted":"trashed"];return $e.data.delete("form-submissions/index",r,{signal:n.signal}).then((function(e){var t;return G(o.success((null===(t=e.data.meta)||void 0===t?void 0:t.affected)||1),r.force?null:function(){return _e(r)})})).then(Z).catch((function(){return N(o.error())}))})),xe=(0,p.default)(be,1)[0],Ee=j((function(){return[{key:"view",label:n("View","elementor-pro"),shouldShow:function shouldShow(e){return"trash"!==e.status},props:function props(e){return{to:"/".concat(e.id),onClick:void 0}},component:y.default},{key:"restore",label:n("Restore","elementor-pro"),onApply:function onApply(e){return _e({id:e.id})},shouldShow:function shouldShow(e){return"trash"===e.status}},{key:"trash",label:n("Trash","elementor-pro"),onApply:function onApply(e){return xe({id:e.id})},shouldShow:function shouldShow(e){return"trash"!==e.status&&H},className:"trash"},{key:"delete",label:n("Delete Permanently","elementor-pro"),onApply:function onApply(e){return xe({id:e.id,force:1})},shouldShow:function shouldShow(e){return"trash"===e.status||!H},className:"trash"},{key:"read",label:n("Mark as Read","elementor-pro"),onApply:function onApply(e){return ye({id:e.id},!0)},shouldShow:function shouldShow(e){return"trash"!==e.status&&!e.is_read}},{key:"unread",label:n("Mark as Unread","elementor-pro"),onApply:function onApply(e){return ye({id:e.id},!1)},shouldShow:function shouldShow(e){return"trash"!==e.status&&e.is_read}}]}),[]),we=j((function(){return[{label:n("Mark as Read","elementor-pro"),value:"read",onApply:function onApply(){return ye({ids:Q},!0)},shouldShow:function shouldShow(){return!fe}},{label:n("Mark as Unread","elementor-pro"),value:"unread",onApply:function onApply(){return ye({ids:Q},!1)},shouldShow:function shouldShow(){return!fe}},{label:n("Move to Trash","elementor-pro"),value:"trash",onApply:function onApply(){return xe({ids:Q})},shouldShow:function shouldShow(){return!fe&&H}},{label:n("Delete Permanently","elementor-pro"),value:"delete",onApply:function onApply(){return xe({ids:Q,force:1})},shouldShow:function shouldShow(){return fe||!H}},{label:n("Restore","elementor-pro"),value:"restore",onApply:function onApply(){return _e({ids:Q})},shouldShow:function shouldShow(){return fe}}].filter((function(e){return e.shouldShow()}))}),[Q,fe]),Se=j((function(){return{main_meta_id:{label:n("Main","elementor-pro"),className:"column-primary"},actions_log_status:{label:n("Actions Status","elementor-pro"),className:"column-actions"},form:{label:n("Form","elementor-pro"),className:"column-form"},page:{label:n("Page","elementor-pro"),className:"column-page"},id:{label:n("ID","elementor-pro"),className:"column-id"},created_at:{label:n("Submission Date","elementor-pro"),className:"column-date"}}}),[]),Ce=i.default.createElement(T.default.Row,null,i.default.createElement(T.default.Cell,{className:"manage-column bulk-checkbox-column"},i.default.createElement(v.default.Bulk,{checkedGroup:Q,onChange:X,allValues:K.map((function(e){return e.id}))})),(0,s.default)(Se).map((function(e){var t,r=(0,p.default)(e,2),n=r[0],o=r[1],a={component:"th",className:"manage-column ".concat(o.className||"")};return null!==(t=J.order_by)&&void 0!==t&&t.enum.includes(n)?i.default.createElement(T.default.OrderableCell,(0,d.default)({},a,{key:n,order:{key:n,current:re,onChange:function onChange(e){return se(e)}}}),o.label):i.default.createElement(T.default.Cell,(0,d.default)({key:n},a),o.label)}))),Pe=i.default.createElement("div",{className:"alignright"},i.default.createElement(h.default,{onClick:function onClick(){var e;ve(R.EXPORT_MODE_SELECTED===me.mode?{ids:Q}:(0,f.default)({},ee),Q.length||(null===(e=Y.pagination)||void 0===e?void 0:e.total))},isLoading:C.STATUS_LOADING===me.status,progress:me.progress,mode:me.mode,disabled:!(null!==(e=Y.pagination)&&void 0!==e&&e.total)&&C.STATUS_LOADING!==me.status})),ke=Y.pagination&&i.default.createElement(b.default,{total:Y.pagination.total,currentPage:Y.pagination.current_page,lastPage:Y.pagination.last_page,perPage:Y.pagination.per_page,onChange:function onChange(e){return ce(e)}});if(C.STATUS_SUCCESS!==ae)return n("Loading...","elementor-pro");return i.default.createElement(i.default.Fragment,null,i.default.createElement("div",null,(null===(t=J.filter)||void 0===t?void 0:t.search)&&i.default.createElement(w.default,{key:D,value:ne.search,onChange:function onChange(e){return le((0,c.default)({},D,e))},isSearching:!!ne.search&&ue===C.STATUS_LOADING}),(null===(r=J.filter)||void 0===r?void 0:r.status)&&i.default.createElement(g.default,{options:J.filter.status.enum.map((function(e){var t,r;return{value:e,label:J.filter.status.additionalProperties.options.labels[e],count:null===(t=Y.count)||void 0===t?void 0:t[e],shouldShow:"all"===e||(null===(r=Y.count)||void 0===r?void 0:r[e])>0}})),value:ne.status,onChange:function onChange(e){return le((0,c.default)({},I,e))}}),i.default.createElement("div",{className:"clear"}),i.default.createElement("div",{className:"tablenav top"},i.default.createElement(O.BulkActionSelect,{actions:we,className:"alignleft"}),i.default.createElement("div",{className:"alignleft actions"},(null===(o=J.filter)||void 0===o?void 0:o.referer)&&i.default.createElement(x.default,{value:ne.referer||"",onChange:function onChange(e){return le((0,c.default)({},U,e))}}),(null===(a=J.filter)||void 0===a?void 0:a.form)&&i.default.createElement(E.default,{value:ne.form||"",onChange:function onChange(e){return le((0,c.default)({},q,e))},options:[{value:"",label:n("All Forms","elementor-pro")}],resourceOptions:J.filter.form.additionalProperties.options,name:q,label:n("Filter by form","elementor-pro")}),i.default.createElement(m.default,{value:{after:ne.after,before:ne.before},onChange:function onChange(e){var t=e.after,r=e.before;le((0,f.default)((0,f.default)({},void 0!==t?(0,c.default)({},W,t):{}),void 0!==r?(0,c.default)({},B,r):{}))},label:n("Filter by date","elementor-pro"),name:"date"})),Pe,ke),i.default.createElement(T.default,{className:"e-form-submissions-list-table striped table-view-list"},Ce&&i.default.createElement(T.default.Header,null,Ce),i.default.createElement(T.default.Body,null,0===K.length&&i.default.createElement(T.default.Row,{className:"no-items"},i.default.createElement(T.default.Cell,{className:"colspanchange",colSpan:7},n("No submissions found.","elementor-pro"))),K.map((function(e){var t=Ee.filter((function(t){return t.shouldShow(e)}));return i.default.createElement(S.default,{key:e.id,item:e,tableTitles:Se,checkBoxComponent:i.default.createElement(v.default,{checkedGroup:Q,onChange:X,value:e.id}),rowActionComponent:i.default.createElement(T.default.RowActions,{actions:t,item:e})})}))),Ce&&i.default.createElement(T.default.Footer,null,Ce)),i.default.createElement("div",{className:"tablenav bottom"},i.default.createElement(O.BulkActionSelect,{actions:we,className:"alignleft"}),Pe,ke)))};var i=u(r(63804)),l=u(r(73220)),s=u(r(38923));r(64434),r(90286),r(3777),r(38081),r(42679);var c=u(r(18042)),f=u(r(84899)),d=u(r(37959)),p=u(r(47834)),v=u(r(13682)),m=u(r(48059)),h=u(r(63906)),y=u(r(57403)),g=u(r(28825)),_=u(r(63873)),b=u(r(31459)),x=u(r(57767)),E=u(r(95544)),w=u(r(95240)),S=u(r(20005)),C=a(r(47937)),P=u(r(45589)),T=u(r(18939)),O=r(29017),R=r(99194),M=r(26062),A=r(39848),N=i.default,j=N.useMemo,L=N.useState,D="search",I="status",q="form",U="referer",W="after",B="before";function validateRestAction(e){return e.id||e.ids&&e.ids.length>0}},13746:(e,t,r)=>{"use strict";var n=r(18194).__,o=r(23615),a=r(67394),u=r(52369),i=r(67971);a(t,"__esModule",{value:!0}),t.default=Item;var l=i(r(63804));r(90286),r(76139),r(12897),r(93085),r(99745);var s=i(r(83452)),c=i(r(18042)),f=i(r(84899)),d=i(r(47834)),p=i(r(18939)),v=r(50927),m=r(26062),h=i(r(38044)),y=i(r(50361)),g=i(r(63873)),_=u(r(47937)),b=r(55301),x=i(r(9036)),E=r(39848),w=l.default,S=w.useEffect,C=w.useState,P=w.useMemo;function Item(e){var t,r=C({data:{},meta:{}}),o=(0,d.default)(r,2),a=o[0].data,u=o[1],i=C(null),w=(0,d.default)(i,2),T=w[0],O=w[1],R=C(!1),M=(0,d.default)(R,2),A=M[0],N=M[1],j=C({}),L=(0,d.default)(j,2),D=L[0],I=L[1],q=(0,v.useNavigate)(),U=(0,m.useNoticesContext)(),W=U.notifySuccess,B=U.notifyError,G=(0,E.useSettingsContext)().isTrashEnabled,H=P((function(){var e;return null===(e=a.form)||void 0===e?void 0:e.fields.reduce((function(e,t){return(0,f.default)((0,f.default)({},e),{},(0,c.default)({},t.id,t))}),{})}),[null===(t=a.form)||void 0===t?void 0:t.fields]);S((function(){$e.data.get("form-submissions/index",{id:e.id},{refresh:!0}).then((function(e){return u(e.data),e.data})).then((function(t){t.data.is_read||$e.data.update("form-submissions/index",{is_read:!0},{id:e.id})})).catch((function(e){return O(e)}))}),[]);var $=(0,_.default)((function(t,r){var n=(0,d.default)(t,1)[0],o=void 0===n?{}:n,a=r.abortController,u=g.default[o.force?"deleted":"trashed"];return $e.data.delete("form-submissions/index",(0,f.default)({id:e.id},o),{signal:a.signal}).then((function(){return W(u.success(1))})).then((function(){return q("/")})).catch((function(){return B(u.error())}))}),[e.id]),V=(0,d.default)($,1)[0],Q=(0,_.default)((function(t){var r=(0,d.default)(t,1)[0];return $e.data.update("form-submissions/index",{values:r},{id:e.id}).then((function(e){return u(e.data)})).then((function(){N(!1),I({})})).then((function(){return W(g.default.updated.success(1))})).catch((function(){return B(g.default.updated.error())}))}),[e.id]),X=(0,d.default)(Q,2),z=X[0],K=X[1].status;return(0,s.default)(a).length?l.default.createElement("div",{id:"poststuff"},l.default.createElement("form",{id:"post-body",className:"metabox-holder columns-2",onSubmit:function onSubmit(e){e.preventDefault(),A&&K!==_.STATUS_LOADING&&z(D)}},l.default.createElement("div",{id:"post-body-content"},l.default.createElement("div",{className:"e-form-submissions-main"},l.default.createElement(h.default,{header:l.default.createElement("div",{className:"e-form-submissions-main__header"},l.default.createElement("h2",null,n("Submission","elementor-pro")," #",a.id),l.default.createElement("button",{onClick:function onClick(e){e.preventDefault(),K!==_.STATUS_LOADING&&N((function(e){return!e}))},className:"button button-secondary",type:"button",disabled:K===_.STATUS_LOADING},n(A?"Cancel":"Edit","elementor-pro")))},l.default.createElement(p.default,{className:"e-form-submissions-item-table"},l.default.createElement(p.default.Body,null,a.values.map((function(e){var t;return l.default.createElement(p.default.Row,{key:e.id},l.default.createElement(p.default.Cell,null,(null==H||null===(t=H[e.key])||void 0===t?void 0:t.label)||e.key),l.default.createElement(p.default.Cell,null,l.default.createElement(x.default,{value:e.value,field:(null==H?void 0:H[e.key])||{id:e.key,type:"text"},isEditMode:A,onChange:function onChange(e,t){return I((function(r){return(0,f.default)((0,f.default)({},r),{},(0,c.default)({},e,t))}))}})))})))))),a.form_actions_log&&l.default.createElement(y.default,{actions:a.form_actions_log})),l.default.createElement("div",{className:"postbox-container",id:"postbox-container-1"},l.default.createElement(h.default,{header:l.default.createElement("h2",null,n("Additional Info","elementor-pro")," ")},l.default.createElement("div",{className:"submitbox"},l.default.createElement("div",{id:"misc-publishing-actions"},a.post&&l.default.createElement("div",{className:"misc-pub-section"},n("Form:","elementor-pro")," ",l.default.createElement("a",{href:a.post.edit_url,target:"_blank",rel:"noreferrer"},a.form.name," (#",a.form.element_id,")")),l.default.createElement("div",{className:"misc-pub-section"},n("Page:","elementor-pro")," ",l.default.createElement("a",{href:a.referer,target:"_blank",rel:"noreferrer"},a.referer_title||l.default.createElement("i",{className:"eicon-editor-external-link e-form-submissions-referer-icon"}))),l.default.createElement("div",{className:"misc-pub-section"},n("Create Date:","elementor-pro")," ",l.default.createElement("strong",null,(0,b.formatToLocalDateTime)(a.created_at))),l.default.createElement("div",{className:"misc-pub-section"},n("Update Date:","elementor-pro")," ",l.default.createElement("strong",null,(0,b.formatToLocalDateTime)(a.updated_at))),a.user_name&&l.default.createElement("div",{className:"misc-pub-section"},n("User Name:","elementor-pro")," ",l.default.createElement("strong",null,a.user_name)),l.default.createElement("div",{className:"misc-pub-section"},n("User IP:","elementor-pro")," ",l.default.createElement("strong",null,a.user_ip)),l.default.createElement("div",{className:"misc-pub-section"},n("User Agent:","elementor-pro")," ",l.default.createElement("strong",null,a.user_agent))),l.default.createElement("div",{id:"major-publishing-actions"},l.default.createElement("div",{id:"delete-action"},l.default.createElement("a",{className:"submitdelete deletion",href:"#",onClick:function onClick(e){e.preventDefault(),V({force:G?0:1})}},n(G?"Move to Trash":"Delete Permanently","elementor-pro"))),l.default.createElement("div",{id:"publishing-action"},l.default.createElement("button",{type:"submit",name:"save",id:"publish",className:"button button-primary button-large",disabled:!A||K===_.STATUS_LOADING},n("Update","elementor-pro"))),l.default.createElement("div",{className:"clear"})))))),l.default.createElement("br",{className:"clear"})):T?l.default.createElement("p",null," ",T.message||n("Not Found","elementor-pro")," "):n("Loading...","elementor-pro")}Item.propTypes={id:o.string}},55301:(e,t,r)=>{"use strict";r(67394)(t,"__esModule",{value:!0}),t.formatToLocalDate=formatToLocalDate,t.formatToLocalTime=formatToLocalTime,t.formatToLocalDateTime=function formatToLocalDateTime(e){return"".concat(formatToLocalDate(e)," ").concat(formatToLocalTime(e))};var n=moment.localeData();function formatToLocalDate(e){return wp.date.format(n.longDateFormat("LL"),e)}function formatToLocalTime(e){return wp.date.format(n.longDateFormat("LT"),e)}},6642:(e,t,r)=>{"use strict";r(67394)(t,"__esModule",{value:!0}),t.default=function downloadBlob(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=document.createElement("a");r.setAttribute("href",URL.createObjectURL(e)),r.style.visibility="hidden",t&&r.setAttribute("download",t);document.body.appendChild(r),r.click(),document.body.removeChild(r)}},7421:(e,t,r)=>{r(99572),r(37627),e.exports=r(47208).Array.from},70157:(e,t,r)=>{r(42580),e.exports=r(47208).Array.isArray},55966:(e,t,r)=>{r(31477),e.exports=r(47208).Date.now},66458:(e,t,r)=>{r(99954),e.exports=r(47208).Object.assign},14710:(e,t,r)=>{r(30785);var n=r(47208).Object;e.exports=function create(e,t){return n.create(e,t)}},23022:(e,t,r)=>{r(23078);var n=r(47208).Object;e.exports=function defineProperties(e,t){return n.defineProperties(e,t)}},43153:(e,t,r)=>{r(40168);var n=r(47208).Object;e.exports=function defineProperty(e,t,r){return n.defineProperty(e,t,r)}},8531:(e,t,r)=>{r(95260),e.exports=r(47208).Object.entries},32622:(e,t,r)=>{r(18576);var n=r(47208).Object;e.exports=function getOwnPropertyDescriptor(e,t){return n.getOwnPropertyDescriptor(e,t)}},27410:(e,t,r)=>{r(67685),e.exports=r(47208).Object.getOwnPropertyDescriptors},19035:(e,t,r)=>{r(54370),e.exports=r(47208).Object.getOwnPropertySymbols},58535:(e,t,r)=>{r(4840),e.exports=r(47208).Object.getPrototypeOf},97220:(e,t,r)=>{r(5453),e.exports=r(47208).Object.keys},65135:(e,t,r)=>{r(13890),e.exports=r(47208).Object.setPrototypeOf},69591:(e,t,r)=>{r(57188),e.exports=r(47208).Object.values},76483:(e,t,r)=>{r(70285),r(99572),r(74114),r(86082),r(81522),r(25757),e.exports=r(47208).Promise},43094:(e,t,r)=>{r(11320),e.exports=r(47208).Reflect.construct},19103:(e,t,r)=>{r(54370),r(70285),r(87573),r(97224),e.exports=r(47208).Symbol},39871:(e,t,r)=>{r(99572),r(74114),e.exports=r(7273).f("iterator")},89999:(e,t,r)=>{r(70285),r(74114),r(23337),r(10143),r(92797),e.exports=r(47208).WeakMap},26610:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},29697:e=>{e.exports=function(){}},54677:e=>{e.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},30498:(e,t,r)=>{var n=r(39632);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},69191:(e,t,r)=>{var n=r(1504),o=r(37154),a=r(46723);e.exports=function(e){return function(t,r,u){var i,l=n(t),s=o(l.length),c=a(u,s);if(e&&r!=r){for(;s>c;)if((i=l[c++])!=i)return!0}else for(;s>c;c++)if((e||c in l)&&l[c]===r)return e||c||0;return!e&&-1}}},97647:(e,t,r)=>{var n=r(61725),o=r(13115),a=r(60061),u=r(37154),i=r(41904);e.exports=function(e,t){var r=1==e,l=2==e,s=3==e,c=4==e,f=6==e,d=5==e||f,p=t||i;return function(t,i,v){for(var m,h,y=a(t),g=o(y),_=n(i,v,3),b=u(g.length),x=0,E=r?p(t,b):l?p(t,0):void 0;b>x;x++)if((d||x in g)&&(h=_(m=g[x],x,y),e))if(r)E[x]=h;else if(h)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:E.push(m)}else if(c)return!1;return f?-1:s||c?c:E}}},88320:(e,t,r)=>{var n=r(39632),o=r(7359),a=r(24300)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),n(t)&&null===(t=t[a])&&(t=void 0)),void 0===t?Array:t}},41904:(e,t,r)=>{var n=r(88320);e.exports=function(e,t){return new(n(e))(t)}},45515:(e,t,r)=>{"use strict";var n=r(26610),o=r(39632),a=r(19897),u=[].slice,i={},construct=function(e,t,r){if(!(t in i)){for(var n=[],o=0;o<t;o++)n[o]="a["+o+"]";i[t]=Function("F,a","return new F("+n.join(",")+")")}return i[t](e,r)};e.exports=Function.bind||function bind(e){var t=n(this),r=u.call(arguments,1),bound=function(){var n=r.concat(u.call(arguments));return this instanceof bound?construct(t,n.length,n):a(t,n,e)};return o(t.prototype)&&(bound.prototype=t.prototype),bound}},8312:(e,t,r)=>{var n=r(41352),o=r(24300)("toStringTag"),a="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:a?n(t):"Object"==(u=n(t))&&"function"==typeof t.callee?"Arguments":u}},41352:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},92600:(e,t,r)=>{"use strict";var n=r(13199),o=r(6758).getWeak,a=r(30498),u=r(39632),i=r(54677),l=r(25985),s=r(97647),c=r(20657),f=r(41081),d=s(5),p=s(6),v=0,uncaughtFrozenStore=function(e){return e._l||(e._l=new UncaughtFrozenStore)},UncaughtFrozenStore=function(){this.a=[]},findUncaughtFrozen=function(e,t){return d(e.a,(function(e){return e[0]===t}))};UncaughtFrozenStore.prototype={get:function(e){var t=findUncaughtFrozen(this,e);if(t)return t[1]},has:function(e){return!!findUncaughtFrozen(this,e)},set:function(e,t){var r=findUncaughtFrozen(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=p(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,r,a){var s=e((function(e,n){i(e,s,t,"_i"),e._t=t,e._i=v++,e._l=void 0,null!=n&&l(n,r,e[a],e)}));return n(s.prototype,{delete:function(e){if(!u(e))return!1;var r=o(e);return!0===r?uncaughtFrozenStore(f(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function has(e){if(!u(e))return!1;var r=o(e);return!0===r?uncaughtFrozenStore(f(this,t)).has(e):r&&c(r,this._i)}}),s},def:function(e,t,r){var n=o(a(t),!0);return!0===n?uncaughtFrozenStore(e).set(t,r):n[e._i]=r,e},ufstore:uncaughtFrozenStore}},70770:(e,t,r)=>{"use strict";var n=r(43280),o=r(98310),a=r(6758),u=r(90472),i=r(62292),l=r(13199),s=r(25985),c=r(54677),f=r(39632),d=r(2413),p=r(60510).f,v=r(97647)(0),m=r(75179);e.exports=function(e,t,r,h,y,g){var _=n[e],b=_,x=y?"set":"add",E=b&&b.prototype,w={};return m&&"function"==typeof b&&(g||E.forEach&&!u((function(){(new b).entries().next()})))?(b=t((function(t,r){c(t,b,e,"_c"),t._c=new _,null!=r&&s(r,y,t[x],t)})),v("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in E)||g&&"clear"==e||i(b.prototype,e,(function(r,n){if(c(this,b,e),!t&&g&&!f(r))return"get"==e&&void 0;var o=this._c[e](0===r?0:r,n);return t?this:o}))})),g||p(b.prototype,"size",{get:function(){return this._c.size}})):(b=h.getConstructor(t,e,y,x),l(b.prototype,r),a.NEED=!0),d(b,e),w[e]=b,o(o.G+o.W+o.F,w),g||h.setStrong(b,e,y),b}},47208:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},87352:(e,t,r)=>{"use strict";var n=r(60510),o=r(48439);e.exports=function(e,t,r){t in e?n.f(e,t,o(0,r)):e[t]=r}},61725:(e,t,r)=>{var n=r(26610);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},18239:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},75179:(e,t,r)=>{e.exports=!r(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(e,t,r)=>{var n=r(39632),o=r(43280).document,a=n(o)&&n(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},31986:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(e,t,r)=>{var n=r(86425),o=r(97739),a=r(67410);e.exports=function(e){var t=n(e),r=o.f;if(r)for(var u,i=r(e),l=a.f,s=0;i.length>s;)l.call(e,u=i[s++])&&t.push(u);return t}},98310:(e,t,r)=>{var n=r(43280),o=r(47208),a=r(61725),u=r(62292),i=r(20657),$export=function(e,t,r){var l,s,c,f=e&$export.F,d=e&$export.G,p=e&$export.S,v=e&$export.P,m=e&$export.B,h=e&$export.W,y=d?o:o[t]||(o[t]={}),g=y.prototype,_=d?n:p?n[t]:(n[t]||{}).prototype;for(l in d&&(r=t),r)(s=!f&&_&&void 0!==_[l])&&i(y,l)||(c=s?_[l]:r[l],y[l]=d&&"function"!=typeof _[l]?r[l]:m&&s?a(c,n):h&&_[l]==c?function(e){var F=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return F.prototype=e.prototype,F}(c):v&&"function"==typeof c?a(Function.call,c):c,v&&((y.virtual||(y.virtual={}))[l]=c,e&$export.R&&g&&!g[l]&&u(g,l,c)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},90472:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},25985:(e,t,r)=>{var n=r(61725),o=r(93086),a=r(11827),u=r(30498),i=r(37154),l=r(26116),s={},c={},f=e.exports=function(e,t,r,f,d){var p,v,m,h,y=d?function(){return e}:l(e),g=n(r,f,t?2:1),_=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(a(y)){for(p=i(e.length);p>_;_++)if((h=t?g(u(v=e[_])[0],v[1]):g(e[_]))===s||h===c)return h}else for(m=y.call(e);!(v=m.next()).done;)if((h=o(m,g,v.value,t))===s||h===c)return h};f.BREAK=s,f.RETURN=c},43280:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},20657:e=>{var t={}.hasOwnProperty;e.exports=function(e,r){return t.call(e,r)}},62292:(e,t,r)=>{var n=r(60510),o=r(48439);e.exports=r(75179)?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},92477:(e,t,r)=>{var n=r(43280).document;e.exports=n&&n.documentElement},64457:(e,t,r)=>{e.exports=!r(75179)&&!r(90472)((function(){return 7!=Object.defineProperty(r(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:e=>{e.exports=function(e,t,r){var n=void 0===r;switch(t.length){case 0:return n?e():e.call(r);case 1:return n?e(t[0]):e.call(r,t[0]);case 2:return n?e(t[0],t[1]):e.call(r,t[0],t[1]);case 3:return n?e(t[0],t[1],t[2]):e.call(r,t[0],t[1],t[2]);case 4:return n?e(t[0],t[1],t[2],t[3]):e.call(r,t[0],t[1],t[2],t[3])}return e.apply(r,t)}},13115:(e,t,r)=>{var n=r(41352);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},11827:(e,t,r)=>{var n=r(79105),o=r(24300)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||a[o]===e)}},7359:(e,t,r)=>{var n=r(41352);e.exports=Array.isArray||function isArray(e){return"Array"==n(e)}},39632:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},93086:(e,t,r)=>{var n=r(30498);e.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var a=e.return;throw void 0!==a&&n(a.call(e)),t}}},19802:(e,t,r)=>{"use strict";var n=r(82488),o=r(48439),a=r(2413),u={};r(62292)(u,r(24300)("iterator"),(function(){return this})),e.exports=function(e,t,r){e.prototype=n(u,{next:o(1,r)}),a(e,t+" Iterator")}},6125:(e,t,r)=>{"use strict";var n=r(36794),o=r(98310),a=r(19312),u=r(62292),i=r(79105),l=r(19802),s=r(2413),c=r(999),f=r(24300)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",v="values",returnThis=function(){return this};e.exports=function(e,t,r,m,h,y,g){l(r,t,m);var _,b,x,getMethod=function(e){if(!d&&e in C)return C[e];switch(e){case p:return function keys(){return new r(this,e)};case v:return function values(){return new r(this,e)}}return function entries(){return new r(this,e)}},E=t+" Iterator",w=h==v,S=!1,C=e.prototype,P=C[f]||C["@@iterator"]||h&&C[h],T=P||getMethod(h),O=h?w?getMethod("entries"):T:void 0,R="Array"==t&&C.entries||P;if(R&&(x=c(R.call(new e)))!==Object.prototype&&x.next&&(s(x,E,!0),n||"function"==typeof x[f]||u(x,f,returnThis)),w&&P&&P.name!==v&&(S=!0,T=function values(){return P.call(this)}),n&&!g||!d&&!S&&C[f]||u(C,f,T),i[t]=T,i[E]=returnThis,h)if(_={values:w?T:getMethod(v),keys:y?T:getMethod(p),entries:O},g)for(b in _)b in C||a(C,b,_[b]);else o(o.P+o.F*(d||S),t,_);return _}},26797:(e,t,r)=>{var n=r(24300)("iterator"),o=!1;try{var a=[7][n]();a.return=function(){o=!0},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var a=[7],u=a[n]();u.next=function(){return{done:r=!0}},a[n]=function(){return u},e(a)}catch(e){}return r}},9329:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},79105:e=>{e.exports={}},36794:e=>{e.exports=!0},6758:(e,t,r)=>{var n=r(54251)("meta"),o=r(39632),a=r(20657),u=r(60510).f,i=0,l=Object.isExtensible||function(){return!0},s=!r(90472)((function(){return l(Object.preventExtensions({}))})),setMeta=function(e){u(e,n,{value:{i:"O"+ ++i,w:{}}})},c=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,n)){if(!l(e))return"F";if(!t)return"E";setMeta(e)}return e[n].i},getWeak:function(e,t){if(!a(e,n)){if(!l(e))return!0;if(!t)return!1;setMeta(e)}return e[n].w},onFreeze:function(e){return s&&c.NEED&&l(e)&&!a(e,n)&&setMeta(e),e}}},4326:(e,t,r)=>{var n=r(43280),o=r(6022).set,a=n.MutationObserver||n.WebKitMutationObserver,u=n.process,i=n.Promise,l="process"==r(41352)(u);e.exports=function(){var e,t,r,flush=function(){var n,o;for(l&&(n=u.domain)&&n.exit();e;){o=e.fn,e=e.next;try{o()}catch(n){throw e?r():t=void 0,n}}t=void 0,n&&n.enter()};if(l)r=function(){u.nextTick(flush)};else if(!a||n.navigator&&n.navigator.standalone)if(i&&i.resolve){var s=i.resolve(void 0);r=function(){s.then(flush)}}else r=function(){o.call(n,flush)};else{var c=!0,f=document.createTextNode("");new a(flush).observe(f,{characterData:!0}),r=function(){f.data=c=!c}}return function(n){var o={fn:n,next:void 0};t&&(t.next=o),e||(e=o,r()),t=o}}},88579:(e,t,r)=>{"use strict";var n=r(26610);function PromiseCapability(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)}e.exports.f=function(e){return new PromiseCapability(e)}},77995:(e,t,r)=>{"use strict";var n=r(75179),o=r(86425),a=r(97739),u=r(67410),i=r(60061),l=r(13115),s=Object.assign;e.exports=!s||r(90472)((function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach((function(e){t[e]=e})),7!=s({},e)[r]||Object.keys(s({},t)).join("")!=n}))?function assign(e,t){for(var r=i(e),s=arguments.length,c=1,f=a.f,d=u.f;s>c;)for(var p,v=l(arguments[c++]),m=f?o(v).concat(f(v)):o(v),h=m.length,y=0;h>y;)p=m[y++],n&&!d.call(v,p)||(r[p]=v[p]);return r}:s},82488:(e,t,r)=>{var n=r(30498),o=r(36607),a=r(31986),u=r(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=r(48765)("iframe"),n=a.length;for(t.style.display="none",r(92477).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;n--;)delete createDict.prototype[a[n]];return createDict()};e.exports=Object.create||function create(e,t){var r;return null!==e?(Empty.prototype=n(e),r=new Empty,Empty.prototype=null,r[u]=e):r=createDict(),void 0===t?r:o(r,t)}},60510:(e,t,r)=>{var n=r(30498),o=r(64457),a=r(12737),u=Object.defineProperty;t.f=r(75179)?Object.defineProperty:function defineProperty(e,t,r){if(n(e),t=a(t,!0),n(r),o)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},36607:(e,t,r)=>{var n=r(60510),o=r(30498),a=r(86425);e.exports=r(75179)?Object.defineProperties:function defineProperties(e,t){o(e);for(var r,u=a(t),i=u.length,l=0;i>l;)n.f(e,r=u[l++],t[r]);return e}},83264:(e,t,r)=>{var n=r(67410),o=r(48439),a=r(1504),u=r(12737),i=r(20657),l=r(64457),s=Object.getOwnPropertyDescriptor;t.f=r(75179)?s:function getOwnPropertyDescriptor(e,t){if(e=a(e),t=u(t,!0),l)try{return s(e,t)}catch(e){}if(i(e,t))return o(!n.f.call(e,t),e[t])}},26084:(e,t,r)=>{var n=r(1504),o=r(8772).f,a={}.toString,u="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function getOwnPropertyNames(e){return u&&"[object Window]"==a.call(e)?function(e){try{return o(e)}catch(e){return u.slice()}}(e):o(n(e))}},8772:(e,t,r)=>{var n=r(65326),o=r(31986).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return n(e,o)}},97739:(e,t)=>{t.f=Object.getOwnPropertySymbols},999:(e,t,r)=>{var n=r(20657),o=r(60061),a=r(18478)("IE_PROTO"),u=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},65326:(e,t,r)=>{var n=r(20657),o=r(1504),a=r(69191)(!1),u=r(18478)("IE_PROTO");e.exports=function(e,t){var r,i=o(e),l=0,s=[];for(r in i)r!=u&&n(i,r)&&s.push(r);for(;t.length>l;)n(i,r=t[l++])&&(~a(s,r)||s.push(r));return s}},86425:(e,t,r)=>{var n=r(65326),o=r(31986);e.exports=Object.keys||function keys(e){return n(e,o)}},67410:(e,t)=>{t.f={}.propertyIsEnumerable},57972:(e,t,r)=>{var n=r(98310),o=r(47208),a=r(90472);e.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],u={};u[e]=t(r),n(n.S+n.F*a((function(){r(1)})),"Object",u)}},9480:(e,t,r)=>{var n=r(75179),o=r(86425),a=r(1504),u=r(67410).f;e.exports=function(e){return function(t){for(var r,i=a(t),l=o(i),s=l.length,c=0,f=[];s>c;)r=l[c++],n&&!u.call(i,r)||f.push(e?[r,i[r]]:i[r]);return f}}},64344:(e,t,r)=>{var n=r(8772),o=r(97739),a=r(30498),u=r(43280).Reflect;e.exports=u&&u.ownKeys||function ownKeys(e){var t=n.f(a(e)),r=o.f;return r?t.concat(r(e)):t}},52745:e=>{e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},88747:(e,t,r)=>{var n=r(30498),o=r(39632),a=r(88579);e.exports=function(e,t){if(n(e),o(t)&&t.constructor===e)return t;var r=a.f(e);return(0,r.resolve)(t),r.promise}},48439:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},13199:(e,t,r)=>{var n=r(62292);e.exports=function(e,t,r){for(var o in t)r&&e[o]?e[o]=t[o]:n(e,o,t[o]);return e}},19312:(e,t,r)=>{e.exports=r(62292)},14689:(e,t,r)=>{"use strict";var n=r(98310),o=r(26610),a=r(61725),u=r(25985);e.exports=function(e){n(n.S,e,{from:function from(e){var t,r,n,i,l=arguments[1];return o(this),(t=void 0!==l)&&o(l),null==e?new this:(r=[],t?(n=0,i=a(l,arguments[2],2),u(e,!1,(function(e){r.push(i(e,n++))}))):u(e,!1,r.push,r),new this(r))}})}},7883:(e,t,r)=>{"use strict";var n=r(98310);e.exports=function(e){n(n.S,e,{of:function of(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},25574:(e,t,r)=>{var n=r(39632),o=r(30498),check=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{(n=r(61725)(Function.call,r(83264).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function setPrototypeOf(e,r){return check(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check}},5698:(e,t,r)=>{"use strict";var n=r(43280),o=r(47208),a=r(60510),u=r(75179),i=r(24300)("species");e.exports=function(e){var t="function"==typeof o[e]?o[e]:n[e];u&&t&&!t[i]&&a.f(t,i,{configurable:!0,get:function(){return this}})}},2413:(e,t,r)=>{var n=r(60510).f,o=r(20657),a=r(24300)("toStringTag");e.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,a)&&n(e,a,{configurable:!0,value:t})}},18478:(e,t,r)=>{var n=r(29990)("keys"),o=r(54251);e.exports=function(e){return n[e]||(n[e]=o(e))}},29990:(e,t,r)=>{var n=r(47208),o=r(43280),a="__core-js_shared__",u=o[a]||(o[a]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},73732:(e,t,r)=>{var n=r(30498),o=r(26610),a=r(24300)("species");e.exports=function(e,t){var r,u=n(e).constructor;return void 0===u||null==(r=n(u)[a])?t:o(r)}},78502:(e,t,r)=>{var n=r(58290),o=r(18239);e.exports=function(e){return function(t,r){var a,u,i=String(o(t)),l=n(r),s=i.length;return l<0||l>=s?e?"":void 0:(a=i.charCodeAt(l))<55296||a>56319||l+1===s||(u=i.charCodeAt(l+1))<56320||u>57343?e?i.charAt(l):a:e?i.slice(l,l+2):u-56320+(a-55296<<10)+65536}}},6022:(e,t,r)=>{var n,o,a,u=r(61725),i=r(19897),l=r(92477),s=r(48765),c=r(43280),f=c.process,d=c.setImmediate,p=c.clearImmediate,v=c.MessageChannel,m=c.Dispatch,h=0,y={},g="onreadystatechange",run=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},listener=function(e){run.call(e.data)};d&&p||(d=function setImmediate(e){for(var t=[],r=1;arguments.length>r;)t.push(arguments[r++]);return y[++h]=function(){i("function"==typeof e?e:Function(e),t)},n(h),h},p=function clearImmediate(e){delete y[e]},"process"==r(41352)(f)?n=function(e){f.nextTick(u(run,e,1))}:m&&m.now?n=function(e){m.now(u(run,e,1))}:v?(a=(o=new v).port2,o.port1.onmessage=listener,n=u(a.postMessage,a,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(n=function(e){c.postMessage(e+"","*")},c.addEventListener("message",listener,!1)):n=g in s("script")?function(e){l.appendChild(s("script")).onreadystatechange=function(){l.removeChild(this),run.call(e)}}:function(e){setTimeout(u(run,e,1),0)}),e.exports={set:d,clear:p}},46723:(e,t,r)=>{var n=r(58290),o=Math.max,a=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):a(e,t)}},58290:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},1504:(e,t,r)=>{var n=r(13115),o=r(18239);e.exports=function(e){return n(o(e))}},37154:(e,t,r)=>{var n=r(58290),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},60061:(e,t,r)=>{var n=r(18239);e.exports=function(e){return Object(n(e))}},12737:(e,t,r)=>{var n=r(39632);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},54251:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},35701:(e,t,r)=>{var n=r(43280).navigator;e.exports=n&&n.userAgent||""},41081:(e,t,r)=>{var n=r(39632);e.exports=function(e,t){if(!n(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},31164:(e,t,r)=>{var n=r(43280),o=r(47208),a=r(36794),u=r(7273),i=r(60510).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=a?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||i(t,e,{value:u.f(e)})}},7273:(e,t,r)=>{t.f=r(24300)},24300:(e,t,r)=>{var n=r(29990)("wks"),o=r(54251),a=r(43280).Symbol,u="function"==typeof a;(e.exports=function(e){return n[e]||(n[e]=u&&a[e]||(u?a:o)("Symbol."+e))}).store=n},26116:(e,t,r)=>{var n=r(8312),o=r(24300)("iterator"),a=r(79105);e.exports=r(47208).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||a[n(e)]}},37627:(e,t,r)=>{"use strict";var n=r(61725),o=r(98310),a=r(60061),u=r(93086),i=r(11827),l=r(37154),s=r(87352),c=r(26116);o(o.S+o.F*!r(26797)((function(e){Array.from(e)})),"Array",{from:function from(e){var t,r,o,f,d=a(e),p="function"==typeof this?this:Array,v=arguments.length,m=v>1?arguments[1]:void 0,h=void 0!==m,y=0,g=c(d);if(h&&(m=n(m,v>2?arguments[2]:void 0,2)),null==g||p==Array&&i(g))for(r=new p(t=l(d.length));t>y;y++)s(r,y,h?m(d[y],y):d[y]);else for(f=g.call(d),r=new p;!(o=f.next()).done;y++)s(r,y,h?u(f,m,[o.value,y],!0):o.value);return r.length=y,r}})},42580:(e,t,r)=>{var n=r(98310);n(n.S,"Array",{isArray:r(7359)})},84411:(e,t,r)=>{"use strict";var n=r(29697),o=r(9329),a=r(79105),u=r(1504);e.exports=r(6125)(Array,"Array",(function(e,t){this._t=u(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])}),"values"),a.Arguments=a.Array,n("keys"),n("values"),n("entries")},31477:(e,t,r)=>{var n=r(98310);n(n.S,"Date",{now:function(){return(new Date).getTime()}})},99954:(e,t,r)=>{var n=r(98310);n(n.S+n.F,"Object",{assign:r(77995)})},30785:(e,t,r)=>{var n=r(98310);n(n.S,"Object",{create:r(82488)})},23078:(e,t,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperties:r(36607)})},40168:(e,t,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperty:r(60510).f})},18576:(e,t,r)=>{var n=r(1504),o=r(83264).f;r(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(e,t){return o(n(e),t)}}))},4840:(e,t,r)=>{var n=r(60061),o=r(999);r(57972)("getPrototypeOf",(function(){return function getPrototypeOf(e){return o(n(e))}}))},5453:(e,t,r)=>{var n=r(60061),o=r(86425);r(57972)("keys",(function(){return function keys(e){return o(n(e))}}))},13890:(e,t,r)=>{var n=r(98310);n(n.S,"Object",{setPrototypeOf:r(25574).set})},70285:()=>{},86082:(e,t,r)=>{"use strict";var n,o,a,u,i=r(36794),l=r(43280),s=r(61725),c=r(8312),f=r(98310),d=r(39632),p=r(26610),v=r(54677),m=r(25985),h=r(73732),y=r(6022).set,g=r(4326)(),_=r(88579),b=r(52745),x=r(35701),E=r(88747),w="Promise",S=l.TypeError,C=l.process,P=C&&C.versions,T=P&&P.v8||"",O=l.Promise,R="process"==c(C),empty=function(){},M=o=_.f,A=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[r(24300)("species")]=function(e){e(empty,empty)};return(R||"function"==typeof PromiseRejectionEvent)&&e.then(empty)instanceof t&&0!==T.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(e){}}(),isThenable=function(e){var t;return!(!d(e)||"function"!=typeof(t=e.then))&&t},notify=function(e,t){if(!e._n){e._n=!0;var r=e._c;g((function(){for(var n=e._v,o=1==e._s,a=0,run=function(t){var r,a,u,i=o?t.ok:t.fail,l=t.resolve,s=t.reject,c=t.domain;try{i?(o||(2==e._h&&onHandleUnhandled(e),e._h=1),!0===i?r=n:(c&&c.enter(),r=i(n),c&&(c.exit(),u=!0)),r===t.promise?s(S("Promise-chain cycle")):(a=isThenable(r))?a.call(r,l,s):l(r)):s(n)}catch(e){c&&!u&&c.exit(),s(e)}};r.length>a;)run(r[a++]);e._c=[],e._n=!1,t&&!e._h&&onUnhandled(e)}))}},onUnhandled=function(e){y.call(l,(function(){var t,r,n,o=e._v,a=isUnhandled(e);if(a&&(t=b((function(){R?C.emit("unhandledRejection",o,e):(r=l.onunhandledrejection)?r({promise:e,reason:o}):(n=l.console)&&n.error&&n.error("Unhandled promise rejection",o)})),e._h=R||isUnhandled(e)?2:1),e._a=void 0,a&&t.e)throw t.v}))},isUnhandled=function(e){return 1!==e._h&&0===(e._a||e._c).length},onHandleUnhandled=function(e){y.call(l,(function(){var t;R?C.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})}))},$reject=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),notify(t,!0))},$resolve=function(e){var t,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===e)throw S("Promise can't be resolved itself");(t=isThenable(e))?g((function(){var n={_w:r,_d:!1};try{t.call(e,s($resolve,n,1),s($reject,n,1))}catch(e){$reject.call(n,e)}})):(r._v=e,r._s=1,notify(r,!1))}catch(e){$reject.call({_w:r,_d:!1},e)}}};A||(O=function Promise(e){v(this,O,w,"_h"),p(e),n.call(this);try{e(s($resolve,this,1),s($reject,this,1))}catch(e){$reject.call(this,e)}},(n=function Promise(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(13199)(O.prototype,{then:function then(e,t){var r=M(h(this,O));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=R?C.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&notify(this,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),a=function(){var e=new n;this.promise=e,this.resolve=s($resolve,e,1),this.reject=s($reject,e,1)},_.f=M=function(e){return e===O||e===u?new a(e):o(e)}),f(f.G+f.W+f.F*!A,{Promise:O}),r(2413)(O,w),r(5698)(w),u=r(47208).Promise,f(f.S+f.F*!A,w,{reject:function reject(e){var t=M(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(i||!A),w,{resolve:function resolve(e){return E(i&&this===u?O:this,e)}}),f(f.S+f.F*!(A&&r(26797)((function(e){O.all(e).catch(empty)}))),w,{all:function all(e){var t=this,r=M(t),n=r.resolve,o=r.reject,a=b((function(){var r=[],a=0,u=1;m(e,!1,(function(e){var i=a++,l=!1;r.push(void 0),u++,t.resolve(e).then((function(e){l||(l=!0,r[i]=e,--u||n(r))}),o)})),--u||n(r)}));return a.e&&o(a.v),r.promise},race:function race(e){var t=this,r=M(t),n=r.reject,o=b((function(){m(e,!1,(function(e){t.resolve(e).then(r.resolve,n)}))}));return o.e&&n(o.v),r.promise}})},11320:(e,t,r)=>{var n=r(98310),o=r(82488),a=r(26610),u=r(30498),i=r(39632),l=r(90472),s=r(45515),c=(r(43280).Reflect||{}).construct,f=l((function(){function F(){}return!(c((function(){}),[],F)instanceof F)})),d=!l((function(){c((function(){}))}));n(n.S+n.F*(f||d),"Reflect",{construct:function construct(e,t){a(e),u(t);var r=arguments.length<3?e:a(arguments[2]);if(d&&!f)return c(e,t,r);if(e==r){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var n=[null];return n.push.apply(n,t),new(s.apply(e,n))}var l=r.prototype,p=o(i(l)?l:Object.prototype),v=Function.apply.call(e,p,t);return i(v)?v:p}})},99572:(e,t,r)=>{"use strict";var n=r(78502)(!0);r(6125)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})}))},54370:(e,t,r)=>{"use strict";var n=r(43280),o=r(20657),a=r(75179),u=r(98310),i=r(19312),l=r(6758).KEY,s=r(90472),c=r(29990),f=r(2413),d=r(54251),p=r(24300),v=r(7273),m=r(31164),h=r(42266),y=r(7359),g=r(30498),_=r(39632),b=r(60061),x=r(1504),E=r(12737),w=r(48439),S=r(82488),C=r(26084),P=r(83264),T=r(97739),O=r(60510),R=r(86425),M=P.f,A=O.f,N=C.f,j=n.Symbol,L=n.JSON,D=L&&L.stringify,I=p("_hidden"),q=p("toPrimitive"),U={}.propertyIsEnumerable,W=c("symbol-registry"),B=c("symbols"),G=c("op-symbols"),H=Object.prototype,$="function"==typeof j&&!!T.f,V=n.QObject,Q=!V||!V.prototype||!V.prototype.findChild,X=a&&s((function(){return 7!=S(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a}))?function(e,t,r){var n=M(H,t);n&&delete H[t],A(e,t,r),n&&e!==H&&A(H,t,n)}:A,wrap=function(e){var t=B[e]=S(j.prototype);return t._k=e,t},z=$&&"symbol"==typeof j.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof j},K=function defineProperty(e,t,r){return e===H&&K(G,t,r),g(e),t=E(t,!0),g(r),o(B,t)?(r.enumerable?(o(e,I)&&e[I][t]&&(e[I][t]=!1),r=S(r,{enumerable:w(0,!1)})):(o(e,I)||A(e,I,w(1,{})),e[I][t]=!0),X(e,t,r)):A(e,t,r)},Y=function defineProperties(e,t){g(e);for(var r,n=h(t=x(t)),o=0,a=n.length;a>o;)K(e,r=n[o++],t[r]);return e},J=function propertyIsEnumerable(e){var t=U.call(this,e=E(e,!0));return!(this===H&&o(B,e)&&!o(G,e))&&(!(t||!o(this,e)||!o(B,e)||o(this,I)&&this[I][e])||t)},Z=function getOwnPropertyDescriptor(e,t){if(e=x(e),t=E(t,!0),e!==H||!o(B,t)||o(G,t)){var r=M(e,t);return!r||!o(B,t)||o(e,I)&&e[I][t]||(r.enumerable=!0),r}},ee=function getOwnPropertyNames(e){for(var t,r=N(x(e)),n=[],a=0;r.length>a;)o(B,t=r[a++])||t==I||t==l||n.push(t);return n},te=function getOwnPropertySymbols(e){for(var t,r=e===H,n=N(r?G:x(e)),a=[],u=0;n.length>u;)!o(B,t=n[u++])||r&&!o(H,t)||a.push(B[t]);return a};$||(i((j=function Symbol(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),$set=function(t){this===H&&$set.call(G,t),o(this,I)&&o(this[I],e)&&(this[I][e]=!1),X(this,e,w(1,t))};return a&&Q&&X(H,e,{configurable:!0,set:$set}),wrap(e)}).prototype,"toString",(function toString(){return this._k})),P.f=Z,O.f=K,r(8772).f=C.f=ee,r(67410).f=J,T.f=te,a&&!r(36794)&&i(H,"propertyIsEnumerable",J,!0),v.f=function(e){return wrap(p(e))}),u(u.G+u.W+u.F*!$,{Symbol:j});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;re.length>ne;)p(re[ne++]);for(var oe=R(p.store),ae=0;oe.length>ae;)m(oe[ae++]);u(u.S+u.F*!$,"Symbol",{for:function(e){return o(W,e+="")?W[e]:W[e]=j(e)},keyFor:function keyFor(e){if(!z(e))throw TypeError(e+" is not a symbol!");for(var t in W)if(W[t]===e)return t},useSetter:function(){Q=!0},useSimple:function(){Q=!1}}),u(u.S+u.F*!$,"Object",{create:function create(e,t){return void 0===t?S(e):Y(S(e),t)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:Z,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var ue=s((function(){T.f(1)}));u(u.S+u.F*ue,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(e){return T.f(b(e))}}),L&&u(u.S+u.F*(!$||s((function(){var e=j();return"[null]"!=D([e])||"{}"!=D({a:e})||"{}"!=D(Object(e))}))),"JSON",{stringify:function stringify(e){for(var t,r,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);if(r=t=n[1],(_(t)||void 0!==e)&&!z(e))return y(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!z(t))return t}),n[1]=t,D.apply(L,n)}}),j.prototype[q]||r(62292)(j.prototype,q,j.prototype.valueOf),f(j,"Symbol"),f(Math,"Math",!0),f(n.JSON,"JSON",!0)},23337:(e,t,r)=>{"use strict";var n,o=r(43280),a=r(97647)(0),u=r(19312),i=r(6758),l=r(77995),s=r(92600),c=r(39632),f=r(41081),d=r(41081),p=!o.ActiveXObject&&"ActiveXObject"in o,v="WeakMap",m=i.getWeak,h=Object.isExtensible,y=s.ufstore,wrapper=function(e){return function WeakMap(){return e(this,arguments.length>0?arguments[0]:void 0)}},g={get:function get(e){if(c(e)){var t=m(e);return!0===t?y(f(this,v)).get(e):t?t[this._i]:void 0}},set:function set(e,t){return s.def(f(this,v),e,t)}},_=e.exports=r(70770)(v,wrapper,g,s,!0,!0);d&&p&&(l((n=s.getConstructor(wrapper,v)).prototype,g),i.NEED=!0,a(["delete","has","get","set"],(function(e){var t=_.prototype,r=t[e];u(t,e,(function(t,o){if(c(t)&&!h(t)){this._f||(this._f=new n);var a=this._f[e](t,o);return"set"==e?this:a}return r.call(this,t,o)}))})))},95260:(e,t,r)=>{var n=r(98310),o=r(9480)(!0);n(n.S,"Object",{entries:function entries(e){return o(e)}})},67685:(e,t,r)=>{var n=r(98310),o=r(64344),a=r(1504),u=r(83264),i=r(87352);n(n.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(e){for(var t,r,n=a(e),l=u.f,s=o(n),c={},f=0;s.length>f;)void 0!==(r=l(n,t=s[f++]))&&i(c,t,r);return c}})},57188:(e,t,r)=>{var n=r(98310),o=r(9480)(!1);n(n.S,"Object",{values:function values(e){return o(e)}})},81522:(e,t,r)=>{"use strict";var n=r(98310),o=r(47208),a=r(43280),u=r(73732),i=r(88747);n(n.P+n.R,"Promise",{finally:function(e){var t=u(this,o.Promise||a.Promise),r="function"==typeof e;return this.then(r?function(r){return i(t,e()).then((function(){return r}))}:e,r?function(r){return i(t,e()).then((function(){throw r}))}:e)}})},25757:(e,t,r)=>{"use strict";var n=r(98310),o=r(88579),a=r(52745);n(n.S,"Promise",{try:function(e){var t=o.f(this),r=a(e);return(r.e?t.reject:t.resolve)(r.v),t.promise}})},87573:(e,t,r)=>{r(31164)("asyncIterator")},97224:(e,t,r)=>{r(31164)("observable")},92797:(e,t,r)=>{r(14689)("WeakMap")},10143:(e,t,r)=>{r(7883)("WeakMap")},74114:(e,t,r)=>{r(84411);for(var n=r(43280),o=r(62292),a=r(79105),u=r(24300)("toStringTag"),i="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<i.length;l++){var s=i[l],c=n[s],f=c&&c.prototype;f&&!f[u]&&o(f,u,s),a[s]=a.Array}},22761:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},42094:(e,t,r)=>{var n=r(62190)("unscopables"),o=Array.prototype;null==o[n]&&r(74216)(o,n,{}),e.exports=function(e){o[n][e]=!0}},88492:(e,t,r)=>{"use strict";var n=r(12070)(!0);e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},6365:(e,t,r)=>{var n=r(67334);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},59021:(e,t,r)=>{var n=r(15703),o=r(26078),a=r(78615);e.exports=function(e){return function(t,r,u){var i,l=n(t),s=o(l.length),c=a(u,s);if(e&&r!=r){for(;s>c;)if((i=l[c++])!=i)return!0}else for(;s>c;c++)if((e||c in l)&&l[c]===r)return e||c||0;return!e&&-1}}},78309:(e,t,r)=>{var n=r(11528),o=r(8467),a=r(26033),u=r(26078),i=r(63531);e.exports=function(e,t){var r=1==e,l=2==e,s=3==e,c=4==e,f=6==e,d=5==e||f,p=t||i;return function(t,i,v){for(var m,h,y=a(t),g=o(y),_=n(i,v,3),b=u(g.length),x=0,E=r?p(t,b):l?p(t,0):void 0;b>x;x++)if((d||x in g)&&(h=_(m=g[x],x,y),e))if(r)E[x]=h;else if(h)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:E.push(m)}else if(c)return!1;return f?-1:s||c?c:E}}},81071:(e,t,r)=>{var n=r(67334),o=r(99141),a=r(62190)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),n(t)&&null===(t=t[a])&&(t=void 0)),void 0===t?Array:t}},63531:(e,t,r)=>{var n=r(81071);e.exports=function(e,t){return new(n(e))(t)}},20106:(e,t,r)=>{var n=r(26688),o=r(62190)("toStringTag"),a="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:a?n(t):"Object"==(u=n(t))&&"function"==typeof t.callee?"Arguments":u}},26688:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},60066:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},11528:(e,t,r)=>{var n=r(22761);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},61622:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},36628:(e,t,r)=>{e.exports=!r(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(e,t,r)=>{var n=r(67334),o=r(38113).document,a=n(o)&&n(o.createElement);e.exports=function(e){return a?o.createElement(e):{}}},33603:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},65772:(e,t,r)=>{var n=r(38113),o=r(60066),a=r(74216),u=r(17738),i=r(11528),$export=function(e,t,r){var l,s,c,f,d=e&$export.F,p=e&$export.G,v=e&$export.S,m=e&$export.P,h=e&$export.B,y=p?n:v?n[t]||(n[t]={}):(n[t]||{}).prototype,g=p?o:o[t]||(o[t]={}),_=g.prototype||(g.prototype={});for(l in p&&(r=t),r)c=((s=!d&&y&&void 0!==y[l])?y:r)[l],f=h&&s?i(c,n):m&&"function"==typeof c?i(Function.call,c):c,y&&u(y,l,c,e&$export.U),g[l]!=c&&a(g,l,f),m&&_[l]!=c&&(_[l]=c)};n.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},86570:(e,t,r)=>{var n=r(62190)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,!"/./"[e](t)}catch(e){}}return!0}},48625:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},48897:(e,t,r)=>{"use strict";r(25846);var n=r(17738),o=r(74216),a=r(48625),u=r(61622),i=r(62190),l=r(43288),s=i("species"),c=!a((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),f=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var d=i(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),v=p?!a((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[s]=function(){return r}),r[d](""),!t})):void 0;if(!p||!v||"replace"===e&&!c||"split"===e&&!f){var m=/./[d],h=r(u,d,""[e],(function maybeCallNative(e,t,r,n,o){return t.exec===l?p&&!o?{done:!0,value:m.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),y=h[0],g=h[1];n(String.prototype,e,y),o(RegExp.prototype,d,2==t?function(e,t){return g.call(e,this,t)}:function(e){return g.call(e,this)})}}},74859:(e,t,r)=>{"use strict";var n=r(6365);e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},20646:(e,t,r)=>{e.exports=r(8655)("native-function-to-string",Function.toString)},38113:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},54040:e=>{var t={}.hasOwnProperty;e.exports=function(e,r){return t.call(e,r)}},74216:(e,t,r)=>{var n=r(98558),o=r(36061);e.exports=r(36628)?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},8954:(e,t,r)=>{var n=r(38113).document;e.exports=n&&n.documentElement},5100:(e,t,r)=>{e.exports=!r(36628)&&!r(48625)((function(){return 7!=Object.defineProperty(r(5050)("div"),"a",{get:function(){return 7}}).a}))},8467:(e,t,r)=>{var n=r(26688);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},99141:(e,t,r)=>{var n=r(26688);e.exports=Array.isArray||function isArray(e){return"Array"==n(e)}},67334:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},94587:(e,t,r)=>{var n=r(67334),o=r(26688),a=r(62190)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[a])?!!t:"RegExp"==o(e))}},46445:(e,t,r)=>{"use strict";var n=r(82897),o=r(36061),a=r(55727),u={};r(74216)(u,r(62190)("iterator"),(function(){return this})),e.exports=function(e,t,r){e.prototype=n(u,{next:o(1,r)}),a(e,t+" Iterator")}},61195:(e,t,r)=>{"use strict";var n=r(81422),o=r(65772),a=r(17738),u=r(74216),i=r(23988),l=r(46445),s=r(55727),c=r(19002),f=r(62190)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",v="values",returnThis=function(){return this};e.exports=function(e,t,r,m,h,y,g){l(r,t,m);var _,b,x,getMethod=function(e){if(!d&&e in C)return C[e];switch(e){case p:return function keys(){return new r(this,e)};case v:return function values(){return new r(this,e)}}return function entries(){return new r(this,e)}},E=t+" Iterator",w=h==v,S=!1,C=e.prototype,P=C[f]||C["@@iterator"]||h&&C[h],T=P||getMethod(h),O=h?w?getMethod("entries"):T:void 0,R="Array"==t&&C.entries||P;if(R&&(x=c(R.call(new e)))!==Object.prototype&&x.next&&(s(x,E,!0),n||"function"==typeof x[f]||u(x,f,returnThis)),w&&P&&P.name!==v&&(S=!0,T=function values(){return P.call(this)}),n&&!g||!d&&!S&&C[f]||u(C,f,T),i[t]=T,i[E]=returnThis,h)if(_={values:w?T:getMethod(v),keys:y?T:getMethod(p),entries:O},g)for(b in _)b in C||a(C,b,_[b]);else o(o.P+o.F*(d||S),t,_);return _}},35038:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},23988:e=>{e.exports={}},81422:e=>{e.exports=!1},82897:(e,t,r)=>{var n=r(6365),o=r(7331),a=r(33603),u=r(28034)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=r(5050)("iframe"),n=a.length;for(t.style.display="none",r(8954).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;n--;)delete createDict.prototype[a[n]];return createDict()};e.exports=Object.create||function create(e,t){var r;return null!==e?(Empty.prototype=n(e),r=new Empty,Empty.prototype=null,r[u]=e):r=createDict(),void 0===t?r:o(r,t)}},98558:(e,t,r)=>{var n=r(6365),o=r(5100),a=r(31382),u=Object.defineProperty;t.f=r(36628)?Object.defineProperty:function defineProperty(e,t,r){if(n(e),t=a(t,!0),n(r),o)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},7331:(e,t,r)=>{var n=r(98558),o=r(6365),a=r(42912);e.exports=r(36628)?Object.defineProperties:function defineProperties(e,t){o(e);for(var r,u=a(t),i=u.length,l=0;i>l;)n.f(e,r=u[l++],t[r]);return e}},19002:(e,t,r)=>{var n=r(54040),o=r(26033),a=r(28034)("IE_PROTO"),u=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?u:null}},75547:(e,t,r)=>{var n=r(54040),o=r(15703),a=r(59021)(!1),u=r(28034)("IE_PROTO");e.exports=function(e,t){var r,i=o(e),l=0,s=[];for(r in i)r!=u&&n(i,r)&&s.push(r);for(;t.length>l;)n(i,r=t[l++])&&(~a(s,r)||s.push(r));return s}},42912:(e,t,r)=>{var n=r(75547),o=r(33603);e.exports=Object.keys||function keys(e){return n(e,o)}},36061:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},17738:(e,t,r)=>{var n=r(38113),o=r(74216),a=r(54040),u=r(25078)("src"),i=r(20646),l="toString",s=(""+i).split(l);r(60066).inspectSource=function(e){return i.call(e)},(e.exports=function(e,t,r,i){var l="function"==typeof r;l&&(a(r,"name")||o(r,"name",t)),e[t]!==r&&(l&&(a(r,u)||o(r,u,e[t]?""+e[t]:s.join(String(t)))),e===n?e[t]=r:i?e[t]?e[t]=r:o(e,t,r):(delete e[t],o(e,t,r)))})(Function.prototype,l,(function toString(){return"function"==typeof this&&this[u]||i.call(this)}))},62404:(e,t,r)=>{"use strict";var n=r(20106),o=RegExp.prototype.exec;e.exports=function(e,t){var r=e.exec;if("function"==typeof r){var a=r.call(e,t);if("object"!=typeof a)throw new TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==n(e))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},43288:(e,t,r)=>{"use strict";var n,o,a=r(74859),u=RegExp.prototype.exec,i=String.prototype.replace,l=u,s=(n=/a/,o=/b*/g,u.call(n,"a"),u.call(o,"a"),0!==n.lastIndex||0!==o.lastIndex),c=void 0!==/()??/.exec("")[1];(s||c)&&(l=function exec(e){var t,r,n,o,l=this;return c&&(r=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),s&&(t=l.lastIndex),n=u.call(l,e),s&&n&&(l.lastIndex=l.global?n.index+n[0].length:t),c&&n&&n.length>1&&i.call(n[0],r,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)})),n}),e.exports=l},80339:e=>{e.exports=Object.is||function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},55727:(e,t,r)=>{var n=r(98558).f,o=r(54040),a=r(62190)("toStringTag");e.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,a)&&n(e,a,{configurable:!0,value:t})}},28034:(e,t,r)=>{var n=r(8655)("keys"),o=r(25078);e.exports=function(e){return n[e]||(n[e]=o(e))}},8655:(e,t,r)=>{var n=r(60066),o=r(38113),a="__core-js_shared__",u=o[a]||(o[a]={});(e.exports=function(e,t){return u[e]||(u[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},11987:(e,t,r)=>{var n=r(6365),o=r(22761),a=r(62190)("species");e.exports=function(e,t){var r,u=n(e).constructor;return void 0===u||null==(r=n(u)[a])?t:o(r)}},10225:(e,t,r)=>{"use strict";var n=r(48625);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},12070:(e,t,r)=>{var n=r(3338),o=r(61622);e.exports=function(e){return function(t,r){var a,u,i=String(o(t)),l=n(r),s=i.length;return l<0||l>=s?e?"":void 0:(a=i.charCodeAt(l))<55296||a>56319||l+1===s||(u=i.charCodeAt(l+1))<56320||u>57343?e?i.charAt(l):a:e?i.slice(l,l+2):u-56320+(a-55296<<10)+65536}}},465:(e,t,r)=>{var n=r(94587),o=r(61622);e.exports=function(e,t,r){if(n(t))throw TypeError("String#"+r+" doesn't accept regex!");return String(o(e))}},78615:(e,t,r)=>{var n=r(3338),o=Math.max,a=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):a(e,t)}},3338:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},15703:(e,t,r)=>{var n=r(8467),o=r(61622);e.exports=function(e){return n(o(e))}},26078:(e,t,r)=>{var n=r(3338),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},26033:(e,t,r)=>{var n=r(61622);e.exports=function(e){return Object(n(e))}},31382:(e,t,r)=>{var n=r(67334);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},25078:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},62190:(e,t,r)=>{var n=r(8655)("wks"),o=r(25078),a=r(38113).Symbol,u="function"==typeof a;(e.exports=function(e){return n[e]||(n[e]=u&&a[e]||(u?a:o)("Symbol."+e))}).store=n},64434:(e,t,r)=>{"use strict";var n=r(65772),o=r(78309)(2);n(n.P+n.F*!r(10225)([].filter,!0),"Array",{filter:function filter(e){return o(this,e,arguments[1])}})},71954:(e,t,r)=>{"use strict";var n=r(65772),o=r(78309)(5),a="find",u=!0;a in[]&&Array(1).find((function(){u=!1})),n(n.P+n.F*u,"Array",{find:function find(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),r(42094)(a)},12897:(e,t,r)=>{"use strict";var n=r(42094),o=r(35038),a=r(23988),u=r(15703);e.exports=r(61195)(Array,"Array",(function(e,t){this._t=u(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])}),"values"),a.Arguments=a.Array,n("keys"),n("values"),n("entries")},90286:(e,t,r)=>{"use strict";var n=r(65772),o=r(78309)(1);n(n.P+n.F*!r(10225)([].map,!0),"Array",{map:function map(e){return o(this,e,arguments[1])}})},99745:(e,t,r)=>{var n=r(98558).f,o=Function.prototype,a=/^\s*function ([^ (]*)/,u="name";u in o||r(36628)&&n(o,u,{configurable:!0,get:function(){try{return(""+this).match(a)[1]}catch(e){return""}}})},76139:(e,t,r)=>{"use strict";var n=r(20106),o={};o[r(62190)("toStringTag")]="z",o+""!="[object z]"&&r(17738)(Object.prototype,"toString",(function toString(){return"[object "+n(this)+"]"}),!0)},25846:(e,t,r)=>{"use strict";var n=r(43288);r(65772)({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})},84208:(e,t,r)=>{"use strict";var n=r(6365),o=r(26033),a=r(26078),u=r(3338),i=r(88492),l=r(62404),s=Math.max,c=Math.min,f=Math.floor,d=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;r(48897)("replace",2,(function(e,t,r,v){return[function replace(n,o){var a=e(this),u=null==n?void 0:n[t];return void 0!==u?u.call(n,a,o):r.call(String(a),n,o)},function(e,t){var o=v(r,e,this,t);if(o.done)return o.value;var f=n(e),d=String(this),p="function"==typeof t;p||(t=String(t));var m=f.global;if(m){var h=f.unicode;f.lastIndex=0}for(var y=[];;){var g=l(f,d);if(null===g)break;if(y.push(g),!m)break;""===String(g[0])&&(f.lastIndex=i(d,a(f.lastIndex),h))}for(var _,b="",x=0,E=0;E<y.length;E++){g=y[E];for(var w=String(g[0]),S=s(c(u(g.index),d.length),0),C=[],P=1;P<g.length;P++)C.push(void 0===(_=g[P])?_:String(_));var T=g.groups;if(p){var O=[w].concat(C,S,d);void 0!==T&&O.push(T);var R=String(t.apply(void 0,O))}else R=getSubstitution(w,d,S,C,T,t);S>=x&&(b+=d.slice(x,S)+R,x=S+w.length)}return b+d.slice(x)}];function getSubstitution(e,t,n,a,u,i){var l=n+e.length,s=a.length,c=p;return void 0!==u&&(u=o(u),c=d),r.call(i,c,(function(r,o){var i;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(l);case"<":i=u[o.slice(1,-1)];break;default:var c=+o;if(0===c)return r;if(c>s){var d=f(c/10);return 0===d?r:d<=s?void 0===a[d-1]?o.charAt(1):a[d-1]+o.charAt(1):r}i=a[c-1]}return void 0===i?"":i}))}}))},42679:(e,t,r)=>{"use strict";var n=r(6365),o=r(80339),a=r(62404);r(48897)("search",1,(function(e,t,r,u){return[function search(r){var n=e(this),o=null==r?void 0:r[t];return void 0!==o?o.call(r,n):new RegExp(r)[t](String(n))},function(e){var t=u(r,e,this);if(t.done)return t.value;var i=n(e),l=String(this),s=i.lastIndex;o(s,0)||(i.lastIndex=0);var c=a(i,l);return o(i.lastIndex,s)||(i.lastIndex=s),null===c?-1:c.index}]}))},99236:(e,t,r)=>{"use strict";var n=r(94587),o=r(6365),a=r(11987),u=r(88492),i=r(26078),l=r(62404),s=r(43288),c=r(48625),f=Math.min,d=[].push,p=4294967295,v=!c((function(){RegExp(p,"y")}));r(48897)("split",2,(function(e,t,r,c){var m;return m="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,t){var o=String(this);if(void 0===e&&0===t)return[];if(!n(e))return r.call(o,e,t);for(var a,u,i,l=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,v=void 0===t?p:t>>>0,m=new RegExp(e.source,c+"g");(a=s.call(m,o))&&!((u=m.lastIndex)>f&&(l.push(o.slice(f,a.index)),a.length>1&&a.index<o.length&&d.apply(l,a.slice(1)),i=a[0].length,f=u,l.length>=v));)m.lastIndex===a.index&&m.lastIndex++;return f===o.length?!i&&m.test("")||l.push(""):l.push(o.slice(f)),l.length>v?l.slice(0,v):l}:"0".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function split(r,n){var o=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,o,n):m.call(String(o),r,n)},function(e,t){var n=c(m,e,this,t,m!==r);if(n.done)return n.value;var s=o(e),d=String(this),h=a(s,RegExp),y=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(v?"y":"g"),_=new h(v?s:"^(?:"+s.source+")",g),b=void 0===t?p:t>>>0;if(0===b)return[];if(0===d.length)return null===l(_,d)?[d]:[];for(var x=0,E=0,w=[];E<d.length;){_.lastIndex=v?E:0;var S,C=l(_,v?d:d.slice(E));if(null===C||(S=f(i(_.lastIndex+(v?0:E)),d.length))===x)E=u(d,E,y);else{if(w.push(d.slice(x,E)),w.length===b)return w;for(var P=1;P<=C.length-1;P++)if(w.push(C[P]),w.length===b)return w;E=x=S}}return w.push(d.slice(x)),w}]}))},3777:(e,t,r)=>{"use strict";var n=r(65772),o=r(465),a="includes";n(n.P+n.F*r(86570)(a),"String",{includes:function includes(e){return!!~o(this,e,a).indexOf(e,arguments.length>1?arguments[1]:void 0)}})},38081:(e,t,r)=>{"use strict";var n=r(65772),o=r(59021)(!0);n(n.P,"Array",{includes:function includes(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),r(42094)("includes")},93085:(e,t,r)=>{for(var n=r(12897),o=r(42912),a=r(17738),u=r(38113),i=r(74216),l=r(23988),s=r(62190),c=s("iterator"),f=s("toStringTag"),d=l.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=o(p),m=0;m<v.length;m++){var h,y=v[m],g=p[y],_=u[y],b=_&&_.prototype;if(b&&(b[c]||i(b,c,d),b[f]||i(b,f,y),l[y]=d,g))for(h in n)b[h]||a(b,h,n[h],!0)}},24457:(e,t,r)=>{"use strict";t.__esModule=!0;var n=r(63804),o=(_interopRequireDefault(n),_interopRequireDefault(r(23615))),a=_interopRequireDefault(r(51230));_interopRequireDefault(r(91895));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=1073741823;function createEventEmitter(e){var t=[];return{on:function on(e){t.push(e)},off:function off(e){t=t.filter((function(t){return t!==e}))},get:function get(){return e},set:function set(r,n){e=r,t.forEach((function(t){return t(e,n)}))}}}t.default=function createReactContext(e,t){var r,i,l="__create-react-context-"+(0,a.default)()+"__",s=function(e){function Provider(){var t,r;_classCallCheck(this,Provider);for(var n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];return t=r=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),r.emitter=createEventEmitter(r.props.value),_possibleConstructorReturn(r,t)}return _inherits(Provider,e),Provider.prototype.getChildContext=function getChildContext(){var e;return(e={})[l]=this.emitter,e},Provider.prototype.componentWillReceiveProps=function componentWillReceiveProps(e){if(this.props.value!==e.value){var r=this.props.value,n=e.value,o=void 0;!function objectIs(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(r,n)?(o="function"==typeof t?t(r,n):u,0!==(o|=0)&&this.emitter.set(e.value,o)):o=0}},Provider.prototype.render=function render(){return this.props.children},Provider}(n.Component);s.childContextTypes=((r={})[l]=o.default.object.isRequired,r);var c=function(t){function Consumer(){var e,r;_classCallCheck(this,Consumer);for(var n=arguments.length,o=Array(n),a=0;a<n;a++)o[a]=arguments[a];return e=r=_possibleConstructorReturn(this,t.call.apply(t,[this].concat(o))),r.state={value:r.getValue()},r.onUpdate=function(e,t){0!=((0|r.observedBits)&t)&&r.setState({value:r.getValue()})},_possibleConstructorReturn(r,e)}return _inherits(Consumer,t),Consumer.prototype.componentWillReceiveProps=function componentWillReceiveProps(e){var t=e.observedBits;this.observedBits=null==t?u:t},Consumer.prototype.componentDidMount=function componentDidMount(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?u:e},Consumer.prototype.componentWillUnmount=function componentWillUnmount(){this.context[l]&&this.context[l].off(this.onUpdate)},Consumer.prototype.getValue=function getValue(){return this.context[l]?this.context[l].get():e},Consumer.prototype.render=function render(){return function onlyChild(e){return Array.isArray(e)?e[0]:e}(this.props.children)(this.state.value)},Consumer}(n.Component);return c.contextTypes=((i={})[l]=o.default.object,i),{Provider:s,Consumer:c}},e.exports=t.default},68189:(e,t,r)=>{"use strict";t.__esModule=!0;var n=_interopRequireDefault(r(63804)),o=_interopRequireDefault(r(24457));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}t.default=n.default.createContext||o.default,e.exports=t.default},51230:(e,t,r)=>{"use strict";var n="__global_unique_id__";e.exports=function(){return r.g[n]=(r.g[n]||0)+1}},3996:e=>{"use strict";e.exports=function(e,t,r,n,o,a,u,i){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[r,n,o,a,u,i],c=0;(l=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},58772:(e,t,r)=>{"use strict";var n=r(90331);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,e.exports=function(){function shim(e,t,r,o,a,u){if(u!==n){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function getShim(){return shim}shim.isRequired=shim;var e={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return e.PropTypes=e,e}},23615:(e,t,r)=>{e.exports=r(58772)()},90331:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22634:(e,t,r)=>{"use strict";function getHashPath(){const e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}r.r(t),r.d(t,{createHashSource:()=>createHashSource});let createHashSource=(e="/")=>({get location(){return{pathname:getHashPath(),search:""}},addEventListener(e,t){"popstate"===e&&window.addEventListener("hashchange",t)},removeEventListener(e,t){"popstate"===e&&window.addEventListener("hashchange",t)},history:{get entries(){return[{pathname:getHashPath(),search:""}]},get index(){return 0},get state(){},pushState(e,t,r){!function pushHashPath(e){window.location.hash="#"+e}(r)},replaceState(e,t,r){!function replaceHashPath(e){const t=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,t>=0?t:0)+"#"+e)}(r)}}})},91895:e=>{"use strict";var warning=function(){};e.exports=warning},63804:e=>{"use strict";e.exports=React},18194:e=>{"use strict";e.exports=wp.i18n}},a={};function __webpack_require__(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return o[e](r,r.exports,__webpack_require__),r.exports}__webpack_require__.m=o,__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,__webpack_require__.t=function(r,n){if(1&n&&(r=this(r)),8&n)return r;if("object"==typeof r&&r){if(4&n&&r.__esModule)return r;if(16&n&&"function"==typeof r.then)return r}var o=Object.create(null);__webpack_require__.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&r;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach((e=>a[e]=()=>r[e]));return a.default=()=>r,__webpack_require__.d(o,a),o},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((t,r)=>(__webpack_require__.f[r](e,t),t)),[])),__webpack_require__.u=e=>{if(972===e)return"jszip.vendor.9ec53381c344ee903f3e.bundle.min.js"},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},n="elementor-pro:",__webpack_require__.l=(e,t,o,a)=>{if(r[e])r[e].push(t);else{var u,i;if(void 0!==o)for(var l=document.getElementsByTagName("script"),s=0;s<l.length;s++){var c=l[s];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==n+o){u=c;break}}u||(i=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,__webpack_require__.nc&&u.setAttribute("nonce",__webpack_require__.nc),u.setAttribute("data-webpack",n+o),u.src=e),r[e]=[t];var onScriptComplete=(t,n)=>{u.onerror=u.onload=null,clearTimeout(f);var o=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((e=>e(n))),t)return t(n)},f=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=onScriptComplete.bind(null,u.onerror),u.onload=onScriptComplete.bind(null,u.onload),i&&document.head.appendChild(u)}},__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var t=__webpack_require__.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={294:0};__webpack_require__.f.j=(t,r)=>{var n=__webpack_require__.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,o)=>n=e[t]=[r,o]));r.push(n[2]=o);var a=__webpack_require__.p+__webpack_require__.u(t),u=new Error;__webpack_require__.l(a,(r=>{if(__webpack_require__.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",u.name="ChunkLoadError",u.type=o,u.request=a,n[1](u)}}),"chunk-"+t,t)}};var webpackJsonpCallback=(t,r)=>{var n,o,[a,u,i]=r,l=0;for(n in u)__webpack_require__.o(u,n)&&(__webpack_require__.m[n]=u[n]);if(i)i(__webpack_require__);for(t&&t(r);l<a.length;l++)o=a[l],__webpack_require__.o(e,o)&&e[o]&&e[o][0](),e[a[l]]=0},t=self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[];t.forEach(webpackJsonpCallback.bind(null,0)),t.push=webpackJsonpCallback.bind(null,t.push.bind(t))})(),(()=>{"use strict";var e=__webpack_require__(67971),t=e(__webpack_require__(63804)),r=e(__webpack_require__(46042)),n=e(__webpack_require__(43023)),o=e(__webpack_require__(33407));$e.components.register(new r.default),$e.components.register(new n.default);var a=elementorCommon.config.isDebug?t.default.StrictMode:t.default.Fragment;ReactDOM.render(t.default.createElement(a,null,t.default.createElement(o.default,null)),document.getElementById("e-form-submissions"))})()})();PK!�?.��-assets/js/form.23168c11e0d20fa0282b.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["form"],{

/***/ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js":
/*!***********************************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class DataTimeFieldBase extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        fields: this.getFieldsSelector()
      },
      classes: {
        useNative: 'elementor-use-native'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getDefaultSettings();
    return {
      $fields: this.$element.find(selectors.fields)
    };
  }

  addPicker(element) {
    const {
      classes
    } = this.getDefaultSettings(),
          $element = jQuery(element);

    if ($element.hasClass(classes.useNative)) {
      return;
    }

    element.flatpickr(this.getPickerOptions(element));
  }

  onInit(...args) {
    super.onInit(...args);
    this.elements.$fields.each((index, element) => this.addPicker(element));
  }

}

exports.default = DataTimeFieldBase;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/fields/date.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/date.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _dataTimeFieldBase = _interopRequireDefault(__webpack_require__(/*! ./data-time-field-base */ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js"));

class DateField extends _dataTimeFieldBase.default {
  getFieldsSelector() {
    return '.elementor-date-field';
  }

  getPickerOptions(element) {
    const $element = jQuery(element);
    return {
      minDate: $element.attr('min') || null,
      maxDate: $element.attr('max') || null,
      allowInput: true
    };
  }

}

exports.default = DateField;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/fields/time.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/fields/time.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _dataTimeFieldBase = _interopRequireDefault(__webpack_require__(/*! ./data-time-field-base */ "../modules/forms/assets/js/frontend/handlers/fields/data-time-field-base.js"));

class TimeField extends _dataTimeFieldBase.default {
  getFieldsSelector() {
    return '.elementor-time-field';
  }

  getPickerOptions() {
    return {
      noCalendar: true,
      enableTime: true,
      allowInput: true
    };
  }

}

exports.default = TimeField;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-redirect.js":
/*!*********************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-redirect.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$form = this.$element.find(selectors.form);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('form_destruct', this.handleSubmit);
  },

  handleSubmit(event, response) {
    if ('undefined' !== typeof response.data.redirect_url) {
      location.href = response.data.redirect_url;
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-sender.js":
/*!*******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-sender.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form',
        submitButton: '[type="submit"]'
      },
      action: 'elementor_pro_forms_send_form',
      ajaxUrl: elementorProFrontend.config.ajaxurl
    };
  },

  getDefaultElements() {
    const selectors = this.getSettings('selectors'),
          elements = {};
    elements.$form = this.$element.find(selectors.form);
    elements.$submitButton = elements.$form.find(selectors.submitButton);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('submit', this.handleSubmit);
    const $fileInput = this.elements.$form.find('input[type=file]');

    if ($fileInput.length) {
      $fileInput.on('change', this.validateFileSize);
    }
  },

  validateFileSize(event) {
    const $field = jQuery(event.currentTarget),
          files = $field[0].files;

    if (!files.length) {
      return;
    }

    const maxSize = parseInt($field.attr('data-maxsize')) * 1024 * 1024,
          maxSizeMessage = $field.attr('data-maxsize-message');
    const filesArray = Array.prototype.slice.call(files);
    filesArray.forEach(file => {
      if (maxSize < file.size) {
        $field.parent().addClass('elementor-error').append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">' + maxSizeMessage + '</span>').find(':input').attr('aria-invalid', 'true');
        this.elements.$form.trigger('error');
      }
    });
  },

  beforeSend() {
    const $form = this.elements.$form;
    $form.animate({
      opacity: '0.45'
    }, 500).addClass('elementor-form-waiting');
    $form.find('.elementor-message').remove();
    $form.find('.elementor-error').removeClass('elementor-error');
    $form.find('div.elementor-field-group').removeClass('error').find('span.elementor-form-help-inline').remove().end().find(':input').attr('aria-invalid', 'false');
    this.elements.$submitButton.attr('disabled', 'disabled').find('> span').prepend('<span class="elementor-button-text elementor-form-spinner"><i class="fa fa-spinner fa-spin"></i>&nbsp;</span>');
  },

  getFormData() {
    const formData = new FormData(this.elements.$form[0]);
    formData.append('action', this.getSettings('action'));
    formData.append('referrer', location.toString());
    return formData;
  },

  onSuccess(response) {
    const $form = this.elements.$form;
    this.elements.$submitButton.removeAttr('disabled').find('.elementor-form-spinner').remove();
    $form.animate({
      opacity: '1'
    }, 100).removeClass('elementor-form-waiting');

    if (!response.success) {
      if (response.data.errors) {
        jQuery.each(response.data.errors, function (key, title) {
          $form.find('#form-field-' + key).parent().addClass('elementor-error').append('<span class="elementor-message elementor-message-danger elementor-help-inline elementor-form-help-inline" role="alert">' + title + '</span>').find(':input').attr('aria-invalid', 'true');
        });
        $form.trigger('error');
      }

      $form.append('<div class="elementor-message elementor-message-danger" role="alert">' + response.data.message + '</div>');
    } else {
      $form.trigger('submit_success', response.data); // For actions like redirect page

      $form.trigger('form_destruct', response.data);
      $form.trigger('reset');

      if ('undefined' !== typeof response.data.message && '' !== response.data.message) {
        $form.append('<div class="elementor-message elementor-message-success" role="alert">' + response.data.message + '</div>');
      }
    }
  },

  onError(xhr, desc) {
    const $form = this.elements.$form;
    $form.append('<div class="elementor-message elementor-message-danger" role="alert">' + desc + '</div>');
    this.elements.$submitButton.html(this.elements.$submitButton.text()).removeAttr('disabled');
    $form.animate({
      opacity: '1'
    }, 100).removeClass('elementor-form-waiting');
    $form.trigger('error');
  },

  handleSubmit(event) {
    const self = this,
          $form = this.elements.$form;
    event.preventDefault();

    if ($form.hasClass('elementor-form-waiting')) {
      return false;
    }

    this.beforeSend();
    jQuery.ajax({
      url: self.getSettings('ajaxUrl'),
      type: 'POST',
      dataType: 'json',
      data: self.getFormData(),
      processData: false,
      contentType: false,
      success: self.onSuccess,
      error: self.onError
    });
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/form-steps.js":
/*!******************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/form-steps.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class FormSteps extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form',
        fieldsWrapper: '.elementor-form-fields-wrapper',
        fieldGroup: '.elementor-field-group',
        stepWrapper: '.elementor-field-type-step',
        stepField: '.e-field-step',
        submitWrapper: '.elementor-field-type-submit',
        submitButton: '[type="submit"]',
        buttons: '.e-form__buttons',
        buttonWrapper: '.e-form__buttons__wrapper',
        button: '.e-form__buttons__wrapper__button',
        indicator: '.e-form__indicators__indicator',
        indicatorProgress: '.e-form__indicators__indicator__progress',
        indicatorProgressMeter: '.e-form__indicators__indicator__progress__meter',
        formHelpInline: '.elementor-form-help-inline'
      },
      classes: {
        hidden: 'elementor-hidden',
        column: 'elementor-column',
        fieldGroup: 'elementor-field-group',
        elementorButton: 'elementor-button',
        step: 'e-form__step',
        buttons: 'e-form__buttons',
        buttonWrapper: 'e-form__buttons__wrapper',
        button: 'e-form__buttons__wrapper__button',
        indicators: 'e-form__indicators',
        indicator: 'e-form__indicators__indicator',
        indicatorIcon: 'e-form__indicators__indicator__icon',
        indicatorNumber: 'e-form__indicators__indicator__number',
        indicatorLabel: 'e-form__indicators__indicator__label',
        indicatorProgress: 'e-form__indicators__indicator__progress',
        indicatorProgressMeter: 'e-form__indicators__indicator__progress__meter',
        indicatorSeparator: 'e-form__indicators__indicator__separator',
        indicatorInactive: 'e-form__indicators__indicator--state-inactive',
        indicatorActive: 'e-form__indicators__indicator--state-active',
        indicatorCompleted: 'e-form__indicators__indicator--state-completed',
        indicatorShapeCircle: 'e-form__indicators__indicator--shape-circle',
        indicatorShapeSquare: 'e-form__indicators__indicator--shape-square',
        indicatorShapeRounded: 'e-form__indicators__indicator--shape-rounded',
        indicatorShapeNone: 'e-form__indicators__indicator--shape-none'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings(),
          elements = {
      $form: this.$element.find(selectors.form)
    };
    elements.$fieldsWrapper = elements.$form.children(selectors.fieldsWrapper);
    elements.$stepWrapper = elements.$fieldsWrapper.children(selectors.stepWrapper);
    elements.$stepField = elements.$stepWrapper.children(selectors.stepField);
    elements.$fieldGroup = elements.$fieldsWrapper.children(selectors.fieldGroup);
    elements.$submitWrapper = elements.$fieldsWrapper.children(selectors.submitWrapper);
    elements.$submitButton = elements.$submitWrapper.children(selectors.submitButton);
    return elements;
  }

  onInit(...args) {
    super.onInit(...args);

    if (!this.isStepsExist()) {
      return;
    }

    this.data = {
      steps: [],
      indicatorsWithObjectTags: []
    };
    this.state = {
      currentStep: 0,
      stepsType: '',
      stepsShape: ''
    };
    this.buildSteps();
    this.elements = { ...this.elements,
      ...this.createStepsIndicators(),
      ...this.createStepsButtons()
    };
    this.initProgressBar();
    this.extractResponsiveSizeFromSubmitWrapper();
  }

  bindEvents() {
    if (!this.isStepsExist()) {
      return;
    }

    this.elements.$form.on({
      submit: () => this.resetForm(),
      keydown: e => {
        if (13 === e.keyCode && !this.isLastStep() && 'textarea' !== e.target.localName) {
          e.preventDefault();
          this.applyStep('next');
        }
      },
      error: () => this.onFormError()
    });
  }

  isStepsExist() {
    return this.elements.$stepWrapper.length;
  }

  initProgressBar() {
    const stepsSettings = this.getElementSettings();

    if ('progress_bar' === stepsSettings.step_type) {
      this.setProgressBar();
    }
  }

  buildSteps() {
    this.elements.$stepWrapper.each((index, el) => {
      const {
        selectors,
        classes
      } = this.getSettings(),
            $currentStep = jQuery(el);
      $currentStep.addClass(classes.step).removeClass(classes.fieldGroup, classes.column);

      if (index) {
        $currentStep.addClass(classes.hidden);
      }

      this.setStepData($currentStep.children(selectors.stepField));
      $currentStep.append($currentStep.nextUntil(this.elements.$stepWrapper).not(this.elements.$submitWrapper));
    });
  }

  setStepData($stepElement) {
    const dataAttributes = ['label', 'previousButton', 'nextButton', 'iconUrl', 'iconLibrary', 'icon'],
          stepData = {};
    dataAttributes.forEach(attr => {
      const attrValue = $stepElement.attr('data-' + attr);

      if (attrValue) {
        stepData[attr] = attrValue;
      }
    });
    this.data.steps.push(stepData);
  }

  createStepsIndicators() {
    const stepsSettings = this.getElementSettings(),
          stepsElements = {};

    if ('none' !== stepsSettings.step_type) {
      const {
        selectors,
        classes
      } = this.getSettings(),
            indicatorsTypeClass = classes.indicators + '--type-' + stepsSettings.step_type,
            indicatorsClasses = [classes.indicators, indicatorsTypeClass];
      stepsElements.$indicatorsWrapper = jQuery('<div>', {
        class: indicatorsClasses.join(' ')
      });
      stepsElements.$indicatorsWrapper.append(this.buildIndicators());
      this.elements.$fieldsWrapper.before(stepsElements.$indicatorsWrapper);

      if ('progress_bar' === stepsSettings.step_type) {
        stepsElements.$progressBar = stepsElements.$indicatorsWrapper.find(selectors.indicatorProgress);
        stepsElements.$progressBarMeter = stepsElements.$indicatorsWrapper.find(selectors.indicatorProgressMeter);
      } else {
        stepsElements.$indicators = stepsElements.$indicatorsWrapper.find(selectors.indicator);
        stepsElements.$currentIndicator = stepsElements.$indicators.eq(this.state.currentStep);
      }
    }

    this.saveIndicatorsState();
    return stepsElements;
  }

  buildIndicators() {
    const stepsSettings = this.getElementSettings();
    return 'progress_bar' === stepsSettings.step_type ? this.buildProgressBar() : this.buildIndicatorsFromStepsData();
  }

  buildProgressBar() {
    const {
      classes
    } = this.getSettings(),
          $progressBar = jQuery('<div>', {
      class: classes.indicatorProgress
    }),
          $progressBarMeter = jQuery('<div>', {
      class: classes.indicatorProgressMeter
    });
    $progressBar.append($progressBarMeter);
    return $progressBar;
  }

  getProgressBarValue() {
    const totalSteps = this.data.steps.length,
          currentStep = this.state.currentStep,
          percentage = currentStep ? (currentStep + 1) / totalSteps * 100 : 100 / totalSteps;
    return Math.floor(percentage) + '%';
  }

  setProgressBar() {
    const progressBarValue = this.getProgressBarValue();
    this.updateProgressMeterCSSVariable(progressBarValue);
    this.elements.$progressBarMeter.text(progressBarValue);
  }

  updateProgressMeterCSSVariable(value) {
    this.$element[0].style.setProperty('--e-form-steps-indicator-progress-meter-width', value);
  }

  saveIndicatorsState() {
    const stepsSettings = this.getElementSettings();
    this.state.stepsType = stepsSettings.step_type;

    if (!['none', 'text', 'progress_bar'].includes(stepsSettings.step_type)) {
      this.state.stepsShape = stepsSettings.step_icon_shape;
    }
  }

  buildIndicatorsFromStepsData() {
    const indicators = [];
    this.data.steps.forEach((stepObj, index) => {
      if (index) {
        indicators.push(this.getStepSeparator());
      }

      indicators.push(this.getStepIndicatorElement(stepObj, index));
    });
    return indicators;
  }

  getStepIndicatorElement(stepObj, index) {
    const {
      classes
    } = this.getSettings(),
          stepsSettings = this.getElementSettings(),
          indicatorStateClass = this.getIndicatorStateClass(index),
          indicatorClasses = [classes.indicator, indicatorStateClass],
          $stepIndicator = jQuery('<div>', {
      class: indicatorClasses.join(' ')
    });

    if (stepsSettings.step_type.includes('icon')) {
      $stepIndicator.append(this.getStepIconElement(stepObj));
    }

    if (stepsSettings.step_type.includes('number')) {
      $stepIndicator.append(this.getStepNumberElement(index));
    }

    if (stepsSettings.step_type.includes('text')) {
      $stepIndicator.append(this.getStepLabelElement(stepObj.label));
    }

    return $stepIndicator;
  }

  getIndicatorStateClass(index) {
    const {
      classes
    } = this.getSettings();

    if (index < this.state.currentStep) {
      return classes.indicatorCompleted;
    } else if (index > this.state.currentStep) {
      return classes.indicatorInactive;
    }

    return classes.indicatorActive;
  }

  getIndicatorShapeClass() {
    const stepsSettings = this.getElementSettings(),
          {
      classes
    } = this.getSettings();
    return classes['indicatorShape' + this.firstLetterToUppercase(stepsSettings.step_icon_shape)];
  }

  firstLetterToUppercase(str) {
    return str.charAt(0).toUpperCase() + str.slice(1);
  }

  getStepNumberElement(index) {
    const {
      classes
    } = this.getSettings(),
          numberClasses = [classes.indicatorNumber, this.getIndicatorShapeClass()];
    return jQuery('<div>', {
      class: numberClasses.join(' '),
      text: index + 1
    });
  }

  getStepIconElement(stepObj) {
    const {
      classes
    } = this.getSettings(),
          iconClasses = [classes.indicatorIcon, this.getIndicatorShapeClass()],
          $icon = jQuery('<div>', {
      class: iconClasses.join(' ')
    });

    if (stepObj.icon) {
      $icon.html(stepObj.icon);
    } else {
      let $iconElement;

      if (stepObj.iconLibrary) {
        $iconElement = jQuery('<i>', {
          class: stepObj.iconLibrary
        });
      } else {
        // Using the attributes inline when creating the object, otherwise the data attribute will not work.
        $iconElement = jQuery(`<object type="image/svg+xml" data="${stepObj.iconUrl}"></object>`); // Updating an indicator svg fill color, when loaded inside an object tag with a separated scope.

        $iconElement.on('load', event => {
          event.target.contentDocument.querySelector('svg').style.fill = $iconElement.css('fill');
        }); // Storing the indicators elements that contain object tags in order to change their fill color on steps change.

        this.data.indicatorsWithObjectTags.push($iconElement);
      }

      $icon.append($iconElement);
    }

    return $icon;
  }

  getStepLabelElement(label) {
    const {
      classes
    } = this.getSettings();
    return jQuery('<label>', {
      class: classes.indicatorLabel,
      text: label
    });
  }

  getStepSeparator() {
    const {
      classes
    } = this.getSettings();
    return jQuery('<div>', {
      class: classes.indicatorSeparator
    });
  }

  createStepsButtons() {
    const {
      selectors
    } = this.getSettings(),
          stepsElements = {};
    this.injectButtonsToSteps(stepsElements);
    stepsElements.$buttonsContainer = this.elements.$stepWrapper.find(selectors.buttons);
    stepsElements.$buttonsWrappers = stepsElements.$buttonsContainer.children(selectors.buttonWrapper);
    return stepsElements;
  }

  injectButtonsToSteps() {
    const totalSteps = this.elements.$stepWrapper.length;
    this.elements.$stepWrapper.each((index, el) => {
      const $el = jQuery(el),
            $container = this.getButtonsContainer();
      let $nextButton;

      if (index) {
        $container.append(this.getStepButton('previous', index));
        $nextButton = index === totalSteps - 1 ? this.getSubmitButton() : this.getStepButton('next', index);
      } else {
        $nextButton = this.getStepButton('next', index);
      }

      $container.append($nextButton);
      $el.append($container);
    });
  }

  getButtonsContainer() {
    const {
      classes
    } = this.getSettings(),
          stepsSettings = this.getElementSettings(),
          buttonColumnWidthClasses = [classes.buttons, classes.column, 'elementor-col-' + stepsSettings.button_width];
    return jQuery('<div>', {
      class: buttonColumnWidthClasses.join(' ')
    });
  }

  extractResponsiveSizeFromSubmitWrapper() {
    let sizeClasses = [];
    this.elements.$submitWrapper.removeClass((index, className) => {
      var _className$match;

      sizeClasses = (_className$match = className.match(/elementor-(sm|md)-[0-9]+/g)) === null || _className$match === void 0 ? void 0 : _className$match.join(' ');
      return sizeClasses;
    });
    this.elements.$buttonsContainer.addClass(sizeClasses);
  }

  getStepButton(buttonType, index) {
    const {
      classes
    } = this.getSettings(),
          $button = this.getButton(buttonType, index).on('click', () => this.applyStep(buttonType)),
          buttonWrapperClasses = [classes.fieldGroup, classes.buttonWrapper, 'elementor-field-type-' + buttonType];
    return jQuery('<div>', {
      class: buttonWrapperClasses.join(' ')
    }).append($button);
  }

  getSubmitButton() {
    const {
      classes
    } = this.getSettings();
    this.elements.$submitButton.addClass(classes.button); // TODO: When a solution for the conditions will be found, check if can remove the elementor-col-x manipulation.

    return this.elements.$submitWrapper.attr('class', (index, className) => {
      return this.replaceClassNameColSize(className, '');
    }).removeClass(classes.column).removeClass(classes.buttons).addClass(classes.buttonWrapper);
  }

  replaceClassNameColSize(className, value) {
    return className.replace(/elementor-col-([0-9]+)/g, value);
  }

  getButton(buttonType, index) {
    const {
      classes
    } = this.getSettings(),
          submitSizeClass = this.elements.$submitButton.attr('class').match(/elementor-size-([^\W\d]+)/g),
          buttonClasses = [classes.elementorButton, submitSizeClass, classes.button, classes.button + '-' + buttonType];
    return jQuery('<button>', {
      type: 'button',
      text: this.getButtonLabel(buttonType, index),
      class: buttonClasses.join(' ')
    });
  }

  getButtonLabel(buttonType, index) {
    const stepsSettings = this.getElementSettings(),
          stepData = this.data.steps[index],
          buttonName = buttonType + 'Button',
          buttonSettingsProp = `step_${buttonType}_label`;
    return stepData[buttonName] || stepsSettings[buttonSettingsProp];
  }

  applyStep(direction) {
    const nextIndex = 'next' === direction ? this.state.currentStep + 1 : this.state.currentStep - 1;

    if ('next' === direction && !this.isFieldsValid(this.elements.$stepWrapper)) {
      return false;
    }

    this.goToStep(nextIndex);
    this.state.currentStep = nextIndex;

    if ('progress_bar' === this.state.stepsType) {
      this.setProgressBar();
    } else if ('none' !== this.state.stepsType) {
      this.updateIndicatorsState(direction);
    }
  }

  goToStep(index) {
    const {
      classes
    } = this.getSettings();
    this.elements.$stepWrapper.eq(this.state.currentStep).addClass(classes.hidden);
    this.elements.$stepWrapper.eq(index).removeClass(classes.hidden).children(this.getSettings('selectors.fieldGroup')).first().find(':input').first().trigger('focus');
  }

  isFieldsValid($stepWrapper) {
    let isValid = true;
    $stepWrapper.eq(this.state.currentStep).find('.elementor-field-group :input').each((index, el) => {
      if (!el.checkValidity()) {
        el.reportValidity();
        return isValid = false;
      }
    });
    return isValid;
  }

  isLastStep() {
    return this.state.currentStep === this.data.steps.length - 1;
  }

  resetForm() {
    this.state.currentStep = 0;
    this.resetSteps();

    if ('progress_bar' === this.state.stepsType) {
      this.setProgressBar();
    } else if ('none' !== this.state.stepsType) {
      this.elements.$currentIndicator = this.elements.$indicators.eq(this.state.currentStep);
      this.resetIndicators();
    }
  }

  resetSteps() {
    const {
      classes
    } = this.getSettings();
    this.elements.$stepWrapper.addClass(classes.hidden).eq(0).removeClass(classes.hidden);
  }

  resetIndicators() {
    const {
      classes
    } = this.getSettings(),
          stateTypes = ['inactive', 'active', 'completed'],
          stateClasses = stateTypes.map(state => classes.indicator + '--state-' + state);
    this.elements.$indicators.removeClass(stateClasses.join(' ')).not(this.elements.$indicators.eq(0)).addClass(classes.indicatorInactive);
    this.elements.$indicators.eq(0).addClass(classes.indicatorActive);
  }

  updateIndicatorsState(direction) {
    const {
      classes
    } = this.getSettings(),
          indicatorsClasses = {
      current: {
        remove: classes.indicatorActive,
        add: 'next' === direction ? classes.indicatorCompleted : classes.indicatorInactive
      },
      next: {
        remove: 'next' === direction ? classes.indicatorInactive : classes.indicatorCompleted,
        add: classes.indicatorActive
      }
    };
    this.elements.$currentIndicator.removeClass(indicatorsClasses.current.remove).addClass(indicatorsClasses.current.add);
    this.elements.$currentIndicator = this.elements.$indicators.eq(this.state.currentStep);
    this.elements.$currentIndicator.removeClass(indicatorsClasses.next.remove).addClass(indicatorsClasses.next.add); // Updating an indicator svg fill color, if loaded inside an object tag.

    this.data.indicatorsWithObjectTags.forEach($element => {
      $element.contents().children('svg').css('fill', $element.css('fill'));
    });
  }

  updateValue(updatedValue) {
    const actionsMap = {
      step_type: () => this.updateStepsType(),
      step_icon_shape: () => this.updateStepsShape(),
      step_next_label: () => this.updateStepButtonsLabel('next'),
      step_previous_label: () => this.updateStepButtonsLabel('previous')
    };

    if (actionsMap[updatedValue]) {
      actionsMap[updatedValue]();
    }
  }

  updateStepsType() {
    const stepsSettings = this.getElementSettings();

    if (this.elements.$indicatorsWrapper) {
      this.elements.$indicatorsWrapper.remove();
    }

    if ('none' !== stepsSettings.step_type) {
      this.rebuildIndicators();
    }

    this.state.stepsType = stepsSettings.step_type;
  }

  rebuildIndicators() {
    this.elements = { ...this.elements,
      ...this.createStepsIndicators()
    };
    this.initProgressBar();
  }

  updateStepsShape() {
    const stepsSettings = this.getElementSettings(),
          {
      selectors,
      classes
    } = this.getSettings(),
          shapeClassStart = classes.indicator + '--shape-',
          currentShapeClass = shapeClassStart + this.state.stepsShape,
          newShapeClass = shapeClassStart + stepsSettings.step_icon_shape;
    let elementsTargetType = '';

    if (stepsSettings.step_type.includes('icon')) {
      elementsTargetType = 'icon';
    } else if (stepsSettings.step_type.includes('number')) {
      elementsTargetType = 'number';
    }

    this.elements.$indicators.children(selectors.indicator + '__' + elementsTargetType).removeClass(currentShapeClass).addClass(newShapeClass);
    this.state.stepsShape = stepsSettings.step_icon_shape;
  }

  updateStepButtonsLabel(buttonType) {
    const {
      selectors
    } = this.getSettings(),
          buttonSelector = {
      previous: selectors.button + '-previous',
      next: selectors.button + '-next'
    };
    this.elements.$stepWrapper.each((index, el) => {
      jQuery(el).find(buttonSelector[buttonType]).text(this.getButtonLabel(buttonType, index));
    });
  }

  onFormError() {
    const {
      selectors
    } = this.getSettings(),
          $errorStepElement = this.elements.$form.find(selectors.formHelpInline).closest(selectors.stepWrapper);

    if ($errorStepElement.length) {
      this.goToStep($errorStepElement.index());
    }
  }

  onElementChange(updatedValue) {
    if (!this.isStepsExist()) {
      return;
    }

    this.updateValue(updatedValue);
  }

}

exports.default = FormSteps;

/***/ }),

/***/ "../modules/forms/assets/js/frontend/handlers/recaptcha.js":
/*!*****************************************************************!*\
  !*** ../modules/forms/assets/js/frontend/handlers/recaptcha.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Recaptcha extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        recaptcha: '.elementor-g-recaptcha:last',
        submit: 'button[type="submit"]',
        recaptchaResponse: '[name="g-recaptcha-response"]'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getDefaultSettings(),
          elements = {
      $recaptcha: this.$element.find(selectors.recaptcha)
    };
    elements.$form = elements.$recaptcha.parents('form');
    elements.$submit = elements.$form.find(selectors.submit);
    return elements;
  }

  bindEvents() {
    this.onRecaptchaApiReady();
  }

  isActive(settings) {
    const {
      selectors
    } = this.getDefaultSettings();
    return settings.$element.find(selectors.recaptcha).length;
  }

  addRecaptcha() {
    const settings = this.elements.$recaptcha.data(),
          isV2 = 'v3' !== settings.type,
          captchaIds = [];
    captchaIds.forEach(id => window.grecaptcha.reset(id));
    const widgetId = window.grecaptcha.render(this.elements.$recaptcha[0], settings);
    this.elements.$form.on('reset error', () => {
      window.grecaptcha.reset(widgetId);
    });

    if (isV2) {
      this.elements.$recaptcha.data('widgetId', widgetId);
    } else {
      captchaIds.push(widgetId);
      this.elements.$submit.on('click', e => this.onV3FormSubmit(e, widgetId));
    }
  }

  onV3FormSubmit(e, widgetId) {
    e.preventDefault();
    window.grecaptcha.ready(() => {
      const $form = this.elements.$form;
      grecaptcha.execute(widgetId, {
        action: this.elements.$recaptcha.data('action')
      }).then(token => {
        if (this.elements.$recaptchaResponse) {
          this.elements.$recaptchaResponse.val(token);
        } else {
          this.elements.$recaptchaResponse = jQuery('<input>', {
            type: 'hidden',
            value: token,
            name: 'g-recaptcha-response'
          });
          $form.append(this.elements.$recaptchaResponse);
        } // Support old browsers.


        const bcSupport = !$form[0].reportValidity || 'function' !== typeof $form[0].reportValidity;

        if (bcSupport || $form[0].reportValidity()) {
          $form.trigger('submit');
        }
      });
    });
  }

  onRecaptchaApiReady() {
    if (window.grecaptcha && window.grecaptcha.render) {
      this.addRecaptcha();
    } else {
      // If not ready check again by timeout..
      setTimeout(() => this.onRecaptchaApiReady(), 350);
    }
  }

}

exports.default = Recaptcha;

/***/ })

}]);
//# sourceMappingURL=form.23168c11e0d20fa0282b.bundle.js.mapPK!2���%�%�assets/js/app.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.scss":
/*!*****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.scss ***!
  \*****************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/atoms/preview-iframe.scss":
/*!***************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/atoms/preview-iframe.scss ***!
  \***************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/back-button.scss":
/*!****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/back-button.scss ***!
  \****************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template.scss":
/*!******************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template.scss ***!
  \******************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/add-new.scss":
/*!********************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/add-new.scss ***!
  \********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions.scss":
/*!**********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/conditions.scss ***!
  \**********************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/template-type.scss":
/*!**************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/template-type.scss ***!
  \**************************************************************************/
/***/ (() => {



/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/site-editor.scss":
/*!******************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/site-editor.scss ***!
  \******************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/json/stringify */ "../node_modules/core-js/library/fn/json/stringify.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/assign.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/assign */ "../node_modules/core-js/library/fn/object/assign.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-properties */ "../node_modules/core-js/library/fn/object/define-properties.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js":
/*!*********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptors */ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js ***!
  \*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-symbols */ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/keys.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/keys */ "../node_modules/core-js/library/fn/object/keys.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/values.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/values */ "../node_modules/core-js/library/fn/object/values.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/parse-int.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/parse-int */ "../node_modules/core-js/library/fn/parse-int.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/promise.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/promise.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/promise */ "../node_modules/core-js/library/fn/promise.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/weak-map.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/weak-map */ "../node_modules/core-js/library/fn/weak-map.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

function _arrayWithHoles(arr) {
  if (_Array$isArray(arr)) return arr;
}

module.exports = _arrayWithHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperty(obj, key, value) {
  if (key in obj) {
    _Object$defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/extends.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/extends.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$assign = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js");

function _extends() {
  module.exports = _extends = _Object$assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _extends.apply(this, arguments);
}

module.exports = _extends;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var _WeakMap = __webpack_require__(/*! @babel/runtime-corejs2/core-js/weak-map */ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

function _getRequireWildcardCache(nodeInterop) {
  if (typeof _WeakMap !== "function") return null;
  var cacheBabelInterop = new _WeakMap();
  var cacheNodeInterop = new _WeakMap();
  return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
    return {
      "default": obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        _Object$defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj["default"] = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

module.exports = _interopRequireWildcard;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js":
/*!******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _iterableToArrayLimit(arr, i) {
  var _i = arr && (typeof _Symbol !== "undefined" && arr[_Symbol$iterator] || arr["@@iterator"]);

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

module.exports = _iterableToArrayLimit;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js ***!
  \*************************************************************************/
/***/ ((module) => {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableRest;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

var _Object$getOwnPropertySymbols = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-symbols */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var _Object$getOwnPropertyDescriptors = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptors */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js");

var _Object$defineProperties = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-properties */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var defineProperty = __webpack_require__(/*! ./defineProperty.js */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js");

function ownKeys(object, enumerableOnly) {
  var keys = _Object$keys(object);

  if (_Object$getOwnPropertySymbols) {
    var symbols = _Object$getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        defineProperty(target, key, source[key]);
      });
    } else if (_Object$getOwnPropertyDescriptors) {
      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

module.exports = _objectSpread2;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js");

var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js");

function _slicedToArray(arr, i) {
  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}

module.exports = _slicedToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@reach/router/es/index.js":
/*!*************************************************!*\
  !*** ../node_modules/@reach/router/es/index.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Link": () => (/* binding */ Link),
/* harmony export */   "Location": () => (/* binding */ Location),
/* harmony export */   "LocationProvider": () => (/* binding */ LocationProvider),
/* harmony export */   "Match": () => (/* binding */ Match),
/* harmony export */   "Redirect": () => (/* binding */ Redirect),
/* harmony export */   "Router": () => (/* binding */ Router),
/* harmony export */   "ServerLocation": () => (/* binding */ ServerLocation),
/* harmony export */   "createHistory": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.createHistory),
/* harmony export */   "createMemorySource": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.createMemorySource),
/* harmony export */   "isRedirect": () => (/* binding */ isRedirect),
/* harmony export */   "navigate": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.navigate),
/* harmony export */   "redirectTo": () => (/* binding */ redirectTo),
/* harmony export */   "globalHistory": () => (/* reexport safe */ _lib_history__WEBPACK_IMPORTED_MODULE_6__.globalHistory),
/* harmony export */   "matchPath": () => (/* reexport safe */ _lib_utils__WEBPACK_IMPORTED_MODULE_5__.match),
/* harmony export */   "useLocation": () => (/* binding */ useLocation),
/* harmony export */   "useNavigate": () => (/* binding */ useNavigate),
/* harmony export */   "useParams": () => (/* binding */ useParams),
/* harmony export */   "useMatch": () => (/* binding */ useMatch)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var create_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! create-react-context */ "../node_modules/create-react-context/lib/index.js");
/* harmony import */ var create_react_context__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(create_react_context__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-lifecycles-compat */ "../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");
/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/utils */ "../node_modules/@reach/router/es/lib/utils.js");
/* harmony import */ var _lib_history__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/history */ "../node_modules/@reach/router/es/lib/history.js");
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

/* eslint-disable jsx-a11y/anchor-has-content */








////////////////////////////////////////////////////////////////////////////////

var createNamedContext = function createNamedContext(name, defaultValue) {
  var Ctx = create_react_context__WEBPACK_IMPORTED_MODULE_3___default()(defaultValue);
  Ctx.displayName = name;
  return Ctx;
};

////////////////////////////////////////////////////////////////////////////////
// Location Context/Provider
var LocationContext = createNamedContext("Location");

// sets up a listener if there isn't one already so apps don't need to be
// wrapped in some top level provider
var Location = function Location(_ref) {
  var children = _ref.children;
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    LocationContext.Consumer,
    null,
    function (context) {
      return context ? children(context) : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        LocationProvider,
        null,
        children
      );
    }
  );
};

var LocationProvider = function (_React$Component) {
  _inherits(LocationProvider, _React$Component);

  function LocationProvider() {
    var _temp, _this, _ret;

    _classCallCheck(this, LocationProvider);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
      context: _this.getContext(),
      refs: { unlisten: null }
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  LocationProvider.prototype.getContext = function getContext() {
    var _props$history = this.props.history,
        navigate = _props$history.navigate,
        location = _props$history.location;

    return { navigate: navigate, location: location };
  };

  LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {
    if (isRedirect(error)) {
      var _navigate = this.props.history.navigate;

      _navigate(error.uri, { replace: true });
    } else {
      throw error;
    }
  };

  LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
    if (prevState.context.location !== this.state.context.location) {
      this.props.history._onTransitionComplete();
    }
  };

  LocationProvider.prototype.componentDidMount = function componentDidMount() {
    var _this2 = this;

    var refs = this.state.refs,
        history = this.props.history;

    history._onTransitionComplete();
    refs.unlisten = history.listen(function () {
      Promise.resolve().then(function () {
        // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306
        requestAnimationFrame(function () {
          if (!_this2.unmounted) {
            _this2.setState(function () {
              return { context: _this2.getContext() };
            });
          }
        });
      });
    });
  };

  LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {
    var refs = this.state.refs;

    this.unmounted = true;
    refs.unlisten();
  };

  LocationProvider.prototype.render = function render() {
    var context = this.state.context,
        children = this.props.children;

    return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
      LocationContext.Provider,
      { value: context },
      typeof children === "function" ? children(context) : children || null
    );
  };

  return LocationProvider;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

////////////////////////////////////////////////////////////////////////////////


LocationProvider.defaultProps = {
  history: _lib_history__WEBPACK_IMPORTED_MODULE_6__.globalHistory
};
 true ? LocationProvider.propTypes = {
  history: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object.isRequired)
} : 0;
var ServerLocation = function ServerLocation(_ref2) {
  var url = _ref2.url,
      children = _ref2.children;

  var searchIndex = url.indexOf("?");
  var searchExists = searchIndex > -1;
  var pathname = void 0;
  var search = "";
  var hash = "";

  if (searchExists) {
    pathname = url.substring(0, searchIndex);
    search = url.substring(searchIndex);
  } else {
    pathname = url;
  }

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    LocationContext.Provider,
    {
      value: {
        location: {
          pathname: pathname,
          search: search,
          hash: hash
        },
        navigate: function navigate() {
          throw new Error("You can't call navigate on the server.");
        }
      }
    },
    children
  );
};
////////////////////////////////////////////////////////////////////////////////
// Sets baseuri and basepath for nested routers and links
var BaseContext = createNamedContext("Base", { baseuri: "/", basepath: "/" });

////////////////////////////////////////////////////////////////////////////////
// The main event, welcome to the show everybody.
var Router = function Router(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (baseContext) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (locationContext) {
          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RouterImpl, _extends({}, baseContext, locationContext, props));
        }
      );
    }
  );
};

var RouterImpl = function (_React$PureComponent) {
  _inherits(RouterImpl, _React$PureComponent);

  function RouterImpl() {
    _classCallCheck(this, RouterImpl);

    return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));
  }

  RouterImpl.prototype.render = function render() {
    var _props = this.props,
        location = _props.location,
        _navigate2 = _props.navigate,
        basepath = _props.basepath,
        primary = _props.primary,
        children = _props.children,
        baseuri = _props.baseuri,
        _props$component = _props.component,
        component = _props$component === undefined ? "div" : _props$component,
        domProps = _objectWithoutProperties(_props, ["location", "navigate", "basepath", "primary", "children", "baseuri", "component"]);

    var routes = react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(children).reduce(function (array, child) {
      var routes = createRoute(basepath)(child);
      return array.concat(routes);
    }, []);
    var pathname = location.pathname;


    var match = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.pick)(routes, pathname);

    if (match) {
      var params = match.params,
          uri = match.uri,
          route = match.route,
          element = match.route.value;

      // remove the /* from the end for child routes relative paths

      basepath = route.default ? basepath : route.path.replace(/\*$/, "");

      var props = _extends({}, params, {
        uri: uri,
        location: location,
        navigate: function navigate(to, options) {
          return _navigate2((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, uri), options);
        }
      });

      var clone = react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(element, props, element.props.children ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Router,
        { location: location, primary: primary },
        element.props.children
      ) : undefined);

      // using 'div' for < 16.3 support
      var FocusWrapper = primary ? FocusHandler : component;
      // don't pass any props to 'div'
      var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;

      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        BaseContext.Provider,
        { value: { baseuri: uri, basepath: basepath } },
        react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
          FocusWrapper,
          wrapperProps,
          clone
        )
      );
    } else {
      // Not sure if we want this, would require index routes at every level
      // warning(
      //   false,
      //   `<Router basepath="${basepath}">\n\nNothing matched:\n\t${
      //     location.pathname
      //   }\n\nPaths checked: \n\t${routes
      //     .map(route => route.path)
      //     .join(
      //       "\n\t"
      //     )}\n\nTo get rid of this warning, add a default NotFound component as child of Router:
      //   \n\tlet NotFound = () => <div>Not Found!</div>
      //   \n\t<Router>\n\t  <NotFound default/>\n\t  {/* ... */}\n\t</Router>`
      // );
      return null;
    }
  };

  return RouterImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent));

RouterImpl.defaultProps = {
  primary: true
};


var FocusContext = createNamedContext("Focus");

var FocusHandler = function FocusHandler(_ref3) {
  var uri = _ref3.uri,
      location = _ref3.location,
      component = _ref3.component,
      domProps = _objectWithoutProperties(_ref3, ["uri", "location", "component"]);

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    FocusContext.Consumer,
    null,
    function (requestFocus) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FocusHandlerImpl, _extends({}, domProps, {
        component: component,
        requestFocus: requestFocus,
        uri: uri,
        location: location
      }));
    }
  );
};

// don't focus on initial render
var initialRender = true;
var focusHandlerCount = 0;

var FocusHandlerImpl = function (_React$Component2) {
  _inherits(FocusHandlerImpl, _React$Component2);

  function FocusHandlerImpl() {
    var _temp2, _this4, _ret2;

    _classCallCheck(this, FocusHandlerImpl);

    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }

    return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {
      if (!_this4.state.shouldFocus && node) {
        node.focus();
      }
    }, _temp2), _possibleConstructorReturn(_this4, _ret2);
  }

  FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
    var initial = prevState.uri == null;
    if (initial) {
      return _extends({
        shouldFocus: true
      }, nextProps);
    } else {
      var myURIChanged = nextProps.uri !== prevState.uri;
      var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;
      return _extends({
        shouldFocus: myURIChanged || navigatedUpToMe
      }, nextProps);
    }
  };

  FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {
    focusHandlerCount++;
    this.focus();
  };

  FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {
    focusHandlerCount--;
    if (focusHandlerCount === 0) {
      initialRender = true;
    }
  };

  FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
    if (prevProps.location !== this.props.location && this.state.shouldFocus) {
      this.focus();
    }
  };

  FocusHandlerImpl.prototype.focus = function focus() {
    if (false) {}

    var requestFocus = this.props.requestFocus;


    if (requestFocus) {
      requestFocus(this.node);
    } else {
      if (initialRender) {
        initialRender = false;
      } else if (this.node) {
        // React polyfills [autofocus] and it fires earlier than cDM,
        // so we were stealing focus away, this line prevents that.
        if (!this.node.contains(document.activeElement)) {
          this.node.focus();
        }
      }
    }
  };

  FocusHandlerImpl.prototype.render = function render() {
    var _this5 = this;

    var _props2 = this.props,
        children = _props2.children,
        style = _props2.style,
        requestFocus = _props2.requestFocus,
        _props2$component = _props2.component,
        Comp = _props2$component === undefined ? "div" : _props2$component,
        uri = _props2.uri,
        location = _props2.location,
        domProps = _objectWithoutProperties(_props2, ["children", "style", "requestFocus", "component", "uri", "location"]);

    return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
      Comp,
      _extends({
        style: _extends({ outline: "none" }, style),
        tabIndex: "-1",
        ref: function ref(n) {
          return _this5.node = n;
        }
      }, domProps),
      react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        FocusContext.Provider,
        { value: this.requestFocus },
        this.props.children
      )
    );
  };

  return FocusHandlerImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

(0,react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_4__.polyfill)(FocusHandlerImpl);

var k = function k() {};

////////////////////////////////////////////////////////////////////////////////
var forwardRef = (react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef);

if (typeof forwardRef === "undefined") {
  forwardRef = function forwardRef(C) {
    return C;
  };
}

var Link = forwardRef(function (_ref4, ref) {
  var innerRef = _ref4.innerRef,
      props = _objectWithoutProperties(_ref4, ["innerRef"]);

  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref5) {
      var basepath = _ref5.basepath,
          baseuri = _ref5.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (_ref6) {
          var location = _ref6.location,
              navigate = _ref6.navigate;

          var to = props.to,
              state = props.state,
              replace = props.replace,
              _props$getProps = props.getProps,
              getProps = _props$getProps === undefined ? k : _props$getProps,
              anchorProps = _objectWithoutProperties(props, ["to", "state", "replace", "getProps"]);

          var href = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
          var encodedHref = encodeURI(href);
          var isCurrent = location.pathname === encodedHref;
          var isPartiallyCurrent = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.startsWith)(location.pathname, encodedHref);

          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", _extends({
            ref: ref || innerRef,
            "aria-current": isCurrent ? "page" : undefined
          }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {
            href: href,
            onClick: function onClick(event) {
              if (anchorProps.onClick) anchorProps.onClick(event);
              if (shouldNavigate(event)) {
                event.preventDefault();
                var shouldReplace = replace;
                if (typeof replace !== "boolean" && isCurrent) {
                  var _location$state = _extends({}, location.state),
                      key = _location$state.key,
                      restState = _objectWithoutProperties(_location$state, ["key"]);

                  shouldReplace = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.shallowCompare)(_extends({}, state), restState);
                }
                navigate(href, {
                  state: state,
                  replace: shouldReplace
                });
              }
            }
          }));
        }
      );
    }
  );
});

Link.displayName = "Link";

 true ? Link.propTypes = {
  to: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired)
} : 0;

////////////////////////////////////////////////////////////////////////////////
function RedirectRequest(uri) {
  this.uri = uri;
}

var isRedirect = function isRedirect(o) {
  return o instanceof RedirectRequest;
};

var redirectTo = function redirectTo(to) {
  throw new RedirectRequest(to);
};

var RedirectImpl = function (_React$Component3) {
  _inherits(RedirectImpl, _React$Component3);

  function RedirectImpl() {
    _classCallCheck(this, RedirectImpl);

    return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));
  }

  // Support React < 16 with this hook
  RedirectImpl.prototype.componentDidMount = function componentDidMount() {
    var _props3 = this.props,
        navigate = _props3.navigate,
        to = _props3.to,
        from = _props3.from,
        _props3$replace = _props3.replace,
        replace = _props3$replace === undefined ? true : _props3$replace,
        state = _props3.state,
        noThrow = _props3.noThrow,
        baseuri = _props3.baseuri,
        props = _objectWithoutProperties(_props3, ["navigate", "to", "from", "replace", "state", "noThrow", "baseuri"]);

    Promise.resolve().then(function () {
      var resolvedTo = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
      navigate((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.insertParams)(resolvedTo, props), { replace: replace, state: state });
    });
  };

  RedirectImpl.prototype.render = function render() {
    var _props4 = this.props,
        navigate = _props4.navigate,
        to = _props4.to,
        from = _props4.from,
        replace = _props4.replace,
        state = _props4.state,
        noThrow = _props4.noThrow,
        baseuri = _props4.baseuri,
        props = _objectWithoutProperties(_props4, ["navigate", "to", "from", "replace", "state", "noThrow", "baseuri"]);

    var resolvedTo = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(to, baseuri);
    if (!noThrow) redirectTo((0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.insertParams)(resolvedTo, props));
    return null;
  };

  return RedirectImpl;
}((react__WEBPACK_IMPORTED_MODULE_0___default().Component));

var Redirect = function Redirect(props) {
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref7) {
      var baseuri = _ref7.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (locationContext) {
          return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));
        }
      );
    }
  );
};

 true ? Redirect.propTypes = {
  from: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
  to: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string.isRequired)
} : 0;

////////////////////////////////////////////////////////////////////////////////
var Match = function Match(_ref8) {
  var path = _ref8.path,
      children = _ref8.children;
  return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
    BaseContext.Consumer,
    null,
    function (_ref9) {
      var baseuri = _ref9.baseuri;
      return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
        Location,
        null,
        function (_ref10) {
          var navigate = _ref10.navigate,
              location = _ref10.location;

          var resolvedPath = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(path, baseuri);
          var result = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(resolvedPath, location.pathname);
          return children({
            navigate: navigate,
            location: location,
            match: result ? _extends({}, result.params, {
              uri: result.uri,
              path: path
            }) : null
          });
        }
      );
    }
  );
};

////////////////////////////////////////////////////////////////////////////////
// Hooks

var useLocation = function useLocation() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(LocationContext);

  if (!context) {
    throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  return context.location;
};

var useNavigate = function useNavigate() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(LocationContext);

  if (!context) {
    throw new Error("useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  return context.navigate;
};

var useParams = function useParams() {
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BaseContext);

  if (!context) {
    throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  var location = useLocation();

  var results = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(context.basepath, location.pathname);

  return results ? results.params : null;
};

var useMatch = function useMatch(path) {
  if (!path) {
    throw new Error("useMatch(path: string) requires an argument of a string to match against");
  }
  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(BaseContext);

  if (!context) {
    throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");
  }

  var location = useLocation();

  var resolvedPath = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.resolve)(path, context.baseuri);
  var result = (0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.match)(resolvedPath, location.pathname);
  return result ? _extends({}, result.params, {
    uri: result.uri,
    path: path
  }) : null;
};

////////////////////////////////////////////////////////////////////////////////
// Junk
var stripSlashes = function stripSlashes(str) {
  return str.replace(/(^\/+|\/+$)/g, "");
};

var createRoute = function createRoute(basepath) {
  return function (element) {
    if (!element) {
      return null;
    }

    if (element.type === (react__WEBPACK_IMPORTED_MODULE_0___default().Fragment) && element.props.children) {
      return react__WEBPACK_IMPORTED_MODULE_0___default().Children.map(element.props.children, createRoute(basepath));
    }
    !(element.props.path || element.props.default || element.type === Redirect) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Router>: Children of <Router> must have a `path` or `default` prop, or be a `<Redirect>`. None found on element type `" + element.type + "`") : 0 : void 0;

    !!(element.type === Redirect && (!element.props.from || !element.props.to)) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Redirect from=\"" + element.props.from + "\" to=\"" + element.props.to + "\"/> requires both \"from\" and \"to\" props when inside a <Router>.") : 0 : void 0;

    !!(element.type === Redirect && !(0,_lib_utils__WEBPACK_IMPORTED_MODULE_5__.validateRedirect)(element.props.from, element.props.to)) ?  true ? invariant__WEBPACK_IMPORTED_MODULE_2___default()(false, "<Redirect from=\"" + element.props.from + " to=\"" + element.props.to + "\"/> has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.") : 0 : void 0;

    if (element.props.default) {
      return { value: element, default: true };
    }

    var elementPath = element.type === Redirect ? element.props.from : element.props.path;

    var path = elementPath === "/" ? basepath : stripSlashes(basepath) + "/" + stripSlashes(elementPath);

    return {
      value: element,
      default: element.props.default,
      path: element.props.children ? stripSlashes(path) + "/*" : path
    };
  };
};

var shouldNavigate = function shouldNavigate(event) {
  return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
};

////////////////////////////////////////////////////////////////////////


/***/ }),

/***/ "../node_modules/@reach/router/es/lib/history.js":
/*!*******************************************************!*\
  !*** ../node_modules/@reach/router/es/lib/history.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "globalHistory": () => (/* binding */ globalHistory),
/* harmony export */   "navigate": () => (/* binding */ navigate),
/* harmony export */   "createHistory": () => (/* binding */ createHistory),
/* harmony export */   "createMemorySource": () => (/* binding */ createMemorySource)
/* harmony export */ });
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var getLocation = function getLocation(source) {
  var _source$location = source.location,
      search = _source$location.search,
      hash = _source$location.hash,
      href = _source$location.href,
      origin = _source$location.origin,
      protocol = _source$location.protocol,
      host = _source$location.host,
      hostname = _source$location.hostname,
      port = _source$location.port;
  var pathname = source.location.pathname;


  if (!pathname && href && canUseDOM) {
    var url = new URL(href);
    pathname = url.pathname;
  }

  return {
    pathname: encodeURI(decodeURI(pathname)),
    search: search,
    hash: hash,
    href: href,
    origin: origin,
    protocol: protocol,
    host: host,
    hostname: hostname,
    port: port,
    state: source.history.state,
    key: source.history.state && source.history.state.key || "initial"
  };
};

var createHistory = function createHistory(source, options) {
  var listeners = [];
  var location = getLocation(source);
  var transitioning = false;
  var resolveTransition = function resolveTransition() {};

  return {
    get location() {
      return location;
    },

    get transitioning() {
      return transitioning;
    },

    _onTransitionComplete: function _onTransitionComplete() {
      transitioning = false;
      resolveTransition();
    },
    listen: function listen(listener) {
      listeners.push(listener);

      var popstateListener = function popstateListener() {
        location = getLocation(source);
        listener({ location: location, action: "POP" });
      };

      source.addEventListener("popstate", popstateListener);

      return function () {
        source.removeEventListener("popstate", popstateListener);
        listeners = listeners.filter(function (fn) {
          return fn !== listener;
        });
      };
    },
    navigate: function navigate(to) {
      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
          state = _ref.state,
          _ref$replace = _ref.replace,
          replace = _ref$replace === undefined ? false : _ref$replace;

      if (typeof to === "number") {
        source.history.go(to);
      } else {
        state = _extends({}, state, { key: Date.now() + "" });
        // try...catch iOS Safari limits to 100 pushState calls
        try {
          if (transitioning || replace) {
            source.history.replaceState(state, null, to);
          } else {
            source.history.pushState(state, null, to);
          }
        } catch (e) {
          source.location[replace ? "replace" : "assign"](to);
        }
      }

      location = getLocation(source);
      transitioning = true;
      var transition = new Promise(function (res) {
        return resolveTransition = res;
      });
      listeners.forEach(function (listener) {
        return listener({ location: location, action: "PUSH" });
      });
      return transition;
    }
  };
};

////////////////////////////////////////////////////////////////////////////////
// Stores history entries in memory for testing or other platforms like Native
var createMemorySource = function createMemorySource() {
  var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "/";

  var searchIndex = initialPath.indexOf("?");
  var initialLocation = {
    pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,
    search: searchIndex > -1 ? initialPath.substr(searchIndex) : ""
  };
  var index = 0;
  var stack = [initialLocation];
  var states = [null];

  return {
    get location() {
      return stack[index];
    },
    addEventListener: function addEventListener(name, fn) {},
    removeEventListener: function removeEventListener(name, fn) {},

    history: {
      get entries() {
        return stack;
      },
      get index() {
        return index;
      },
      get state() {
        return states[index];
      },
      pushState: function pushState(state, _, uri) {
        var _uri$split = uri.split("?"),
            pathname = _uri$split[0],
            _uri$split$ = _uri$split[1],
            search = _uri$split$ === undefined ? "" : _uri$split$;

        index++;
        stack.push({ pathname: pathname, search: search.length ? "?" + search : search });
        states.push(state);
      },
      replaceState: function replaceState(state, _, uri) {
        var _uri$split2 = uri.split("?"),
            pathname = _uri$split2[0],
            _uri$split2$ = _uri$split2[1],
            search = _uri$split2$ === undefined ? "" : _uri$split2$;

        stack[index] = { pathname: pathname, search: search };
        states[index] = state;
      },
      go: function go(to) {
        var newIndex = index + to;

        if (newIndex < 0 || newIndex > states.length - 1) {
          return;
        }

        index = newIndex;
      }
    }
  };
};

////////////////////////////////////////////////////////////////////////////////
// global history - uses window.history as the source if available, otherwise a
// memory history
var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
var getSource = function getSource() {
  return canUseDOM ? window : createMemorySource();
};

var globalHistory = createHistory(getSource());
var navigate = globalHistory.navigate;

////////////////////////////////////////////////////////////////////////////////



/***/ }),

/***/ "../node_modules/@reach/router/es/lib/utils.js":
/*!*****************************************************!*\
  !*** ../node_modules/@reach/router/es/lib/utils.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "startsWith": () => (/* binding */ startsWith),
/* harmony export */   "pick": () => (/* binding */ pick),
/* harmony export */   "match": () => (/* binding */ match),
/* harmony export */   "resolve": () => (/* binding */ resolve),
/* harmony export */   "insertParams": () => (/* binding */ insertParams),
/* harmony export */   "validateRedirect": () => (/* binding */ validateRedirect),
/* harmony export */   "shallowCompare": () => (/* binding */ shallowCompare)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);


////////////////////////////////////////////////////////////////////////////////
// startsWith(string, search) - Check if `string` starts with `search`
var startsWith = function startsWith(string, search) {
  return string.substr(0, search.length) === search;
};

////////////////////////////////////////////////////////////////////////////////
// pick(routes, uri)
//
// Ranks and picks the best route to match. Each segment gets the highest
// amount of points, then the type of segment gets an additional amount of
// points where
//
//     static > dynamic > splat > root
//
// This way we don't have to worry about the order of our routes, let the
// computers do it.
//
// A route looks like this
//
//     { path, default, value }
//
// And a returned match looks like:
//
//     { route, params, uri }
//
// I know, I should use TypeScript not comments for these types.
var pick = function pick(routes, uri) {
  var match = void 0;
  var default_ = void 0;

  var _uri$split = uri.split("?"),
      uriPathname = _uri$split[0];

  var uriSegments = segmentize(uriPathname);
  var isRootUri = uriSegments[0] === "";
  var ranked = rankRoutes(routes);

  for (var i = 0, l = ranked.length; i < l; i++) {
    var missed = false;
    var route = ranked[i].route;

    if (route.default) {
      default_ = {
        route: route,
        params: {},
        uri: uri
      };
      continue;
    }

    var routeSegments = segmentize(route.path);
    var params = {};
    var max = Math.max(uriSegments.length, routeSegments.length);
    var index = 0;

    for (; index < max; index++) {
      var routeSegment = routeSegments[index];
      var uriSegment = uriSegments[index];

      if (isSplat(routeSegment)) {
        // Hit a splat, just grab the rest, and return a match
        // uri:   /files/documents/work
        // route: /files/*
        var param = routeSegment.slice(1) || "*";
        params[param] = uriSegments.slice(index).map(decodeURIComponent).join("/");
        break;
      }

      if (uriSegment === undefined) {
        // URI is shorter than the route, no match
        // uri:   /users
        // route: /users/:userId
        missed = true;
        break;
      }

      var dynamicMatch = paramRe.exec(routeSegment);

      if (dynamicMatch && !isRootUri) {
        var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;
        !matchIsNotReserved ?  true ? invariant__WEBPACK_IMPORTED_MODULE_0___default()(false, "<Router> dynamic segment \"" + dynamicMatch[1] + "\" is a reserved name. Please use a different name in path \"" + route.path + "\".") : 0 : void 0;
        var value = decodeURIComponent(uriSegment);
        params[dynamicMatch[1]] = value;
      } else if (routeSegment !== uriSegment) {
        // Current segments don't match, not dynamic, not splat, so no match
        // uri:   /users/123/settings
        // route: /users/:id/profile
        missed = true;
        break;
      }
    }

    if (!missed) {
      match = {
        route: route,
        params: params,
        uri: "/" + uriSegments.slice(0, index).join("/")
      };
      break;
    }
  }

  return match || default_ || null;
};

////////////////////////////////////////////////////////////////////////////////
// match(path, uri) - Matches just one path to a uri, also lol
var match = function match(path, uri) {
  return pick([{ path: path }], uri);
};

////////////////////////////////////////////////////////////////////////////////
// resolve(to, basepath)
//
// Resolves URIs as though every path is a directory, no files.  Relative URIs
// in the browser can feel awkward because not only can you be "in a directory"
// you can be "at a file", too. For example
//
//     browserSpecResolve('foo', '/bar/') => /bar/foo
//     browserSpecResolve('foo', '/bar') => /foo
//
// But on the command line of a file system, it's not as complicated, you can't
// `cd` from a file, only directories.  This way, links have to know less about
// their current path. To go deeper you can do this:
//
//     <Link to="deeper"/>
//     // instead of
//     <Link to=`{${props.uri}/deeper}`/>
//
// Just like `cd`, if you want to go deeper from the command line, you do this:
//
//     cd deeper
//     # not
//     cd $(pwd)/deeper
//
// By treating every path as a directory, linking to relative paths should
// require less contextual information and (fingers crossed) be more intuitive.
var resolve = function resolve(to, base) {
  // /foo/bar, /baz/qux => /foo/bar
  if (startsWith(to, "/")) {
    return to;
  }

  var _to$split = to.split("?"),
      toPathname = _to$split[0],
      toQuery = _to$split[1];

  var _base$split = base.split("?"),
      basePathname = _base$split[0];

  var toSegments = segmentize(toPathname);
  var baseSegments = segmentize(basePathname);

  // ?a=b, /users?b=c => /users?a=b
  if (toSegments[0] === "") {
    return addQuery(basePathname, toQuery);
  }

  // profile, /users/789 => /users/789/profile
  if (!startsWith(toSegments[0], ".")) {
    var pathname = baseSegments.concat(toSegments).join("/");
    return addQuery((basePathname === "/" ? "" : "/") + pathname, toQuery);
  }

  // ./         /users/123  =>  /users/123
  // ../        /users/123  =>  /users
  // ../..      /users/123  =>  /
  // ../../one  /a/b/c/d    =>  /a/b/one
  // .././one   /a/b/c/d    =>  /a/b/c/one
  var allSegments = baseSegments.concat(toSegments);
  var segments = [];
  for (var i = 0, l = allSegments.length; i < l; i++) {
    var segment = allSegments[i];
    if (segment === "..") segments.pop();else if (segment !== ".") segments.push(segment);
  }

  return addQuery("/" + segments.join("/"), toQuery);
};

////////////////////////////////////////////////////////////////////////////////
// insertParams(path, params)

var insertParams = function insertParams(path, params) {
  var _path$split = path.split("?"),
      pathBase = _path$split[0],
      _path$split$ = _path$split[1],
      query = _path$split$ === undefined ? "" : _path$split$;

  var segments = segmentize(pathBase);
  var constructedPath = "/" + segments.map(function (segment) {
    var match = paramRe.exec(segment);
    return match ? params[match[1]] : segment;
  }).join("/");
  var _params$location = params.location;
  _params$location = _params$location === undefined ? {} : _params$location;
  var _params$location$sear = _params$location.search,
      search = _params$location$sear === undefined ? "" : _params$location$sear;

  var searchSplit = search.split("?")[1] || "";
  constructedPath = addQuery(constructedPath, query, searchSplit);
  return constructedPath;
};

var validateRedirect = function validateRedirect(from, to) {
  var filter = function filter(segment) {
    return isDynamic(segment);
  };
  var fromString = segmentize(from).filter(filter).sort().join("/");
  var toString = segmentize(to).filter(filter).sort().join("/");
  return fromString === toString;
};

////////////////////////////////////////////////////////////////////////////////
// Junk
var paramRe = /^:(.+)/;

var SEGMENT_POINTS = 4;
var STATIC_POINTS = 3;
var DYNAMIC_POINTS = 2;
var SPLAT_PENALTY = 1;
var ROOT_POINTS = 1;

var isRootSegment = function isRootSegment(segment) {
  return segment === "";
};
var isDynamic = function isDynamic(segment) {
  return paramRe.test(segment);
};
var isSplat = function isSplat(segment) {
  return segment && segment[0] === "*";
};

var rankRoute = function rankRoute(route, index) {
  var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {
    score += SEGMENT_POINTS;
    if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;
    return score;
  }, 0);
  return { route: route, score: score, index: index };
};

var rankRoutes = function rankRoutes(routes) {
  return routes.map(rankRoute).sort(function (a, b) {
    return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;
  });
};

var segmentize = function segmentize(uri) {
  return uri
  // strip starting/ending slashes
  .replace(/(^\/+|\/+$)/g, "").split("/");
};

var addQuery = function addQuery(pathname) {
  for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
    query[_key - 1] = arguments[_key];
  }

  query = query.filter(function (q) {
    return q && q.length > 0;
  });
  return pathname + (query && query.length > 0 ? "?" + query.join("&") : "");
};

var reservedNames = ["uri", "path"];

/**
 * Shallow compares two objects.
 * @param {Object} obj1 The first object to compare.
 * @param {Object} obj2 The second object to compare.
 */
var shallowCompare = function shallowCompare(obj1, obj2) {
  var obj1Keys = Object.keys(obj1);
  return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {
    return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];
  });
};

////////////////////////////////////////////////////////////////////////////////


/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.js":
/*!***************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.Indicator = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! ./indicator-bullet.scss */ "../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.scss");

var Indicator = function Indicator(props) {
  var className = 'eps-indicator-bullet';

  if (props.active) {
    className += " ".concat(className, "--active");
  }

  return /*#__PURE__*/_react.default.createElement("i", {
    className: className
  });
};

exports.Indicator = Indicator;
Indicator.propTypes = {
  active: PropTypes.bool
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/atoms/preview-iframe.js":
/*!*************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/atoms/preview-iframe.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = PreviewIFrame;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

__webpack_require__(/*! ./preview-iframe.scss */ "../core/app/modules/site-editor/assets/js/atoms/preview-iframe.scss");

function PreviewIFrame(props) {
  var ref = _react.default.useRef(null),
      previewBreakpoint = 1200,
      _React$useState = _react.default.useState(1),
      _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
      scale = _React$useState2[0],
      setScale = _React$useState2[1],
      _React$useState3 = _react.default.useState(0),
      _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
      height = _React$useState4[0],
      setHeight = _React$useState4[1]; // In order to make sure that the iframe itself show the content in specific viewport,
  // and it should fit to the size of the card, there is a use of css props `scale` and `height`,
  // and another element that wraps the iframe to be the guidelines of the iframe sizes.


  _react.default.useEffect(function () {
    var currentScale = ref.current.clientWidth / previewBreakpoint;
    setScale(currentScale);
    setHeight(ref.current.clientHeight / currentScale);
  }, []);

  return /*#__PURE__*/_react.default.createElement("div", {
    ref: ref,
    className: "site-editor__preview-iframe site-editor__preview-iframe--".concat(props.templateType)
  }, /*#__PURE__*/_react.default.createElement("iframe", {
    src: props.src,
    className: "site-editor__preview-iframe__iframe",
    style: {
      transform: "scale(".concat(scale, ")"),
      height: height,
      width: previewBreakpoint
    }
  }));
}

PreviewIFrame.propTypes = {
  src: PropTypes.string.isRequired,
  templateType: PropTypes.string.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/base-context.js":
/*!*************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/base-context.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.BaseContext = void 0;

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var BaseContext = /*#__PURE__*/function (_React$Component) {
  (0, _inherits2.default)(BaseContext, _React$Component);

  var _super = (0, _createSuper2.default)(BaseContext);

  function BaseContext(props) {
    var _this;

    (0, _classCallCheck2.default)(this, BaseContext);
    _this = _super.call(this, props);
    _this.state = {
      action: {
        current: null,
        loading: false,
        error: null,
        errorMeta: {}
      },
      updateActionState: _this.updateActionState.bind((0, _assertThisInitialized2.default)(_this)),
      resetActionState: _this.resetActionState.bind((0, _assertThisInitialized2.default)(_this))
    };
    return _this;
  }

  (0, _createClass2.default)(BaseContext, [{
    key: "executeAction",
    value: function executeAction(name, handler) {
      var _this2 = this;

      this.updateActionState({
        current: name,
        loading: true,
        error: null,
        errorMeta: {}
      });
      return handler().then(function (response) {
        _this2.resetActionState();

        return _promise.default.resolve(response);
      }).catch(function (error) {
        _this2.updateActionState({
          current: name,
          loading: false,
          error: error.message,
          errorMeta: error
        });

        return _promise.default.reject(error);
      });
    }
  }, {
    key: "updateActionState",
    value: function updateActionState(data) {
      return this.setState(function (prev) {
        return {
          action: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev.action), data)
        };
      });
    }
  }, {
    key: "resetActionState",
    value: function resetActionState() {
      this.updateActionState({
        current: null,
        loading: false,
        error: null,
        errorMeta: {}
      });
    }
  }]);
  return BaseContext;
}(React.Component);

exports.BaseContext = BaseContext;
var _default = BaseContext;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/conditions.js":
/*!***********************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/conditions.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsProvider = exports.Context = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.regexp.to-string.js */ "../node_modules/core-js/modules/es6.regexp.to-string.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _objectSpread5 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _condition = _interopRequireDefault(__webpack_require__(/*! ./models/condition */ "../core/app/modules/site-editor/assets/js/context/models/condition.js"));

var _conditionsConfig = _interopRequireDefault(__webpack_require__(/*! ./services/conditions-config */ "../core/app/modules/site-editor/assets/js/context/services/conditions-config.js"));

var _baseContext = _interopRequireDefault(__webpack_require__(/*! ./base-context */ "../core/app/modules/site-editor/assets/js/context/base-context.js"));

var _commands = __webpack_require__(/*! ../data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var Context = _react.default.createContext();

exports.Context = Context;

var ConditionsProvider = /*#__PURE__*/function (_BaseContext) {
  (0, _inherits2.default)(ConditionsProvider, _BaseContext);

  var _super = (0, _createSuper2.default)(ConditionsProvider);

  /**
   * Holds the conditions config object.
   *
   * @type {ConditionsConfig}
   */

  /**
   * ConditionsProvider constructor.
   *
   * @param {any} props
   */
  function ConditionsProvider(props) {
    var _this;

    (0, _classCallCheck2.default)(this, ConditionsProvider);
    _this = _super.call(this, props);
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "conditionsConfig", null);
    _this.state = (0, _objectSpread5.default)((0, _objectSpread5.default)({}, _this.state), {}, {
      conditions: {},
      updateConditionItemState: _this.updateConditionItemState.bind((0, _assertThisInitialized2.default)(_this)),
      removeConditionItemInState: _this.removeConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      createConditionItemInState: _this.createConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      findConditionItemInState: _this.findConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      saveConditions: _this.saveConditions.bind((0, _assertThisInitialized2.default)(_this))
    });
    return _this;
  }
  /**
   * Fetch the conditions config, then normalize the conditions and then setup titles for
   * the subIds.
   */


  (0, _createClass2.default)(ConditionsProvider, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this2 = this;

      this.executeAction(ConditionsProvider.actions.FETCH_CONFIG, function () {
        return _conditionsConfig.default.create();
      }).then(function (conditionsConfig) {
        return _this2.conditionsConfig = conditionsConfig;
      }).then(this.normalizeConditionsState.bind(this)).then(this.setSubIdTitles.bind(this));
    }
    /**
     * Execute a request to save the template conditions.
     *
     * @return {any} -
     */

  }, {
    key: "saveConditions",
    value: function saveConditions() {
      var _this3 = this;

      var conditions = (0, _values.default)(this.state.conditions).map(function (condition) {
        return condition.forDb();
      });
      return this.executeAction(ConditionsProvider.actions.SAVE, function () {
        return $e.data.update(_commands.TemplatesConditions.signature, {
          conditions: conditions
        }, {
          id: _this3.props.currentTemplate.id
        });
      }).then(function () {
        var contextConditions = (0, _values.default)(_this3.state.conditions).map(function (condition) {
          return condition.forContext();
        });

        _this3.props.onConditionsSaved(_this3.props.currentTemplate.id, {
          conditions: contextConditions,
          instances: _this3.conditionsConfig.calculateInstances((0, _values.default)(_this3.state.conditions)),
          isActive: !!((0, _keys.default)(_this3.state.conditions).length && 'publish' === _this3.props.currentTemplate.status)
        });
      });
    }
    /**
     * Check for conflicts in the server and mark the condition if there
     * is a conflict.
     *
     * @param {any} condition
     */

  }, {
    key: "checkConflicts",
    value: function checkConflicts(condition) {
      var _this4 = this;

      return this.executeAction(ConditionsProvider.actions.CHECK_CONFLICTS, function () {
        return $e.data.get(_commands.TemplatesConditionsConflicts.signature, {
          post_id: _this4.props.currentTemplate.id,
          condition: condition.clone().toString()
        });
      }).then(function (response) {
        return _this4.updateConditionItemState(condition.id, {
          conflictErrors: (0, _values.default)(response.data)
        }, false);
      });
    }
    /**
     * Fetching subId titles.
     *
     * @param {any} condition
     * @return {Promise<unknown>} -
     */

  }, {
    key: "fetchSubIdsTitles",
    value: function fetchSubIdsTitles(condition) {
      return new _promise.default(function (resolve) {
        return elementorCommon.ajax.loadObjects({
          action: 'query_control_value_titles',
          ids: _.isArray(condition.subId) ? condition.subId : [condition.subId],
          data: {
            get_titles: condition.subIdAutocomplete,
            unique_id: elementorCommon.helpers.getUniqueId()
          },
          success: function success(response) {
            resolve(response);
          }
        });
      });
    }
    /**
     * Get the conditions from the template and normalize it to data structure
     * that the components can work with.
     */

  }, {
    key: "normalizeConditionsState",
    value: function normalizeConditionsState() {
      var _this5 = this;

      this.updateConditionsState(function () {
        return _this5.props.currentTemplate.conditions.reduce(function (current, condition) {
          var conditionObj = new _condition.default((0, _objectSpread5.default)((0, _objectSpread5.default)({}, condition), {}, {
            default: _this5.props.currentTemplate.defaultCondition,
            options: _this5.conditionsConfig.getOptions(),
            subOptions: _this5.conditionsConfig.getSubOptions(condition.name),
            subIdAutocomplete: _this5.conditionsConfig.getSubIdAutocomplete(condition.sub),
            supIdOptions: condition.subId ? [{
              value: condition.subId,
              label: condition.subId
            }] : []
          }));
          return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, conditionObj.id, conditionObj));
        }, {});
      }).then(function () {
        (0, _values.default)(_this5.state.conditions).forEach(function (condition) {
          return _this5.checkConflicts(condition);
        });
      });
    }
    /**
     * Set titles to the subIds,
     * for the first render of the component.
     */

  }, {
    key: "setSubIdTitles",
    value: function setSubIdTitles() {
      var _this6 = this;

      return (0, _values.default)(this.state.conditions).forEach(function (condition) {
        if (!condition.subId) {
          return;
        }

        return _this6.fetchSubIdsTitles(condition).then(function (response) {
          return _this6.updateConditionItemState(condition.id, {
            subIdOptions: [{
              label: (0, _values.default)(response)[0],
              value: condition.subId
            }]
          }, false);
        });
      });
    }
    /**
     * Update state of specific condition item.
     *
     * @param {any} id
     * @param {any} args
     * @param {boolean} shouldCheckConflicts
     */

  }, {
    key: "updateConditionItemState",
    value: function updateConditionItemState(id, args) {
      var _this7 = this;

      var shouldCheckConflicts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

      if (args.name) {
        args.subOptions = this.conditionsConfig.getSubOptions(args.name);
      }

      if (args.sub || args.name) {
        args.subIdAutocomplete = this.conditionsConfig.getSubIdAutocomplete(args.sub); // In case that the condition has been changed, it will set the options of the subId
        // to empty array to let select2 autocomplete handle the options.

        args.subIdOptions = [];
      }

      this.updateConditionsState(function (prev) {
        var condition = prev[id];
        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, (0, _defineProperty2.default)({}, id, condition.clone().set(args)));
      }).then(function () {
        if (shouldCheckConflicts) {
          _this7.checkConflicts(_this7.findConditionItemInState(id));
        }
      });
    }
    /**
     * Remove a condition item from the state.
     *
     * @param {any} id
     */

  }, {
    key: "removeConditionItemInState",
    value: function removeConditionItemInState(id) {
      this.updateConditionsState(function (prev) {
        var newConditions = (0, _objectSpread5.default)({}, prev);
        delete newConditions[id];
        return newConditions;
      });
    }
    /**
     * Add a new condition item into the state.
     *
     * @param {boolean} shouldCheckConflicts
     */

  }, {
    key: "createConditionItemInState",
    value: function createConditionItemInState() {
      var _this8 = this;

      var shouldCheckConflicts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
      var defaultCondition = this.props.currentTemplate.defaultCondition,
          newCondition = new _condition.default({
        name: defaultCondition,
        default: defaultCondition,
        options: this.conditionsConfig.getOptions(),
        subOptions: this.conditionsConfig.getSubOptions(defaultCondition),
        subIdAutocomplete: this.conditionsConfig.getSubIdAutocomplete('')
      });
      this.updateConditionsState(function (prev) {
        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, (0, _defineProperty2.default)({}, newCondition.id, newCondition));
      }).then(function () {
        if (shouldCheckConflicts) {
          _this8.checkConflicts(newCondition);
        }
      });
    }
    /**
     * Find a condition item from the conditions state.
     *
     * @param {any} id
     * @return {Condition|null} -
     */

  }, {
    key: "findConditionItemInState",
    value: function findConditionItemInState(id) {
      return (0, _values.default)(this.state.conditions).find(function (c) {
        return c.id === id;
      });
    }
    /**
     * Update the whole conditions state.
     *
     * @param {Function} callback
     * @return {Promise<any>} -
     */

  }, {
    key: "updateConditionsState",
    value: function updateConditionsState(callback) {
      var _this9 = this;

      return new _promise.default(function (resolve) {
        return _this9.setState(function (prev) {
          return {
            conditions: callback(prev.conditions)
          };
        }, resolve);
      });
    }
    /**
     * Renders the provider.
     *
     * @return {any} -
     */

  }, {
    key: "render",
    value: function render() {
      if (this.state.action.current === ConditionsProvider.actions.FETCH_CONFIG) {
        if (this.state.error) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Error:', 'elementor-pro'), " ", this.state.error);
        }

        if (this.state.loading) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Loading', 'elementor-pro'), "...");
        }
      }

      return /*#__PURE__*/_react.default.createElement(Context.Provider, {
        value: this.state
      }, this.props.children);
    }
  }]);
  return ConditionsProvider;
}(_baseContext.default);

exports.ConditionsProvider = ConditionsProvider;
(0, _defineProperty2.default)(ConditionsProvider, "propTypes", {
  children: PropTypes.any.isRequired,
  currentTemplate: PropTypes.object.isRequired,
  onConditionsSaved: PropTypes.func.isRequired,
  validateConflicts: PropTypes.bool
});
(0, _defineProperty2.default)(ConditionsProvider, "defaultProps", {
  validateConflicts: true
});
(0, _defineProperty2.default)(ConditionsProvider, "actions", {
  FETCH_CONFIG: 'fetch-config',
  SAVE: 'save',
  CHECK_CONFLICTS: 'check-conflicts'
});
var _default = ConditionsProvider;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/models/condition.js":
/*!*****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/models/condition.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js"));

var _isArray = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var Condition = /*#__PURE__*/function () {
  function Condition(args) {
    (0, _classCallCheck2.default)(this, Condition);
    (0, _defineProperty2.default)(this, "id", elementorCommon.helpers.getUniqueId());
    (0, _defineProperty2.default)(this, "default", '');
    (0, _defineProperty2.default)(this, "type", 'include');
    (0, _defineProperty2.default)(this, "name", '');
    (0, _defineProperty2.default)(this, "sub", '');
    (0, _defineProperty2.default)(this, "subId", '');
    (0, _defineProperty2.default)(this, "options", []);
    (0, _defineProperty2.default)(this, "subOptions", []);
    (0, _defineProperty2.default)(this, "subIdAutocomplete", []);
    (0, _defineProperty2.default)(this, "subIdOptions", []);
    (0, _defineProperty2.default)(this, "conflictErrors", []);
    this.set(args);
  }

  (0, _createClass2.default)(Condition, [{
    key: "set",
    value: function set(args) {
      (0, _assign.default)(this, args);
      return this;
    }
  }, {
    key: "clone",
    value: function clone() {
      return (0, _assign.default)(new Condition(), this);
    }
  }, {
    key: "remove",
    value: function remove(keys) {
      var _this = this;

      if (!(0, _isArray.default)(keys)) {
        keys = [keys];
      }

      keys.forEach(function (key) {
        delete _this[key];
      });
      return this;
    }
  }, {
    key: "only",
    value: function only(keys) {
      if (!(0, _isArray.default)(keys)) {
        keys = [keys];
      }

      var keysToRemove = (0, _keys.default)(this).filter(function (conditionKey) {
        return !keys.includes(conditionKey);
      });
      this.remove(keysToRemove);
      return this;
    }
  }, {
    key: "toJson",
    value: function toJson() {
      return (0, _stringify.default)(this);
    }
  }, {
    key: "toString",
    value: function toString() {
      return this.forDb().filter(function (item) {
        return item;
      }).join('/');
    }
  }, {
    key: "forDb",
    value: function forDb() {
      return [this.type, this.name, this.sub, this.subId];
    }
  }, {
    key: "forContext",
    value: function forContext() {
      return {
        type: this.type,
        name: this.name,
        sub: this.sub,
        subId: this.subId
      };
    }
  }]);
  return Condition;
}();

exports.default = Condition;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/services/conditions-config.js":
/*!***************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/services/conditions-config.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsConfig = void 0;

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _commands = __webpack_require__(/*! ../../data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var ConditionsConfig = /*#__PURE__*/function () {
  function ConditionsConfig(config) {
    (0, _classCallCheck2.default)(this, ConditionsConfig);
    (0, _defineProperty2.default)(this, "config", null);
    this.config = config;
  }
  /**
   * @return {Promise<ConditionsConfig>} -
   */


  (0, _createClass2.default)(ConditionsConfig, [{
    key: "getOptions",
    value:
    /**
     * Get main options for condition name.
     *
     * @return {Array} -
     */
    function getOptions() {
      return this.getSubOptions('general', true).map(function (_ref) {
        var label = _ref.label,
            value = _ref.value;
        return {
          label: label,
          value: value
        };
      });
    }
    /**
     * Get the sub options for the select.
     *
     * @param {string} itemName
     * @param {boolean} isSubItem
     * @return {Array} -
     */

  }, {
    key: "getSubOptions",
    value: function getSubOptions(itemName) {
      var _this = this;

      var isSubItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var config = this.config[itemName];

      if (!config) {
        return [];
      }

      return [{
        label: config.all_label,
        value: isSubItem ? itemName : ''
      }].concat((0, _toConsumableArray2.default)(config.sub_conditions.map(function (subName) {
        var subConfig = _this.config[subName];
        return {
          label: subConfig.label,
          value: subName,
          children: subConfig.sub_conditions.length ? _this.getSubOptions(subName, true) : null
        };
      })));
    }
    /**
     * Get the autocomplete property from the conditions config
     *
     * @param {string} sub
     * @return {{}|any} -
     */

  }, {
    key: "getSubIdAutocomplete",
    value: function getSubIdAutocomplete(sub) {
      var _controls$;

      var config = this.config[sub];

      if (!config || !('object' === (0, _typeof2.default)(config.controls))) {
        return {};
      }

      var controls = (0, _values.default)(config.controls);

      if (!(controls !== null && controls !== void 0 && (_controls$ = controls[0]) !== null && _controls$ !== void 0 && _controls$.autocomplete)) {
        return {};
      }

      return controls[0].autocomplete;
    }
    /**
     * Calculate instances from the conditions.
     *
     * @param {Array} conditions
     * @return {Object} -
     */

  }, {
    key: "calculateInstances",
    value: function calculateInstances(conditions) {
      var _this2 = this;

      var instances = conditions.reduce(function (current, condition) {
        if ('exclude' === condition.type) {
          return current;
        }

        var key = condition.sub || condition.name,
            config = _this2.config[key];

        if (!config) {
          return current;
        }

        var instanceLabel = condition.subId ? "".concat(config.label, " #").concat(condition.subId) : config.all_label;
        return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, key, instanceLabel));
      }, {});

      if (0 === (0, _keys.default)(instances).length) {
        instances = [__('No instances', 'elementor-pro')];
      }

      return instances;
    }
  }], [{
    key: "create",
    value: function create() {
      if (ConditionsConfig.instance) {
        return _promise.default.resolve(ConditionsConfig.instance);
      }

      return $e.data.get(_commands.ConditionsConfig.signature).then(function (response) {
        ConditionsConfig.instance = new ConditionsConfig(response.data);
        return ConditionsConfig.instance;
      });
    }
  }]);
  return ConditionsConfig;
}();

exports.ConditionsConfig = ConditionsConfig;
(0, _defineProperty2.default)(ConditionsConfig, "instance", void 0);
var _default = ConditionsConfig;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/templates.js":
/*!**********************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/templates.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesProvider = exports.Context = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _objectSpread5 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _baseContext = _interopRequireDefault(__webpack_require__(/*! ./base-context */ "../core/app/modules/site-editor/assets/js/context/base-context.js"));

var _commands = __webpack_require__(/*! ../data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var _component = _interopRequireDefault(__webpack_require__(/*! ../data/component */ "../core/app/modules/site-editor/assets/js/data/component.js"));

var Context = _react.default.createContext();

exports.Context = Context;

var TemplatesProvider = /*#__PURE__*/function (_BaseContext) {
  (0, _inherits2.default)(TemplatesProvider, _BaseContext);

  var _super = (0, _createSuper2.default)(TemplatesProvider);

  function TemplatesProvider(props) {
    var _this;

    (0, _classCallCheck2.default)(this, TemplatesProvider);
    _this = _super.call(this, props);
    _this.state = (0, _objectSpread5.default)((0, _objectSpread5.default)({}, _this.state), {}, {
      action: (0, _objectSpread5.default)((0, _objectSpread5.default)({}, _this.state.action), {}, {
        current: TemplatesProvider.actions.FETCH,
        loading: true
      }),
      templates: {},
      updateTemplateItemState: _this.updateTemplateItemState.bind((0, _assertThisInitialized2.default)(_this)),
      findTemplateItemInState: _this.findTemplateItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      fetchTemplates: _this.fetchTemplates.bind((0, _assertThisInitialized2.default)(_this)),
      deleteTemplate: _this.deleteTemplate.bind((0, _assertThisInitialized2.default)(_this)),
      updateTemplate: _this.updateTemplate.bind((0, _assertThisInitialized2.default)(_this)),
      importTemplates: _this.importTemplates.bind((0, _assertThisInitialized2.default)(_this))
    });
    return _this;
  }

  (0, _createClass2.default)(TemplatesProvider, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this.fetchTemplates();
    }
  }, {
    key: "importTemplates",
    value: function importTemplates(_ref) {
      var _this2 = this;

      var fileName = _ref.fileName,
          fileData = _ref.fileData;
      return this.executeAction(TemplatesProvider.actions.IMPORT, function () {
        return $e.data.create(_commands.Templates.signature, {
          fileName: fileName,
          fileData: fileData
        });
      }).then(function (response) {
        _this2.updateTemplatesState(function (prev) {
          return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), (0, _values.default)(response.data).reduce(function (current, template) {
            if (!template.supportsSiteEditor) {
              return current;
            }

            return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, template.id, template));
          }, {}));
        });

        return response;
      });
    }
  }, {
    key: "deleteTemplate",
    value: function deleteTemplate(id) {
      var _this3 = this;

      return this.executeAction(TemplatesProvider.actions.DELETE, function () {
        return $e.data.delete(_commands.Templates.signature, {
          id: id
        });
      }).then(function () {
        _this3.updateTemplatesState(function (prev) {
          var newTemplates = (0, _objectSpread5.default)({}, prev);
          delete newTemplates[id];
          return newTemplates;
        });
      });
    }
  }, {
    key: "updateTemplate",
    value: function updateTemplate(id, args) {
      var _this4 = this;

      return this.executeAction(TemplatesProvider.actions.UPDATE, function () {
        return $e.data.update(_commands.Templates.signature, args, {
          id: id
        });
      }).then(function (response) {
        _this4.updateTemplateItemState(id, response.data);
      });
    }
  }, {
    key: "fetchTemplates",
    value: function fetchTemplates() {
      var _this5 = this;

      return this.executeAction(TemplatesProvider.actions.FETCH, function () {
        return $e.data.get(_commands.Templates.signature);
      }).then(function (response) {
        _this5.updateTemplatesState(function () {
          return (0, _values.default)(response.data).reduce(function (current, template) {
            return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, template.id, template));
          }, {});
        }, false);
      });
    }
  }, {
    key: "updateTemplateItemState",
    value: function updateTemplateItemState(id, args) {
      return this.updateTemplatesState(function (prev) {
        var template = (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev[id]), args);
        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, (0, _defineProperty2.default)({}, id, template));
      });
    }
  }, {
    key: "updateTemplatesState",
    value: function updateTemplatesState(callback) {
      var clearCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;

      if (clearCache) {
        $e.data.deleteCache($e.components.get(_component.default.namespace), _commands.Templates.signature);
      }

      return this.setState(function (prev) {
        return {
          templates: callback(prev.templates)
        };
      });
    }
  }, {
    key: "findTemplateItemInState",
    value: function findTemplateItemInState(id) {
      return this.state.templates[id];
    }
  }, {
    key: "render",
    value: function render() {
      if (this.state.action.current === TemplatesProvider.actions.FETCH) {
        if (this.state.action.error) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Error:', 'elementor-pro'), " ", this.state.action.error);
        }

        if (this.state.action.loading) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Loading', 'elementor-pro'), "...");
        }
      }

      return /*#__PURE__*/_react.default.createElement(Context.Provider, {
        value: this.state
      }, this.props.children);
    }
  }]);
  return TemplatesProvider;
}(_baseContext.default);

exports.TemplatesProvider = TemplatesProvider;
(0, _defineProperty2.default)(TemplatesProvider, "propTypes", {
  children: PropTypes.object.isRequired
});
(0, _defineProperty2.default)(TemplatesProvider, "actions", {
  FETCH: 'fetch',
  DELETE: 'delete',
  UPDATE: 'update',
  IMPORT: 'import'
});
var _default = TemplatesProvider;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsConfig = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var ConditionsConfig = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(ConditionsConfig, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(ConditionsConfig);

  function ConditionsConfig() {
    (0, _classCallCheck2.default)(this, ConditionsConfig);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ConditionsConfig, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/conditions-config/{id}';
    }
  }]);
  return ConditionsConfig;
}($e.modules.CommandData);

exports.ConditionsConfig = ConditionsConfig;
(0, _defineProperty2.default)(ConditionsConfig, "signature", 'site-editor/conditions-config');
var _default = ConditionsConfig;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/index.js":
/*!************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Templates", {
  enumerable: true,
  get: function get() {
    return _templates.Templates;
  }
});

_Object$defineProperty(exports, "ConditionsConfig", {
  enumerable: true,
  get: function get() {
    return _conditionsConfig.ConditionsConfig;
  }
});

_Object$defineProperty(exports, "TemplatesConditions", {
  enumerable: true,
  get: function get() {
    return _templatesConditions.TemplatesConditions;
  }
});

_Object$defineProperty(exports, "TemplatesConditionsConflicts", {
  enumerable: true,
  get: function get() {
    return _templatesConditionsConflicts.TemplatesConditionsConflicts;
  }
});

var _templates = __webpack_require__(/*! ./templates */ "../core/app/modules/site-editor/assets/js/data/commands/templates.js");

var _conditionsConfig = __webpack_require__(/*! ./conditions-config */ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js");

var _templatesConditions = __webpack_require__(/*! ./templates-conditions */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js");

var _templatesConditionsConflicts = __webpack_require__(/*! ./templates-conditions-conflicts */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js");

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js":
/*!*************************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditionsConflicts = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditionsConflicts = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditionsConflicts, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditionsConflicts);

  function TemplatesConditionsConflicts() {
    (0, _classCallCheck2.default)(this, TemplatesConditionsConflicts);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditionsConflicts, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return "".concat(TemplatesConditionsConflicts.signature, "/{id}");
    }
  }]);
  return TemplatesConditionsConflicts;
}($e.modules.CommandData);

exports.TemplatesConditionsConflicts = TemplatesConditionsConflicts;
(0, _defineProperty2.default)(TemplatesConditionsConflicts, "signature", 'site-editor/templates-conditions-conflicts');
var _default = TemplatesConditionsConflicts;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js":
/*!***************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditions = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditions, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditions);

  function TemplatesConditions() {
    (0, _classCallCheck2.default)(this, TemplatesConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditions, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates-conditions/{id}';
    }
  }]);
  return TemplatesConditions;
}($e.modules.CommandData);

exports.TemplatesConditions = TemplatesConditions;
(0, _defineProperty2.default)(TemplatesConditions, "signature", 'site-editor/templates-conditions');
var _default = TemplatesConditions;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates.js":
/*!****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Templates = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var Templates = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Templates, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Templates);

  function Templates() {
    (0, _classCallCheck2.default)(this, Templates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Templates, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates/{id}';
    }
  }]);
  return Templates;
}($e.modules.CommandData);

exports.Templates = Templates;
(0, _defineProperty2.default)(Templates, "signature", 'site-editor/templates');
var _default = Templates;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/component.js":
/*!*******************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/component.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return this.constructor.namespace;
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;
(0, _defineProperty2.default)(Component, "namespace", 'site-editor');

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/hooks/use-templates-screenshot.js":
/*!***********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/hooks/use-templates-screenshot.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useTemplatesScreenshot;

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

var _useScreenshot = _interopRequireWildcard(__webpack_require__(/*! modules/screenshots/app/assets/js/hooks/use-screenshot */ "../modules/screenshots/app/assets/js/hooks/use-screenshot.js"));

/**
 * Wrapper function that was made to take screenshots specific for template.
 * it will capture a screenshot and update the templates context with the new screenshot.
 *
 * @param {any} templateType
 */
function useTemplatesScreenshot() {
  var templateType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;

  var _React$useContext = React.useContext(_templates.Context),
      updateTemplateItemState = _React$useContext.updateTemplateItemState,
      templates = _React$useContext.templates;

  var templatesForScreenshot = (0, _values.default)(templates).filter(function (template) {
    return shouldScreenshotTemplate(template, templateType);
  }); // Start to capture screenshots.

  var screenshot = (0, _useScreenshot.default)(templatesForScreenshot); // Update the thumbnail url when screenshot created.

  React.useEffect(function () {
    screenshot.posts.filter(function (post) {
      return post.status === _useScreenshot.SCREENSHOT_STATUS_SUCCEED;
    }).forEach(function (post) {
      return updateTemplateItemState(post.id, {
        thumbnail: post.imageUrl
      });
    });
  }, [screenshot.succeed]); // Update the screenshot url that was failed.
  // When the user will hit the route on the second time it will avoid trying to take another screenshot.

  React.useEffect(function () {
    screenshot.posts.filter(function (post) {
      return post.status === _useScreenshot.SCREENSHOT_STATUS_FAILED;
    }).forEach(function (post) {
      return updateTemplateItemState(post.id, {
        screenshot_url: null
      });
    });
  }, [screenshot.failed]);
  return screenshot;
}
/**
 * Filter handler.
 * will remove all the drafts and private and also will filter by template type if exists.
 *
 * @param {any} template
 * @param {any} templateType
 * @return {boolean} -
 */


function shouldScreenshotTemplate(template) {
  var templateType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;

  if (templateType) {
    return false;
  }

  return 'publish' === template.status && !template.thumbnail && template.screenshot_url;
}

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/back-button.js":
/*!**************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/back-button.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = BackButton;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

__webpack_require__(/*! ./back-button.scss */ "../core/app/modules/site-editor/assets/js/molecules/back-button.scss");

function BackButton(props) {
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "back-button-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    className: "eps-back-button",
    text: __('Back', 'elementor-pro'),
    icon: "eicon-chevron-left",
    onClick: props.onClick
  }));
}

BackButton.propTypes = {
  onClick: PropTypes.func
};
BackButton.defaultProps = {
  onClick: function onClick() {
    return history.back();
  }
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template-body.js":
/*!*********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template-body.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.SiteTemplateBody = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _siteTemplateThumbnail = _interopRequireDefault(__webpack_require__(/*! ./site-template-thumbnail */ "../core/app/modules/site-editor/assets/js/molecules/site-template-thumbnail.js"));

var _previewIframe = _interopRequireDefault(__webpack_require__(/*! ../atoms/preview-iframe */ "../core/app/modules/site-editor/assets/js/atoms/preview-iframe.js"));

var SiteTemplateBody = function SiteTemplateBody(props) {
  return /*#__PURE__*/_react.default.createElement(_appUi.CardBody, null, props.extended ? /*#__PURE__*/_react.default.createElement(_previewIframe.default, {
    src: props.previewUrl,
    templateType: props.type
  }) : /*#__PURE__*/_react.default.createElement(_siteTemplateThumbnail.default, {
    id: props.id,
    title: props.title,
    type: props.type,
    thumbnail: props.thumbnail,
    placeholder: props.placeholderUrl
  }));
};

exports.SiteTemplateBody = SiteTemplateBody;
SiteTemplateBody.propTypes = {
  extended: PropTypes.bool,
  id: PropTypes.number,
  title: PropTypes.string,
  thumbnail: PropTypes.string,
  placeholderUrl: PropTypes.string,
  type: PropTypes.string,
  previewUrl: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template-footer.js":
/*!***********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template-footer.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.SiteTemplateFooter = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var SiteTemplateFooter = function SiteTemplateFooter(props) {
  var instances = (0, _values.default)(props.instances).join(', ');
  return /*#__PURE__*/_react.default.createElement(_appUi.CardFooter, null, /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-template__instances"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Icon, {
    className: "eicon-flow"
  }), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    tag: "span",
    variant: "sm"
  }, /*#__PURE__*/_react.default.createElement("b", null, __('Instances', 'elementor-pro'), ":")), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    className: "e-site-template__instances-list",
    tag: "span",
    variant: "xxs"
  }, " ", instances), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    text: __('Edit Conditions', 'elementor-pro'),
    className: "e-site-template__edit-conditions",
    url: "/site-editor/conditions/".concat(props.id)
  })));
};

exports.SiteTemplateFooter = SiteTemplateFooter;
SiteTemplateFooter.propTypes = {
  id: PropTypes.number.isRequired,
  instances: PropTypes.any
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template-header.js":
/*!***********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template-header.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.SiteTemplateHeader = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _dialogsAndButtons = _interopRequireDefault(__webpack_require__(/*! ../part-actions/dialogs-and-buttons */ "../core/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.js"));

var _indicatorBullet = __webpack_require__(/*! ../atoms/indicator-bullet */ "../core/app/modules/site-editor/assets/js/atoms/indicator-bullet.js");

var SiteTemplateHeader = function SiteTemplateHeader(props) {
  var status = props.status && 'publish' !== props.status ? " (".concat(props.status, ")") : '',
      title = props.title + status,
      ActionButtons = function ActionButtons() {
    return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      text: __('Edit', 'elementor-pro'),
      icon: "eicon-edit",
      className: "e-site-template__edit-btn",
      size: "sm",
      url: props.editURL
    }), /*#__PURE__*/_react.default.createElement(_dialogsAndButtons.default, props));
  },
      MetaDataIcon = function MetaDataIcon(innerProps) {
    return /*#__PURE__*/_react.default.createElement(_appUi.Text, {
      tag: "span",
      className: "e-site-template__meta-data"
    }, /*#__PURE__*/_react.default.createElement(_appUi.Icon, {
      className: innerProps.icon
    }), innerProps.content);
  },
      MetaData = function MetaData() {
    return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(MetaDataIcon, {
      icon: "eicon-user-circle-o",
      content: props.author
    }), /*#__PURE__*/_react.default.createElement(MetaDataIcon, {
      icon: "eicon-clock-o",
      content: props.modifiedDate
    }));
  };

  return /*#__PURE__*/_react.default.createElement(_appUi.CardHeader, null, /*#__PURE__*/_react.default.createElement(_indicatorBullet.Indicator, {
    active: props.isActive
  }), /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
    tag: "h1",
    title: title,
    variant: "text-sm",
    className: "eps-card__headline"
  }, title), props.extended && /*#__PURE__*/_react.default.createElement(MetaData, null), props.extended && /*#__PURE__*/_react.default.createElement(ActionButtons, null));
};

exports.SiteTemplateHeader = SiteTemplateHeader;
SiteTemplateHeader.propTypes = {
  isActive: PropTypes.bool,
  author: PropTypes.string,
  editURL: PropTypes.string,
  extended: PropTypes.bool,
  modifiedDate: PropTypes.string,
  status: PropTypes.string,
  title: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template-thumbnail.js":
/*!**************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template-thumbnail.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SiteTemplateThumbnail;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function SiteTemplateThumbnail(props) {
  return /*#__PURE__*/_react.default.createElement(_appUi.CardImage, {
    alt: props.title,
    src: props.thumbnail || props.placeholder,
    className: !props.thumbnail ? 'e-site-template__placeholder' : ''
  }, /*#__PURE__*/_react.default.createElement(_appUi.CardOverlay, {
    className: "e-site-template__overlay-preview"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    className: "e-site-template__overlay-preview-button",
    text: __('Preview', 'elementor-pro'),
    icon: "eicon-preview-medium",
    url: "/site-editor/templates/".concat(props.type, "/").concat(props.id)
  })));
}

SiteTemplateThumbnail.propTypes = {
  id: PropTypes.number,
  title: PropTypes.string,
  type: PropTypes.string,
  thumbnail: PropTypes.string,
  placeholder: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/molecules/site-template.js":
/*!****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/molecules/site-template.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SiteTemplate;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _siteTemplateHeader = __webpack_require__(/*! ./site-template-header */ "../core/app/modules/site-editor/assets/js/molecules/site-template-header.js");

var _siteTemplateBody = __webpack_require__(/*! ./site-template-body */ "../core/app/modules/site-editor/assets/js/molecules/site-template-body.js");

var _siteTemplateFooter = __webpack_require__(/*! ./site-template-footer */ "../core/app/modules/site-editor/assets/js/molecules/site-template-footer.js");

__webpack_require__(/*! ./site-template.scss */ "../core/app/modules/site-editor/assets/js/molecules/site-template.scss");

function SiteTemplate(props) {
  var baseClassName = 'e-site-template',
      classes = [baseClassName],
      ref = _react.default.useRef(null);

  _react.default.useEffect(function () {
    if (!props.isSelected) {
      return;
    }

    ref.current.scrollIntoView({
      behavior: 'smooth',
      block: 'start'
    });
  }, [props.isSelected]);

  if (props.extended) {
    classes.push("".concat(baseClassName, "--extended"));
  }

  if (props.aspectRatio) {
    classes.push("".concat(baseClassName, "--").concat(props.aspectRatio));
  }

  var CardFooter = props.extended ? /*#__PURE__*/_react.default.createElement(_siteTemplateFooter.SiteTemplateFooter, props) : '';
  return /*#__PURE__*/_react.default.createElement(_appUi.Card, {
    className: classes.join(' '),
    ref: ref
  }, /*#__PURE__*/_react.default.createElement(_siteTemplateHeader.SiteTemplateHeader, props), /*#__PURE__*/_react.default.createElement(_siteTemplateBody.SiteTemplateBody, props), CardFooter);
}

SiteTemplate.propTypes = {
  aspectRatio: PropTypes.string,
  className: PropTypes.string,
  extended: PropTypes.bool,
  id: PropTypes.number.isRequired,
  isActive: PropTypes.bool.isRequired,
  status: PropTypes.string,
  thumbnail: PropTypes.string.isRequired,
  title: PropTypes.string.isRequired,
  isSelected: PropTypes.bool,
  type: PropTypes.string.isRequired
};
SiteTemplate.defaultProps = {
  isSelected: false
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/organisms/site-templates.js":
/*!*****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/organisms/site-templates.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = SiteTemplates;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _parseInt2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/parse-int */ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _siteTemplate = _interopRequireDefault(__webpack_require__(/*! ../molecules/site-template */ "../core/app/modules/site-editor/assets/js/molecules/site-template.js"));

var _dialogsAndButtons = __webpack_require__(/*! ../part-actions/dialogs-and-buttons */ "../core/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.js");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

var _useTemplatesScreenshot = _interopRequireDefault(__webpack_require__(/*! ../hooks/use-templates-screenshot */ "../core/app/modules/site-editor/assets/js/hooks/use-templates-screenshot.js"));

function SiteTemplates(props) {
  var _React$useContext = _react.default.useContext(_templates.Context),
      contextTemplates = _React$useContext.templates,
      action = _React$useContext.action,
      resetActionState = _React$useContext.resetActionState;

  var gridColumns, templates; // Make the templates object a memorize value, will re run again only if
  // templates has been changed, also sort the templates by `isActive`.

  templates = _react.default.useMemo(function () {
    return (0, _values.default)(contextTemplates).sort(function (a, b) {
      // This sort make sure to show first the active templates, second the
      // inactive templates that are not draft, and then the drafts,
      // in each category it sorts it inside by date.
      if (!b.isActive && !a.isActive) {
        if ('draft' === b.status && 'draft' === a.status || 'draft' !== b.status && 'draft' !== a.status) {
          return b.date < a.date ? 1 : -1;
        }

        return 'draft' === a.status ? 1 : -1;
      }

      if (b.isActive && a.isActive) {
        return b.date < a.date ? 1 : -1;
      }

      return b.isActive ? 1 : -1;
    });
  }, [contextTemplates]); // Start to capture screenshots.

  (0, _useTemplatesScreenshot.default)(props.type);
  var siteTemplateConfig = {};

  if (props.type) {
    templates = templates.filter(function (item) {
      return item.type === props.type;
    });
    siteTemplateConfig.extended = true;
    siteTemplateConfig.type = props.type;

    switch (props.type) {
      case 'header':
      case 'footer':
        gridColumns = 1;
        siteTemplateConfig.aspectRatio = 'wide';
        break;

      default:
        gridColumns = 2;
    }
  }

  if (!templates || !templates.length) {
    return /*#__PURE__*/_react.default.createElement("h3", null, __('No Templates found. Want to create one?', 'elementor-pro'), "...");
  }

  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor__site-templates"
  }, /*#__PURE__*/_react.default.createElement(_dialogsAndButtons.PartActionsDialogs, null), action.error && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    text: action.error,
    dismissButtonText: __('Go Back', 'elementor-pro'),
    dismissButtonOnClick: resetActionState,
    approveButtonText: __('Learn More', 'elementor-pro'),
    approveButtonColor: "link",
    approveButtonUrl: "https://go.elementor.com/app-theme-builder-template-load-issue",
    approveButtonTarget: "_target"
  }), /*#__PURE__*/_react.default.createElement(_appUi.CssGrid, {
    columns: gridColumns,
    spacing: 24,
    colMinWidth: 200
  }, templates.map(function (item) {
    return /*#__PURE__*/_react.default.createElement(_siteTemplate.default, (0, _extends2.default)({
      key: item.id
    }, item, siteTemplateConfig, {
      isSelected: (0, _parseInt2.default)(props.id) === item.id
    }));
  })));
}

SiteTemplates.propTypes = {
  type: PropTypes.string,
  id: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/add-new.js":
/*!******************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/add-new.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = AddNew;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _siteEditor = __webpack_require__(/*! @elementor/site-editor */ "@elementor/site-editor");

__webpack_require__(/*! ./add-new.scss */ "../core/app/modules/site-editor/assets/js/pages/add-new.scss");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

var _backButton = _interopRequireDefault(__webpack_require__(/*! ../molecules/back-button */ "../core/app/modules/site-editor/assets/js/molecules/back-button.js"));

function AddNew() {
  var _React$useContext = _react.default.useContext(_templates.Context),
      templates = _React$useContext.templates,
      hasTemplates = 1 <= (0, _keys.default)(templates).length;
  /**
   * An hover element for each site part.
   *
   * @param {any} props
   */


  var HoverElement = function HoverElement(props) {
    return /*#__PURE__*/_react.default.createElement("a", {
      href: props.urls.create,
      className: "eps-card__image-overlay eps-add-new__overlay"
    }, /*#__PURE__*/_react.default.createElement(_appUi.AddNewButton, {
      hideText: true
    }));
  };

  HoverElement.propTypes = {
    urls: PropTypes.object.isRequired
  };
  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor__add-new"
  }, /*#__PURE__*/_react.default.createElement("header", {
    className: "e-site-editor__header"
  }, hasTemplates && /*#__PURE__*/_react.default.createElement(_backButton.default, null), /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
    variant: "h1"
  }, __('Start customizing every part of your site', 'elementor-pro'))), /*#__PURE__*/_react.default.createElement(_siteEditor.SiteParts, {
    hoverElement: HoverElement
  }));
}

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js":
/*!*****************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionConflicts;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionConflicts(props) {
  if (!props.conflicts.length) {
    return '';
  }

  var conflictLinks = props.conflicts.map(function (conflict) {
    return /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      key: conflict.template_id,
      target: "_blank",
      url: conflict.edit_url,
      text: conflict.template_title
    });
  });
  return /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    className: "e-site-editor-conditions__conflict",
    variant: "sm"
  }, __('Elementor recognized that you have set this location for other templates: ', 'elementor-pro'), " ", conflictLinks);
}

ConditionConflicts.propTypes = {
  conflicts: PropTypes.array.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionName;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionName(props) {
  // Hide for template types that has another default, like single & archive.
  if ('general' !== props.default) {
    return '';
  }

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      name: e.target.value,
      sub: '',
      subId: ''
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: props.options,
    value: props.name,
    onChange: onChange
  }));
}

ConditionName.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  options: PropTypes.array.isRequired,
  default: PropTypes.string.isRequired
};
ConditionName.defaultProps = {
  name: ''
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js":
/*!**************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionSubId;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

/**
 * Main component.
 *
 * @param {any} props
 * @return {any} -
 * @class
 */
function ConditionSubId(props) {
  if (!props.sub || !(0, _keys.default)(props.subIdAutocomplete).length) {
    return '';
  }

  var settings = _react.default.useMemo(function () {
    return getSettings(props.subIdAutocomplete);
  }, [props.subIdAutocomplete]);

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      subId: e.target.value
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select2, {
    onChange: onChange,
    value: props.subId,
    settings: settings,
    options: props.subIdOptions
  }));
}
/**
 * Get settings for the select2 base on the autocomplete settings,
 * that passes as a prop
 *
 * @param {any} autocomplete
 * @return {Object} -
 */


function getSettings(autocomplete) {
  return {
    allowClear: false,
    placeholder: __('All', 'elementor-pro'),
    dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr',
    ajax: {
      transport: function transport(params, success, failure) {
        return elementorCommon.ajax.addRequest('pro_panel_posts_control_filter_autocomplete', {
          data: {
            q: params.data.q,
            autocomplete: autocomplete
          },
          success: success,
          error: failure
        });
      },
      data: function data(params) {
        return {
          q: params.term,
          page: params.page
        };
      },
      cache: true
    },
    escapeMarkup: function escapeMarkup(markup) {
      return markup;
    },
    minimumInputLength: 1
  };
}

ConditionSubId.propTypes = {
  subIdAutocomplete: PropTypes.object,
  id: PropTypes.string.isRequired,
  sub: PropTypes.string,
  subId: PropTypes.string,
  updateConditions: PropTypes.func,
  subIdOptions: PropTypes.array
};
ConditionSubId.defaultProps = {
  subId: '',
  subIdOptions: []
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js":
/*!***********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionSub;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionSub(props) {
  if ('general' === props.name || !props.subOptions.length) {
    return '';
  }

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      sub: e.target.value,
      subId: ''
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: props.subOptions,
    value: props.sub,
    onChange: onChange
  }));
}

ConditionSub.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  sub: PropTypes.string.isRequired,
  subOptions: PropTypes.array.isRequired
};
ConditionSub.defaultProps = {
  sub: '',
  subOptions: {}
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionType;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionType(props) {
  var wrapperRef = _react.default.createRef();

  var options = [{
    label: __('Include', 'elementor-pro'),
    value: 'include'
  }, {
    label: __('Exclude', 'elementor-pro'),
    value: 'exclude'
  }];

  var onChange = function onChange(e) {
    props.updateConditions(props.id, {
      type: e.target.value
    });
  };

  _react.default.useEffect(function () {
    wrapperRef.current.setAttribute('data-elementor-condition-type', props.type);
  });

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper e-site-editor-conditions__input-wrapper--condition-type",
    ref: wrapperRef
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: options,
    value: props.type,
    onChange: onChange
  }));
}

ConditionType.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  type: PropTypes.string.isRequired
};
ConditionType.defaultProps = {
  type: ''
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js":
/*!*************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionsRows;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _conditions = __webpack_require__(/*! ../../context/conditions */ "../core/app/modules/site-editor/assets/js/context/conditions.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _conditionType = _interopRequireDefault(__webpack_require__(/*! ./condition-type */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js"));

var _conditionName = _interopRequireDefault(__webpack_require__(/*! ./condition-name */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js"));

var _conditionSub = _interopRequireDefault(__webpack_require__(/*! ./condition-sub */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js"));

var _conditionSubId = _interopRequireDefault(__webpack_require__(/*! ./condition-sub-id */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js"));

var _conditionConflicts = _interopRequireDefault(__webpack_require__(/*! ./condition-conflicts */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js"));

function ConditionsRows(props) {
  var _React$useContext = _react.default.useContext(_conditions.Context),
      conditions = _React$useContext.conditions,
      create = _React$useContext.createConditionItemInState,
      update = _React$useContext.updateConditionItemState,
      remove = _React$useContext.removeConditionItemInState,
      save = _React$useContext.saveConditions,
      action = _React$useContext.action,
      resetActionState = _React$useContext.resetActionState;

  var rows = (0, _values.default)(conditions).map(function (condition) {
    return /*#__PURE__*/_react.default.createElement("div", {
      key: condition.id
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row-controls ".concat(condition.conflictErrors.length && 'e-site-editor-conditions__row-controls--error')
    }, /*#__PURE__*/_react.default.createElement(_conditionType.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row-controls-inner"
    }, /*#__PURE__*/_react.default.createElement(_conditionName.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement(_conditionSub.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement(_conditionSubId.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })))), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      className: "e-site-editor-conditions__remove-condition",
      text: __('Delete', 'elementor-pro'),
      icon: "eicon-close",
      hideText: true,
      onClick: function onClick() {
        return remove(condition.id);
      }
    })), /*#__PURE__*/_react.default.createElement(_conditionConflicts.default, {
      conflicts: condition.conflictErrors
    }));
  });
  var isSaving = action.current === _conditions.ConditionsProvider.actions.SAVE && action.loading;
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, action.error && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    text: action.error,
    dismissButtonText: __('Go Back', 'elementor-pro'),
    dismissButtonOnClick: resetActionState,
    approveButtonText: __('Learn More', 'elementor-pro'),
    approveButtonColor: "link",
    approveButtonUrl: "https://go.elementor.com/app-theme-builder-conditions-load-issue",
    approveButtonTarget: "_target"
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__rows"
  }, rows), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__add-button-container"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    className: "e-site-editor-conditions__add-button",
    variant: "contained",
    size: "lg",
    text: __('Add Condition', 'elementor-pro'),
    onClick: create
  })), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__footer"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    variant: "contained",
    color: "primary",
    size: "lg",
    hideText: isSaving,
    icon: isSaving ? 'eicon-loading eicon-animation-spin' : '',
    text: __('Save & Close', 'elementor-pro'),
    onClick: function onClick() {
      return save().then(props.onAfterSave);
    }
  })));
}

ConditionsRows.propTypes = {
  onAfterSave: PropTypes.func
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions.js":
/*!********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/conditions.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Conditions;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _parseInt2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/parse-int */ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _conditions = _interopRequireDefault(__webpack_require__(/*! ../../context/conditions */ "../core/app/modules/site-editor/assets/js/context/conditions.js"));

var _templates = __webpack_require__(/*! ../../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

var _conditionsRows = _interopRequireDefault(__webpack_require__(/*! ./conditions-rows */ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js"));

__webpack_require__(/*! ./conditions.scss */ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions.scss");

var _backButton = _interopRequireDefault(__webpack_require__(/*! ../../molecules/back-button */ "../core/app/modules/site-editor/assets/js/molecules/back-button.js"));

function Conditions(props) {
  var _React$useContext = _react.default.useContext(_templates.Context),
      findTemplateItemInState = _React$useContext.findTemplateItemInState,
      updateTemplateItemState = _React$useContext.updateTemplateItemState,
      template = findTemplateItemInState((0, _parseInt2.default)(props.id));

  if (!template) {
    return /*#__PURE__*/_react.default.createElement("div", null, __('Not Found', 'elementor-pro'));
  }

  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor-conditions"
  }, /*#__PURE__*/_react.default.createElement(_backButton.default, null), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__header"
  }, /*#__PURE__*/_react.default.createElement("img", {
    className: "e-site-editor-conditions__header-image",
    src: "".concat(elementorAppProConfig.baseUrl, "/modules/theme-builder/assets/images/conditions-tab.svg"),
    alt: __('Import template', 'elementor-pro')
  }), /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
    variant: "h1",
    tag: "h1"
  }, __('Where Do You Want to Display Your Template?', 'elementor-pro')), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    variant: "p"
  }, __('Set the conditions that determine where your template is used throughout your site.', 'elementor-pro'), /*#__PURE__*/_react.default.createElement("br", null), __('For example, choose \'Entire Site\' to display the template across your site.', 'elementor-pro'))), /*#__PURE__*/_react.default.createElement(_conditions.default, {
    currentTemplate: template,
    onConditionsSaved: updateTemplateItemState
  }, /*#__PURE__*/_react.default.createElement(_conditionsRows.default, {
    onAfterSave: function onAfterSave() {
      return history.back();
    }
  })));
}

Conditions.propTypes = {
  id: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/import.js":
/*!*****************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/import.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Import;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.regexp.replace.js */ "../node_modules/core-js/modules/es6.regexp.replace.js");

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

var _backButton = _interopRequireDefault(__webpack_require__(/*! ../molecules/back-button */ "../core/app/modules/site-editor/assets/js/molecules/back-button.js"));

function Import() {
  var _React$useContext = _react.default.useContext(_templates.Context),
      importTemplates = _React$useContext.importTemplates,
      action = _React$useContext.action,
      resetActionState = _React$useContext.resetActionState,
      _React$useState = _react.default.useState(null),
      _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
      importedTemplate = _React$useState2[0],
      setImportedTemplate = _React$useState2[1],
      isImport = _react.default.useMemo(function () {
    return action.current === _templates.TemplatesProvider.actions.IMPORT;
  }, [action]),
      isUploading = _react.default.useMemo(function () {
    return isImport && action.loading;
  }, [action]),
      hasError = _react.default.useMemo(function () {
    return isImport && action.error;
  }, [action]);

  var upload = _react.default.useCallback(function (file) {
    if (isUploading) {
      return;
    }

    readFile(file).then(function (fileData) {
      return importTemplates({
        fileName: file.name,
        fileData: fileData
      });
    }).then(function (response) {
      // For now it show a dialog for the first template ONLY!
      setImportedTemplate(response.data[0]);
    });
  }, []);

  return /*#__PURE__*/_react.default.createElement("section", {
    className: "site-editor__import"
  }, importedTemplate && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    title: __('Your template was imported', 'elementor-pro'),
    approveButtonText: __('Preview', 'elementor-pro'),
    approveButtonUrl: importedTemplate.url,
    approveButtonTarget: "_blank",
    dismissButtonText: __('Edit', 'elementor-pro'),
    dismissButtonUrl: importedTemplate.editURL,
    dismissButtonTarget: "_top",
    onClose: function onClose() {
      return setImportedTemplate(null);
    }
  }), hasError && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    title: action.error,
    approveButtonText: __('Learn More', 'elementor-pro'),
    approveButtonUrl: "https://go.elementor.com/app-theme-builder-import-issue",
    approveButtonTarget: "_blank",
    approveButtonColor: "link",
    dismissButtonText: __('Go Back', 'elementor-pro'),
    dismissButtonOnClick: resetActionState,
    onClose: resetActionState
  }), /*#__PURE__*/_react.default.createElement(_backButton.default, null), /*#__PURE__*/_react.default.createElement(_appUi.DropZone, {
    heading: __('Import Template To Your Library', 'elementor-pro'),
    text: __('Drag & Drop your .JSON or .zip template file', 'elementor-pro'),
    secondaryText: __('or', 'elementor-pro'),
    onFileSelect: upload,
    isLoading: isUploading,
    filetypes: ['zip', 'json']
  }));
}

function readFile(file) {
  return new _promise.default(function (resolve) {
    var fileReader = new FileReader();
    fileReader.readAsDataURL(file);

    fileReader.onload = function (event) {
      // Replace the mime type that prepended to the base64 with empty string and return a
      // resolved promise only with the base64 string.
      resolve(event.target.result.replace(/^[^,]+,/, ''));
    };
  });
}

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/template-type.js":
/*!************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/template-type.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = TemplateType;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _siteEditor = __webpack_require__(/*! @elementor/site-editor */ "@elementor/site-editor");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _siteTemplates = _interopRequireDefault(__webpack_require__(/*! ../organisms/site-templates */ "../core/app/modules/site-editor/assets/js/organisms/site-templates.js"));

__webpack_require__(/*! ./template-type.scss */ "../core/app/modules/site-editor/assets/js/pages/template-type.scss");

function TemplateType(props) {
  var _React$useContext = _react.default.useContext(_siteEditor.TemplateTypesContext),
      templateTypes = _React$useContext.templateTypes,
      currentType = templateTypes.find(function (item) {
    return item.type === props.type;
  });

  if (!currentType) {
    return /*#__PURE__*/_react.default.createElement(_appUi.NotFound, null);
  }

  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor__templates e-site-editor__templates--type-".concat(props.type)
  }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
    className: "page-header",
    container: true,
    justify: "space-between"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
    variant: "h1"
  }, currentType.page_title), /*#__PURE__*/_react.default.createElement(_appUi.AddNewButton, {
    url: currentType.urls.create,
    text: __('Add New', 'elementor-pro')
  })), /*#__PURE__*/_react.default.createElement("hr", {
    className: "eps-separator"
  }), /*#__PURE__*/_react.default.createElement(_siteTemplates.default, {
    type: currentType.type,
    id: props.id
  }));
}

TemplateType.propTypes = {
  type: PropTypes.string,
  page_title: PropTypes.string,
  id: PropTypes.string
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/templates.js":
/*!********************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/templates.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Templates;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _siteTemplates = _interopRequireDefault(__webpack_require__(/*! ../organisms/site-templates */ "../core/app/modules/site-editor/assets/js/organisms/site-templates.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function Templates() {
  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor__site-templates"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
    container: true,
    justify: "space-between",
    className: "page-header"
  }, /*#__PURE__*/_react.default.createElement("h1", null, __('Your Site\'s Global Parts', 'elementor-pro')), /*#__PURE__*/_react.default.createElement(_appUi.AddNewButton, {
    url: "/site-editor/add-new"
  })), /*#__PURE__*/_react.default.createElement("hr", {
    className: "eps-separator"
  }), /*#__PURE__*/_react.default.createElement(_siteTemplates.default, null));
}

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/part-actions/dialog-delete.js":
/*!*******************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/part-actions/dialog-delete.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = DialogDelete;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

function DialogDelete(props) {
  var _React$useContext = _react.default.useContext(_templates.Context),
      deleteTemplate = _React$useContext.deleteTemplate,
      findTemplateItemInState = _React$useContext.findTemplateItemInState,
      template = findTemplateItemInState(props.id);

  var closeDialog = function closeDialog(shouldUpdate) {
    props.setId(null);

    if (shouldUpdate) {
      deleteTemplate(props.id);
    }
  };

  if (!props.id) {
    return '';
  }

  return /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    title: __('Move Item To Trash', 'elementor-pro'),
    text: __('Are you sure you want to move this item to trash:', 'elementor-pro') + " \"".concat(template.title, "\""),
    onSubmit: function onSubmit() {
      return closeDialog(true);
    },
    approveButtonText: __('Move to Trash', 'elementor-pro'),
    approveButtonOnClick: function approveButtonOnClick() {
      return closeDialog(true);
    },
    approveButtonColor: "danger",
    dismissButtonText: __('Cancel', 'elementor-pro'),
    dismissButtonOnClick: function dismissButtonOnClick() {
      return closeDialog();
    },
    onClose: function onClose() {
      return closeDialog();
    }
  });
}

DialogDelete.propTypes = {
  id: PropTypes.number,
  setId: PropTypes.func.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/part-actions/dialog-rename.js":
/*!*******************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/part-actions/dialog-rename.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = DialogRename;

var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _templates = __webpack_require__(/*! ../context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js");

function DialogRename(props) {
  var _React$useContext = _react.default.useContext(_templates.Context),
      findTemplateItemInState = _React$useContext.findTemplateItemInState,
      updateTemplate = _React$useContext.updateTemplate,
      template = findTemplateItemInState(props.id);

  var _React$useState = _react.default.useState(''),
      _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
      title = _React$useState2[0],
      setTitle = _React$useState2[1];

  (0, _react.useEffect)(function () {
    // The "title" state should be updated if the template title changed.
    if (template) {
      setTitle(template.title);
    }
  }, [template]);

  var closeDialog = function closeDialog(shouldUpdate) {
    props.setId(null);

    if (shouldUpdate) {
      updateTemplate(props.id, {
        post_title: title
      });
    }
  };

  if (!props.id) {
    return '';
  }

  return /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    title: __('Rename Site Part', 'elementor-pro'),
    approveButtonText: __('Change', 'elementor-pro'),
    onSubmit: function onSubmit() {
      return closeDialog(true);
    },
    approveButtonOnClick: function approveButtonOnClick() {
      return closeDialog(true);
    },
    approveButtonColor: "primary",
    dismissButtonText: __('Cancel', 'elementor-pro'),
    dismissButtonOnClick: function dismissButtonOnClick() {
      return closeDialog();
    },
    onClose: function onClose() {
      return closeDialog();
    }
  }, /*#__PURE__*/_react.default.createElement("input", {
    type: "text",
    className: "eps-input eps-input-text eps-input--block",
    autoFocus: true,
    value: title,
    onChange: function onChange(e) {
      return setTitle(e.target.value);
    }
  }));
}

DialogRename.propTypes = {
  id: PropTypes.number,
  setId: PropTypes.func.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.js":
/*!*************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.PartActionsDialogs = PartActionsDialogs;
exports.default = PartActionsButtons;
exports.handlers = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _dialogRename = _interopRequireDefault(__webpack_require__(/*! ./dialog-rename */ "../core/app/modules/site-editor/assets/js/part-actions/dialog-rename.js"));

var _dialogDelete = _interopRequireDefault(__webpack_require__(/*! ./dialog-delete */ "../core/app/modules/site-editor/assets/js/part-actions/dialog-delete.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var handlers = {
  rename: null,
  delete: null
}; // TODO: Think about refactor to portals: https://reactjs.org/docs/portals.html

exports.handlers = handlers;

function PartActionsDialogs() {
  var _React$useState = _react.default.useState(null),
      _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
      DialogRenameId = _React$useState2[0],
      setDialogRenameId = _React$useState2[1];

  var _React$useState3 = _react.default.useState(null),
      _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
      DialogDeleteId = _React$useState4[0],
      setDialogDeleteId = _React$useState4[1];

  handlers.rename = setDialogRenameId;
  handlers.delete = setDialogDeleteId;
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_dialogRename.default, {
    id: DialogRenameId,
    setId: setDialogRenameId
  }), /*#__PURE__*/_react.default.createElement(_dialogDelete.default, {
    id: DialogDeleteId,
    setId: setDialogDeleteId
  }));
}

function PartActionsButtons(props) {
  var _React$useState5 = _react.default.useState(false),
      _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
      showMenu = _React$useState6[0],
      setShowMenu = _React$useState6[1];

  var SiteTemplatePopover = '';

  if (showMenu) {
    SiteTemplatePopover = /*#__PURE__*/_react.default.createElement(_appUi.Popover, {
      closeFunction: function closeFunction() {
        return setShowMenu(!showMenu);
      }
    }, /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      className: "eps-popover__item",
      icon: "eicon-sign-out",
      text: __('Export', 'elementor-pro'),
      url: props.exportLink
    })), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      className: "eps-popover__item eps-popover__item--danger",
      icon: "eicon-trash-o",
      text: __('Trash', 'elementor-pro'),
      onClick: function onClick() {
        return handlers.delete(props.id);
      }
    })), /*#__PURE__*/_react.default.createElement("li", null, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      className: "eps-popover__item",
      icon: "eicon-edit",
      text: __('Rename', 'elementor-pro'),
      onClick: function onClick() {
        return handlers.rename(props.id);
      }
    })));
  }

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "eps-popover__container"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    text: __('Toggle', 'elementor-pro'),
    hideText: true,
    icon: "eicon-ellipsis-h",
    size: "lg",
    onClick: function onClick() {
      return setShowMenu(!showMenu);
    }
  }), SiteTemplatePopover);
}

PartActionsButtons.propTypes = {
  id: PropTypes.number.isRequired,
  exportLink: PropTypes.string.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/site-editor.js":
/*!****************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/site-editor.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _router = __webpack_require__(/*! @reach/router */ "../node_modules/@reach/router/es/index.js");

var _templates = _interopRequireDefault(__webpack_require__(/*! ./pages/templates */ "../core/app/modules/site-editor/assets/js/pages/templates.js"));

var _templateType = _interopRequireDefault(__webpack_require__(/*! ./pages/template-type */ "../core/app/modules/site-editor/assets/js/pages/template-type.js"));

var _addNew = _interopRequireDefault(__webpack_require__(/*! ./pages/add-new */ "../core/app/modules/site-editor/assets/js/pages/add-new.js"));

var _conditions = _interopRequireDefault(__webpack_require__(/*! ./pages/conditions/conditions */ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions.js"));

var _import = _interopRequireDefault(__webpack_require__(/*! ./pages/import */ "../core/app/modules/site-editor/assets/js/pages/import.js"));

var _templates2 = _interopRequireWildcard(__webpack_require__(/*! ./context/templates */ "../core/app/modules/site-editor/assets/js/context/templates.js"));

var _siteEditor = __webpack_require__(/*! @elementor/site-editor */ "@elementor/site-editor");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _router2 = _interopRequireDefault(__webpack_require__(/*! @elementor/router */ "@elementor/router"));

var _component = _interopRequireDefault(__webpack_require__(/*! ./data/component */ "../core/app/modules/site-editor/assets/js/data/component.js"));

__webpack_require__(/*! ./site-editor.scss */ "../core/app/modules/site-editor/assets/js/site-editor.scss");

function SiteEditor() {
  var _elementorAppProConfi, _elementorAppProConfi2;

  var headerButtons = [{
    id: 'import',
    text: __('import', 'elementor-pro'),
    hideText: true,
    icon: 'eicon-download-circle-o',
    onClick: function onClick() {
      return _router2.default.appHistory.navigate('site-editor/import');
    }
  }]; // Remove Core cache.

  elementorCommon.ajax.invalidateCache({
    unique_id: 'app_site_editor_template_types'
  });

  var SiteEditorDefault = function SiteEditorDefault() {
    var _React$useContext = _react.default.useContext(_templates2.Context),
        templates = _React$useContext.templates;

    if ((0, _keys.default)(templates).length) {
      return /*#__PURE__*/_react.default.createElement(_router.Redirect, {
        from: '/',
        to: '/site-editor/templates',
        noThrow: true
      });
    }

    return /*#__PURE__*/_react.default.createElement(_router.Redirect, {
      from: '/',
      to: '/site-editor/add-new',
      noThrow: true
    });
  };

  return /*#__PURE__*/_react.default.createElement(_appUi.ErrorBoundary, {
    title: __('Theme Builder could not be loaded', 'elementor-pro'),
    learnMoreUrl: "https://go.elementor.com/app-theme-builder-load-issue"
  }, /*#__PURE__*/_react.default.createElement(_siteEditor.Layout, {
    allPartsButton: /*#__PURE__*/_react.default.createElement(_siteEditor.AllPartsButton, {
      url: "/site-editor"
    }),
    headerButtons: headerButtons
  }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
    container: true,
    className: "e-site-editor__content_container"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
    item: true,
    className: "e-site-editor__content_container_main"
  }, /*#__PURE__*/_react.default.createElement(_templates2.default, null, /*#__PURE__*/_react.default.createElement(_router.LocationProvider, {
    history: _router2.default.appHistory
  }, /*#__PURE__*/_react.default.createElement(_router.Router, null, /*#__PURE__*/_react.default.createElement(SiteEditorDefault, {
    path: "/site-editor"
  }), /*#__PURE__*/_react.default.createElement(_templates.default, {
    path: "site-editor/templates"
  }), /*#__PURE__*/_react.default.createElement(_templateType.default, {
    path: "site-editor/templates/:type/*id"
  }), /*#__PURE__*/_react.default.createElement(_addNew.default, {
    path: "site-editor/add-new"
  }), /*#__PURE__*/_react.default.createElement(_conditions.default, {
    path: "site-editor/conditions/:id"
  }), /*#__PURE__*/_react.default.createElement(_import.default, {
    path: "site-editor/import"
  }), /*#__PURE__*/_react.default.createElement(_siteEditor.NotFound, {
    default: true
  }))))), /*#__PURE__*/_react.default.createElement(_appUi.Grid, {
    item: true,
    className: "e-site-editor__content_container_secondary"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    text: __('Switch to table view', 'elementor-pro'),
    url: (_elementorAppProConfi = elementorAppProConfig['site-editor']) === null || _elementorAppProConfi === void 0 ? void 0 : (_elementorAppProConfi2 = _elementorAppProConfi.urls) === null || _elementorAppProConfi2 === void 0 ? void 0 : _elementorAppProConfi2.legacy_view
  })))));
}

var Module = function Module() {
  (0, _classCallCheck2.default)(this, Module);
  elementorCommon.debug.addURLToWatch('elementor-pro/assets');
  $e.components.register(new _component.default());

  _router2.default.addRoute({
    path: '/site-editor/*',
    component: SiteEditor
  });
};

exports.default = Module;

/***/ }),

/***/ "../modules/screenshots/app/assets/js/hooks/use-screenshot.js":
/*!********************************************************************!*\
  !*** ../modules/screenshots/app/assets/js/hooks/use-screenshot.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = useScreenshot;
exports.SCREENSHOT_STATUS_FAILED = exports.SCREENSHOT_STATUS_SUCCEED = exports.SCREENSHOT_STATUS_IN_PROGRESS = exports.SCREENSHOT_STATUS_QUEUE = void 0;

var _parseInt2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/parse-int */ "../node_modules/@babel/runtime-corejs2/core-js/parse-int.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _React = React,
    useState = _React.useState,
    useEffect = _React.useEffect,
    useMemo = _React.useMemo,
    useCallback = _React.useCallback;
var SCREENSHOT_STATUS_QUEUE = 'queue';
exports.SCREENSHOT_STATUS_QUEUE = SCREENSHOT_STATUS_QUEUE;
var SCREENSHOT_STATUS_IN_PROGRESS = 'in-progress';
exports.SCREENSHOT_STATUS_IN_PROGRESS = SCREENSHOT_STATUS_IN_PROGRESS;
var SCREENSHOT_STATUS_SUCCEED = 'succeed';
exports.SCREENSHOT_STATUS_SUCCEED = SCREENSHOT_STATUS_SUCCEED;
var SCREENSHOT_STATUS_FAILED = 'failed';
/**
 * Default options for the hook function
 *
 * @type {{numberOfScreenshotInParallel: number}}
 */

exports.SCREENSHOT_STATUS_FAILED = SCREENSHOT_STATUS_FAILED;
var defaultOptions = {
  numberOfScreenshotInParallel: 1
};
/**
 * Filter the posts by status.
 *
 * @param {Array} posts
 * @param {string} status
 * @return {Array} -
 */

function filterPostByStatus(posts, status) {
  return posts.filter(function (item) {
    return status === item.status;
  });
}
/**
 * Receive the initial posts and normalize it
 * to an array that the hook can work with.
 *
 * @param {Array} posts
 */


function normalizeInitialPosts(posts) {
  return posts.map(function (post) {
    return {
      id: post.id,
      screenshot_url: post.screenshot_url,
      status: 'queue',
      iframe: null,
      imageUrl: null
    };
  });
}
/**
 * Find the post id inside the posts array, update it with the attrs,
 * and make sure to return the whole posts array.
 *
 *
 * @param {Array} posts
 * @param {number} id
 * @param {Object} attrs
 * @return {Array} -
 */


function updatePostsAttrs(posts, id) {
  var attrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  return posts.map(function (post) {
    if (post.id !== id) {
      return post;
    }

    return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, post), attrs);
  });
}
/**
 * Creates an IFrame that will create the screenshot.
 *
 * @param {Object} post
 * @return {any} -
 */


function createScreenshotIframe(post) {
  var iframe = document.createElement('iframe');
  iframe.src = post.screenshot_url;
  iframe.width = '1200';
  iframe.style = 'visibility: hidden;';
  document.body.appendChild(iframe);
  return iframe;
}
/**
 * Returns a callback, that will be bind to the iframe message event.
 *
 * @param {Array} inProgressPosts
 * @param {Function} setPosts
 * @return {any} -
 */


function useIFrameMessageListener(inProgressPosts, setPosts) {
  return useCallback(function (message) {
    var data = message.data;

    if (!data.name || data.name !== 'capture-screenshot-done') {
      return;
    }

    var post = inProgressPosts.find(function (item) {
      return item.id === (0, _parseInt2.default)(data.id);
    });

    if (!post) {
      return;
    }

    post.iframe.remove();
    setPosts(function (prevState) {
      return updatePostsAttrs(prevState, post.id, {
        status: data.success ? SCREENSHOT_STATUS_SUCCEED : SCREENSHOT_STATUS_FAILED,
        imageUrl: data.imageUrl
      });
    });
  }, [inProgressPosts]);
}
/**
 * Will create a screenshot based on the posts that was passed to it.
 *
 * @param {Array} initialPosts
 * @param {number} numberOfScreenshotInParallel
 * @return {{inProgress: Array, succeed: Array, failed: Array, posts: Array, queue: Array}} -
 */


function useScreenshot(initialPosts) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions,
      numberOfScreenshotInParallel = _ref.numberOfScreenshotInParallel;

  var _useState = useState([]),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      posts = _useState2[0],
      setPosts = _useState2[1]; // Holds some kind of computed value of the `posts` state,
  // it is been created mostly for convenient workflow and little bit performance optimization.


  var queue = useMemo(function () {
    return filterPostByStatus(posts, SCREENSHOT_STATUS_QUEUE);
  }, [posts]);
  var inProgress = useMemo(function () {
    return filterPostByStatus(posts, SCREENSHOT_STATUS_IN_PROGRESS);
  }, [posts]);
  var succeed = useMemo(function () {
    return filterPostByStatus(posts, SCREENSHOT_STATUS_SUCCEED);
  }, [posts]);
  var failed = useMemo(function () {
    return filterPostByStatus(posts, SCREENSHOT_STATUS_FAILED);
  }, [posts]); // Will run every initialPosts change, make the diff between the local state
  // and initialPosts and creates a new local state.

  useEffect(function () {
    var postsDiff = initialPosts.filter(function (initialPost) {
      return !posts.find(function (statePost) {
        return statePost.id === initialPost.id;
      });
    });

    if (!postsDiff.length) {
      return;
    }

    setPosts(function (prev) {
      return [].concat((0, _toConsumableArray2.default)(prev), (0, _toConsumableArray2.default)(normalizeInitialPosts(postsDiff)));
    });
  }, [initialPosts]); // Holds the useCallback that will be used to listen to the screenshot iframe events.

  var iframeMessageListener = useIFrameMessageListener(inProgress, setPosts); // Listens to the screenshot iframe events
  // eventually will remove the iframe and set the post status to succeed or failed.

  useEffect(function () {
    window.addEventListener('message', iframeMessageListener, false);
    return function () {
      window.removeEventListener('message', iframeMessageListener);
    };
  }, [iframeMessageListener]); // Runs every time `posts` state change (all most every event in this hook will trigger change to `posts`),
  // this logic response for setting status of the process to DONE if needed + taking the next post and start
  // to capture a screenshot.

  useEffect(function () {
    if (0 === queue.length || inProgress.length >= numberOfScreenshotInParallel) {
      return;
    }

    var _queue = (0, _slicedToArray2.default)(queue, 1),
        nextPost = _queue[0];

    var iframe = createScreenshotIframe(nextPost);
    setPosts(function (prevState) {
      return updatePostsAttrs(prevState, nextPost.id, {
        status: SCREENSHOT_STATUS_IN_PROGRESS,
        iframe: iframe
      });
    });
  }, [posts]);
  return {
    posts: posts,
    queue: queue,
    inProgress: inProgress,
    succeed: succeed,
    failed: failed
  };
}

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/json/stringify.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/json/stringify.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js");
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
  return $JSON.stringify.apply($JSON, arguments);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/assign.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/assign.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.assign */ "../node_modules/core-js/library/modules/es6.object.assign.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.assign;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-properties.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-properties.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-properties */ "../node_modules/core-js/library/modules/es6.object.define-properties.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperties(T, D) {
  return $Object.defineProperties(T, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptors.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertyDescriptors;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-symbols.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/keys.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.keys */ "../node_modules/core-js/library/modules/es6.object.keys.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.keys;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/values.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/values.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.values */ "../node_modules/core-js/library/modules/es7.object.values.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.values;


/***/ }),

/***/ "../node_modules/core-js/library/fn/parse-int.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/fn/parse-int.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.parse-int */ "../node_modules/core-js/library/modules/es6.parse-int.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").parseInt;


/***/ }),

/***/ "../node_modules/core-js/library/fn/promise.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/library/fn/promise.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.promise */ "../node_modules/core-js/library/modules/es6.promise.js");
__webpack_require__(/*! ../modules/es7.promise.finally */ "../node_modules/core-js/library/modules/es7.promise.finally.js");
__webpack_require__(/*! ../modules/es7.promise.try */ "../node_modules/core-js/library/modules/es7.promise.try.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Promise;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/fn/weak-map.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/library/fn/weak-map.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.weak-map */ "../node_modules/core-js/library/modules/es6.weak-map.js");
__webpack_require__(/*! ../modules/es7.weak-map.of */ "../node_modules/core-js/library/modules/es7.weak-map.of.js");
__webpack_require__(/*! ../modules/es7.weak-map.from */ "../node_modules/core-js/library/modules/es7.weak-map.from.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").WeakMap;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-instance.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-instance.js ***!
  \***************************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-methods.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-methods.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/library/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-constructor.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-constructor.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-create.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-create.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/library/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection-weak.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection-weak.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var getWeak = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").getWeak;
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js");
var $has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var arrayFind = createArrayMethod(5);
var arrayFindIndex = createArrayMethod(6);
var id = 0;

// fallback for uncaught frozen keys
var uncaughtFrozenStore = function (that) {
  return that._l || (that._l = new UncaughtFrozenStore());
};
var UncaughtFrozenStore = function () {
  this.a = [];
};
var findUncaughtFrozen = function (store, key) {
  return arrayFind(store.a, function (it) {
    return it[0] === key;
  });
};
UncaughtFrozenStore.prototype = {
  get: function (key) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) return entry[1];
  },
  has: function (key) {
    return !!findUncaughtFrozen(this, key);
  },
  set: function (key, value) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) entry[1] = value;
    else this.a.push([key, value]);
  },
  'delete': function (key) {
    var index = arrayFindIndex(this.a, function (it) {
      return it[0] === key;
    });
    if (~index) this.a.splice(index, 1);
    return !!~index;
  }
};

module.exports = {
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
    var C = wrapper(function (that, iterable) {
      anInstance(that, C, NAME, '_i');
      that._t = NAME;      // collection type
      that._i = id++;      // collection id
      that._l = undefined; // leak store for uncaught frozen objects
      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
    });
    redefineAll(C.prototype, {
      // 23.3.3.2 WeakMap.prototype.delete(key)
      // 23.4.3.3 WeakSet.prototype.delete(value)
      'delete': function (key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
        return data && $has(data, this._i) && delete data[this._i];
      },
      // 23.3.3.4 WeakMap.prototype.has(key)
      // 23.4.3.4 WeakSet.prototype.has(value)
      has: function has(key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
        return data && $has(data, this._i);
      }
    });
    return C;
  },
  def: function (that, key, value) {
    var data = getWeak(anObject(key), true);
    if (data === true) uncaughtFrozenStore(that).set(key, value);
    else data[that._i] = value;
    return that;
  },
  ufstore: uncaughtFrozenStore
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
  var Base = global[NAME];
  var C = Base;
  var ADDER = IS_MAP ? 'set' : 'add';
  var proto = C && C.prototype;
  var O = {};
  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
    new C().entries().next();
  }))) {
    // create collection constructor
    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
    redefineAll(C.prototype, methods);
    meta.NEED = true;
  } else {
    C = wrapper(function (target, iterable) {
      anInstance(target, C, NAME, '_c');
      target._c = new Base();
      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
    });
    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
      var IS_ADDER = KEY == 'add' || KEY == 'set';
      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
        anInstance(this, C, KEY);
        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
        var result = this._c[KEY](a === 0 ? 0 : a, b);
        return IS_ADDER ? this : result;
      });
    });
    IS_WEAK || dP(C.prototype, 'size', {
      get: function () {
        return this._c.size;
      }
    });
  }

  setToStringTag(C, NAME);

  O[NAME] = C;
  $export($export.G + $export.W + $export.F, O);

  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);

  return C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_for-of.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_for-of.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_microtask.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_microtask.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_new-promise-capability.js":
/*!**************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_new-promise-capability.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-assign.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-assign.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) { B[k] = k; });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;
  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
    }
  } return T;
} : $assign;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-to-array.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-to-array.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var isEnum = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f;
module.exports = function (isEntries) {
  return function (it) {
    var O = toIObject(it);
    var keys = getKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || isEnum.call(O, key)) {
        result.push(isEntries ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_own-keys.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_own-keys.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all object keys, includes non-enumerable and symbols
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var Reflect = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
  var keys = gOPN.f(anObject(it));
  var getSymbols = gOPS.f;
  return getSymbols ? keys.concat(getSymbols(it)) : keys;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_parse-int.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_parse-int.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $parseInt = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").parseInt;
var $trim = __webpack_require__(/*! ./_string-trim */ "../node_modules/core-js/library/modules/_string-trim.js").trim;
var ws = __webpack_require__(/*! ./_string-ws */ "../node_modules/core-js/library/modules/_string-ws.js");
var hex = /^[-+]?0[xX]/;

module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
  var string = $trim(String(str), 3);
  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
} : $parseInt;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_perform.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_perform.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_promise-resolve.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_promise-resolve.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine-all.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine-all.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];
    else hide(target, key, src[key]);
  } return target;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-from.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-from.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
    var mapFn = arguments[1];
    var mapping, A, n, cb;
    aFunction(this);
    mapping = mapFn !== undefined;
    if (mapping) aFunction(mapFn);
    if (source == undefined) return new this();
    A = [];
    if (mapping) {
      n = 0;
      cb = ctx(mapFn, arguments[2], 2);
      forOf(source, false, function (nextItem) {
        A.push(cb(nextItem, n++));
      });
    } else {
      forOf(source, false, A.push, A);
    }
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { of: function of() {
    var length = arguments.length;
    var A = new Array(length);
    while (length--) A[length] = arguments[length];
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-species.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-species.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_species-constructor.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_species-constructor.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-trim.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-trim.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var spaces = __webpack_require__(/*! ./_string-ws */ "../node_modules/core-js/library/modules/_string-ws.js");
var space = '[' + spaces + ']';
var non = '\u200b\u0085';
var ltrim = RegExp('^' + space + space + '*');
var rtrim = RegExp(space + space + '*$');

var exporter = function (KEY, exec, ALIAS) {
  var exp = {};
  var FORCE = fails(function () {
    return !!spaces[KEY]() || non[KEY]() != non;
  });
  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
  if (ALIAS) exp[ALIAS] = fn;
  $export($export.P + $export.F * FORCE, 'String', exp);
};

// 1 -> String#trimLeft
// 2 -> String#trimRight
// 3 -> String#trim
var trim = exporter.trim = function (string, TYPE) {
  string = String(defined(string));
  if (TYPE & 1) string = string.replace(ltrim, '');
  if (TYPE & 2) string = string.replace(rtrim, '');
  return string;
};

module.exports = exporter;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-ws.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-ws.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
  '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_task.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_task.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_user-agent.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_user-agent.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_validate-collection.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_validate-collection.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it, TYPE) {
  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.assign.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.assign.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-properties.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-properties.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.keys.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.keys.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.parse-int.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.parse-int.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $parseInt = __webpack_require__(/*! ./_parse-int */ "../node_modules/core-js/library/modules/_parse-int.js");
// 18.2.5 parseInt(string, radix)
$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.promise.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.promise.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/library/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/library/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/library/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.weak-map.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.weak-map.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var assign = __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js");
var weak = __webpack_require__(/*! ./_collection-weak */ "../node_modules/core-js/library/modules/_collection-weak.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
var WEAK_MAP = 'WeakMap';
var getWeak = meta.getWeak;
var isExtensible = Object.isExtensible;
var uncaughtFrozenStore = weak.ufstore;
var InternalMap;

var wrapper = function (get) {
  return function WeakMap() {
    return get(this, arguments.length > 0 ? arguments[0] : undefined);
  };
};

var methods = {
  // 23.3.3.3 WeakMap.prototype.get(key)
  get: function get(key) {
    if (isObject(key)) {
      var data = getWeak(key);
      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
      return data ? data[this._i] : undefined;
    }
  },
  // 23.3.3.5 WeakMap.prototype.set(key, value)
  set: function set(key, value) {
    return weak.def(validate(this, WEAK_MAP), key, value);
  }
};

// 23.3 WeakMap Objects
var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "../node_modules/core-js/library/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true);

// IE11 WeakMap frozen keys fix
if (NATIVE_WEAK_MAP && IS_IE11) {
  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
  assign(InternalMap.prototype, methods);
  meta.NEED = true;
  each(['delete', 'has', 'get', 'set'], function (key) {
    var proto = $WeakMap.prototype;
    var method = proto[key];
    redefine(proto, key, function (a, b) {
      // store frozen objects on internal weakmap shim
      if (isObject(a) && !isExtensible(a)) {
        if (!this._f) this._f = new InternalMap();
        var result = this._f[key](a, b);
        return key == 'set' ? this : result;
      // store all the rest on native weakmap
      } return method.call(this, a, b);
    });
  });
}


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js":
/*!******************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-getownpropertydescriptors
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var ownKeys = __webpack_require__(/*! ./_own-keys */ "../node_modules/core-js/library/modules/_own-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");

$export($export.S, 'Object', {
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
    var O = toIObject(object);
    var getDesc = gOPD.f;
    var keys = ownKeys(O);
    var result = {};
    var i = 0;
    var key, desc;
    while (keys.length > i) {
      desc = getDesc(O, key = keys[i++]);
      if (desc !== undefined) createProperty(result, key, desc);
    }
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.values.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.values.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $values = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(false);

$export($export.S, 'Object', {
  values: function values(it) {
    return $values(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.finally.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.finally.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.try.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.try.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/proposal-promise-try
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");

$export($export.S, 'Promise', { 'try': function (callbackfn) {
  var promiseCapability = newPromiseCapability.f(this);
  var result = perform(callbackfn);
  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
  return promiseCapability.promise;
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.from.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.from.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
__webpack_require__(/*! ./_set-collection-from */ "../node_modules/core-js/library/modules/_set-collection-from.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.of.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.of.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
__webpack_require__(/*! ./_set-collection-of */ "../node_modules/core-js/library/modules/_set-collection-of.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_advance-string-index.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_advance-string-index.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/modules/_string-at.js")(true);

 // `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? at(S, index).length : 1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails-is-regexp.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/_fails-is-regexp.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (KEY) {
  var re = /./;
  try {
    '/./'[KEY](re);
  } catch (e) {
    try {
      re[MATCH] = false;
      return !'/./'[KEY](re);
    } catch (f) { /* empty */ }
  } return true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fix-re-wks.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_fix-re-wks.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.exec */ "../node_modules/core-js/modules/es6.regexp.exec.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js");
var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");

var SPECIES = wks('species');

var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
  // #replace needs built-in support for named groups.
  // #match works fine because it just return the exec results, even if it has
  // a "grops" property.
  var re = /./;
  re.exec = function () {
    var result = [];
    result.groups = { a: '7' };
    return result;
  };
  return ''.replace(re, '$<a>') !== '7';
});

var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
  var re = /(?:)/;
  var originalExec = re.exec;
  re.exec = function () { return originalExec.apply(this, arguments); };
  var result = 'ab'.split(re);
  return result.length === 2 && result[0] === 'a' && result[1] === 'b';
})();

module.exports = function (KEY, length, exec) {
  var SYMBOL = wks(KEY);

  var DELEGATES_TO_SYMBOL = !fails(function () {
    // String methods call symbol-named RegEp methods
    var O = {};
    O[SYMBOL] = function () { return 7; };
    return ''[KEY](O) != 7;
  });

  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
    // Symbol-named RegExp methods call .exec
    var execCalled = false;
    var re = /a/;
    re.exec = function () { execCalled = true; return null; };
    if (KEY === 'split') {
      // RegExp[@@split] doesn't call the regex's exec method, but first creates
      // a new one. We need to return the patched regex when creating the new one.
      re.constructor = {};
      re.constructor[SPECIES] = function () { return re; };
    }
    re[SYMBOL]('');
    return !execCalled;
  }) : undefined;

  if (
    !DELEGATES_TO_SYMBOL ||
    !DELEGATES_TO_EXEC ||
    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
  ) {
    var nativeRegExpMethod = /./[SYMBOL];
    var fns = exec(
      defined,
      SYMBOL,
      ''[KEY],
      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
        if (regexp.exec === regexpExec) {
          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
            // The native String method already delegates to @@method (this
            // polyfilled function), leasing to infinite recursion.
            // We avoid it by directly calling the native @@method method.
            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
          }
          return { done: true, value: nativeMethod.call(str, regexp, arg2) };
        }
        return { done: false };
      }
    );
    var strfn = fns[0];
    var rxfn = fns[1];

    redefine(String.prototype, KEY, strfn);
    hide(RegExp.prototype, SYMBOL, length == 2
      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
      ? function (string, arg) { return rxfn.call(string, this, arg); }
      // 21.2.5.6 RegExp.prototype[@@match](string)
      // 21.2.5.9 RegExp.prototype[@@search](string)
      : function (string) { return rxfn.call(string, this); }
    );
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_flags.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_flags.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 21.2.5.3 get RegExp.prototype.flags
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-regexp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-regexp.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec-abstract.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec-abstract.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var builtinExec = RegExp.prototype.exec;

 // `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (typeof exec === 'function') {
    var result = exec.call(R, S);
    if (typeof result !== 'object') {
      throw new TypeError('RegExp exec method returned something other than an Object or null');
    }
    return result;
  }
  if (classof(R) !== 'RegExp') {
    throw new TypeError('RegExp#exec called on incompatible receiver');
  }
  return builtinExec.call(R, S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_regexp-exec.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_regexp-exec.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var regexpFlags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");

var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;

var patchedExec = nativeExec;

var LAST_INDEX = 'lastIndex';

var UPDATES_LAST_INDEX_WRONG = (function () {
  var re1 = /a/,
      re2 = /b*/g;
  nativeExec.call(re1, 'a');
  nativeExec.call(re2, 'a');
  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
})();

// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;

var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;

if (PATCH) {
  patchedExec = function exec(str) {
    var re = this;
    var lastIndex, reCopy, match, i;

    if (NPCG_INCLUDED) {
      reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
    }
    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];

    match = nativeExec.call(re, str);

    if (UPDATES_LAST_INDEX_WRONG && match) {
      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
    }
    if (NPCG_INCLUDED && match && match.length > 1) {
      // Fix browsers whose `exec` methods don't consistently return `undefined`
      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
      // eslint-disable-next-line no-loop-func
      nativeReplace.call(match[0], reCopy, function () {
        for (i = 1; i < arguments.length - 2; i++) {
          if (arguments[i] === undefined) match[i] = undefined;
        }
      });
    }

    return match;
  };
}

module.exports = patchedExec;


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-at.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_string-at.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-context.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_string-context.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// helper for String#{startsWith, endsWith, includes}
var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");

module.exports = function (that, searchString, NAME) {
  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
  return String(defined(that));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-html.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_string-html.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var quot = /"/g;
// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
var createHTML = function (string, tag, attribute, value) {
  var S = String(defined(string));
  var p1 = '<' + tag;
  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
  return p1 + '>' + S + '</' + tag + '>';
};
module.exports = function (NAME, exec) {
  var O = {};
  O[NAME] = exec(createHTML);
  $export($export.P + $export.F * fails(function () {
    var test = ''[NAME]('"');
    return test !== test.toLowerCase() || test.split('"').length > 3;
  }), 'String', O);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.filter.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.filter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $filter = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(2);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.function.name.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.function.name.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// 19.2.4.2 name
NAME in FProto || __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
  configurable: true,
  get: function () {
    try {
      return ('' + this).match(nameRE)[1];
    } catch (e) {
      return '';
    }
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.exec.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.exec.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "../node_modules/core-js/modules/_regexp-exec.js");
__webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js")({
  target: 'RegExp',
  proto: true,
  forced: regexpExec !== /./.exec
}, {
  exec: regexpExec
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.flags.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.flags.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 21.2.5.3 get RegExp.prototype.flags()
if (__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', {
  configurable: true,
  get: __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js")
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.replace.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.replace.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "../node_modules/core-js/modules/_advance-string-index.js");
var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "../node_modules/core-js/modules/_regexp-exec-abstract.js");
var max = Math.max;
var min = Math.min;
var floor = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;

var maybeToString = function (it) {
  return it === undefined ? it : String(it);
};

// @@replace logic
__webpack_require__(/*! ./_fix-re-wks */ "../node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
  return [
    // `String.prototype.replace` method
    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
    function replace(searchValue, replaceValue) {
      var O = defined(this);
      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
      return fn !== undefined
        ? fn.call(searchValue, O, replaceValue)
        : $replace.call(String(O), searchValue, replaceValue);
    },
    // `RegExp.prototype[@@replace]` method
    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
    function (regexp, replaceValue) {
      var res = maybeCallNative($replace, regexp, this, replaceValue);
      if (res.done) return res.value;

      var rx = anObject(regexp);
      var S = String(this);
      var functionalReplace = typeof replaceValue === 'function';
      if (!functionalReplace) replaceValue = String(replaceValue);
      var global = rx.global;
      if (global) {
        var fullUnicode = rx.unicode;
        rx.lastIndex = 0;
      }
      var results = [];
      while (true) {
        var result = regExpExec(rx, S);
        if (result === null) break;
        results.push(result);
        if (!global) break;
        var matchStr = String(result[0]);
        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
      }
      var accumulatedResult = '';
      var nextSourcePosition = 0;
      for (var i = 0; i < results.length; i++) {
        result = results[i];
        var matched = String(result[0]);
        var position = max(min(toInteger(result.index), S.length), 0);
        var captures = [];
        // NOTE: This is equivalent to
        //   captures = result.slice(1).map(maybeToString)
        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
        var namedCaptures = result.groups;
        if (functionalReplace) {
          var replacerArgs = [matched].concat(captures, position, S);
          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
          var replacement = String(replaceValue.apply(undefined, replacerArgs));
        } else {
          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
        }
        if (position >= nextSourcePosition) {
          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
          nextSourcePosition = position + matched.length;
        }
      }
      return accumulatedResult + S.slice(nextSourcePosition);
    }
  ];

    // https://tc39.github.io/ecma262/#sec-getsubstitution
  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
    var tailPos = position + matched.length;
    var m = captures.length;
    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
    if (namedCaptures !== undefined) {
      namedCaptures = toObject(namedCaptures);
      symbols = SUBSTITUTION_SYMBOLS;
    }
    return $replace.call(replacement, symbols, function (match, ch) {
      var capture;
      switch (ch.charAt(0)) {
        case '$': return '$';
        case '&': return matched;
        case '`': return str.slice(0, position);
        case "'": return str.slice(tailPos);
        case '<':
          capture = namedCaptures[ch.slice(1, -1)];
          break;
        default: // \d\d?
          var n = +ch;
          if (n === 0) return match;
          if (n > m) {
            var f = floor(n / 10);
            if (f === 0) return match;
            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
            return match;
          }
          capture = captures[n - 1];
      }
      return capture === undefined ? '' : capture;
    });
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.flags */ "../node_modules/core-js/modules/es6.regexp.flags.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var $flags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js");
var TO_STRING = 'toString';
var $toString = /./[TO_STRING];

var define = function (fn) {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true);
};

// 21.2.5.14 RegExp.prototype.toString()
if (__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
  define(function toString() {
    var R = anObject(this);
    return '/'.concat(R.source, '/',
      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
  });
// FF44- RegExp#toString has a wrong name
} else if ($toString.name != TO_STRING) {
  define(function toString() {
    return $toString.call(this);
  });
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.includes.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.includes.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// 21.1.3.7 String.prototype.includes(searchString, position = 0)

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var context = __webpack_require__(/*! ./_string-context */ "../node_modules/core-js/modules/_string-context.js");
var INCLUDES = 'includes';

$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "../node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', {
  includes: function includes(searchString /* , position = 0 */) {
    return !!~context(this, searchString, INCLUDES)
      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.sub.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.sub.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// B.2.3.13 String.prototype.sub()
__webpack_require__(/*! ./_string-html */ "../node_modules/core-js/modules/_string-html.js")('sub', function (createHTML) {
  return function sub() {
    return createHTML(this, 'sub', '', '');
  };
});


/***/ }),

/***/ "../node_modules/core-js/modules/es7.array.includes.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es7.array.includes.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/Array.prototype.includes
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $includes = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(true);

$export($export.P, 'Array', {
  includes: function includes(el /* , fromIndex = 0 */) {
    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
  }
});

__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")('includes');


/***/ }),

/***/ "../node_modules/create-react-context/lib/implementation.js":
/*!******************************************************************!*\
  !*** ../node_modules/create-react-context/lib/implementation.js ***!
  \******************************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";


exports.__esModule = true;

var _react = __webpack_require__(/*! react */ "react");

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _gud = __webpack_require__(/*! gud */ "../node_modules/gud/index.js");

var _gud2 = _interopRequireDefault(_gud);

var _warning = __webpack_require__(/*! warning */ "../node_modules/warning/warning.js");

var _warning2 = _interopRequireDefault(_warning);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var MAX_SIGNED_31_BIT_INT = 1073741823;

// Inlined Object.is polyfill.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
function objectIs(x, y) {
  if (x === y) {
    return x !== 0 || 1 / x === 1 / y;
  } else {
    return x !== x && y !== y;
  }
}

function createEventEmitter(value) {
  var handlers = [];
  return {
    on: function on(handler) {
      handlers.push(handler);
    },
    off: function off(handler) {
      handlers = handlers.filter(function (h) {
        return h !== handler;
      });
    },
    get: function get() {
      return value;
    },
    set: function set(newValue, changedBits) {
      value = newValue;
      handlers.forEach(function (handler) {
        return handler(value, changedBits);
      });
    }
  };
}

function onlyChild(children) {
  return Array.isArray(children) ? children[0] : children;
}

function createReactContext(defaultValue, calculateChangedBits) {
  var _Provider$childContex, _Consumer$contextType;

  var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';

  var Provider = function (_Component) {
    _inherits(Provider, _Component);

    function Provider() {
      var _temp, _this, _ret;

      _classCallCheck(this, Provider);

      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);
    }

    Provider.prototype.getChildContext = function getChildContext() {
      var _ref;

      return _ref = {}, _ref[contextProp] = this.emitter, _ref;
    };

    Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      if (this.props.value !== nextProps.value) {
        var oldValue = this.props.value;
        var newValue = nextProps.value;
        var changedBits = void 0;

        if (objectIs(oldValue, newValue)) {
          changedBits = 0; // No change
        } else {
          changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;
          if (true) {
            (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);
          }

          changedBits |= 0;

          if (changedBits !== 0) {
            this.emitter.set(nextProps.value, changedBits);
          }
        }
      }
    };

    Provider.prototype.render = function render() {
      return this.props.children;
    };

    return Provider;
  }(_react.Component);

  Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);

  var Consumer = function (_Component2) {
    _inherits(Consumer, _Component2);

    function Consumer() {
      var _temp2, _this2, _ret2;

      _classCallCheck(this, Consumer);

      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        args[_key2] = arguments[_key2];
      }

      return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {
        value: _this2.getValue()
      }, _this2.onUpdate = function (newValue, changedBits) {
        var observedBits = _this2.observedBits | 0;
        if ((observedBits & changedBits) !== 0) {
          _this2.setState({ value: _this2.getValue() });
        }
      }, _temp2), _possibleConstructorReturn(_this2, _ret2);
    }

    Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      var observedBits = nextProps.observedBits;

      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default
      : observedBits;
    };

    Consumer.prototype.componentDidMount = function componentDidMount() {
      if (this.context[contextProp]) {
        this.context[contextProp].on(this.onUpdate);
      }
      var observedBits = this.props.observedBits;

      this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default
      : observedBits;
    };

    Consumer.prototype.componentWillUnmount = function componentWillUnmount() {
      if (this.context[contextProp]) {
        this.context[contextProp].off(this.onUpdate);
      }
    };

    Consumer.prototype.getValue = function getValue() {
      if (this.context[contextProp]) {
        return this.context[contextProp].get();
      } else {
        return defaultValue;
      }
    };

    Consumer.prototype.render = function render() {
      return onlyChild(this.props.children)(this.state.value);
    };

    return Consumer;
  }(_react.Component);

  Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);


  return {
    Provider: Provider,
    Consumer: Consumer
  };
}

exports.default = createReactContext;
module.exports = exports['default'];

/***/ }),

/***/ "../node_modules/create-react-context/lib/index.js":
/*!*********************************************************!*\
  !*** ../node_modules/create-react-context/lib/index.js ***!
  \*********************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";


exports.__esModule = true;

var _react = __webpack_require__(/*! react */ "react");

var _react2 = _interopRequireDefault(_react);

var _implementation = __webpack_require__(/*! ./implementation */ "../node_modules/create-react-context/lib/implementation.js");

var _implementation2 = _interopRequireDefault(_implementation);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

exports.default = _react2.default.createContext || _implementation2.default;
module.exports = exports['default'];

/***/ }),

/***/ "../node_modules/gud/index.js":
/*!************************************!*\
  !*** ../node_modules/gud/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// @flow


var key = '__global_unique_id__';

module.exports = function() {
  return __webpack_require__.g[key] = (__webpack_require__.g[key] || 0) + 1;
};


/***/ }),

/***/ "../node_modules/invariant/browser.js":
/*!********************************************!*\
  !*** ../node_modules/invariant/browser.js ***!
  \********************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if (true) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
      error.name = 'Invariant Violation';
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;


/***/ }),

/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
  !*** ../node_modules/object-assign/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
  !*** ../node_modules/prop-types/checkPropTypes.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
  var loggedTypeFailures = {};
  var has = Function.call.bind(Object.prototype.hasOwnProperty);

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
  !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");

var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");

var has = Function.call.bind(Object.prototype.hasOwnProperty);
var printWarning = function() {};

if (true) {
  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

function emptyFunctionThatReturnsNull() {
  return null;
}

module.exports = function(isValidElement, throwOnDirectAccess) {
  /* global Symbol */
  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

  /**
   * Returns the iterator method function contained on the iterable object.
   *
   * Be sure to invoke the function with the iterable as context:
   *
   *     var iteratorFn = getIteratorFn(myIterable);
   *     if (iteratorFn) {
   *       var iterator = iteratorFn.call(myIterable);
   *       ...
   *     }
   *
   * @param {?object} maybeIterable
   * @return {?function}
   */
  function getIteratorFn(maybeIterable) {
    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  /**
   * Collection of methods that allow declaration and validation of props that are
   * supplied to React components. Example usage:
   *
   *   var Props = require('ReactPropTypes');
   *   var MyArticle = React.createClass({
   *     propTypes: {
   *       // An optional string prop named "description".
   *       description: Props.string,
   *
   *       // A required enum prop named "category".
   *       category: Props.oneOf(['News','Photos']).isRequired,
   *
   *       // A prop named "dialog" that requires an instance of Dialog.
   *       dialog: Props.instanceOf(Dialog).isRequired
   *     },
   *     render: function() { ... }
   *   });
   *
   * A more formal specification of how these methods are used:
   *
   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
   *   decl := ReactPropTypes.{type}(.isRequired)?
   *
   * Each and every declaration produces a function with the same signature. This
   * allows the creation of custom validation functions. For example:
   *
   *  var MyLink = React.createClass({
   *    propTypes: {
   *      // An optional string or URI prop named "href".
   *      href: function(props, propName, componentName) {
   *        var propValue = props[propName];
   *        if (propValue != null && typeof propValue !== 'string' &&
   *            !(propValue instanceof URI)) {
   *          return new Error(
   *            'Expected a string or an URI for ' + propName + ' in ' +
   *            componentName
   *          );
   *        }
   *      }
   *    },
   *    render: function() {...}
   *  });
   *
   * @internal
   */

  var ANONYMOUS = '<<anonymous>>';

  // Important!
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  var ReactPropTypes = {
    array: createPrimitiveTypeChecker('array'),
    bool: createPrimitiveTypeChecker('boolean'),
    func: createPrimitiveTypeChecker('function'),
    number: createPrimitiveTypeChecker('number'),
    object: createPrimitiveTypeChecker('object'),
    string: createPrimitiveTypeChecker('string'),
    symbol: createPrimitiveTypeChecker('symbol'),

    any: createAnyTypeChecker(),
    arrayOf: createArrayOfTypeChecker,
    element: createElementTypeChecker(),
    elementType: createElementTypeTypeChecker(),
    instanceOf: createInstanceTypeChecker,
    node: createNodeChecker(),
    objectOf: createObjectOfTypeChecker,
    oneOf: createEnumTypeChecker,
    oneOfType: createUnionTypeChecker,
    shape: createShapeTypeChecker,
    exact: createStrictShapeTypeChecker,
  };

  /**
   * inlined Object.is polyfill to avoid requiring consumers ship their own
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
   */
  /*eslint-disable no-self-compare*/
  function is(x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  }
  /*eslint-enable no-self-compare*/

  /**
   * We use an Error-like object for backward compatibility as people may call
   * PropTypes directly and inspect their output. However, we don't use real
   * Errors anymore. We don't inspect their stack anyway, and creating them
   * is prohibitively expensive if they are created too often, such as what
   * happens in oneOfType() for any type before the one that matched.
   */
  function PropTypeError(message) {
    this.message = message;
    this.stack = '';
  }
  // Make `instanceof Error` still work for returned errors.
  PropTypeError.prototype = Error.prototype;

  function createChainableTypeChecker(validate) {
    if (true) {
      var manualPropTypeCallCache = {};
      var manualPropTypeWarningCount = 0;
    }
    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
      componentName = componentName || ANONYMOUS;
      propFullName = propFullName || propName;

      if (secret !== ReactPropTypesSecret) {
        if (throwOnDirectAccess) {
          // New behavior only for users of `prop-types` package
          var err = new Error(
            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
            'Use `PropTypes.checkPropTypes()` to call them. ' +
            'Read more at http://fb.me/use-check-prop-types'
          );
          err.name = 'Invariant Violation';
          throw err;
        } else if ( true && typeof console !== 'undefined') {
          // Old behavior for people using React.PropTypes
          var cacheKey = componentName + ':' + propName;
          if (
            !manualPropTypeCallCache[cacheKey] &&
            // Avoid spamming the console because they are often not actionable except for lib authors
            manualPropTypeWarningCount < 3
          ) {
            printWarning(
              'You are manually calling a React.PropTypes validation ' +
              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
              'and will throw in the standalone `prop-types` package. ' +
              'You may be seeing this warning due to a third-party PropTypes ' +
              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
            );
            manualPropTypeCallCache[cacheKey] = true;
            manualPropTypeWarningCount++;
          }
        }
      }
      if (props[propName] == null) {
        if (isRequired) {
          if (props[propName] === null) {
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
          }
          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
        }
        return null;
      } else {
        return validate(props, propName, componentName, location, propFullName);
      }
    }

    var chainedCheckType = checkType.bind(null, false);
    chainedCheckType.isRequired = checkType.bind(null, true);

    return chainedCheckType;
  }

  function createPrimitiveTypeChecker(expectedType) {
    function validate(props, propName, componentName, location, propFullName, secret) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== expectedType) {
        // `propValue` being instance of, say, date/regexp, pass the 'object'
        // check, but we can offer a more precise error message here rather than
        // 'of type `object`'.
        var preciseType = getPreciseType(propValue);

        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createAnyTypeChecker() {
    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
  }

  function createArrayOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
      }
      var propValue = props[propName];
      if (!Array.isArray(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
      }
      for (var i = 0; i < propValue.length; i++) {
        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
        if (error instanceof Error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!isValidElement(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!ReactIs.isValidElementType(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createInstanceTypeChecker(expectedClass) {
    function validate(props, propName, componentName, location, propFullName) {
      if (!(props[propName] instanceof expectedClass)) {
        var expectedClassName = expectedClass.name || ANONYMOUS;
        var actualClassName = getClassName(props[propName]);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createEnumTypeChecker(expectedValues) {
    if (!Array.isArray(expectedValues)) {
      if (true) {
        if (arguments.length > 1) {
          printWarning(
            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
          );
        } else {
          printWarning('Invalid argument supplied to oneOf, expected an array.');
        }
      }
      return emptyFunctionThatReturnsNull;
    }

    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      for (var i = 0; i < expectedValues.length; i++) {
        if (is(propValue, expectedValues[i])) {
          return null;
        }
      }

      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
        var type = getPreciseType(value);
        if (type === 'symbol') {
          return String(value);
        }
        return value;
      });
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createObjectOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
      }
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
      }
      for (var key in propValue) {
        if (has(propValue, key)) {
          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createUnionTypeChecker(arrayOfTypeCheckers) {
    if (!Array.isArray(arrayOfTypeCheckers)) {
       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
      return emptyFunctionThatReturnsNull;
    }

    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (typeof checker !== 'function') {
        printWarning(
          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
        );
        return emptyFunctionThatReturnsNull;
      }
    }

    function validate(props, propName, componentName, location, propFullName) {
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
          return null;
        }
      }

      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createNodeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      if (!isNode(props[propName])) {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      for (var key in shapeTypes) {
        var checker = shapeTypes[key];
        if (!checker) {
          continue;
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createStrictShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      // We need to check all keys in case some are required but missing from
      // props.
      var allKeys = assign({}, props[propName], shapeTypes);
      for (var key in allKeys) {
        var checker = shapeTypes[key];
        if (!checker) {
          return new PropTypeError(
            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
          );
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }

    return createChainableTypeChecker(validate);
  }

  function isNode(propValue) {
    switch (typeof propValue) {
      case 'number':
      case 'string':
      case 'undefined':
        return true;
      case 'boolean':
        return !propValue;
      case 'object':
        if (Array.isArray(propValue)) {
          return propValue.every(isNode);
        }
        if (propValue === null || isValidElement(propValue)) {
          return true;
        }

        var iteratorFn = getIteratorFn(propValue);
        if (iteratorFn) {
          var iterator = iteratorFn.call(propValue);
          var step;
          if (iteratorFn !== propValue.entries) {
            while (!(step = iterator.next()).done) {
              if (!isNode(step.value)) {
                return false;
              }
            }
          } else {
            // Iterator will provide entry [k,v] tuples rather than values.
            while (!(step = iterator.next()).done) {
              var entry = step.value;
              if (entry) {
                if (!isNode(entry[1])) {
                  return false;
                }
              }
            }
          }
        } else {
          return false;
        }

        return true;
      default:
        return false;
    }
  }

  function isSymbol(propType, propValue) {
    // Native Symbol.
    if (propType === 'symbol') {
      return true;
    }

    // falsy value can't be a Symbol
    if (!propValue) {
      return false;
    }

    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
    if (propValue['@@toStringTag'] === 'Symbol') {
      return true;
    }

    // Fallback for non-spec compliant Symbols which are polyfilled.
    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
      return true;
    }

    return false;
  }

  // Equivalent of `typeof` but with special handling for array and regexp.
  function getPropType(propValue) {
    var propType = typeof propValue;
    if (Array.isArray(propValue)) {
      return 'array';
    }
    if (propValue instanceof RegExp) {
      // Old webkits (at least until Android 4.0) return 'function' rather than
      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
      // passes PropTypes.object.
      return 'object';
    }
    if (isSymbol(propType, propValue)) {
      return 'symbol';
    }
    return propType;
  }

  // This handles more types than `getPropType`. Only used for error messages.
  // See `createPrimitiveTypeChecker`.
  function getPreciseType(propValue) {
    if (typeof propValue === 'undefined' || propValue === null) {
      return '' + propValue;
    }
    var propType = getPropType(propValue);
    if (propType === 'object') {
      if (propValue instanceof Date) {
        return 'date';
      } else if (propValue instanceof RegExp) {
        return 'regexp';
      }
    }
    return propType;
  }

  // Returns a string that is postfixed to a warning about an invalid type.
  // For example, "undefined" or "of type array"
  function getPostfixForTypeWarning(value) {
    var type = getPreciseType(value);
    switch (type) {
      case 'array':
      case 'object':
        return 'an ' + type;
      case 'boolean':
      case 'date':
      case 'regexp':
        return 'a ' + type;
      default:
        return type;
    }
  }

  // Returns class name of the object, if any.
  function getClassName(propValue) {
    if (!propValue.constructor || !propValue.constructor.name) {
      return ANONYMOUS;
    }
    return propValue.constructor.name;
  }

  ReactPropTypes.checkPropTypes = checkPropTypes;
  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ "../node_modules/prop-types/index.js":
/*!*******************************************!*\
  !*** ../node_modules/prop-types/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (true) {
  var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");

  // By explicitly using `prop-types` you are opting into new development behavior.
  // http://fb.me/prop-types-in-prod
  var throwOnDirectAccess = true;
  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
} else {}


/***/ }),

/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!**************************************************************!*\
  !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "../node_modules/react-is/cjs/react-is.development.js":
/*!************************************************************!*\
  !*** ../node_modules/react-is/cjs/react-is.development.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}


/***/ }),

/***/ "../node_modules/react-is/index.js":
/*!*****************************************!*\
  !*** ../node_modules/react-is/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
}


/***/ }),

/***/ "../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "polyfill": () => (/* binding */ polyfill)
/* harmony export */ });
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

function componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  }
  // Binding "this" is important for shallow renderer support.
  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
      prevProps,
      prevState
    );
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
}

// React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.
componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill(Component) {
  var prototype = Component.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (
    typeof Component.getDerivedStateFromProps !== 'function' &&
    typeof prototype.getSnapshotBeforeUpdate !== 'function'
  ) {
    return Component;
  }

  // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.
  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;
  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }
  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }
  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }
  if (
    foundWillMountName !== null ||
    foundWillReceivePropsName !== null ||
    foundWillUpdateName !== null
  ) {
    var componentName = Component.displayName || Component.name;
    var newApiName =
      typeof Component.getDerivedStateFromProps === 'function'
        ? 'getDerivedStateFromProps()'
        : 'getSnapshotBeforeUpdate()';

    throw Error(
      'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
        componentName +
        ' uses ' +
        newApiName +
        ' but also contains the following legacy lifecycles:' +
        (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') +
        (foundWillReceivePropsName !== null
          ? '\n  ' + foundWillReceivePropsName
          : '') +
        (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') +
        '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
        'https://fb.me/react-async-component-lifecycle-hooks'
    );
  }

  // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.
  if (typeof Component.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  }

  // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.
  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error(
        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
      );
    }

    prototype.componentWillUpdate = componentWillUpdate;

    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(
      prevProps,
      prevState,
      maybeSnapshot
    ) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag
        ? this.__reactInternalSnapshot
        : maybeSnapshot;

      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component;
}




/***/ }),

/***/ "../node_modules/warning/warning.js":
/*!******************************************!*\
  !*** ../node_modules/warning/warning.js ***!
  \******************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var __DEV__ = "development" !== 'production';

var warning = function() {};

if (__DEV__) {
  var printWarning = function printWarning(format, args) {
    var len = arguments.length;
    args = new Array(len > 1 ? len - 1 : 0);
    for (var key = 1; key < len; key++) {
      args[key - 1] = arguments[key];
    }
    var argIndex = 0;
    var message = 'Warning: ' +
      format.replace(/%s/g, function() {
        return args[argIndex++];
      });
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  }

  warning = function(condition, format, args) {
    var len = arguments.length;
    args = new Array(len > 2 ? len - 2 : 0);
    for (var key = 2; key < len; key++) {
      args[key - 2] = arguments[key];
    }
    if (format === undefined) {
      throw new Error(
          '`warning(condition, format, ...args)` requires a warning ' +
          'message argument'
      );
    }
    if (!condition) {
      printWarning.apply(null, [format].concat(args));
    }
  };
}

module.exports = warning;


/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/***/ ((module) => {

"use strict";
module.exports = React;

/***/ }),

/***/ "@elementor/app-ui":
/*!*********************************************!*\
  !*** external "elementorAppPackages.appUi" ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
module.exports = elementorAppPackages.appUi;

/***/ }),

/***/ "@elementor/router":
/*!**********************************************!*\
  !*** external "elementorAppPackages.router" ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
module.exports = elementorAppPackages.router;

/***/ }),

/***/ "@elementor/site-editor":
/*!**************************************************!*\
  !*** external "elementorAppPackages.siteEditor" ***!
  \**************************************************/
/***/ ((module) => {

"use strict";
module.exports = elementorAppPackages.siteEditor;

/***/ }),

/***/ "@wordpress/i18n":
/*!**************************!*\
  !*** external "wp.i18n" ***!
  \**************************/
/***/ ((module) => {

"use strict";
module.exports = wp.i18n;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";
/*!**************************************!*\
  !*** ../core/app/assets/js/index.js ***!
  \**************************************/


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _siteEditor = _interopRequireDefault(__webpack_require__(/*! ../../modules/site-editor/assets/js/site-editor */ "../core/app/modules/site-editor/assets/js/site-editor.js"));

new _siteEditor.default();
})();

/******/ })()
;
//# sourceMappingURL=app.js.mapPK!��*�*�assets/js/custom-code.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js":
/*!********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/from.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/from */ "../node_modules/core-js/library/fn/array/from.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/array/is-array */ "../node_modules/core-js/library/fn/array/is-array.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/json/stringify */ "../node_modules/core-js/library/fn/json/stringify.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/assign.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/assign */ "../node_modules/core-js/library/fn/object/assign.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-properties */ "../node_modules/core-js/library/fn/object/define-properties.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js":
/*!********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js":
/*!*********************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptors */ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js ***!
  \*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-own-property-symbols */ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/keys.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/keys */ "../node_modules/core-js/library/fn/object/keys.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/values.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/values */ "../node_modules/core-js/library/fn/object/values.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/promise.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/promise.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/promise */ "../node_modules/core-js/library/fn/promise.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/weak-map.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/weak-map */ "../node_modules/core-js/library/fn/weak-map.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js ***!
  \**************************************************************************/
/***/ ((module) => {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

function _arrayWithHoles(arr) {
  if (_Array$isArray(arr)) return arr;
}

module.exports = _arrayWithHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$isArray = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _arrayWithoutHoles(arr) {
  if (_Array$isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js":
/*!**************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Promise = __webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js");

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    _Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new _Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

module.exports = _asyncToGenerator;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperty(obj, key, value) {
  if (key in obj) {
    _Object$defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/extends.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/extends.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$assign = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js");

function _extends() {
  module.exports = _extends = _Object$assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _extends.apply(this, arguments);
}

module.exports = _extends;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var _WeakMap = __webpack_require__(/*! @babel/runtime-corejs2/core-js/weak-map */ "../node_modules/@babel/runtime-corejs2/core-js/weak-map.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

function _getRequireWildcardCache(nodeInterop) {
  if (typeof _WeakMap !== "function") return null;
  var cacheBabelInterop = new _WeakMap();
  var cacheNodeInterop = new _WeakMap();
  return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
    return {
      "default": obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        _Object$defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj["default"] = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

module.exports = _interopRequireWildcard;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

function _iterableToArray(iter) {
  if (typeof _Symbol !== "undefined" && iter[_Symbol$iterator] != null || iter["@@iterator"] != null) return _Array$from(iter);
}

module.exports = _iterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js":
/*!******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js ***!
  \******************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _iterableToArrayLimit(arr, i) {
  var _i = arr && (typeof _Symbol !== "undefined" && arr[_Symbol$iterator] || arr["@@iterator"]);

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

module.exports = _iterableToArrayLimit;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js ***!
  \*************************************************************************/
/***/ ((module) => {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableRest;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js ***!
  \***************************************************************************/
/***/ ((module) => {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$keys = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js");

var _Object$getOwnPropertySymbols = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-symbols */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-symbols.js");

var _Object$getOwnPropertyDescriptor = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptor */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js");

var _Object$getOwnPropertyDescriptors = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-own-property-descriptors */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptors.js");

var _Object$defineProperties = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-properties */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-properties.js");

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var defineProperty = __webpack_require__(/*! ./defineProperty.js */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js");

function ownKeys(object, enumerableOnly) {
  var keys = _Object$keys(object);

  if (_Object$getOwnPropertySymbols) {
    var symbols = _Object$getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return _Object$getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        defineProperty(target, key, source[key]);
      });
    } else if (_Object$getOwnPropertyDescriptors) {
      _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

module.exports = _objectSpread2;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithHoles.js");

var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArrayLimit.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.js");

function _slicedToArray(arr, i) {
  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}

module.exports = _slicedToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js");

var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js");

var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js");

var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ "../node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js":
/*!************************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/unsupportedIterableToArray.js ***!
  \************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Array$from = __webpack_require__(/*! @babel/runtime-corejs2/core-js/array/from */ "../node_modules/@babel/runtime-corejs2/core-js/array/from.js");

var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime-corejs2/helpers/arrayLikeToArray.js");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return _Array$from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime/regenerator/index.js":
/*!***********************************************************!*\
  !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! regenerator-runtime */ "../node_modules/regenerator-runtime/runtime.js");


/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/base-context.js":
/*!*************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/base-context.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var React = __webpack_require__(/*! react */ "react");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.BaseContext = void 0;

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var BaseContext = /*#__PURE__*/function (_React$Component) {
  (0, _inherits2.default)(BaseContext, _React$Component);

  var _super = (0, _createSuper2.default)(BaseContext);

  function BaseContext(props) {
    var _this;

    (0, _classCallCheck2.default)(this, BaseContext);
    _this = _super.call(this, props);
    _this.state = {
      action: {
        current: null,
        loading: false,
        error: null,
        errorMeta: {}
      },
      updateActionState: _this.updateActionState.bind((0, _assertThisInitialized2.default)(_this)),
      resetActionState: _this.resetActionState.bind((0, _assertThisInitialized2.default)(_this))
    };
    return _this;
  }

  (0, _createClass2.default)(BaseContext, [{
    key: "executeAction",
    value: function executeAction(name, handler) {
      var _this2 = this;

      this.updateActionState({
        current: name,
        loading: true,
        error: null,
        errorMeta: {}
      });
      return handler().then(function (response) {
        _this2.resetActionState();

        return _promise.default.resolve(response);
      }).catch(function (error) {
        _this2.updateActionState({
          current: name,
          loading: false,
          error: error.message,
          errorMeta: error
        });

        return _promise.default.reject(error);
      });
    }
  }, {
    key: "updateActionState",
    value: function updateActionState(data) {
      return this.setState(function (prev) {
        return {
          action: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev.action), data)
        };
      });
    }
  }, {
    key: "resetActionState",
    value: function resetActionState() {
      this.updateActionState({
        current: null,
        loading: false,
        error: null,
        errorMeta: {}
      });
    }
  }]);
  return BaseContext;
}(React.Component);

exports.BaseContext = BaseContext;
var _default = BaseContext;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/conditions.js":
/*!***********************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/conditions.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsProvider = exports.Context = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.regexp.to-string.js */ "../node_modules/core-js/modules/es6.regexp.to-string.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

__webpack_require__(/*! core-js/modules/es6.array.find.js */ "../node_modules/core-js/modules/es6.array.find.js");

var _objectSpread5 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _condition = _interopRequireDefault(__webpack_require__(/*! ./models/condition */ "../core/app/modules/site-editor/assets/js/context/models/condition.js"));

var _conditionsConfig = _interopRequireDefault(__webpack_require__(/*! ./services/conditions-config */ "../core/app/modules/site-editor/assets/js/context/services/conditions-config.js"));

var _baseContext = _interopRequireDefault(__webpack_require__(/*! ./base-context */ "../core/app/modules/site-editor/assets/js/context/base-context.js"));

var _commands = __webpack_require__(/*! ../data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var Context = _react.default.createContext();

exports.Context = Context;

var ConditionsProvider = /*#__PURE__*/function (_BaseContext) {
  (0, _inherits2.default)(ConditionsProvider, _BaseContext);

  var _super = (0, _createSuper2.default)(ConditionsProvider);

  /**
   * Holds the conditions config object.
   *
   * @type {ConditionsConfig}
   */

  /**
   * ConditionsProvider constructor.
   *
   * @param {any} props
   */
  function ConditionsProvider(props) {
    var _this;

    (0, _classCallCheck2.default)(this, ConditionsProvider);
    _this = _super.call(this, props);
    (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "conditionsConfig", null);
    _this.state = (0, _objectSpread5.default)((0, _objectSpread5.default)({}, _this.state), {}, {
      conditions: {},
      updateConditionItemState: _this.updateConditionItemState.bind((0, _assertThisInitialized2.default)(_this)),
      removeConditionItemInState: _this.removeConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      createConditionItemInState: _this.createConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      findConditionItemInState: _this.findConditionItemInState.bind((0, _assertThisInitialized2.default)(_this)),
      saveConditions: _this.saveConditions.bind((0, _assertThisInitialized2.default)(_this))
    });
    return _this;
  }
  /**
   * Fetch the conditions config, then normalize the conditions and then setup titles for
   * the subIds.
   */


  (0, _createClass2.default)(ConditionsProvider, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this2 = this;

      this.executeAction(ConditionsProvider.actions.FETCH_CONFIG, function () {
        return _conditionsConfig.default.create();
      }).then(function (conditionsConfig) {
        return _this2.conditionsConfig = conditionsConfig;
      }).then(this.normalizeConditionsState.bind(this)).then(this.setSubIdTitles.bind(this));
    }
    /**
     * Execute a request to save the template conditions.
     *
     * @return {any} -
     */

  }, {
    key: "saveConditions",
    value: function saveConditions() {
      var _this3 = this;

      var conditions = (0, _values.default)(this.state.conditions).map(function (condition) {
        return condition.forDb();
      });
      return this.executeAction(ConditionsProvider.actions.SAVE, function () {
        return $e.data.update(_commands.TemplatesConditions.signature, {
          conditions: conditions
        }, {
          id: _this3.props.currentTemplate.id
        });
      }).then(function () {
        var contextConditions = (0, _values.default)(_this3.state.conditions).map(function (condition) {
          return condition.forContext();
        });

        _this3.props.onConditionsSaved(_this3.props.currentTemplate.id, {
          conditions: contextConditions,
          instances: _this3.conditionsConfig.calculateInstances((0, _values.default)(_this3.state.conditions)),
          isActive: !!((0, _keys.default)(_this3.state.conditions).length && 'publish' === _this3.props.currentTemplate.status)
        });
      });
    }
    /**
     * Check for conflicts in the server and mark the condition if there
     * is a conflict.
     *
     * @param {any} condition
     */

  }, {
    key: "checkConflicts",
    value: function checkConflicts(condition) {
      var _this4 = this;

      return this.executeAction(ConditionsProvider.actions.CHECK_CONFLICTS, function () {
        return $e.data.get(_commands.TemplatesConditionsConflicts.signature, {
          post_id: _this4.props.currentTemplate.id,
          condition: condition.clone().toString()
        });
      }).then(function (response) {
        return _this4.updateConditionItemState(condition.id, {
          conflictErrors: (0, _values.default)(response.data)
        }, false);
      });
    }
    /**
     * Fetching subId titles.
     *
     * @param {any} condition
     * @return {Promise<unknown>} -
     */

  }, {
    key: "fetchSubIdsTitles",
    value: function fetchSubIdsTitles(condition) {
      return new _promise.default(function (resolve) {
        return elementorCommon.ajax.loadObjects({
          action: 'query_control_value_titles',
          ids: _.isArray(condition.subId) ? condition.subId : [condition.subId],
          data: {
            get_titles: condition.subIdAutocomplete,
            unique_id: elementorCommon.helpers.getUniqueId()
          },
          success: function success(response) {
            resolve(response);
          }
        });
      });
    }
    /**
     * Get the conditions from the template and normalize it to data structure
     * that the components can work with.
     */

  }, {
    key: "normalizeConditionsState",
    value: function normalizeConditionsState() {
      var _this5 = this;

      this.updateConditionsState(function () {
        return _this5.props.currentTemplate.conditions.reduce(function (current, condition) {
          var conditionObj = new _condition.default((0, _objectSpread5.default)((0, _objectSpread5.default)({}, condition), {}, {
            default: _this5.props.currentTemplate.defaultCondition,
            options: _this5.conditionsConfig.getOptions(),
            subOptions: _this5.conditionsConfig.getSubOptions(condition.name),
            subIdAutocomplete: _this5.conditionsConfig.getSubIdAutocomplete(condition.sub),
            supIdOptions: condition.subId ? [{
              value: condition.subId,
              label: condition.subId
            }] : []
          }));
          return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, current), {}, (0, _defineProperty2.default)({}, conditionObj.id, conditionObj));
        }, {});
      }).then(function () {
        (0, _values.default)(_this5.state.conditions).forEach(function (condition) {
          return _this5.checkConflicts(condition);
        });
      });
    }
    /**
     * Set titles to the subIds,
     * for the first render of the component.
     */

  }, {
    key: "setSubIdTitles",
    value: function setSubIdTitles() {
      var _this6 = this;

      return (0, _values.default)(this.state.conditions).forEach(function (condition) {
        if (!condition.subId) {
          return;
        }

        return _this6.fetchSubIdsTitles(condition).then(function (response) {
          return _this6.updateConditionItemState(condition.id, {
            subIdOptions: [{
              label: (0, _values.default)(response)[0],
              value: condition.subId
            }]
          }, false);
        });
      });
    }
    /**
     * Update state of specific condition item.
     *
     * @param {any} id
     * @param {any} args
     * @param {boolean} shouldCheckConflicts
     */

  }, {
    key: "updateConditionItemState",
    value: function updateConditionItemState(id, args) {
      var _this7 = this;

      var shouldCheckConflicts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;

      if (args.name) {
        args.subOptions = this.conditionsConfig.getSubOptions(args.name);
      }

      if (args.sub || args.name) {
        args.subIdAutocomplete = this.conditionsConfig.getSubIdAutocomplete(args.sub); // In case that the condition has been changed, it will set the options of the subId
        // to empty array to let select2 autocomplete handle the options.

        args.subIdOptions = [];
      }

      this.updateConditionsState(function (prev) {
        var condition = prev[id];
        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, (0, _defineProperty2.default)({}, id, condition.clone().set(args)));
      }).then(function () {
        if (shouldCheckConflicts) {
          _this7.checkConflicts(_this7.findConditionItemInState(id));
        }
      });
    }
    /**
     * Remove a condition item from the state.
     *
     * @param {any} id
     */

  }, {
    key: "removeConditionItemInState",
    value: function removeConditionItemInState(id) {
      this.updateConditionsState(function (prev) {
        var newConditions = (0, _objectSpread5.default)({}, prev);
        delete newConditions[id];
        return newConditions;
      });
    }
    /**
     * Add a new condition item into the state.
     *
     * @param {boolean} shouldCheckConflicts
     */

  }, {
    key: "createConditionItemInState",
    value: function createConditionItemInState() {
      var _this8 = this;

      var shouldCheckConflicts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
      var defaultCondition = this.props.currentTemplate.defaultCondition,
          newCondition = new _condition.default({
        name: defaultCondition,
        default: defaultCondition,
        options: this.conditionsConfig.getOptions(),
        subOptions: this.conditionsConfig.getSubOptions(defaultCondition),
        subIdAutocomplete: this.conditionsConfig.getSubIdAutocomplete('')
      });
      this.updateConditionsState(function (prev) {
        return (0, _objectSpread5.default)((0, _objectSpread5.default)({}, prev), {}, (0, _defineProperty2.default)({}, newCondition.id, newCondition));
      }).then(function () {
        if (shouldCheckConflicts) {
          _this8.checkConflicts(newCondition);
        }
      });
    }
    /**
     * Find a condition item from the conditions state.
     *
     * @param {any} id
     * @return {Condition|null} -
     */

  }, {
    key: "findConditionItemInState",
    value: function findConditionItemInState(id) {
      return (0, _values.default)(this.state.conditions).find(function (c) {
        return c.id === id;
      });
    }
    /**
     * Update the whole conditions state.
     *
     * @param {Function} callback
     * @return {Promise<any>} -
     */

  }, {
    key: "updateConditionsState",
    value: function updateConditionsState(callback) {
      var _this9 = this;

      return new _promise.default(function (resolve) {
        return _this9.setState(function (prev) {
          return {
            conditions: callback(prev.conditions)
          };
        }, resolve);
      });
    }
    /**
     * Renders the provider.
     *
     * @return {any} -
     */

  }, {
    key: "render",
    value: function render() {
      if (this.state.action.current === ConditionsProvider.actions.FETCH_CONFIG) {
        if (this.state.error) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Error:', 'elementor-pro'), " ", this.state.error);
        }

        if (this.state.loading) {
          return /*#__PURE__*/_react.default.createElement("h3", null, __('Loading', 'elementor-pro'), "...");
        }
      }

      return /*#__PURE__*/_react.default.createElement(Context.Provider, {
        value: this.state
      }, this.props.children);
    }
  }]);
  return ConditionsProvider;
}(_baseContext.default);

exports.ConditionsProvider = ConditionsProvider;
(0, _defineProperty2.default)(ConditionsProvider, "propTypes", {
  children: PropTypes.any.isRequired,
  currentTemplate: PropTypes.object.isRequired,
  onConditionsSaved: PropTypes.func.isRequired,
  validateConflicts: PropTypes.bool
});
(0, _defineProperty2.default)(ConditionsProvider, "defaultProps", {
  validateConflicts: true
});
(0, _defineProperty2.default)(ConditionsProvider, "actions", {
  FETCH_CONFIG: 'fetch-config',
  SAVE: 'save',
  CHECK_CONFLICTS: 'check-conflicts'
});
var _default = ConditionsProvider;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/models/condition.js":
/*!*****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/models/condition.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es6.array.filter.js */ "../node_modules/core-js/modules/es6.array.filter.js");

__webpack_require__(/*! core-js/modules/es6.string.includes.js */ "../node_modules/core-js/modules/es6.string.includes.js");

__webpack_require__(/*! core-js/modules/es7.array.includes.js */ "../node_modules/core-js/modules/es7.array.includes.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _assign = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/assign */ "../node_modules/@babel/runtime-corejs2/core-js/object/assign.js"));

var _isArray = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/array/is-array */ "../node_modules/@babel/runtime-corejs2/core-js/array/is-array.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var Condition = /*#__PURE__*/function () {
  function Condition(args) {
    (0, _classCallCheck2.default)(this, Condition);
    (0, _defineProperty2.default)(this, "id", elementorCommon.helpers.getUniqueId());
    (0, _defineProperty2.default)(this, "default", '');
    (0, _defineProperty2.default)(this, "type", 'include');
    (0, _defineProperty2.default)(this, "name", '');
    (0, _defineProperty2.default)(this, "sub", '');
    (0, _defineProperty2.default)(this, "subId", '');
    (0, _defineProperty2.default)(this, "options", []);
    (0, _defineProperty2.default)(this, "subOptions", []);
    (0, _defineProperty2.default)(this, "subIdAutocomplete", []);
    (0, _defineProperty2.default)(this, "subIdOptions", []);
    (0, _defineProperty2.default)(this, "conflictErrors", []);
    this.set(args);
  }

  (0, _createClass2.default)(Condition, [{
    key: "set",
    value: function set(args) {
      (0, _assign.default)(this, args);
      return this;
    }
  }, {
    key: "clone",
    value: function clone() {
      return (0, _assign.default)(new Condition(), this);
    }
  }, {
    key: "remove",
    value: function remove(keys) {
      var _this = this;

      if (!(0, _isArray.default)(keys)) {
        keys = [keys];
      }

      keys.forEach(function (key) {
        delete _this[key];
      });
      return this;
    }
  }, {
    key: "only",
    value: function only(keys) {
      if (!(0, _isArray.default)(keys)) {
        keys = [keys];
      }

      var keysToRemove = (0, _keys.default)(this).filter(function (conditionKey) {
        return !keys.includes(conditionKey);
      });
      this.remove(keysToRemove);
      return this;
    }
  }, {
    key: "toJson",
    value: function toJson() {
      return (0, _stringify.default)(this);
    }
  }, {
    key: "toString",
    value: function toString() {
      return this.forDb().filter(function (item) {
        return item;
      }).join('/');
    }
  }, {
    key: "forDb",
    value: function forDb() {
      return [this.type, this.name, this.sub, this.subId];
    }
  }, {
    key: "forContext",
    value: function forContext() {
      return {
        type: this.type,
        name: this.name,
        sub: this.sub,
        subId: this.subId
      };
    }
  }]);
  return Condition;
}();

exports.default = Condition;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/context/services/conditions-config.js":
/*!***************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/context/services/conditions-config.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsConfig = void 0;

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

var _promise = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/promise */ "../node_modules/@babel/runtime-corejs2/core-js/promise.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _objectSpread3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js"));

var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/toConsumableArray */ "../node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var _commands = __webpack_require__(/*! ../../data/commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js");

var ConditionsConfig = /*#__PURE__*/function () {
  function ConditionsConfig(config) {
    (0, _classCallCheck2.default)(this, ConditionsConfig);
    (0, _defineProperty2.default)(this, "config", null);
    this.config = config;
  }
  /**
   * @return {Promise<ConditionsConfig>} -
   */


  (0, _createClass2.default)(ConditionsConfig, [{
    key: "getOptions",
    value:
    /**
     * Get main options for condition name.
     *
     * @return {Array} -
     */
    function getOptions() {
      return this.getSubOptions('general', true).map(function (_ref) {
        var label = _ref.label,
            value = _ref.value;
        return {
          label: label,
          value: value
        };
      });
    }
    /**
     * Get the sub options for the select.
     *
     * @param {string} itemName
     * @param {boolean} isSubItem
     * @return {Array} -
     */

  }, {
    key: "getSubOptions",
    value: function getSubOptions(itemName) {
      var _this = this;

      var isSubItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var config = this.config[itemName];

      if (!config) {
        return [];
      }

      return [{
        label: config.all_label,
        value: isSubItem ? itemName : ''
      }].concat((0, _toConsumableArray2.default)(config.sub_conditions.map(function (subName) {
        var subConfig = _this.config[subName];
        return {
          label: subConfig.label,
          value: subName,
          children: subConfig.sub_conditions.length ? _this.getSubOptions(subName, true) : null
        };
      })));
    }
    /**
     * Get the autocomplete property from the conditions config
     *
     * @param {string} sub
     * @return {{}|any} -
     */

  }, {
    key: "getSubIdAutocomplete",
    value: function getSubIdAutocomplete(sub) {
      var _controls$;

      var config = this.config[sub];

      if (!config || !('object' === (0, _typeof2.default)(config.controls))) {
        return {};
      }

      var controls = (0, _values.default)(config.controls);

      if (!(controls !== null && controls !== void 0 && (_controls$ = controls[0]) !== null && _controls$ !== void 0 && _controls$.autocomplete)) {
        return {};
      }

      return controls[0].autocomplete;
    }
    /**
     * Calculate instances from the conditions.
     *
     * @param {Array} conditions
     * @return {Object} -
     */

  }, {
    key: "calculateInstances",
    value: function calculateInstances(conditions) {
      var _this2 = this;

      var instances = conditions.reduce(function (current, condition) {
        if ('exclude' === condition.type) {
          return current;
        }

        var key = condition.sub || condition.name,
            config = _this2.config[key];

        if (!config) {
          return current;
        }

        var instanceLabel = condition.subId ? "".concat(config.label, " #").concat(condition.subId) : config.all_label;
        return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, current), {}, (0, _defineProperty2.default)({}, key, instanceLabel));
      }, {});

      if (0 === (0, _keys.default)(instances).length) {
        instances = [__('No instances', 'elementor-pro')];
      }

      return instances;
    }
  }], [{
    key: "create",
    value: function create() {
      if (ConditionsConfig.instance) {
        return _promise.default.resolve(ConditionsConfig.instance);
      }

      return $e.data.get(_commands.ConditionsConfig.signature).then(function (response) {
        ConditionsConfig.instance = new ConditionsConfig(response.data);
        return ConditionsConfig.instance;
      });
    }
  }]);
  return ConditionsConfig;
}();

exports.ConditionsConfig = ConditionsConfig;
(0, _defineProperty2.default)(ConditionsConfig, "instance", void 0);
var _default = ConditionsConfig;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.ConditionsConfig = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var ConditionsConfig = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(ConditionsConfig, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(ConditionsConfig);

  function ConditionsConfig() {
    (0, _classCallCheck2.default)(this, ConditionsConfig);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(ConditionsConfig, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/conditions-config/{id}';
    }
  }]);
  return ConditionsConfig;
}($e.modules.CommandData);

exports.ConditionsConfig = ConditionsConfig;
(0, _defineProperty2.default)(ConditionsConfig, "signature", 'site-editor/conditions-config');
var _default = ConditionsConfig;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/index.js":
/*!************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

_Object$defineProperty(exports, "Templates", {
  enumerable: true,
  get: function get() {
    return _templates.Templates;
  }
});

_Object$defineProperty(exports, "ConditionsConfig", {
  enumerable: true,
  get: function get() {
    return _conditionsConfig.ConditionsConfig;
  }
});

_Object$defineProperty(exports, "TemplatesConditions", {
  enumerable: true,
  get: function get() {
    return _templatesConditions.TemplatesConditions;
  }
});

_Object$defineProperty(exports, "TemplatesConditionsConflicts", {
  enumerable: true,
  get: function get() {
    return _templatesConditionsConflicts.TemplatesConditionsConflicts;
  }
});

var _templates = __webpack_require__(/*! ./templates */ "../core/app/modules/site-editor/assets/js/data/commands/templates.js");

var _conditionsConfig = __webpack_require__(/*! ./conditions-config */ "../core/app/modules/site-editor/assets/js/data/commands/conditions-config.js");

var _templatesConditions = __webpack_require__(/*! ./templates-conditions */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js");

var _templatesConditionsConflicts = __webpack_require__(/*! ./templates-conditions-conflicts */ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js");

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js":
/*!*************************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditionsConflicts = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditionsConflicts = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditionsConflicts, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditionsConflicts);

  function TemplatesConditionsConflicts() {
    (0, _classCallCheck2.default)(this, TemplatesConditionsConflicts);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditionsConflicts, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return "".concat(TemplatesConditionsConflicts.signature, "/{id}");
    }
  }]);
  return TemplatesConditionsConflicts;
}($e.modules.CommandData);

exports.TemplatesConditionsConflicts = TemplatesConditionsConflicts;
(0, _defineProperty2.default)(TemplatesConditionsConflicts, "signature", 'site-editor/templates-conditions-conflicts');
var _default = TemplatesConditionsConflicts;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js":
/*!***************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.TemplatesConditions = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var TemplatesConditions = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(TemplatesConditions, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(TemplatesConditions);

  function TemplatesConditions() {
    (0, _classCallCheck2.default)(this, TemplatesConditions);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(TemplatesConditions, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates-conditions/{id}';
    }
  }]);
  return TemplatesConditions;
}($e.modules.CommandData);

exports.TemplatesConditions = TemplatesConditions;
(0, _defineProperty2.default)(TemplatesConditions, "signature", 'site-editor/templates-conditions');
var _default = TemplatesConditions;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/commands/templates.js":
/*!****************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/commands/templates.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = exports.Templates = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var Templates = /*#__PURE__*/function (_$e$modules$CommandDa) {
  (0, _inherits2.default)(Templates, _$e$modules$CommandDa);

  var _super = (0, _createSuper2.default)(Templates);

  function Templates() {
    (0, _classCallCheck2.default)(this, Templates);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Templates, null, [{
    key: "getEndpointFormat",
    value: function getEndpointFormat() {
      return 'site-editor/templates/{id}';
    }
  }]);
  return Templates;
}($e.modules.CommandData);

exports.Templates = Templates;
(0, _defineProperty2.default)(Templates, "signature", 'site-editor/templates');
var _default = Templates;
exports.default = _default;

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/data/component.js":
/*!*******************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/data/component.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/defineProperty */ "../node_modules/@babel/runtime-corejs2/helpers/defineProperty.js"));

var dataCommands = _interopRequireWildcard(__webpack_require__(/*! ./commands */ "../core/app/modules/site-editor/assets/js/data/commands/index.js"));

var Component = /*#__PURE__*/function (_$e$modules$Component) {
  (0, _inherits2.default)(Component, _$e$modules$Component);

  var _super = (0, _createSuper2.default)(Component);

  function Component() {
    (0, _classCallCheck2.default)(this, Component);
    return _super.apply(this, arguments);
  }

  (0, _createClass2.default)(Component, [{
    key: "getNamespace",
    value: function getNamespace() {
      return this.constructor.namespace;
    }
  }, {
    key: "defaultData",
    value: function defaultData() {
      return this.importCommands(dataCommands);
    }
  }]);
  return Component;
}($e.modules.ComponentBase);

exports.default = Component;
(0, _defineProperty2.default)(Component, "namespace", 'site-editor');

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js":
/*!*****************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionConflicts;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionConflicts(props) {
  if (!props.conflicts.length) {
    return '';
  }

  var conflictLinks = props.conflicts.map(function (conflict) {
    return /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      key: conflict.template_id,
      target: "_blank",
      url: conflict.edit_url,
      text: conflict.template_title
    });
  });
  return /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    className: "e-site-editor-conditions__conflict",
    variant: "sm"
  }, __('Elementor recognized that you have set this location for other templates: ', 'elementor-pro'), " ", conflictLinks);
}

ConditionConflicts.propTypes = {
  conflicts: PropTypes.array.isRequired
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionName;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionName(props) {
  // Hide for template types that has another default, like single & archive.
  if ('general' !== props.default) {
    return '';
  }

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      name: e.target.value,
      sub: '',
      subId: ''
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: props.options,
    value: props.name,
    onChange: onChange
  }));
}

ConditionName.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  options: PropTypes.array.isRequired,
  default: PropTypes.string.isRequired
};
ConditionName.defaultProps = {
  name: ''
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js":
/*!**************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionSubId;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _keys = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/keys */ "../node_modules/@babel/runtime-corejs2/core-js/object/keys.js"));

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

/**
 * Main component.
 *
 * @param {any} props
 * @return {any} -
 * @class
 */
function ConditionSubId(props) {
  if (!props.sub || !(0, _keys.default)(props.subIdAutocomplete).length) {
    return '';
  }

  var settings = _react.default.useMemo(function () {
    return getSettings(props.subIdAutocomplete);
  }, [props.subIdAutocomplete]);

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      subId: e.target.value
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select2, {
    onChange: onChange,
    value: props.subId,
    settings: settings,
    options: props.subIdOptions
  }));
}
/**
 * Get settings for the select2 base on the autocomplete settings,
 * that passes as a prop
 *
 * @param {any} autocomplete
 * @return {Object} -
 */


function getSettings(autocomplete) {
  return {
    allowClear: false,
    placeholder: __('All', 'elementor-pro'),
    dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr',
    ajax: {
      transport: function transport(params, success, failure) {
        return elementorCommon.ajax.addRequest('pro_panel_posts_control_filter_autocomplete', {
          data: {
            q: params.data.q,
            autocomplete: autocomplete
          },
          success: success,
          error: failure
        });
      },
      data: function data(params) {
        return {
          q: params.term,
          page: params.page
        };
      },
      cache: true
    },
    escapeMarkup: function escapeMarkup(markup) {
      return markup;
    },
    minimumInputLength: 1
  };
}

ConditionSubId.propTypes = {
  subIdAutocomplete: PropTypes.object,
  id: PropTypes.string.isRequired,
  sub: PropTypes.string,
  subId: PropTypes.string,
  updateConditions: PropTypes.func,
  subIdOptions: PropTypes.array
};
ConditionSubId.defaultProps = {
  subId: '',
  subIdOptions: []
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js":
/*!***********************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionSub;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

__webpack_require__(/*! core-js/modules/es6.string.sub.js */ "../node_modules/core-js/modules/es6.string.sub.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionSub(props) {
  if ('general' === props.name || !props.subOptions.length) {
    return '';
  }

  var onChange = function onChange(e) {
    return props.updateConditions(props.id, {
      sub: e.target.value,
      subId: ''
    });
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: props.subOptions,
    value: props.sub,
    onChange: onChange
  }));
}

ConditionSub.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  name: PropTypes.string.isRequired,
  sub: PropTypes.string.isRequired,
  subOptions: PropTypes.array.isRequired
};
ConditionSub.defaultProps = {
  sub: '',
  subOptions: {}
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js":
/*!************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionType;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

function ConditionType(props) {
  var wrapperRef = _react.default.createRef();

  var options = [{
    label: __('Include', 'elementor-pro'),
    value: 'include'
  }, {
    label: __('Exclude', 'elementor-pro'),
    value: 'exclude'
  }];

  var onChange = function onChange(e) {
    props.updateConditions(props.id, {
      type: e.target.value
    });
  };

  _react.default.useEffect(function () {
    wrapperRef.current.setAttribute('data-elementor-condition-type', props.type);
  });

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__input-wrapper e-site-editor-conditions__input-wrapper--condition-type",
    ref: wrapperRef
  }, /*#__PURE__*/_react.default.createElement(_appUi.Select, {
    options: options,
    value: props.type,
    onChange: onChange
  }));
}

ConditionType.propTypes = {
  updateConditions: PropTypes.func.isRequired,
  id: PropTypes.string.isRequired,
  type: PropTypes.string.isRequired
};
ConditionType.defaultProps = {
  type: ''
};

/***/ }),

/***/ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js":
/*!*************************************************************************************!*\
  !*** ../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionsRows;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/extends */ "../node_modules/@babel/runtime-corejs2/helpers/extends.js"));

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

var _conditions = __webpack_require__(/*! ../../context/conditions */ "../core/app/modules/site-editor/assets/js/context/conditions.js");

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _conditionType = _interopRequireDefault(__webpack_require__(/*! ./condition-type */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-type.js"));

var _conditionName = _interopRequireDefault(__webpack_require__(/*! ./condition-name */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-name.js"));

var _conditionSub = _interopRequireDefault(__webpack_require__(/*! ./condition-sub */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.js"));

var _conditionSubId = _interopRequireDefault(__webpack_require__(/*! ./condition-sub-id */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.js"));

var _conditionConflicts = _interopRequireDefault(__webpack_require__(/*! ./condition-conflicts */ "../core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.js"));

function ConditionsRows(props) {
  var _React$useContext = _react.default.useContext(_conditions.Context),
      conditions = _React$useContext.conditions,
      create = _React$useContext.createConditionItemInState,
      update = _React$useContext.updateConditionItemState,
      remove = _React$useContext.removeConditionItemInState,
      save = _React$useContext.saveConditions,
      action = _React$useContext.action,
      resetActionState = _React$useContext.resetActionState;

  var rows = (0, _values.default)(conditions).map(function (condition) {
    return /*#__PURE__*/_react.default.createElement("div", {
      key: condition.id
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row-controls ".concat(condition.conflictErrors.length && 'e-site-editor-conditions__row-controls--error')
    }, /*#__PURE__*/_react.default.createElement(_conditionType.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement("div", {
      className: "e-site-editor-conditions__row-controls-inner"
    }, /*#__PURE__*/_react.default.createElement(_conditionName.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement(_conditionSub.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })), /*#__PURE__*/_react.default.createElement(_conditionSubId.default, (0, _extends2.default)({}, condition, {
      updateConditions: update
    })))), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
      className: "e-site-editor-conditions__remove-condition",
      text: __('Delete', 'elementor-pro'),
      icon: "eicon-close",
      hideText: true,
      onClick: function onClick() {
        return remove(condition.id);
      }
    })), /*#__PURE__*/_react.default.createElement(_conditionConflicts.default, {
      conflicts: condition.conflictErrors
    }));
  });
  var isSaving = action.current === _conditions.ConditionsProvider.actions.SAVE && action.loading;
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, action.error && /*#__PURE__*/_react.default.createElement(_appUi.Dialog, {
    text: action.error,
    dismissButtonText: __('Go Back', 'elementor-pro'),
    dismissButtonOnClick: resetActionState,
    approveButtonText: __('Learn More', 'elementor-pro'),
    approveButtonColor: "link",
    approveButtonUrl: "https://go.elementor.com/app-theme-builder-conditions-load-issue",
    approveButtonTarget: "_target"
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__rows"
  }, rows), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__add-button-container"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    className: "e-site-editor-conditions__add-button",
    variant: "contained",
    size: "lg",
    text: __('Add Condition', 'elementor-pro'),
    onClick: create
  })), /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__footer"
  }, /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    variant: "contained",
    color: "primary",
    size: "lg",
    hideText: isSaving,
    icon: isSaving ? 'eicon-loading eicon-animation-spin' : '',
    text: __('Save & Close', 'elementor-pro'),
    onClick: function onClick() {
      return save().then(props.onAfterSave);
    }
  })));
}

ConditionsRows.propTypes = {
  onAfterSave: PropTypes.func
};

/***/ }),

/***/ "../modules/custom-code/assets/js/admin/admin.js":
/*!*******************************************************!*\
  !*** ../modules/custom-code/assets/js/admin/admin.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/assertThisInitialized */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var _component = _interopRequireDefault(__webpack_require__(/*! elementor-pro-app-modules/site-editor/assets/js/data/component */ "../core/app/modules/site-editor/assets/js/data/component.js"));

var _conditionsModal = _interopRequireDefault(__webpack_require__(/*! ./publish-metabox/conditions-modal */ "../modules/custom-code/assets/js/admin/publish-metabox/conditions-modal.js"));

var CustomCode = /*#__PURE__*/function (_elementorModules$Mod) {
  (0, _inherits2.default)(CustomCode, _elementorModules$Mod);

  var _super = (0, _createSuper2.default)(CustomCode);

  function CustomCode() {
    var _this;

    (0, _classCallCheck2.default)(this, CustomCode);
    _this = _super.call(this);
    jQuery(_this.initialize.bind((0, _assertThisInitialized2.default)(_this)));
    return _this;
  }

  (0, _createClass2.default)(CustomCode, [{
    key: "initialize",
    value: function initialize() {
      $e.components.register(new _component.default());
      ReactDOM.render( /*#__PURE__*/_react.default.createElement(_conditionsModal.default, null), document.querySelector('.post-conditions'));
      this.addTipsyToFields();
      this.addDescription();
      this.addLocationChangeHandler();
      this.setOptionsPlacementVisibility('elementor_body_end' === jQuery('#location').val());
    }
  }, {
    key: "addTipsyToFields",
    value: function addTipsyToFields() {
      jQuery('.elementor-field-label i[data-info]').tipsy({
        title: function title() {
          return this.getAttribute('data-info');
        },
        gravity: function gravity() {
          return 's';
        }
      });
    }
  }, {
    key: "addDescription",
    value: function addDescription() {
      var description = '<p>' + __('Manage and create all of your custom code here.<br />Organize all of your custom code and incorporate code snippets in your site. Add tracking codes, meta titles, and other scripts. Set display conditions, locations, and priority all from one place.', 'elementor-pro') + '&nbsp;<a target="_blank" href="https://go.elementor.com/wp-dash-custom-code">' + __('Learn more', 'elementor-pro') + '</a>' + '</p>';
      jQuery(description).insertBefore('.wp-header-end');
    }
  }, {
    key: "addLocationChangeHandler",
    value: function addLocationChangeHandler() {
      var _this2 = this;

      jQuery('#location').on('change', function (e) {
        _this2.setOptionsPlacementVisibility('elementor_body_end' === e.target.value);
      });
    }
  }, {
    key: "setOptionsPlacementVisibility",
    value: function setOptionsPlacementVisibility(state) {
      var $optionsPlacement = jQuery('.elementor-custom-code-options-placement');
      $optionsPlacement.toggleClass('show', state);
    }
  }]);
  return CustomCode;
}(elementorModules.Module);

exports.default = CustomCode;
elementorProAdmin.customCode = new CustomCode();

/***/ }),

/***/ "../modules/custom-code/assets/js/admin/publish-metabox/conditions-modal.js":
/*!**********************************************************************************!*\
  !*** ../modules/custom-code/assets/js/admin/publish-metabox/conditions-modal.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireWildcard */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireWildcard.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = ConditionsModal;

var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));

var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));

__webpack_require__(/*! core-js/modules/es6.array.map.js */ "../node_modules/core-js/modules/es6.array.map.js");

__webpack_require__(/*! core-js/modules/es6.function.name.js */ "../node_modules/core-js/modules/es6.function.name.js");

var _values = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/object/values */ "../node_modules/@babel/runtime-corejs2/core-js/object/values.js"));

var _stringify = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/core-js/json/stringify */ "../node_modules/@babel/runtime-corejs2/core-js/json/stringify.js"));

var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/asyncToGenerator */ "../node_modules/@babel/runtime-corejs2/helpers/asyncToGenerator.js"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/slicedToArray */ "../node_modules/@babel/runtime-corejs2/helpers/slicedToArray.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _conditions = _interopRequireDefault(__webpack_require__(/*! ./conditions */ "../modules/custom-code/assets/js/admin/publish-metabox/conditions.js"));

var _conditionsConfig = _interopRequireDefault(__webpack_require__(/*! elementor-pro-app-modules/site-editor/assets/js/context/services/conditions-config */ "../core/app/modules/site-editor/assets/js/context/services/conditions-config.js"));

/**
 * Publish metabox conditions ( 'Edit' modal ).
 */
function ConditionsModal() {
  var _useState = (0, _react.useState)(false),
      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
      showModal = _useState2[0],
      setShowModal = _useState2[1],
      _useState3 = (0, _react.useState)({
    conditions: null,
    instances: null
  }),
      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
      data = _useState4[0],
      setData = _useState4[1],
      isSavedOnce = (0, _react.useRef)(false),
      post = elementorProAdmin.customCode.post,
      elements = (0, _react.useMemo)(function () {
    return {
      $form: jQuery('#post'),
      $formConditions: jQuery('<input />'),
      $publishButton: jQuery('#publish'),
      title: {
        $label: jQuery('#title-prompt-text'),
        $input: jQuery('#title')
      }
    };
  }, []),
      onPostSubmit = function onPostSubmit() {
    var title = elements.title;

    if (!title.$input.attr('value').length) {
      title.$label.addClass('screen-reader-text');
      title.$input.attr('value', __('Elementor Custom-Code #', 'elementor-pro') + elementorProAdmin.customCode.post.ID);
    }
  },
      onPublishClick = function onPublishClick(e) {
    if ('auto-draft' === post.post_status && !showModal && !isSavedOnce.current) {
      e.preventDefault(); // Set default condition for new post.

      // Set default condition for new post.
      var conditions = [{
        name: 'general',
        sub: '',
        subId: '',
        type: 'include'
      }];
      setData(function (prevState) {
        return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
          conditions: conditions
        });
      });
      setShowModal(true);
    }
  },
      onConditionsSaved = function onConditionsSaved(args) {
    var conditions = args.conditions,
        instances = (0, _values.default)(args.instances).join(','),
        $form = elements.$form,
        $formConditions = elements.$formConditions,
        $publishButton = elements.$publishButton;
    isSavedOnce.current = true;
    setData(function (prevState) {
      return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
        conditions: conditions,
        instances: instances
      });
    }); // Temporary workaround for applying conditions for draft custom code post.

    // Temporary workaround for applying conditions for draft custom code post.
    if ('auto-draft' === post.post_status || 'draft' === post.post_status) {
      $formConditions.attr('type', 'hidden').attr('name', '_conditions').attr('value', (0, _stringify.default)(conditions)).appendTo($form);
    }

    $publishButton.trigger('click');
    setShowModal(false);
  },
      initData = /*#__PURE__*/function () {
    var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
      var conditionsConfig;
      return _regenerator.default.wrap(function _callee$(_context) {
        while (1) {
          switch (_context.prev = _context.next) {
            case 0:
              _context.next = 2;
              return _conditionsConfig.default.create();

            case 2:
              conditionsConfig = _context.sent;
              $e.data.get('site-editor/templates-conditions', {
                id: post.ID
              }, {
                refresh: true
              }).then(function (result) {
                // Since the 'state' format is different from db one.
                var conditions = (0, _values.default)(result.data).map(function (condition) {
                  return {
                    type: condition.type,
                    name: condition.name,
                    sub: condition.sub_name,
                    subId: condition.sub_id
                  };
                }),
                    instances = (0, _values.default)(conditionsConfig.calculateInstances(conditions)).join(',');
                setData(function (prevState) {
                  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prevState), {}, {
                    conditions: conditions,
                    instances: instances
                  });
                });
              });

            case 4:
            case "end":
              return _context.stop();
          }
        }
      }, _callee);
    }));

    return function initData() {
      return _ref.apply(this, arguments);
    };
  }(),
      bindEvents = function bindEvents() {
    elements.$publishButton.on('click', onPublishClick);
    elements.$form.on('submit', onPostSubmit);
  };

  (0, _react.useEffect)(function () {
    initData();
    bindEvents();
  }, []);

  if (!post || !data.conditions) {
    return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appUi.Text, {
      tag: "span"
    }, __('Loading', 'elementor')), /*#__PURE__*/_react.default.createElement(_appUi.Icon, {
      className: "spinner"
    }));
  }

  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    tag: "span",
    className: "post-conditions-display"
  }, /*#__PURE__*/_react.default.createElement("b", null, data.instances + ' ')), /*#__PURE__*/_react.default.createElement(_appUi.Button, {
    onClick: function onClick() {
      return setShowModal(true);
    },
    text: __('Edit', 'elementor'),
    variant: "underlined"
  }), /*#__PURE__*/_react.default.createElement(_appUi.ModalProvider, {
    show: showModal,
    setShow: setShowModal,
    title: __('Publish Settings', 'elementor'),
    icon: "eps-app__logo eicon-elementor"
  }, /*#__PURE__*/_react.default.createElement(_appUi.CssGrid, {
    columns: 1,
    spacing: 700
  }, /*#__PURE__*/_react.default.createElement("section", null, /*#__PURE__*/_react.default.createElement(_conditions.default, {
    id: post.ID,
    status: post.post_status,
    conditions: data.conditions,
    onConditionsSaved: onConditionsSaved,
    onAfterSave: function onAfterSave() {}
  })))));
}

ConditionsModal.propTypes = {
  children: PropTypes.object // Disable parent requirement.

};

/***/ }),

/***/ "../modules/custom-code/assets/js/admin/publish-metabox/conditions.js":
/*!****************************************************************************!*\
  !*** ../modules/custom-code/assets/js/admin/publish-metabox/conditions.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = Conditions;

var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));

var _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/objectSpread2 */ "../node_modules/@babel/runtime-corejs2/helpers/objectSpread2.js"));

var _appUi = __webpack_require__(/*! @elementor/app-ui */ "@elementor/app-ui");

var _conditions = _interopRequireDefault(__webpack_require__(/*! elementor-pro-app-modules/site-editor/assets/js/context/conditions */ "../core/app/modules/site-editor/assets/js/context/conditions.js"));

var _conditionsRows = _interopRequireDefault(__webpack_require__(/*! elementor-pro-app-modules/site-editor/assets/js/pages/conditions/conditions-rows */ "../core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.js"));

function Conditions(props) {
  var currentTemplateProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
    defaultCondition: 'general'
  }),
      onConditionsSaved = function onConditionsSaved(id, args) {
    $e.data.setCache($e.components.get('site-editor'), 'site-editor/templates-conditions', {
      id: id
    }, args.conditions);
    props.onConditionsSaved(args);
  };

  return /*#__PURE__*/_react.default.createElement("section", {
    className: "e-site-editor-conditions"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "e-site-editor-conditions__header"
  }, /*#__PURE__*/_react.default.createElement("img", {
    className: "e-site-editor-conditions__header-image",
    src: "".concat(elementorAppProConfig.baseUrl, "/modules/theme-builder/assets/images/conditions-tab.svg"),
    alt: __('Conditions', 'elementor-pro')
  }), /*#__PURE__*/_react.default.createElement(_appUi.Heading, {
    variant: "h1",
    tag: "h1"
  }, __('Where Do You Want to Display Your Code?', 'elementor-pro')), /*#__PURE__*/_react.default.createElement(_appUi.Text, {
    variant: "md"
  }, __('Set the conditions that determine where your code snippet is used throughout your site.', 'elementor-pro'), /*#__PURE__*/_react.default.createElement("br", null), __('For example, choose \'Entire Site\' to display the code snippet across your site.', 'elementor-pro'))), /*#__PURE__*/_react.default.createElement(_conditions.default, {
    validateConflicts: false,
    currentTemplate: currentTemplateProps,
    onConditionsSaved: onConditionsSaved
  }, /*#__PURE__*/_react.default.createElement(_conditionsRows.default, {
    onAfterSave: props.onAfterSave
  })));
}

Conditions.propTypes = {
  id: PropTypes.number,
  status: PropTypes.string.isRequired,
  conditions: PropTypes.array,
  onConditionsSaved: PropTypes.func,
  onAfterSave: PropTypes.func.isRequired
};
Conditions.defaultProps = {
  conditions: [],
  onConditionsSaved: function onConditionsSaved() {}
};

/***/ }),

/***/ "../node_modules/core-js/library/fn/array/from.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/from.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/es6.array.from */ "../node_modules/core-js/library/modules/es6.array.from.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.from;


/***/ }),

/***/ "../node_modules/core-js/library/fn/array/is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/array/is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.array.is-array */ "../node_modules/core-js/library/modules/es6.array.is-array.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Array.isArray;


/***/ }),

/***/ "../node_modules/core-js/library/fn/json/stringify.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/fn/json/stringify.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js");
var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });
module.exports = function stringify(it) { // eslint-disable-line no-unused-vars
  return $JSON.stringify.apply($JSON, arguments);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/assign.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/assign.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.assign */ "../node_modules/core-js/library/modules/es6.object.assign.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.assign;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-properties.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-properties.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-properties */ "../node_modules/core-js/library/modules/es6.object.define-properties.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperties(T, D) {
  return $Object.defineProperties(T, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-descriptors.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-descriptors.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertyDescriptors;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-own-property-symbols.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-own-property-symbols.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/keys.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/keys.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.keys */ "../node_modules/core-js/library/modules/es6.object.keys.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.keys;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/values.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/values.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es7.object.values */ "../node_modules/core-js/library/modules/es7.object.values.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.values;


/***/ }),

/***/ "../node_modules/core-js/library/fn/promise.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/library/fn/promise.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.promise */ "../node_modules/core-js/library/modules/es6.promise.js");
__webpack_require__(/*! ../modules/es7.promise.finally */ "../node_modules/core-js/library/modules/es7.promise.finally.js");
__webpack_require__(/*! ../modules/es7.promise.try */ "../node_modules/core-js/library/modules/es7.promise.try.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Promise;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/fn/weak-map.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/library/fn/weak-map.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
__webpack_require__(/*! ../modules/es6.weak-map */ "../node_modules/core-js/library/modules/es6.weak-map.js");
__webpack_require__(/*! ../modules/es7.weak-map.of */ "../node_modules/core-js/library/modules/es7.weak-map.of.js");
__webpack_require__(/*! ../modules/es7.weak-map.from */ "../node_modules/core-js/library/modules/es7.weak-map.from.js");
module.exports = __webpack_require__(/*! ../modules/_core */ "../node_modules/core-js/library/modules/_core.js").WeakMap;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-instance.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-instance.js ***!
  \***************************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-methods.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-methods.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/library/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-constructor.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-constructor.js ***!
  \*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-species-create.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-species-create.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/library/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_classof.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_classof.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection-weak.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection-weak.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var getWeak = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").getWeak;
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js");
var $has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var arrayFind = createArrayMethod(5);
var arrayFindIndex = createArrayMethod(6);
var id = 0;

// fallback for uncaught frozen keys
var uncaughtFrozenStore = function (that) {
  return that._l || (that._l = new UncaughtFrozenStore());
};
var UncaughtFrozenStore = function () {
  this.a = [];
};
var findUncaughtFrozen = function (store, key) {
  return arrayFind(store.a, function (it) {
    return it[0] === key;
  });
};
UncaughtFrozenStore.prototype = {
  get: function (key) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) return entry[1];
  },
  has: function (key) {
    return !!findUncaughtFrozen(this, key);
  },
  set: function (key, value) {
    var entry = findUncaughtFrozen(this, key);
    if (entry) entry[1] = value;
    else this.a.push([key, value]);
  },
  'delete': function (key) {
    var index = arrayFindIndex(this.a, function (it) {
      return it[0] === key;
    });
    if (~index) this.a.splice(index, 1);
    return !!~index;
  }
};

module.exports = {
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
    var C = wrapper(function (that, iterable) {
      anInstance(that, C, NAME, '_i');
      that._t = NAME;      // collection type
      that._i = id++;      // collection id
      that._l = undefined; // leak store for uncaught frozen objects
      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
    });
    redefineAll(C.prototype, {
      // 23.3.3.2 WeakMap.prototype.delete(key)
      // 23.4.3.3 WeakSet.prototype.delete(value)
      'delete': function (key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
        return data && $has(data, this._i) && delete data[this._i];
      },
      // 23.3.3.4 WeakMap.prototype.has(key)
      // 23.4.3.4 WeakSet.prototype.has(value)
      has: function has(key) {
        if (!isObject(key)) return false;
        var data = getWeak(key);
        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
        return data && $has(data, this._i);
      }
    });
    return C;
  },
  def: function (that, key, value) {
    var data = getWeak(anObject(key), true);
    if (data === true) uncaughtFrozenStore(that).set(key, value);
    else data[that._i] = value;
    return that;
  },
  ufstore: uncaughtFrozenStore
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_collection.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_collection.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var redefineAll = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
  var Base = global[NAME];
  var C = Base;
  var ADDER = IS_MAP ? 'set' : 'add';
  var proto = C && C.prototype;
  var O = {};
  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
    new C().entries().next();
  }))) {
    // create collection constructor
    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
    redefineAll(C.prototype, methods);
    meta.NEED = true;
  } else {
    C = wrapper(function (target, iterable) {
      anInstance(target, C, NAME, '_c');
      target._c = new Base();
      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
    });
    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
      var IS_ADDER = KEY == 'add' || KEY == 'set';
      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
        anInstance(this, C, KEY);
        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;
        var result = this._c[KEY](a === 0 ? 0 : a, b);
        return IS_ADDER ? this : result;
      });
    });
    IS_WEAK || dP(C.prototype, 'size', {
      get: function () {
        return this._c.size;
      }
    });
  }

  setToStringTag(C, NAME);

  O[NAME] = C;
  $export($export.G + $export.W + $export.F, O);

  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);

  return C;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_create-property.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_create-property.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
  else object[index] = value;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_for-of.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_for-of.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array-iter.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array-iter.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-call.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-call.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-detect.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-detect.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_microtask.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_microtask.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_new-promise-capability.js":
/*!**************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_new-promise-capability.js ***!
  \**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-assign.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-assign.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.2.1 Object.assign(target, source, ...)
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var $assign = Object.assign;

// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  var A = {};
  var B = {};
  // eslint-disable-next-line no-undef
  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) { B[k] = k; });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;
  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;
    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
    }
  } return T;
} : $assign;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-to-array.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-to-array.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var isEnum = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f;
module.exports = function (isEntries) {
  return function (it) {
    var O = toIObject(it);
    var keys = getKeys(O);
    var length = keys.length;
    var i = 0;
    var result = [];
    var key;
    while (length > i) {
      key = keys[i++];
      if (!DESCRIPTORS || isEnum.call(O, key)) {
        result.push(isEntries ? [key, O[key]] : O[key]);
      }
    }
    return result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_own-keys.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_own-keys.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all object keys, includes non-enumerable and symbols
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var Reflect = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect;
module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
  var keys = gOPN.f(anObject(it));
  var getSymbols = gOPS.f;
  return getSymbols ? keys.concat(getSymbols(it)) : keys;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_perform.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_perform.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_promise-resolve.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_promise-resolve.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine-all.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine-all.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];
    else hide(target, key, src[key]);
  } return target;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-from.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-from.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
    var mapFn = arguments[1];
    var mapping, A, n, cb;
    aFunction(this);
    mapping = mapFn !== undefined;
    if (mapping) aFunction(mapFn);
    if (source == undefined) return new this();
    A = [];
    if (mapping) {
      n = 0;
      cb = ctx(mapFn, arguments[2], 2);
      forOf(source, false, function (nextItem) {
        A.push(cb(nextItem, n++));
      });
    } else {
      forOf(source, false, A.push, A);
    }
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-collection-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-collection-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://tc39.github.io/proposal-setmap-offrom/
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, { of: function of() {
    var length = arguments.length;
    var A = new Array(length);
    while (length--) A[length] = arguments[length];
    return new this(A);
  } });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-species.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-species.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_species-constructor.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_species-constructor.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_task.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_task.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_user-agent.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_user-agent.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/library/modules/_validate-collection.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_validate-collection.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it, TYPE) {
  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/core.get-iterator-method.js":
/*!***************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/core.get-iterator-method.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.from.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.from.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/library/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/library/modules/_is-array-iter.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/library/modules/core.get-iterator-method.js");

$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
    // if object isn't iterable or it's array with default iterator - use simple case
    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);
      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }
    result.length = index;
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.is-array.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.is-array.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.assign.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.assign.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");

$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-properties.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-properties.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js":
/*!*****************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f;

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.keys.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.keys.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.promise.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.promise.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/library/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/library/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/library/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/library/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/library/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/library/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/library/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/library/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/library/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.weak-map.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.weak-map.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var each = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/library/modules/_array-methods.js")(0);
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var meta = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js");
var assign = __webpack_require__(/*! ./_object-assign */ "../node_modules/core-js/library/modules/_object-assign.js");
var weak = __webpack_require__(/*! ./_collection-weak */ "../node_modules/core-js/library/modules/_collection-weak.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var validate = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "../node_modules/core-js/library/modules/_validate-collection.js");
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
var WEAK_MAP = 'WeakMap';
var getWeak = meta.getWeak;
var isExtensible = Object.isExtensible;
var uncaughtFrozenStore = weak.ufstore;
var InternalMap;

var wrapper = function (get) {
  return function WeakMap() {
    return get(this, arguments.length > 0 ? arguments[0] : undefined);
  };
};

var methods = {
  // 23.3.3.3 WeakMap.prototype.get(key)
  get: function get(key) {
    if (isObject(key)) {
      var data = getWeak(key);
      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
      return data ? data[this._i] : undefined;
    }
  },
  // 23.3.3.5 WeakMap.prototype.set(key, value)
  set: function set(key, value) {
    return weak.def(validate(this, WEAK_MAP), key, value);
  }
};

// 23.3 WeakMap Objects
var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "../node_modules/core-js/library/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true);

// IE11 WeakMap frozen keys fix
if (NATIVE_WEAK_MAP && IS_IE11) {
  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
  assign(InternalMap.prototype, methods);
  meta.NEED = true;
  each(['delete', 'has', 'get', 'set'], function (key) {
    var proto = $WeakMap.prototype;
    var method = proto[key];
    redefine(proto, key, function (a, b) {
      // store frozen objects on internal weakmap shim
      if (isObject(a) && !isExtensible(a)) {
        if (!this._f) this._f = new InternalMap();
        var result = this._f[key](a, b);
        return key == 'set' ? this : result;
      // store all the rest on native weakmap
      } return method.call(this, a, b);
    });
  });
}


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js":
/*!******************************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.get-own-property-descriptors.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-getownpropertydescriptors
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var ownKeys = __webpack_require__(/*! ./_own-keys */ "../node_modules/core-js/library/modules/_own-keys.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var createProperty = __webpack_require__(/*! ./_create-property */ "../node_modules/core-js/library/modules/_create-property.js");

$export($export.S, 'Object', {
  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
    var O = toIObject(object);
    var getDesc = gOPD.f;
    var keys = ownKeys(O);
    var result = {};
    var i = 0;
    var key, desc;
    while (keys.length > i) {
      desc = getDesc(O, key = keys[i++]);
      if (desc !== undefined) createProperty(result, key, desc);
    }
    return result;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.object.values.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.object.values.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var $values = __webpack_require__(/*! ./_object-to-array */ "../node_modules/core-js/library/modules/_object-to-array.js")(false);

$export($export.S, 'Object', {
  values: function values(it) {
    return $values(it);
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.finally.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.finally.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/library/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/library/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.promise.try.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.promise.try.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/proposal-promise-try
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/library/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/library/modules/_perform.js");

$export($export.S, 'Promise', { 'try': function (callbackfn) {
  var promiseCapability = newPromiseCapability.f(this);
  var result = perform(callbackfn);
  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
  return promiseCapability.promise;
} });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.from.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.from.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
__webpack_require__(/*! ./_set-collection-from */ "../node_modules/core-js/library/modules/_set-collection-from.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.weak-map.of.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.weak-map.of.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
__webpack_require__(/*! ./_set-collection-of */ "../node_modules/core-js/library/modules/_set-collection-of.js")('WeakMap');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_add-to-unscopables.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_add-to-unscopables.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
  ArrayProto[UNSCOPABLES][key] = true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-includes.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-includes.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-methods.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_array-methods.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/modules/_to-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var asc = __webpack_require__(/*! ./_array-species-create */ "../node_modules/core-js/modules/_array-species-create.js");
module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;
    for (;length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);
      if (TYPE) {
        if (IS_MAP) result[index] = res;   // map
        else if (res) switch (TYPE) {
          case 3: return true;             // some
          case 5: return val;              // find
          case 6: return index;            // findIndex
          case 2: result.push(val);        // filter
        } else if (IS_EVERY) return false; // every
      }
    }
    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-constructor.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-constructor.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/modules/_is-array.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (original) {
  var C;
  if (isArray(original)) {
    C = original.constructor;
    // cross-realm fallback
    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_array-species-create.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/modules/_array-species-create.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "../node_modules/core-js/modules/_array-species-constructor.js");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_defined.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_defined.js ***!
  \***************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails-is-regexp.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/_fails-is-regexp.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (KEY) {
  var re = /./;
  try {
    '/./'[KEY](re);
  } catch (e) {
    try {
      re[MATCH] = false;
      return !'/./'[KEY](re);
    } catch (f) { /* empty */ }
  } return true;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_flags.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_flags.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 21.2.5.3 get RegExp.prototype.flags
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_iobject.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_iobject.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-regexp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-regexp.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.8 IsRegExp(argument)
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var MATCH = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('match');
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_strict-method.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_strict-method.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");

module.exports = function (method, arg) {
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call
    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-context.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_string-context.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// helper for String#{startsWith, endsWith, includes}
var isRegExp = __webpack_require__(/*! ./_is-regexp */ "../node_modules/core-js/modules/_is-regexp.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");

module.exports = function (that, searchString, NAME) {
  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
  return String(defined(that));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_string-html.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_string-html.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
var quot = /"/g;
// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
var createHTML = function (string, tag, attribute, value) {
  var S = String(defined(string));
  var p1 = '<' + tag;
  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
  return p1 + '>' + S + '</' + tag + '>';
};
module.exports = function (NAME, exec) {
  var O = {};
  O[NAME] = exec(createHTML);
  $export($export.P + $export.F * fails(function () {
    var test = ''[NAME]('"');
    return test !== test.toLowerCase() || test.split('"').length > 3;
  }), 'String', O);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-absolute-index.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_to-absolute-index.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-iobject.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-iobject.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.filter.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.filter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $filter = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(2);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', {
  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
  filter: function filter(callbackfn /* , thisArg */) {
    return $filter(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.find.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.find.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $find = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
  find: function find(callbackfn /* , that = undefined */) {
    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
  }
});
__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")(KEY);


/***/ }),

/***/ "../node_modules/core-js/modules/es6.array.map.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.array.map.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $map = __webpack_require__(/*! ./_array-methods */ "../node_modules/core-js/modules/_array-methods.js")(1);

$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "../node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', {
  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
  map: function map(callbackfn /* , thisArg */) {
    return $map(this, callbackfn, arguments[1]);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.function.name.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.function.name.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';

// 19.2.4.2 name
NAME in FProto || __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, {
  configurable: true,
  get: function () {
    try {
      return ('' + this).match(nameRE)[1];
    } catch (e) {
      return '';
    }
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.flags.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.flags.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 21.2.5.3 get RegExp.prototype.flags()
if (__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', {
  configurable: true,
  get: __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js")
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.regexp.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.regexp.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

__webpack_require__(/*! ./es6.regexp.flags */ "../node_modules/core-js/modules/es6.regexp.flags.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var $flags = __webpack_require__(/*! ./_flags */ "../node_modules/core-js/modules/_flags.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js");
var TO_STRING = 'toString';
var $toString = /./[TO_STRING];

var define = function (fn) {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true);
};

// 21.2.5.14 RegExp.prototype.toString()
if (__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
  define(function toString() {
    var R = anObject(this);
    return '/'.concat(R.source, '/',
      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
  });
// FF44- RegExp#toString has a wrong name
} else if ($toString.name != TO_STRING) {
  define(function toString() {
    return $toString.call(this);
  });
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.includes.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.includes.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// 21.1.3.7 String.prototype.includes(searchString, position = 0)

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var context = __webpack_require__(/*! ./_string-context */ "../node_modules/core-js/modules/_string-context.js");
var INCLUDES = 'includes';

$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "../node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', {
  includes: function includes(searchString /* , position = 0 */) {
    return !!~context(this, searchString, INCLUDES)
      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es6.string.sub.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/es6.string.sub.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// B.2.3.13 String.prototype.sub()
__webpack_require__(/*! ./_string-html */ "../node_modules/core-js/modules/_string-html.js")('sub', function (createHTML) {
  return function sub() {
    return createHTML(this, 'sub', '', '');
  };
});


/***/ }),

/***/ "../node_modules/core-js/modules/es7.array.includes.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/es7.array.includes.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// https://github.com/tc39/Array.prototype.includes
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var $includes = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/modules/_array-includes.js")(true);

$export($export.P, 'Array', {
  includes: function includes(el /* , fromIndex = 0 */) {
    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
  }
});

__webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/modules/_add-to-unscopables.js")('includes');


/***/ }),

/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
  !*** ../node_modules/object-assign/index.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/


/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;

function toObject(val) {
	if (val === null || val === undefined) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

function shouldUseNative() {
	try {
		if (!Object.assign) {
			return false;
		}

		// Detect buggy property enumeration order in older V8 versions.

		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
		test1[5] = 'de';
		if (Object.getOwnPropertyNames(test1)[0] === '5') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test2 = {};
		for (var i = 0; i < 10; i++) {
			test2['_' + String.fromCharCode(i)] = i;
		}
		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
			return test2[n];
		});
		if (order2.join('') !== '0123456789') {
			return false;
		}

		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
		var test3 = {};
		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
			test3[letter] = letter;
		});
		if (Object.keys(Object.assign({}, test3)).join('') !==
				'abcdefghijklmnopqrst') {
			return false;
		}

		return true;
	} catch (err) {
		// We don't expect any of the above to throw, but better to be safe.
		return false;
	}
}

module.exports = shouldUseNative() ? Object.assign : function (target, source) {
	var from;
	var to = toObject(target);
	var symbols;

	for (var s = 1; s < arguments.length; s++) {
		from = Object(arguments[s]);

		for (var key in from) {
			if (hasOwnProperty.call(from, key)) {
				to[key] = from[key];
			}
		}

		if (getOwnPropertySymbols) {
			symbols = getOwnPropertySymbols(from);
			for (var i = 0; i < symbols.length; i++) {
				if (propIsEnumerable.call(from, symbols[i])) {
					to[symbols[i]] = from[symbols[i]];
				}
			}
		}
	}

	return to;
};


/***/ }),

/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
  !*** ../node_modules/prop-types/checkPropTypes.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var printWarning = function() {};

if (true) {
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
  var loggedTypeFailures = {};
  var has = Function.call.bind(Object.prototype.hasOwnProperty);

  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

/**
 * Assert that the values match with the type specs.
 * Error messages are memorized and will only be shown once.
 *
 * @param {object} typeSpecs Map of name to a ReactPropType
 * @param {object} values Runtime values that need to be type-checked
 * @param {string} location e.g. "prop", "context", "child context"
 * @param {string} componentName Name of the component for error messages.
 * @param {?Function} getStack Returns the component stack.
 * @private
 */
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
  if (true) {
    for (var typeSpecName in typeSpecs) {
      if (has(typeSpecs, typeSpecName)) {
        var error;
        // Prop type validation may throw. In case they do, we don't want to
        // fail the render phase where it didn't fail before. So we log it.
        // After these have been cleaned up, we'll let them throw.
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          if (typeof typeSpecs[typeSpecName] !== 'function') {
            var err = Error(
              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
            );
            err.name = 'Invariant Violation';
            throw err;
          }
          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
        } catch (ex) {
          error = ex;
        }
        if (error && !(error instanceof Error)) {
          printWarning(
            (componentName || 'React class') + ': type specification of ' +
            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
            'You may have forgotten to pass an argument to the type checker ' +
            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
            'shape all require an argument).'
          );
        }
        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
          // Only monitor this failure once because there tends to be a lot of the
          // same error.
          loggedTypeFailures[error.message] = true;

          var stack = getStack ? getStack() : '';

          printWarning(
            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
          );
        }
      }
    }
  }
}

/**
 * Resets warning cache when testing.
 *
 * @private
 */
checkPropTypes.resetWarningCache = function() {
  if (true) {
    loggedTypeFailures = {};
  }
}

module.exports = checkPropTypes;


/***/ }),

/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
  !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");

var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");

var has = Function.call.bind(Object.prototype.hasOwnProperty);
var printWarning = function() {};

if (true) {
  printWarning = function(text) {
    var message = 'Warning: ' + text;
    if (typeof console !== 'undefined') {
      console.error(message);
    }
    try {
      // --- Welcome to debugging React ---
      // This error was thrown as a convenience so that you can use this stack
      // to find the callsite that caused this warning to fire.
      throw new Error(message);
    } catch (x) {}
  };
}

function emptyFunctionThatReturnsNull() {
  return null;
}

module.exports = function(isValidElement, throwOnDirectAccess) {
  /* global Symbol */
  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

  /**
   * Returns the iterator method function contained on the iterable object.
   *
   * Be sure to invoke the function with the iterable as context:
   *
   *     var iteratorFn = getIteratorFn(myIterable);
   *     if (iteratorFn) {
   *       var iterator = iteratorFn.call(myIterable);
   *       ...
   *     }
   *
   * @param {?object} maybeIterable
   * @return {?function}
   */
  function getIteratorFn(maybeIterable) {
    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
    if (typeof iteratorFn === 'function') {
      return iteratorFn;
    }
  }

  /**
   * Collection of methods that allow declaration and validation of props that are
   * supplied to React components. Example usage:
   *
   *   var Props = require('ReactPropTypes');
   *   var MyArticle = React.createClass({
   *     propTypes: {
   *       // An optional string prop named "description".
   *       description: Props.string,
   *
   *       // A required enum prop named "category".
   *       category: Props.oneOf(['News','Photos']).isRequired,
   *
   *       // A prop named "dialog" that requires an instance of Dialog.
   *       dialog: Props.instanceOf(Dialog).isRequired
   *     },
   *     render: function() { ... }
   *   });
   *
   * A more formal specification of how these methods are used:
   *
   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
   *   decl := ReactPropTypes.{type}(.isRequired)?
   *
   * Each and every declaration produces a function with the same signature. This
   * allows the creation of custom validation functions. For example:
   *
   *  var MyLink = React.createClass({
   *    propTypes: {
   *      // An optional string or URI prop named "href".
   *      href: function(props, propName, componentName) {
   *        var propValue = props[propName];
   *        if (propValue != null && typeof propValue !== 'string' &&
   *            !(propValue instanceof URI)) {
   *          return new Error(
   *            'Expected a string or an URI for ' + propName + ' in ' +
   *            componentName
   *          );
   *        }
   *      }
   *    },
   *    render: function() {...}
   *  });
   *
   * @internal
   */

  var ANONYMOUS = '<<anonymous>>';

  // Important!
  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
  var ReactPropTypes = {
    array: createPrimitiveTypeChecker('array'),
    bool: createPrimitiveTypeChecker('boolean'),
    func: createPrimitiveTypeChecker('function'),
    number: createPrimitiveTypeChecker('number'),
    object: createPrimitiveTypeChecker('object'),
    string: createPrimitiveTypeChecker('string'),
    symbol: createPrimitiveTypeChecker('symbol'),

    any: createAnyTypeChecker(),
    arrayOf: createArrayOfTypeChecker,
    element: createElementTypeChecker(),
    elementType: createElementTypeTypeChecker(),
    instanceOf: createInstanceTypeChecker,
    node: createNodeChecker(),
    objectOf: createObjectOfTypeChecker,
    oneOf: createEnumTypeChecker,
    oneOfType: createUnionTypeChecker,
    shape: createShapeTypeChecker,
    exact: createStrictShapeTypeChecker,
  };

  /**
   * inlined Object.is polyfill to avoid requiring consumers ship their own
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
   */
  /*eslint-disable no-self-compare*/
  function is(x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  }
  /*eslint-enable no-self-compare*/

  /**
   * We use an Error-like object for backward compatibility as people may call
   * PropTypes directly and inspect their output. However, we don't use real
   * Errors anymore. We don't inspect their stack anyway, and creating them
   * is prohibitively expensive if they are created too often, such as what
   * happens in oneOfType() for any type before the one that matched.
   */
  function PropTypeError(message) {
    this.message = message;
    this.stack = '';
  }
  // Make `instanceof Error` still work for returned errors.
  PropTypeError.prototype = Error.prototype;

  function createChainableTypeChecker(validate) {
    if (true) {
      var manualPropTypeCallCache = {};
      var manualPropTypeWarningCount = 0;
    }
    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
      componentName = componentName || ANONYMOUS;
      propFullName = propFullName || propName;

      if (secret !== ReactPropTypesSecret) {
        if (throwOnDirectAccess) {
          // New behavior only for users of `prop-types` package
          var err = new Error(
            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
            'Use `PropTypes.checkPropTypes()` to call them. ' +
            'Read more at http://fb.me/use-check-prop-types'
          );
          err.name = 'Invariant Violation';
          throw err;
        } else if ( true && typeof console !== 'undefined') {
          // Old behavior for people using React.PropTypes
          var cacheKey = componentName + ':' + propName;
          if (
            !manualPropTypeCallCache[cacheKey] &&
            // Avoid spamming the console because they are often not actionable except for lib authors
            manualPropTypeWarningCount < 3
          ) {
            printWarning(
              'You are manually calling a React.PropTypes validation ' +
              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
              'and will throw in the standalone `prop-types` package. ' +
              'You may be seeing this warning due to a third-party PropTypes ' +
              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
            );
            manualPropTypeCallCache[cacheKey] = true;
            manualPropTypeWarningCount++;
          }
        }
      }
      if (props[propName] == null) {
        if (isRequired) {
          if (props[propName] === null) {
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
          }
          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
        }
        return null;
      } else {
        return validate(props, propName, componentName, location, propFullName);
      }
    }

    var chainedCheckType = checkType.bind(null, false);
    chainedCheckType.isRequired = checkType.bind(null, true);

    return chainedCheckType;
  }

  function createPrimitiveTypeChecker(expectedType) {
    function validate(props, propName, componentName, location, propFullName, secret) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== expectedType) {
        // `propValue` being instance of, say, date/regexp, pass the 'object'
        // check, but we can offer a more precise error message here rather than
        // 'of type `object`'.
        var preciseType = getPreciseType(propValue);

        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createAnyTypeChecker() {
    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
  }

  function createArrayOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
      }
      var propValue = props[propName];
      if (!Array.isArray(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
      }
      for (var i = 0; i < propValue.length; i++) {
        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
        if (error instanceof Error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!isValidElement(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createElementTypeTypeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      if (!ReactIs.isValidElementType(propValue)) {
        var propType = getPropType(propValue);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createInstanceTypeChecker(expectedClass) {
    function validate(props, propName, componentName, location, propFullName) {
      if (!(props[propName] instanceof expectedClass)) {
        var expectedClassName = expectedClass.name || ANONYMOUS;
        var actualClassName = getClassName(props[propName]);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createEnumTypeChecker(expectedValues) {
    if (!Array.isArray(expectedValues)) {
      if (true) {
        if (arguments.length > 1) {
          printWarning(
            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
          );
        } else {
          printWarning('Invalid argument supplied to oneOf, expected an array.');
        }
      }
      return emptyFunctionThatReturnsNull;
    }

    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      for (var i = 0; i < expectedValues.length; i++) {
        if (is(propValue, expectedValues[i])) {
          return null;
        }
      }

      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
        var type = getPreciseType(value);
        if (type === 'symbol') {
          return String(value);
        }
        return value;
      });
      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createObjectOfTypeChecker(typeChecker) {
    function validate(props, propName, componentName, location, propFullName) {
      if (typeof typeChecker !== 'function') {
        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
      }
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
      }
      for (var key in propValue) {
        if (has(propValue, key)) {
          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createUnionTypeChecker(arrayOfTypeCheckers) {
    if (!Array.isArray(arrayOfTypeCheckers)) {
       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
      return emptyFunctionThatReturnsNull;
    }

    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (typeof checker !== 'function') {
        printWarning(
          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
        );
        return emptyFunctionThatReturnsNull;
      }
    }

    function validate(props, propName, componentName, location, propFullName) {
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
          return null;
        }
      }

      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
    }
    return createChainableTypeChecker(validate);
  }

  function createNodeChecker() {
    function validate(props, propName, componentName, location, propFullName) {
      if (!isNode(props[propName])) {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      for (var key in shapeTypes) {
        var checker = shapeTypes[key];
        if (!checker) {
          continue;
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }
    return createChainableTypeChecker(validate);
  }

  function createStrictShapeTypeChecker(shapeTypes) {
    function validate(props, propName, componentName, location, propFullName) {
      var propValue = props[propName];
      var propType = getPropType(propValue);
      if (propType !== 'object') {
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
      }
      // We need to check all keys in case some are required but missing from
      // props.
      var allKeys = assign({}, props[propName], shapeTypes);
      for (var key in allKeys) {
        var checker = shapeTypes[key];
        if (!checker) {
          return new PropTypeError(
            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
          );
        }
        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
        if (error) {
          return error;
        }
      }
      return null;
    }

    return createChainableTypeChecker(validate);
  }

  function isNode(propValue) {
    switch (typeof propValue) {
      case 'number':
      case 'string':
      case 'undefined':
        return true;
      case 'boolean':
        return !propValue;
      case 'object':
        if (Array.isArray(propValue)) {
          return propValue.every(isNode);
        }
        if (propValue === null || isValidElement(propValue)) {
          return true;
        }

        var iteratorFn = getIteratorFn(propValue);
        if (iteratorFn) {
          var iterator = iteratorFn.call(propValue);
          var step;
          if (iteratorFn !== propValue.entries) {
            while (!(step = iterator.next()).done) {
              if (!isNode(step.value)) {
                return false;
              }
            }
          } else {
            // Iterator will provide entry [k,v] tuples rather than values.
            while (!(step = iterator.next()).done) {
              var entry = step.value;
              if (entry) {
                if (!isNode(entry[1])) {
                  return false;
                }
              }
            }
          }
        } else {
          return false;
        }

        return true;
      default:
        return false;
    }
  }

  function isSymbol(propType, propValue) {
    // Native Symbol.
    if (propType === 'symbol') {
      return true;
    }

    // falsy value can't be a Symbol
    if (!propValue) {
      return false;
    }

    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
    if (propValue['@@toStringTag'] === 'Symbol') {
      return true;
    }

    // Fallback for non-spec compliant Symbols which are polyfilled.
    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
      return true;
    }

    return false;
  }

  // Equivalent of `typeof` but with special handling for array and regexp.
  function getPropType(propValue) {
    var propType = typeof propValue;
    if (Array.isArray(propValue)) {
      return 'array';
    }
    if (propValue instanceof RegExp) {
      // Old webkits (at least until Android 4.0) return 'function' rather than
      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
      // passes PropTypes.object.
      return 'object';
    }
    if (isSymbol(propType, propValue)) {
      return 'symbol';
    }
    return propType;
  }

  // This handles more types than `getPropType`. Only used for error messages.
  // See `createPrimitiveTypeChecker`.
  function getPreciseType(propValue) {
    if (typeof propValue === 'undefined' || propValue === null) {
      return '' + propValue;
    }
    var propType = getPropType(propValue);
    if (propType === 'object') {
      if (propValue instanceof Date) {
        return 'date';
      } else if (propValue instanceof RegExp) {
        return 'regexp';
      }
    }
    return propType;
  }

  // Returns a string that is postfixed to a warning about an invalid type.
  // For example, "undefined" or "of type array"
  function getPostfixForTypeWarning(value) {
    var type = getPreciseType(value);
    switch (type) {
      case 'array':
      case 'object':
        return 'an ' + type;
      case 'boolean':
      case 'date':
      case 'regexp':
        return 'a ' + type;
      default:
        return type;
    }
  }

  // Returns class name of the object, if any.
  function getClassName(propValue) {
    if (!propValue.constructor || !propValue.constructor.name) {
      return ANONYMOUS;
    }
    return propValue.constructor.name;
  }

  ReactPropTypes.checkPropTypes = checkPropTypes;
  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ "../node_modules/prop-types/index.js":
/*!*******************************************!*\
  !*** ../node_modules/prop-types/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (true) {
  var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/react-is/index.js");

  // By explicitly using `prop-types` you are opting into new development behavior.
  // http://fb.me/prop-types-in-prod
  var throwOnDirectAccess = true;
  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
} else {}


/***/ }),

/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!**************************************************************!*\
  !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ "../node_modules/react-is/cjs/react-is.development.js":
/*!************************************************************!*\
  !*** ../node_modules/react-is/cjs/react-is.development.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
/** @license React v16.13.1
 * react-is.development.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */





if (true) {
  (function() {
'use strict';

// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?

var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;

function isValidElementType(type) {
  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}

function typeOf(object) {
  if (typeof object === 'object' && object !== null) {
    var $$typeof = object.$$typeof;

    switch ($$typeof) {
      case REACT_ELEMENT_TYPE:
        var type = object.type;

        switch (type) {
          case REACT_ASYNC_MODE_TYPE:
          case REACT_CONCURRENT_MODE_TYPE:
          case REACT_FRAGMENT_TYPE:
          case REACT_PROFILER_TYPE:
          case REACT_STRICT_MODE_TYPE:
          case REACT_SUSPENSE_TYPE:
            return type;

          default:
            var $$typeofType = type && type.$$typeof;

            switch ($$typeofType) {
              case REACT_CONTEXT_TYPE:
              case REACT_FORWARD_REF_TYPE:
              case REACT_LAZY_TYPE:
              case REACT_MEMO_TYPE:
              case REACT_PROVIDER_TYPE:
                return $$typeofType;

              default:
                return $$typeof;
            }

        }

      case REACT_PORTAL_TYPE:
        return $$typeof;
    }
  }

  return undefined;
} // AsyncMode is deprecated along with isAsyncMode

var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated

function isAsyncMode(object) {
  {
    if (!hasWarnedAboutDeprecatedIsAsyncMode) {
      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint

      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
    }
  }

  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
  return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
  return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
  return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
  return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
  return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
  return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
  return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
  return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
  return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
  return typeOf(object) === REACT_SUSPENSE_TYPE;
}

exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
  })();
}


/***/ }),

/***/ "../node_modules/react-is/index.js":
/*!*****************************************!*\
  !*** ../node_modules/react-is/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";


if (false) {} else {
  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/react-is/cjs/react-is.development.js");
}


/***/ }),

/***/ "../node_modules/regenerator-runtime/runtime.js":
/*!******************************************************!*\
  !*** ../node_modules/regenerator-runtime/runtime.js ***!
  \******************************************************/
/***/ ((module) => {

/**
 * Copyright (c) 2014-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

var runtime = (function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.
  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function define(obj, key, value) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
    return obj[key];
  }
  try {
    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
    define({}, "");
  } catch (err) {
    define = function(obj, key, value) {
      return obj[key] = value;
    };
  }

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []);

    // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.
    generator._invoke = makeInvokeMethod(innerFn, self, context);

    return generator;
  }
  exports.wrap = wrap;

  // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.
  function tryCatch(fn, obj, arg) {
    try {
      return { type: "normal", arg: fn.call(obj, arg) };
    } catch (err) {
      return { type: "throw", arg: err };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed";

  // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.
  var ContinueSentinel = {};

  // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.
  function Generator() {}
  function GeneratorFunction() {}
  function GeneratorFunctionPrototype() {}

  // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.
  var IteratorPrototype = {};
  IteratorPrototype[iteratorSymbol] = function () {
    return this;
  };

  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
  if (NativeIteratorPrototype &&
      NativeIteratorPrototype !== Op &&
      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype =
    Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
  GeneratorFunctionPrototype.constructor = GeneratorFunction;
  GeneratorFunction.displayName = define(
    GeneratorFunctionPrototype,
    toStringTagSymbol,
    "GeneratorFunction"
  );

  // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.
  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function(method) {
      define(prototype, method, function(arg) {
        return this._invoke(method, arg);
      });
    });
  }

  exports.isGeneratorFunction = function(genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor
      ? ctor === GeneratorFunction ||
        // For the native GeneratorFunction constructor, the best we can
        // do is to check its .name property.
        (ctor.displayName || ctor.name) === "GeneratorFunction"
      : false;
  };

  exports.mark = function(genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      define(genFun, toStringTagSymbol, "GeneratorFunction");
    }
    genFun.prototype = Object.create(Gp);
    return genFun;
  };

  // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.
  exports.awrap = function(arg) {
    return { __await: arg };
  };

  function AsyncIterator(generator, PromiseImpl) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);
      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;
        if (value &&
            typeof value === "object" &&
            hasOwn.call(value, "__await")) {
          return PromiseImpl.resolve(value.__await).then(function(value) {
            invoke("next", value, resolve, reject);
          }, function(err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return PromiseImpl.resolve(value).then(function(unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function(error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new PromiseImpl(function(resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise =
        // If enqueue has been called before, then we want to wait until
        // all previous Promises have been resolved before calling invoke,
        // so that results are always delivered in the correct order. If
        // enqueue has not been called before, then it is important to
        // call invoke immediately, without waiting on a callback to fire,
        // so that the async generator function has the opportunity to do
        // any necessary setup in a predictable way. This predictability
        // is why the Promise constructor synchronously invokes its
        // executor callback, and why async functions synchronously
        // execute code before the first await. Since we implement simple
        // async functions in terms of async generators, it is especially
        // important to get this right, even though it requires care.
        previousPromise ? previousPromise.then(
          callInvokeWithMethodAndArg,
          // Avoid propagating failures to Promises returned by later
          // invocations of the iterator.
          callInvokeWithMethodAndArg
        ) : callInvokeWithMethodAndArg();
    }

    // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).
    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
    return this;
  };
  exports.AsyncIterator = AsyncIterator;

  // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.
  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
    if (PromiseImpl === void 0) PromiseImpl = Promise;

    var iter = new AsyncIterator(
      wrap(innerFn, outerFn, self, tryLocsList),
      PromiseImpl
    );

    return exports.isGeneratorFunction(outerFn)
      ? iter // If outerFn is a generator, return the full iterator.
      : iter.next().then(function(result) {
          return result.done ? result.value : iter.next();
        });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;

    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        }

        // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;
        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);
          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;

        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);

        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;

        var record = tryCatch(innerFn, self, context);
        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done
            ? GenStateCompleted
            : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };

        } else if (record.type === "throw") {
          state = GenStateCompleted;
          // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.
          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  }

  // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.
  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];
    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError(
          "The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (! info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value;

      // Resume execution at the desired location (see delegateYield).
      context.next = delegate.nextLoc;

      // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.
      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }

    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    }

    // The delegate iterator is finished, so forget it and continue with
    // the outer generator.
    context.delegate = null;
    return ContinueSentinel;
  }

  // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.
  defineIteratorMethods(Gp);

  define(Gp, toStringTagSymbol, "Generator");

  // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.
  Gp[iteratorSymbol] = function() {
    return this;
  };

  Gp.toString = function() {
    return "[object Generator]";
  };

  function pushTryEntry(locs) {
    var entry = { tryLoc: locs[0] };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{ tryLoc: "root" }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function(object) {
    var keys = [];
    for (var key in object) {
      keys.push(key);
    }
    keys.reverse();

    // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.
    return function next() {
      while (keys.length) {
        var key = keys.pop();
        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      }

      // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.
      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];
      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1, next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;

          return next;
        };

        return next.next = next;
      }
    }

    // Return an iterator with no values.
    return { next: doneResult };
  }
  exports.values = values;

  function doneResult() {
    return { value: undefined, done: true };
  }

  Context.prototype = {
    constructor: Context,

    reset: function(skipTempReset) {
      this.prev = 0;
      this.next = 0;
      // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.
      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;

      this.method = "next";
      this.arg = undefined;

      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" &&
              hasOwn.call(this, name) &&
              !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },

    stop: function() {
      this.done = true;

      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;
      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },

    dispatchException: function(exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;
      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !! caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }

          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }

          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },

    abrupt: function(type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc <= this.prev &&
            hasOwn.call(entry, "finallyLoc") &&
            this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry &&
          (type === "break" ||
           type === "continue") &&
          finallyEntry.tryLoc <= arg &&
          arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },

    complete: function(record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" ||
          record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },

    finish: function(finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },

    "catch": function(tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;
          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }
          return thrown;
        }
      }

      // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.
      throw new Error("illegal catch attempt");
    },

    delegateYield: function(iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  };

  // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.
  return exports;

}(
  // If this script is executing as a CommonJS module, use module.exports
  // as the regeneratorRuntime namespace. Otherwise create a new empty
  // object. Either way, the resulting object will be used to initialize
  // the regeneratorRuntime variable at the top of this file.
   true ? module.exports : 0
));

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  Function("r", "regeneratorRuntime = r")(runtime);
}


/***/ }),

/***/ "react":
/*!************************!*\
  !*** external "React" ***!
  \************************/
/***/ ((module) => {

"use strict";
module.exports = React;

/***/ }),

/***/ "@elementor/app-ui":
/*!*********************************************!*\
  !*** external "elementorAppPackages.appUi" ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
module.exports = elementorAppPackages.appUi;

/***/ }),

/***/ "@wordpress/i18n":
/*!**************************!*\
  !*** external "wp.i18n" ***!
  \**************************/
/***/ ((module) => {

"use strict";
module.exports = wp.i18n;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module is referenced by other modules so it can't be inlined
/******/ 	var __webpack_exports__ = __webpack_require__("../modules/custom-code/assets/js/admin/admin.js");
/******/ 	
/******/ })()
;
//# sourceMappingURL=custom-code.js.mapPK!�Px���0assets/js/hotspot.66952182f9ae91b6896c.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["hotspot"],{

/***/ "../modules/hotspot/assets/js/frontend/handlers/hotspot.js":
/*!*****************************************************************!*\
  !*** ../modules/hotspot/assets/js/frontend/handlers/hotspot.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class Hotspot extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        hotspot: '.e-hotspot',
        tooltip: '.e-hotspot__tooltip'
      }
    };
  }

  getDefaultElements() {
    const selectors = this.getSettings('selectors');
    return {
      $hotspot: this.$element.find(selectors.hotspot),
      $hotspotsExcludesLinks: this.$element.find(selectors.hotspot).filter(':not(.e-hotspot--no-tooltip)'),
      $tooltip: this.$element.find(selectors.tooltip)
    };
  }

  bindEvents() {
    const tooltipTrigger = this.getCurrentDeviceSetting('tooltip_trigger'),
          tooltipTriggerEvent = 'mouseenter' === tooltipTrigger ? 'mouseleave mouseenter' : tooltipTrigger;

    if (tooltipTriggerEvent !== 'none') {
      this.elements.$hotspotsExcludesLinks.on(tooltipTriggerEvent, event => this.onHotspotTriggerEvent(event));
    }
  }

  onDeviceModeChange() {
    this.elements.$hotspotsExcludesLinks.off();
    this.bindEvents();
  }

  onHotspotTriggerEvent(event) {
    const elementTarget = jQuery(event.target),
          isHotspotButtonEvent = elementTarget.closest('.e-hotspot__button').length,
          isTooltipMouseLeave = 'mouseleave' === event.type && (elementTarget.is('.e-hotspot--tooltip-position') || elementTarget.parents('.e-hotspot--tooltip-position').length),
          isMobile = 'mobile' === elementorFrontend.getCurrentDeviceMode(),
          isHotspotLink = elementTarget.closest('.e-hotspot--link').length,
          triggerTooltip = !(isHotspotLink && isMobile && ('mouseleave' === event.type || 'mouseenter' === event.type));

    if (triggerTooltip && (isHotspotButtonEvent || isTooltipMouseLeave)) {
      const currentHotspot = jQuery(event.currentTarget);
      this.elements.$hotspot.not(currentHotspot).removeClass('e-hotspot--active');
      currentHotspot.toggleClass('e-hotspot--active');
    }
  } // Fix bad UX of "Sequenced Animation" when editing other controls


  editorAddSequencedAnimation() {
    this.elements.$hotspot.toggleClass('e-hotspot--sequenced', 'yes' === this.getElementSettings('hotspot_sequenced_animation'));
  }

  hotspotSequencedAnimation() {
    const elementSettings = this.getElementSettings(),
          isSequencedAnimation = elementSettings.hotspot_sequenced_animation;

    if ('no' === isSequencedAnimation) {
      return;
    } //start sequenced animation when element on viewport


    const hotspotObserver = elementorModules.utils.Scroll.scrollObserver({
      callback: event => {
        if (event.isInViewport) {
          hotspotObserver.unobserve(this.$element[0]); //add delay for each hotspot

          this.elements.$hotspot.each((index, element) => {
            if (0 === index) {
              return;
            }

            const sequencedAnimation = elementSettings.hotspot_sequenced_animation_duration,
                  sequencedAnimationDuration = sequencedAnimation ? sequencedAnimation.size : 1000,
                  animationDelay = index * (sequencedAnimationDuration / this.elements.$hotspot.length);
            element.style.animationDelay = animationDelay + 'ms';
          });
        }
      }
    });
    hotspotObserver.observe(this.$element[0]);
  }

  setTooltipPositionControl() {
    const elementSettings = this.getElementSettings(),
          isDirectionAnimation = 'undefined' !== typeof elementSettings.tooltip_animation && elementSettings.tooltip_animation.match(/^e-hotspot--(slide|fade)-direction/);

    if (isDirectionAnimation) {
      this.elements.$tooltip.removeClass('e-hotspot--tooltip-animation-from-left e-hotspot--tooltip-animation-from-top e-hotspot--tooltip-animation-from-right e-hotspot--tooltip-animation-from-bottom');
      this.elements.$tooltip.addClass('e-hotspot--tooltip-animation-from-' + elementSettings.tooltip_position);
    }
  }

  onInit(...args) {
    super.onInit(...args);
    this.hotspotSequencedAnimation();
    this.setTooltipPositionControl();

    if (window.elementor) {
      elementor.listenTo(elementor.channels.deviceMode, 'change', () => this.onDeviceModeChange());
    }
  }

  onElementChange(propertyName) {
    if (propertyName.startsWith('tooltip_position')) {
      this.setTooltipPositionControl();
    }

    if (propertyName.startsWith('hotspot_sequenced_animation')) {
      this.editorAddSequencedAnimation();
    }
  }

}

exports.default = Hotspot;

/***/ })

}]);
//# sourceMappingURL=hotspot.66952182f9ae91b6896c.bundle.js.mapPK!���2�22assets/js/portfolio.71a9b9fb42566ae496bd.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["portfolio"],{

/***/ "../modules/posts/assets/js/frontend/handlers/portfolio.js":
/*!*****************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/portfolio.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  isActive(settings) {
    return settings.$element.find('.elementor-portfolio').length;
  },

  getSkinPrefix() {
    return '';
  },

  getDefaultSettings() {
    var settings = _posts.default.prototype.getDefaultSettings.apply(this, arguments);

    settings.transitionDuration = 450;
    jQuery.extend(settings.classes, {
      active: 'elementor-active',
      item: 'elementor-portfolio-item',
      ghostItem: 'elementor-portfolio-ghost-item'
    });
    return settings;
  },

  getDefaultElements() {
    var elements = _posts.default.prototype.getDefaultElements.apply(this, arguments);

    elements.$filterButtons = this.$element.find('.elementor-portfolio__filter');
    return elements;
  },

  getOffset(itemIndex, itemWidth, itemHeight) {
    var settings = this.getSettings(),
        itemGap = this.elements.$postsContainer.width() / settings.colsCount - itemWidth;
    itemGap += itemGap / (settings.colsCount - 1);
    return {
      start: (itemWidth + itemGap) * (itemIndex % settings.colsCount),
      top: (itemHeight + itemGap) * Math.floor(itemIndex / settings.colsCount)
    };
  },

  getClosureMethodsNames() {
    var baseClosureMethods = _posts.default.prototype.getClosureMethodsNames.apply(this, arguments);

    return baseClosureMethods.concat(['onFilterButtonClick']);
  },

  filterItems(term) {
    var $posts = this.elements.$posts,
        activeClass = this.getSettings('classes.active'),
        termSelector = '.elementor-filter-' + term;

    if ('__all' === term) {
      $posts.addClass(activeClass);
      return;
    }

    $posts.not(termSelector).removeClass(activeClass);
    $posts.filter(termSelector).addClass(activeClass);
  },

  removeExtraGhostItems() {
    var settings = this.getSettings(),
        $shownItems = this.elements.$posts.filter(':visible'),
        emptyColumns = (settings.colsCount - $shownItems.length % settings.colsCount) % settings.colsCount,
        $ghostItems = this.elements.$postsContainer.find('.' + settings.classes.ghostItem);
    $ghostItems.slice(emptyColumns).remove();
  },

  handleEmptyColumns() {
    this.removeExtraGhostItems();
    var settings = this.getSettings(),
        $shownItems = this.elements.$posts.filter(':visible'),
        $ghostItems = this.elements.$postsContainer.find('.' + settings.classes.ghostItem),
        emptyColumns = (settings.colsCount - ($shownItems.length + $ghostItems.length) % settings.colsCount) % settings.colsCount;

    for (var i = 0; i < emptyColumns; i++) {
      this.elements.$postsContainer.append(jQuery('<div>', {
        class: settings.classes.item + ' ' + settings.classes.ghostItem
      }));
    }
  },

  showItems($activeHiddenItems) {
    $activeHiddenItems.show();
    setTimeout(function () {
      $activeHiddenItems.css({
        opacity: 1
      });
    });
  },

  hideItems($inactiveShownItems) {
    $inactiveShownItems.hide();
  },

  arrangeGrid() {
    var $ = jQuery,
        self = this,
        settings = self.getSettings(),
        $activeItems = self.elements.$posts.filter('.' + settings.classes.active),
        $inactiveItems = self.elements.$posts.not('.' + settings.classes.active),
        $shownItems = self.elements.$posts.filter(':visible'),
        $activeOrShownItems = $activeItems.add($shownItems),
        $activeShownItems = $activeItems.filter(':visible'),
        $activeHiddenItems = $activeItems.filter(':hidden'),
        $inactiveShownItems = $inactiveItems.filter(':visible'),
        itemWidth = $shownItems.outerWidth(),
        itemHeight = $shownItems.outerHeight();
    self.elements.$posts.css('transition-duration', settings.transitionDuration + 'ms');
    self.showItems($activeHiddenItems);

    if (self.isEdit) {
      self.fitImages();
    }

    self.handleEmptyColumns();

    if (self.isMasonryEnabled()) {
      self.hideItems($inactiveShownItems);
      self.showItems($activeHiddenItems);
      self.handleEmptyColumns();
      self.runMasonry();
      return;
    }

    $inactiveShownItems.css({
      opacity: 0,
      transform: 'scale3d(0.2, 0.2, 1)'
    });
    $activeShownItems.each(function () {
      var $item = $(this),
          currentOffset = self.getOffset($activeOrShownItems.index($item), itemWidth, itemHeight),
          requiredOffset = self.getOffset($shownItems.index($item), itemWidth, itemHeight);

      if (currentOffset.start === requiredOffset.start && currentOffset.top === requiredOffset.top) {
        return;
      }

      requiredOffset.start -= currentOffset.start;
      requiredOffset.top -= currentOffset.top;

      if (elementorFrontend.config.is_rtl) {
        requiredOffset.start *= -1;
      }

      $item.css({
        transitionDuration: '',
        transform: 'translate3d(' + requiredOffset.start + 'px, ' + requiredOffset.top + 'px, 0)'
      });
    });
    setTimeout(function () {
      $activeItems.each(function () {
        var $item = $(this),
            currentOffset = self.getOffset($activeOrShownItems.index($item), itemWidth, itemHeight),
            requiredOffset = self.getOffset($activeItems.index($item), itemWidth, itemHeight);
        $item.css({
          transitionDuration: settings.transitionDuration + 'ms'
        });
        requiredOffset.start -= currentOffset.start;
        requiredOffset.top -= currentOffset.top;

        if (elementorFrontend.config.is_rtl) {
          requiredOffset.start *= -1;
        }

        setTimeout(function () {
          $item.css('transform', 'translate3d(' + requiredOffset.start + 'px, ' + requiredOffset.top + 'px, 0)');
        });
      });
    });
    setTimeout(function () {
      self.hideItems($inactiveShownItems);
      $activeItems.css({
        transitionDuration: '',
        transform: 'translate3d(0px, 0px, 0px)'
      });
      self.handleEmptyColumns();
    }, settings.transitionDuration);
  },

  activeFilterButton(filter) {
    var activeClass = this.getSettings('classes.active'),
        $filterButtons = this.elements.$filterButtons,
        $button = $filterButtons.filter('[data-filter="' + filter + '"]');
    $filterButtons.removeClass(activeClass);
    $button.addClass(activeClass);
  },

  setFilter(filter) {
    this.activeFilterButton(filter);
    this.filterItems(filter);
    this.arrangeGrid();
  },

  refreshGrid() {
    this.setColsCountSettings();
    this.arrangeGrid();
  },

  bindEvents() {
    _posts.default.prototype.bindEvents.apply(this, arguments);

    this.elements.$filterButtons.on('click', this.onFilterButtonClick);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings('masonry');
  },

  run() {
    _posts.default.prototype.run.apply(this, arguments);

    this.setColsCountSettings();
    this.setFilter('__all');
    this.handleEmptyColumns();
  },

  onFilterButtonClick(event) {
    this.setFilter(jQuery(event.currentTarget).data('filter'));
  },

  onWindowResize() {
    _posts.default.prototype.onWindowResize.apply(this, arguments);

    this.refreshGrid();
  },

  onElementChange(propertyName) {
    _posts.default.prototype.onElementChange.apply(this, arguments);

    if ('classic_item_ratio' === propertyName) {
      this.refreshGrid();
    }
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/posts.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/posts.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getSkinPrefix() {
    return 'classic_';
  },

  bindEvents() {
    var cid = this.getModelCID();
    elementorFrontend.addListenerOnce(cid, 'resize', this.onWindowResize);
  },

  getClosureMethodsNames() {
    return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this, arguments).concat(['fitImages', 'onWindowResize', 'runMasonry']);
  },

  getDefaultSettings() {
    return {
      classes: {
        fitHeight: 'elementor-fit-height',
        hasItemRatio: 'elementor-has-item-ratio'
      },
      selectors: {
        postsContainer: '.elementor-posts-container',
        post: '.elementor-post',
        postThumbnail: '.elementor-post__thumbnail',
        postThumbnailImage: '.elementor-post__thumbnail img'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $postsContainer: this.$element.find(selectors.postsContainer),
      $posts: this.$element.find(selectors.post)
    };
  },

  fitImage($post) {
    var settings = this.getSettings(),
        $imageParent = $post.find(settings.selectors.postThumbnail),
        $image = $imageParent.find('img'),
        image = $image[0];

    if (!image) {
      return;
    }

    var imageParentRatio = $imageParent.outerHeight() / $imageParent.outerWidth(),
        imageRatio = image.naturalHeight / image.naturalWidth;
    $imageParent.toggleClass(settings.classes.fitHeight, imageRatio < imageParentRatio);
  },

  fitImages() {
    var $ = jQuery,
        self = this,
        itemRatio = getComputedStyle(this.$element[0], ':after').content,
        settings = this.getSettings();
    this.elements.$postsContainer.toggleClass(settings.classes.hasItemRatio, !!itemRatio.match(/\d/));

    if (self.isMasonryEnabled()) {
      return;
    }

    this.elements.$posts.each(function () {
      var $post = $(this),
          $image = $post.find(settings.selectors.postThumbnailImage);
      self.fitImage($post);
      $image.on('load', function () {
        self.fitImage($post);
      });
    });
  },

  setColsCountSettings() {
    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        settings = this.getElementSettings(),
        skinPrefix = this.getSkinPrefix(),
        colsCount;

    switch (currentDeviceMode) {
      case 'mobile':
        colsCount = settings[skinPrefix + 'columns_mobile'];
        break;

      case 'tablet':
        colsCount = settings[skinPrefix + 'columns_tablet'];
        break;

      default:
        colsCount = settings[skinPrefix + 'columns'];
    }

    this.setSettings('colsCount', colsCount);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings(this.getSkinPrefix() + 'masonry');
  },

  initMasonry() {
    imagesLoaded(this.elements.$posts, this.runMasonry);
  },

  runMasonry() {
    var elements = this.elements;
    elements.$posts.css({
      marginTop: '',
      transitionDuration: ''
    });
    this.setColsCountSettings();
    var colsCount = this.getSettings('colsCount'),
        hasMasonry = this.isMasonryEnabled() && colsCount >= 2;
    elements.$postsContainer.toggleClass('elementor-posts-masonry', hasMasonry);

    if (!hasMasonry) {
      elements.$postsContainer.height('');
      return;
    }
    /* The `verticalSpaceBetween` variable is setup in a way that supports older versions of the portfolio widget */


    var verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'row_gap.size');

    if ('' === this.getSkinPrefix() && '' === verticalSpaceBetween) {
      verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'item_gap.size');
    }

    var masonry = new elementorModules.utils.Masonry({
      container: elements.$postsContainer,
      items: elements.$posts.filter(':visible'),
      columnsCount: this.getSettings('colsCount'),
      verticalSpaceBetween
    });
    masonry.run();
  },

  run() {
    // For slow browsers
    setTimeout(this.fitImages, 0);
    this.initMasonry();
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.bindEvents();
    this.run();
  },

  onWindowResize() {
    this.fitImages();
    this.runMasonry();
  },

  onElementChange() {
    this.fitImages();
    setTimeout(this.runMasonry);
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=portfolio.71a9b9fb42566ae496bd.bundle.js.mapPK!	6((6assets/js/paypal-button.a8f3d929735cca75a572.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["paypal-button"],{

/***/ "../modules/payments/assets/js/frontend/handlers/paypal-button.js":
/*!************************************************************************!*\
  !*** ../modules/payments/assets/js/frontend/handlers/paypal-button.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class PayPalHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        button: '.elementor-button.elementor-paypal-legacy',
        errors: '.elementor-message-danger'
      }
    };
  }

  getDefaultElements() {
    const settings = this.getSettings();
    return {
      wrapper: this.$element[0],
      button: this.$element[0].querySelector(settings.selectors.button),
      errors: this.$element[0].querySelectorAll(settings.selectors.errors)
    };
  }

  handleClick(event) {
    if (0 < this.elements.errors.length) {
      event.preventDefault();
      this.elements.errors.forEach(error => {
        error.classList.remove('elementor-hidden');
      });
    }
  }

  bindEvents() {
    this.elements.button.addEventListener('click', this.handleClick.bind(this));
  }

}

exports.default = PayPalHandler;

/***/ })

}]);
//# sourceMappingURL=paypal-button.a8f3d929735cca75a572.bundle.js.mapPK!(ܐ
�6�6:assets/js/table-of-contents.0744140055afdd9bf411.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["table-of-contents"],{

/***/ "../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js":
/*!*************************************************************************************!*\
  !*** ../modules/table-of-contents/assets/js/frontend/handlers/table-of-contents.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class TOCHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    const elementSettings = this.getElementSettings(),
          listWrapperTag = 'numbers' === elementSettings.marker_view ? 'ol' : 'ul';
    return {
      selectors: {
        widgetContainer: '.elementor-widget-container',
        postContentContainer: '.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"]):not([data-elementor-type="popup"])',
        expandButton: '.elementor-toc__toggle-button--expand',
        collapseButton: '.elementor-toc__toggle-button--collapse',
        body: '.elementor-toc__body',
        headerTitle: '.elementor-toc__header-title'
      },
      classes: {
        anchor: 'elementor-menu-anchor',
        listWrapper: 'elementor-toc__list-wrapper',
        listItem: 'elementor-toc__list-item',
        listTextWrapper: 'elementor-toc__list-item-text-wrapper',
        firstLevelListItem: 'elementor-toc__top-level',
        listItemText: 'elementor-toc__list-item-text',
        activeItem: 'elementor-item-active',
        headingAnchor: 'elementor-toc__heading-anchor',
        collapsed: 'elementor-toc--collapsed'
      },
      listWrapperTag
    };
  }

  getDefaultElements() {
    const settings = this.getSettings();
    return {
      $pageContainer: this.getContainer(),
      $widgetContainer: this.$element.find(settings.selectors.widgetContainer),
      $expandButton: this.$element.find(settings.selectors.expandButton),
      $collapseButton: this.$element.find(settings.selectors.collapseButton),
      $tocBody: this.$element.find(settings.selectors.body),
      $listItems: this.$element.find('.' + settings.classes.listItem)
    };
  }

  getContainer() {
    const settings = this.getSettings(),
          elementSettings = this.getElementSettings(); // If there is a custom container defined by the user, use it as the headings-scan container

    if (elementSettings.container) {
      return jQuery(elementSettings.container);
    } // Get the document wrapper element in which the TOC is located


    const $documentWrapper = this.$element.parents('.elementor'); // If the TOC container is a popup, only scan the popup for headings

    if ('popup' === $documentWrapper.attr('data-elementor-type')) {
      return $documentWrapper;
    } // If the TOC container is anything other than a popup, scan only the post/page content for headings


    return jQuery(settings.selectors.postContentContainer);
  }

  bindEvents() {
    const elementSettings = this.getElementSettings();

    if (elementSettings.minimize_box) {
      this.elements.$expandButton.on('click', () => this.expandBox());
      this.elements.$collapseButton.on('click', () => this.collapseBox());
    }

    if (elementSettings.collapse_subitems) {
      this.elements.$listItems.on('hover', event => jQuery(event.target).slideToggle());
    }
  }

  getHeadings() {
    // Get all headings from document by user-selected tags
    const elementSettings = this.getElementSettings(),
          tags = elementSettings.headings_by_tags.join(','),
          selectors = this.getSettings('selectors'),
          excludedSelectors = elementSettings.exclude_headings_by_selector;
    return this.elements.$pageContainer.find(tags).not(selectors.headerTitle).filter((index, heading) => {
      return !jQuery(heading).closest(excludedSelectors).length; // Handle excluded selectors if there are any
    });
  }

  addAnchorsBeforeHeadings() {
    const classes = this.getSettings('classes'); // Add an anchor element right before each TOC heading to create anchors for TOC links

    this.elements.$headings.before(index => {
      // Check if the heading element itself has an ID, or if it is a widget which includes a main heading element, whether the widget wrapper has an ID
      if (jQuery(this.elements.$headings[index]).data('hasOwnID')) {
        return;
      }

      return `<span id="${classes.headingAnchor}-${index}" class="${classes.anchor} "></span>`;
    });
  }

  activateItem($listItem) {
    const classes = this.getSettings('classes');
    this.deactivateActiveItem($listItem);
    $listItem.addClass(classes.activeItem);
    this.$activeItem = $listItem;

    if (!this.getElementSettings('collapse_subitems')) {
      return;
    }

    let $activeList;

    if ($listItem.hasClass(classes.firstLevelListItem)) {
      $activeList = $listItem.parent().next();
    } else {
      $activeList = $listItem.parents('.' + classes.listWrapper).eq(-2);
    }

    if (!$activeList.length) {
      delete this.$activeList;
      return;
    }

    this.$activeList = $activeList;
    this.$activeList.stop().slideDown();
  }

  deactivateActiveItem($activeToBe) {
    if (!this.$activeItem || this.$activeItem.is($activeToBe)) {
      return;
    }

    const {
      classes
    } = this.getSettings();
    this.$activeItem.removeClass(classes.activeItem);

    if (this.$activeList && (!$activeToBe || !this.$activeList[0].contains($activeToBe[0]))) {
      this.$activeList.slideUp();
    }
  }

  followAnchor($element, index) {
    const anchorSelector = $element[0].hash;
    let $anchor;

    try {
      // `decodeURIComponent` for UTF8 characters in the hash.
      $anchor = jQuery(decodeURIComponent(anchorSelector));
    } catch (e) {
      return;
    }

    elementorFrontend.waypoint($anchor, direction => {
      if (this.itemClicked) {
        return;
      }

      const id = $anchor.attr('id');

      if ('down' === direction) {
        this.viewportItems[id] = true;
        this.activateItem($element);
      } else {
        delete this.viewportItems[id];
        this.activateItem(this.$listItemTexts.eq(index - 1));
      }
    }, {
      offset: 'bottom-in-view',
      triggerOnce: false
    });
    elementorFrontend.waypoint($anchor, direction => {
      if (this.itemClicked) {
        return;
      }

      const id = $anchor.attr('id');

      if ('down' === direction) {
        delete this.viewportItems[id];

        if (Object.keys(this.viewportItems).length) {
          this.activateItem(this.$listItemTexts.eq(index + 1));
        }
      } else {
        this.viewportItems[id] = true;
        this.activateItem($element);
      }
    }, {
      offset: 0,
      triggerOnce: false
    });
  }

  followAnchors() {
    this.$listItemTexts.each((index, element) => this.followAnchor(jQuery(element), index));
  }

  populateTOC() {
    this.listItemPointer = 0;
    const elementSettings = this.getElementSettings();

    if (elementSettings.hierarchical_view) {
      this.createNestedList();
    } else {
      this.createFlatList();
    }

    this.$listItemTexts = this.$element.find('.elementor-toc__list-item-text');
    this.$listItemTexts.on('click', this.onListItemClick.bind(this));

    if (!elementorFrontend.isEditMode()) {
      this.followAnchors();
    }
  }

  createNestedList() {
    this.headingsData.forEach((heading, index) => {
      heading.level = 0;

      for (let i = index - 1; i >= 0; i--) {
        const currentOrderedItem = this.headingsData[i];

        if (currentOrderedItem.tag <= heading.tag) {
          heading.level = currentOrderedItem.level;

          if (currentOrderedItem.tag < heading.tag) {
            heading.level++;
          }

          break;
        }
      }
    });
    this.elements.$tocBody.html(this.getNestedLevel(0));
  }

  createFlatList() {
    this.elements.$tocBody.html(this.getNestedLevel());
  }

  getNestedLevel(level) {
    const settings = this.getSettings(),
          elementSettings = this.getElementSettings(),
          icon = this.getElementSettings('icon');
    let renderedIcon;

    if (icon) {
      // We generate the icon markup in PHP and make it available via get_frontend_settings(). As a result, the
      // rendered icon is not available in the editor, so in the editor we use the regular <i> tag.
      if (elementorFrontend.config.experimentalFeatures.e_font_icon_svg && !elementorFrontend.isEditMode()) {
        renderedIcon = icon.rendered_tag;
      } else {
        renderedIcon = `<i class="${icon.value}"></i>`;
      }
    } // Open new list/nested list


    let html = `<${settings.listWrapperTag} class="${settings.classes.listWrapper}">`; // for each list item, build its markup.

    while (this.listItemPointer < this.headingsData.length) {
      const currentItem = this.headingsData[this.listItemPointer];
      let listItemTextClasses = settings.classes.listItemText;

      if (0 === currentItem.level) {
        // If the current list item is a top level item, give it the first level class
        listItemTextClasses += ' ' + settings.classes.firstLevelListItem;
      }

      if (level > currentItem.level) {
        break;
      }

      if (level === currentItem.level) {
        html += `<li class="${settings.classes.listItem}">`;
        html += `<div class="${settings.classes.listTextWrapper}">`;
        let liContent = `<a href="#${currentItem.anchorLink}" class="${listItemTextClasses}">${currentItem.text}</a>`; // If list type is bullets, add the bullet icon as an <i> tag

        if ('bullets' === elementSettings.marker_view && icon) {
          liContent = `${renderedIcon}${liContent}`;
        }

        html += liContent;
        html += '</div>';
        this.listItemPointer++;
        const nextItem = this.headingsData[this.listItemPointer];

        if (nextItem && level < nextItem.level) {
          // If a new nested list has to be created under the current item,
          // this entire method is called recursively (outside the while loop, a list wrapper is created)
          html += this.getNestedLevel(nextItem.level);
        }

        html += '</li>';
      }
    }

    html += `</${settings.listWrapperTag}>`;
    return html;
  }

  handleNoHeadingsFound() {
    let noHeadingsText = elementorProFrontend.config.i18n.toc_no_headings_found;

    if (elementorFrontend.isEditMode()) {
      noHeadingsText = elementorPro.translate('toc_no_headings_found');
    }

    return this.elements.$tocBody.html(noHeadingsText);
  }

  collapseOnInit() {
    const minimizedOn = this.getElementSettings('minimized_on'),
          currentDeviceMode = elementorFrontend.getCurrentDeviceMode();

    if ('tablet' === minimizedOn && 'desktop' !== currentDeviceMode || 'mobile' === minimizedOn && 'mobile' === currentDeviceMode) {
      this.collapseBox();
    }
  }

  getHeadingAnchorLink(index, classes) {
    const headingID = this.elements.$headings[index].id,
          wrapperID = this.elements.$headings[index].closest('.elementor-widget').id;
    let anchorLink = '';

    if (headingID) {
      anchorLink = headingID;
    } else if (wrapperID) {
      // If the heading itself has an ID, we don't want to overwrite it
      anchorLink = wrapperID;
    } // If there is no existing ID, use the heading text to create a semantic ID


    if (headingID || wrapperID) {
      jQuery(this.elements.$headings[index]).data('hasOwnID', true);
    } else {
      anchorLink = `${classes.headingAnchor}-${index}`;
    }

    return anchorLink;
  }

  setHeadingsData() {
    this.headingsData = [];
    const classes = this.getSettings('classes'); // Create an array for simplifying TOC list creation

    this.elements.$headings.each((index, element) => {
      const anchorLink = this.getHeadingAnchorLink(index, classes);
      this.headingsData.push({
        tag: +element.nodeName.slice(1),
        text: element.textContent,
        anchorLink
      });
    });
  }

  run() {
    this.elements.$headings = this.getHeadings();

    if (!this.elements.$headings.length) {
      return this.handleNoHeadingsFound();
    }

    this.setHeadingsData();

    if (!elementorFrontend.isEditMode()) {
      this.addAnchorsBeforeHeadings();
    }

    this.populateTOC();

    if (this.getElementSettings('minimize_box')) {
      this.collapseOnInit();
    }
  }

  expandBox() {
    const boxHeight = this.getCurrentDeviceSetting('min_height');
    this.$element.removeClass(this.getSettings('classes.collapsed'));
    this.elements.$tocBody.slideDown(); // return container to the full height in case a min-height is defined by the user

    this.elements.$widgetContainer.css('min-height', boxHeight.size + boxHeight.unit);
  }

  collapseBox() {
    this.$element.addClass(this.getSettings('classes.collapsed'));
    this.elements.$tocBody.slideUp(); // close container in case a min-height is defined by the user

    this.elements.$widgetContainer.css('min-height', '0px');
  }

  onInit(...args) {
    super.onInit(...args);
    this.viewportItems = [];
    jQuery(() => this.run());
  }

  onListItemClick(event) {
    this.itemClicked = true;
    setTimeout(() => this.itemClicked = false, 2000);
    const $clickedItem = jQuery(event.target),
          $list = $clickedItem.parent().next(),
          collapseNestedList = this.getElementSettings('collapse_subitems');
    let listIsActive;

    if (collapseNestedList && $clickedItem.hasClass(this.getSettings('classes.firstLevelListItem'))) {
      if ($list.is(':visible')) {
        listIsActive = true;
      }
    }

    this.activateItem($clickedItem);

    if (collapseNestedList && listIsActive) {
      $list.slideUp();
    }
  }

}

exports.default = TOCHandler;

/***/ })

}]);
//# sourceMappingURL=table-of-contents.0744140055afdd9bf411.bundle.js.mapPK!,b�w��;assets/js/code-highlight.dc74fd78a051eda07b3a.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[714],{3929:(e,l)=>{"use strict";Object.defineProperty(l,"__esModule",{value:!0}),l.default=void 0;class codeHighlightHandler extends elementorModules.frontend.handlers.Base{onInit(...e){super.onInit(...e),Prism.highlightAllUnder(this.$element[0],!1)}onElementChange(){Prism.highlightAllUnder(this.$element[0],!1)}}l.default=codeHighlightHandler}}]);PK!�́4;2;2:assets/js/animated-headline.0ccd23763059df7affcc.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["animated-headline"],{

/***/ "../assets/dev/js/frontend/utils/scroll.js":
/*!*************************************************!*\
  !*** ../assets/dev/js/frontend/utils/scroll.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

if (window.elementorCommon) {
  window.elementorCommon.helpers.softDeprecated('Scroll util from "/dev/js/frontend/utils/scroll"', '3.1.0', 'elementorModules.utils.Scroll');
}

var _default = elementorModules.utils.Scroll;
exports.default = _default;

/***/ }),

/***/ "../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js":
/*!**************************************************************************************!*\
  !*** ../modules/animated-headline/assets/js/frontend/handlers/animated-headlines.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _scroll = _interopRequireDefault(__webpack_require__(/*! elementor-pro/frontend/utils/scroll */ "../assets/dev/js/frontend/utils/scroll.js"));

var _default = elementorModules.frontend.handlers.Base.extend({
  svgPaths: {
    circle: ['M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7'],
    underline_zigzag: ['M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9'],
    x: ['M497.4,23.9C301.6,40,155.9,80.6,4,144.4', 'M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7'],
    strikethrough: ['M3,75h493.5'],
    curly: ['M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6'],
    diagonal: ['M13.5,15.5c131,13.7,289.3,55.5,475,125.5'],
    double: ['M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2', 'M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8'],
    double_underline: ['M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6', 'M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4'],
    underline: ['M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7']
  },

  getDefaultSettings() {
    const iterationDelay = this.getElementSettings('rotate_iteration_delay'),
          settings = {
      animationDelay: iterationDelay || 2500,
      //letters effect
      lettersDelay: iterationDelay * 0.02 || 50,
      //typing effect
      typeLettersDelay: iterationDelay * 0.06 || 150,
      selectionDuration: iterationDelay * 0.2 || 500,
      //clip effect
      revealDuration: iterationDelay * 0.24 || 600,
      revealAnimationDelay: iterationDelay * 0.6 || 1500,
      // Highlighted headline
      highlightAnimationDuration: this.getElementSettings('highlight_animation_duration') || 1200,
      highlightAnimationDelay: this.getElementSettings('highlight_iteration_delay') || 8000
    };
    settings.typeAnimationDelay = settings.selectionDuration + 800;
    settings.selectors = {
      headline: '.elementor-headline',
      dynamicWrapper: '.elementor-headline-dynamic-wrapper',
      dynamicText: '.elementor-headline-dynamic-text'
    };
    settings.classes = {
      dynamicText: 'elementor-headline-dynamic-text',
      dynamicLetter: 'elementor-headline-dynamic-letter',
      textActive: 'elementor-headline-text-active',
      textInactive: 'elementor-headline-text-inactive',
      letters: 'elementor-headline-letters',
      animationIn: 'elementor-headline-animation-in',
      typeSelected: 'elementor-headline-typing-selected',
      activateHighlight: 'e-animated',
      hideHighlight: 'e-hide-highlight'
    };
    return settings;
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $headline: this.$element.find(selectors.headline),
      $dynamicWrapper: this.$element.find(selectors.dynamicWrapper),
      $dynamicText: this.$element.find(selectors.dynamicText)
    };
  },

  getNextWord($word) {
    return $word.is(':last-child') ? $word.parent().children().eq(0) : $word.next();
  },

  switchWord($oldWord, $newWord) {
    $oldWord.removeClass('elementor-headline-text-active').addClass('elementor-headline-text-inactive');
    $newWord.removeClass('elementor-headline-text-inactive').addClass('elementor-headline-text-active');
    this.setDynamicWrapperWidth($newWord);
  },

  singleLetters() {
    var classes = this.getSettings('classes');
    this.elements.$dynamicText.each(function () {
      var $word = jQuery(this),
          letters = $word.text().split(''),
          isActive = $word.hasClass(classes.textActive);
      $word.empty();
      letters.forEach(function (letter) {
        var $letter = jQuery('<span>', {
          class: classes.dynamicLetter
        }).text(letter);

        if (isActive) {
          $letter.addClass(classes.animationIn);
        }

        $word.append($letter);
      });
      $word.css('opacity', 1);
    });
  },

  showLetter($letter, $word, bool, duration) {
    var self = this,
        classes = this.getSettings('classes');
    $letter.addClass(classes.animationIn);

    if (!$letter.is(':last-child')) {
      setTimeout(function () {
        self.showLetter($letter.next(), $word, bool, duration);
      }, duration);
    } else if (!bool) {
      setTimeout(function () {
        self.hideWord($word);
      }, self.getSettings('animationDelay'));
    }
  },

  hideLetter($letter, $word, bool, duration) {
    var self = this,
        settings = this.getSettings();
    $letter.removeClass(settings.classes.animationIn);

    if (!$letter.is(':last-child')) {
      setTimeout(function () {
        self.hideLetter($letter.next(), $word, bool, duration);
      }, duration);
    } else if (bool) {
      setTimeout(function () {
        self.hideWord(self.getNextWord($word));
      }, self.getSettings('animationDelay'));
    }
  },

  showWord($word, $duration) {
    var self = this,
        settings = self.getSettings(),
        animationType = self.getElementSettings('animation_type');

    if ('typing' === animationType) {
      self.showLetter($word.find('.' + settings.classes.dynamicLetter).eq(0), $word, false, $duration);
      $word.addClass(settings.classes.textActive).removeClass(settings.classes.textInactive);
    } else if ('clip' === animationType) {
      self.elements.$dynamicWrapper.animate({
        width: $word.width() + 10
      }, settings.revealDuration, function () {
        setTimeout(function () {
          self.hideWord($word);
        }, settings.revealAnimationDelay);
      });
    }
  },

  hideWord($word) {
    var self = this,
        settings = self.getSettings(),
        classes = settings.classes,
        letterSelector = '.' + classes.dynamicLetter,
        animationType = self.getElementSettings('animation_type'),
        nextWord = self.getNextWord($word);

    if (!this.isLoopMode && $word.is(':last-child')) {
      return;
    }

    if ('typing' === animationType) {
      self.elements.$dynamicWrapper.addClass(classes.typeSelected);
      setTimeout(function () {
        self.elements.$dynamicWrapper.removeClass(classes.typeSelected);
        $word.addClass(settings.classes.textInactive).removeClass(classes.textActive).children(letterSelector).removeClass(classes.animationIn);
      }, settings.selectionDuration);
      setTimeout(function () {
        self.showWord(nextWord, settings.typeLettersDelay);
      }, settings.typeAnimationDelay);
    } else if (self.elements.$headline.hasClass(classes.letters)) {
      var bool = $word.children(letterSelector).length >= nextWord.children(letterSelector).length;
      self.hideLetter($word.find(letterSelector).eq(0), $word, bool, settings.lettersDelay);
      self.showLetter(nextWord.find(letterSelector).eq(0), nextWord, bool, settings.lettersDelay);
      self.setDynamicWrapperWidth(nextWord);
    } else if ('clip' === animationType) {
      self.elements.$dynamicWrapper.animate({
        width: '2px'
      }, settings.revealDuration, function () {
        self.switchWord($word, nextWord);
        self.showWord(nextWord);
      });
    } else {
      self.switchWord($word, nextWord);
      setTimeout(function () {
        self.hideWord(nextWord);
      }, settings.animationDelay);
    }
  },

  setDynamicWrapperWidth($word) {
    const animationType = this.getElementSettings('animation_type');

    if ('clip' !== animationType && 'typing' !== animationType) {
      this.elements.$dynamicWrapper.css('width', $word.width());
    }
  },

  animateHeadline() {
    var self = this,
        animationType = self.getElementSettings('animation_type'),
        $dynamicWrapper = self.elements.$dynamicWrapper;

    if ('clip' === animationType) {
      $dynamicWrapper.width($dynamicWrapper.width() + 10);
    } else if ('typing' !== animationType) {
      self.setDynamicWrapperWidth(self.elements.$dynamicText);
    } //trigger animation


    setTimeout(function () {
      self.hideWord(self.elements.$dynamicText.eq(0));
    }, self.getSettings('animationDelay'));
  },

  getSvgPaths(pathName) {
    var pathsInfo = this.svgPaths[pathName],
        $paths = jQuery();
    pathsInfo.forEach(function (pathInfo) {
      $paths = $paths.add(jQuery('<path>', {
        d: pathInfo
      }));
    });
    return $paths;
  },

  addHighlight() {
    const elementSettings = this.getElementSettings(),
          $svg = jQuery('<svg>', {
      xmlns: 'http://www.w3.org/2000/svg',
      viewBox: '0 0 500 150',
      preserveAspectRatio: 'none'
    }).html(this.getSvgPaths(elementSettings.marker));
    this.elements.$dynamicWrapper.append($svg[0].outerHTML);
  },

  rotateHeadline() {
    var settings = this.getSettings(); //insert <span> for each letter of a changing word

    if (this.elements.$headline.hasClass(settings.classes.letters)) {
      this.singleLetters();
    } //initialise headline animation


    this.animateHeadline();
  },

  initHeadline() {
    const headlineStyle = this.getElementSettings('headline_style');

    if ('rotate' === headlineStyle) {
      this.rotateHeadline();
    } else if ('highlight' === headlineStyle) {
      this.addHighlight();
      this.activateHighlightAnimation();
    }

    this.deactivateScrollListener();
  },

  activateHighlightAnimation() {
    const settings = this.getSettings(),
          classes = settings.classes,
          $headline = this.elements.$headline;
    $headline.removeClass(classes.hideHighlight).addClass(classes.activateHighlight);

    if (!this.isLoopMode) {
      return;
    }

    setTimeout(() => {
      $headline.removeClass(classes.activateHighligh).addClass(classes.hideHighlight);
    }, settings.highlightAnimationDuration + settings.highlightAnimationDelay * .8);
    setTimeout(() => {
      this.activateHighlightAnimation(false);
    }, settings.highlightAnimationDuration + settings.highlightAnimationDelay);
  },

  activateScrollListener() {
    const scrollBuffer = -100;
    this.intersectionObservers.startAnimation.observer = _scroll.default.scrollObserver({
      offset: `0px 0px ${scrollBuffer}px`,
      callback: event => {
        if (event.isInViewport) {
          this.initHeadline();
        }
      }
    });
    this.intersectionObservers.startAnimation.element = this.elements.$headline[0];
    this.intersectionObservers.startAnimation.observer.observe(this.intersectionObservers.startAnimation.element);
  },

  deactivateScrollListener() {
    this.intersectionObservers.startAnimation.observer.unobserve(this.intersectionObservers.startAnimation.element);
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.intersectionObservers = {
      startAnimation: {
        observer: null,
        element: null
      }
    };
    this.isLoopMode = 'yes' === this.getElementSettings('loop');
    this.activateScrollListener();
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=animated-headline.0ccd23763059df7affcc.bundle.js.mapPK!o`�\\assets/js/preview.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js":
/*!***********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/create.js ***!
  \***********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/create */ "../node_modules/core-js/library/fn/object/create.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js":
/*!********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js ***!
  \********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/define-property */ "../node_modules/core-js/library/fn/object/define-property.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/get-prototype-of */ "../node_modules/core-js/library/fn/object/get-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js":
/*!*********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js ***!
  \*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/object/set-prototype-of */ "../node_modules/core-js/library/fn/object/set-prototype-of.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js":
/*!***************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js ***!
  \***************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/reflect/construct */ "../node_modules/core-js/library/fn/reflect/construct.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol */ "../node_modules/core-js/library/fn/symbol/index.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js":
/*!*************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js ***!
  \*************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! core-js/library/fn/symbol/iterator */ "../node_modules/core-js/library/fn/symbol/iterator.js");

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js ***!
  \************************************************************************/
/***/ ((module) => {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createClass.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;

    _Object$defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js":
/*!*********************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/createSuper.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js");

var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js");

var possibleConstructorReturn = __webpack_require__(/*! ./possibleConstructorReturn.js */ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js");

function _createSuper(Derived) {
  var hasNativeReflectConstruct = isNativeReflectConstruct();
  return function _createSuperInternal() {
    var Super = getPrototypeOf(Derived),
        result;

    if (hasNativeReflectConstruct) {
      var NewTarget = getPrototypeOf(this).constructor;
      result = _Reflect$construct(Super, arguments, NewTarget);
    } else {
      result = Super.apply(this, arguments);
    }

    return possibleConstructorReturn(this, result);
  };
}

module.exports = _createSuper;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/getPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

var _Object$getPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/get-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js");

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = _Object$setPrototypeOf ? _Object$getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || _Object$getPrototypeOf(o);
  };
  module.exports.default = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js":
/*!******************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/inherits.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$create = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/create */ "../node_modules/@babel/runtime-corejs2/core-js/object/create.js");

var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = _Object$create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js":
/*!*******************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js ***!
  \*******************************************************************************/
/***/ ((module) => {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js":
/*!**********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/isNativeReflectConstruct.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Reflect$construct = __webpack_require__(/*! @babel/runtime-corejs2/core-js/reflect/construct */ "../node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js");

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !_Reflect$construct) return false;
  if (_Reflect$construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

module.exports = _isNativeReflectConstruct;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js":
/*!***********************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/possibleConstructorReturn.js ***!
  \***********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _typeof = __webpack_require__(/*! @babel/runtime-corejs2/helpers/typeof */ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js").default;

var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime-corejs2/helpers/assertThisInitialized.js");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js":
/*!************************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/setPrototypeOf.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Object$setPrototypeOf = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/set-prototype-of */ "../node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js");

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = _Object$setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports.default = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../node_modules/@babel/runtime-corejs2/helpers/typeof.js":
/*!****************************************************************!*\
  !*** ../node_modules/@babel/runtime-corejs2/helpers/typeof.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var _Symbol = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol */ "../node_modules/@babel/runtime-corejs2/core-js/symbol.js");

var _Symbol$iterator = __webpack_require__(/*! @babel/runtime-corejs2/core-js/symbol/iterator */ "../node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js");

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof _Symbol === "function" && typeof _Symbol$iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof _Symbol === "function" && obj.constructor === _Symbol && obj !== _Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports.default = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports.default = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "../assets/dev/js/preview/preview.js":
/*!*******************************************!*\
  !*** ../assets/dev/js/preview/preview.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _Object$defineProperty = __webpack_require__(/*! @babel/runtime-corejs2/core-js/object/define-property */ "../node_modules/@babel/runtime-corejs2/core-js/object/define-property.js");

var _interopRequireDefault = __webpack_require__(/*! @babel/runtime-corejs2/helpers/interopRequireDefault */ "../node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js");

_Object$defineProperty(exports, "__esModule", {
  value: true
});

exports.default = void 0;

__webpack_require__(/*! core-js/modules/es7.promise.finally.js */ "../node_modules/core-js/modules/es7.promise.finally.js");

__webpack_require__(/*! core-js/modules/es6.object.to-string.js */ "../node_modules/core-js/modules/es6.object.to-string.js");

__webpack_require__(/*! core-js/modules/es6.promise.js */ "../node_modules/core-js/modules/es6.promise.js");

var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/classCallCheck */ "../node_modules/@babel/runtime-corejs2/helpers/classCallCheck.js"));

var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createClass */ "../node_modules/@babel/runtime-corejs2/helpers/createClass.js"));

var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/inherits */ "../node_modules/@babel/runtime-corejs2/helpers/inherits.js"));

var _createSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime-corejs2/helpers/createSuper */ "../node_modules/@babel/runtime-corejs2/helpers/createSuper.js"));

var Preview = /*#__PURE__*/function (_elementorModules$Vie) {
  (0, _inherits2.default)(Preview, _elementorModules$Vie);

  var _super = (0, _createSuper2.default)(Preview);

  function Preview() {
    var _this;

    (0, _classCallCheck2.default)(this, Preview);
    _this = _super.call(this);
    elementorFrontend.on('components:init', function () {
      return _this.onFrontendComponentsInit();
    });
    return _this;
  }

  (0, _createClass2.default)(Preview, [{
    key: "createDocumentsHandles",
    value: function createDocumentsHandles() {
      var _this2 = this;

      jQuery.each(elementorFrontend.documentsManager.documents, function (index, document) {
        var $documentElement = document.$element;

        if ($documentElement.hasClass('elementor-edit-mode')) {
          return;
        }

        var $existingHandle = document.$element.children('.elementor-document-handle');

        if ($existingHandle.length) {
          return;
        }

        var $handle = jQuery('<div>', {
          class: 'elementor-document-handle'
        }),
            $handleIcon = jQuery('<i>', {
          class: 'eicon-edit'
        }),
            documentTitle = $documentElement.data('elementor-title'),
            $handleTitle = jQuery('<div>', {
          class: 'elementor-document-handle__title'
        }).text(elementorPro.translate('edit_element', [documentTitle]));
        $handle.append($handleIcon, $handleTitle);
        $handle.on('click', function () {
          return _this2.onDocumentHandleClick(document);
        });
        $documentElement.prepend($handle);
      });
    }
  }, {
    key: "onDocumentHandleClick",
    value: function onDocumentHandleClick(document) {
      elementorCommon.api.internal('panel/state-loading');
      elementorCommon.api.run('editor/documents/switch', {
        id: document.getSettings('id')
      }).finally(function () {
        return elementorCommon.api.internal('panel/state-ready');
      });
    }
  }, {
    key: "onFrontendComponentsInit",
    value: function onFrontendComponentsInit() {
      var _this3 = this;

      this.createDocumentsHandles();
      elementor.on('document:loaded', function () {
        return _this3.createDocumentsHandles();
      });
    }
  }]);
  return Preview;
}(elementorModules.ViewModule);

exports.default = Preview;
window.elementorProPreview = new Preview();

/***/ }),

/***/ "../node_modules/core-js/library/fn/object/create.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/create.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.create */ "../node_modules/core-js/library/modules/es6.object.create.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function create(P, D) {
  return $Object.create(P, D);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/define-property.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/define-property.js ***!
  \********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.define-property */ "../node_modules/core-js/library/modules/es6.object.define-property.js");
var $Object = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object;
module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/get-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/get-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.get-prototype-of */ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.getPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/object/set-prototype-of.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/fn/object/set-prototype-of.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.object.set-prototype-of */ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Object.setPrototypeOf;


/***/ }),

/***/ "../node_modules/core-js/library/fn/reflect/construct.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/fn/reflect/construct.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.reflect.construct */ "../node_modules/core-js/library/modules/es6.reflect.construct.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Reflect.construct;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/index.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/index.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.symbol */ "../node_modules/core-js/library/modules/es6.symbol.js");
__webpack_require__(/*! ../../modules/es6.object.to-string */ "../node_modules/core-js/library/modules/es6.object.to-string.js");
__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js");
__webpack_require__(/*! ../../modules/es7.symbol.observable */ "../node_modules/core-js/library/modules/es7.symbol.observable.js");
module.exports = __webpack_require__(/*! ../../modules/_core */ "../node_modules/core-js/library/modules/_core.js").Symbol;


/***/ }),

/***/ "../node_modules/core-js/library/fn/symbol/iterator.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/fn/symbol/iterator.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ../../modules/es6.string.iterator */ "../node_modules/core-js/library/modules/es6.string.iterator.js");
__webpack_require__(/*! ../../modules/web.dom.iterable */ "../node_modules/core-js/library/modules/web.dom.iterable.js");
module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js").f('iterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_a-function.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_a-function.js ***!
  \**************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_add-to-unscopables.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_add-to-unscopables.js ***!
  \**********************************************************************/
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ "../node_modules/core-js/library/modules/_an-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_an-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_array-includes.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_array-includes.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/library/modules/_to-length.js");
var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "../node_modules/core-js/library/modules/_to-absolute-index.js");
module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_bind.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_bind.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/library/modules/_invoke.js");
var arraySlice = [].slice;
var factories = {};

var construct = function (F, len, args) {
  if (!(len in factories)) {
    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
    // eslint-disable-next-line no-new-func
    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
  } return factories[len](F, args);
};

module.exports = Function.bind || function bind(that /* , ...args */) {
  var fn = aFunction(this);
  var partArgs = arraySlice.call(arguments, 1);
  var bound = function (/* args... */) {
    var args = partArgs.concat(arraySlice.call(arguments));
    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
  };
  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
  return bound;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_cof.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_cof.js ***!
  \*******************************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_core.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_core.js ***!
  \********************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ctx.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ctx.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_defined.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_defined.js ***!
  \***********************************************************/
/***/ ((module) => {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_descriptors.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_descriptors.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_dom-create.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_dom-create.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-bug-keys.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-bug-keys.js ***!
  \*****************************************************************/
/***/ ((module) => {

// IE 8- don't enum bug keys
module.exports = (
  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');


/***/ }),

/***/ "../node_modules/core-js/library/modules/_enum-keys.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_enum-keys.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_export.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_export.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue;
    // export native or passed
    out = own ? target[key] : source[key];
    // prevent global pollution for namespaces
    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
    // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global)
    // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? (function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0: return new C();
            case 1: return new C(a);
            case 2: return new C(a, b);
          } return new C(a, b, c);
        } return C.apply(this, arguments);
      };
      F[PROTOTYPE] = C[PROTOTYPE];
      return F;
    // make static versions for prototype methods
    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out;
      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
};
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_fails.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_fails.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_global.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_global.js ***!
  \**********************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/library/modules/_has.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_has.js ***!
  \*******************************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_hide.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_hide.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_html.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_html.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_ie8-dom-define.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_ie8-dom-define.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_invoke.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_invoke.js ***!
  \**********************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iobject.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iobject.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
// eslint-disable-next-line no-prototype-builtins
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-array.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-array.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/library/modules/_cof.js");
module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_is-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_is-object.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-create.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-create.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var descriptor = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var IteratorPrototype = {};

// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator'), function () { return this; });

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
  setToStringTag(Constructor, NAME + ' Iterator');
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-define.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-define.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var $iterCreate = __webpack_require__(/*! ./_iter-create */ "../node_modules/core-js/library/modules/_iter-create.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () { return this; };

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);
  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];
    switch (kind) {
      case KEYS: return function keys() { return new Constructor(this, kind); };
      case VALUES: return function values() { return new Constructor(this, kind); };
    } return function entries() { return new Constructor(this, kind); };
  };
  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype;
  // Fix native
  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true);
      // fix for some old engines
      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  }
  // fix Array#{values, @@iterator}.name in V8 / FF
  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;
    $default = function values() { return $native.call(this); };
  }
  // Define iterator
  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  }
  // Plug for library
  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;
  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }
  return methods;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iter-step.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iter-step.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = function (done, value) {
  return { value: value, done: !!done };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_iterators.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_iterators.js ***!
  \*************************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_library.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_library.js ***!
  \***********************************************************/
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_meta.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_meta.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var META = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js")('meta');
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var setDesc = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
  return true;
};
var FREEZE = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js")(function () {
  return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
  setDesc(it, META, { value: {
    i: 'O' + ++id, // object ID
    w: {}          // weak collections IDs
  } });
};
var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F';
    // not necessary to add metadata
    if (!create) return 'E';
    // add missing metadata
    setMeta(it);
  // return object ID
  } return it[META].i;
};
var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true;
    // not necessary to add metadata
    if (!create) return false;
    // add missing metadata
    setMeta(it);
  // return hash weak collections IDs
  } return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};
var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-create.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-create.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var dPs = __webpack_require__(/*! ./_object-dps */ "../node_modules/core-js/library/modules/_object-dps.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE = 'prototype';

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/library/modules/_dom-create.js")('iframe');
  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';
  __webpack_require__(/*! ./_html */ "../node_modules/core-js/library/modules/_html.js").appendChild(iframe);
  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;
  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = createDict();
  return Properties === undefined ? result : dPs(result, Properties);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dp.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dp.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-dps.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-dps.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var getKeys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");

module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;
  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopd.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopd.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var pIE = __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/library/modules/_ie8-dom-define.js");
var gOPD = Object.getOwnPropertyDescriptor;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) { /* empty */ }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn-ext.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn-ext.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var gOPN = __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f;
var toString = {}.toString;

var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
  ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gopn.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gopn.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gops.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gops.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-gpo.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-gpo.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');
var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];
  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  } return O instanceof Object ? ObjectProto : null;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys-internal.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys-internal.js ***!
  \************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "../node_modules/core-js/library/modules/_array-includes.js")(false);
var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "../node_modules/core-js/library/modules/_shared-key.js")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }
  return result;
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-keys.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-keys.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__(/*! ./_object-keys-internal */ "../node_modules/core-js/library/modules/_object-keys-internal.js");
var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "../node_modules/core-js/library/modules/_enum-bug-keys.js");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-pie.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-pie.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

exports.f = {}.propertyIsEnumerable;


/***/ }),

/***/ "../node_modules/core-js/library/modules/_object-sap.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_object-sap.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_property-desc.js":
/*!*****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_property-desc.js ***!
  \*****************************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_redefine.js":
/*!************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_redefine.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-proto.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-proto.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
    function (test, buggy, set) {
      try {
        set = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/library/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2);
        set(test, []);
        buggy = !(test instanceof Array);
      } catch (e) { buggy = true; }
      return function setPrototypeOf(O, proto) {
        check(O, proto);
        if (buggy) O.__proto__ = proto;
        else set(O, proto);
        return O;
      };
    }({}, false) : undefined),
  check: check
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_set-to-string-tag.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_set-to-string-tag.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared-key.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared-key.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('keys');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_shared.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_shared.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/_string-at.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_string-at.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
// true  -> String#at
// false -> String#codePointAt
module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
      ? TO_STRING ? s.charAt(i) : a
      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-absolute-index.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-absolute-index.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-integer.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-integer.js ***!
  \**************************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-iobject.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-iobject.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(/*! ./_iobject */ "../node_modules/core-js/library/modules/_iobject.js");
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return IObject(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-length.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-length.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/library/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-object.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-object.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__(/*! ./_defined */ "../node_modules/core-js/library/modules/_defined.js");
module.exports = function (it) {
  return Object(defined(it));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_to-primitive.js":
/*!****************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_to-primitive.js ***!
  \****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_uid.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_uid.js ***!
  \*******************************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-define.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-define.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/library/modules/_core.js");
var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var defineProperty = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks-ext.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks-ext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

exports.f = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");


/***/ }),

/***/ "../node_modules/core-js/library/modules/_wks.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/library/modules/_wks.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.array.iterator.js":
/*!*********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.array.iterator.js ***!
  \*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "../node_modules/core-js/library/modules/_add-to-unscopables.js");
var step = __webpack_require__(/*! ./_iter-step */ "../node_modules/core-js/library/modules/_iter-step.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");

// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = __webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target
  this._i = 0;                   // next index
  this._k = kind;                // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;
  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }
  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;

addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.create.js":
/*!********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.create.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js") });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.define-property.js":
/*!*****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.define-property.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js").f });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.get-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.get-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "../node_modules/core-js/library/modules/_object-gpo.js");

__webpack_require__(/*! ./_object-sap */ "../node_modules/core-js/library/modules/_object-sap.js")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.set-prototype-of.js":
/*!******************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.set-prototype-of.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "../node_modules/core-js/library/modules/_set-proto.js").set });


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.object.to-string.js":
/*!***********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.object.to-string.js ***!
  \***********************************************************************/
/***/ (() => {



/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.reflect.construct.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.reflect.construct.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/library/modules/_a-function.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var bind = __webpack_require__(/*! ./_bind */ "../node_modules/core-js/library/modules/_bind.js");
var rConstruct = (__webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js").Reflect || {}).construct;

// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
var NEW_TARGET_BUG = fails(function () {
  function F() { /* empty */ }
  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
var ARGS_BUG = !fails(function () {
  rConstruct(function () { /* empty */ });
});

$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
  construct: function construct(Target, args /* , newTarget */) {
    aFunction(Target);
    anObject(args);
    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
    if (Target == newTarget) {
      // w/o altered newTarget, optimization for 0-4 arguments
      switch (args.length) {
        case 0: return new Target();
        case 1: return new Target(args[0]);
        case 2: return new Target(args[0], args[1]);
        case 3: return new Target(args[0], args[1], args[2]);
        case 4: return new Target(args[0], args[1], args[2], args[3]);
      }
      // w/o altered newTarget, lot of arguments case
      var $args = [null];
      $args.push.apply($args, args);
      return new (bind.apply(Target, $args))();
    }
    // with altered newTarget, not support built-in constructors
    var proto = newTarget.prototype;
    var instance = create(isObject(proto) ? proto : Object.prototype);
    var result = Function.apply.call(Target, instance, args);
    return isObject(result) ? result : instance;
  }
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.string.iterator.js":
/*!**********************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.string.iterator.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $at = __webpack_require__(/*! ./_string-at */ "../node_modules/core-js/library/modules/_string-at.js")(true);

// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(/*! ./_iter-define */ "../node_modules/core-js/library/modules/_iter-define.js")(String, 'String', function (iterated) {
  this._t = String(iterated); // target
  this._i = 0;                // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return { value: undefined, done: true };
  point = $at(O, index);
  this._i += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ "../node_modules/core-js/library/modules/es6.symbol.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es6.symbol.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// ECMAScript 6 symbols shim
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/library/modules/_has.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/library/modules/_descriptors.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/library/modules/_export.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/library/modules/_redefine.js");
var META = __webpack_require__(/*! ./_meta */ "../node_modules/core-js/library/modules/_meta.js").KEY;
var $fails = __webpack_require__(/*! ./_fails */ "../node_modules/core-js/library/modules/_fails.js");
var shared = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/library/modules/_shared.js");
var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/library/modules/_set-to-string-tag.js");
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/library/modules/_uid.js");
var wks = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js");
var wksExt = __webpack_require__(/*! ./_wks-ext */ "../node_modules/core-js/library/modules/_wks-ext.js");
var wksDefine = __webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js");
var enumKeys = __webpack_require__(/*! ./_enum-keys */ "../node_modules/core-js/library/modules/_enum-keys.js");
var isArray = __webpack_require__(/*! ./_is-array */ "../node_modules/core-js/library/modules/_is-array.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/library/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/library/modules/_is-object.js");
var toObject = __webpack_require__(/*! ./_to-object */ "../node_modules/core-js/library/modules/_to-object.js");
var toIObject = __webpack_require__(/*! ./_to-iobject */ "../node_modules/core-js/library/modules/_to-iobject.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/library/modules/_to-primitive.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/library/modules/_property-desc.js");
var _create = __webpack_require__(/*! ./_object-create */ "../node_modules/core-js/library/modules/_object-create.js");
var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "../node_modules/core-js/library/modules/_object-gopn-ext.js");
var $GOPD = __webpack_require__(/*! ./_object-gopd */ "../node_modules/core-js/library/modules/_object-gopd.js");
var $GOPS = __webpack_require__(/*! ./_object-gops */ "../node_modules/core-js/library/modules/_object-gops.js");
var $DP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/library/modules/_object-dp.js");
var $keys = __webpack_require__(/*! ./_object-keys */ "../node_modules/core-js/library/modules/_object-keys.js");
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;

// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () { return dP(this, 'a', { value: 7 }).a; }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);
  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, { enumerable: createDesc(0, false) });
    } return setSymbolDesc(it, key, D);
  } return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;
  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
  return it;
};
var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  } return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;
  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  } return result;
};

// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };
    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
    return wrap(tag);
  };
  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });

  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__(/*! ./_object-gopn */ "../node_modules/core-js/library/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__(/*! ./_object-pie */ "../node_modules/core-js/library/modules/_object-pie.js").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "../node_modules/core-js/library/modules/_library.js")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });

for (var es6Symbols = (
  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '')
      ? SymbolRegistry[key]
      : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () { setter = true; },
  useSimple: function () { setter = false; }
});

$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
});

// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });

$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
});

// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol();
  // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols
  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;
    while (arguments.length > i) args.push(arguments[i++]);
    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
});

// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.async-iterator.js":
/*!****************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.async-iterator.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('asyncIterator');


/***/ }),

/***/ "../node_modules/core-js/library/modules/es7.symbol.observable.js":
/*!************************************************************************!*\
  !*** ../node_modules/core-js/library/modules/es7.symbol.observable.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./_wks-define */ "../node_modules/core-js/library/modules/_wks-define.js")('observable');


/***/ }),

/***/ "../node_modules/core-js/library/modules/web.dom.iterable.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/library/modules/web.dom.iterable.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(/*! ./es6.array.iterator */ "../node_modules/core-js/library/modules/es6.array.iterator.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/library/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/library/modules/_hide.js");
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/library/modules/_iterators.js");
var TO_STRING_TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/library/modules/_wks.js")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
  'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}


/***/ }),

/***/ "../node_modules/core-js/modules/_a-function.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_a-function.js ***!
  \******************************************************/
/***/ ((module) => {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-instance.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_an-instance.js ***!
  \*******************************************************/
/***/ ((module) => {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
    throw TypeError(name + ': incorrect invocation!');
  } return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_an-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_an-object.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_classof.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_classof.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');
// ES3 wrong here
var ARG = cof(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) { /* empty */ }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
    // builtinTag case
    : ARG ? cof(O)
    // ES3 arguments fallback
    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_cof.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_cof.js ***!
  \***********************************************/
/***/ ((module) => {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_core.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_core.js ***!
  \************************************************/
/***/ ((module) => {

var core = module.exports = { version: '2.6.12' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_ctx.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_ctx.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// optional / simple context binding
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;
  switch (length) {
    case 1: return function (a) {
      return fn.call(that, a);
    };
    case 2: return function (a, b) {
      return fn.call(that, a, b);
    };
    case 3: return function (a, b, c) {
      return fn.call(that, a, b, c);
    };
  }
  return function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_descriptors.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_descriptors.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_dom-create.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_dom-create.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
// typeof document.createElement is 'object' in old IE
var is = isObject(document) && isObject(document.createElement);
module.exports = function (it) {
  return is ? document.createElement(it) : {};
};


/***/ }),

/***/ "../node_modules/core-js/modules/_export.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_export.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
  var key, own, out, exp;
  if (IS_GLOBAL) source = name;
  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    // export native or passed
    out = (own ? target : source)[key];
    // bind timers to global for call from export context
    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
    // extend global
    if (target) redefine(target, key, out, type & $export.U);
    // export
    if (exports[key] != out) hide(exports, key, exp);
    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
  }
};
global.core = core;
// type bitmap
$export.F = 1;   // forced
$export.G = 2;   // global
$export.S = 4;   // static
$export.P = 8;   // proto
$export.B = 16;  // bind
$export.W = 32;  // wrap
$export.U = 64;  // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;


/***/ }),

/***/ "../node_modules/core-js/modules/_fails.js":
/*!*************************************************!*\
  !*** ../node_modules/core-js/modules/_fails.js ***!
  \*************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_for-of.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_for-of.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var call = __webpack_require__(/*! ./_iter-call */ "../node_modules/core-js/modules/_iter-call.js");
var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "../node_modules/core-js/modules/_is-array-iter.js");
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var toLength = __webpack_require__(/*! ./_to-length */ "../node_modules/core-js/modules/_to-length.js");
var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "../node_modules/core-js/modules/core.get-iterator-method.js");
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
  // fast case for arrays with default iterator
  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;


/***/ }),

/***/ "../node_modules/core-js/modules/_function-to-string.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/_function-to-string.js ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString);


/***/ }),

/***/ "../node_modules/core-js/modules/_global.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_global.js ***!
  \**************************************************/
/***/ ((module) => {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
  ? window : typeof self != 'undefined' && self.Math == Math ? self
  // eslint-disable-next-line no-new-func
  : Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef


/***/ }),

/***/ "../node_modules/core-js/modules/_has.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_has.js ***!
  \***********************************************/
/***/ ((module) => {

var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_hide.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_hide.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var createDesc = __webpack_require__(/*! ./_property-desc */ "../node_modules/core-js/modules/_property-desc.js");
module.exports = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_html.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_html.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var document = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").document;
module.exports = document && document.documentElement;


/***/ }),

/***/ "../node_modules/core-js/modules/_ie8-dom-define.js":
/*!**********************************************************!*\
  !*** ../node_modules/core-js/modules/_ie8-dom-define.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

module.exports = !__webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "../node_modules/core-js/modules/_fails.js")(function () {
  return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7;
});


/***/ }),

/***/ "../node_modules/core-js/modules/_invoke.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_invoke.js ***!
  \**************************************************/
/***/ ((module) => {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;
  switch (args.length) {
    case 0: return un ? fn()
                      : fn.call(that);
    case 1: return un ? fn(args[0])
                      : fn.call(that, args[0]);
    case 2: return un ? fn(args[0], args[1])
                      : fn.call(that, args[0], args[1]);
    case 3: return un ? fn(args[0], args[1], args[2])
                      : fn.call(that, args[0], args[1], args[2]);
    case 4: return un ? fn(args[0], args[1], args[2], args[3])
                      : fn.call(that, args[0], args[1], args[2], args[3]);
  } return fn.apply(that, args);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-array-iter.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_is-array-iter.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// check on default Array iterator
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_is-object.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_is-object.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-call.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-call.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
  // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iter-detect.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_iter-detect.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();
  riter['return'] = function () { SAFE_CLOSING = true; };
  // eslint-disable-next-line no-throw-literal
  Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;
  try {
    var arr = [7];
    var iter = arr[ITERATOR]();
    iter.next = function () { return { done: safe = true }; };
    arr[ITERATOR] = function () { return iter; };
    exec(arr);
  } catch (e) { /* empty */ }
  return safe;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_iterators.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_iterators.js ***!
  \*****************************************************/
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ "../node_modules/core-js/modules/_library.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_library.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = false;


/***/ }),

/***/ "../node_modules/core-js/modules/_microtask.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_microtask.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var macrotask = __webpack_require__(/*! ./_task */ "../node_modules/core-js/modules/_task.js").set;
var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (e) {
        if (head) notify();
        else last = undefined;
        throw e;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // Node.js
  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    };
  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);
    notify = function () {
      promise.then(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = { fn: fn, next: undefined };
    if (last) last.next = task;
    if (!head) {
      head = task;
      notify();
    } last = task;
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_new-promise-capability.js":
/*!******************************************************************!*\
  !*** ../node_modules/core-js/modules/_new-promise-capability.js ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 25.4.1.5 NewPromiseCapability(C)
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_object-dp.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_object-dp.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "../node_modules/core-js/modules/_ie8-dom-define.js");
var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "../node_modules/core-js/modules/_to-primitive.js");
var dP = Object.defineProperty;

exports.f = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_perform.js":
/*!***************************************************!*\
  !*** ../node_modules/core-js/modules/_perform.js ***!
  \***************************************************/
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { e: false, v: exec() };
  } catch (e) {
    return { e: true, v: e };
  }
};


/***/ }),

/***/ "../node_modules/core-js/modules/_promise-resolve.js":
/*!***********************************************************!*\
  !*** ../node_modules/core-js/modules/_promise-resolve.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/modules/_new-promise-capability.js");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_property-desc.js":
/*!*********************************************************!*\
  !*** ../node_modules/core-js/modules/_property-desc.js ***!
  \*********************************************************/
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine-all.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine-all.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var redefine = __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js");
module.exports = function (target, src, safe) {
  for (var key in src) redefine(target, key, src[key], safe);
  return target;
};


/***/ }),

/***/ "../node_modules/core-js/modules/_redefine.js":
/*!****************************************************!*\
  !*** ../node_modules/core-js/modules/_redefine.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var hide = __webpack_require__(/*! ./_hide */ "../node_modules/core-js/modules/_hide.js");
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var SRC = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js")('src');
var $toString = __webpack_require__(/*! ./_function-to-string */ "../node_modules/core-js/modules/_function-to-string.js");
var TO_STRING = 'toString';
var TPL = ('' + $toString).split(TO_STRING);

__webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").inspectSource = function (it) {
  return $toString.call(it);
};

(module.exports = function (O, key, val, safe) {
  var isFunction = typeof val == 'function';
  if (isFunction) has(val, 'name') || hide(val, 'name', key);
  if (O[key] === val) return;
  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
  if (O === global) {
    O[key] = val;
  } else if (!safe) {
    delete O[key];
    hide(O, key, val);
  } else if (O[key]) {
    O[key] = val;
  } else {
    hide(O, key, val);
  }
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
  return typeof this == 'function' && this[SRC] || $toString.call(this);
});


/***/ }),

/***/ "../node_modules/core-js/modules/_set-species.js":
/*!*******************************************************!*\
  !*** ../node_modules/core-js/modules/_set-species.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var dP = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js");
var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "../node_modules/core-js/modules/_descriptors.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');

module.exports = function (KEY) {
  var C = global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () { return this; }
  });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_set-to-string-tag.js":
/*!*************************************************************!*\
  !*** ../node_modules/core-js/modules/_set-to-string-tag.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var def = __webpack_require__(/*! ./_object-dp */ "../node_modules/core-js/modules/_object-dp.js").f;
var has = __webpack_require__(/*! ./_has */ "../node_modules/core-js/modules/_has.js");
var TAG = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};


/***/ }),

/***/ "../node_modules/core-js/modules/_shared.js":
/*!**************************************************!*\
  !*** ../node_modules/core-js/modules/_shared.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});


/***/ }),

/***/ "../node_modules/core-js/modules/_species-constructor.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/_species-constructor.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__(/*! ./_an-object */ "../node_modules/core-js/modules/_an-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
var SPECIES = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species');
module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_task.js":
/*!************************************************!*\
  !*** ../node_modules/core-js/modules/_task.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var invoke = __webpack_require__(/*! ./_invoke */ "../node_modules/core-js/modules/_invoke.js");
var html = __webpack_require__(/*! ./_html */ "../node_modules/core-js/modules/_html.js");
var cel = __webpack_require__(/*! ./_dom-create */ "../node_modules/core-js/modules/_dom-create.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
  var id = +this;
  // eslint-disable-next-line no-prototype-builtins
  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};
var listener = function (event) {
  run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;
    while (arguments.length > i) args.push(arguments[i++]);
    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };
    defer(counter);
    return counter;
  };
  clearTask = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (__webpack_require__(/*! ./_cof */ "../node_modules/core-js/modules/_cof.js")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    };
  // Browsers with MessageChannel, includes WebWorkers
  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}
module.exports = {
  set: setTask,
  clear: clearTask
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-integer.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_to-integer.js ***!
  \******************************************************/
/***/ ((module) => {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-length.js":
/*!*****************************************************!*\
  !*** ../node_modules/core-js/modules/_to-length.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.15 ToLength
var toInteger = __webpack_require__(/*! ./_to-integer */ "../node_modules/core-js/modules/_to-integer.js");
var min = Math.min;
module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};


/***/ }),

/***/ "../node_modules/core-js/modules/_to-primitive.js":
/*!********************************************************!*\
  !*** ../node_modules/core-js/modules/_to-primitive.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ "../node_modules/core-js/modules/_uid.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_uid.js ***!
  \***********************************************/
/***/ ((module) => {

var id = 0;
var px = Math.random();
module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};


/***/ }),

/***/ "../node_modules/core-js/modules/_user-agent.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/_user-agent.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var navigator = global.navigator;

module.exports = navigator && navigator.userAgent || '';


/***/ }),

/***/ "../node_modules/core-js/modules/_wks.js":
/*!***********************************************!*\
  !*** ../node_modules/core-js/modules/_wks.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var store = __webpack_require__(/*! ./_shared */ "../node_modules/core-js/modules/_shared.js")('wks');
var uid = __webpack_require__(/*! ./_uid */ "../node_modules/core-js/modules/_uid.js");
var Symbol = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js").Symbol;
var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] =
    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;


/***/ }),

/***/ "../node_modules/core-js/modules/core.get-iterator-method.js":
/*!*******************************************************************!*\
  !*** ../node_modules/core-js/modules/core.get-iterator-method.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var ITERATOR = __webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('iterator');
var Iterators = __webpack_require__(/*! ./_iterators */ "../node_modules/core-js/modules/_iterators.js");
module.exports = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR]
    || it['@@iterator']
    || Iterators[classof(it)];
};


/***/ }),

/***/ "../node_modules/core-js/modules/es6.object.to-string.js":
/*!***************************************************************!*\
  !*** ../node_modules/core-js/modules/es6.object.to-string.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// 19.1.3.6 Object.prototype.toString()
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var test = {};
test[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z';
if (test + '' != '[object z]') {
  __webpack_require__(/*! ./_redefine */ "../node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() {
    return '[object ' + classof(this) + ']';
  }, true);
}


/***/ }),

/***/ "../node_modules/core-js/modules/es6.promise.js":
/*!******************************************************!*\
  !*** ../node_modules/core-js/modules/es6.promise.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var LIBRARY = __webpack_require__(/*! ./_library */ "../node_modules/core-js/modules/_library.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var ctx = __webpack_require__(/*! ./_ctx */ "../node_modules/core-js/modules/_ctx.js");
var classof = __webpack_require__(/*! ./_classof */ "../node_modules/core-js/modules/_classof.js");
var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var isObject = __webpack_require__(/*! ./_is-object */ "../node_modules/core-js/modules/_is-object.js");
var aFunction = __webpack_require__(/*! ./_a-function */ "../node_modules/core-js/modules/_a-function.js");
var anInstance = __webpack_require__(/*! ./_an-instance */ "../node_modules/core-js/modules/_an-instance.js");
var forOf = __webpack_require__(/*! ./_for-of */ "../node_modules/core-js/modules/_for-of.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/modules/_species-constructor.js");
var task = __webpack_require__(/*! ./_task */ "../node_modules/core-js/modules/_task.js").set;
var microtask = __webpack_require__(/*! ./_microtask */ "../node_modules/core-js/modules/_microtask.js")();
var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "../node_modules/core-js/modules/_new-promise-capability.js");
var perform = __webpack_require__(/*! ./_perform */ "../node_modules/core-js/modules/_perform.js");
var userAgent = __webpack_require__(/*! ./_user-agent */ "../node_modules/core-js/modules/_user-agent.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/modules/_promise-resolve.js");
var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "../node_modules/core-js/modules/_wks.js")('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function')
      && promise.then(empty) instanceof FakePromise
      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
      // we can't detect it synchronously, so just check versions
      && v8.indexOf('6.6') !== 0
      && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) { /* empty */ }
}();

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;
    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;
      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }
          if (handler === true) result = value;
          else {
            if (domain) domain.enter();
            result = handler(value); // may throw
            if (domain) {
              domain.exit();
              exited = true;
            }
          }
          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };
    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};
var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;
    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({ promise: promise, reason: value });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    } promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};
var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;
    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({ promise: promise, reason: promise._v });
    }
  });
};
var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};
var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap
  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");
    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = { _w: promise, _d: false }; // wrap
        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({ _w: promise, _d: false }, e); // wrap
  }
};

// constructor polyfill
if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);
    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  };
  // eslint-disable-next-line no-unused-vars
  Internal = function Promise(executor) {
    this._c = [];             // <- awaiting reactions
    this._a = undefined;      // <- checked in isUnhandled reactions
    this._s = 0;              // <- state
    this._d = false;          // <- done
    this._v = undefined;      // <- value
    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
    this._n = false;          // <- notify
  };
  Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "../node_modules/core-js/modules/_redefine-all.js")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;
      this._c.push(reaction);
      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
__webpack_require__(/*! ./_set-to-string-tag */ "../node_modules/core-js/modules/_set-to-string-tag.js")($Promise, PROMISE);
__webpack_require__(/*! ./_set-species */ "../node_modules/core-js/modules/_set-species.js")(PROMISE);
Wrapper = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js")[PROMISE];

// statics
$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "../node_modules/core-js/modules/_iter-detect.js")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});


/***/ }),

/***/ "../node_modules/core-js/modules/es7.promise.finally.js":
/*!**************************************************************!*\
  !*** ../node_modules/core-js/modules/es7.promise.finally.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
// https://github.com/tc39/proposal-promise-finally

var $export = __webpack_require__(/*! ./_export */ "../node_modules/core-js/modules/_export.js");
var core = __webpack_require__(/*! ./_core */ "../node_modules/core-js/modules/_core.js");
var global = __webpack_require__(/*! ./_global */ "../node_modules/core-js/modules/_global.js");
var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "../node_modules/core-js/modules/_species-constructor.js");
var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "../node_modules/core-js/modules/_promise-resolve.js");

$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
  var C = speciesConstructor(this, core.Promise || global.Promise);
  var isFunction = typeof onFinally == 'function';
  return this.then(
    isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () { return x; });
    } : onFinally,
    isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () { throw e; });
    } : onFinally
  );
} });


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module is referenced by other modules so it can't be inlined
/******/ 	var __webpack_exports__ = __webpack_require__("../assets/dev/js/preview/preview.js");
/******/ 	
/******/ })()
;
//# sourceMappingURL=preview.js.mapPK!�����>assets/js/animated-headline.37960d9fb9ab8b6e43cd.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[26],{9237:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,window.elementorCommon&&window.elementorCommon.helpers.softDeprecated('Scroll util from "/dev/js/frontend/utils/scroll"',"3.1.0","elementorModules.utils.Scroll");var i=elementorModules.utils.Scroll;t.default=i},7750:(e,t,i)=>{"use strict";var n=i(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=n(i(9237)),a=elementorModules.frontend.handlers.Base.extend({svgPaths:{circle:["M325,18C228.7-8.3,118.5,8.3,78,21C22.4,38.4,4.6,54.6,5.6,77.6c1.4,32.4,52.2,54,142.6,63.7 c66.2,7.1,212.2,7.5,273.5-8.3c64.4-16.6,104.3-57.6,33.8-98.2C386.7-4.9,179.4-1.4,126.3,20.7"],underline_zigzag:["M9.3,127.3c49.3-3,150.7-7.6,199.7-7.4c121.9,0.4,189.9,0.4,282.3,7.2C380.1,129.6,181.2,130.6,70,139 c82.6-2.9,254.2-1,335.9,1.3c-56,1.4-137.2-0.3-197.1,9"],x:["M497.4,23.9C301.6,40,155.9,80.6,4,144.4","M14.1,27.6c204.5,20.3,393.8,74,467.3,111.7"],strikethrough:["M3,75h493.5"],curly:["M3,146.1c17.1-8.8,33.5-17.8,51.4-17.8c15.6,0,17.1,18.1,30.2,18.1c22.9,0,36-18.6,53.9-18.6 c17.1,0,21.3,18.5,37.5,18.5c21.3,0,31.8-18.6,49-18.6c22.1,0,18.8,18.8,36.8,18.8c18.8,0,37.5-18.6,49-18.6c20.4,0,17.1,19,36.8,19 c22.9,0,36.8-20.6,54.7-18.6c17.7,1.4,7.1,19.5,33.5,18.8c17.1,0,47.2-6.5,61.1-15.6"],diagonal:["M13.5,15.5c131,13.7,289.3,55.5,475,125.5"],double:["M8.4,143.1c14.2-8,97.6-8.8,200.6-9.2c122.3-0.4,287.5,7.2,287.5,7.2","M8,19.4c72.3-5.3,162-7.8,216-7.8c54,0,136.2,0,267,7.8"],double_underline:["M5,125.4c30.5-3.8,137.9-7.6,177.3-7.6c117.2,0,252.2,4.7,312.7,7.6","M26.9,143.8c55.1-6.1,126-6.3,162.2-6.1c46.5,0.2,203.9,3.2,268.9,6.4"],underline:["M7.7,145.6C109,125,299.9,116.2,401,121.3c42.1,2.2,87.6,11.8,87.3,25.7"]},getDefaultSettings(){const e=this.getElementSettings("rotate_iteration_delay"),t={animationDelay:e||2500,lettersDelay:.02*e||50,typeLettersDelay:.06*e||150,selectionDuration:.2*e||500,revealDuration:.24*e||600,revealAnimationDelay:.6*e||1500,highlightAnimationDuration:this.getElementSettings("highlight_animation_duration")||1200,highlightAnimationDelay:this.getElementSettings("highlight_iteration_delay")||8e3};return t.typeAnimationDelay=t.selectionDuration+800,t.selectors={headline:".elementor-headline",dynamicWrapper:".elementor-headline-dynamic-wrapper",dynamicText:".elementor-headline-dynamic-text"},t.classes={dynamicText:"elementor-headline-dynamic-text",dynamicLetter:"elementor-headline-dynamic-letter",textActive:"elementor-headline-text-active",textInactive:"elementor-headline-text-inactive",letters:"elementor-headline-letters",animationIn:"elementor-headline-animation-in",typeSelected:"elementor-headline-typing-selected",activateHighlight:"e-animated",hideHighlight:"e-hide-highlight"},t},getDefaultElements(){var e=this.getSettings("selectors");return{$headline:this.$element.find(e.headline),$dynamicWrapper:this.$element.find(e.dynamicWrapper),$dynamicText:this.$element.find(e.dynamicText)}},getNextWord:e=>e.is(":last-child")?e.parent().children().eq(0):e.next(),switchWord(e,t){e.removeClass("elementor-headline-text-active").addClass("elementor-headline-text-inactive"),t.removeClass("elementor-headline-text-inactive").addClass("elementor-headline-text-active"),this.setDynamicWrapperWidth(t)},singleLetters(){var e=this.getSettings("classes");this.elements.$dynamicText.each((function(){var t=jQuery(this),i=t.text().split(""),n=t.hasClass(e.textActive);t.empty(),i.forEach((function(i){var s=jQuery("<span>",{class:e.dynamicLetter}).text(i);n&&s.addClass(e.animationIn),t.append(s)})),t.css("opacity",1)}))},showLetter(e,t,i,n){var s=this,a=this.getSettings("classes");e.addClass(a.animationIn),e.is(":last-child")?i||setTimeout((function(){s.hideWord(t)}),s.getSettings("animationDelay")):setTimeout((function(){s.showLetter(e.next(),t,i,n)}),n)},hideLetter(e,t,i,n){var s=this,a=this.getSettings();e.removeClass(a.classes.animationIn),e.is(":last-child")?i&&setTimeout((function(){s.hideWord(s.getNextWord(t))}),s.getSettings("animationDelay")):setTimeout((function(){s.hideLetter(e.next(),t,i,n)}),n)},showWord(e,t){var i=this,n=i.getSettings(),s=i.getElementSettings("animation_type");"typing"===s?(i.showLetter(e.find("."+n.classes.dynamicLetter).eq(0),e,!1,t),e.addClass(n.classes.textActive).removeClass(n.classes.textInactive)):"clip"===s&&i.elements.$dynamicWrapper.animate({width:e.width()+10},n.revealDuration,(function(){setTimeout((function(){i.hideWord(e)}),n.revealAnimationDelay)}))},hideWord(e){var t=this,i=t.getSettings(),n=i.classes,s="."+n.dynamicLetter,a=t.getElementSettings("animation_type"),l=t.getNextWord(e);if(this.isLoopMode||!e.is(":last-child"))if("typing"===a)t.elements.$dynamicWrapper.addClass(n.typeSelected),setTimeout((function(){t.elements.$dynamicWrapper.removeClass(n.typeSelected),e.addClass(i.classes.textInactive).removeClass(n.textActive).children(s).removeClass(n.animationIn)}),i.selectionDuration),setTimeout((function(){t.showWord(l,i.typeLettersDelay)}),i.typeAnimationDelay);else if(t.elements.$headline.hasClass(n.letters)){var r=e.children(s).length>=l.children(s).length;t.hideLetter(e.find(s).eq(0),e,r,i.lettersDelay),t.showLetter(l.find(s).eq(0),l,r,i.lettersDelay),t.setDynamicWrapperWidth(l)}else"clip"===a?t.elements.$dynamicWrapper.animate({width:"2px"},i.revealDuration,(function(){t.switchWord(e,l),t.showWord(l)})):(t.switchWord(e,l),setTimeout((function(){t.hideWord(l)}),i.animationDelay))},setDynamicWrapperWidth(e){const t=this.getElementSettings("animation_type");"clip"!==t&&"typing"!==t&&this.elements.$dynamicWrapper.css("width",e.width())},animateHeadline(){var e=this,t=e.getElementSettings("animation_type"),i=e.elements.$dynamicWrapper;"clip"===t?i.width(i.width()+10):"typing"!==t&&e.setDynamicWrapperWidth(e.elements.$dynamicText),setTimeout((function(){e.hideWord(e.elements.$dynamicText.eq(0))}),e.getSettings("animationDelay"))},getSvgPaths(e){var t=this.svgPaths[e],i=jQuery();return t.forEach((function(e){i=i.add(jQuery("<path>",{d:e}))})),i},addHighlight(){const e=this.getElementSettings(),t=jQuery("<svg>",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 500 150",preserveAspectRatio:"none"}).html(this.getSvgPaths(e.marker));this.elements.$dynamicWrapper.append(t[0].outerHTML)},rotateHeadline(){var e=this.getSettings();this.elements.$headline.hasClass(e.classes.letters)&&this.singleLetters(),this.animateHeadline()},initHeadline(){const e=this.getElementSettings("headline_style");"rotate"===e?this.rotateHeadline():"highlight"===e&&(this.addHighlight(),this.activateHighlightAnimation()),this.deactivateScrollListener()},activateHighlightAnimation(){const e=this.getSettings(),t=e.classes,i=this.elements.$headline;i.removeClass(t.hideHighlight).addClass(t.activateHighlight),this.isLoopMode&&(setTimeout((()=>{i.removeClass(t.activateHighligh).addClass(t.hideHighlight)}),e.highlightAnimationDuration+.8*e.highlightAnimationDelay),setTimeout((()=>{this.activateHighlightAnimation(!1)}),e.highlightAnimationDuration+e.highlightAnimationDelay))},activateScrollListener(){this.intersectionObservers.startAnimation.observer=s.default.scrollObserver({offset:"0px 0px -100px",callback:e=>{e.isInViewport&&this.initHeadline()}}),this.intersectionObservers.startAnimation.element=this.elements.$headline[0],this.intersectionObservers.startAnimation.observer.observe(this.intersectionObservers.startAnimation.element)},deactivateScrollListener(){this.intersectionObservers.startAnimation.observer.unobserve(this.intersectionObservers.startAnimation.element)},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.intersectionObservers={startAnimation:{observer:null,element:null}},this.isLoopMode="yes"===this.getElementSettings("loop"),this.activateScrollListener()}});t.default=a}}]);PK!Mt@�EOEOassets/js/frontend.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[819],{5526:e=>{e.exports=function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},7914:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},3713:(e,t,n)=>{"use strict";var s=n(7914);n(3258);var i=s(n(8442)),o=s(n(9253)),r=s(n(4552)),a=s(n(1498)),l=s(n(1336)),c=s(n(1177));class ElementorProFrontend extends elementorModules.ViewModule{onInit(){super.onInit(),this.config=ElementorProFrontendConfig,this.modules={}}bindEvents(){jQuery(window).on("elementor/frontend/init",this.onElementorFrontendInit.bind(this))}initModules(){let e={motionFX:i.default,sticky:o.default,codeHighlight:r.default,videoPlaylist:a.default,payments:l.default,progressTracker:c.default};elementorProFrontend.trigger("elementor-pro/modules/init:before"),e=elementorFrontend.hooks.applyFilters("elementor-pro/frontend/handlers",e),jQuery.each(e,((e,t)=>{this.modules[e]=new t})),this.modules.linkActions={addAction:(...e)=>{elementorFrontend.utils.urlActions.addAction(...e)}}}onElementorFrontendInit(){this.initModules()}}window.elementorProFrontend=new ElementorProFrontend},3258:(e,t,n)=>{"use strict";n.p=ElementorProFrontendConfig.urls.assets+"js/"},4552:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("code-highlight",(()=>n.e(714).then(n.bind(n,3929))))}}t.default=_default},8442:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(5542));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("global",i.default,null)}}t.default=_default},5542:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(6829));class _default extends elementorModules.frontend.handlers.Base{__construct(...e){super.__construct(...e),this.toggle=elementorFrontend.debounce(this.toggle,200)}getDefaultSettings(){return{selectors:{container:".elementor-widget-container"}}}getDefaultElements(){const e=this.getSettings("selectors");return{$container:this.$element.find(e.container)}}bindEvents(){elementorFrontend.elements.$window.on("resize",this.toggle)}unbindEvents(){elementorFrontend.elements.$window.off("resize",this.toggle)}addCSSTransformEvents(){this.getElementSettings("motion_fx_motion_fx_scrolling")&&!this.isTransitionEventAdded&&(this.isTransitionEventAdded=!0,this.elements.$container.on("mouseenter",(()=>{this.elements.$container.css("--e-transform-transition-duration","")})))}initEffects(){this.effects={translateY:{interaction:"scroll",actions:["translateY"]},translateX:{interaction:"scroll",actions:["translateX"]},rotateZ:{interaction:"scroll",actions:["rotateZ"]},scale:{interaction:"scroll",actions:["scale"]},opacity:{interaction:"scroll",actions:["opacity"]},blur:{interaction:"scroll",actions:["blur"]},mouseTrack:{interaction:"mouseMove",actions:["translateXY"]},tilt:{interaction:"mouseMove",actions:["tilt"]}}}prepareOptions(e){const t=this.getElementSettings(),n="motion_fx"===e?"element":"background",s={};jQuery.each(t,((n,i)=>{const o=new RegExp("^"+e+"_(.+?)_effect"),r=n.match(o);if(!r||!i)return;const a={},l=r[1];jQuery.each(t,((t,n)=>{const s=new RegExp(e+"_"+l+"_(.+)"),i=t.match(s);if(!i)return;"effect"!==i[1]&&("object"==typeof n&&(n=Object.keys(n.sizes).length?n.sizes:n.size),a[i[1]]=n)}));const c=this.effects[l],d=c.interaction;s[d]||(s[d]={}),c.actions.forEach((e=>s[d][e]=a))}));let i,o=this.$element;const r=this.getElementType();if("element"===n&&"section"!==r){let e;i=o,e="column"===r?elementorFrontend.config.legacyMode.elementWrappers?".elementor-column-wrap":".elementor-widget-wrap":".elementor-widget-container",o=o.find("> "+e)}const a={type:n,interactions:s,elementSettings:t,$element:o,$dimensionsElement:i,refreshDimensions:this.isEdit,range:t[e+"_range"],classes:{element:"elementor-motion-effects-element",parent:"elementor-motion-effects-parent",backgroundType:"elementor-motion-effects-element-type-background",container:"elementor-motion-effects-container",layer:"elementor-motion-effects-layer",perspective:"elementor-motion-effects-perspective"}};return a.range||"fixed"!==this.getCurrentDeviceSetting("_position")||(a.range="page"),"fixed"===this.getCurrentDeviceSetting("_position")&&(a.isFixedPosition=!0),"background"===n&&"column"===this.getElementType()&&(a.addBackgroundLayerTo=" > .elementor-element-populated"),a}activate(e){const t=this.prepareOptions(e);jQuery.isEmptyObject(t.interactions)||(this[e]=new i.default(t))}deactivate(e){this[e]&&(this[e].destroy(),delete this[e])}toggle(){const e=elementorFrontend.getCurrentDeviceMode(),t=this.getElementSettings();["motion_fx","background_motion_fx"].forEach((n=>{const s=t[n+"_devices"];(!s||-1!==s.indexOf(e))&&(t[n+"_motion_fx_scrolling"]||t[n+"_motion_fx_mouse"])?this[n]?this.refreshInstance(n):this.activate(n):this.deactivate(n)}))}refreshInstance(e){const t=this[e];if(!t)return;const n=this.prepareOptions(e);t.setSettings(n),t.refresh()}onInit(){super.onInit(),this.initEffects(),this.addCSSTransformEvents(),this.toggle()}onElementChange(e){if(/motion_fx_((scrolling)|(mouse)|(devices))$/.test(e))return"motion_fx_motion_fx_scrolling"===e&&this.addCSSTransformEvents(),void this.toggle();const t=e.match(".*?(motion_fx|_transform)");if(t){const e=t[0].match("(_transform)")?"motion_fx":t[0];this.refreshInstance(e),this[e]||this.activate(e)}/^_position/.test(e)&&["motion_fx","background_motion_fx"].forEach((e=>{this.refreshInstance(e)}))}onDestroy(){super.onDestroy(),["motion_fx","background_motion_fx"].forEach((e=>{this.deactivate(e)}))}}t.default=_default},8026:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{getMovePointFromPassedPercents(e,t){return+(t/e*100).toFixed(2)}getEffectValueFromMovePoint(e,t){return e*t/100}getStep(e,t){return"element"===this.getSettings("type")?this.getElementStep(e,t):this.getBackgroundStep(e,t)}getElementStep(e,t){return-(e-50)*t.speed}getBackgroundStep(e,t){const n=this.getSettings("dimensions.movable"+t.axis.toUpperCase());return-this.getEffectValueFromMovePoint(n,e)}getDirectionMovePoint(e,t,n){let s;return e<n.start?"out-in"===t?s=0:"in-out"===t?s=100:(s=this.getMovePointFromPassedPercents(n.start,e),"in-out-in"===t&&(s=100-s)):e<n.end?"in-out-in"===t?s=0:"out-in-out"===t?s=100:(s=this.getMovePointFromPassedPercents(n.end-n.start,e-n.start),"in-out"===t&&(s=100-s)):"in-out"===t?s=0:"out-in"===t?s=100:(s=this.getMovePointFromPassedPercents(100-n.end,100-e),"in-out-in"===t&&(s=100-s)),s}translateX(e,t){e.axis="x",e.unit="px",this.transform("translateX",t,e)}translateY(e,t){e.axis="y",e.unit="px",this.transform("translateY",t,e)}translateXY(e,t,n){this.translateX(e,t),this.translateY(e,n)}tilt(e,t,n){const s={speed:e.speed/10,direction:e.direction};this.rotateX(s,n),this.rotateY(s,100-t)}rotateX(e,t){e.axis="x",e.unit="deg",this.transform("rotateX",t,e)}rotateY(e,t){e.axis="y",e.unit="deg",this.transform("rotateY",t,e)}rotateZ(e,t){e.unit="deg",this.transform("rotateZ",t,e)}scale(e,t){const n=this.getDirectionMovePoint(t,e.direction,e.range);this.updateRulePart("transform","scale",1+e.speed*n/1e3)}transform(e,t,n){n.direction&&(t=100-t),this.updateRulePart("transform",e,this.getStep(t,n)+n.unit)}setCSSTransformVariables(e){this.CSSTransformVariables=[],jQuery.each(e,((e,t)=>{const n=e.match(/_transform_(.+?)_effect/m);if(n&&t){if("perspective"===n[1])return void this.CSSTransformVariables.unshift(n[1]);if(this.CSSTransformVariables.includes(n[1]))return;this.CSSTransformVariables.push(n[1])}}))}opacity(e,t){const n=this.getDirectionMovePoint(t,e.direction,e.range),s=e.level/10,i=1-s+this.getEffectValueFromMovePoint(s,n);this.$element.css({opacity:i,"will-change":"opacity"})}blur(e,t){const n=this.getDirectionMovePoint(t,e.direction,e.range),s=e.level-this.getEffectValueFromMovePoint(e.level,n);this.updateRulePart("filter","blur",s+"px")}updateRulePart(e,t,n){this.rulesVariables[e]||(this.rulesVariables[e]={}),this.rulesVariables[e][t]||(this.rulesVariables[e][t]=!0,this.updateRule(e));const s=`--${t}`;this.$element[0].style.setProperty(s,n)}updateRule(e){let t="";t+=this.concatTransformCSSProperties(e),t+=this.concatTransformMotionEffectCSSProperties(e),this.$element.css(e,t)}concatTransformCSSProperties(e){let t="";return"transform"===e&&jQuery.each(this.CSSTransformVariables,((e,n)=>{const s=n;n.startsWith("flip")&&(n=n.replace("flip","scale"));const i=n.startsWith("rotate")||n.startsWith("skew")?"deg":"px",o=n.startsWith("scale")?1:0+i;t+=`${n}(var(--e-transform-${s}, ${o}))`})),t}concatTransformMotionEffectCSSProperties(e){let t="";return jQuery.each(this.rulesVariables[e],(e=>{t+=`${e}(var(--${e}))`})),t}runAction(e,t,n,...s){t.affectedRange&&(t.affectedRange.start>n&&(n=t.affectedRange.start),t.affectedRange.end<n&&(n=t.affectedRange.end)),this[e](t,n,...s)}refresh(){this.rulesVariables={},this.CSSTransformVariables=[],this.$element.css({transform:"",filter:"",opacity:"","will-change":""})}onInit(){this.$element=this.getSettings("$targetElement"),this.refresh()}}t.default=_default},2720:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(5526));class _default extends elementorModules.ViewModule{constructor(...e){super(...e),(0,i.default)(this,"onInsideViewport",(()=>{this.run(),this.animationFrameRequest=requestAnimationFrame(this.onInsideViewport)}))}__construct(e){this.motionFX=e.motionFX,this.intersectionObservers||this.setElementInViewportObserver()}setElementInViewportObserver(){this.intersectionObserver=elementorModules.utils.Scroll.scrollObserver({callback:e=>{e.isInViewport?this.onInsideViewport():this.removeAnimationFrameRequest()}}),this.intersectionObserver.observe(this.motionFX.elements.$parent[0])}runCallback(...e){this.getSettings("callback")(...e)}removeIntersectionObserver(){this.intersectionObserver&&this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0])}removeAnimationFrameRequest(){this.animationFrameRequest&&cancelAnimationFrame(this.animationFrameRequest)}destroy(){this.removeAnimationFrameRequest(),this.removeIntersectionObserver()}onInit(){super.onInit()}}t.default=_default},1545:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(2720));class MouseMoveInteraction extends i.default{bindEvents(){MouseMoveInteraction.mouseTracked||(elementorFrontend.elements.$window.on("mousemove",MouseMoveInteraction.updateMousePosition),MouseMoveInteraction.mouseTracked=!0)}run(){const e=MouseMoveInteraction.mousePosition,t=this.oldMousePosition;if(t.x===e.x&&t.y===e.y)return;this.oldMousePosition={x:e.x,y:e.y};const n=100/innerWidth*e.x,s=100/innerHeight*e.y;this.runCallback(n,s)}onInit(){this.oldMousePosition={},super.onInit()}}t.default=MouseMoveInteraction,MouseMoveInteraction.mousePosition={},MouseMoveInteraction.updateMousePosition=e=>{MouseMoveInteraction.mousePosition={x:e.clientX,y:e.clientY}}},1791:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(2720));class _default extends i.default{run(){if(pageYOffset===this.windowScrollTop)return!1;this.onScrollMovement(),this.windowScrollTop=pageYOffset}onScrollMovement(){this.updateMotionFxDimensions(),this.updateAnimation(),this.resetTransitionVariable()}resetTransitionVariable(){this.motionFX.$element.css("--e-transform-transition-duration","100ms")}updateMotionFxDimensions(){this.motionFX.getSettings().refreshDimensions&&this.motionFX.defineDimensions()}updateAnimation(){let e;e="page"===this.motionFX.getSettings("range")?elementorModules.utils.Scroll.getPageScrollPercentage():this.motionFX.getSettings("isFixedPosition")?elementorModules.utils.Scroll.getPageScrollPercentage({},window.innerHeight):elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent),this.runCallback(e)}}t.default=_default},6829:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(1791)),o=s(n(1545)),r=s(n(8026));class _default extends elementorModules.ViewModule{getDefaultSettings(){return{type:"element",$element:null,$dimensionsElement:null,addBackgroundLayerTo:null,interactions:{},refreshDimensions:!1,range:"viewport",classes:{element:"motion-fx-element",parent:"motion-fx-parent",backgroundType:"motion-fx-element-type-background",container:"motion-fx-container",layer:"motion-fx-layer",perspective:"motion-fx-perspective"}}}bindEvents(){this.onWindowResize=this.onWindowResize.bind(this),elementorFrontend.elements.$window.on("resize",this.onWindowResize)}unbindEvents(){elementorFrontend.elements.$window.off("resize",this.onWindowResize)}addBackgroundLayer(){const e=this.getSettings();this.elements.$motionFXContainer=jQuery("<div>",{class:e.classes.container}),this.elements.$motionFXLayer=jQuery("<div>",{class:e.classes.layer}),this.updateBackgroundLayerSize(),this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);(e.addBackgroundLayerTo?this.$element.find(e.addBackgroundLayerTo):this.$element).prepend(this.elements.$motionFXContainer)}removeBackgroundLayer(){this.elements.$motionFXContainer.remove()}updateBackgroundLayerSize(){const e=this.getSettings(),t={x:0,y:0},n=e.interactions.mouseMove,s=e.interactions.scroll;n&&n.translateXY&&(t.x=10*n.translateXY.speed,t.y=10*n.translateXY.speed),s&&(s.translateX&&(t.x=10*s.translateX.speed),s.translateY&&(t.y=10*s.translateY.speed)),this.elements.$motionFXLayer.css({width:100+t.x+"%",height:100+t.y+"%"})}defineDimensions(){const e=this.getSettings("$dimensionsElement")||this.$element,t=e.offset(),n={elementHeight:e.outerHeight(),elementWidth:e.outerWidth(),elementTop:t.top,elementLeft:t.left};n.elementRange=n.elementHeight+innerHeight,this.setSettings("dimensions",n),"background"===this.getSettings("type")&&this.defineBackgroundLayerDimensions()}defineBackgroundLayerDimensions(){const e=this.getSettings("dimensions");e.layerHeight=this.elements.$motionFXLayer.height(),e.layerWidth=this.elements.$motionFXLayer.width(),e.movableX=e.layerWidth-e.elementWidth,e.movableY=e.layerHeight-e.elementHeight,this.setSettings("dimensions",e)}initInteractionsTypes(){this.interactionsTypes={scroll:i.default,mouseMove:o.default}}prepareSpecialActions(){const e=this.getSettings(),t=!(!e.interactions.mouseMove||!e.interactions.mouseMove.tilt);this.elements.$parent.toggleClass(e.classes.perspective,t)}cleanSpecialActions(){const e=this.getSettings();this.elements.$parent.removeClass(e.classes.perspective)}runInteractions(){const e=this.getSettings();this.actions.setCSSTransformVariables(e.elementSettings),this.prepareSpecialActions(),jQuery.each(e.interactions,((e,t)=>{this.interactions[e]=new this.interactionsTypes[e]({motionFX:this,callback:(...e)=>{jQuery.each(t,((t,n)=>this.actions.runAction(t,n,...e)))}}),this.interactions[e].run()}))}destroyInteractions(){this.cleanSpecialActions(),jQuery.each(this.interactions,((e,t)=>t.destroy())),this.interactions={}}refresh(){this.actions.setSettings(this.getSettings()),"background"===this.getSettings("type")&&(this.updateBackgroundLayerSize(),this.defineBackgroundLayerDimensions()),this.actions.refresh(),this.destroyInteractions(),this.runInteractions()}destroy(){this.destroyInteractions(),this.actions.refresh();const e=this.getSettings();this.$element.removeClass(e.classes.element),this.elements.$parent.removeClass(e.classes.parent),"background"===e.type&&(this.$element.removeClass(e.classes.backgroundType),this.removeBackgroundLayer())}onInit(){super.onInit();const e=this.getSettings();this.$element=e.$element,this.elements.$parent=this.$element.parent(),this.$element.addClass(e.classes.element),this.elements.$parent=this.$element.parent(),this.elements.$parent.addClass(e.classes.parent),"background"===e.type&&(this.$element.addClass(e.classes.backgroundType),this.addBackgroundLayer()),this.defineDimensions(),e.$targetElement="element"===e.type?this.$element:this.elements.$motionFXLayer,this.interactions={},this.actions=new r.default(e),this.initInteractionsTypes(),this.runInteractions()}onWindowResize(){this.defineDimensions()}}t.default=_default},1336:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("paypal-button",(()=>n.e(256).then(n.bind(n,9593))))}}t.default=_default},1177:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("progress-tracker",(()=>n.e(241).then(n.bind(n,6440))))}}t.default=_default},9253:(e,t,n)=>{"use strict";var s=n(7914);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=s(n(8080));class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.elementsHandler.attachHandler("section",i.default,null),elementorFrontend.elementsHandler.attachHandler("widget",i.default,null)}}t.default=_default},8080:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=elementorModules.frontend.handlers.Base.extend({bindEvents(){elementorFrontend.addListenerOnce(this.getUniqueHandlerID()+"sticky","resize",this.run)},unbindEvents(){elementorFrontend.removeListeners(this.getUniqueHandlerID()+"sticky","resize",this.run)},isStickyInstanceActive(){return void 0!==this.$element.data("sticky")},getResponsiveSetting(e){const t=this.getElementSettings();return elementorFrontend.getCurrentDeviceSetting(t,e)},getResponsiveSettingList:e=>["",...Object.keys(elementorFrontend.config.responsive.activeBreakpoints)].map((t=>t?`${e}_${t}`:e)),activate(){var e=this.getElementSettings(),t={to:e.sticky,offset:this.getResponsiveSetting("sticky_offset"),effectsOffset:this.getResponsiveSetting("sticky_effects_offset"),classes:{sticky:"elementor-sticky",stickyActive:"elementor-sticky--active elementor-section--handles-inside",stickyEffects:"elementor-sticky--effects",spacer:"elementor-sticky__spacer"}},n=elementorFrontend.elements.$wpAdminBar;e.sticky_parent&&(t.parent=".elementor-widget-wrap"),n.length&&"top"===e.sticky&&"fixed"===n.css("position")&&(t.offset+=n.height()),this.$element.sticky(t)},deactivate(){this.isStickyInstanceActive()&&this.$element.sticky("destroy")},run(e){if(this.getElementSettings("sticky")){var t=elementorFrontend.getCurrentDeviceMode();-1!==this.getElementSettings("sticky_on").indexOf(t)?!0===e?this.reactivate():this.isStickyInstanceActive()||this.activate():this.deactivate()}else this.deactivate()},reactivate(){this.deactivate(),this.activate()},onElementChange(e){-1!==["sticky","sticky_on"].indexOf(e)&&this.run(!0);-1!==[...this.getResponsiveSettingList("sticky_offset"),...this.getResponsiveSettingList("sticky_effects_offset"),"sticky_parent"].indexOf(e)&&this.reactivate()},onDeviceModeChange(){setTimeout((()=>{this.run(!0)}))},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),elementorFrontend.isEditMode()&&elementor.listenTo(elementor.channels.deviceMode,"change",(()=>this.onDeviceModeChange())),this.run()},onDestroy(){elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this,arguments),this.deactivate()}});t.default=n},1498:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class _default extends elementorModules.Module{constructor(){super(),elementorFrontend.hooks.addAction("frontend/element_ready/video-playlist.default",(e=>{n.e(721).then(n.bind(n,1427)).then((({default:t})=>{elementorFrontend.elementsHandler.addHandler(t,{$element:e,toggleSelf:!1})}))}))}}t.default=_default}},e=>{"use strict";var t;t=3713,e(e.s=t)}]);PK!���%%0assets/js/gallery.e5ba72e3c57da531df85.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["gallery"],{

/***/ "../modules/gallery/assets/js/frontend/handler.js":
/*!********************************************************!*\
  !*** ../modules/gallery/assets/js/frontend/handler.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class galleryHandler extends elementorModules.frontend.handlers.Base {
  getDefaultSettings() {
    return {
      selectors: {
        container: '.elementor-gallery__container',
        galleryTitles: '.elementor-gallery-title',
        galleryImages: '.e-gallery-image',
        galleryItemOverlay: '.elementor-gallery-item__overlay',
        galleryItemContent: '.elementor-gallery-item__content'
      },
      classes: {
        activeTitle: 'elementor-item-active'
      }
    };
  }

  getDefaultElements() {
    const {
      selectors
    } = this.getSettings(),
          elements = {
      $container: this.$element.find(selectors.container),
      $titles: this.$element.find(selectors.galleryTitles)
    };
    elements.$items = elements.$container.children();
    elements.$images = elements.$items.children(selectors.galleryImages);
    elements.$itemsOverlay = elements.$items.children(selectors.galleryItemOverlay);
    elements.$itemsContent = elements.$items.children(selectors.galleryItemContent);
    elements.$itemsContentElements = elements.$itemsContent.children();
    return elements;
  }

  getGallerySettings() {
    const settings = this.getElementSettings(),
          activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          activeBreakpointsKeys = Object.keys(activeBreakpoints),
          breakPointSettings = {},
          desktopIdealRowHeight = elementorFrontend.getDeviceSetting('desktop', settings, 'ideal_row_height');
    activeBreakpointsKeys.forEach(breakpoint => {
      // The Gallery widget currently does not support widescreen.
      if ('widescreen' !== breakpoint) {
        const idealRowHeight = elementorFrontend.getDeviceSetting(breakpoint, settings, 'ideal_row_height');
        breakPointSettings[activeBreakpoints[breakpoint].value] = {
          horizontalGap: elementorFrontend.getDeviceSetting(breakpoint, settings, 'gap').size,
          verticalGap: elementorFrontend.getDeviceSetting(breakpoint, settings, 'gap').size,
          columns: elementorFrontend.getDeviceSetting(breakpoint, settings, 'columns'),
          idealRowHeight: idealRowHeight === null || idealRowHeight === void 0 ? void 0 : idealRowHeight.size
        };
      }
    });
    return {
      type: settings.gallery_layout,
      idealRowHeight: desktopIdealRowHeight === null || desktopIdealRowHeight === void 0 ? void 0 : desktopIdealRowHeight.size,
      container: this.elements.$container,
      columns: settings.columns,
      aspectRatio: settings.aspect_ratio,
      lastRow: 'normal',
      horizontalGap: elementorFrontend.getDeviceSetting('desktop', settings, 'gap').size,
      verticalGap: elementorFrontend.getDeviceSetting('desktop', settings, 'gap').size,
      animationDuration: settings.content_animation_duration,
      breakpoints: breakPointSettings,
      rtl: elementorFrontend.config.is_rtl,
      lazyLoad: 'yes' === settings.lazyload
    };
  }

  initGallery() {
    this.gallery = new EGallery(this.getGallerySettings());
    this.toggleAllAnimationsClasses();
  }

  removeAnimationClasses($element) {
    $element.removeClass((index, className) => (className.match(/elementor-animated-item-\S+/g) || []).join(' '));
  }

  toggleOverlayHoverAnimation() {
    this.removeAnimationClasses(this.elements.$itemsOverlay);
    const hoverAnimation = this.getElementSettings('background_overlay_hover_animation');

    if (hoverAnimation) {
      this.elements.$itemsOverlay.addClass('elementor-animated-item--' + hoverAnimation);
    }
  }

  toggleOverlayContentAnimation() {
    this.removeAnimationClasses(this.elements.$itemsContentElements);
    const contentHoverAnimation = this.getElementSettings('content_hover_animation');

    if (contentHoverAnimation) {
      this.elements.$itemsContentElements.addClass('elementor-animated-item--' + contentHoverAnimation);
    }
  }

  toggleOverlayContentSequencedAnimation() {
    this.elements.$itemsContent.toggleClass('elementor-gallery--sequenced-animation', 'yes' === this.getElementSettings('content_sequenced_animation'));
  }

  toggleImageHoverAnimation() {
    const imageHoverAnimation = this.getElementSettings('image_hover_animation');
    this.removeAnimationClasses(this.elements.$images);

    if (imageHoverAnimation) {
      this.elements.$images.addClass('elementor-animated-item--' + imageHoverAnimation);
    }
  }

  toggleAllAnimationsClasses() {
    const elementSettings = this.getElementSettings(),
          animation = elementSettings.background_overlay_hover_animation || elementSettings.content_hover_animation || elementSettings.image_hover_animation;
    this.elements.$items.toggleClass('elementor-animated-content', !!animation);
    this.toggleImageHoverAnimation();
    this.toggleOverlayHoverAnimation();
    this.toggleOverlayContentAnimation();
    this.toggleOverlayContentSequencedAnimation();
  }

  toggleAnimationClasses(settingKey) {
    if ('content_sequenced_animation' === settingKey) {
      this.toggleOverlayContentSequencedAnimation();
    }

    if ('background_overlay_hover_animation' === settingKey) {
      this.toggleOverlayHoverAnimation();
    }

    if ('content_hover_animation' === settingKey) {
      this.toggleOverlayContentAnimation();
    }

    if ('image_hover_animation' === settingKey) {
      this.toggleImageHoverAnimation();
    }
  }

  setGalleryTags(id) {
    this.gallery.setSettings('tags', 'all' === id ? [] : ['' + id]);
  }

  bindEvents() {
    this.elements.$titles.on('click', this.galleriesNavigationListener.bind(this));
  }

  galleriesNavigationListener(event) {
    const classes = this.getSettings('classes'),
          clickedElement = jQuery(event.target); // Make sure no other gallery title has an active class

    this.elements.$titles.removeClass(classes.activeTitle); // Give the gallery being activated the active class

    clickedElement.addClass(classes.activeTitle);
    this.setGalleryTags(clickedElement.data('gallery-index'));

    const updateLightboxGroup = () => this.setLightboxGalleryIndex(clickedElement.data('gallery-index')); // Wait for the gallery to filter before grouping items for the Light-box


    setTimeout(updateLightboxGroup, 1000);
  }

  setLightboxGalleryIndex(index = 'all') {
    if ('all' === index) {
      return this.elements.$items.attr('data-elementor-lightbox-slideshow', 'all_' + this.getID());
    }

    this.elements.$items.not('.e-gallery-item--hidden').attr('data-elementor-lightbox-slideshow', index + '_' + this.getID());
  }

  onInit(...args) {
    super.onInit(...args);

    if (elementorFrontend.isEditMode() && 1 <= this.$element.find('.elementor-widget-empty-icon').length) {
      this.$element.addClass('elementor-widget-empty');
    }

    if (!this.elements.$container.length) {
      return;
    }

    this.initGallery();
    this.elements.$titles.first().trigger('click');
  }

  getSettingsDictionary() {
    if (this.settingsDictionary) {
      return this.settingsDictionary;
    }

    const activeBreakpoints = elementorFrontend.config.responsive.activeBreakpoints,
          activeBreakpointsKeys = Object.keys(activeBreakpoints);
    const settingsDictionary = {
      columns: ['columns'],
      gap: ['horizontalGap', 'verticalGap'],
      ideal_row_height: ['idealRowHeight']
    };
    activeBreakpointsKeys.forEach(breakpoint => {
      // The Gallery widget currently does not support widescreen.
      if ('widescreen' === breakpoint) {
        return;
      }

      settingsDictionary['columns_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.columns'];
      settingsDictionary['gap_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.horizontalGap', 'breakpoints.' + activeBreakpoints[breakpoint].value + '.verticalGap'];
      settingsDictionary['ideal_row_height_' + breakpoint] = ['breakpoints.' + activeBreakpoints[breakpoint].value + '.idealRowHeight'];
    });
    settingsDictionary.aspect_ratio = ['aspectRatio'];
    this.settingsDictionary = settingsDictionary;
    return this.settingsDictionary;
  }

  onElementChange(settingKey) {
    if (-1 !== ['background_overlay_hover_animation', 'content_hover_animation', 'image_hover_animation', 'content_sequenced_animation'].indexOf(settingKey)) {
      this.toggleAnimationClasses(settingKey);
      return;
    }

    const settingsDictionary = this.getSettingsDictionary();
    const settingsToUpdate = settingsDictionary[settingKey];

    if (settingsToUpdate) {
      const gallerySettings = this.getGallerySettings();
      settingsToUpdate.forEach(settingToUpdate => {
        this.gallery.setSettings(settingToUpdate, this.getItems(gallerySettings, settingToUpdate));
      });
    }
  }

  onDestroy() {
    super.onDestroy();

    if (this.gallery) {
      this.gallery.destroy();
    }
  }

}

exports.default = galleryHandler;

/***/ })

}]);
//# sourceMappingURL=gallery.e5ba72e3c57da531df85.bundle.js.mapPK!�E3z�7�7 assets/js/webpack-pro.runtime.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = __webpack_modules__;
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/chunk loaded */
/******/ 	(() => {
/******/ 		var deferred = [];
/******/ 		__webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/ 			if(chunkIds) {
/******/ 				priority = priority || 0;
/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
/******/ 				deferred[i] = [chunkIds, fn, priority];
/******/ 				return;
/******/ 			}
/******/ 			var notFulfilled = Infinity;
/******/ 			for (var i = 0; i < deferred.length; i++) {
/******/ 				var [chunkIds, fn, priority] = deferred[i];
/******/ 				var fulfilled = true;
/******/ 				for (var j = 0; j < chunkIds.length; j++) {
/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/ 						chunkIds.splice(j--, 1);
/******/ 					} else {
/******/ 						fulfilled = false;
/******/ 						if(priority < notFulfilled) notFulfilled = priority;
/******/ 					}
/******/ 				}
/******/ 				if(fulfilled) {
/******/ 					deferred.splice(i--, 1)
/******/ 					var r = fn();
/******/ 					if (r !== undefined) result = r;
/******/ 				}
/******/ 			}
/******/ 			return result;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/ensure chunk */
/******/ 	(() => {
/******/ 		__webpack_require__.f = {};
/******/ 		// This file contains only the entry chunk.
/******/ 		// The chunk loading function for additional chunks
/******/ 		__webpack_require__.e = (chunkId) => {
/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
/******/ 				__webpack_require__.f[key](chunkId, promises);
/******/ 				return promises;
/******/ 			}, []));
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/get javascript chunk filename */
/******/ 	(() => {
/******/ 		// This function allow to reference async chunks
/******/ 		__webpack_require__.u = (chunkId) => {
/******/ 			// return url for filenames not based on template
/******/ 			if (chunkId === "code-highlight") return "" + chunkId + ".cc6c8eb49e0aff6d419e.bundle.js";
/******/ 			if (chunkId === "video-playlist") return "" + chunkId + ".5ee0445e2c9b1f2ed68f.bundle.js";
/******/ 			if (chunkId === "paypal-button") return "" + chunkId + ".a8f3d929735cca75a572.bundle.js";
/******/ 			if (chunkId === "progress-tracker") return "" + chunkId + ".a7329beb7783748287a5.bundle.js";
/******/ 			if (chunkId === "animated-headline") return "" + chunkId + ".0ccd23763059df7affcc.bundle.js";
/******/ 			if (chunkId === "media-carousel") return "" + chunkId + ".b5cf350f530535d64364.bundle.js";
/******/ 			if (chunkId === "carousel") return "" + chunkId + ".364bbaf018e09f58c819.bundle.js";
/******/ 			if (chunkId === "countdown") return "" + chunkId + ".6b48da864045c1ea0edd.bundle.js";
/******/ 			if (chunkId === "hotspot") return "" + chunkId + ".66952182f9ae91b6896c.bundle.js";
/******/ 			if (chunkId === "form") return "form.23168c11e0d20fa0282b.bundle.js";
/******/ 			if (chunkId === "gallery") return "" + chunkId + ".e5ba72e3c57da531df85.bundle.js";
/******/ 			if (chunkId === "lottie") return "" + chunkId + ".dccf7257e6cc366bc6bd.bundle.js";
/******/ 			if (chunkId === "nav-menu") return "" + chunkId + ".e248eec66bc3d5587cf6.bundle.js";
/******/ 			if (chunkId === "popup") return "" + chunkId + ".5ddbdd46f21fc221d760.bundle.js";
/******/ 			if (chunkId === "load-more") return "" + chunkId + ".cd76720206dc6d21abc0.bundle.js";
/******/ 			if (chunkId === "posts") return "" + chunkId + ".c23c8d29f44afbd62da6.bundle.js";
/******/ 			if (chunkId === "portfolio") return "" + chunkId + ".71a9b9fb42566ae496bd.bundle.js";
/******/ 			if (chunkId === "share-buttons") return "" + chunkId + ".d147b71ef798e333e678.bundle.js";
/******/ 			if (chunkId === "slides") return "" + chunkId + ".6d3f738223ac9b3c9b7a.bundle.js";
/******/ 			if (chunkId === "social") return "" + chunkId + ".b17f5f1767e41333a1dc.bundle.js";
/******/ 			if (chunkId === "table-of-contents") return "" + chunkId + ".0744140055afdd9bf411.bundle.js";
/******/ 			if (chunkId === "archive-posts") return "" + chunkId + ".22a6d49be96f6e1aa290.bundle.js";
/******/ 			if (chunkId === "search-form") return "" + chunkId + ".fda69e244861c6890e79.bundle.js";
/******/ 			if (chunkId === "woocommerce-menu-cart") return "" + chunkId + ".cf8829a628c66ec7c688.bundle.js";
/******/ 			if (chunkId === "woocommerce-checkout-page") return "" + chunkId + ".acd4a2b8bc03ed32111f.bundle.js";
/******/ 			if (chunkId === "woocommerce-cart") return "" + chunkId + ".39ccd7e510e98f3afb01.bundle.js";
/******/ 			if (chunkId === "woocommerce-my-account") return "" + chunkId + ".d52e81c74f27be09eb2e.bundle.js";
/******/ 			// return url for filenames based on template
/******/ 			return undefined;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/load script */
/******/ 	(() => {
/******/ 		var inProgress = {};
/******/ 		var dataWebpackPrefix = "elementor-pro:";
/******/ 		// loadScript function to load a script via script tag
/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
/******/ 			var script, needAttach;
/******/ 			if(key !== undefined) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				for(var i = 0; i < scripts.length; i++) {
/******/ 					var s = scripts[i];
/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
/******/ 				}
/******/ 			}
/******/ 			if(!script) {
/******/ 				needAttach = true;
/******/ 				script = document.createElement('script');
/******/ 		
/******/ 				script.charset = 'utf-8';
/******/ 				script.timeout = 120;
/******/ 				if (__webpack_require__.nc) {
/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
/******/ 				}
/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
/******/ 				script.src = url;
/******/ 			}
/******/ 			inProgress[url] = [done];
/******/ 			var onScriptComplete = (prev, event) => {
/******/ 				// avoid mem leaks in IE.
/******/ 				script.onerror = script.onload = null;
/******/ 				clearTimeout(timeout);
/******/ 				var doneFns = inProgress[url];
/******/ 				delete inProgress[url];
/******/ 				script.parentNode && script.parentNode.removeChild(script);
/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
/******/ 				if(prev) return prev(event);
/******/ 			}
/******/ 			;
/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
/******/ 			needAttach && document.head.appendChild(script);
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/publicPath */
/******/ 	(() => {
/******/ 		var scriptUrl;
/******/ 		if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
/******/ 		var document = __webpack_require__.g.document;
/******/ 		if (!scriptUrl && document) {
/******/ 			if (document.currentScript)
/******/ 				scriptUrl = document.currentScript.src
/******/ 			if (!scriptUrl) {
/******/ 				var scripts = document.getElementsByTagName("script");
/******/ 				if(scripts.length) scriptUrl = scripts[scripts.length - 1].src
/******/ 			}
/******/ 		}
/******/ 		// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
/******/ 		// or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
/******/ 		if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
/******/ 		scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
/******/ 		__webpack_require__.p = scriptUrl;
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/jsonp chunk loading */
/******/ 	(() => {
/******/ 		// no baseURI
/******/ 		
/******/ 		// object to store loaded and loading chunks
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
/******/ 		var installedChunks = {
/******/ 			"webpack-pro.runtime": 0
/******/ 		};
/******/ 		
/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
/******/ 				// JSONP chunk loading for javascript
/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
/******/ 		
/******/ 					// a Promise means "currently loading".
/******/ 					if(installedChunkData) {
/******/ 						promises.push(installedChunkData[2]);
/******/ 					} else {
/******/ 						if("webpack-pro.runtime" != chunkId) {
/******/ 							// setup Promise in chunk cache
/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
/******/ 							promises.push(installedChunkData[2] = promise);
/******/ 		
/******/ 							// start chunk loading
/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
/******/ 							// create error before stack unwound to get useful stacktrace later
/******/ 							var error = new Error();
/******/ 							var loadingEnded = (event) => {
/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
/******/ 									installedChunkData = installedChunks[chunkId];
/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
/******/ 									if(installedChunkData) {
/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
/******/ 										var realSrc = event && event.target && event.target.src;
/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
/******/ 										error.name = 'ChunkLoadError';
/******/ 										error.type = errorType;
/******/ 										error.request = realSrc;
/******/ 										installedChunkData[1](error);
/******/ 									}
/******/ 								}
/******/ 							};
/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
/******/ 						} else installedChunks[chunkId] = 0;
/******/ 					}
/******/ 				}
/******/ 		};
/******/ 		
/******/ 		// no prefetching
/******/ 		
/******/ 		// no preloaded
/******/ 		
/******/ 		// no HMR
/******/ 		
/******/ 		// no HMR manifest
/******/ 		
/******/ 		__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/ 		
/******/ 		// install a JSONP callback for chunk loading
/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ 			var [chunkIds, moreModules, runtime] = data;
/******/ 			// add "moreModules" to the modules object,
/******/ 			// then flag all "chunkIds" as loaded and fire callback
/******/ 			var moduleId, chunkId, i = 0;
/******/ 			for(moduleId in moreModules) {
/******/ 				if(__webpack_require__.o(moreModules, moduleId)) {
/******/ 					__webpack_require__.m[moduleId] = moreModules[moduleId];
/******/ 				}
/******/ 			}
/******/ 			if(runtime) var result = runtime(__webpack_require__);
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
/******/ 			for(;i < chunkIds.length; i++) {
/******/ 				chunkId = chunkIds[i];
/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
/******/ 					installedChunks[chunkId][0]();
/******/ 				}
/******/ 				installedChunks[chunkIds[i]] = 0;
/******/ 			}
/******/ 			return __webpack_require__.O(result);
/******/ 		}
/******/ 		
/******/ 		var chunkLoadingGlobal = self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || [];
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	
/******/ })()
;
//# sourceMappingURL=webpack-pro.runtime.js.mapPK!��W�
�
6assets/js/share-buttons.d147b71ef798e333e678.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["share-buttons"],{

/***/ "../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js":
/*!*****************************************************************************!*\
  !*** ../modules/share-buttons/assets/js/frontend/handlers/share-buttons.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  async onInit() {
    if (!this.isActive()) {
      return;
    }

    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    const elementSettings = this.getElementSettings(),
          classes = this.getSettings('classes'),
          isCustomURL = elementSettings.share_url && elementSettings.share_url.url,
          shareLinkSettings = {
      classPrefix: classes.shareLinkPrefix
    };

    if (isCustomURL) {
      shareLinkSettings.url = elementSettings.share_url.url;
    } else {
      shareLinkSettings.url = location.href;
      shareLinkSettings.title = elementorFrontend.config.post.title;
      shareLinkSettings.text = elementorFrontend.config.post.excerpt;
      shareLinkSettings.image = elementorFrontend.config.post.featuredImage;
    }
    /**
     * First check of the ShareLink is for detecting if the optimized mode is disabled and the library should be loaded dynamically.
     * Checking if the assetsLoader exist, in case that the library is not loaded due to Ad Blockers and not because the optimized mode is enabled.
     */


    if (!window.ShareLink && elementorFrontend.utils.assetsLoader) {
      await elementorFrontend.utils.assetsLoader.load('script', 'share-link');
    }
    /**
     * The following condition should remain regardless of the share-link dynamic loading.
     * Ad Blockers may block the share script. (/assets/lib/share-link/share-link.js).
     */


    if (!this.elements.$shareButton.shareLink) {
      return;
    }

    this.elements.$shareButton.shareLink(shareLinkSettings);
  },

  getDefaultSettings() {
    return {
      selectors: {
        shareButton: '.elementor-share-btn'
      },
      classes: {
        shareLinkPrefix: 'elementor-share-btn_'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $shareButton: this.$element.find(selectors.shareButton)
    };
  },

  isActive() {
    return !elementorFrontend.isEditMode();
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=share-buttons.d147b71ef798e333e678.bundle.js.mapPK!^5�P.assets/js/popup.5ddbdd46f21fc221d760.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["popup"],{

/***/ "../modules/popup/assets/js/frontend/handlers/forms-action.js":
/*!********************************************************************!*\
  !*** ../modules/popup/assets/js/frontend/handlers/forms-action.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getDefaultSettings() {
    return {
      selectors: {
        form: '.elementor-form'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors'),
        elements = {};
    elements.$form = this.$element.find(selectors.form);
    return elements;
  },

  bindEvents() {
    this.elements.$form.on('submit_success', this.handleFormAction);
  },

  handleFormAction(event, response) {
    if ('undefined' === typeof response.data.popup) {
      return;
    }

    const popupSettings = response.data.popup;

    if ('open' === popupSettings.action) {
      return elementorProFrontend.modules.popup.showPopup(popupSettings);
    }

    setTimeout(() => {
      return elementorProFrontend.modules.popup.closePopup(popupSettings, event);
    }, 1000);
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=popup.5ddbdd46f21fc221d760.bundle.js.mapPK!��llassets/js/admin.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var e={75453:(e,t,r)=>{e.exports=r(7421)},59396:(e,t,r)=>{e.exports=r(70157)},32009:(e,t,r)=>{e.exports=r(89710)},38401:(e,t,r)=>{e.exports=r(14710)},67394:(e,t,r)=>{e.exports=r(43153)},38923:(e,t,r)=>{e.exports=r(8531)},23587:(e,t,r)=>{e.exports=r(32622)},82055:(e,t,r)=>{e.exports=r(58535)},28274:(e,t,r)=>{e.exports=r(65135)},75499:(e,t,r)=>{e.exports=r(43094)},78282:(e,t,r)=>{e.exports=r(17641)},41281:(e,t,r)=>{e.exports=r(19103)},50093:(e,t,r)=>{e.exports=r(39871)},72292:e=>{e.exports=function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n},e.exports.default=e.exports,e.exports.__esModule=!0},35693:(e,t,r)=>{var n=r(59396),o=r(72292);e.exports=function _arrayWithoutHoles(e){if(n(e))return o(e)},e.exports.default=e.exports,e.exports.__esModule=!0},38852:e=>{e.exports=function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},11959:e=>{e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},39041:(e,t,r)=>{var n=r(67394);function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),n(e,o.key,o)}}e.exports=function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},68537:(e,t,r)=>{var n=r(75499),o=r(44263),i=r(898),s=r(59771);e.exports=function _createSuper(e){var t=i();return function _createSuperInternal(){var r,i=o(e);if(t){var a=o(this).constructor;r=n(i,arguments,a)}else r=i.apply(this,arguments);return s(this,r)}},e.exports.default=e.exports,e.exports.__esModule=!0},76700:(e,t,r)=>{var n=r(78282),o=r(23587),i=r(49445);function _get(t,r,s){return"undefined"!=typeof Reflect&&n?(e.exports=_get=n,e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_get=function _get(e,t,r){var n=i(e,t);if(n){var s=o(n,t);return s.get?s.get.call(r):s.value}},e.exports.default=e.exports,e.exports.__esModule=!0),_get(t,r,s||t)}e.exports=_get,e.exports.default=e.exports,e.exports.__esModule=!0},44263:(e,t,r)=>{var n=r(28274),o=r(82055);function _getPrototypeOf(t){return e.exports=_getPrototypeOf=n?o:function _getPrototypeOf(e){return e.__proto__||o(e)},e.exports.default=e.exports,e.exports.__esModule=!0,_getPrototypeOf(t)}e.exports=_getPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},77371:(e,t,r)=>{var n=r(38401),o=r(76870);e.exports=function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=n(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},67971:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},898:(e,t,r)=>{var n=r(75499);e.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!n)return!1;if(n.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(n(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},95915:(e,t,r)=>{var n=r(41281),o=r(50093),i=r(75453);e.exports=function _iterableToArray(e){if(void 0!==n&&null!=e[o]||null!=e["@@iterator"])return i(e)},e.exports.default=e.exports,e.exports.__esModule=!0},84360:e=>{e.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},59771:(e,t,r)=>{var n=r(24596).default,o=r(38852);e.exports=function _possibleConstructorReturn(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?o(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},76870:(e,t,r)=>{var n=r(28274);function _setPrototypeOf(t,r){return e.exports=_setPrototypeOf=n||function _setPrototypeOf(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,_setPrototypeOf(t,r)}e.exports=_setPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},49445:(e,t,r)=>{var n=r(44263);e.exports=function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=n(e)););return e},e.exports.default=e.exports,e.exports.__esModule=!0},74846:(e,t,r)=>{var n=r(35693),o=r(95915),i=r(24594),s=r(84360);e.exports=function _toConsumableArray(e){return n(e)||o(e)||i(e)||s()},e.exports.default=e.exports,e.exports.__esModule=!0},24596:(e,t,r)=>{var n=r(41281),o=r(50093);function _typeof(t){return"function"==typeof n&&"symbol"==typeof o?(e.exports=_typeof=function _typeof(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_typeof=function _typeof(e){return e&&"function"==typeof n&&e.constructor===n&&e!==n.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),_typeof(t)}e.exports=_typeof,e.exports.default=e.exports,e.exports.__esModule=!0},24594:(e,t,r)=>{var n=r(75453),o=r(72292);e.exports=function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?n(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},80203:(e,t,r)=>{"use strict";var n=r(67971),o=n(r(87190)),i=n(r(80676));e.exports=function(){var e=r(11501),t=i.default,n=r(88948).default;this.fontManager=new o.default,this.typekit=new e,this.fontAwesomePro=new n,this.customIcons=new t}},15860:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var i=o(r(11959)),s=o(r(39041)),a=o(r(77371)),l=o(r(68537)),u=function(e){(0,a.default)(CustomAssetsBase,e);var t=(0,l.default)(CustomAssetsBase);function CustomAssetsBase(){return(0,i.default)(this,CustomAssetsBase),t.apply(this,arguments)}return(0,s.default)(CustomAssetsBase,[{key:"showAlertDialog",value:function showAlertDialog(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o={id:e,message:t};r&&(o.onConfirm=r),n&&(o.onHide=n),this.alertWidget||(this.alertWidget=elementorCommon.dialogsManager.createWidget("alert",o)),this.alertWidget.show()}},{key:"onDialogDismiss",value:function onDialogDismiss(){this.elements.$publishButton.removeClass("disabled"),this.elements.$publishButtonSpinner.removeClass("is-active")}},{key:"handleSubmit",value:function handleSubmit(e){var t=this;if(!this.fileWasUploaded)return this.checkInputsForValues()?(this.fileWasUploaded=!0,void this.elements.$postForm.trigger("submit")):(e.preventDefault(),this.showAlertDialog("noData",this.getSettings("notice"),(function(){return t.onDialogDismiss()}),(function(){return t.onDialogDismiss()})),!1)}},{key:"bindEvents",value:function bindEvents(){this.elements.$postForm.on("submit",this.handleSubmit.bind(this))}}]),CustomAssetsBase}(elementorModules.ViewModule);t.default=u},80676:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var i=o(r(32009));r(71954),r(84208),r(90286),r(99745);var s=o(r(11959)),a=o(r(39041)),l=o(r(76700)),u=o(r(44263)),c=o(r(77371)),p=o(r(68537)),f=o(r(15860)),d=o(r(9940)),v=function(e){(0,c.default)(CustomIcons,e);var t=(0,p.default)(CustomIcons);function CustomIcons(){return(0,s.default)(this,CustomIcons),t.apply(this,arguments)}return(0,a.default)(CustomIcons,[{key:"getDefaultSettings",value:function getDefaultSettings(){return{fields:{dropzone:d.default},classes:{editPageClass:"post-type-elementor_icons",editPhp:"edit-php",hasIcons:"elementor--has-icons"},selectors:{editPageClass:"post-type-elementor_icons",title:"#title",metaboxContainer:"#elementor-custom-icons-metabox",metabox:".elementor-custom-icons-metabox",closeHandle:"button.handlediv",iconsTemplate:"#elementor-icons-template",dataInput:"#elementor_custom_icon_set_config",dropzone:".zip_upload",submitDelete:".submitdelete",dayInput:"#hidden_jj",mmInput:"#hidden_mm",yearInput:"#hidden_aa",hourInput:"#hidden_hh",minuteInput:"#hidden_mn",publishButton:"#publish",publishButtonSpinner:"#publishing-action > .spinner",submitMetabox:"#postbox-container-1",postForm:"#post",fileInput:"#zip_upload",iconSetConfigInput:"#elementor_custom_icon_set_config"},templates:{icon:'<li><div class="icon"><i class="{{icon}}"></i><div class="icon-name">{{label}}</div></div></li>',header:jQuery("#elementor-custom-icons-template-header").html(),footer:jQuery("#elementor-custom-icons-template-footer").html(),duplicatePrefix:jQuery("#elementor-custom-icons-template-duplicate-prefix").html()},notice:ElementorProConfig.i18n.fontsUploadEmptyNotice}}},{key:"getDefaultElements",value:function getDefaultElements(){var e={},t=this.getSettings("selectors");return jQuery.each(t,(function(t,r){e["$"+t]=jQuery(r)})),e}},{key:"bindEvents",value:function bindEvents(){(0,l.default)((0,u.default)(CustomIcons.prototype),"bindEvents",this).call(this),""!==this.getData()&&this.bindOnTitleChange()}},{key:"bindOnTitleChange",value:function bindOnTitleChange(){var e=this;this.elements.$title.on("input change",(function onTitleInput(t){return e.onTitleInput(t)}))}},{key:"removeCloseHandle",value:function removeCloseHandle(){var e=this.elements.$metaboxContainer;e.find("h2").remove(),e.find("button").remove(),e.removeClass("closed").removeClass("postbox")}},{key:"prepareIconName",value:function prepareIconName(e){var t=e.replace("_"," ").replace("-"," ");return elementorCommon.helpers.upperCaseWords(t)}},{key:"getCreatedOn",value:function getCreatedOn(){var e=this.elements,t=e.$dayInput,r=e.$mmInput,n=e.$yearInput,o=e.$hourInput,i=e.$minuteInput;return{day:t.val(),mm:r.val(),year:n.val(),hour:o.val(),minute:i.val()}}},{key:"enqueueCSS",value:function enqueueCSS(e){elementorCommon.elements.$document.find('link[href="'+e+'"]').length||elementorCommon.elements.$document.find("link").last().after('<link href="'+e+'" rel="stylesheet" type="text/css">')}},{key:"setData",value:function setData(e){this.elements.$dataInput.val((0,i.default)(e))}},{key:"getData",value:function getData(){var e=this.elements.$dataInput.val();return""===e?"":JSON.parse(e)}},{key:"renderIconList",value:function renderIconList(e){var t=this,r=this.getSettings("templates.icon");return e.icons.map((function(n){var o={icon:e.displayPrefix+" "+e.prefix+n,label:t.prepareIconName(n)};return elementorCommon.compileTemplate(r,o)})).join("\n")}},{key:"renderIcons",value:function renderIcons(e){var t=this.elements,r=t.$metaboxContainer,n=t.$metabox,o=t.$submitMetabox,i=this.getSettings("templates"),s=i.header,a=i.footer;r.addClass(this.getSettings("classes.hasIcons")),o.show(),this.setData(e),this.enqueueCSS(e.url),n.html(""),r.prepend(elementorCommon.compileTemplate(s,e)),n.append("<ul>"+this.renderIconList(e)+"</ul>"),r.append(elementorCommon.compileTemplate(a,this.getCreatedOn()))}},{key:"onTitleInput",value:function onTitleInput(e){var t=this.getData();t.label=e.target.value,this.setData(t)}},{key:"checkInputsForValues",value:function checkInputsForValues(){return""!==this.elements.$fileInput.val()||""!==this.elements.$iconSetConfigInput.val()}},{key:"onSuccess",value:function onSuccess(e){var t,r,n=this;return e.data.errors?(jQuery.each(e.data.errors,(function(e,n){return t=e,r=n,!1})),this.showAlertDialog(t,r)):e.data.config.duplicate_prefix?(delete e.data.config.duplicatePrefix,this.showAlertDialog("duplicate-prefix",this.getSettings("templates.duplicatePrefix"),(function(){return n.saveInitialUpload(e.data.config)}))):void this.saveInitialUpload(e.data.config)}},{key:"saveInitialUpload",value:function saveInitialUpload(e){this.setData(e);var t=this.elements,r=t.$publishButton,n=t.$title;t.$submitMetabox.show(),""===n.val()&&n.val(e.name),this.fileWasUploaded=!0,r.trigger("click")}},{key:"onInit",value:function onInit(){var e=this,t=elementorCommon.elements.$body,r=this.getSettings("classes"),n=r.editPageClass,o=r.editPhp;if(t.hasClass(n)&&!t.hasClass(o)){(0,l.default)((0,u.default)(CustomIcons.prototype),"onInit",this).call(this),this.removeCloseHandle();var i=new(this.getSettings("fields.dropzone")),s=this.getData(),a=this.elements,c=a.$dropzone,p=a.$metaboxContainer;""===s?(c.show("fast"),i.setSettings("onSuccess",(function(){return e.onSuccess.apply(e,arguments)}))):this.renderIcons(s),p.show("fast")}}}]),CustomIcons}(f.default);t.default=v},87190:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0,r(84208),r(67209),r(71954);var i=o(r(11959)),s=o(r(39041)),a=o(r(76700)),l=o(r(44263)),u=o(r(77371)),c=o(r(68537)),p=o(r(15860)),f=o(r(21876)),d=o(r(11435)),v=function(e){(0,u.default)(CustomFontsManager,e);var t=(0,c.default)(CustomFontsManager);function CustomFontsManager(){return(0,i.default)(this,CustomFontsManager),t.apply(this,arguments)}return(0,s.default)(CustomFontsManager,[{key:"getDefaultSettings",value:function getDefaultSettings(){return{fields:{upload:f.default,repeater:d.default},selectors:{editPageClass:"post-type-elementor_font",title:"#title",repeaterBlock:".repeater-block",repeaterTitle:".repeater-title",removeRowBtn:".remove-repeater-row",editRowBtn:".toggle-repeater-row",closeRowBtn:".close-repeater-row",styleInput:".font_style",weightInput:".font_weight",customFontsMetaBox:"#elementor-font-custommetabox",closeHandle:"button.handlediv",toolbar:".elementor-field-toolbar",inlinePreview:".inline-preview",fileUrlInput:'.elementor-field-file input[type="text"]',postForm:"#post",publishButton:"#publish",publishButtonSpinner:"#publishing-action > .spinner"},notice:ElementorProConfig.i18n.fontsUploadEmptyNotice,fontLabelTemplate:'<ul class="row-font-label"><li class="row-font-weight">{{weight}}</li><li class="row-font-style">{{style}}</li><li class="row-font-preview">{{preview}}</li>{{toolbar}}</ul>'}}},{key:"getDefaultElements",value:function getDefaultElements(){var e=this.getSettings("selectors");return{$postForm:jQuery(e.postForm),$publishButton:jQuery(e.publishButton),$publishButtonSpinner:jQuery(e.publishButtonSpinner),$closeHandle:jQuery(e.closeHandle),$customFontsMetaBox:jQuery(e.customFontsMetaBox),$title:jQuery(e.title)}}},{key:"renderTemplate",value:function renderTemplate(e,t){for(var r,n=/{{([^}}]+)?}}/g;r=n.exec(e);)e=e.replace(r[0],t[r[1]]);return e}},{key:"ucFirst",value:function ucFirst(e){return e.charAt(0).toUpperCase()+e.slice(1)}},{key:"getPreviewStyle",value:function getPreviewStyle(e){var t=this.getSettings("selectors"),r=this.elements.$title.val(),n=e.find("select"+t.styleInput).first().val(),o=e.find("select"+t.weightInput).first().val();return{style:this.ucFirst(n),weight:this.ucFirst(o),styleAttribute:"font-family: "+r+" ;font-style: "+n+"; font-weight: "+o+";"}}},{key:"updateRowLabel",value:function updateRowLabel(e,t){var r=this.getSettings("selectors"),n=this.getSettings("fontLabelTemplate"),o=t.closest(r.repeaterBlock),i=o.find(r.removeRowBtn).first(),s=o.find(r.editRowBtn).first(),a=o.find(r.closeRowBtn).first(),l=t.find(r.toolbar).last().clone(),u=this.getPreviewStyle(t);s.length>0&&s.not(r.toolbar+" "+r.editRowBtn).remove(),a.length>0&&a.not(r.toolbar+" "+r.closeRowBtn).remove(),i.length>0&&i.not(r.toolbar+" "+r.removeRowBtn).remove();var c=jQuery('<li class="row-font-actions">').append(l)[0].outerHTML;return this.renderTemplate(n,{weight:'<span class="label">Weight:</span>'+u.weight,style:'<span class="label">Style:</span>'+u.style,preview:'<span style="'+u.styleAttribute+'">Elementor is making the web beautiful</span>',toolbar:c})}},{key:"onRepeaterToggleVisible",value:function onRepeaterToggleVisible(e,t,r){var n=this.getSettings("selectors"),o=r.find(n.inlinePreview),i=this.getPreviewStyle(r);o.attr("style",i.styleAttribute)}},{key:"onRepeaterNewRow",value:function onRepeaterNewRow(e,t,r){var n=this.getSettings("selectors");r.find(n.removeRowBtn).first().remove(),r.find(n.editRowBtn).first().remove(),r.find(n.closeRowBtn).first().remove()}},{key:"maybeToggle",value:function maybeToggle(e){e.preventDefault();var t=this.getSettings("selectors");jQuery(this).is(":visible")&&!jQuery(e.target).hasClass(t.editRowBtn)&&jQuery(this).find(t.editRowBtn).trigger("click")}},{key:"onInputChange",value:function onInputChange(e){var t=jQuery(e.target).next(),r=this.getSettings("fields");r.upload.setFields(t),r.upload.setLabels(t),r.upload.replaceButtonClass(t)}},{key:"bindEvents",value:function bindEvents(){var e=this.getSettings("selectors");jQuery(document).on("repeaterComputedLabel",this.updateRowLabel.bind(this)).on("onRepeaterToggleVisible",this.onRepeaterToggleVisible.bind(this)).on("onRepeaterNewRow",this.onRepeaterNewRow.bind(this)).on("click",e.repeaterTitle,this.maybeToggle.bind(this)).on("input",e.fileUrlInput,this.onInputChange.bind(this)),(0,a.default)((0,l.default)(CustomFontsManager.prototype),"bindEvents",this).call(this)}},{key:"checkInputsForValues",value:function checkInputsForValues(){var e=this.getSettings("selectors"),t=!1;return jQuery(e.fileUrlInput).each((function(e,r){if(""!==jQuery(r).val())return t=!0,!1})),t}},{key:"removeCloseHandle",value:function removeCloseHandle(){this.elements.$closeHandle.remove(),this.elements.$customFontsMetaBox.removeClass("closed").removeClass("postbox")}},{key:"titleRequired",value:function titleRequired(){this.elements.$title.prop("required",!0)}},{key:"onInit",value:function onInit(){var e,t=this.getSettings();if(jQuery("body").hasClass(t.selectors.editPageClass)){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];(e=(0,a.default)((0,l.default)(CustomFontsManager.prototype),"onInit",this)).call.apply(e,[this].concat(n)),this.removeCloseHandle(),this.titleRequired(),t.fields.upload.init(),t.fields.repeater.init()}}}]),CustomFontsManager}(p.default);t.default=v},9940:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var i=o(r(38923)),s=o(r(32009)),a=o(r(11959)),l=o(r(39041)),u=o(r(76700)),c=o(r(44263)),p=o(r(77371)),f=o(r(68537)),d=function(e){(0,p.default)(DropZoneField,e);var t=(0,f.default)(DropZoneField);function DropZoneField(){return(0,a.default)(this,DropZoneField),t.apply(this,arguments)}return(0,l.default)(DropZoneField,[{key:"getDefaultSettings",value:function getDefaultSettings(){var e=".elementor-dropzone-field";return{droppedFiles:!1,selectors:{dropZone:e,input:e+' [type="file"]',label:e+"label",errorMsg:e+".box__error span",restart:e+".box__restart",browseButton:e+" .elementor--dropzone--upload__browse",postId:"#post_ID"},classes:{drag:"is-dragover",error:"is-error",success:"is-success",upload:"is-uploading"},onSuccess:null,onError:null}}},{key:"getDefaultElements",value:function getDefaultElements(){var e={},t=this.getSettings("selectors");return jQuery.each(t,(function(t,r){e["$"+t]=jQuery(r)})),e}},{key:"bindEvents",value:function bindEvents(){var e=this,t=this.elements,r=t.$dropZone,n=t.$browseButton,o=t.$input,i=this.getSettings("classes").drag;n.on("click",(function(){return o.trigger("click")})),r.on("drag dragstart dragend dragover dragenter dragleave drop",(function(e){e.preventDefault(),e.stopPropagation()})).on("dragover dragenter",(function(){r.addClass(i)})).on("dragleave dragend drop",(function(){r.removeClass(i)})).on("drop change",(function(t){"change"===t.type?e.setSettings("droppedFiles",t.originalEvent.target.files):e.setSettings("droppedFiles",t.originalEvent.dataTransfer.files),e.handleUpload()}))}},{key:"handleUpload",value:function handleUpload(){var e=arguments,t=this.getSettings("droppedFiles");if(t){var r=this.elements,n=r.$input,o=r.$dropZone,a=r.$postId,l=r.$errorMsg,u=this.getSettings("classes"),c=u.error,p=u.success,f=u.upload,d=this.getSettings(),v=d.onSuccess,h=d.onError,g=new FormData,y=n.attr("name"),m="pro_assets_manager_custom_icon_upload",b=this;(0,i.default)(t).forEach((function(e){g.append(y,e[1])})),g.append("actions",(0,s.default)({pro_assets_manager_custom_icon_upload:{action:m,data:{post_id:a.val()}}})),o.removeClass(p).removeClass(c),elementorCommon.ajax.send("ajax",{data:g,cache:!1,enctype:"multipart/form-data",contentType:!1,processData:!1,complete:function complete(){o.removeClass(f)},success:function success(t){var r=t.responses[m];o.addClass(r.success?p:c),r.success?v&&v(r,b):(l.text(r.error),h&&h(b,e))},error:function error(){"function"==typeof h&&h(b,e)}})}}},{key:"onInit",value:function onInit(){(0,u.default)((0,c.default)(DropZoneField.prototype),"onInit",this).call(this),elementorCommon.elements.$document.trigger("onDropzoneLoaded",[this])}}]),DropZoneField}(elementorModules.ViewModule);t.default=d},11435:(e,t,r)=>{"use strict";var n=r(67971)(r(24596));r(71954),r(84208),r(55506),r(76139),r(44321),e.exports={selectors:{add:".add-repeater-row",remove:".remove-repeater-row",toggle:".toggle-repeater-row",close:".close-repeater-row",sort:".sort-repeater-row",table:".form-table",block:".repeater-block",repeaterLabel:".repeater-title",repeaterField:".elementor-field-repeater"},counters:[],trigger:function trigger(e,t){jQuery(document).trigger(e,t)},triggerHandler:function triggerHandler(e,t){return jQuery(document).triggerHandler(e,t)},countBlocks:function countBlocks(e){return e.closest(this.selectors.repeaterField).find(this.selectors.block).length||0},add:function add(e){var t,r=this,n=jQuery(e),o=n.data("template-id");r.counters.hasOwnProperty(o)||(r.counters[o]=r.countBlocks(n)),r.counters[o]+=1,t=jQuery("#"+o).html(),t=r.replaceAll("__counter__",r.counters[o],t),n.before(t),r.trigger("onRepeaterNewRow",[n,n.prev()])},remove:function remove(e){jQuery(e).closest(this.selectors.block).remove()},toggle:function toggle(e){var t=this,r=jQuery(e),n=r.closest(t.selectors.block).find(t.selectors.table),o=r.closest(t.selectors.block).find(t.selectors.repeaterLabel);n.toggle(0,"none",(function(){n.is(":visible")?(n.closest(t.selectors.block).addClass("block-visible"),t.trigger("onRepeaterToggleVisible",[r,n,o])):(n.closest(t.selectors.block).removeClass("block-visible"),t.trigger("onRepeaterToggleHidden",[r,n,o]))})),o.toggle(),t.updateRowLabel(e)},close:function close(e){var t=this,r=jQuery(e),n=r.closest(t.selectors.block).find(t.selectors.table),o=r.closest(t.selectors.block).find(t.selectors.repeaterLabel);n.closest(t.selectors.block).removeClass("block-visible"),n.hide(),t.trigger("onRepeaterToggleHidden",[r,n,o]),o.show(),t.updateRowLabel(e)},updateRowLabel:function updateRowLabel(e){var t=this,r=jQuery(e),o=r.closest(t.selectors.block).find(t.selectors.table),i=r.closest(t.selectors.block).find(t.selectors.repeaterLabel),s=i.data("selector");if("undefined"!==(0,n.default)(s)&&!1!==s){var a=!1,l=i.data("default");o.find(s).length&&(a=o.find(s).val());var u=t.triggerHandler("repeaterComputedLabel",[o,i,a]);void 0!==u&&!1!==u&&(a=u),void 0!==a&&!1!==a||(a=l),i.html(a)}},replaceAll:function replaceAll(e,t,r){return r.replace(new RegExp(e,"g"),t)},init:function init(){var e=this;jQuery(document).on("click",this.selectors.add,(function(t){t.preventDefault(),e.add(jQuery(this),t)})).on("click",this.selectors.remove,(function(t){t.preventDefault(),confirm(jQuery(this).data("confirm").toString())&&e.remove(jQuery(this),t)})).on("click",this.selectors.toggle,(function(t){t.preventDefault(),t.stopPropagation(),e.toggle(jQuery(this),t)})).on("click",this.selectors.close,(function(t){t.preventDefault(),t.stopPropagation(),e.close(jQuery(this),t)})),jQuery(this.selectors.toggle).each((function(){e.updateRowLabel(jQuery(this))})),this.trigger("onRepeaterLoaded",[this])}}},21876:(e,t,r)=>{"use strict";var n=r(67971);r(99236),r(71954);var o=n(r(74846));e.exports={$btn:null,fileId:null,fileUrl:null,fileFrame:[],selectors:{uploadBtnClass:"elementor-upload-btn",clearBtnClass:"elementor-upload-clear-btn",uploadBtn:".elementor-upload-btn",clearBtn:".elementor-upload-clear-btn",inputURLField:'.elementor-field-file input[type="text"]'},hasValue:function hasValue(){return""!==jQuery(this.fileUrl).val()},setLabels:function setLabels(e){this.hasValue()?e.val(e.data("remove_text")):e.val(e.data("upload_text"))},setFields:function setFields(e){var t=this;t.fileUrl=jQuery(e).prev(),t.fileId=jQuery(t.fileUrl).prev()},setUploadParams:function setUploadParams(e,t){var r=this.fileFrame[t].uploader.uploader;r.param("uploadType",e),r.param("uploadTypeCaller","elementor-admin-font-upload"),r.param("post_id",this.getPostId())},setUploadMimeType:function setUploadMimeType(e,t){var r=_wpPluploadSettings.defaults.filters.mime_types[0].extensions,n=this;e.on("ready",(function(){_wpPluploadSettings.defaults.filters.mime_types[0].extensions=t})),e.on("close",(function(){_wpPluploadSettings.defaults.filters.mime_types[0].extensions=r,n.replaceButtonClass(n.$btn)}))},replaceButtonClass:function replaceButtonClass(e){this.hasValue()?jQuery(e).removeClass(this.selectors.uploadBtnClass).addClass(this.selectors.clearBtnClass):jQuery(e).removeClass(this.selectors.clearBtnClass).addClass(this.selectors.uploadBtnClass),this.setLabels(e)},uploadFile:function uploadFile(e){var t=this,r=this,n=jQuery(e),i=n.attr("data-mime_type")||"",s=n.attr("data-ext")||!1,a=n.attr("id");if(void 0!==r.fileFrame[a])return s&&r.setUploadParams(s,a),void r.fileFrame[a].open();r.fileFrame[a]=wp.media({library:{type:[].concat((0,o.default)(i.split(",")),[i.split(",").join("")])},title:n.data("box_title"),button:{text:n.data("box_action")},multiple:!1}),r.fileFrame[a].on("select",(function(){var t=r.fileFrame[a].state().get("selection").first().toJSON();jQuery(r.fileId).val(t.id),jQuery(r.fileUrl).val(t.url),r.replaceButtonClass(e),r.updatePreview(e)})),r.fileFrame[a].on("open",(function(){var e=t.fileId.val();e&&r.fileFrame[a].state().get("selection").add(wp.media.attachment(e))})),r.setUploadMimeType(r.fileFrame[a],s),r.fileFrame[a].open(),s&&r.setUploadParams(s,a)},updatePreview:function updatePreview(e){var t=this,r=jQuery(e).parent().find("ul"),n=jQuery("<li>"),o=jQuery(e).data("preview_anchor")||"full";if(r.html(""),t.hasValue()&&"none"!==o){var i=jQuery(t.fileUrl).val();"full"!==o&&(i=i.substring(i.lastIndexOf("/")+1)),n.html('<a href="'+jQuery(t.fileUrl).val()+'" download>'+i+"</a>"),r.append(n)}},setup:function setup(){var e=this;jQuery(e.selectors.uploadBtn+", "+e.selectors.clearBtn).each((function(){e.setFields(jQuery(this)),e.updatePreview(jQuery(this)),e.setLabels(jQuery(this)),e.replaceButtonClass(jQuery(this))}))},getPostId:function getPostId(){return jQuery("#post_ID").val()},handleUploadClick:function handleUploadClick(e){e.preventDefault();var t=jQuery(e.target);if("text"===t.attr("type"))return t.next().removeClass(this.selectors.clearBtnClass).addClass(this.selectors.uploadBtnClass).trigger("click");this.$btn=t,this.setFields(t),this.uploadFile(t)},init:function init(){var e=this,t=this,r=this.selectors,n=r.uploadBtn,o=r.inputURLField,i=r.clearBtn,s=function handleUpload(t){return e.handleUploadClick(t)};jQuery(document).on("click",n,s),jQuery(document).on("click",o,(function(e){""!==e.target.value&&s(e)})),jQuery(document).on("click",i,(function(e){e.preventDefault();var r=jQuery(this);t.setFields(r),jQuery(t.fileUrl).val(""),jQuery(t.fileId).val(""),t.updatePreview(r),t.replaceButtonClass(r)})),this.setup(),jQuery(document).on("onRepeaterNewRow",(function(){t.setup()}))}}},88948:(e,t,r)=>{"use strict";var n=r(67394),o=r(67971);n(t,"__esModule",{value:!0}),t.default=void 0;var i=o(r(11959)),s=o(r(39041)),a=o(r(77371)),l=o(r(68537)),u=function(e){(0,a.default)(_default,e);var t=(0,l.default)(_default);function _default(){return(0,i.default)(this,_default),t.apply(this,arguments)}return(0,s.default)(_default,[{key:"getDefaultSettings",value:function getDefaultSettings(){return{selectors:{button:"#elementor_pro_fa_pro_validate_button",kitIdField:"#elementor_font_awesome_pro_kit_id"}}}},{key:"getDefaultElements",value:function getDefaultElements(){var e={},t=this.getSettings("selectors");return jQuery.each(t,(function(t,r){e["$"+t]=jQuery(r)})),e}},{key:"bindEvents",value:function bindEvents(){var e=this,t=this.elements,r=t.$button,n=t.$kitIdField;r.on("click",(function(t){t.preventDefault(),e.testKitUrl()})),n.on("change",(function(){e.setState("clear")}))}},{key:"setState",value:function setState(e){var t,r,n=["loading","success","error"],o=this.elements.$button;for(r in n)e===(t=n[r])?o.addClass(t):o.removeClass(t)}},{key:"testKitUrl",value:function testKitUrl(){this.setState("loading");var e=this,t=this.elements.$kitIdField.val();""!==t?jQuery.ajax({url:"https://kit.fontawesome.com/"+t+".js",method:"GET",complete:function complete(t){200!==t.status?e.setState("error"):e.setState("success")}}):this.setState("clear")}}]),_default}(elementorModules.ViewModule);t.default=u},11501:(e,t,r)=>{"use strict";r(84208),e.exports=function(){var e=this;e.cacheElements=function(){this.cache={$button:jQuery("#elementor_pro_typekit_validate_button"),$kitIdField:jQuery("#elementor_typekit-kit-id"),$dataLabelSpan:jQuery(".elementor-pro-typekit-data")}},e.bindEvents=function(){this.cache.$button.on("click",(function(t){t.preventDefault(),e.fetchFonts()})),this.cache.$kitIdField.on("change",(function(){e.setState("clear")}))},e.fetchFonts=function(){this.setState("loading"),this.cache.$dataLabelSpan.addClass("hidden");var t=this.cache.$kitIdField.val();""!==t?jQuery.post(ajaxurl,{action:"elementor_pro_admin_fetch_fonts",kit_id:t,_nonce:e.cache.$button.data("nonce")}).done((function(t){if(t.success){var r=e.cache.$button.data("found");r=r.replace("{{count}}",t.data.count),e.cache.$dataLabelSpan.html(r).removeClass("hidden"),e.setState("success")}else e.setState("error")})).fail((function(){e.setState()})):this.setState("clear")},e.setState=function(e){var t,r,n=["loading","success","error"];for(r in n)e===(t=n[r])?this.cache.$button.addClass(t):this.cache.$button.removeClass(t)},e.init=function(){this.cacheElements(),this.bindEvents()},e.init()}},16534:(e,t,r)=>{"use strict";e.exports=function(){var e=r(49874);this.dripButton=new e("drip_api_token"),this.getResponse=new e("getresponse_api_key"),this.convertKit=new e("convertkit_api_key"),this.mailChimp=new e("mailchimp_api_key"),this.mailerLite=new e("mailerlite_api_key"),this.activeCcampaign=new e("activecampaign_api_key","activecampaign_api_url")}},49874:e=>{"use strict";e.exports=function(e,t){var r=this;r.cacheElements=function(){this.cache={$button:jQuery("#elementor_pro_"+e+"_button"),$apiKeyField:jQuery("#elementor_pro_"+e),$apiUrlField:jQuery("#elementor_pro_"+t)}},r.bindEvents=function(){this.cache.$button.on("click",(function(e){e.preventDefault(),r.validateApi()})),this.cache.$apiKeyField.on("change",(function(){r.setState("clear")}))},r.validateApi=function(){this.setState("loading");var e=this.cache.$apiKeyField.val();""!==e?this.cache.$apiUrlField.length&&""===this.cache.$apiUrlField.val()?this.setState("clear"):jQuery.post(ajaxurl,{action:r.cache.$button.data("action"),api_key:e,api_url:this.cache.$apiUrlField.val(),_nonce:r.cache.$button.data("nonce")}).done((function(e){e.success?r.setState("success"):r.setState("error")})).fail((function(){r.setState()})):this.setState("clear")},r.setState=function(e){var t,r,n=["loading","success","error"];for(r in n)e===(t=n[r])?this.cache.$button.addClass(t):this.cache.$button.removeClass(t)},r.init=function(){this.cacheElements(),this.bindEvents()},r.init()}},30743:(e,t,r)=>{"use strict";e.exports=function(){var e=r(24338);this.editButton=new e}},24338:(e,t,r)=>{"use strict";r(71954),e.exports=function(){this.init=function(){jQuery(document).on("change",".elementor-widget-template-select",(function(){var e=jQuery(this),t=e.val(),r=e.parents("p").find(".elementor-edit-template");if("page"===e.find('[value="'+t+'"]').data("type")){var n=ElementorProConfig.i18n.home_url+"?p="+t+"&elementor";r.prop("href",n).show()}else r.hide()}))},this.init()}},80804:(e,t,r)=>{"use strict";e.exports=function(){var e=r(80431);this.advancedRoleManager=new e}},80431:(e,t,r)=>{"use strict";r(71954),e.exports=function(){var e=this;e.cacheElements=function(){this.cache={$checkBox:jQuery('input[name="elementor_exclude_user_roles[]"]'),$advanced:jQuery("#elementor_advanced_role_manager")}},e.bindEvents=function(){this.cache.$checkBox.on("change",(function(t){t.preventDefault(),e.checkBoxUpdate(jQuery(this))}))},e.checkBoxUpdate=function(t){var r=t.val();t.is(":checked")?e.cache.$advanced.find("div."+r).addClass("hidden"):e.cache.$advanced.find("div."+r).removeClass("hidden")},e.init=function(){jQuery("body").hasClass("elementor_page_elementor-role-manager")&&(this.cacheElements(),this.bindEvents())},e.init()}},99004:(e,t,r)=>{"use strict";e.exports=function(){var e=r(51907);this.createTemplateDialog=new e}},51907:(e,t,r)=>{"use strict";r(71954),e.exports=function(){var e={templateTypeInput:"#elementor-new-template__form__template-type",locationWrapper:"#elementor-new-template__form__location__wrapper",postTypeWrapper:"#elementor-new-template__form__post-type__wrapper"},t={$templateTypeInput:null,$locationWrapper:null,$postTypeWrapper:null},r=function setLocationFieldVisibility(){t.$locationWrapper.toggle("section"===t.$templateTypeInput.val()),t.$postTypeWrapper.toggle("single"===t.$templateTypeInput.val())},n=function run(){!function setElements(){jQuery.each(e,(function(e,r){t[e="$"+e]=elementorNewTemplate.layout.getModal().getElements("content").find(r)}))}(),r(),t.$templateTypeInput.on("change",r)};this.init=function(){window.elementorNewTemplate&&(elementorNewTemplate.layout.getModal(),n())},jQuery(setTimeout.bind(window,this.init))}},7421:(e,t,r)=>{r(99572),r(37627),e.exports=r(47208).Array.from},70157:(e,t,r)=>{r(42580),e.exports=r(47208).Array.isArray},89710:(e,t,r)=>{var n=r(47208),o=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function stringify(e){return o.stringify.apply(o,arguments)}},14710:(e,t,r)=>{r(30785);var n=r(47208).Object;e.exports=function create(e,t){return n.create(e,t)}},43153:(e,t,r)=>{r(40168);var n=r(47208).Object;e.exports=function defineProperty(e,t,r){return n.defineProperty(e,t,r)}},8531:(e,t,r)=>{r(95260),e.exports=r(47208).Object.entries},32622:(e,t,r)=>{r(18576);var n=r(47208).Object;e.exports=function getOwnPropertyDescriptor(e,t){return n.getOwnPropertyDescriptor(e,t)}},58535:(e,t,r)=>{r(4840),e.exports=r(47208).Object.getPrototypeOf},65135:(e,t,r)=>{r(13890),e.exports=r(47208).Object.setPrototypeOf},43094:(e,t,r)=>{r(11320),e.exports=r(47208).Reflect.construct},17641:(e,t,r)=>{r(36600),e.exports=r(47208).Reflect.get},19103:(e,t,r)=>{r(54370),r(70285),r(87573),r(97224),e.exports=r(47208).Symbol},39871:(e,t,r)=>{r(99572),r(74114),e.exports=r(7273).f("iterator")},26610:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},29697:e=>{e.exports=function(){}},30498:(e,t,r)=>{var n=r(39632);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},69191:(e,t,r)=>{var n=r(1504),o=r(37154),i=r(46723);e.exports=function(e){return function(t,r,s){var a,l=n(t),u=o(l.length),c=i(s,u);if(e&&r!=r){for(;u>c;)if((a=l[c++])!=a)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===r)return e||c||0;return!e&&-1}}},45515:(e,t,r)=>{"use strict";var n=r(26610),o=r(39632),i=r(19897),s=[].slice,a={},construct=function(e,t,r){if(!(t in a)){for(var n=[],o=0;o<t;o++)n[o]="a["+o+"]";a[t]=Function("F,a","return new F("+n.join(",")+")")}return a[t](e,r)};e.exports=Function.bind||function bind(e){var t=n(this),r=s.call(arguments,1),bound=function(){var n=r.concat(s.call(arguments));return this instanceof bound?construct(t,n.length,n):i(t,n,e)};return o(t.prototype)&&(bound.prototype=t.prototype),bound}},8312:(e,t,r)=>{var n=r(41352),o=r(24300)("toStringTag"),i="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:i?n(t):"Object"==(s=n(t))&&"function"==typeof t.callee?"Arguments":s}},41352:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},47208:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},87352:(e,t,r)=>{"use strict";var n=r(60510),o=r(48439);e.exports=function(e,t,r){t in e?n.f(e,t,o(0,r)):e[t]=r}},61725:(e,t,r)=>{var n=r(26610);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},18239:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},75179:(e,t,r)=>{e.exports=!r(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(e,t,r)=>{var n=r(39632),o=r(43280).document,i=n(o)&&n(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},31986:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(e,t,r)=>{var n=r(86425),o=r(97739),i=r(67410);e.exports=function(e){var t=n(e),r=o.f;if(r)for(var s,a=r(e),l=i.f,u=0;a.length>u;)l.call(e,s=a[u++])&&t.push(s);return t}},98310:(e,t,r)=>{var n=r(43280),o=r(47208),i=r(61725),s=r(62292),a=r(20657),$export=function(e,t,r){var l,u,c,p=e&$export.F,f=e&$export.G,d=e&$export.S,v=e&$export.P,h=e&$export.B,g=e&$export.W,y=f?o:o[t]||(o[t]={}),m=y.prototype,b=f?n:d?n[t]:(n[t]||{}).prototype;for(l in f&&(r=t),r)(u=!p&&b&&void 0!==b[l])&&a(y,l)||(c=u?b[l]:r[l],y[l]=f&&"function"!=typeof b[l]?r[l]:h&&u?i(c,n):g&&b[l]==c?function(e){var F=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return F.prototype=e.prototype,F}(c):v&&"function"==typeof c?i(Function.call,c):c,v&&((y.virtual||(y.virtual={}))[l]=c,e&$export.R&&m&&!m[l]&&s(m,l,c)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},90472:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},43280:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},20657:e=>{var t={}.hasOwnProperty;e.exports=function(e,r){return t.call(e,r)}},62292:(e,t,r)=>{var n=r(60510),o=r(48439);e.exports=r(75179)?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},92477:(e,t,r)=>{var n=r(43280).document;e.exports=n&&n.documentElement},64457:(e,t,r)=>{e.exports=!r(75179)&&!r(90472)((function(){return 7!=Object.defineProperty(r(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:e=>{e.exports=function(e,t,r){var n=void 0===r;switch(t.length){case 0:return n?e():e.call(r);case 1:return n?e(t[0]):e.call(r,t[0]);case 2:return n?e(t[0],t[1]):e.call(r,t[0],t[1]);case 3:return n?e(t[0],t[1],t[2]):e.call(r,t[0],t[1],t[2]);case 4:return n?e(t[0],t[1],t[2],t[3]):e.call(r,t[0],t[1],t[2],t[3])}return e.apply(r,t)}},13115:(e,t,r)=>{var n=r(41352);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},11827:(e,t,r)=>{var n=r(79105),o=r(24300)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||i[o]===e)}},7359:(e,t,r)=>{var n=r(41352);e.exports=Array.isArray||function isArray(e){return"Array"==n(e)}},39632:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},93086:(e,t,r)=>{var n=r(30498);e.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},19802:(e,t,r)=>{"use strict";var n=r(82488),o=r(48439),i=r(2413),s={};r(62292)(s,r(24300)("iterator"),(function(){return this})),e.exports=function(e,t,r){e.prototype=n(s,{next:o(1,r)}),i(e,t+" Iterator")}},6125:(e,t,r)=>{"use strict";var n=r(36794),o=r(98310),i=r(19312),s=r(62292),a=r(79105),l=r(19802),u=r(2413),c=r(999),p=r(24300)("iterator"),f=!([].keys&&"next"in[].keys()),d="keys",v="values",returnThis=function(){return this};e.exports=function(e,t,r,h,g,y,m){l(r,t,h);var b,x,_,getMethod=function(e){if(!f&&e in k)return k[e];switch(e){case d:return function keys(){return new r(this,e)};case v:return function values(){return new r(this,e)}}return function entries(){return new r(this,e)}},w=t+" Iterator",S=g==v,j=!1,k=e.prototype,C=k[p]||k["@@iterator"]||g&&k[g],O=C||getMethod(g),P=g?S?getMethod("entries"):O:void 0,I="Array"==t&&k.entries||C;if(I&&(_=c(I.call(new e)))!==Object.prototype&&_.next&&(u(_,w,!0),n||"function"==typeof _[p]||s(_,p,returnThis)),S&&C&&C.name!==v&&(j=!0,O=function values(){return C.call(this)}),n&&!m||!f&&!j&&k[p]||s(k,p,O),a[t]=O,a[w]=returnThis,g)if(b={values:S?O:getMethod(v),keys:y?O:getMethod(d),entries:P},m)for(x in b)x in k||i(k,x,b[x]);else o(o.P+o.F*(f||j),t,b);return b}},26797:(e,t,r)=>{var n=r(24300)("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i=[7],s=i[n]();s.next=function(){return{done:r=!0}},i[n]=function(){return s},e(i)}catch(e){}return r}},9329:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},79105:e=>{e.exports={}},36794:e=>{e.exports=!0},6758:(e,t,r)=>{var n=r(54251)("meta"),o=r(39632),i=r(20657),s=r(60510).f,a=0,l=Object.isExtensible||function(){return!0},u=!r(90472)((function(){return l(Object.preventExtensions({}))})),setMeta=function(e){s(e,n,{value:{i:"O"+ ++a,w:{}}})},c=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!l(e))return"F";if(!t)return"E";setMeta(e)}return e[n].i},getWeak:function(e,t){if(!i(e,n)){if(!l(e))return!0;if(!t)return!1;setMeta(e)}return e[n].w},onFreeze:function(e){return u&&c.NEED&&l(e)&&!i(e,n)&&setMeta(e),e}}},82488:(e,t,r)=>{var n=r(30498),o=r(36607),i=r(31986),s=r(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=r(48765)("iframe"),n=i.length;for(t.style.display="none",r(92477).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;n--;)delete createDict.prototype[i[n]];return createDict()};e.exports=Object.create||function create(e,t){var r;return null!==e?(Empty.prototype=n(e),r=new Empty,Empty.prototype=null,r[s]=e):r=createDict(),void 0===t?r:o(r,t)}},60510:(e,t,r)=>{var n=r(30498),o=r(64457),i=r(12737),s=Object.defineProperty;t.f=r(75179)?Object.defineProperty:function defineProperty(e,t,r){if(n(e),t=i(t,!0),n(r),o)try{return s(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},36607:(e,t,r)=>{var n=r(60510),o=r(30498),i=r(86425);e.exports=r(75179)?Object.defineProperties:function defineProperties(e,t){o(e);for(var r,s=i(t),a=s.length,l=0;a>l;)n.f(e,r=s[l++],t[r]);return e}},83264:(e,t,r)=>{var n=r(67410),o=r(48439),i=r(1504),s=r(12737),a=r(20657),l=r(64457),u=Object.getOwnPropertyDescriptor;t.f=r(75179)?u:function getOwnPropertyDescriptor(e,t){if(e=i(e),t=s(t,!0),l)try{return u(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},26084:(e,t,r)=>{var n=r(1504),o=r(8772).f,i={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function getOwnPropertyNames(e){return s&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(e){return s.slice()}}(e):o(n(e))}},8772:(e,t,r)=>{var n=r(65326),o=r(31986).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return n(e,o)}},97739:(e,t)=>{t.f=Object.getOwnPropertySymbols},999:(e,t,r)=>{var n=r(20657),o=r(60061),i=r(18478)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},65326:(e,t,r)=>{var n=r(20657),o=r(1504),i=r(69191)(!1),s=r(18478)("IE_PROTO");e.exports=function(e,t){var r,a=o(e),l=0,u=[];for(r in a)r!=s&&n(a,r)&&u.push(r);for(;t.length>l;)n(a,r=t[l++])&&(~i(u,r)||u.push(r));return u}},86425:(e,t,r)=>{var n=r(65326),o=r(31986);e.exports=Object.keys||function keys(e){return n(e,o)}},67410:(e,t)=>{t.f={}.propertyIsEnumerable},57972:(e,t,r)=>{var n=r(98310),o=r(47208),i=r(90472);e.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],s={};s[e]=t(r),n(n.S+n.F*i((function(){r(1)})),"Object",s)}},9480:(e,t,r)=>{var n=r(75179),o=r(86425),i=r(1504),s=r(67410).f;e.exports=function(e){return function(t){for(var r,a=i(t),l=o(a),u=l.length,c=0,p=[];u>c;)r=l[c++],n&&!s.call(a,r)||p.push(e?[r,a[r]]:a[r]);return p}}},48439:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},19312:(e,t,r)=>{e.exports=r(62292)},25574:(e,t,r)=>{var n=r(39632),o=r(30498),check=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{(n=r(61725)(Function.call,r(83264).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function setPrototypeOf(e,r){return check(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check}},2413:(e,t,r)=>{var n=r(60510).f,o=r(20657),i=r(24300)("toStringTag");e.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},18478:(e,t,r)=>{var n=r(29990)("keys"),o=r(54251);e.exports=function(e){return n[e]||(n[e]=o(e))}},29990:(e,t,r)=>{var n=r(47208),o=r(43280),i="__core-js_shared__",s=o[i]||(o[i]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},78502:(e,t,r)=>{var n=r(58290),o=r(18239);e.exports=function(e){return function(t,r){var i,s,a=String(o(t)),l=n(r),u=a.length;return l<0||l>=u?e?"":void 0:(i=a.charCodeAt(l))<55296||i>56319||l+1===u||(s=a.charCodeAt(l+1))<56320||s>57343?e?a.charAt(l):i:e?a.slice(l,l+2):s-56320+(i-55296<<10)+65536}}},46723:(e,t,r)=>{var n=r(58290),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):i(e,t)}},58290:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},1504:(e,t,r)=>{var n=r(13115),o=r(18239);e.exports=function(e){return n(o(e))}},37154:(e,t,r)=>{var n=r(58290),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},60061:(e,t,r)=>{var n=r(18239);e.exports=function(e){return Object(n(e))}},12737:(e,t,r)=>{var n=r(39632);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},54251:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},31164:(e,t,r)=>{var n=r(43280),o=r(47208),i=r(36794),s=r(7273),a=r(60510).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},7273:(e,t,r)=>{t.f=r(24300)},24300:(e,t,r)=>{var n=r(29990)("wks"),o=r(54251),i=r(43280).Symbol,s="function"==typeof i;(e.exports=function(e){return n[e]||(n[e]=s&&i[e]||(s?i:o)("Symbol."+e))}).store=n},26116:(e,t,r)=>{var n=r(8312),o=r(24300)("iterator"),i=r(79105);e.exports=r(47208).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[n(e)]}},37627:(e,t,r)=>{"use strict";var n=r(61725),o=r(98310),i=r(60061),s=r(93086),a=r(11827),l=r(37154),u=r(87352),c=r(26116);o(o.S+o.F*!r(26797)((function(e){Array.from(e)})),"Array",{from:function from(e){var t,r,o,p,f=i(e),d="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,g=void 0!==h,y=0,m=c(f);if(g&&(h=n(h,v>2?arguments[2]:void 0,2)),null==m||d==Array&&a(m))for(r=new d(t=l(f.length));t>y;y++)u(r,y,g?h(f[y],y):f[y]);else for(p=m.call(f),r=new d;!(o=p.next()).done;y++)u(r,y,g?s(p,h,[o.value,y],!0):o.value);return r.length=y,r}})},42580:(e,t,r)=>{var n=r(98310);n(n.S,"Array",{isArray:r(7359)})},84411:(e,t,r)=>{"use strict";var n=r(29697),o=r(9329),i=r(79105),s=r(1504);e.exports=r(6125)(Array,"Array",(function(e,t){this._t=s(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])}),"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},30785:(e,t,r)=>{var n=r(98310);n(n.S,"Object",{create:r(82488)})},40168:(e,t,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperty:r(60510).f})},18576:(e,t,r)=>{var n=r(1504),o=r(83264).f;r(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(e,t){return o(n(e),t)}}))},4840:(e,t,r)=>{var n=r(60061),o=r(999);r(57972)("getPrototypeOf",(function(){return function getPrototypeOf(e){return o(n(e))}}))},13890:(e,t,r)=>{var n=r(98310);n(n.S,"Object",{setPrototypeOf:r(25574).set})},70285:()=>{},11320:(e,t,r)=>{var n=r(98310),o=r(82488),i=r(26610),s=r(30498),a=r(39632),l=r(90472),u=r(45515),c=(r(43280).Reflect||{}).construct,p=l((function(){function F(){}return!(c((function(){}),[],F)instanceof F)})),f=!l((function(){c((function(){}))}));n(n.S+n.F*(p||f),"Reflect",{construct:function construct(e,t){i(e),s(t);var r=arguments.length<3?e:i(arguments[2]);if(f&&!p)return c(e,t,r);if(e==r){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var n=[null];return n.push.apply(n,t),new(u.apply(e,n))}var l=r.prototype,d=o(a(l)?l:Object.prototype),v=Function.apply.call(e,d,t);return a(v)?v:d}})},36600:(e,t,r)=>{var n=r(83264),o=r(999),i=r(20657),s=r(98310),a=r(39632),l=r(30498);s(s.S,"Reflect",{get:function get(e,t){var r,s,u=arguments.length<3?e:arguments[2];return l(e)===u?e[t]:(r=n.f(e,t))?i(r,"value")?r.value:void 0!==r.get?r.get.call(u):void 0:a(s=o(e))?get(s,t,u):void 0}})},99572:(e,t,r)=>{"use strict";var n=r(78502)(!0);r(6125)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})}))},54370:(e,t,r)=>{"use strict";var n=r(43280),o=r(20657),i=r(75179),s=r(98310),a=r(19312),l=r(6758).KEY,u=r(90472),c=r(29990),p=r(2413),f=r(54251),d=r(24300),v=r(7273),h=r(31164),g=r(42266),y=r(7359),m=r(30498),b=r(39632),x=r(60061),_=r(1504),w=r(12737),S=r(48439),j=r(82488),k=r(26084),C=r(83264),O=r(97739),P=r(60510),I=r(86425),E=C.f,M=P.f,$=k.f,T=n.Symbol,R=n.JSON,A=R&&R.stringify,D=d("_hidden"),Q=d("toPrimitive"),B={}.propertyIsEnumerable,L=c("symbol-registry"),U=c("symbols"),N=c("op-symbols"),V=Object.prototype,H="function"==typeof T&&!!O.f,W=n.QObject,z=!W||!W.prototype||!W.prototype.findChild,q=i&&u((function(){return 7!=j(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(e,t,r){var n=E(V,t);n&&delete V[t],M(e,t,r),n&&e!==V&&M(V,t,n)}:M,wrap=function(e){var t=U[e]=j(T.prototype);return t._k=e,t},G=H&&"symbol"==typeof T.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof T},K=function defineProperty(e,t,r){return e===V&&K(N,t,r),m(e),t=w(t,!0),m(r),o(U,t)?(r.enumerable?(o(e,D)&&e[D][t]&&(e[D][t]=!1),r=j(r,{enumerable:S(0,!1)})):(o(e,D)||M(e,D,S(1,{})),e[D][t]=!0),q(e,t,r)):M(e,t,r)},Z=function defineProperties(e,t){m(e);for(var r,n=g(t=_(t)),o=0,i=n.length;i>o;)K(e,r=n[o++],t[r]);return e},J=function propertyIsEnumerable(e){var t=B.call(this,e=w(e,!0));return!(this===V&&o(U,e)&&!o(N,e))&&(!(t||!o(this,e)||!o(U,e)||o(this,D)&&this[D][e])||t)},Y=function getOwnPropertyDescriptor(e,t){if(e=_(e),t=w(t,!0),e!==V||!o(U,t)||o(N,t)){var r=E(e,t);return!r||!o(U,t)||o(e,D)&&e[D][t]||(r.enumerable=!0),r}},X=function getOwnPropertyNames(e){for(var t,r=$(_(e)),n=[],i=0;r.length>i;)o(U,t=r[i++])||t==D||t==l||n.push(t);return n},ee=function getOwnPropertySymbols(e){for(var t,r=e===V,n=$(r?N:_(e)),i=[],s=0;n.length>s;)!o(U,t=n[s++])||r&&!o(V,t)||i.push(U[t]);return i};H||(a((T=function Symbol(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),$set=function(t){this===V&&$set.call(N,t),o(this,D)&&o(this[D],e)&&(this[D][e]=!1),q(this,e,S(1,t))};return i&&z&&q(V,e,{configurable:!0,set:$set}),wrap(e)}).prototype,"toString",(function toString(){return this._k})),C.f=Y,P.f=K,r(8772).f=k.f=X,r(67410).f=J,O.f=ee,i&&!r(36794)&&a(V,"propertyIsEnumerable",J,!0),v.f=function(e){return wrap(d(e))}),s(s.G+s.W+s.F*!H,{Symbol:T});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)d(te[re++]);for(var ne=I(d.store),oe=0;ne.length>oe;)h(ne[oe++]);s(s.S+s.F*!H,"Symbol",{for:function(e){return o(L,e+="")?L[e]:L[e]=T(e)},keyFor:function keyFor(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in L)if(L[t]===e)return t},useSetter:function(){z=!0},useSimple:function(){z=!1}}),s(s.S+s.F*!H,"Object",{create:function create(e,t){return void 0===t?j(e):Z(j(e),t)},defineProperty:K,defineProperties:Z,getOwnPropertyDescriptor:Y,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var ie=u((function(){O.f(1)}));s(s.S+s.F*ie,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(e){return O.f(x(e))}}),R&&s(s.S+s.F*(!H||u((function(){var e=T();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))}))),"JSON",{stringify:function stringify(e){for(var t,r,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);if(r=t=n[1],(b(t)||void 0!==e)&&!G(e))return y(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!G(t))return t}),n[1]=t,A.apply(R,n)}}),T.prototype[Q]||r(62292)(T.prototype,Q,T.prototype.valueOf),p(T,"Symbol"),p(Math,"Math",!0),p(n.JSON,"JSON",!0)},95260:(e,t,r)=>{var n=r(98310),o=r(9480)(!0);n(n.S,"Object",{entries:function entries(e){return o(e)}})},87573:(e,t,r)=>{r(31164)("asyncIterator")},97224:(e,t,r)=>{r(31164)("observable")},74114:(e,t,r)=>{r(84411);for(var n=r(43280),o=r(62292),i=r(79105),s=r(24300)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<a.length;l++){var u=a[l],c=n[u],p=c&&c.prototype;p&&!p[s]&&o(p,s,u),i[u]=i.Array}},22761:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},42094:(e,t,r)=>{var n=r(62190)("unscopables"),o=Array.prototype;null==o[n]&&r(74216)(o,n,{}),e.exports=function(e){o[n][e]=!0}},88492:(e,t,r)=>{"use strict";var n=r(12070)(!0);e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},6365:(e,t,r)=>{var n=r(67334);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},59021:(e,t,r)=>{var n=r(15703),o=r(26078),i=r(78615);e.exports=function(e){return function(t,r,s){var a,l=n(t),u=o(l.length),c=i(s,u);if(e&&r!=r){for(;u>c;)if((a=l[c++])!=a)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===r)return e||c||0;return!e&&-1}}},78309:(e,t,r)=>{var n=r(11528),o=r(8467),i=r(26033),s=r(26078),a=r(63531);e.exports=function(e,t){var r=1==e,l=2==e,u=3==e,c=4==e,p=6==e,f=5==e||p,d=t||a;return function(t,a,v){for(var h,g,y=i(t),m=o(y),b=n(a,v,3),x=s(m.length),_=0,w=r?d(t,x):l?d(t,0):void 0;x>_;_++)if((f||_ in m)&&(g=b(h=m[_],_,y),e))if(r)w[_]=g;else if(g)switch(e){case 3:return!0;case 5:return h;case 6:return _;case 2:w.push(h)}else if(c)return!1;return p?-1:u||c?c:w}}},81071:(e,t,r)=>{var n=r(67334),o=r(99141),i=r(62190)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),n(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},63531:(e,t,r)=>{var n=r(81071);e.exports=function(e,t){return new(n(e))(t)}},20106:(e,t,r)=>{var n=r(26688),o=r(62190)("toStringTag"),i="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,r,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:i?n(t):"Object"==(s=n(t))&&"function"==typeof t.callee?"Arguments":s}},26688:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},60066:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},11528:(e,t,r)=>{var n=r(22761);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},61622:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},36628:(e,t,r)=>{e.exports=!r(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(e,t,r)=>{var n=r(67334),o=r(38113).document,i=n(o)&&n(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},33603:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},65772:(e,t,r)=>{var n=r(38113),o=r(60066),i=r(74216),s=r(17738),a=r(11528),$export=function(e,t,r){var l,u,c,p,f=e&$export.F,d=e&$export.G,v=e&$export.S,h=e&$export.P,g=e&$export.B,y=d?n:v?n[t]||(n[t]={}):(n[t]||{}).prototype,m=d?o:o[t]||(o[t]={}),b=m.prototype||(m.prototype={});for(l in d&&(r=t),r)c=((u=!f&&y&&void 0!==y[l])?y:r)[l],p=g&&u?a(c,n):h&&"function"==typeof c?a(Function.call,c):c,y&&s(y,l,c,e&$export.U),m[l]!=c&&i(m,l,p),h&&b[l]!=c&&(b[l]=c)};n.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},48625:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},48897:(e,t,r)=>{"use strict";r(25846);var n=r(17738),o=r(74216),i=r(48625),s=r(61622),a=r(62190),l=r(43288),u=a("species"),c=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),p=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var f=a(e),d=!i((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),v=d?!i((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[u]=function(){return r}),r[f](""),!t})):void 0;if(!d||!v||"replace"===e&&!c||"split"===e&&!p){var h=/./[f],g=r(s,f,""[e],(function maybeCallNative(e,t,r,n,o){return t.exec===l?d&&!o?{done:!0,value:h.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),y=g[0],m=g[1];n(String.prototype,e,y),o(RegExp.prototype,f,2==t?function(e,t){return m.call(e,this,t)}:function(e){return m.call(e,this)})}}},74859:(e,t,r)=>{"use strict";var n=r(6365);e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},20646:(e,t,r)=>{e.exports=r(8655)("native-function-to-string",Function.toString)},38113:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},54040:e=>{var t={}.hasOwnProperty;e.exports=function(e,r){return t.call(e,r)}},74216:(e,t,r)=>{var n=r(98558),o=r(36061);e.exports=r(36628)?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},8954:(e,t,r)=>{var n=r(38113).document;e.exports=n&&n.documentElement},5100:(e,t,r)=>{e.exports=!r(36628)&&!r(48625)((function(){return 7!=Object.defineProperty(r(5050)("div"),"a",{get:function(){return 7}}).a}))},18938:(e,t,r)=>{var n=r(67334),o=r(86095).set;e.exports=function(e,t,r){var i,s=t.constructor;return s!==r&&"function"==typeof s&&(i=s.prototype)!==r.prototype&&n(i)&&o&&o(e,i),e}},8467:(e,t,r)=>{var n=r(26688);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},99141:(e,t,r)=>{var n=r(26688);e.exports=Array.isArray||function isArray(e){return"Array"==n(e)}},67334:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},94587:(e,t,r)=>{var n=r(67334),o=r(26688),i=r(62190)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},81422:e=>{e.exports=!1},98558:(e,t,r)=>{var n=r(6365),o=r(5100),i=r(31382),s=Object.defineProperty;t.f=r(36628)?Object.defineProperty:function defineProperty(e,t,r){if(n(e),t=i(t,!0),n(r),o)try{return s(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},94662:(e,t,r)=>{var n=r(65873),o=r(36061),i=r(15703),s=r(31382),a=r(54040),l=r(5100),u=Object.getOwnPropertyDescriptor;t.f=r(36628)?u:function getOwnPropertyDescriptor(e,t){if(e=i(e),t=s(t,!0),l)try{return u(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},76604:(e,t,r)=>{var n=r(75547),o=r(33603).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return n(e,o)}},75547:(e,t,r)=>{var n=r(54040),o=r(15703),i=r(59021)(!1),s=r(28034)("IE_PROTO");e.exports=function(e,t){var r,a=o(e),l=0,u=[];for(r in a)r!=s&&n(a,r)&&u.push(r);for(;t.length>l;)n(a,r=t[l++])&&(~i(u,r)||u.push(r));return u}},65873:(e,t)=>{t.f={}.propertyIsEnumerable},36061:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},17738:(e,t,r)=>{var n=r(38113),o=r(74216),i=r(54040),s=r(25078)("src"),a=r(20646),l="toString",u=(""+a).split(l);r(60066).inspectSource=function(e){return a.call(e)},(e.exports=function(e,t,r,a){var l="function"==typeof r;l&&(i(r,"name")||o(r,"name",t)),e[t]!==r&&(l&&(i(r,s)||o(r,s,e[t]?""+e[t]:u.join(String(t)))),e===n?e[t]=r:a?e[t]?e[t]=r:o(e,t,r):(delete e[t],o(e,t,r)))})(Function.prototype,l,(function toString(){return"function"==typeof this&&this[s]||a.call(this)}))},62404:(e,t,r)=>{"use strict";var n=r(20106),o=RegExp.prototype.exec;e.exports=function(e,t){var r=e.exec;if("function"==typeof r){var i=r.call(e,t);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==n(e))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},43288:(e,t,r)=>{"use strict";var n,o,i=r(74859),s=RegExp.prototype.exec,a=String.prototype.replace,l=s,u=(n=/a/,o=/b*/g,s.call(n,"a"),s.call(o,"a"),0!==n.lastIndex||0!==o.lastIndex),c=void 0!==/()??/.exec("")[1];(u||c)&&(l=function exec(e){var t,r,n,o,l=this;return c&&(r=new RegExp("^"+l.source+"$(?!\\s)",i.call(l))),u&&(t=l.lastIndex),n=s.call(l,e),u&&n&&(l.lastIndex=l.global?n.index+n[0].length:t),c&&n&&n.length>1&&a.call(n[0],r,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)})),n}),e.exports=l},86095:(e,t,r)=>{var n=r(67334),o=r(6365),check=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{(n=r(11528)(Function.call,r(94662).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function setPrototypeOf(e,r){return check(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check}},49766:(e,t,r)=>{"use strict";var n=r(38113),o=r(98558),i=r(36628),s=r(62190)("species");e.exports=function(e){var t=n[e];i&&t&&!t[s]&&o.f(t,s,{configurable:!0,get:function(){return this}})}},28034:(e,t,r)=>{var n=r(8655)("keys"),o=r(25078);e.exports=function(e){return n[e]||(n[e]=o(e))}},8655:(e,t,r)=>{var n=r(60066),o=r(38113),i="__core-js_shared__",s=o[i]||(o[i]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},11987:(e,t,r)=>{var n=r(6365),o=r(22761),i=r(62190)("species");e.exports=function(e,t){var r,s=n(e).constructor;return void 0===s||null==(r=n(s)[i])?t:o(r)}},10225:(e,t,r)=>{"use strict";var n=r(48625);e.exports=function(e,t){return!!e&&n((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},12070:(e,t,r)=>{var n=r(3338),o=r(61622);e.exports=function(e){return function(t,r){var i,s,a=String(o(t)),l=n(r),u=a.length;return l<0||l>=u?e?"":void 0:(i=a.charCodeAt(l))<55296||i>56319||l+1===u||(s=a.charCodeAt(l+1))<56320||s>57343?e?a.charAt(l):i:e?a.slice(l,l+2):s-56320+(i-55296<<10)+65536}}},78615:(e,t,r)=>{var n=r(3338),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):i(e,t)}},3338:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},15703:(e,t,r)=>{var n=r(8467),o=r(61622);e.exports=function(e){return n(o(e))}},26078:(e,t,r)=>{var n=r(3338),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},26033:(e,t,r)=>{var n=r(61622);e.exports=function(e){return Object(n(e))}},31382:(e,t,r)=>{var n=r(67334);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},25078:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+r).toString(36))}},62190:(e,t,r)=>{var n=r(8655)("wks"),o=r(25078),i=r(38113).Symbol,s="function"==typeof i;(e.exports=function(e){return n[e]||(n[e]=s&&i[e]||(s?i:o)("Symbol."+e))}).store=n},71954:(e,t,r)=>{"use strict";var n=r(65772),o=r(78309)(5),i="find",s=!0;i in[]&&Array(1).find((function(){s=!1})),n(n.P+n.F*s,"Array",{find:function find(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),r(42094)(i)},90286:(e,t,r)=>{"use strict";var n=r(65772),o=r(78309)(1);n(n.P+n.F*!r(10225)([].map,!0),"Array",{map:function map(e){return o(this,e,arguments[1])}})},67209:(e,t,r)=>{"use strict";var n=r(65772),o=r(8954),i=r(26688),s=r(78615),a=r(26078),l=[].slice;n(n.P+n.F*r(48625)((function(){o&&l.call(o)})),"Array",{slice:function slice(e,t){var r=a(this.length),n=i(this);if(t=void 0===t?r:t,"Array"==n)return l.call(this,e,t);for(var o=s(e,r),u=s(t,r),c=a(u-o),p=new Array(c),f=0;f<c;f++)p[f]="String"==n?this.charAt(o+f):this[o+f];return p}})},99745:(e,t,r)=>{var n=r(98558).f,o=Function.prototype,i=/^\s*function ([^ (]*)/,s="name";s in o||r(36628)&&n(o,s,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},76139:(e,t,r)=>{"use strict";var n=r(20106),o={};o[r(62190)("toStringTag")]="z",o+""!="[object z]"&&r(17738)(Object.prototype,"toString",(function toString(){return"[object "+n(this)+"]"}),!0)},55506:(e,t,r)=>{var n=r(38113),o=r(18938),i=r(98558).f,s=r(76604).f,a=r(94587),l=r(74859),u=n.RegExp,c=u,p=u.prototype,f=/a/g,d=/a/g,v=new u(f)!==f;if(r(36628)&&(!v||r(48625)((function(){return d[r(62190)("match")]=!1,u(f)!=f||u(d)==d||"/a/i"!=u(f,"i")})))){u=function RegExp(e,t){var r=this instanceof u,n=a(e),i=void 0===t;return!r&&n&&e.constructor===u&&i?e:o(v?new c(n&&!i?e.source:e,t):c((n=e instanceof u)?e.source:e,n&&i?l.call(e):t),r?this:p,u)};for(var proxy=function(e){e in u||i(u,e,{configurable:!0,get:function(){return c[e]},set:function(t){c[e]=t}})},h=s(c),g=0;h.length>g;)proxy(h[g++]);p.constructor=u,u.prototype=p,r(17738)(n,"RegExp",u)}r(49766)("RegExp")},25846:(e,t,r)=>{"use strict";var n=r(43288);r(65772)({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})},40751:(e,t,r)=>{r(36628)&&"g"!=/./g.flags&&r(98558).f(RegExp.prototype,"flags",{configurable:!0,get:r(74859)})},84208:(e,t,r)=>{"use strict";var n=r(6365),o=r(26033),i=r(26078),s=r(3338),a=r(88492),l=r(62404),u=Math.max,c=Math.min,p=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;r(48897)("replace",2,(function(e,t,r,v){return[function replace(n,o){var i=e(this),s=null==n?void 0:n[t];return void 0!==s?s.call(n,i,o):r.call(String(i),n,o)},function(e,t){var o=v(r,e,this,t);if(o.done)return o.value;var p=n(e),f=String(this),d="function"==typeof t;d||(t=String(t));var h=p.global;if(h){var g=p.unicode;p.lastIndex=0}for(var y=[];;){var m=l(p,f);if(null===m)break;if(y.push(m),!h)break;""===String(m[0])&&(p.lastIndex=a(f,i(p.lastIndex),g))}for(var b,x="",_=0,w=0;w<y.length;w++){m=y[w];for(var S=String(m[0]),j=u(c(s(m.index),f.length),0),k=[],C=1;C<m.length;C++)k.push(void 0===(b=m[C])?b:String(b));var O=m.groups;if(d){var P=[S].concat(k,j,f);void 0!==O&&P.push(O);var I=String(t.apply(void 0,P))}else I=getSubstitution(S,f,j,k,O,t);j>=_&&(x+=f.slice(_,j)+I,_=j+S.length)}return x+f.slice(_)}];function getSubstitution(e,t,n,i,s,a){var l=n+e.length,u=i.length,c=d;return void 0!==s&&(s=o(s),c=f),r.call(a,c,(function(r,o){var a;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(l);case"<":a=s[o.slice(1,-1)];break;default:var c=+o;if(0===c)return r;if(c>u){var f=p(c/10);return 0===f?r:f<=u?void 0===i[f-1]?o.charAt(1):i[f-1]+o.charAt(1):r}a=i[c-1]}return void 0===a?"":a}))}}))},99236:(e,t,r)=>{"use strict";var n=r(94587),o=r(6365),i=r(11987),s=r(88492),a=r(26078),l=r(62404),u=r(43288),c=r(48625),p=Math.min,f=[].push,d=4294967295,v=!c((function(){RegExp(d,"y")}));r(48897)("split",2,(function(e,t,r,c){var h;return h="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,t){var o=String(this);if(void 0===e&&0===t)return[];if(!n(e))return r.call(o,e,t);for(var i,s,a,l=[],c=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,v=void 0===t?d:t>>>0,h=new RegExp(e.source,c+"g");(i=u.call(h,o))&&!((s=h.lastIndex)>p&&(l.push(o.slice(p,i.index)),i.length>1&&i.index<o.length&&f.apply(l,i.slice(1)),a=i[0].length,p=s,l.length>=v));)h.lastIndex===i.index&&h.lastIndex++;return p===o.length?!a&&h.test("")||l.push(""):l.push(o.slice(p)),l.length>v?l.slice(0,v):l}:"0".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function split(r,n){var o=e(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):h.call(String(o),r,n)},function(e,t){var n=c(h,e,this,t,h!==r);if(n.done)return n.value;var u=o(e),f=String(this),g=i(u,RegExp),y=u.unicode,m=(u.ignoreCase?"i":"")+(u.multiline?"m":"")+(u.unicode?"u":"")+(v?"y":"g"),b=new g(v?u:"^(?:"+u.source+")",m),x=void 0===t?d:t>>>0;if(0===x)return[];if(0===f.length)return null===l(b,f)?[f]:[];for(var _=0,w=0,S=[];w<f.length;){b.lastIndex=v?w:0;var j,k=l(b,v?f:f.slice(w));if(null===k||(j=p(a(b.lastIndex+(v?0:w)),f.length))===_)w=s(f,w,y);else{if(S.push(f.slice(_,w)),S.length===x)return S;for(var C=1;C<=k.length-1;C++)if(S.push(k[C]),S.length===x)return S;w=_=j}}return S.push(f.slice(_)),S}]}))},44321:(e,t,r)=>{"use strict";r(40751);var n=r(6365),o=r(74859),i=r(36628),s="toString",a=/./.toString,define=function(e){r(17738)(RegExp.prototype,s,e,!0)};r(48625)((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?define((function toString(){var e=n(this);return"/".concat(e.source,"/","flags"in e?e.flags:!i&&e instanceof RegExp?o.call(e):void 0)})):a.name!=s&&define((function toString(){return a.call(this)}))}},t={};function __webpack_require__(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,__webpack_require__),o.exports}(()=>{"use strict";var e={widget_template_edit_button:__webpack_require__(30743),forms_integrations:__webpack_require__(16534),AssetsManager:__webpack_require__(80203),RoleManager:__webpack_require__(80804),ThemeBuilder:__webpack_require__(99004)};window.elementorProAdmin={widget_template_edit_button:new e.widget_template_edit_button,forms_integrations:new e.forms_integrations,assetsManager:new e.AssetsManager,roleManager:new e.RoleManager,themeBuilder:new e.ThemeBuilder},jQuery((function(){elementorProAdmin.roleManager.advancedRoleManager.init()}))})()})();PK!
��.assets/js/posts.c23c8d29f44afbd62da6.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["posts"],{

/***/ "../modules/posts/assets/js/frontend/handlers/cards.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/cards.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _posts = _interopRequireDefault(__webpack_require__(/*! ./posts */ "../modules/posts/assets/js/frontend/handlers/posts.js"));

var _default = _posts.default.extend({
  getSkinPrefix() {
    return 'cards_';
  }

});

exports.default = _default;

/***/ }),

/***/ "../modules/posts/assets/js/frontend/handlers/posts.js":
/*!*************************************************************!*\
  !*** ../modules/posts/assets/js/frontend/handlers/posts.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _default = elementorModules.frontend.handlers.Base.extend({
  getSkinPrefix() {
    return 'classic_';
  },

  bindEvents() {
    var cid = this.getModelCID();
    elementorFrontend.addListenerOnce(cid, 'resize', this.onWindowResize);
  },

  getClosureMethodsNames() {
    return elementorModules.frontend.handlers.Base.prototype.getClosureMethodsNames.apply(this, arguments).concat(['fitImages', 'onWindowResize', 'runMasonry']);
  },

  getDefaultSettings() {
    return {
      classes: {
        fitHeight: 'elementor-fit-height',
        hasItemRatio: 'elementor-has-item-ratio'
      },
      selectors: {
        postsContainer: '.elementor-posts-container',
        post: '.elementor-post',
        postThumbnail: '.elementor-post__thumbnail',
        postThumbnailImage: '.elementor-post__thumbnail img'
      }
    };
  },

  getDefaultElements() {
    var selectors = this.getSettings('selectors');
    return {
      $postsContainer: this.$element.find(selectors.postsContainer),
      $posts: this.$element.find(selectors.post)
    };
  },

  fitImage($post) {
    var settings = this.getSettings(),
        $imageParent = $post.find(settings.selectors.postThumbnail),
        $image = $imageParent.find('img'),
        image = $image[0];

    if (!image) {
      return;
    }

    var imageParentRatio = $imageParent.outerHeight() / $imageParent.outerWidth(),
        imageRatio = image.naturalHeight / image.naturalWidth;
    $imageParent.toggleClass(settings.classes.fitHeight, imageRatio < imageParentRatio);
  },

  fitImages() {
    var $ = jQuery,
        self = this,
        itemRatio = getComputedStyle(this.$element[0], ':after').content,
        settings = this.getSettings();
    this.elements.$postsContainer.toggleClass(settings.classes.hasItemRatio, !!itemRatio.match(/\d/));

    if (self.isMasonryEnabled()) {
      return;
    }

    this.elements.$posts.each(function () {
      var $post = $(this),
          $image = $post.find(settings.selectors.postThumbnailImage);
      self.fitImage($post);
      $image.on('load', function () {
        self.fitImage($post);
      });
    });
  },

  setColsCountSettings() {
    var currentDeviceMode = elementorFrontend.getCurrentDeviceMode(),
        settings = this.getElementSettings(),
        skinPrefix = this.getSkinPrefix(),
        colsCount;

    switch (currentDeviceMode) {
      case 'mobile':
        colsCount = settings[skinPrefix + 'columns_mobile'];
        break;

      case 'tablet':
        colsCount = settings[skinPrefix + 'columns_tablet'];
        break;

      default:
        colsCount = settings[skinPrefix + 'columns'];
    }

    this.setSettings('colsCount', colsCount);
  },

  isMasonryEnabled() {
    return !!this.getElementSettings(this.getSkinPrefix() + 'masonry');
  },

  initMasonry() {
    imagesLoaded(this.elements.$posts, this.runMasonry);
  },

  runMasonry() {
    var elements = this.elements;
    elements.$posts.css({
      marginTop: '',
      transitionDuration: ''
    });
    this.setColsCountSettings();
    var colsCount = this.getSettings('colsCount'),
        hasMasonry = this.isMasonryEnabled() && colsCount >= 2;
    elements.$postsContainer.toggleClass('elementor-posts-masonry', hasMasonry);

    if (!hasMasonry) {
      elements.$postsContainer.height('');
      return;
    }
    /* The `verticalSpaceBetween` variable is setup in a way that supports older versions of the portfolio widget */


    var verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'row_gap.size');

    if ('' === this.getSkinPrefix() && '' === verticalSpaceBetween) {
      verticalSpaceBetween = this.getElementSettings(this.getSkinPrefix() + 'item_gap.size');
    }

    var masonry = new elementorModules.utils.Masonry({
      container: elements.$postsContainer,
      items: elements.$posts.filter(':visible'),
      columnsCount: this.getSettings('colsCount'),
      verticalSpaceBetween
    });
    masonry.run();
  },

  run() {
    // For slow browsers
    setTimeout(this.fitImages, 0);
    this.initMasonry();
  },

  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.bindEvents();
    this.run();
  },

  onWindowResize() {
    this.fitImages();
    this.runMasonry();
  },

  onElementChange() {
    this.fitImages();
    setTimeout(this.runMasonry);
  }

});

exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=posts.c23c8d29f44afbd62da6.bundle.js.mapPK!.h:&%&%9assets/js/progress-tracker.a7329beb7783748287a5.bundle.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["progress-tracker"],{

/***/ "../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js":
/*!************************************************************************************!*\
  !*** ../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class CircularProgress {
  constructor(element, settings) {
    this.settings = settings;
    this.lastKnownProgress = null;
    this.circularProgressTracker = element.find('.elementor-scrolling-tracker-circular')[0];
    this.circularCurrentProgress = this.circularProgressTracker.getElementsByClassName('current-progress')[0];
    this.circularCurrentProgressPercentage = this.circularProgressTracker.getElementsByClassName('current-progress-percentage')[0];
    const radius = this.circularCurrentProgress.r.baseVal.value;
    const circumference = radius * 2 * Math.PI;
    this.circularCurrentProgress.style.strokeDasharray = `${circumference} ${circumference}`;
    this.circularCurrentProgress.style.strokeDashoffset = circumference;
    this.elements = this.cacheElements();
    this.resizeObserver = new ResizeObserver(() => {
      if (this.lastKnownProgress) {
        this.updateProgress(this.lastKnownProgress);
      }
    });
    this.resizeObserver.observe(this.circularProgressTracker);
  }

  cacheElements() {
    return {
      circularProgressTracker: this.circularProgressTracker,
      circularCurrentProgress: this.circularCurrentProgress,
      circularCurrentProgressPercentage: this.circularCurrentProgressPercentage
    };
  }

  updateProgress(progress) {
    // On page load, there is no progress and some of the elements might be not fully rendered - so we hide the progress.
    if (progress <= 0) {
      this.elements.circularCurrentProgress.style.display = 'none';
      this.elements.circularCurrentProgressPercentage.style.display = 'none';
      return;
    }

    this.elements.circularCurrentProgress.style.display = 'block';
    this.elements.circularCurrentProgressPercentage.style.display = 'block';
    const radius = this.elements.circularCurrentProgress.r.baseVal.value,
          circumference = radius * 2 * Math.PI,
          offset = circumference - progress / 100 * circumference;
    this.lastKnownProgress = progress;
    this.elements.circularCurrentProgress.style.strokeDasharray = `${circumference} ${circumference}`;
    this.elements.circularCurrentProgress.style.strokeDashoffset = 'ltr' === this.settings.direction ? -offset : offset;

    if ('yes' === this.settings.percentage) {
      this.elements.circularCurrentProgressPercentage.innerHTML = Math.round(progress) + '%';
    }
  }

  onDestroy() {
    this.resizeObserver.unobserve(this.circularProgressTracker);
  }

}

var _default = CircularProgress;
exports.default = _default;

/***/ }),

/***/ "../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js":
/*!**********************************************************************************!*\
  !*** ../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";


Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

class LinearProgress {
  constructor(element, settings) {
    this.settings = settings;
    this.linearProgressTracker = element.find('.elementor-scrolling-tracker-horizontal')[0];
    this.linearCurrentProgress = this.linearProgressTracker.getElementsByClassName('current-progress')[0];
    this.linearCurrentProgressPercentage = this.linearProgressTracker.getElementsByClassName('current-progress-percentage')[0];
    this.elements = this.cacheElements();
  }

  cacheElements() {
    return {
      linearProgressTracker: this.linearProgressTracker,
      linearCurrentProgress: this.linearCurrentProgress,
      linearCurrentProgressPercentage: this.linearCurrentProgressPercentage
    };
  }

  updateProgress(progress) {
    // On page load, there is no progress and some of the elements might be not fully rendered - so we hide the progress.
    if (progress < 1) {
      this.elements.linearCurrentProgress.style.display = 'none';
      return;
    }

    this.elements.linearCurrentProgress.style.display = 'flex';
    this.elements.linearCurrentProgress.style.width = progress + '%';

    if ('yes' === this.settings.percentage && // Multiplying the progress percentage width by 1.5 to make sure it has enough space to be shown correctly.
    this.elements.linearCurrentProgress.getBoundingClientRect().width > this.elements.linearCurrentProgressPercentage.getBoundingClientRect().width * 1.5) {
      this.elements.linearCurrentProgressPercentage.innerHTML = Math.round(progress) + '%';
      this.elements.linearCurrentProgressPercentage.style.color = getComputedStyle(this.linearCurrentProgress).getPropertyValue('--percentage-color');
    } else {
      this.elements.linearCurrentProgressPercentage.style.color = 'transparent';
    }
  }

}

var _default = LinearProgress;
exports.default = _default;

/***/ }),

/***/ "../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js":
/*!***********************************************************************************!*\
  !*** ../modules/progress-tracker/assets/js/frontend/handlers/progress-tracker.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";


var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");

Object.defineProperty(exports, "__esModule", ({
  value: true
}));
exports.default = void 0;

var _circularProgress = _interopRequireDefault(__webpack_require__(/*! ./circular-progress */ "../modules/progress-tracker/assets/js/frontend/handlers/circular-progress.js"));

var _linearProgress = _interopRequireDefault(__webpack_require__(/*! ./linear-progress */ "../modules/progress-tracker/assets/js/frontend/handlers/linear-progress.js"));

class ProgressTracker extends elementorModules.frontend.handlers.Base {
  onInit() {
    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
    this.circular = 'circular' === this.getElementSettings().type;
    const Handler = this.circular ? _circularProgress.default : _linearProgress.default;
    this.progressBar = new Handler(this.$element, this.getElementSettings());
    this.progressPercentage = 0;
    this.scrollHandler();
    this.handler = this.scrollHandler.bind(this);
    this.initListeners();
  }

  getTrackingElementSelector() {
    const trackingElementSetting = this.getElementSettings().relative_to;
    let selector;

    switch (trackingElementSetting) {
      case 'selector':
        selector = jQuery(this.getElementSettings().selector);
        break;

      case 'post_content':
        selector = jQuery('.elementor-widget-theme-post-content');
        break;

      default:
        selector = this.isScrollSnap() ? jQuery('#e-scroll-snap-container') : elementorFrontend.elements.$body;
        break;
    }

    return selector;
  } // TODO: On Elementor-Pro-3.6.0 delete this function and instead
  // use the function isScrollSnapActivated() from \elementor\assets\dev\js\frontend\utils\utils.js


  isScrollSnap() {
    const scrollSnapStatus = this.isEdit ? elementor.settings.page.model.attributes.scroll_snap : elementorFrontend.config.settings.page.scroll_snap;
    return 'yes' === scrollSnapStatus ? true : false;
  }

  addScrollSnapContainer() {
    if (this.isScrollSnap() && !jQuery('#e-scroll-snap-container').length) {
      jQuery('body').wrapInner('<div id="e-scroll-snap-container" />');
    }
  }

  scrollHandler() {
    // Temporary solution to integrate Scroll-Snap with Progress-Tracker.
    // Add Scroll-Snap container to all content in order to calculate the viewport percentage.
    this.addScrollSnapContainer();
    const $trackingElementSelector = this.getTrackingElementSelector(),
          scrollStartPercentage = $trackingElementSelector.is(elementorFrontend.elements.$body) || $trackingElementSelector.is(jQuery('#e-scroll-snap-container')) ? -100 : 0;
    this.progressPercentage = elementorModules.utils.Scroll.getElementViewportPercentage(this.getTrackingElementSelector(), {
      start: scrollStartPercentage,
      end: -100
    });
    this.progressBar.updateProgress(this.progressPercentage);
  }

  initListeners() {
    window.addEventListener('scroll', this.handler);
    elementorFrontend.elements.$body[0].addEventListener('scroll', this.handler);
  }

  onDestroy() {
    if (this.progressBar.onDestroy) {
      this.progressBar.onDestroy();
    }

    window.removeEventListener('scroll', this.handler);
    elementorFrontend.elements.$body[0].removeEventListener('scroll', this.handler);
  }

}

var _default = ProgressTracker;
exports.default = _default;

/***/ })

}]);
//# sourceMappingURL=progress-tracker.a7329beb7783748287a5.bundle.js.mapPK!JM&{��=assets/js/woocommerce-cart.e2a9101be21a228a4575.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[859],{427:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;class Base extends elementorModules.frontend.handlers.Base{getDefaultSettings(){return{selectors:{stickyRightColumn:".e-sticky-right-column"},classes:{stickyRightColumnActive:"e-sticky-right-column--active"}}}getDefaultElements(){const t=this.getSettings("selectors");return{$stickyRightColumn:this.$element.find(t.stickyRightColumn)}}bindEvents(){elementorFrontend.elements.$document.on("select2:open",(t=>{this.addSelect2Wrapper(t)}))}addSelect2Wrapper(t){const e=jQuery(t.target).data("select2");e.$dropdown&&e.$dropdown.addClass("e-woo-select2-wrapper")}isStickyRightColumnActive(){const t=this.getSettings("classes");return this.elements.$stickyRightColumn.hasClass(t.stickyRightColumnActive)}activateStickyRightColumn(){const t=this.getElementSettings(),e=elementorFrontend.elements.$wpAdminBar,n=this.getSettings("classes");let s=t.sticky_right_column_offset||0;e.length&&"fixed"===e.css("position")&&(s+=e.height()),"yes"===this.getElementSettings("sticky_right_column")&&(this.elements.$stickyRightColumn.addClass(n.stickyRightColumnActive),this.elements.$stickyRightColumn.css("top",s+"px"))}deactivateStickyRightColumn(){if(!this.isStickyRightColumnActive())return;const t=this.getSettings("classes");this.elements.$stickyRightColumn.removeClass(t.stickyRightColumnActive)}toggleStickyRightColumn(){this.getElementSettings("sticky_right_column")?this.isStickyRightColumnActive()||this.activateStickyRightColumn():this.deactivateStickyRightColumn()}equalizeElementHeight(t){if(t.length){t.removeAttr("style");let e=0;t.each(((t,n)=>{e=Math.max(e,n.offsetHeight)})),0<e&&t.css({height:e+"px"})}}}e.default=Base},3898:(t,e,n)=>{"use strict";var s=n(7914);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=s(n(427));class Cart extends i.default{getDefaultSettings(...t){const e=super.getDefaultSettings(...t);return{selectors:{...e.selectors,shippingForm:".shipping-calculator-form",quantityInput:".qty",updateCartButton:"button[name=update_cart]",wpHttpRefererInputs:"[name=_wp_http_referer]",hiddenInput:"input[type=hidden]",productRemove:".product-remove a"},classes:e.classes,ajaxUrl:elementorProFrontend.config.ajaxurl}}getDefaultElements(...t){const e=this.getSettings("selectors");return{...super.getDefaultElements(...t),$shippingForm:this.$element.find(e.shippingForm),$stickyColumn:this.$element.find(e.stickyColumn),$hiddenInput:this.$element.find(e.hiddenInput)}}bindEvents(){super.bindEvents();const t=this.getSettings("selectors");elementorFrontend.elements.$body.on("wc_fragments_refreshed",(()=>this.applyButtonsHoverAnimation())),"yes"===this.getElementSettings("update_cart_automatically")&&this.$element.on("click",t.quantityInput,(()=>this.updateCart())),(elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode())&&elementorFrontend.elements.$body.on("wc_fragments_loaded wc_fragments_refreshed",(()=>{this.modifyWpHttpReferer(),this.disableActions()}))}onInit(...t){super.onInit(...t),this.toggleStickyRightColumn(),this.hideHiddenInputsParentElements(),elementorFrontend.isEditMode()&&this.elements.$shippingForm.show(),this.applyButtonsHoverAnimation(),(elementorFrontend.isEditMode()||elementorFrontend.isWPPreviewMode())&&(this.modifyWpHttpReferer(),this.disableActions())}disableActions(){const t=this.getSettings("selectors");this.$element.find(t.updateCartButton).attr({disabled:"disabled","aria-disabled":"true"}),elementorFrontend.isEditMode()&&(this.$element.find(t.quantityInput).attr("disabled","disabled"),this.$element.find(t.productRemove).css("pointer-events","none"))}onElementChange(t){"sticky_right_column"===t&&this.toggleStickyRightColumn()}onDestroy(...t){super.onDestroy(...t),this.deactivateStickyRightColumn()}updateCart(){const t=this.getSettings("selectors");clearTimeout(this._debounce),this._debounce=setTimeout((()=>{this.$element.find(t.updateCartButton).trigger("click")}),600)}applyButtonsHoverAnimation(){const t=this.getElementSettings();t.checkout_button_hover_animation&&jQuery(".checkout-button").addClass("elementor-animation-"+t.checkout_button_hover_animation),t.forms_buttons_hover_animation&&jQuery(".shop_table .button").addClass("elementor-animation-"+t.forms_buttons_hover_animation)}hideHiddenInputsParentElements(){this.isEdit&&this.elements.$hiddenInput&&this.elements.$hiddenInput.parent(".form-row").addClass("elementor-hidden")}modifyWpHttpReferer(){const t=this.getSettings("selectors");elementorFrontend.isEditMode()&&this.$element.find(t.wpHttpRefererInputs).attr("value",elementor.documents.getCurrent().config.urls.wp_preview)}}e.default=Cart}}]);PK!/�I:;;assets/js/qunit-tests.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ "../tests/qunit/editor/editor.js":
/*!***************************************!*\
  !*** ../tests/qunit/editor/editor.js ***!
  \***************************************/
/***/ (() => {

/**
 * This file load elementor core in order to run 'editor' tests, since the 'pro' does not include the editor it self.
 * for enabling the feature use '--development-tests' in command arguments ( at building command ).
 * dependencies/how to run:
 * core node_modules ( npm install ).
 * core compiled scripts ( grunt watch_scripts ).
 * pro compiled scripts with '--development-tests' ( grunt watch_scripts --development-tests )
 * pro: grunt karma:unit.
 */
// #if true === process.argv.includes( '--development-tests' )
// import EditorBootstrapCore from 'elementor/tests/qunit/editor/bootstrap';
// import editorConfig from '../mock/config/editor.json';
// 
// import tests from '../tests/';
// 
// export class EditorBootstrapPro extends EditorBootstrapCore {
// 	initialize() {
// 		window.elementorProEditorConfig = editorConfig;
// 
// 		// Load elementor-pro.
// 		require( 'editor/editor' );
// 
// 		super.initialize();
// 	}
// 
// 	runTests() {
// 		return tests();
// 	}
// }
// // #else
// export class NullClass {}
// #endif


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {
/*!******************************!*\
  !*** ../tests/qunit/main.js ***!
  \******************************/


var _editor = __webpack_require__(/*! ./editor/editor */ "../tests/qunit/editor/editor.js");

new _editor.EditorBootstrapPro();
})();

/******/ })()
;
//# sourceMappingURL=qunit-tests.js.mapPK!�Qoassets/js/app.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var e={60925:()=>{},79298:()=>{},66198:()=>{},96465:()=>{},26748:()=>{},13461:()=>{},62918:()=>{},36909:()=>{},75453:(e,t,n)=>{e.exports=n(7421)},59396:(e,t,n)=>{e.exports=n(70157)},32009:(e,t,n)=>{e.exports=n(89710)},15149:(e,t,n)=>{e.exports=n(66458)},38401:(e,t,n)=>{e.exports=n(14710)},92937:(e,t,n)=>{e.exports=n(23022)},67394:(e,t,n)=>{e.exports=n(43153)},23587:(e,t,n)=>{e.exports=n(32622)},63774:(e,t,n)=>{e.exports=n(27410)},95315:(e,t,n)=>{e.exports=n(19035)},82055:(e,t,n)=>{e.exports=n(58535)},83452:(e,t,n)=>{e.exports=n(97220)},28274:(e,t,n)=>{e.exports=n(65135)},35657:(e,t,n)=>{e.exports=n(69591)},14176:(e,t,n)=>{e.exports=n(34345)},73220:(e,t,n)=>{e.exports=n(76483)},75499:(e,t,n)=>{e.exports=n(43094)},41281:(e,t,n)=>{e.exports=n(19103)},50093:(e,t,n)=>{e.exports=n(39871)},93168:(e,t,n)=>{e.exports=n(89999)},72292:e=>{e.exports=function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},86870:(e,t,n)=>{var r=n(59396);e.exports=function _arrayWithHoles(e){if(r(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},35693:(e,t,n)=>{var r=n(59396),o=n(72292);e.exports=function _arrayWithoutHoles(e){if(r(e))return o(e)},e.exports.default=e.exports,e.exports.__esModule=!0},38852:e=>{e.exports=function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},11959:e=>{e.exports=function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},39041:(e,t,n)=>{var r=n(67394);function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),r(e,o.key,o)}}e.exports=function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e},e.exports.default=e.exports,e.exports.__esModule=!0},68537:(e,t,n)=>{var r=n(75499),o=n(44263),i=n(898),a=n(59771);e.exports=function _createSuper(e){var t=i();return function _createSuperInternal(){var n,i=o(e);if(t){var u=o(this).constructor;n=r(i,arguments,u)}else n=i.apply(this,arguments);return a(this,n)}},e.exports.default=e.exports,e.exports.__esModule=!0},18042:(e,t,n)=>{var r=n(67394);e.exports=function _defineProperty(e,t,n){return t in e?r(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},37959:(e,t,n)=>{var r=n(15149);function _extends(){return e.exports=_extends=r||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,_extends.apply(this,arguments)}e.exports=_extends,e.exports.default=e.exports,e.exports.__esModule=!0},44263:(e,t,n)=>{var r=n(28274),o=n(82055);function _getPrototypeOf(t){return e.exports=_getPrototypeOf=r?o:function _getPrototypeOf(e){return e.__proto__||o(e)},e.exports.default=e.exports,e.exports.__esModule=!0,_getPrototypeOf(t)}e.exports=_getPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},77371:(e,t,n)=>{var r=n(38401),o=n(76870);e.exports=function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=r(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},67971:e=>{e.exports=function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},52369:(e,t,n)=>{var r=n(24596).default,o=n(93168),i=n(67394),a=n(23587);function _getRequireWildcardCache(e){if("function"!=typeof o)return null;var t=new o,n=new o;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?n:t})(e)}e.exports=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=_getRequireWildcardCache(t);if(n&&n.has(e))return n.get(e);var o={},u=i&&a;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var l=u?a(e,s):null;l&&(l.get||l.set)?i(o,s,l):o[s]=e[s]}return o.default=e,n&&n.set(e,o),o},e.exports.default=e.exports,e.exports.__esModule=!0},898:(e,t,n)=>{var r=n(75499);e.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!r)return!1;if(r.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(r(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},95915:(e,t,n)=>{var r=n(41281),o=n(50093),i=n(75453);e.exports=function _iterableToArray(e){if(void 0!==r&&null!=e[o]||null!=e["@@iterator"])return i(e)},e.exports.default=e.exports,e.exports.__esModule=!0},79968:(e,t,n)=>{var r=n(41281),o=n(50093);e.exports=function _iterableToArrayLimit(e,t){var n=e&&(void 0!==r&&e[o]||e["@@iterator"]);if(null!=n){var i,a,u=[],s=!0,l=!1;try{for(n=n.call(e);!(s=(i=n.next()).done)&&(u.push(i.value),!t||u.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{s||null==n.return||n.return()}finally{if(l)throw a}}return u}},e.exports.default=e.exports,e.exports.__esModule=!0},39198:e=>{e.exports=function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},84360:e=>{e.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},84899:(e,t,n)=>{var r=n(83452),o=n(95315),i=n(23587),a=n(63774),u=n(92937),s=n(67394),l=n(18042);function ownKeys(e,t){var n=r(e);if(o){var a=o(e);t&&(a=a.filter((function(t){return i(e,t).enumerable}))),n.push.apply(n,a)}return n}e.exports=function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){l(e,t,n[t])})):a?u(e,a(n)):ownKeys(Object(n)).forEach((function(t){s(e,t,i(n,t))}))}return e},e.exports.default=e.exports,e.exports.__esModule=!0},59771:(e,t,n)=>{var r=n(24596).default,o=n(38852);e.exports=function _possibleConstructorReturn(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},76870:(e,t,n)=>{var r=n(28274);function _setPrototypeOf(t,n){return e.exports=_setPrototypeOf=r||function _setPrototypeOf(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,_setPrototypeOf(t,n)}e.exports=_setPrototypeOf,e.exports.default=e.exports,e.exports.__esModule=!0},47834:(e,t,n)=>{var r=n(86870),o=n(79968),i=n(24594),a=n(39198);e.exports=function _slicedToArray(e,t){return r(e)||o(e,t)||i(e,t)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},74846:(e,t,n)=>{var r=n(35693),o=n(95915),i=n(24594),a=n(84360);e.exports=function _toConsumableArray(e){return r(e)||o(e)||i(e)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},24596:(e,t,n)=>{var r=n(41281),o=n(50093);function _typeof(t){return"function"==typeof r&&"symbol"==typeof o?(e.exports=_typeof=function _typeof(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=_typeof=function _typeof(e){return e&&"function"==typeof r&&e.constructor===r&&e!==r.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),_typeof(t)}e.exports=_typeof,e.exports.default=e.exports,e.exports.__esModule=!0},24594:(e,t,n)=>{var r=n(75453),o=n(72292);e.exports=function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?r(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},50927:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Link:()=>V,Location:()=>A,LocationProvider:()=>j,Match:()=>X,Redirect:()=>Q,Router:()=>B,ServerLocation:()=>N,createHistory:()=>E,createMemorySource:()=>T,globalHistory:()=>P,isRedirect:()=>K,matchPath:()=>f,navigate:()=>O,redirectTo:()=>J,useLocation:()=>Z,useMatch:()=>ne,useNavigate:()=>ee,useParams:()=>te});var r=n(63804),o=n.n(r),i=(n(23615),n(3996)),a=n.n(i),u=n(68189),s=n.n(u);function componentWillMount(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function componentWillReceiveProps(e){this.setState(function updater(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}.bind(this))}function componentWillUpdate(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}componentWillMount.__suppressDeprecationWarning=!0,componentWillReceiveProps.__suppressDeprecationWarning=!0,componentWillUpdate.__suppressDeprecationWarning=!0;var l=function startsWith(e,t){return e.substr(0,t.length)===t},c=function pick(e,t){for(var n=void 0,r=void 0,o=t.split("?")[0],i=_(o),u=""===i[0],s=g(e),l=0,c=s.length;l<c;l++){var f=!1,p=s[l].route;if(p.default)r={route:p,params:{},uri:t};else{for(var d=_(p.path),m={},y=Math.max(i.length,d.length),b=0;b<y;b++){var C=d[b],S=i[b];if(h(C)){m[C.slice(1)||"*"]=i.slice(b).map(decodeURIComponent).join("/");break}if(void 0===S){f=!0;break}var E=v.exec(C);if(E&&!u){-1===x.indexOf(E[1])||a()(!1);var T=decodeURIComponent(S);m[E[1]]=T}else if(C!==S){f=!0;break}}if(!f){n={route:p,params:m,uri:"/"+i.slice(0,b).join("/")};break}}}return n||r||null},f=function match(e,t){return c([{path:e}],t)},p=function resolve(e,t){if(l(e,"/"))return e;var n=e.split("?"),r=n[0],o=n[1],i=t.split("?")[0],a=_(r),u=_(i);if(""===a[0])return b(i,o);if(!l(a[0],".")){var s=u.concat(a).join("/");return b(("/"===i?"":"/")+s,o)}for(var c=u.concat(a),f=[],p=0,d=c.length;p<d;p++){var v=c[p];".."===v?f.pop():"."!==v&&f.push(v)}return b("/"+f.join("/"),o)},d=function insertParams(e,t){var n=e.split("?"),r=n[0],o=n[1],i=void 0===o?"":o,a="/"+_(r).map((function(e){var n=v.exec(e);return n?t[n[1]]:e})).join("/"),u=t.location,s=(u=void 0===u?{}:u).search,l=(void 0===s?"":s).split("?")[1]||"";return a=b(a,i,l)},v=/^:(.+)/,m=function isDynamic(e){return v.test(e)},h=function isSplat(e){return e&&"*"===e[0]},y=function rankRoute(e,t){return{route:e,score:e.default?0:_(e.path).reduce((function(e,t){return e+=4,!function isRootSegment(e){return""===e}(t)?m(t)?e+=2:h(t)?e-=5:e+=3:e+=1,e}),0),index:t}},g=function rankRoutes(e){return e.map(y).sort((function(e,t){return e.score<t.score?1:e.score>t.score?-1:e.index-t.index}))},_=function segmentize(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},b=function addQuery(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return e+((n=n.filter((function(e){return e&&e.length>0})))&&n.length>0?"?"+n.join("&"):"")},x=["uri","path"],C=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},S=function getLocation(e){var t=e.location,n=t.search,r=t.hash,o=t.href,i=t.origin,a=t.protocol,u=t.host,s=t.hostname,l=t.port,c=e.location.pathname;!c&&o&&w&&(c=new URL(o).pathname);return{pathname:encodeURI(decodeURI(c)),search:n,hash:r,href:o,origin:i,protocol:a,host:u,hostname:s,port:l,state:e.history.state,key:e.history.state&&e.history.state.key||"initial"}},E=function createHistory(e,t){var n=[],r=S(e),o=!1,i=function resolveTransition(){};return{get location(){return r},get transitioning(){return o},_onTransitionComplete:function _onTransitionComplete(){o=!1,i()},listen:function listen(t){n.push(t);var o=function popstateListener(){r=S(e),t({location:r,action:"POP"})};return e.addEventListener("popstate",o),function(){e.removeEventListener("popstate",o),n=n.filter((function(e){return e!==t}))}},navigate:function navigate(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=a.state,s=a.replace,l=void 0!==s&&s;if("number"==typeof t)e.history.go(t);else{u=C({},u,{key:Date.now()+""});try{o||l?e.history.replaceState(u,null,t):e.history.pushState(u,null,t)}catch(n){e.location[l?"replace":"assign"](t)}}r=S(e),o=!0;var c=new Promise((function(e){return i=e}));return n.forEach((function(e){return e({location:r,action:"PUSH"})})),c}}},T=function createMemorySource(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.indexOf("?"),n={pathname:t>-1?e.substr(0,t):e,search:t>-1?e.substr(t):""},r=0,o=[n],i=[null];return{get location(){return o[r]},addEventListener:function addEventListener(e,t){},removeEventListener:function removeEventListener(e,t){},history:{get entries(){return o},get index(){return r},get state(){return i[r]},pushState:function pushState(e,t,n){var a=n.split("?"),u=a[0],s=a[1],l=void 0===s?"":s;r++,o.push({pathname:u,search:l.length?"?"+l:l}),i.push(e)},replaceState:function replaceState(e,t,n){var a=n.split("?"),u=a[0],s=a[1],l=void 0===s?"":s;o[r]={pathname:u,search:l},i[r]=e},go:function go(e){var t=r+e;t<0||t>i.length-1||(r=t)}}}},w=!("undefined"==typeof window||!window.document||!window.document.createElement),P=E(function getSource(){return w?window:T()}()),O=P.navigate,I=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function _objectWithoutProperties(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var R=function createNamedContext(e,t){var n=s()(t);return n.displayName=e,n},M=R("Location"),A=function Location(e){var t=e.children;return o().createElement(M.Consumer,null,(function(e){return e?t(e):o().createElement(j,null,t)}))},j=function(e){function LocationProvider(){var t,n;_classCallCheck(this,LocationProvider);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return t=n=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),n.state={context:n.getContext(),refs:{unlisten:null}},_possibleConstructorReturn(n,t)}return _inherits(LocationProvider,e),LocationProvider.prototype.getContext=function getContext(){var e=this.props.history;return{navigate:e.navigate,location:e.location}},LocationProvider.prototype.componentDidCatch=function componentDidCatch(e,t){if(!K(e))throw e;(0,this.props.history.navigate)(e.uri,{replace:!0})},LocationProvider.prototype.componentDidUpdate=function componentDidUpdate(e,t){t.context.location!==this.state.context.location&&this.props.history._onTransitionComplete()},LocationProvider.prototype.componentDidMount=function componentDidMount(){var e=this,t=this.state.refs,n=this.props.history;n._onTransitionComplete(),t.unlisten=n.listen((function(){Promise.resolve().then((function(){requestAnimationFrame((function(){e.unmounted||e.setState((function(){return{context:e.getContext()}}))}))}))}))},LocationProvider.prototype.componentWillUnmount=function componentWillUnmount(){var e=this.state.refs;this.unmounted=!0,e.unlisten()},LocationProvider.prototype.render=function render(){var e=this.state.context,t=this.props.children;return o().createElement(M.Provider,{value:e},"function"==typeof t?t(e):t||null)},LocationProvider}(o().Component);j.defaultProps={history:P};var N=function ServerLocation(e){var t=e.url,n=e.children,r=t.indexOf("?"),i=void 0,a="";return r>-1?(i=t.substring(0,r),a=t.substring(r)):i=t,o().createElement(M.Provider,{value:{location:{pathname:i,search:a,hash:""},navigate:function navigate(){throw new Error("You can't call navigate on the server.")}}},n)},D=R("Base",{baseuri:"/",basepath:"/"}),B=function Router(e){return o().createElement(D.Consumer,null,(function(t){return o().createElement(A,null,(function(n){return o().createElement(L,I({},t,n,e))}))}))},L=function(e){function RouterImpl(){return _classCallCheck(this,RouterImpl),_possibleConstructorReturn(this,e.apply(this,arguments))}return _inherits(RouterImpl,e),RouterImpl.prototype.render=function render(){var e=this.props,t=e.location,n=e.navigate,r=e.basepath,i=e.primary,a=e.children,u=(e.baseuri,e.component),s=void 0===u?"div":u,l=_objectWithoutProperties(e,["location","navigate","basepath","primary","children","baseuri","component"]),f=o().Children.toArray(a).reduce((function(e,t){var n=oe(r)(t);return e.concat(n)}),[]),d=t.pathname,v=c(f,d);if(v){var m=v.params,h=v.uri,y=v.route,g=v.route.value;r=y.default?r:y.path.replace(/\*$/,"");var _=I({},m,{uri:h,location:t,navigate:function navigate(e,t){return n(p(e,h),t)}}),b=o().cloneElement(g,_,g.props.children?o().createElement(B,{location:t,primary:i},g.props.children):void 0),x=i?q:s,C=i?I({uri:h,location:t,component:s},l):l;return o().createElement(D.Provider,{value:{baseuri:h,basepath:r}},o().createElement(x,C,b))}return null},RouterImpl}(o().PureComponent);L.defaultProps={primary:!0};var U=R("Focus"),q=function FocusHandler(e){var t=e.uri,n=e.location,r=e.component,i=_objectWithoutProperties(e,["uri","location","component"]);return o().createElement(U.Consumer,null,(function(e){return o().createElement(G,I({},i,{component:r,requestFocus:e,uri:t,location:n}))}))},W=!0,H=0,G=function(e){function FocusHandlerImpl(){var t,n;_classCallCheck(this,FocusHandlerImpl);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return t=n=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),n.state={},n.requestFocus=function(e){!n.state.shouldFocus&&e&&e.focus()},_possibleConstructorReturn(n,t)}return _inherits(FocusHandlerImpl,e),FocusHandlerImpl.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){if(null==t.uri)return I({shouldFocus:!0},e);var n=e.uri!==t.uri,r=t.location.pathname!==e.location.pathname&&e.location.pathname===e.uri;return I({shouldFocus:n||r},e)},FocusHandlerImpl.prototype.componentDidMount=function componentDidMount(){H++,this.focus()},FocusHandlerImpl.prototype.componentWillUnmount=function componentWillUnmount(){0===--H&&(W=!0)},FocusHandlerImpl.prototype.componentDidUpdate=function componentDidUpdate(e,t){e.location!==this.props.location&&this.state.shouldFocus&&this.focus()},FocusHandlerImpl.prototype.focus=function focus(){var e=this.props.requestFocus;e?e(this.node):W?W=!1:this.node&&(this.node.contains(document.activeElement)||this.node.focus())},FocusHandlerImpl.prototype.render=function render(){var e=this,t=this.props,n=(t.children,t.style),r=(t.requestFocus,t.component),i=void 0===r?"div":r,a=(t.uri,t.location,_objectWithoutProperties(t,["children","style","requestFocus","component","uri","location"]));return o().createElement(i,I({style:I({outline:"none"},n),tabIndex:"-1",ref:function ref(t){return e.node=t}},a),o().createElement(U.Provider,{value:this.requestFocus},this.props.children))},FocusHandlerImpl}(o().Component);!function polyfill(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,r=null,o=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?r="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(r="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?o="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(o="UNSAFE_componentWillUpdate"),null!==n||null!==r||null!==o){var i=e.displayName||e.name,a="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+i+" uses "+a+" but also contains the following legacy lifecycles:"+(null!==n?"\n  "+n:"")+(null!==r?"\n  "+r:"")+(null!==o?"\n  "+o:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=componentWillMount,t.componentWillReceiveProps=componentWillReceiveProps),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=componentWillUpdate;var u=t.componentDidUpdate;t.componentDidUpdate=function componentDidUpdatePolyfill(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,r)}}return e}(G);var $=function k(){},z=o().forwardRef;void 0===z&&(z=function forwardRef(e){return e});var V=z((function(e,t){var n=e.innerRef,r=_objectWithoutProperties(e,["innerRef"]);return o().createElement(D.Consumer,null,(function(e){e.basepath;var i=e.baseuri;return o().createElement(A,null,(function(e){var a=e.location,u=e.navigate,s=r.to,c=r.state,f=r.replace,d=r.getProps,v=void 0===d?$:d,m=_objectWithoutProperties(r,["to","state","replace","getProps"]),h=p(s,i),y=encodeURI(h),g=a.pathname===y,_=l(a.pathname,y);return o().createElement("a",I({ref:t||n,"aria-current":g?"page":void 0},m,v({isCurrent:g,isPartiallyCurrent:_,href:h,location:a}),{href:h,onClick:function onClick(e){if(m.onClick&&m.onClick(e),ie(e)){e.preventDefault();var t=f;if("boolean"!=typeof f&&g){var n=I({},a.state),r=(n.key,_objectWithoutProperties(n,["key"]));t=function shallowCompare(e,t){var n=Object.keys(e);return n.length===Object.keys(t).length&&n.every((function(n){return t.hasOwnProperty(n)&&e[n]===t[n]}))}(I({},c),r)}u(h,{state:c,replace:t})}}}))}))}))}));function RedirectRequest(e){this.uri=e}V.displayName="Link";var K=function isRedirect(e){return e instanceof RedirectRequest},J=function redirectTo(e){throw new RedirectRequest(e)},Y=function(e){function RedirectImpl(){return _classCallCheck(this,RedirectImpl),_possibleConstructorReturn(this,e.apply(this,arguments))}return _inherits(RedirectImpl,e),RedirectImpl.prototype.componentDidMount=function componentDidMount(){var e=this.props,t=e.navigate,n=e.to,r=(e.from,e.replace),o=void 0===r||r,i=e.state,a=(e.noThrow,e.baseuri),u=_objectWithoutProperties(e,["navigate","to","from","replace","state","noThrow","baseuri"]);Promise.resolve().then((function(){var e=p(n,a);t(d(e,u),{replace:o,state:i})}))},RedirectImpl.prototype.render=function render(){var e=this.props,t=(e.navigate,e.to),n=(e.from,e.replace,e.state,e.noThrow),r=e.baseuri,o=_objectWithoutProperties(e,["navigate","to","from","replace","state","noThrow","baseuri"]),i=p(t,r);return n||J(d(i,o)),null},RedirectImpl}(o().Component),Q=function Redirect(e){return o().createElement(D.Consumer,null,(function(t){var n=t.baseuri;return o().createElement(A,null,(function(t){return o().createElement(Y,I({},t,{baseuri:n},e))}))}))},X=function Match(e){var t=e.path,n=e.children;return o().createElement(D.Consumer,null,(function(e){var r=e.baseuri;return o().createElement(A,null,(function(e){var o=e.navigate,i=e.location,a=p(t,r),u=f(a,i.pathname);return n({navigate:o,location:i,match:u?I({},u.params,{uri:u.uri,path:t}):null})}))}))},Z=function useLocation(){var e=(0,r.useContext)(M);if(!e)throw new Error("useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return e.location},ee=function useNavigate(){var e=(0,r.useContext)(M);if(!e)throw new Error("useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");return e.navigate},te=function useParams(){var e=(0,r.useContext)(D);if(!e)throw new Error("useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");var t=Z(),n=f(e.basepath,t.pathname);return n?n.params:null},ne=function useMatch(e){if(!e)throw new Error("useMatch(path: string) requires an argument of a string to match against");var t=(0,r.useContext)(D);if(!t)throw new Error("useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router");var n=Z(),o=p(e,t.baseuri),i=f(o,n.pathname);return i?I({},i.params,{uri:i.uri,path:e}):null},re=function stripSlashes(e){return e.replace(/(^\/+|\/+$)/g,"")},oe=function createRoute(e){return function(t){if(!t)return null;if(t.type===o().Fragment&&t.props.children)return o().Children.map(t.props.children,createRoute(e));if(t.props.path||t.props.default||t.type===Q||a()(!1),t.type!==Q||t.props.from&&t.props.to||a()(!1),t.type!==Q||function validateRedirect(e,t){var n=function filter(e){return m(e)};return _(e).filter(n).sort().join("/")===_(t).filter(n).sort().join("/")}(t.props.from,t.props.to)||a()(!1),t.props.default)return{value:t,default:!0};var n=t.type===Q?t.props.from:t.props.path,r="/"===n?e:re(e)+"/"+re(n);return{value:t,default:t.props.default,path:t.props.children?re(r)+"/*":r}}},ie=function shouldNavigate(e){return!e.defaultPrevented&&0===e.button&&!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}},88395:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.Indicator=void 0;var a=i(n(63804));n(60925);var u=function Indicator(e){var t="eps-indicator-bullet";return e.active&&(t+=" ".concat(t,"--active")),a.default.createElement("i",{className:t})};t.Indicator=u,u.propTypes={active:r.bool}},99092:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=PreviewIFrame;var a=i(n(63804)),u=i(n(47834));function PreviewIFrame(e){var t=a.default.useRef(null),n=a.default.useState(1),r=(0,u.default)(n,2),o=r[0],i=r[1],s=a.default.useState(0),l=(0,u.default)(s,2),c=l[0],f=l[1];return a.default.useEffect((function(){var e=t.current.clientWidth/1200;i(e),f(t.current.clientHeight/e)}),[]),a.default.createElement("div",{ref:t,className:"site-editor__preview-iframe site-editor__preview-iframe--".concat(e.templateType)},a.default.createElement("iframe",{src:e.src,className:"site-editor__preview-iframe__iframe",style:{transform:"scale(".concat(o,")"),height:c,width:1200}}))}n(79298),PreviewIFrame.propTypes={src:r.string.isRequired,templateType:r.string.isRequired}},55246:(e,t,n)=>{"use strict";var r=n(63804),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=t.BaseContext=void 0;var a=i(n(73220)),u=i(n(84899)),s=i(n(11959)),l=i(n(39041)),c=i(n(38852)),f=i(n(77371)),p=i(n(68537)),d=function(e){(0,f.default)(BaseContext,e);var t=(0,p.default)(BaseContext);function BaseContext(e){var n;return(0,s.default)(this,BaseContext),(n=t.call(this,e)).state={action:{current:null,loading:!1,error:null,errorMeta:{}},updateActionState:n.updateActionState.bind((0,c.default)(n)),resetActionState:n.resetActionState.bind((0,c.default)(n))},n}return(0,l.default)(BaseContext,[{key:"executeAction",value:function executeAction(e,t){var n=this;return this.updateActionState({current:e,loading:!0,error:null,errorMeta:{}}),t().then((function(e){return n.resetActionState(),a.default.resolve(e)})).catch((function(t){return n.updateActionState({current:e,loading:!1,error:t.message,errorMeta:t}),a.default.reject(t)}))}},{key:"updateActionState",value:function updateActionState(e){return this.setState((function(t){return{action:(0,u.default)((0,u.default)({},t.action),e)}}))}},{key:"resetActionState",value:function resetActionState(){this.updateActionState({current:null,loading:!1,error:null,errorMeta:{}})}}]),BaseContext}(r.Component);t.BaseContext=d;var v=d;t.default=v},78221:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=t.ConditionsProvider=t.Context=void 0;var u=a(n(63804)),s=a(n(35657)),l=a(n(83452)),c=a(n(73220));n(90286),n(76139),n(44321),n(99745),n(10195),n(71954);var f=a(n(84899)),p=a(n(11959)),d=a(n(39041)),v=a(n(38852)),m=a(n(77371)),h=a(n(68537)),y=a(n(18042)),g=a(n(79537)),b=a(n(3145)),x=a(n(55246)),C=n(2410),S=u.default.createContext();t.Context=S;var E=function(e){(0,m.default)(ConditionsProvider,e);var t=(0,h.default)(ConditionsProvider);function ConditionsProvider(e){var n;return(0,p.default)(this,ConditionsProvider),n=t.call(this,e),(0,y.default)((0,v.default)(n),"conditionsConfig",null),n.state=(0,f.default)((0,f.default)({},n.state),{},{conditions:{},updateConditionItemState:n.updateConditionItemState.bind((0,v.default)(n)),removeConditionItemInState:n.removeConditionItemInState.bind((0,v.default)(n)),createConditionItemInState:n.createConditionItemInState.bind((0,v.default)(n)),findConditionItemInState:n.findConditionItemInState.bind((0,v.default)(n)),saveConditions:n.saveConditions.bind((0,v.default)(n))}),n}return(0,d.default)(ConditionsProvider,[{key:"componentDidMount",value:function componentDidMount(){var e=this;this.executeAction(ConditionsProvider.actions.FETCH_CONFIG,(function(){return b.default.create()})).then((function(t){return e.conditionsConfig=t})).then(this.normalizeConditionsState.bind(this)).then(this.setSubIdTitles.bind(this))}},{key:"saveConditions",value:function saveConditions(){var e=this,t=(0,s.default)(this.state.conditions).map((function(e){return e.forDb()}));return this.executeAction(ConditionsProvider.actions.SAVE,(function(){return $e.data.update(C.TemplatesConditions.signature,{conditions:t},{id:e.props.currentTemplate.id})})).then((function(){var t=(0,s.default)(e.state.conditions).map((function(e){return e.forContext()}));e.props.onConditionsSaved(e.props.currentTemplate.id,{conditions:t,instances:e.conditionsConfig.calculateInstances((0,s.default)(e.state.conditions)),isActive:!(!(0,l.default)(e.state.conditions).length||"publish"!==e.props.currentTemplate.status)})}))}},{key:"checkConflicts",value:function checkConflicts(e){var t=this;return this.executeAction(ConditionsProvider.actions.CHECK_CONFLICTS,(function(){return $e.data.get(C.TemplatesConditionsConflicts.signature,{post_id:t.props.currentTemplate.id,condition:e.clone().toString()})})).then((function(n){return t.updateConditionItemState(e.id,{conflictErrors:(0,s.default)(n.data)},!1)}))}},{key:"fetchSubIdsTitles",value:function fetchSubIdsTitles(e){return new c.default((function(t){return elementorCommon.ajax.loadObjects({action:"query_control_value_titles",ids:_.isArray(e.subId)?e.subId:[e.subId],data:{get_titles:e.subIdAutocomplete,unique_id:elementorCommon.helpers.getUniqueId()},success:function success(e){t(e)}})}))}},{key:"normalizeConditionsState",value:function normalizeConditionsState(){var e=this;this.updateConditionsState((function(){return e.props.currentTemplate.conditions.reduce((function(t,n){var r=new g.default((0,f.default)((0,f.default)({},n),{},{default:e.props.currentTemplate.defaultCondition,options:e.conditionsConfig.getOptions(),subOptions:e.conditionsConfig.getSubOptions(n.name),subIdAutocomplete:e.conditionsConfig.getSubIdAutocomplete(n.sub),supIdOptions:n.subId?[{value:n.subId,label:n.subId}]:[]}));return(0,f.default)((0,f.default)({},t),{},(0,y.default)({},r.id,r))}),{})})).then((function(){(0,s.default)(e.state.conditions).forEach((function(t){return e.checkConflicts(t)}))}))}},{key:"setSubIdTitles",value:function setSubIdTitles(){var e=this;return(0,s.default)(this.state.conditions).forEach((function(t){if(t.subId)return e.fetchSubIdsTitles(t).then((function(n){return e.updateConditionItemState(t.id,{subIdOptions:[{label:(0,s.default)(n)[0],value:t.subId}]},!1)}))}))}},{key:"updateConditionItemState",value:function updateConditionItemState(e,t){var n=this,r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t.name&&(t.subOptions=this.conditionsConfig.getSubOptions(t.name)),(t.sub||t.name)&&(t.subIdAutocomplete=this.conditionsConfig.getSubIdAutocomplete(t.sub),t.subIdOptions=[]),this.updateConditionsState((function(n){var r=n[e];return(0,f.default)((0,f.default)({},n),{},(0,y.default)({},e,r.clone().set(t)))})).then((function(){r&&n.checkConflicts(n.findConditionItemInState(e))}))}},{key:"removeConditionItemInState",value:function removeConditionItemInState(e){this.updateConditionsState((function(t){var n=(0,f.default)({},t);return delete n[e],n}))}},{key:"createConditionItemInState",value:function createConditionItemInState(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this.props.currentTemplate.defaultCondition,r=new g.default({name:n,default:n,options:this.conditionsConfig.getOptions(),subOptions:this.conditionsConfig.getSubOptions(n),subIdAutocomplete:this.conditionsConfig.getSubIdAutocomplete("")});this.updateConditionsState((function(e){return(0,f.default)((0,f.default)({},e),{},(0,y.default)({},r.id,r))})).then((function(){t&&e.checkConflicts(r)}))}},{key:"findConditionItemInState",value:function findConditionItemInState(e){return(0,s.default)(this.state.conditions).find((function(t){return t.id===e}))}},{key:"updateConditionsState",value:function updateConditionsState(e){var t=this;return new c.default((function(n){return t.setState((function(t){return{conditions:e(t.conditions)}}),n)}))}},{key:"render",value:function render(){if(this.state.action.current===ConditionsProvider.actions.FETCH_CONFIG){if(this.state.error)return u.default.createElement("h3",null,r("Error:","elementor-pro")," ",this.state.error);if(this.state.loading)return u.default.createElement("h3",null,r("Loading","elementor-pro"),"...")}return u.default.createElement(S.Provider,{value:this.state},this.props.children)}}]),ConditionsProvider}(x.default);t.ConditionsProvider=E,(0,y.default)(E,"propTypes",{children:o.any.isRequired,currentTemplate:o.object.isRequired,onConditionsSaved:o.func.isRequired,validateConflicts:o.bool}),(0,y.default)(E,"defaultProps",{validateConflicts:!0}),(0,y.default)(E,"actions",{FETCH_CONFIG:"fetch-config",SAVE:"save",CHECK_CONFLICTS:"check-conflicts"});var T=E;t.default=T},79537:(e,t,n)=>{"use strict";var r=n(67394),o=n(67971);r(t,"__esModule",{value:!0}),t.default=void 0,n(64434),n(3777),n(38081),n(99745),n(10195);var i=o(n(15149)),a=o(n(59396)),u=o(n(83452)),s=o(n(32009)),l=o(n(11959)),c=o(n(39041)),f=o(n(18042)),p=function(){function Condition(e){(0,l.default)(this,Condition),(0,f.default)(this,"id",elementorCommon.helpers.getUniqueId()),(0,f.default)(this,"default",""),(0,f.default)(this,"type","include"),(0,f.default)(this,"name",""),(0,f.default)(this,"sub",""),(0,f.default)(this,"subId",""),(0,f.default)(this,"options",[]),(0,f.default)(this,"subOptions",[]),(0,f.default)(this,"subIdAutocomplete",[]),(0,f.default)(this,"subIdOptions",[]),(0,f.default)(this,"conflictErrors",[]),this.set(e)}return(0,c.default)(Condition,[{key:"set",value:function set(e){return(0,i.default)(this,e),this}},{key:"clone",value:function clone(){return(0,i.default)(new Condition,this)}},{key:"remove",value:function remove(e){var t=this;return(0,a.default)(e)||(e=[e]),e.forEach((function(e){delete t[e]})),this}},{key:"only",value:function only(e){(0,a.default)(e)||(e=[e]);var t=(0,u.default)(this).filter((function(t){return!e.includes(t)}));return this.remove(t),this}},{key:"toJson",value:function toJson(){return(0,s.default)(this)}},{key:"toString",value:function toString(){return this.forDb().filter((function(e){return e})).join("/")}},{key:"forDb",value:function forDb(){return[this.type,this.name,this.sub,this.subId]}},{key:"forContext",value:function forContext(){return{type:this.type,name:this.name,sub:this.sub,subId:this.subId}}}]),Condition}();t.default=p},3145:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=t.ConditionsConfig=void 0;var a=i(n(35657)),u=i(n(83452)),s=i(n(73220));n(90286),n(10195),n(99745);var l=i(n(84899)),c=i(n(24596)),f=i(n(74846)),p=i(n(11959)),d=i(n(39041)),v=i(n(18042)),m=n(2410),h=function(){function ConditionsConfig(e){(0,p.default)(this,ConditionsConfig),(0,v.default)(this,"config",null),this.config=e}return(0,d.default)(ConditionsConfig,[{key:"getOptions",value:function getOptions(){return this.getSubOptions("general",!0).map((function(e){return{label:e.label,value:e.value}}))}},{key:"getSubOptions",value:function getSubOptions(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.config[e];return r?[{label:r.all_label,value:n?e:""}].concat((0,f.default)(r.sub_conditions.map((function(e){var n=t.config[e];return{label:n.label,value:e,children:n.sub_conditions.length?t.getSubOptions(e,!0):null}})))):[]}},{key:"getSubIdAutocomplete",value:function getSubIdAutocomplete(e){var t,n=this.config[e];if(!n||"object"!==(0,c.default)(n.controls))return{};var r=(0,a.default)(n.controls);return null!=r&&null!==(t=r[0])&&void 0!==t&&t.autocomplete?r[0].autocomplete:{}}},{key:"calculateInstances",value:function calculateInstances(e){var t=this,n=e.reduce((function(e,n){if("exclude"===n.type)return e;var r=n.sub||n.name,o=t.config[r];if(!o)return e;var i=n.subId?"".concat(o.label," #").concat(n.subId):o.all_label;return(0,l.default)((0,l.default)({},e),{},(0,v.default)({},r,i))}),{});return 0===(0,u.default)(n).length&&(n=[r("No instances","elementor-pro")]),n}}],[{key:"create",value:function create(){return ConditionsConfig.instance?s.default.resolve(ConditionsConfig.instance):$e.data.get(m.ConditionsConfig.signature).then((function(e){return ConditionsConfig.instance=new ConditionsConfig(e.data),ConditionsConfig.instance}))}}]),ConditionsConfig}();t.ConditionsConfig=h,(0,v.default)(h,"instance",void 0);var y=h;t.default=y},87222:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=t.TemplatesProvider=t.Context=void 0;var u=a(n(63804)),s=a(n(35657)),l=a(n(84899)),c=a(n(11959)),f=a(n(39041)),p=a(n(38852)),d=a(n(77371)),v=a(n(68537)),m=a(n(18042)),h=a(n(55246)),y=n(2410),g=a(n(88704)),_=u.default.createContext();t.Context=_;var b=function(e){(0,d.default)(TemplatesProvider,e);var t=(0,v.default)(TemplatesProvider);function TemplatesProvider(e){var n;return(0,c.default)(this,TemplatesProvider),(n=t.call(this,e)).state=(0,l.default)((0,l.default)({},n.state),{},{action:(0,l.default)((0,l.default)({},n.state.action),{},{current:TemplatesProvider.actions.FETCH,loading:!0}),templates:{},updateTemplateItemState:n.updateTemplateItemState.bind((0,p.default)(n)),findTemplateItemInState:n.findTemplateItemInState.bind((0,p.default)(n)),fetchTemplates:n.fetchTemplates.bind((0,p.default)(n)),deleteTemplate:n.deleteTemplate.bind((0,p.default)(n)),updateTemplate:n.updateTemplate.bind((0,p.default)(n)),importTemplates:n.importTemplates.bind((0,p.default)(n))}),n}return(0,f.default)(TemplatesProvider,[{key:"componentDidMount",value:function componentDidMount(){this.fetchTemplates()}},{key:"importTemplates",value:function importTemplates(e){var t=this,n=e.fileName,r=e.fileData;return this.executeAction(TemplatesProvider.actions.IMPORT,(function(){return $e.data.create(y.Templates.signature,{fileName:n,fileData:r})})).then((function(e){return t.updateTemplatesState((function(t){return(0,l.default)((0,l.default)({},t),(0,s.default)(e.data).reduce((function(e,t){return t.supportsSiteEditor?(0,l.default)((0,l.default)({},e),{},(0,m.default)({},t.id,t)):e}),{}))})),e}))}},{key:"deleteTemplate",value:function deleteTemplate(e){var t=this;return this.executeAction(TemplatesProvider.actions.DELETE,(function(){return $e.data.delete(y.Templates.signature,{id:e})})).then((function(){t.updateTemplatesState((function(t){var n=(0,l.default)({},t);return delete n[e],n}))}))}},{key:"updateTemplate",value:function updateTemplate(e,t){var n=this;return this.executeAction(TemplatesProvider.actions.UPDATE,(function(){return $e.data.update(y.Templates.signature,t,{id:e})})).then((function(t){n.updateTemplateItemState(e,t.data)}))}},{key:"fetchTemplates",value:function fetchTemplates(){var e=this;return this.executeAction(TemplatesProvider.actions.FETCH,(function(){return $e.data.get(y.Templates.signature)})).then((function(t){e.updateTemplatesState((function(){return(0,s.default)(t.data).reduce((function(e,t){return(0,l.default)((0,l.default)({},e),{},(0,m.default)({},t.id,t))}),{})}),!1)}))}},{key:"updateTemplateItemState",value:function updateTemplateItemState(e,t){return this.updateTemplatesState((function(n){var r=(0,l.default)((0,l.default)({},n[e]),t);return(0,l.default)((0,l.default)({},n),{},(0,m.default)({},e,r))}))}},{key:"updateTemplatesState",value:function updateTemplatesState(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t&&$e.data.deleteCache($e.components.get(g.default.namespace),y.Templates.signature),this.setState((function(t){return{templates:e(t.templates)}}))}},{key:"findTemplateItemInState",value:function findTemplateItemInState(e){return this.state.templates[e]}},{key:"render",value:function render(){if(this.state.action.current===TemplatesProvider.actions.FETCH){if(this.state.action.error)return u.default.createElement("h3",null,r("Error:","elementor-pro")," ",this.state.action.error);if(this.state.action.loading)return u.default.createElement("h3",null,r("Loading","elementor-pro"),"...")}return u.default.createElement(_.Provider,{value:this.state},this.props.children)}}]),TemplatesProvider}(h.default);t.TemplatesProvider=b,(0,m.default)(b,"propTypes",{children:o.object.isRequired}),(0,m.default)(b,"actions",{FETCH:"fetch",DELETE:"delete",UPDATE:"update",IMPORT:"import"});var x=b;t.default=x},79924:(e,t,n)=>{"use strict";var r=n(67394),o=n(67971);r(t,"__esModule",{value:!0}),t.default=t.ConditionsConfig=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),l=o(n(18042)),c=function(e){(0,u.default)(ConditionsConfig,e);var t=(0,s.default)(ConditionsConfig);function ConditionsConfig(){return(0,i.default)(this,ConditionsConfig),t.apply(this,arguments)}return(0,a.default)(ConditionsConfig,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/conditions-config/{id}"}}]),ConditionsConfig}($e.modules.CommandData);t.ConditionsConfig=c,(0,l.default)(c,"signature","site-editor/conditions-config");var f=c;t.default=f},2410:(e,t,n)=>{"use strict";var r=n(67394);r(t,"__esModule",{value:!0}),r(t,"Templates",{enumerable:!0,get:function get(){return o.Templates}}),r(t,"ConditionsConfig",{enumerable:!0,get:function get(){return i.ConditionsConfig}}),r(t,"TemplatesConditions",{enumerable:!0,get:function get(){return a.TemplatesConditions}}),r(t,"TemplatesConditionsConflicts",{enumerable:!0,get:function get(){return u.TemplatesConditionsConflicts}});var o=n(49672),i=n(79924),a=n(19743),u=n(52924)},52924:(e,t,n)=>{"use strict";var r=n(67394),o=n(67971);r(t,"__esModule",{value:!0}),t.default=t.TemplatesConditionsConflicts=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),l=o(n(18042)),c=function(e){(0,u.default)(TemplatesConditionsConflicts,e);var t=(0,s.default)(TemplatesConditionsConflicts);function TemplatesConditionsConflicts(){return(0,i.default)(this,TemplatesConditionsConflicts),t.apply(this,arguments)}return(0,a.default)(TemplatesConditionsConflicts,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"".concat(TemplatesConditionsConflicts.signature,"/{id}")}}]),TemplatesConditionsConflicts}($e.modules.CommandData);t.TemplatesConditionsConflicts=c,(0,l.default)(c,"signature","site-editor/templates-conditions-conflicts");var f=c;t.default=f},19743:(e,t,n)=>{"use strict";var r=n(67394),o=n(67971);r(t,"__esModule",{value:!0}),t.default=t.TemplatesConditions=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),l=o(n(18042)),c=function(e){(0,u.default)(TemplatesConditions,e);var t=(0,s.default)(TemplatesConditions);function TemplatesConditions(){return(0,i.default)(this,TemplatesConditions),t.apply(this,arguments)}return(0,a.default)(TemplatesConditions,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates-conditions/{id}"}}]),TemplatesConditions}($e.modules.CommandData);t.TemplatesConditions=c,(0,l.default)(c,"signature","site-editor/templates-conditions");var f=c;t.default=f},49672:(e,t,n)=>{"use strict";var r=n(67394),o=n(67971);r(t,"__esModule",{value:!0}),t.default=t.Templates=void 0;var i=o(n(11959)),a=o(n(39041)),u=o(n(77371)),s=o(n(68537)),l=o(n(18042)),c=function(e){(0,u.default)(Templates,e);var t=(0,s.default)(Templates);function Templates(){return(0,i.default)(this,Templates),t.apply(this,arguments)}return(0,a.default)(Templates,null,[{key:"getEndpointFormat",value:function getEndpointFormat(){return"site-editor/templates/{id}"}}]),Templates}($e.modules.CommandData);t.Templates=c,(0,l.default)(c,"signature","site-editor/templates");var f=c;t.default=f},88704:(e,t,n)=>{"use strict";var r=n(67394),o=n(52369),i=n(67971);r(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(11959)),u=i(n(39041)),s=i(n(77371)),l=i(n(68537)),c=i(n(18042)),f=o(n(2410)),p=function(e){(0,s.default)(Component,e);var t=(0,l.default)(Component);function Component(){return(0,a.default)(this,Component),t.apply(this,arguments)}return(0,u.default)(Component,[{key:"getNamespace",value:function getNamespace(){return this.constructor.namespace}},{key:"defaultData",value:function defaultData(){return this.importCommands(f)}}]),Component}($e.modules.ComponentBase);t.default=p,(0,c.default)(p,"namespace","site-editor")},89784:(e,t,n)=>{"use strict";var r=n(63804),o=n(67394),i=n(52369),a=n(67971);o(t,"__esModule",{value:!0}),t.default=function useTemplatesScreenshot(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=r.useContext(s.Context),n=t.updateTemplateItemState,o=t.templates,i=(0,u.default)(o).filter((function(t){return shouldScreenshotTemplate(t,e)})),a=(0,l.default)(i);return r.useEffect((function(){a.posts.filter((function(e){return e.status===l.SCREENSHOT_STATUS_SUCCEED})).forEach((function(e){return n(e.id,{thumbnail:e.imageUrl})}))}),[a.succeed]),r.useEffect((function(){a.posts.filter((function(e){return e.status===l.SCREENSHOT_STATUS_FAILED})).forEach((function(e){return n(e.id,{screenshot_url:null})}))}),[a.failed]),a};var u=a(n(35657));n(64434);var s=n(87222),l=i(n(41519));function shouldScreenshotTemplate(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return!t&&("publish"===e.status&&!e.thumbnail&&e.screenshot_url)}},49309:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=BackButton;var u=a(n(63804)),s=n(78675);function BackButton(e){return u.default.createElement("div",{className:"back-button-wrapper"},u.default.createElement(s.Button,{className:"eps-back-button",text:r("Back","elementor-pro"),icon:"eicon-chevron-left",onClick:e.onClick}))}n(66198),BackButton.propTypes={onClick:o.func},BackButton.defaultProps={onClick:function onClick(){return history.back()}}},47678:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.SiteTemplateBody=void 0;var a=i(n(63804)),u=n(78675),s=i(n(64267)),l=i(n(99092)),c=function SiteTemplateBody(e){return a.default.createElement(u.CardBody,null,e.extended?a.default.createElement(l.default,{src:e.previewUrl,templateType:e.type}):a.default.createElement(s.default,{id:e.id,title:e.title,type:e.type,thumbnail:e.thumbnail,placeholder:e.placeholderUrl}))};t.SiteTemplateBody=c,c.propTypes={extended:r.bool,id:r.number,title:r.string,thumbnail:r.string,placeholderUrl:r.string,type:r.string,previewUrl:r.string}},6283:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.SiteTemplateFooter=void 0;var u=a(n(63804)),s=a(n(35657)),l=n(78675),c=function SiteTemplateFooter(e){var t=(0,s.default)(e.instances).join(", ");return u.default.createElement(l.CardFooter,null,u.default.createElement("div",{className:"e-site-template__instances"},u.default.createElement(l.Icon,{className:"eicon-flow"}),u.default.createElement(l.Text,{tag:"span",variant:"sm"},u.default.createElement("b",null,r("Instances","elementor-pro"),":")),u.default.createElement(l.Text,{className:"e-site-template__instances-list",tag:"span",variant:"xxs"}," ",t),u.default.createElement(l.Button,{text:r("Edit Conditions","elementor-pro"),className:"e-site-template__edit-conditions",url:"/site-editor/conditions/".concat(e.id)})))};t.SiteTemplateFooter=c,c.propTypes={id:o.number.isRequired,instances:o.any}},68770:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.SiteTemplateHeader=void 0;var u=a(n(63804)),s=n(78675),l=a(n(97282)),c=n(88395),f=function SiteTemplateHeader(e){var t=e.status&&"publish"!==e.status?" (".concat(e.status,")"):"",n=e.title+t,o=function ActionButtons(){return u.default.createElement(u.default.Fragment,null,u.default.createElement(s.Button,{text:r("Edit","elementor-pro"),icon:"eicon-edit",className:"e-site-template__edit-btn",size:"sm",url:e.editURL}),u.default.createElement(l.default,e))},i=function MetaDataIcon(e){return u.default.createElement(s.Text,{tag:"span",className:"e-site-template__meta-data"},u.default.createElement(s.Icon,{className:e.icon}),e.content)},a=function MetaData(){return u.default.createElement(u.default.Fragment,null,u.default.createElement(i,{icon:"eicon-user-circle-o",content:e.author}),u.default.createElement(i,{icon:"eicon-clock-o",content:e.modifiedDate}))};return u.default.createElement(s.CardHeader,null,u.default.createElement(c.Indicator,{active:e.isActive}),u.default.createElement(s.Heading,{tag:"h1",title:n,variant:"text-sm",className:"eps-card__headline"},n),e.extended&&u.default.createElement(a,null),e.extended&&u.default.createElement(o,null))};t.SiteTemplateHeader=f,f.propTypes={isActive:o.bool,author:o.string,editURL:o.string,extended:o.bool,modifiedDate:o.string,status:o.string,title:o.string}},64267:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=SiteTemplateThumbnail;var u=a(n(63804)),s=n(78675);function SiteTemplateThumbnail(e){return u.default.createElement(s.CardImage,{alt:e.title,src:e.thumbnail||e.placeholder,className:e.thumbnail?"":"e-site-template__placeholder"},u.default.createElement(s.CardOverlay,{className:"e-site-template__overlay-preview"},u.default.createElement(s.Button,{className:"e-site-template__overlay-preview-button",text:r("Preview","elementor-pro"),icon:"eicon-preview-medium",url:"/site-editor/templates/".concat(e.type,"/").concat(e.id)})))}SiteTemplateThumbnail.propTypes={id:o.number,title:o.string,type:o.string,thumbnail:o.string,placeholder:o.string}},93921:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=SiteTemplate;var a=i(n(63804)),u=n(78675),s=n(68770),l=n(47678),c=n(6283);function SiteTemplate(e){var t="e-site-template",n=[t],r=a.default.useRef(null);a.default.useEffect((function(){e.isSelected&&r.current.scrollIntoView({behavior:"smooth",block:"start"})}),[e.isSelected]),e.extended&&n.push("".concat(t,"--extended")),e.aspectRatio&&n.push("".concat(t,"--").concat(e.aspectRatio));var o=e.extended?a.default.createElement(c.SiteTemplateFooter,e):"";return a.default.createElement(u.Card,{className:n.join(" "),ref:r},a.default.createElement(s.SiteTemplateHeader,e),a.default.createElement(l.SiteTemplateBody,e),o)}n(96465),SiteTemplate.propTypes={aspectRatio:r.string,className:r.string,extended:r.bool,id:r.number.isRequired,isActive:r.bool.isRequired,status:r.string,thumbnail:r.string.isRequired,title:r.string.isRequired,isSelected:r.bool,type:r.string.isRequired},SiteTemplate.defaultProps={isSelected:!1}},49496:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=SiteTemplates;var u=a(n(63804)),s=a(n(37959));n(64434),n(90286);var l=a(n(35657)),c=a(n(14176)),f=n(78675),p=a(n(93921)),d=n(97282),v=n(87222),m=a(n(89784));function SiteTemplates(e){var t,n,o=u.default.useContext(v.Context),i=o.templates,a=o.action,h=o.resetActionState;n=u.default.useMemo((function(){return(0,l.default)(i).sort((function(e,t){return t.isActive||e.isActive?t.isActive&&e.isActive?t.date<e.date?1:-1:t.isActive?1:-1:"draft"===t.status&&"draft"===e.status||"draft"!==t.status&&"draft"!==e.status?t.date<e.date?1:-1:"draft"===e.status?1:-1}))}),[i]),(0,m.default)(e.type);var y={};if(e.type)switch(n=n.filter((function(t){return t.type===e.type})),y.extended=!0,y.type=e.type,e.type){case"header":case"footer":t=1,y.aspectRatio="wide";break;default:t=2}return n&&n.length?u.default.createElement("section",{className:"e-site-editor__site-templates"},u.default.createElement(d.PartActionsDialogs,null),a.error&&u.default.createElement(f.Dialog,{text:a.error,dismissButtonText:r("Go Back","elementor-pro"),dismissButtonOnClick:h,approveButtonText:r("Learn More","elementor-pro"),approveButtonColor:"link",approveButtonUrl:"https://go.elementor.com/app-theme-builder-template-load-issue",approveButtonTarget:"_target"}),u.default.createElement(f.CssGrid,{columns:t,spacing:24,colMinWidth:200},n.map((function(t){return u.default.createElement(p.default,(0,s.default)({key:t.id},t,y,{isSelected:(0,c.default)(e.id)===t.id}))})))):u.default.createElement("h3",null,r("No Templates found. Want to create one?","elementor-pro"),"...")}SiteTemplates.propTypes={type:o.string,id:o.string}},26828:(e,t,n)=>{"use strict";var r=n(23615),o=n(18194).__,i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=function AddNew(){var e=u.default.useContext(f.Context).templates,t=1<=(0,s.default)(e).length,n=function HoverElement(e){return u.default.createElement("a",{href:e.urls.create,className:"eps-card__image-overlay eps-add-new__overlay"},u.default.createElement(l.AddNewButton,{hideText:!0}))};return n.propTypes={urls:r.object.isRequired},u.default.createElement("section",{className:"e-site-editor__add-new"},u.default.createElement("header",{className:"e-site-editor__header"},t&&u.default.createElement(p.default,null),u.default.createElement(l.Heading,{variant:"h1"},o("Start customizing every part of your site","elementor-pro"))),u.default.createElement(c.SiteParts,{hoverElement:n}))};var u=a(n(63804)),s=a(n(83452)),l=n(78675),c=n(34381);n(26748);var f=n(87222),p=a(n(49309))},73391:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=ConditionConflicts;var u=a(n(63804));n(90286);var s=n(78675);function ConditionConflicts(e){if(!e.conflicts.length)return"";var t=e.conflicts.map((function(e){return u.default.createElement(s.Button,{key:e.template_id,target:"_blank",url:e.edit_url,text:e.template_title})}));return u.default.createElement(s.Text,{className:"e-site-editor-conditions__conflict",variant:"sm"},r("Elementor recognized that you have set this location for other templates: ","elementor-pro")," ",t)}ConditionConflicts.propTypes={conflicts:o.array.isRequired}},87072:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=ConditionName;var a=i(n(63804));n(99745);var u=n(78675);function ConditionName(e){if("general"!==e.default)return"";return a.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},a.default.createElement(u.Select,{options:e.options,value:e.name,onChange:function onChange(t){return e.updateConditions(e.id,{name:t.target.value,sub:"",subId:""})}}))}ConditionName.propTypes={updateConditions:r.func.isRequired,id:r.string.isRequired,name:r.string.isRequired,options:r.array.isRequired,default:r.string.isRequired},ConditionName.defaultProps={name:""}},72888:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=ConditionSubId;var u=a(n(63804)),s=a(n(83452));n(10195);var l=n(78675);function ConditionSubId(e){if(!e.sub||!(0,s.default)(e.subIdAutocomplete).length)return"";var t=u.default.useMemo((function(){return function getSettings(e){return{allowClear:!1,placeholder:r("All","elementor-pro"),dir:elementorCommon.config.isRTL?"rtl":"ltr",ajax:{transport:function transport(t,n,r){return elementorCommon.ajax.addRequest("pro_panel_posts_control_filter_autocomplete",{data:{q:t.data.q,autocomplete:e},success:n,error:r})},data:function data(e){return{q:e.term,page:e.page}},cache:!0},escapeMarkup:function escapeMarkup(e){return e},minimumInputLength:1}}(e.subIdAutocomplete)}),[e.subIdAutocomplete]);return u.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},u.default.createElement(l.Select2,{onChange:function onChange(t){return e.updateConditions(e.id,{subId:t.target.value})},value:e.subId,settings:t,options:e.subIdOptions}))}ConditionSubId.propTypes={subIdAutocomplete:o.object,id:o.string.isRequired,sub:o.string,subId:o.string,updateConditions:o.func,subIdOptions:o.array},ConditionSubId.defaultProps={subId:"",subIdOptions:[]}},74090:(e,t,n)=>{"use strict";var r=n(23615),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=ConditionSub;var a=i(n(63804));n(99745),n(10195);var u=n(78675);function ConditionSub(e){if("general"===e.name||!e.subOptions.length)return"";return a.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper"},a.default.createElement(u.Select,{options:e.subOptions,value:e.sub,onChange:function onChange(t){return e.updateConditions(e.id,{sub:t.target.value,subId:""})}}))}ConditionSub.propTypes={updateConditions:r.func.isRequired,id:r.string.isRequired,name:r.string.isRequired,sub:r.string.isRequired,subOptions:r.array.isRequired},ConditionSub.defaultProps={sub:"",subOptions:{}}},44172:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=ConditionType;var u=a(n(63804)),s=n(78675);function ConditionType(e){var t=u.default.createRef(),n=[{label:r("Include","elementor-pro"),value:"include"},{label:r("Exclude","elementor-pro"),value:"exclude"}];return u.default.useEffect((function(){t.current.setAttribute("data-elementor-condition-type",e.type)})),u.default.createElement("div",{className:"e-site-editor-conditions__input-wrapper e-site-editor-conditions__input-wrapper--condition-type",ref:t},u.default.createElement(s.Select,{options:n,value:e.type,onChange:function onChange(t){e.updateConditions(e.id,{type:t.target.value})}}))}ConditionType.propTypes={updateConditions:o.func.isRequired,id:o.string.isRequired,type:o.string.isRequired},ConditionType.defaultProps={type:""}},7707:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=ConditionsRows;var u=a(n(63804)),s=a(n(37959)),l=a(n(35657));n(90286);var c=n(78221),f=n(78675),p=a(n(44172)),d=a(n(87072)),v=a(n(74090)),m=a(n(72888)),h=a(n(73391));function ConditionsRows(e){var t=u.default.useContext(c.Context),n=t.conditions,o=t.createConditionItemInState,i=t.updateConditionItemState,a=t.removeConditionItemInState,y=t.saveConditions,g=t.action,_=t.resetActionState,b=(0,l.default)(n).map((function(e){return u.default.createElement("div",{key:e.id},u.default.createElement("div",{className:"e-site-editor-conditions__row"},u.default.createElement("div",{className:"e-site-editor-conditions__row-controls ".concat(e.conflictErrors.length&&"e-site-editor-conditions__row-controls--error")},u.default.createElement(p.default,(0,s.default)({},e,{updateConditions:i})),u.default.createElement("div",{className:"e-site-editor-conditions__row-controls-inner"},u.default.createElement(d.default,(0,s.default)({},e,{updateConditions:i})),u.default.createElement(v.default,(0,s.default)({},e,{updateConditions:i})),u.default.createElement(m.default,(0,s.default)({},e,{updateConditions:i})))),u.default.createElement(f.Button,{className:"e-site-editor-conditions__remove-condition",text:r("Delete","elementor-pro"),icon:"eicon-close",hideText:!0,onClick:function onClick(){return a(e.id)}})),u.default.createElement(h.default,{conflicts:e.conflictErrors}))})),x=g.current===c.ConditionsProvider.actions.SAVE&&g.loading;return u.default.createElement(u.default.Fragment,null,g.error&&u.default.createElement(f.Dialog,{text:g.error,dismissButtonText:r("Go Back","elementor-pro"),dismissButtonOnClick:_,approveButtonText:r("Learn More","elementor-pro"),approveButtonColor:"link",approveButtonUrl:"https://go.elementor.com/app-theme-builder-conditions-load-issue",approveButtonTarget:"_target"}),u.default.createElement("div",{className:"e-site-editor-conditions__rows"},b),u.default.createElement("div",{className:"e-site-editor-conditions__add-button-container"},u.default.createElement(f.Button,{className:"e-site-editor-conditions__add-button",variant:"contained",size:"lg",text:r("Add Condition","elementor-pro"),onClick:o})),u.default.createElement("div",{className:"e-site-editor-conditions__footer"},u.default.createElement(f.Button,{variant:"contained",color:"primary",size:"lg",hideText:x,icon:x?"eicon-loading eicon-animation-spin":"",text:r("Save & Close","elementor-pro"),onClick:function onClick(){return y().then(e.onAfterSave)}})))}ConditionsRows.propTypes={onAfterSave:o.func}},5715:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=Conditions;var u=a(n(63804)),s=a(n(14176)),l=n(78675),c=a(n(78221)),f=n(87222),p=a(n(7707));n(13461);var d=a(n(49309));function Conditions(e){var t=u.default.useContext(f.Context),n=t.findTemplateItemInState,o=t.updateTemplateItemState,i=n((0,s.default)(e.id));return i?u.default.createElement("section",{className:"e-site-editor-conditions"},u.default.createElement(d.default,null),u.default.createElement("div",{className:"e-site-editor-conditions__header"},u.default.createElement("img",{className:"e-site-editor-conditions__header-image",src:"".concat(elementorAppProConfig.baseUrl,"/modules/theme-builder/assets/images/conditions-tab.svg"),alt:r("Import template","elementor-pro")}),u.default.createElement(l.Heading,{variant:"h1",tag:"h1"},r("Where Do You Want to Display Your Template?","elementor-pro")),u.default.createElement(l.Text,{variant:"p"},r("Set the conditions that determine where your template is used throughout your site.","elementor-pro"),u.default.createElement("br",null),r("For example, choose 'Entire Site' to display the template across your site.","elementor-pro"))),u.default.createElement(c.default,{currentTemplate:i,onConditionsSaved:o},u.default.createElement(p.default,{onAfterSave:function onAfterSave(){return history.back()}}))):u.default.createElement("div",null,r("Not Found","elementor-pro"))}Conditions.propTypes={id:o.string}},30044:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=function Import(){var e=a.default.useContext(c.Context),t=e.importTemplates,n=e.action,o=e.resetActionState,i=a.default.useState(null),p=(0,s.default)(i,2),d=p[0],v=p[1],m=a.default.useMemo((function(){return n.current===c.TemplatesProvider.actions.IMPORT}),[n]),h=a.default.useMemo((function(){return m&&n.loading}),[n]),y=a.default.useMemo((function(){return m&&n.error}),[n]),g=a.default.useCallback((function(e){h||function readFile(e){return new u.default((function(t){var n=new FileReader;n.readAsDataURL(e),n.onload=function(e){t(e.target.result.replace(/^[^,]+,/,""))}}))}(e).then((function(n){return t({fileName:e.name,fileData:n})})).then((function(e){v(e.data[0])}))}),[]);return a.default.createElement("section",{className:"site-editor__import"},d&&a.default.createElement(l.Dialog,{title:r("Your template was imported","elementor-pro"),approveButtonText:r("Preview","elementor-pro"),approveButtonUrl:d.url,approveButtonTarget:"_blank",dismissButtonText:r("Edit","elementor-pro"),dismissButtonUrl:d.editURL,dismissButtonTarget:"_top",onClose:function onClose(){return v(null)}}),y&&a.default.createElement(l.Dialog,{title:n.error,approveButtonText:r("Learn More","elementor-pro"),approveButtonUrl:"https://go.elementor.com/app-theme-builder-import-issue",approveButtonTarget:"_blank",approveButtonColor:"link",dismissButtonText:r("Go Back","elementor-pro"),dismissButtonOnClick:o,onClose:o}),a.default.createElement(f.default,null),a.default.createElement(l.DropZone,{heading:r("Import Template To Your Library","elementor-pro"),text:r("Drag & Drop your .JSON or .zip template file","elementor-pro"),secondaryText:r("or","elementor-pro"),onFileSelect:g,isLoading:h,filetypes:["zip","json"]}))};var a=i(n(63804)),u=i(n(73220));n(99745),n(84208);var s=i(n(47834)),l=n(78675),c=n(87222),f=i(n(49309))},65026:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=TemplateType;var u=a(n(63804));n(71954);var s=n(34381),l=n(78675),c=a(n(49496));function TemplateType(e){var t=u.default.useContext(s.TemplateTypesContext).templateTypes.find((function(t){return t.type===e.type}));return t?u.default.createElement("section",{className:"e-site-editor__templates e-site-editor__templates--type-".concat(e.type)},u.default.createElement(l.Grid,{className:"page-header",container:!0,justify:"space-between"},u.default.createElement(l.Heading,{variant:"h1"},t.page_title),u.default.createElement(l.AddNewButton,{url:t.urls.create,text:r("Add New","elementor-pro")})),u.default.createElement("hr",{className:"eps-separator"}),u.default.createElement(c.default,{type:t.type,id:e.id})):u.default.createElement(l.NotFound,null)}n(62918),TemplateType.propTypes={type:o.string,page_title:o.string,id:o.string}},40364:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=function Templates(){return a.default.createElement("section",{className:"e-site-editor__site-templates"},a.default.createElement(s.Grid,{container:!0,justify:"space-between",className:"page-header"},a.default.createElement("h1",null,r("Your Site's Global Parts","elementor-pro")),a.default.createElement(s.AddNewButton,{url:"/site-editor/add-new"})),a.default.createElement("hr",{className:"eps-separator"}),a.default.createElement(u.default,null))};var a=i(n(63804)),u=i(n(49496)),s=n(78675)},63602:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.default=DialogDelete;var u=a(n(63804)),s=n(78675),l=n(87222);function DialogDelete(e){var t=u.default.useContext(l.Context),n=t.deleteTemplate,o=(0,t.findTemplateItemInState)(e.id),i=function closeDialog(t){e.setId(null),t&&n(e.id)};return e.id?u.default.createElement(s.Dialog,{title:r("Move Item To Trash","elementor-pro"),text:r("Are you sure you want to move this item to trash:","elementor-pro")+' "'.concat(o.title,'"'),onSubmit:function onSubmit(){return i(!0)},approveButtonText:r("Move to Trash","elementor-pro"),approveButtonOnClick:function approveButtonOnClick(){return i(!0)},approveButtonColor:"danger",dismissButtonText:r("Cancel","elementor-pro"),dismissButtonOnClick:function dismissButtonOnClick(){return i()},onClose:function onClose(){return i()}}):""}DialogDelete.propTypes={id:o.number,setId:o.func.isRequired}},96546:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971),u=n(52369);i(t,"__esModule",{value:!0}),t.default=DialogRename;var s=u(n(63804)),l=a(n(47834)),c=n(78675),f=n(87222);function DialogRename(e){var t=s.default.useContext(f.Context),n=t.findTemplateItemInState,o=t.updateTemplate,i=n(e.id),a=s.default.useState(""),u=(0,l.default)(a,2),p=u[0],d=u[1];(0,s.useEffect)((function(){i&&d(i.title)}),[i]);var v=function closeDialog(t){e.setId(null),t&&o(e.id,{post_title:p})};return e.id?s.default.createElement(c.Dialog,{title:r("Rename Site Part","elementor-pro"),approveButtonText:r("Change","elementor-pro"),onSubmit:function onSubmit(){return v(!0)},approveButtonOnClick:function approveButtonOnClick(){return v(!0)},approveButtonColor:"primary",dismissButtonText:r("Cancel","elementor-pro"),dismissButtonOnClick:function dismissButtonOnClick(){return v()},onClose:function onClose(){return v()}},s.default.createElement("input",{type:"text",className:"eps-input eps-input-text eps-input--block",autoFocus:!0,value:p,onChange:function onChange(e){return d(e.target.value)}})):""}DialogRename.propTypes={id:o.number,setId:o.func.isRequired}},97282:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(23615),i=n(67394),a=n(67971);i(t,"__esModule",{value:!0}),t.PartActionsDialogs=function PartActionsDialogs(){var e=u.default.useState(null),t=(0,s.default)(e,2),n=t[0],r=t[1],o=u.default.useState(null),i=(0,s.default)(o,2),a=i[0],f=i[1];return p.rename=r,p.delete=f,u.default.createElement(u.default.Fragment,null,u.default.createElement(l.default,{id:n,setId:r}),u.default.createElement(c.default,{id:a,setId:f}))},t.default=PartActionsButtons,t.handlers=void 0;var u=a(n(63804)),s=a(n(47834)),l=a(n(96546)),c=a(n(63602)),f=n(78675),p={rename:null,delete:null};function PartActionsButtons(e){var t=u.default.useState(!1),n=(0,s.default)(t,2),o=n[0],i=n[1],a="";return o&&(a=u.default.createElement(f.Popover,{closeFunction:function closeFunction(){return i(!o)}},u.default.createElement("li",null,u.default.createElement(f.Button,{className:"eps-popover__item",icon:"eicon-sign-out",text:r("Export","elementor-pro"),url:e.exportLink})),u.default.createElement("li",null,u.default.createElement(f.Button,{className:"eps-popover__item eps-popover__item--danger",icon:"eicon-trash-o",text:r("Trash","elementor-pro"),onClick:function onClick(){return p.delete(e.id)}})),u.default.createElement("li",null,u.default.createElement(f.Button,{className:"eps-popover__item",icon:"eicon-edit",text:r("Rename","elementor-pro"),onClick:function onClick(){return p.rename(e.id)}})))),u.default.createElement("div",{className:"eps-popover__container"},u.default.createElement(f.Button,{text:r("Toggle","elementor-pro"),hideText:!0,icon:"eicon-ellipsis-h",size:"lg",onClick:function onClick(){return i(!o)}}),a)}t.handlers=p,PartActionsButtons.propTypes={id:o.number.isRequired,exportLink:o.string.isRequired}},71143:(e,t,n)=>{"use strict";var r=n(18194).__,o=n(67394),i=n(52369),a=n(67971);o(t,"__esModule",{value:!0}),t.default=void 0;var u=a(n(63804)),s=a(n(11959)),l=a(n(83452)),c=n(50927),f=a(n(40364)),p=a(n(65026)),d=a(n(26828)),v=a(n(5715)),m=a(n(30044)),h=i(n(87222)),y=n(34381),g=n(78675),_=a(n(20485)),b=a(n(88704));function SiteEditor(){var e,t,n=[{id:"import",text:r("import","elementor-pro"),hideText:!0,icon:"eicon-download-circle-o",onClick:function onClick(){return _.default.appHistory.navigate("site-editor/import")}}];elementorCommon.ajax.invalidateCache({unique_id:"app_site_editor_template_types"});var o=function SiteEditorDefault(){var e=u.default.useContext(h.Context).templates;return(0,l.default)(e).length?u.default.createElement(c.Redirect,{from:"/",to:"/site-editor/templates",noThrow:!0}):u.default.createElement(c.Redirect,{from:"/",to:"/site-editor/add-new",noThrow:!0})};return u.default.createElement(g.ErrorBoundary,{title:r("Theme Builder could not be loaded","elementor-pro"),learnMoreUrl:"https://go.elementor.com/app-theme-builder-load-issue"},u.default.createElement(y.Layout,{allPartsButton:u.default.createElement(y.AllPartsButton,{url:"/site-editor"}),headerButtons:n},u.default.createElement(g.Grid,{container:!0,className:"e-site-editor__content_container"},u.default.createElement(g.Grid,{item:!0,className:"e-site-editor__content_container_main"},u.default.createElement(h.default,null,u.default.createElement(c.LocationProvider,{history:_.default.appHistory},u.default.createElement(c.Router,null,u.default.createElement(o,{path:"/site-editor"}),u.default.createElement(f.default,{path:"site-editor/templates"}),u.default.createElement(p.default,{path:"site-editor/templates/:type/*id"}),u.default.createElement(d.default,{path:"site-editor/add-new"}),u.default.createElement(v.default,{path:"site-editor/conditions/:id"}),u.default.createElement(m.default,{path:"site-editor/import"}),u.default.createElement(y.NotFound,{default:!0}))))),u.default.createElement(g.Grid,{item:!0,className:"e-site-editor__content_container_secondary"},u.default.createElement(g.Button,{text:r("Switch to table view","elementor-pro"),url:null===(e=elementorAppProConfig["site-editor"])||void 0===e||null===(t=e.urls)||void 0===t?void 0:t.legacy_view})))))}n(36909);t.default=function Module(){(0,s.default)(this,Module),elementorCommon.debug.addURLToWatch("elementor-pro/assets"),$e.components.register(new b.default),_.default.addRoute({path:"/site-editor/*",component:SiteEditor})}},41519:(e,t,n)=>{"use strict";var r=n(63804),o=n(67394),i=n(67971);o(t,"__esModule",{value:!0}),t.default=function useScreenshot(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_,n=t.numberOfScreenshotInParallel,r=f([]),o=(0,s.default)(r,2),i=o[0],a=o[1],l=d((function(){return filterPostByStatus(i,m)}),[i]),c=d((function(){return filterPostByStatus(i,h)}),[i]),v=d((function(){return filterPostByStatus(i,y)}),[i]),b=d((function(){return filterPostByStatus(i,g)}),[i]);p((function(){var t=e.filter((function(e){return!i.find((function(t){return t.id===e.id}))}));t.length&&a((function(e){return[].concat((0,u.default)(e),(0,u.default)(normalizeInitialPosts(t)))}))}),[e]);var x=useIFrameMessageListener(c,a);return p((function(){return window.addEventListener("message",x,!1),function(){window.removeEventListener("message",x)}}),[x]),p((function(){if(!(0===l.length||c.length>=n)){var e=(0,s.default)(l,1)[0],t=createScreenshotIframe(e);a((function(n){return updatePostsAttrs(n,e.id,{status:h,iframe:t})}))}}),[i]),{posts:i,queue:l,inProgress:c,succeed:v,failed:b}},t.SCREENSHOT_STATUS_FAILED=t.SCREENSHOT_STATUS_SUCCEED=t.SCREENSHOT_STATUS_IN_PROGRESS=t.SCREENSHOT_STATUS_QUEUE=void 0;var a=i(n(14176)),u=i(n(74846)),s=i(n(47834)),l=i(n(84899));n(64434),n(90286),n(99745),n(71954);var c=r,f=c.useState,p=c.useEffect,d=c.useMemo,v=c.useCallback,m="queue";t.SCREENSHOT_STATUS_QUEUE=m;var h="in-progress";t.SCREENSHOT_STATUS_IN_PROGRESS=h;var y="succeed";t.SCREENSHOT_STATUS_SUCCEED=y;var g="failed";t.SCREENSHOT_STATUS_FAILED=g;var _={numberOfScreenshotInParallel:1};function filterPostByStatus(e,t){return e.filter((function(e){return t===e.status}))}function normalizeInitialPosts(e){return e.map((function(e){return{id:e.id,screenshot_url:e.screenshot_url,status:"queue",iframe:null,imageUrl:null}}))}function updatePostsAttrs(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.map((function(e){return e.id!==t?e:(0,l.default)((0,l.default)({},e),n)}))}function createScreenshotIframe(e){var t=document.createElement("iframe");return t.src=e.screenshot_url,t.width="1200",t.style="visibility: hidden;",document.body.appendChild(t),t}function useIFrameMessageListener(e,t){return v((function(n){var r=n.data;if(r.name&&"capture-screenshot-done"===r.name){var o=e.find((function(e){return e.id===(0,a.default)(r.id)}));o&&(o.iframe.remove(),t((function(e){return updatePostsAttrs(e,o.id,{status:r.success?y:g,imageUrl:r.imageUrl})})))}}),[e])}},7421:(e,t,n)=>{n(99572),n(37627),e.exports=n(47208).Array.from},70157:(e,t,n)=>{n(42580),e.exports=n(47208).Array.isArray},89710:(e,t,n)=>{var r=n(47208),o=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function stringify(e){return o.stringify.apply(o,arguments)}},66458:(e,t,n)=>{n(99954),e.exports=n(47208).Object.assign},14710:(e,t,n)=>{n(30785);var r=n(47208).Object;e.exports=function create(e,t){return r.create(e,t)}},23022:(e,t,n)=>{n(23078);var r=n(47208).Object;e.exports=function defineProperties(e,t){return r.defineProperties(e,t)}},43153:(e,t,n)=>{n(40168);var r=n(47208).Object;e.exports=function defineProperty(e,t,n){return r.defineProperty(e,t,n)}},32622:(e,t,n)=>{n(18576);var r=n(47208).Object;e.exports=function getOwnPropertyDescriptor(e,t){return r.getOwnPropertyDescriptor(e,t)}},27410:(e,t,n)=>{n(67685),e.exports=n(47208).Object.getOwnPropertyDescriptors},19035:(e,t,n)=>{n(54370),e.exports=n(47208).Object.getOwnPropertySymbols},58535:(e,t,n)=>{n(4840),e.exports=n(47208).Object.getPrototypeOf},97220:(e,t,n)=>{n(5453),e.exports=n(47208).Object.keys},65135:(e,t,n)=>{n(13890),e.exports=n(47208).Object.setPrototypeOf},69591:(e,t,n)=>{n(57188),e.exports=n(47208).Object.values},34345:(e,t,n)=>{n(24399),e.exports=n(47208).parseInt},76483:(e,t,n)=>{n(70285),n(99572),n(74114),n(86082),n(81522),n(25757),e.exports=n(47208).Promise},43094:(e,t,n)=>{n(11320),e.exports=n(47208).Reflect.construct},19103:(e,t,n)=>{n(54370),n(70285),n(87573),n(97224),e.exports=n(47208).Symbol},39871:(e,t,n)=>{n(99572),n(74114),e.exports=n(7273).f("iterator")},89999:(e,t,n)=>{n(70285),n(74114),n(23337),n(10143),n(92797),e.exports=n(47208).WeakMap},26610:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},29697:e=>{e.exports=function(){}},54677:e=>{e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},30498:(e,t,n)=>{var r=n(39632);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},69191:(e,t,n)=>{var r=n(1504),o=n(37154),i=n(46723);e.exports=function(e){return function(t,n,a){var u,s=r(t),l=o(s.length),c=i(a,l);if(e&&n!=n){for(;l>c;)if((u=s[c++])!=u)return!0}else for(;l>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}}},97647:(e,t,n)=>{var r=n(61725),o=n(13115),i=n(60061),a=n(37154),u=n(41904);e.exports=function(e,t){var n=1==e,s=2==e,l=3==e,c=4==e,f=6==e,p=5==e||f,d=t||u;return function(t,u,v){for(var m,h,y=i(t),g=o(y),_=r(u,v,3),b=a(g.length),x=0,C=n?d(t,b):s?d(t,0):void 0;b>x;x++)if((p||x in g)&&(h=_(m=g[x],x,y),e))if(n)C[x]=h;else if(h)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:C.push(m)}else if(c)return!1;return f?-1:l||c?c:C}}},88320:(e,t,n)=>{var r=n(39632),o=n(7359),i=n(24300)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},41904:(e,t,n)=>{var r=n(88320);e.exports=function(e,t){return new(r(e))(t)}},45515:(e,t,n)=>{"use strict";var r=n(26610),o=n(39632),i=n(19897),a=[].slice,u={},construct=function(e,t,n){if(!(t in u)){for(var r=[],o=0;o<t;o++)r[o]="a["+o+"]";u[t]=Function("F,a","return new F("+r.join(",")+")")}return u[t](e,n)};e.exports=Function.bind||function bind(e){var t=r(this),n=a.call(arguments,1),bound=function(){var r=n.concat(a.call(arguments));return this instanceof bound?construct(t,r.length,r):i(t,r,e)};return o(t.prototype)&&(bound.prototype=t.prototype),bound}},8312:(e,t,n)=>{var r=n(41352),o=n(24300)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},41352:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},92600:(e,t,n)=>{"use strict";var r=n(13199),o=n(6758).getWeak,i=n(30498),a=n(39632),u=n(54677),s=n(25985),l=n(97647),c=n(20657),f=n(41081),p=l(5),d=l(6),v=0,uncaughtFrozenStore=function(e){return e._l||(e._l=new UncaughtFrozenStore)},UncaughtFrozenStore=function(){this.a=[]},findUncaughtFrozen=function(e,t){return p(e.a,(function(e){return e[0]===t}))};UncaughtFrozenStore.prototype={get:function(e){var t=findUncaughtFrozen(this,e);if(t)return t[1]},has:function(e){return!!findUncaughtFrozen(this,e)},set:function(e,t){var n=findUncaughtFrozen(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=d(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var l=e((function(e,r){u(e,l,t,"_i"),e._t=t,e._i=v++,e._l=void 0,null!=r&&s(r,n,e[i],e)}));return r(l.prototype,{delete:function(e){if(!a(e))return!1;var n=o(e);return!0===n?uncaughtFrozenStore(f(this,t)).delete(e):n&&c(n,this._i)&&delete n[this._i]},has:function has(e){if(!a(e))return!1;var n=o(e);return!0===n?uncaughtFrozenStore(f(this,t)).has(e):n&&c(n,this._i)}}),l},def:function(e,t,n){var r=o(i(t),!0);return!0===r?uncaughtFrozenStore(e).set(t,n):r[e._i]=n,e},ufstore:uncaughtFrozenStore}},70770:(e,t,n)=>{"use strict";var r=n(43280),o=n(98310),i=n(6758),a=n(90472),u=n(62292),s=n(13199),l=n(25985),c=n(54677),f=n(39632),p=n(2413),d=n(60510).f,v=n(97647)(0),m=n(75179);e.exports=function(e,t,n,h,y,g){var _=r[e],b=_,x=y?"set":"add",C=b&&b.prototype,S={};return m&&"function"==typeof b&&(g||C.forEach&&!a((function(){(new b).entries().next()})))?(b=t((function(t,n){c(t,b,e,"_c"),t._c=new _,null!=n&&l(n,y,t[x],t)})),v("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in C)||g&&"clear"==e||u(b.prototype,e,(function(n,r){if(c(this,b,e),!t&&g&&!f(n))return"get"==e&&void 0;var o=this._c[e](0===n?0:n,r);return t?this:o}))})),g||d(b.prototype,"size",{get:function(){return this._c.size}})):(b=h.getConstructor(t,e,y,x),s(b.prototype,n),i.NEED=!0),p(b,e),S[e]=b,o(o.G+o.W+o.F,S),g||h.setStrong(b,e,y),b}},47208:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},87352:(e,t,n)=>{"use strict";var r=n(60510),o=n(48439);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},61725:(e,t,n)=>{var r=n(26610);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},18239:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},75179:(e,t,n)=>{e.exports=!n(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(e,t,n)=>{var r=n(39632),o=n(43280).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},31986:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(e,t,n)=>{var r=n(86425),o=n(97739),i=n(67410);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,u=n(e),s=i.f,l=0;u.length>l;)s.call(e,a=u[l++])&&t.push(a);return t}},98310:(e,t,n)=>{var r=n(43280),o=n(47208),i=n(61725),a=n(62292),u=n(20657),$export=function(e,t,n){var s,l,c,f=e&$export.F,p=e&$export.G,d=e&$export.S,v=e&$export.P,m=e&$export.B,h=e&$export.W,y=p?o:o[t]||(o[t]={}),g=y.prototype,_=p?r:d?r[t]:(r[t]||{}).prototype;for(s in p&&(n=t),n)(l=!f&&_&&void 0!==_[s])&&u(y,s)||(c=l?_[s]:n[s],y[s]=p&&"function"!=typeof _[s]?n[s]:m&&l?i(c,r):h&&_[s]==c?function(e){var F=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return F.prototype=e.prototype,F}(c):v&&"function"==typeof c?i(Function.call,c):c,v&&((y.virtual||(y.virtual={}))[s]=c,e&$export.R&&g&&!g[s]&&a(g,s,c)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},90472:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},25985:(e,t,n)=>{var r=n(61725),o=n(93086),i=n(11827),a=n(30498),u=n(37154),s=n(26116),l={},c={},f=e.exports=function(e,t,n,f,p){var d,v,m,h,y=p?function(){return e}:s(e),g=r(n,f,t?2:1),_=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(i(y)){for(d=u(e.length);d>_;_++)if((h=t?g(a(v=e[_])[0],v[1]):g(e[_]))===l||h===c)return h}else for(m=y.call(e);!(v=m.next()).done;)if((h=o(m,g,v.value,t))===l||h===c)return h};f.BREAK=l,f.RETURN=c},43280:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},20657:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},62292:(e,t,n)=>{var r=n(60510),o=n(48439);e.exports=n(75179)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},92477:(e,t,n)=>{var r=n(43280).document;e.exports=r&&r.documentElement},64457:(e,t,n)=>{e.exports=!n(75179)&&!n(90472)((function(){return 7!=Object.defineProperty(n(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:e=>{e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},13115:(e,t,n)=>{var r=n(41352);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},11827:(e,t,n)=>{var r=n(79105),o=n(24300)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},7359:(e,t,n)=>{var r=n(41352);e.exports=Array.isArray||function isArray(e){return"Array"==r(e)}},39632:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},93086:(e,t,n)=>{var r=n(30498);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},19802:(e,t,n)=>{"use strict";var r=n(82488),o=n(48439),i=n(2413),a={};n(62292)(a,n(24300)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},6125:(e,t,n)=>{"use strict";var r=n(36794),o=n(98310),i=n(19312),a=n(62292),u=n(79105),s=n(19802),l=n(2413),c=n(999),f=n(24300)("iterator"),p=!([].keys&&"next"in[].keys()),d="keys",v="values",returnThis=function(){return this};e.exports=function(e,t,n,m,h,y,g){s(n,t,m);var _,b,x,getMethod=function(e){if(!p&&e in T)return T[e];switch(e){case d:return function keys(){return new n(this,e)};case v:return function values(){return new n(this,e)}}return function entries(){return new n(this,e)}},C=t+" Iterator",S=h==v,E=!1,T=e.prototype,w=T[f]||T["@@iterator"]||h&&T[h],P=w||getMethod(h),O=h?S?getMethod("entries"):P:void 0,I="Array"==t&&T.entries||w;if(I&&(x=c(I.call(new e)))!==Object.prototype&&x.next&&(l(x,C,!0),r||"function"==typeof x[f]||a(x,f,returnThis)),S&&w&&w.name!==v&&(E=!0,P=function values(){return w.call(this)}),r&&!g||!p&&!E&&T[f]||a(T,f,P),u[t]=P,u[C]=returnThis,h)if(_={values:S?P:getMethod(v),keys:y?P:getMethod(d),entries:O},g)for(b in _)b in T||i(T,b,_[b]);else o(o.P+o.F*(p||E),t,_);return _}},26797:(e,t,n)=>{var r=n(24300)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},9329:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},79105:e=>{e.exports={}},36794:e=>{e.exports=!0},6758:(e,t,n)=>{var r=n(54251)("meta"),o=n(39632),i=n(20657),a=n(60510).f,u=0,s=Object.isExtensible||function(){return!0},l=!n(90472)((function(){return s(Object.preventExtensions({}))})),setMeta=function(e){a(e,r,{value:{i:"O"+ ++u,w:{}}})},c=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";setMeta(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;setMeta(e)}return e[r].w},onFreeze:function(e){return l&&c.NEED&&s(e)&&!i(e,r)&&setMeta(e),e}}},4326:(e,t,n)=>{var r=n(43280),o=n(6022).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,u=r.Promise,s="process"==n(41352)(a);e.exports=function(){var e,t,n,flush=function(){var r,o;for(s&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(s)n=function(){a.nextTick(flush)};else if(!i||r.navigator&&r.navigator.standalone)if(u&&u.resolve){var l=u.resolve(void 0);n=function(){l.then(flush)}}else n=function(){o.call(r,flush)};else{var c=!0,f=document.createTextNode("");new i(flush).observe(f,{characterData:!0}),n=function(){f.data=c=!c}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},88579:(e,t,n)=>{"use strict";var r=n(26610);function PromiseCapability(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new PromiseCapability(e)}},77995:(e,t,n)=>{"use strict";var r=n(75179),o=n(86425),i=n(97739),a=n(67410),u=n(60061),s=n(13115),l=Object.assign;e.exports=!l||n(90472)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function assign(e,t){for(var n=u(e),l=arguments.length,c=1,f=i.f,p=a.f;l>c;)for(var d,v=s(arguments[c++]),m=f?o(v).concat(f(v)):o(v),h=m.length,y=0;h>y;)d=m[y++],r&&!p.call(v,d)||(n[d]=v[d]);return n}:l},82488:(e,t,n)=>{var r=n(30498),o=n(36607),i=n(31986),a=n(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var e,t=n(48765)("iframe"),r=i.length;for(t.style.display="none",n(92477).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),createDict=e.F;r--;)delete createDict.prototype[i[r]];return createDict()};e.exports=Object.create||function create(e,t){var n;return null!==e?(Empty.prototype=r(e),n=new Empty,Empty.prototype=null,n[a]=e):n=createDict(),void 0===t?n:o(n,t)}},60510:(e,t,n)=>{var r=n(30498),o=n(64457),i=n(12737),a=Object.defineProperty;t.f=n(75179)?Object.defineProperty:function defineProperty(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},36607:(e,t,n)=>{var r=n(60510),o=n(30498),i=n(86425);e.exports=n(75179)?Object.defineProperties:function defineProperties(e,t){o(e);for(var n,a=i(t),u=a.length,s=0;u>s;)r.f(e,n=a[s++],t[n]);return e}},83264:(e,t,n)=>{var r=n(67410),o=n(48439),i=n(1504),a=n(12737),u=n(20657),s=n(64457),l=Object.getOwnPropertyDescriptor;t.f=n(75179)?l:function getOwnPropertyDescriptor(e,t){if(e=i(e),t=a(t,!0),s)try{return l(e,t)}catch(e){}if(u(e,t))return o(!r.f.call(e,t),e[t])}},26084:(e,t,n)=>{var r=n(1504),o=n(8772).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function getOwnPropertyNames(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(e){return a.slice()}}(e):o(r(e))}},8772:(e,t,n)=>{var r=n(65326),o=n(31986).concat("length","prototype");t.f=Object.getOwnPropertyNames||function getOwnPropertyNames(e){return r(e,o)}},97739:(e,t)=>{t.f=Object.getOwnPropertySymbols},999:(e,t,n)=>{var r=n(20657),o=n(60061),i=n(18478)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},65326:(e,t,n)=>{var r=n(20657),o=n(1504),i=n(69191)(!1),a=n(18478)("IE_PROTO");e.exports=function(e,t){var n,u=o(e),s=0,l=[];for(n in u)n!=a&&r(u,n)&&l.push(n);for(;t.length>s;)r(u,n=t[s++])&&(~i(l,n)||l.push(n));return l}},86425:(e,t,n)=>{var r=n(65326),o=n(31986);e.exports=Object.keys||function keys(e){return r(e,o)}},67410:(e,t)=>{t.f={}.propertyIsEnumerable},57972:(e,t,n)=>{var r=n(98310),o=n(47208),i=n(90472);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i((function(){n(1)})),"Object",a)}},9480:(e,t,n)=>{var r=n(75179),o=n(86425),i=n(1504),a=n(67410).f;e.exports=function(e){return function(t){for(var n,u=i(t),s=o(u),l=s.length,c=0,f=[];l>c;)n=s[c++],r&&!a.call(u,n)||f.push(e?[n,u[n]]:u[n]);return f}}},64344:(e,t,n)=>{var r=n(8772),o=n(97739),i=n(30498),a=n(43280).Reflect;e.exports=a&&a.ownKeys||function ownKeys(e){var t=r.f(i(e)),n=o.f;return n?t.concat(n(e)):t}},60162:(e,t,n)=>{var r=n(43280).parseInt,o=n(71963).trim,i=n(18458),a=/^[-+]?0[xX]/;e.exports=8!==r(i+"08")||22!==r(i+"0x16")?function parseInt(e,t){var n=o(String(e),3);return r(n,t>>>0||(a.test(n)?16:10))}:r},52745:e=>{e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},88747:(e,t,n)=>{var r=n(30498),o=n(39632),i=n(88579);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},48439:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},13199:(e,t,n)=>{var r=n(62292);e.exports=function(e,t,n){for(var o in t)n&&e[o]?e[o]=t[o]:r(e,o,t[o]);return e}},19312:(e,t,n)=>{e.exports=n(62292)},14689:(e,t,n)=>{"use strict";var r=n(98310),o=n(26610),i=n(61725),a=n(25985);e.exports=function(e){r(r.S,e,{from:function from(e){var t,n,r,u,s=arguments[1];return o(this),(t=void 0!==s)&&o(s),null==e?new this:(n=[],t?(r=0,u=i(s,arguments[2],2),a(e,!1,(function(e){n.push(u(e,r++))}))):a(e,!1,n.push,n),new this(n))}})}},7883:(e,t,n)=>{"use strict";var r=n(98310);e.exports=function(e){r(r.S,e,{of:function of(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},25574:(e,t,n)=>{var r=n(39632),o=n(30498),check=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(61725)(Function.call,n(83264).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function setPrototypeOf(e,n){return check(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check}},5698:(e,t,n)=>{"use strict";var r=n(43280),o=n(47208),i=n(60510),a=n(75179),u=n(24300)("species");e.exports=function(e){var t="function"==typeof o[e]?o[e]:r[e];a&&t&&!t[u]&&i.f(t,u,{configurable:!0,get:function(){return this}})}},2413:(e,t,n)=>{var r=n(60510).f,o=n(20657),i=n(24300)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},18478:(e,t,n)=>{var r=n(29990)("keys"),o=n(54251);e.exports=function(e){return r[e]||(r[e]=o(e))}},29990:(e,t,n)=>{var r=n(47208),o=n(43280),i="__core-js_shared__",a=o[i]||(o[i]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},73732:(e,t,n)=>{var r=n(30498),o=n(26610),i=n(24300)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},78502:(e,t,n)=>{var r=n(58290),o=n(18239);e.exports=function(e){return function(t,n){var i,a,u=String(o(t)),s=r(n),l=u.length;return s<0||s>=l?e?"":void 0:(i=u.charCodeAt(s))<55296||i>56319||s+1===l||(a=u.charCodeAt(s+1))<56320||a>57343?e?u.charAt(s):i:e?u.slice(s,s+2):a-56320+(i-55296<<10)+65536}}},71963:(e,t,n)=>{var r=n(98310),o=n(18239),i=n(90472),a=n(18458),u="["+a+"]",s=RegExp("^"+u+u+"*"),l=RegExp(u+u+"*$"),exporter=function(e,t,n){var o={},u=i((function(){return!!a[e]()||"​…"!="​…"[e]()})),s=o[e]=u?t(c):a[e];n&&(o[n]=s),r(r.P+r.F*u,"String",o)},c=exporter.trim=function(e,t){return e=String(o(e)),1&t&&(e=e.replace(s,"")),2&t&&(e=e.replace(l,"")),e};e.exports=exporter},18458:e=>{e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},6022:(e,t,n)=>{var r,o,i,a=n(61725),u=n(19897),s=n(92477),l=n(48765),c=n(43280),f=c.process,p=c.setImmediate,d=c.clearImmediate,v=c.MessageChannel,m=c.Dispatch,h=0,y={},g="onreadystatechange",run=function(){var e=+this;if(y.hasOwnProperty(e)){var t=y[e];delete y[e],t()}},listener=function(e){run.call(e.data)};p&&d||(p=function setImmediate(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return y[++h]=function(){u("function"==typeof e?e:Function(e),t)},r(h),h},d=function clearImmediate(e){delete y[e]},"process"==n(41352)(f)?r=function(e){f.nextTick(a(run,e,1))}:m&&m.now?r=function(e){m.now(a(run,e,1))}:v?(i=(o=new v).port2,o.port1.onmessage=listener,r=a(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(r=function(e){c.postMessage(e+"","*")},c.addEventListener("message",listener,!1)):r=g in l("script")?function(e){s.appendChild(l("script")).onreadystatechange=function(){s.removeChild(this),run.call(e)}}:function(e){setTimeout(a(run,e,1),0)}),e.exports={set:p,clear:d}},46723:(e,t,n)=>{var r=n(58290),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},58290:e=>{var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},1504:(e,t,n)=>{var r=n(13115),o=n(18239);e.exports=function(e){return r(o(e))}},37154:(e,t,n)=>{var r=n(58290),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},60061:(e,t,n)=>{var r=n(18239);e.exports=function(e){return Object(r(e))}},12737:(e,t,n)=>{var r=n(39632);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},54251:e=>{var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},35701:(e,t,n)=>{var r=n(43280).navigator;e.exports=r&&r.userAgent||""},41081:(e,t,n)=>{var r=n(39632);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},31164:(e,t,n)=>{var r=n(43280),o=n(47208),i=n(36794),a=n(7273),u=n(60510).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||u(t,e,{value:a.f(e)})}},7273:(e,t,n)=>{t.f=n(24300)},24300:(e,t,n)=>{var r=n(29990)("wks"),o=n(54251),i=n(43280).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},26116:(e,t,n)=>{var r=n(8312),o=n(24300)("iterator"),i=n(79105);e.exports=n(47208).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},37627:(e,t,n)=>{"use strict";var r=n(61725),o=n(98310),i=n(60061),a=n(93086),u=n(11827),s=n(37154),l=n(87352),c=n(26116);o(o.S+o.F*!n(26797)((function(e){Array.from(e)})),"Array",{from:function from(e){var t,n,o,f,p=i(e),d="function"==typeof this?this:Array,v=arguments.length,m=v>1?arguments[1]:void 0,h=void 0!==m,y=0,g=c(p);if(h&&(m=r(m,v>2?arguments[2]:void 0,2)),null==g||d==Array&&u(g))for(n=new d(t=s(p.length));t>y;y++)l(n,y,h?m(p[y],y):p[y]);else for(f=g.call(p),n=new d;!(o=f.next()).done;y++)l(n,y,h?a(f,m,[o.value,y],!0):o.value);return n.length=y,n}})},42580:(e,t,n)=>{var r=n(98310);r(r.S,"Array",{isArray:n(7359)})},84411:(e,t,n)=>{"use strict";var r=n(29697),o=n(9329),i=n(79105),a=n(1504);e.exports=n(6125)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},99954:(e,t,n)=>{var r=n(98310);r(r.S+r.F,"Object",{assign:n(77995)})},30785:(e,t,n)=>{var r=n(98310);r(r.S,"Object",{create:n(82488)})},23078:(e,t,n)=>{var r=n(98310);r(r.S+r.F*!n(75179),"Object",{defineProperties:n(36607)})},40168:(e,t,n)=>{var r=n(98310);r(r.S+r.F*!n(75179),"Object",{defineProperty:n(60510).f})},18576:(e,t,n)=>{var r=n(1504),o=n(83264).f;n(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(e,t){return o(r(e),t)}}))},4840:(e,t,n)=>{var r=n(60061),o=n(999);n(57972)("getPrototypeOf",(function(){return function getPrototypeOf(e){return o(r(e))}}))},5453:(e,t,n)=>{var r=n(60061),o=n(86425);n(57972)("keys",(function(){return function keys(e){return o(r(e))}}))},13890:(e,t,n)=>{var r=n(98310);r(r.S,"Object",{setPrototypeOf:n(25574).set})},70285:()=>{},24399:(e,t,n)=>{var r=n(98310),o=n(60162);r(r.G+r.F*(parseInt!=o),{parseInt:o})},86082:(e,t,n)=>{"use strict";var r,o,i,a,u=n(36794),s=n(43280),l=n(61725),c=n(8312),f=n(98310),p=n(39632),d=n(26610),v=n(54677),m=n(25985),h=n(73732),y=n(6022).set,g=n(4326)(),_=n(88579),b=n(52745),x=n(35701),C=n(88747),S="Promise",E=s.TypeError,T=s.process,w=T&&T.versions,P=w&&w.v8||"",O=s.Promise,I="process"==c(T),empty=function(){},R=o=_.f,M=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[n(24300)("species")]=function(e){e(empty,empty)};return(I||"function"==typeof PromiseRejectionEvent)&&e.then(empty)instanceof t&&0!==P.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(e){}}(),isThenable=function(e){var t;return!(!p(e)||"function"!=typeof(t=e.then))&&t},notify=function(e,t){if(!e._n){e._n=!0;var n=e._c;g((function(){for(var r=e._v,o=1==e._s,i=0,run=function(t){var n,i,a,u=o?t.ok:t.fail,s=t.resolve,l=t.reject,c=t.domain;try{u?(o||(2==e._h&&onHandleUnhandled(e),e._h=1),!0===u?n=r:(c&&c.enter(),n=u(r),c&&(c.exit(),a=!0)),n===t.promise?l(E("Promise-chain cycle")):(i=isThenable(n))?i.call(n,s,l):s(n)):l(r)}catch(e){c&&!a&&c.exit(),l(e)}};n.length>i;)run(n[i++]);e._c=[],e._n=!1,t&&!e._h&&onUnhandled(e)}))}},onUnhandled=function(e){y.call(s,(function(){var t,n,r,o=e._v,i=isUnhandled(e);if(i&&(t=b((function(){I?T.emit("unhandledRejection",o,e):(n=s.onunhandledrejection)?n({promise:e,reason:o}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",o)})),e._h=I||isUnhandled(e)?2:1),e._a=void 0,i&&t.e)throw t.v}))},isUnhandled=function(e){return 1!==e._h&&0===(e._a||e._c).length},onHandleUnhandled=function(e){y.call(s,(function(){var t;I?T.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})}))},$reject=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),notify(t,!0))},$resolve=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E("Promise can't be resolved itself");(t=isThenable(e))?g((function(){var r={_w:n,_d:!1};try{t.call(e,l($resolve,r,1),l($reject,r,1))}catch(e){$reject.call(r,e)}})):(n._v=e,n._s=1,notify(n,!1))}catch(e){$reject.call({_w:n,_d:!1},e)}}};M||(O=function Promise(e){v(this,O,S,"_h"),d(e),r.call(this);try{e(l($resolve,this,1),l($reject,this,1))}catch(e){$reject.call(this,e)}},(r=function Promise(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(13199)(O.prototype,{then:function then(e,t){var n=R(h(this,O));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=I?T.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&notify(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=l($resolve,e,1),this.reject=l($reject,e,1)},_.f=R=function(e){return e===O||e===a?new i(e):o(e)}),f(f.G+f.W+f.F*!M,{Promise:O}),n(2413)(O,S),n(5698)(S),a=n(47208).Promise,f(f.S+f.F*!M,S,{reject:function reject(e){var t=R(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(u||!M),S,{resolve:function resolve(e){return C(u&&this===a?O:this,e)}}),f(f.S+f.F*!(M&&n(26797)((function(e){O.all(e).catch(empty)}))),S,{all:function all(e){var t=this,n=R(t),r=n.resolve,o=n.reject,i=b((function(){var n=[],i=0,a=1;m(e,!1,(function(e){var u=i++,s=!1;n.push(void 0),a++,t.resolve(e).then((function(e){s||(s=!0,n[u]=e,--a||r(n))}),o)})),--a||r(n)}));return i.e&&o(i.v),n.promise},race:function race(e){var t=this,n=R(t),r=n.reject,o=b((function(){m(e,!1,(function(e){t.resolve(e).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},11320:(e,t,n)=>{var r=n(98310),o=n(82488),i=n(26610),a=n(30498),u=n(39632),s=n(90472),l=n(45515),c=(n(43280).Reflect||{}).construct,f=s((function(){function F(){}return!(c((function(){}),[],F)instanceof F)})),p=!s((function(){c((function(){}))}));r(r.S+r.F*(f||p),"Reflect",{construct:function construct(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!f)return c(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(l.apply(e,r))}var s=n.prototype,d=o(u(s)?s:Object.prototype),v=Function.apply.call(e,d,t);return u(v)?v:d}})},99572:(e,t,n)=>{"use strict";var r=n(78502)(!0);n(6125)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},54370:(e,t,n)=>{"use strict";var r=n(43280),o=n(20657),i=n(75179),a=n(98310),u=n(19312),s=n(6758).KEY,l=n(90472),c=n(29990),f=n(2413),p=n(54251),d=n(24300),v=n(7273),m=n(31164),h=n(42266),y=n(7359),g=n(30498),_=n(39632),b=n(60061),x=n(1504),C=n(12737),S=n(48439),E=n(82488),T=n(26084),w=n(83264),P=n(97739),O=n(60510),I=n(86425),R=w.f,M=O.f,A=T.f,j=r.Symbol,N=r.JSON,D=N&&N.stringify,B=d("_hidden"),L=d("toPrimitive"),U={}.propertyIsEnumerable,q=c("symbol-registry"),W=c("symbols"),H=c("op-symbols"),G=Object.prototype,$="function"==typeof j&&!!P.f,z=r.QObject,V=!z||!z.prototype||!z.prototype.findChild,K=i&&l((function(){return 7!=E(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=R(G,t);r&&delete G[t],M(e,t,n),r&&e!==G&&M(G,t,r)}:M,wrap=function(e){var t=W[e]=E(j.prototype);return t._k=e,t},J=$&&"symbol"==typeof j.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof j},Y=function defineProperty(e,t,n){return e===G&&Y(H,t,n),g(e),t=C(t,!0),g(n),o(W,t)?(n.enumerable?(o(e,B)&&e[B][t]&&(e[B][t]=!1),n=E(n,{enumerable:S(0,!1)})):(o(e,B)||M(e,B,S(1,{})),e[B][t]=!0),K(e,t,n)):M(e,t,n)},Q=function defineProperties(e,t){g(e);for(var n,r=h(t=x(t)),o=0,i=r.length;i>o;)Y(e,n=r[o++],t[n]);return e},X=function propertyIsEnumerable(e){var t=U.call(this,e=C(e,!0));return!(this===G&&o(W,e)&&!o(H,e))&&(!(t||!o(this,e)||!o(W,e)||o(this,B)&&this[B][e])||t)},Z=function getOwnPropertyDescriptor(e,t){if(e=x(e),t=C(t,!0),e!==G||!o(W,t)||o(H,t)){var n=R(e,t);return!n||!o(W,t)||o(e,B)&&e[B][t]||(n.enumerable=!0),n}},ee=function getOwnPropertyNames(e){for(var t,n=A(x(e)),r=[],i=0;n.length>i;)o(W,t=n[i++])||t==B||t==s||r.push(t);return r},te=function getOwnPropertySymbols(e){for(var t,n=e===G,r=A(n?H:x(e)),i=[],a=0;r.length>a;)!o(W,t=r[a++])||n&&!o(G,t)||i.push(W[t]);return i};$||(u((j=function Symbol(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),$set=function(t){this===G&&$set.call(H,t),o(this,B)&&o(this[B],e)&&(this[B][e]=!1),K(this,e,S(1,t))};return i&&V&&K(G,e,{configurable:!0,set:$set}),wrap(e)}).prototype,"toString",(function toString(){return this._k})),w.f=Z,O.f=Y,n(8772).f=T.f=ee,n(67410).f=X,P.f=te,i&&!n(36794)&&u(G,"propertyIsEnumerable",X,!0),v.f=function(e){return wrap(d(e))}),a(a.G+a.W+a.F*!$,{Symbol:j});for(var ne="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;ne.length>re;)d(ne[re++]);for(var oe=I(d.store),ie=0;oe.length>ie;)m(oe[ie++]);a(a.S+a.F*!$,"Symbol",{for:function(e){return o(q,e+="")?q[e]:q[e]=j(e)},keyFor:function keyFor(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in q)if(q[t]===e)return t},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!$,"Object",{create:function create(e,t){return void 0===t?E(e):Q(E(e),t)},defineProperty:Y,defineProperties:Q,getOwnPropertyDescriptor:Z,getOwnPropertyNames:ee,getOwnPropertySymbols:te});var ae=l((function(){P.f(1)}));a(a.S+a.F*ae,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(e){return P.f(b(e))}}),N&&a(a.S+a.F*(!$||l((function(){var e=j();return"[null]"!=D([e])||"{}"!=D({a:e})||"{}"!=D(Object(e))}))),"JSON",{stringify:function stringify(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(_(t)||void 0!==e)&&!J(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,D.apply(N,r)}}),j.prototype[L]||n(62292)(j.prototype,L,j.prototype.valueOf),f(j,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},23337:(e,t,n)=>{"use strict";var r,o=n(43280),i=n(97647)(0),a=n(19312),u=n(6758),s=n(77995),l=n(92600),c=n(39632),f=n(41081),p=n(41081),d=!o.ActiveXObject&&"ActiveXObject"in o,v="WeakMap",m=u.getWeak,h=Object.isExtensible,y=l.ufstore,wrapper=function(e){return function WeakMap(){return e(this,arguments.length>0?arguments[0]:void 0)}},g={get:function get(e){if(c(e)){var t=m(e);return!0===t?y(f(this,v)).get(e):t?t[this._i]:void 0}},set:function set(e,t){return l.def(f(this,v),e,t)}},_=e.exports=n(70770)(v,wrapper,g,l,!0,!0);p&&d&&(s((r=l.getConstructor(wrapper,v)).prototype,g),u.NEED=!0,i(["delete","has","get","set"],(function(e){var t=_.prototype,n=t[e];a(t,e,(function(t,o){if(c(t)&&!h(t)){this._f||(this._f=new r);var i=this._f[e](t,o);return"set"==e?this:i}return n.call(this,t,o)}))})))},67685:(e,t,n)=>{var r=n(98310),o=n(64344),i=n(1504),a=n(83264),u=n(87352);r(r.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(e){for(var t,n,r=i(e),s=a.f,l=o(r),c={},f=0;l.length>f;)void 0!==(n=s(r,t=l[f++]))&&u(c,t,n);return c}})},57188:(e,t,n)=>{var r=n(98310),o=n(9480)(!1);r(r.S,"Object",{values:function values(e){return o(e)}})},81522:(e,t,n)=>{"use strict";var r=n(98310),o=n(47208),i=n(43280),a=n(73732),u=n(88747);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}})},25757:(e,t,n)=>{"use strict";var r=n(98310),o=n(88579),i=n(52745);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},87573:(e,t,n)=>{n(31164)("asyncIterator")},97224:(e,t,n)=>{n(31164)("observable")},92797:(e,t,n)=>{n(14689)("WeakMap")},10143:(e,t,n)=>{n(7883)("WeakMap")},74114:(e,t,n)=>{n(84411);for(var r=n(43280),o=n(62292),i=n(79105),a=n(24300)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<u.length;s++){var l=u[s],c=r[l],f=c&&c.prototype;f&&!f[a]&&o(f,a,l),i[l]=i.Array}},22761:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},42094:(e,t,n)=>{var r=n(62190)("unscopables"),o=Array.prototype;null==o[r]&&n(74216)(o,r,{}),e.exports=function(e){o[r][e]=!0}},88492:(e,t,n)=>{"use strict";var r=n(12070)(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},6365:(e,t,n)=>{var r=n(67334);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},59021:(e,t,n)=>{var r=n(15703),o=n(26078),i=n(78615);e.exports=function(e){return function(t,n,a){var u,s=r(t),l=o(s.length),c=i(a,l);if(e&&n!=n){for(;l>c;)if((u=s[c++])!=u)return!0}else for(;l>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}}},78309:(e,t,n)=>{var r=n(11528),o=n(8467),i=n(26033),a=n(26078),u=n(63531);e.exports=function(e,t){var n=1==e,s=2==e,l=3==e,c=4==e,f=6==e,p=5==e||f,d=t||u;return function(t,u,v){for(var m,h,y=i(t),g=o(y),_=r(u,v,3),b=a(g.length),x=0,C=n?d(t,b):s?d(t,0):void 0;b>x;x++)if((p||x in g)&&(h=_(m=g[x],x,y),e))if(n)C[x]=h;else if(h)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:C.push(m)}else if(c)return!1;return f?-1:l||c?c:C}}},81071:(e,t,n)=>{var r=n(67334),o=n(99141),i=n(62190)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},63531:(e,t,n)=>{var r=n(81071);e.exports=function(e,t){return new(r(e))(t)}},20106:(e,t,n)=>{var r=n(26688),o=n(62190)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},26688:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},60066:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},11528:(e,t,n)=>{var r=n(22761);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},61622:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},36628:(e,t,n)=>{e.exports=!n(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(e,t,n)=>{var r=n(67334),o=n(38113).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},65772:(e,t,n)=>{var r=n(38113),o=n(60066),i=n(74216),a=n(17738),u=n(11528),$export=function(e,t,n){var s,l,c,f,p=e&$export.F,d=e&$export.G,v=e&$export.S,m=e&$export.P,h=e&$export.B,y=d?r:v?r[t]||(r[t]={}):(r[t]||{}).prototype,g=d?o:o[t]||(o[t]={}),_=g.prototype||(g.prototype={});for(s in d&&(n=t),n)c=((l=!p&&y&&void 0!==y[s])?y:n)[s],f=h&&l?u(c,r):m&&"function"==typeof c?u(Function.call,c):c,y&&a(y,s,c,e&$export.U),g[s]!=c&&i(g,s,f),m&&_[s]!=c&&(_[s]=c)};r.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,e.exports=$export},86570:(e,t,n)=>{var r=n(62190)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},48625:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},48897:(e,t,n)=>{"use strict";n(25846);var r=n(17738),o=n(74216),i=n(48625),a=n(61622),u=n(62190),s=n(43288),l=u("species"),c=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),f=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var p=u(e),d=!i((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),v=d?!i((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[l]=function(){return n}),n[p](""),!t})):void 0;if(!d||!v||"replace"===e&&!c||"split"===e&&!f){var m=/./[p],h=n(a,p,""[e],(function maybeCallNative(e,t,n,r,o){return t.exec===s?d&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),y=h[0],g=h[1];r(String.prototype,e,y),o(RegExp.prototype,p,2==t?function(e,t){return g.call(e,this,t)}:function(e){return g.call(e,this)})}}},74859:(e,t,n)=>{"use strict";var r=n(6365);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},20646:(e,t,n)=>{e.exports=n(8655)("native-function-to-string",Function.toString)},38113:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},54040:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},74216:(e,t,n)=>{var r=n(98558),o=n(36061);e.exports=n(36628)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},5100:(e,t,n)=>{e.exports=!n(36628)&&!n(48625)((function(){return 7!=Object.defineProperty(n(5050)("div"),"a",{get:function(){return 7}}).a}))},8467:(e,t,n)=>{var r=n(26688);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},99141:(e,t,n)=>{var r=n(26688);e.exports=Array.isArray||function isArray(e){return"Array"==r(e)}},67334:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},94587:(e,t,n)=>{var r=n(67334),o=n(26688),i=n(62190)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},81422:e=>{e.exports=!1},98558:(e,t,n)=>{var r=n(6365),o=n(5100),i=n(31382),a=Object.defineProperty;t.f=n(36628)?Object.defineProperty:function defineProperty(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},36061:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},17738:(e,t,n)=>{var r=n(38113),o=n(74216),i=n(54040),a=n(25078)("src"),u=n(20646),s="toString",l=(""+u).split(s);n(60066).inspectSource=function(e){return u.call(e)},(e.exports=function(e,t,n,u){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(s&&(i(n,a)||o(n,a,e[t]?""+e[t]:l.join(String(t)))),e===r?e[t]=n:u?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,s,(function toString(){return"function"==typeof this&&this[a]||u.call(this)}))},62404:(e,t,n)=>{"use strict";var r=n(20106),o=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},43288:(e,t,n)=>{"use strict";var r,o,i=n(74859),a=RegExp.prototype.exec,u=String.prototype.replace,s=a,l=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),c=void 0!==/()??/.exec("")[1];(l||c)&&(s=function exec(e){var t,n,r,o,s=this;return c&&(n=new RegExp("^"+s.source+"$(?!\\s)",i.call(s))),l&&(t=s.lastIndex),r=a.call(s,e),l&&r&&(s.lastIndex=s.global?r.index+r[0].length:t),c&&r&&r.length>1&&u.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),e.exports=s},8655:(e,t,n)=>{var r=n(60066),o=n(38113),i="__core-js_shared__",a=o[i]||(o[i]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},10225:(e,t,n)=>{"use strict";var r=n(48625);e.exports=function(e,t){return!!e&&r((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},12070:(e,t,n)=>{var r=n(3338),o=n(61622);e.exports=function(e){return function(t,n){var i,a,u=String(o(t)),s=r(n),l=u.length;return s<0||s>=l?e?"":void 0:(i=u.charCodeAt(s))<55296||i>56319||s+1===l||(a=u.charCodeAt(s+1))<56320||a>57343?e?u.charAt(s):i:e?u.slice(s,s+2):a-56320+(i-55296<<10)+65536}}},465:(e,t,n)=>{var r=n(94587),o=n(61622);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(e))}},65776:(e,t,n)=>{var r=n(65772),o=n(48625),i=n(61622),a=/"/g,createHTML=function(e,t,n,r){var o=String(i(e)),u="<"+t;return""!==n&&(u+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),u+">"+o+"</"+t+">"};e.exports=function(e,t){var n={};n[e]=t(createHTML),r(r.P+r.F*o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3})),"String",n)}},78615:(e,t,n)=>{var r=n(3338),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},3338:e=>{var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},15703:(e,t,n)=>{var r=n(8467),o=n(61622);e.exports=function(e){return r(o(e))}},26078:(e,t,n)=>{var r=n(3338),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},26033:(e,t,n)=>{var r=n(61622);e.exports=function(e){return Object(r(e))}},31382:(e,t,n)=>{var r=n(67334);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},25078:e=>{var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},62190:(e,t,n)=>{var r=n(8655)("wks"),o=n(25078),i=n(38113).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},64434:(e,t,n)=>{"use strict";var r=n(65772),o=n(78309)(2);r(r.P+r.F*!n(10225)([].filter,!0),"Array",{filter:function filter(e){return o(this,e,arguments[1])}})},71954:(e,t,n)=>{"use strict";var r=n(65772),o=n(78309)(5),i="find",a=!0;i in[]&&Array(1).find((function(){a=!1})),r(r.P+r.F*a,"Array",{find:function find(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(42094)(i)},90286:(e,t,n)=>{"use strict";var r=n(65772),o=n(78309)(1);r(r.P+r.F*!n(10225)([].map,!0),"Array",{map:function map(e){return o(this,e,arguments[1])}})},99745:(e,t,n)=>{var r=n(98558).f,o=Function.prototype,i=/^\s*function ([^ (]*)/,a="name";a in o||n(36628)&&r(o,a,{configurable:!0,get:function(){try{return(""+this).match(i)[1]}catch(e){return""}}})},76139:(e,t,n)=>{"use strict";var r=n(20106),o={};o[n(62190)("toStringTag")]="z",o+""!="[object z]"&&n(17738)(Object.prototype,"toString",(function toString(){return"[object "+r(this)+"]"}),!0)},25846:(e,t,n)=>{"use strict";var r=n(43288);n(65772)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},40751:(e,t,n)=>{n(36628)&&"g"!=/./g.flags&&n(98558).f(RegExp.prototype,"flags",{configurable:!0,get:n(74859)})},84208:(e,t,n)=>{"use strict";var r=n(6365),o=n(26033),i=n(26078),a=n(3338),u=n(88492),s=n(62404),l=Math.max,c=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(48897)("replace",2,(function(e,t,n,v){return[function replace(r,o){var i=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(e,t){var o=v(n,e,this,t);if(o.done)return o.value;var f=r(e),p=String(this),d="function"==typeof t;d||(t=String(t));var m=f.global;if(m){var h=f.unicode;f.lastIndex=0}for(var y=[];;){var g=s(f,p);if(null===g)break;if(y.push(g),!m)break;""===String(g[0])&&(f.lastIndex=u(p,i(f.lastIndex),h))}for(var _,b="",x=0,C=0;C<y.length;C++){g=y[C];for(var S=String(g[0]),E=l(c(a(g.index),p.length),0),T=[],w=1;w<g.length;w++)T.push(void 0===(_=g[w])?_:String(_));var P=g.groups;if(d){var O=[S].concat(T,E,p);void 0!==P&&O.push(P);var I=String(t.apply(void 0,O))}else I=getSubstitution(S,p,E,T,P,t);E>=x&&(b+=p.slice(x,E)+I,x=E+S.length)}return b+p.slice(x)}];function getSubstitution(e,t,r,i,a,u){var s=r+e.length,l=i.length,c=d;return void 0!==a&&(a=o(a),c=p),n.call(u,c,(function(n,o){var u;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(s);case"<":u=a[o.slice(1,-1)];break;default:var c=+o;if(0===c)return n;if(c>l){var p=f(c/10);return 0===p?n:p<=l?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}u=i[c-1]}return void 0===u?"":u}))}}))},44321:(e,t,n)=>{"use strict";n(40751);var r=n(6365),o=n(74859),i=n(36628),a="toString",u=/./.toString,define=function(e){n(17738)(RegExp.prototype,a,e,!0)};n(48625)((function(){return"/a/b"!=u.call({source:"a",flags:"b"})}))?define((function toString(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!i&&e instanceof RegExp?o.call(e):void 0)})):u.name!=a&&define((function toString(){return u.call(this)}))},3777:(e,t,n)=>{"use strict";var r=n(65772),o=n(465),i="includes";r(r.P+r.F*n(86570)(i),"String",{includes:function includes(e){return!!~o(this,e,i).indexOf(e,arguments.length>1?arguments[1]:void 0)}})},10195:(e,t,n)=>{"use strict";n(65776)("sub",(function(e){return function sub(){return e(this,"sub","","")}}))},38081:(e,t,n)=>{"use strict";var r=n(65772),o=n(59021)(!0);r(r.P,"Array",{includes:function includes(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(42094)("includes")},24457:(e,t,n)=>{"use strict";t.__esModule=!0;var r=n(63804),o=(_interopRequireDefault(r),_interopRequireDefault(n(23615))),i=_interopRequireDefault(n(51230));_interopRequireDefault(n(91895));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=1073741823;function createEventEmitter(e){var t=[];return{on:function on(e){t.push(e)},off:function off(e){t=t.filter((function(t){return t!==e}))},get:function get(){return e},set:function set(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}t.default=function createReactContext(e,t){var n,u,s="__create-react-context-"+(0,i.default)()+"__",l=function(e){function Provider(){var t,n;_classCallCheck(this,Provider);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return t=n=_possibleConstructorReturn(this,e.call.apply(e,[this].concat(o))),n.emitter=createEventEmitter(n.props.value),_possibleConstructorReturn(n,t)}return _inherits(Provider,e),Provider.prototype.getChildContext=function getChildContext(){var e;return(e={})[s]=this.emitter,e},Provider.prototype.componentWillReceiveProps=function componentWillReceiveProps(e){if(this.props.value!==e.value){var n=this.props.value,r=e.value,o=void 0;!function objectIs(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(n,r)?(o="function"==typeof t?t(n,r):a,0!==(o|=0)&&this.emitter.set(e.value,o)):o=0}},Provider.prototype.render=function render(){return this.props.children},Provider}(r.Component);l.childContextTypes=((n={})[s]=o.default.object.isRequired,n);var c=function(t){function Consumer(){var e,n;_classCallCheck(this,Consumer);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return e=n=_possibleConstructorReturn(this,t.call.apply(t,[this].concat(o))),n.state={value:n.getValue()},n.onUpdate=function(e,t){0!=((0|n.observedBits)&t)&&n.setState({value:n.getValue()})},_possibleConstructorReturn(n,e)}return _inherits(Consumer,t),Consumer.prototype.componentWillReceiveProps=function componentWillReceiveProps(e){var t=e.observedBits;this.observedBits=null==t?a:t},Consumer.prototype.componentDidMount=function componentDidMount(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?a:e},Consumer.prototype.componentWillUnmount=function componentWillUnmount(){this.context[s]&&this.context[s].off(this.onUpdate)},Consumer.prototype.getValue=function getValue(){return this.context[s]?this.context[s].get():e},Consumer.prototype.render=function render(){return function onlyChild(e){return Array.isArray(e)?e[0]:e}(this.props.children)(this.state.value)},Consumer}(r.Component);return c.contextTypes=((u={})[s]=o.default.object,u),{Provider:l,Consumer:c}},e.exports=t.default},68189:(e,t,n)=>{"use strict";t.__esModule=!0;var r=_interopRequireDefault(n(63804)),o=_interopRequireDefault(n(24457));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}t.default=r.default.createContext||o.default,e.exports=t.default},51230:(e,t,n)=>{"use strict";var r="__global_unique_id__";e.exports=function(){return n.g[r]=(n.g[r]||0)+1}},3996:e=>{"use strict";e.exports=function(e,t,n,r,o,i,a,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,u],c=0;(s=new Error(t.replace(/%s/g,(function(){return l[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},58772:(e,t,n)=>{"use strict";var r=n(90331);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,e.exports=function(){function shim(e,t,n,o,i,a){if(a!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function getShim(){return shim}shim.isRequired=shim;var e={array:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return e.PropTypes=e,e}},23615:(e,t,n)=>{e.exports=n(58772)()},90331:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},91895:e=>{"use strict";var warning=function(){};e.exports=warning},63804:e=>{"use strict";e.exports=React},78675:e=>{"use strict";e.exports=elementorAppPackages.appUi},20485:e=>{"use strict";e.exports=elementorAppPackages.router},34381:e=>{"use strict";e.exports=elementorAppPackages.siteEditor},18194:e=>{"use strict";e.exports=wp.i18n}},t={};function __webpack_require__(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,__webpack_require__),o.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";new(__webpack_require__(67971)(__webpack_require__(71143)).default)})()})();PK!"qZ�e
e
6assets/js/countdown.71f117e09cc4a2aa3dba.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[804],{7097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=elementorModules.frontend.handlers.Base.extend({cache:null,cacheElements(){const e=this.$element.find(".elementor-countdown-wrapper");this.cache={$countDown:e,timeInterval:null,elements:{$countdown:e.find(".elementor-countdown-wrapper"),$daysSpan:e.find(".elementor-countdown-days"),$hoursSpan:e.find(".elementor-countdown-hours"),$minutesSpan:e.find(".elementor-countdown-minutes"),$secondsSpan:e.find(".elementor-countdown-seconds"),$expireMessage:e.parent().find(".elementor-countdown-expire--message")},data:{id:this.$element.data("id"),endTime:new Date(1e3*e.data("date")),actions:e.data("expire-actions"),evergreenInterval:e.data("evergreen-interval")}}},onInit(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.cacheElements(),0<this.cache.data.evergreenInterval&&(this.cache.data.endTime=this.getEvergreenDate()),this.initializeClock()},updateClock(){const e=this,t=this.getTimeRemaining(this.cache.data.endTime);jQuery.each(t.parts,(function(t){const n=e.cache.elements["$"+t+"Span"];let a=this.toString();1===a.length&&(a=0+a),n.length&&n.text(a)})),t.total<=0&&(clearInterval(this.cache.timeInterval),this.runActions())},initializeClock(){const e=this;this.updateClock(),this.cache.timeInterval=setInterval((function(){e.updateClock()}),1e3)},runActions(){const e=this;e.$element.trigger("countdown_expire",e.$element),this.cache.data.actions&&this.cache.data.actions.forEach((function(t){switch(t.type){case"hide":e.cache.$countDown.hide();break;case"redirect":t.redirect_url&&(window.location.href=t.redirect_url);break;case"message":e.cache.elements.$expireMessage.show()}}))},getTimeRemaining(e){const t=e-new Date;let n=Math.floor(t/1e3%60),a=Math.floor(t/1e3/60%60),r=Math.floor(t/36e5%24),o=Math.floor(t/864e5);return(o<0||r<0||a<0)&&(n=a=r=o=0),{total:t,parts:{days:o,hours:r,minutes:a,seconds:n}}},getEvergreenDate(){const e=this,t=this.cache.data.id,n=this.cache.data.evergreenInterval,a=t+"-evergreen_due_date",r=t+"-evergreen_interval",o={dueDate:localStorage.getItem(a),interval:localStorage.getItem(r)},initEvergreen=function(){var t=new Date;return e.cache.data.endTime=t.setSeconds(t.getSeconds()+n),localStorage.setItem(a,e.cache.data.endTime),localStorage.setItem(r,n),e.cache.data.endTime};return null===o.dueDate&&null===o.interval||null!==o.dueDate&&n!==parseInt(o.interval,10)?initEvergreen():o.dueDate>0&&parseInt(o.interval,10)===n?o.dueDate:void 0}});t.default=n}}]);PK!M�U����assets/js/screenshot.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(()=>{var t={75453:(t,e,r)=>{t.exports=r(7421)},59396:(t,e,r)=>{t.exports=r(70157)},38401:(t,e,r)=>{t.exports=r(14710)},92937:(t,e,r)=>{t.exports=r(23022)},67394:(t,e,r)=>{t.exports=r(43153)},23587:(t,e,r)=>{t.exports=r(32622)},63774:(t,e,r)=>{t.exports=r(27410)},95315:(t,e,r)=>{t.exports=r(19035)},82055:(t,e,r)=>{t.exports=r(58535)},83452:(t,e,r)=>{t.exports=r(97220)},28274:(t,e,r)=>{t.exports=r(65135)},73220:(t,e,r)=>{t.exports=r(76483)},75499:(t,e,r)=>{t.exports=r(43094)},78282:(t,e,r)=>{t.exports=r(17641)},41281:(t,e,r)=>{t.exports=r(19103)},50093:(t,e,r)=>{t.exports=r(39871)},72292:t=>{t.exports=function _arrayLikeToArray(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n},t.exports.default=t.exports,t.exports.__esModule=!0},35693:(t,e,r)=>{var n=r(59396),o=r(72292);t.exports=function _arrayWithoutHoles(t){if(n(t))return o(t)},t.exports.default=t.exports,t.exports.__esModule=!0},38852:t=>{t.exports=function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},t.exports.default=t.exports,t.exports.__esModule=!0},11959:t=>{t.exports=function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},t.exports.default=t.exports,t.exports.__esModule=!0},39041:(t,e,r)=>{var n=r(67394);function _defineProperties(t,e){for(var r=0;r<e.length;r++){var o=e[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),n(t,o.key,o)}}t.exports=function _createClass(t,e,r){return e&&_defineProperties(t.prototype,e),r&&_defineProperties(t,r),t},t.exports.default=t.exports,t.exports.__esModule=!0},68537:(t,e,r)=>{var n=r(75499),o=r(44263),i=r(898),s=r(59771);t.exports=function _createSuper(t){var e=i();return function _createSuperInternal(){var r,i=o(t);if(e){var u=o(this).constructor;r=n(i,arguments,u)}else r=i.apply(this,arguments);return s(this,r)}},t.exports.default=t.exports,t.exports.__esModule=!0},18042:(t,e,r)=>{var n=r(67394);t.exports=function _defineProperty(t,e,r){return e in t?n(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t},t.exports.default=t.exports,t.exports.__esModule=!0},76700:(t,e,r)=>{var n=r(78282),o=r(23587),i=r(49445);function _get(e,r,s){return"undefined"!=typeof Reflect&&n?(t.exports=_get=n,t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=_get=function _get(t,e,r){var n=i(t,e);if(n){var s=o(n,e);return s.get?s.get.call(r):s.value}},t.exports.default=t.exports,t.exports.__esModule=!0),_get(e,r,s||e)}t.exports=_get,t.exports.default=t.exports,t.exports.__esModule=!0},44263:(t,e,r)=>{var n=r(28274),o=r(82055);function _getPrototypeOf(e){return t.exports=_getPrototypeOf=n?o:function _getPrototypeOf(t){return t.__proto__||o(t)},t.exports.default=t.exports,t.exports.__esModule=!0,_getPrototypeOf(e)}t.exports=_getPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},77371:(t,e,r)=>{var n=r(38401),o=r(76870);t.exports=function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=n(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)},t.exports.default=t.exports,t.exports.__esModule=!0},67971:t=>{t.exports=function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}},t.exports.default=t.exports,t.exports.__esModule=!0},898:(t,e,r)=>{var n=r(75499);t.exports=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!n)return!1;if(n.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(n(Boolean,[],(function(){}))),!0}catch(t){return!1}},t.exports.default=t.exports,t.exports.__esModule=!0},95915:(t,e,r)=>{var n=r(41281),o=r(50093),i=r(75453);t.exports=function _iterableToArray(t){if(void 0!==n&&null!=t[o]||null!=t["@@iterator"])return i(t)},t.exports.default=t.exports,t.exports.__esModule=!0},84360:t=>{t.exports=function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},t.exports.default=t.exports,t.exports.__esModule=!0},84899:(t,e,r)=>{var n=r(83452),o=r(95315),i=r(23587),s=r(63774),u=r(92937),a=r(67394),c=r(18042);function ownKeys(t,e){var r=n(t);if(o){var s=o(t);e&&(s=s.filter((function(e){return i(t,e).enumerable}))),r.push.apply(r,s)}return r}t.exports=function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach((function(e){c(t,e,r[e])})):s?u(t,s(r)):ownKeys(Object(r)).forEach((function(e){a(t,e,i(r,e))}))}return t},t.exports.default=t.exports,t.exports.__esModule=!0},59771:(t,e,r)=>{var n=r(24596).default,o=r(38852);t.exports=function _possibleConstructorReturn(t,e){return!e||"object"!==n(e)&&"function"!=typeof e?o(t):e},t.exports.default=t.exports,t.exports.__esModule=!0},76870:(t,e,r)=>{var n=r(28274);function _setPrototypeOf(e,r){return t.exports=_setPrototypeOf=n||function _setPrototypeOf(t,e){return t.__proto__=e,t},t.exports.default=t.exports,t.exports.__esModule=!0,_setPrototypeOf(e,r)}t.exports=_setPrototypeOf,t.exports.default=t.exports,t.exports.__esModule=!0},49445:(t,e,r)=>{var n=r(44263);t.exports=function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=n(t)););return t},t.exports.default=t.exports,t.exports.__esModule=!0},74846:(t,e,r)=>{var n=r(35693),o=r(95915),i=r(24594),s=r(84360);t.exports=function _toConsumableArray(t){return n(t)||o(t)||i(t)||s()},t.exports.default=t.exports,t.exports.__esModule=!0},24596:(t,e,r)=>{var n=r(41281),o=r(50093);function _typeof(e){return"function"==typeof n&&"symbol"==typeof o?(t.exports=_typeof=function _typeof(t){return typeof t},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=_typeof=function _typeof(t){return t&&"function"==typeof n&&t.constructor===n&&t!==n.prototype?"symbol":typeof t},t.exports.default=t.exports,t.exports.__esModule=!0),_typeof(e)}t.exports=_typeof,t.exports.default=t.exports,t.exports.__esModule=!0},24594:(t,e,r)=>{var n=r(75453),o=r(72292);t.exports=function _unsupportedIterableToArray(t,e){if(t){if("string"==typeof t)return o(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?n(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},7421:(t,e,r)=>{r(99572),r(37627),t.exports=r(47208).Array.from},70157:(t,e,r)=>{r(42580),t.exports=r(47208).Array.isArray},14710:(t,e,r)=>{r(30785);var n=r(47208).Object;t.exports=function create(t,e){return n.create(t,e)}},23022:(t,e,r)=>{r(23078);var n=r(47208).Object;t.exports=function defineProperties(t,e){return n.defineProperties(t,e)}},43153:(t,e,r)=>{r(40168);var n=r(47208).Object;t.exports=function defineProperty(t,e,r){return n.defineProperty(t,e,r)}},32622:(t,e,r)=>{r(18576);var n=r(47208).Object;t.exports=function getOwnPropertyDescriptor(t,e){return n.getOwnPropertyDescriptor(t,e)}},27410:(t,e,r)=>{r(67685),t.exports=r(47208).Object.getOwnPropertyDescriptors},19035:(t,e,r)=>{r(54370),t.exports=r(47208).Object.getOwnPropertySymbols},58535:(t,e,r)=>{r(4840),t.exports=r(47208).Object.getPrototypeOf},97220:(t,e,r)=>{r(5453),t.exports=r(47208).Object.keys},65135:(t,e,r)=>{r(13890),t.exports=r(47208).Object.setPrototypeOf},76483:(t,e,r)=>{r(70285),r(99572),r(74114),r(86082),r(81522),r(25757),t.exports=r(47208).Promise},43094:(t,e,r)=>{r(11320),t.exports=r(47208).Reflect.construct},17641:(t,e,r)=>{r(36600),t.exports=r(47208).Reflect.get},19103:(t,e,r)=>{r(54370),r(70285),r(87573),r(97224),t.exports=r(47208).Symbol},39871:(t,e,r)=>{r(99572),r(74114),t.exports=r(7273).f("iterator")},26610:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},29697:t=>{t.exports=function(){}},54677:t=>{t.exports=function(t,e,r,n){if(!(t instanceof e)||void 0!==n&&n in t)throw TypeError(r+": incorrect invocation!");return t}},30498:(t,e,r)=>{var n=r(39632);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},69191:(t,e,r)=>{var n=r(1504),o=r(37154),i=r(46723);t.exports=function(t){return function(e,r,s){var u,a=n(e),c=o(a.length),f=i(s,c);if(t&&r!=r){for(;c>f;)if((u=a[f++])!=u)return!0}else for(;c>f;f++)if((t||f in a)&&a[f]===r)return t||f||0;return!t&&-1}}},45515:(t,e,r)=>{"use strict";var n=r(26610),o=r(39632),i=r(19897),s=[].slice,u={},construct=function(t,e,r){if(!(e in u)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";u[e]=Function("F,a","return new F("+n.join(",")+")")}return u[e](t,r)};t.exports=Function.bind||function bind(t){var e=n(this),r=s.call(arguments,1),bound=function(){var n=r.concat(s.call(arguments));return this instanceof bound?construct(e,n.length,n):i(e,n,t)};return o(e.prototype)&&(bound.prototype=e.prototype),bound}},8312:(t,e,r)=>{var n=r(41352),o=r(24300)("toStringTag"),i="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:i?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},41352:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},47208:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},87352:(t,e,r)=>{"use strict";var n=r(60510),o=r(48439);t.exports=function(t,e,r){e in t?n.f(t,e,o(0,r)):t[e]=r}},61725:(t,e,r)=>{var n=r(26610);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},18239:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},75179:(t,e,r)=>{t.exports=!r(90472)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},48765:(t,e,r)=>{var n=r(39632),o=r(43280).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},31986:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},42266:(t,e,r)=>{var n=r(86425),o=r(97739),i=r(67410);t.exports=function(t){var e=n(t),r=o.f;if(r)for(var s,u=r(t),a=i.f,c=0;u.length>c;)a.call(t,s=u[c++])&&e.push(s);return e}},98310:(t,e,r)=>{var n=r(43280),o=r(47208),i=r(61725),s=r(62292),u=r(20657),$export=function(t,e,r){var a,c,f,l=t&$export.F,p=t&$export.G,h=t&$export.S,v=t&$export.P,y=t&$export.B,d=t&$export.W,g=p?o:o[e]||(o[e]={}),_=g.prototype,m=p?n:h?n[e]:(n[e]||{}).prototype;for(a in p&&(r=e),r)(c=!l&&m&&void 0!==m[a])&&u(g,a)||(f=c?m[a]:r[a],g[a]=p&&"function"!=typeof m[a]?r[a]:y&&c?i(f,n):d&&m[a]==f?function(t){var F=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return F.prototype=t.prototype,F}(f):v&&"function"==typeof f?i(Function.call,f):f,v&&((g.virtual||(g.virtual={}))[a]=f,t&$export.R&&_&&!_[a]&&s(_,a,f)))};$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},90472:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},25985:(t,e,r)=>{var n=r(61725),o=r(93086),i=r(11827),s=r(30498),u=r(37154),a=r(26116),c={},f={},l=t.exports=function(t,e,r,l,p){var h,v,y,d,g=p?function(){return t}:a(t),_=n(r,l,e?2:1),m=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(i(g)){for(h=u(t.length);h>m;m++)if((d=e?_(s(v=t[m])[0],v[1]):_(t[m]))===c||d===f)return d}else for(y=g.call(t);!(v=y.next()).done;)if((d=o(y,_,v.value,e))===c||d===f)return d};l.BREAK=c,l.RETURN=f},43280:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},20657:t=>{var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},62292:(t,e,r)=>{var n=r(60510),o=r(48439);t.exports=r(75179)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},92477:(t,e,r)=>{var n=r(43280).document;t.exports=n&&n.documentElement},64457:(t,e,r)=>{t.exports=!r(75179)&&!r(90472)((function(){return 7!=Object.defineProperty(r(48765)("div"),"a",{get:function(){return 7}}).a}))},19897:t=>{t.exports=function(t,e,r){var n=void 0===r;switch(e.length){case 0:return n?t():t.call(r);case 1:return n?t(e[0]):t.call(r,e[0]);case 2:return n?t(e[0],e[1]):t.call(r,e[0],e[1]);case 3:return n?t(e[0],e[1],e[2]):t.call(r,e[0],e[1],e[2]);case 4:return n?t(e[0],e[1],e[2],e[3]):t.call(r,e[0],e[1],e[2],e[3])}return t.apply(r,e)}},13115:(t,e,r)=>{var n=r(41352);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},11827:(t,e,r)=>{var n=r(79105),o=r(24300)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||i[o]===t)}},7359:(t,e,r)=>{var n=r(41352);t.exports=Array.isArray||function isArray(t){return"Array"==n(t)}},39632:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},93086:(t,e,r)=>{var n=r(30498);t.exports=function(t,e,r,o){try{return o?e(n(r)[0],r[1]):e(r)}catch(e){var i=t.return;throw void 0!==i&&n(i.call(t)),e}}},19802:(t,e,r)=>{"use strict";var n=r(82488),o=r(48439),i=r(2413),s={};r(62292)(s,r(24300)("iterator"),(function(){return this})),t.exports=function(t,e,r){t.prototype=n(s,{next:o(1,r)}),i(t,e+" Iterator")}},6125:(t,e,r)=>{"use strict";var n=r(36794),o=r(98310),i=r(19312),s=r(62292),u=r(79105),a=r(19802),c=r(2413),f=r(999),l=r(24300)("iterator"),p=!([].keys&&"next"in[].keys()),h="keys",v="values",returnThis=function(){return this};t.exports=function(t,e,r,y,d,g,_){a(r,e,y);var m,x,b,getMethod=function(t){if(!p&&t in P)return P[t];switch(t){case h:return function keys(){return new r(this,t)};case v:return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}},S=e+" Iterator",w=d==v,O=!1,P=t.prototype,j=P[l]||P["@@iterator"]||d&&P[d],k=j||getMethod(d),A=d?w?getMethod("entries"):k:void 0,E="Array"==e&&P.entries||j;if(E&&(b=f(E.call(new t)))!==Object.prototype&&b.next&&(c(b,S,!0),n||"function"==typeof b[l]||s(b,l,returnThis)),w&&j&&j.name!==v&&(O=!0,k=function values(){return j.call(this)}),n&&!_||!p&&!O&&P[l]||s(P,l,k),u[e]=k,u[S]=returnThis,d)if(m={values:w?k:getMethod(v),keys:g?k:getMethod(h),entries:A},_)for(x in m)x in P||i(P,x,m[x]);else o(o.P+o.F*(p||O),e,m);return m}},26797:(t,e,r)=>{var n=r(24300)("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var r=!1;try{var i=[7],s=i[n]();s.next=function(){return{done:r=!0}},i[n]=function(){return s},t(i)}catch(t){}return r}},9329:t=>{t.exports=function(t,e){return{value:e,done:!!t}}},79105:t=>{t.exports={}},36794:t=>{t.exports=!0},6758:(t,e,r)=>{var n=r(54251)("meta"),o=r(39632),i=r(20657),s=r(60510).f,u=0,a=Object.isExtensible||function(){return!0},c=!r(90472)((function(){return a(Object.preventExtensions({}))})),setMeta=function(t){s(t,n,{value:{i:"O"+ ++u,w:{}}})},f=t.exports={KEY:n,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,n)){if(!a(t))return"F";if(!e)return"E";setMeta(t)}return t[n].i},getWeak:function(t,e){if(!i(t,n)){if(!a(t))return!0;if(!e)return!1;setMeta(t)}return t[n].w},onFreeze:function(t){return c&&f.NEED&&a(t)&&!i(t,n)&&setMeta(t),t}}},4326:(t,e,r)=>{var n=r(43280),o=r(6022).set,i=n.MutationObserver||n.WebKitMutationObserver,s=n.process,u=n.Promise,a="process"==r(41352)(s);t.exports=function(){var t,e,r,flush=function(){var n,o;for(a&&(n=s.domain)&&n.exit();t;){o=t.fn,t=t.next;try{o()}catch(n){throw t?r():e=void 0,n}}e=void 0,n&&n.enter()};if(a)r=function(){s.nextTick(flush)};else if(!i||n.navigator&&n.navigator.standalone)if(u&&u.resolve){var c=u.resolve(void 0);r=function(){c.then(flush)}}else r=function(){o.call(n,flush)};else{var f=!0,l=document.createTextNode("");new i(flush).observe(l,{characterData:!0}),r=function(){l.data=f=!f}}return function(n){var o={fn:n,next:void 0};e&&(e.next=o),t||(t=o,r()),e=o}}},88579:(t,e,r)=>{"use strict";var n=r(26610);function PromiseCapability(t){var e,r;this.promise=new t((function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n})),this.resolve=n(e),this.reject=n(r)}t.exports.f=function(t){return new PromiseCapability(t)}},82488:(t,e,r)=>{var n=r(30498),o=r(36607),i=r(31986),s=r(18478)("IE_PROTO"),Empty=function(){},createDict=function(){var t,e=r(48765)("iframe"),n=i.length;for(e.style.display="none",r(92477).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),createDict=t.F;n--;)delete createDict.prototype[i[n]];return createDict()};t.exports=Object.create||function create(t,e){var r;return null!==t?(Empty.prototype=n(t),r=new Empty,Empty.prototype=null,r[s]=t):r=createDict(),void 0===e?r:o(r,e)}},60510:(t,e,r)=>{var n=r(30498),o=r(64457),i=r(12737),s=Object.defineProperty;e.f=r(75179)?Object.defineProperty:function defineProperty(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return s(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},36607:(t,e,r)=>{var n=r(60510),o=r(30498),i=r(86425);t.exports=r(75179)?Object.defineProperties:function defineProperties(t,e){o(t);for(var r,s=i(e),u=s.length,a=0;u>a;)n.f(t,r=s[a++],e[r]);return t}},83264:(t,e,r)=>{var n=r(67410),o=r(48439),i=r(1504),s=r(12737),u=r(20657),a=r(64457),c=Object.getOwnPropertyDescriptor;e.f=r(75179)?c:function getOwnPropertyDescriptor(t,e){if(t=i(t),e=s(e,!0),a)try{return c(t,e)}catch(t){}if(u(t,e))return o(!n.f.call(t,e),t[e])}},26084:(t,e,r)=>{var n=r(1504),o=r(8772).f,i={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function getOwnPropertyNames(t){return s&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return s.slice()}}(t):o(n(t))}},8772:(t,e,r)=>{var n=r(65326),o=r(31986).concat("length","prototype");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,o)}},97739:(t,e)=>{e.f=Object.getOwnPropertySymbols},999:(t,e,r)=>{var n=r(20657),o=r(60061),i=r(18478)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),n(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},65326:(t,e,r)=>{var n=r(20657),o=r(1504),i=r(69191)(!1),s=r(18478)("IE_PROTO");t.exports=function(t,e){var r,u=o(t),a=0,c=[];for(r in u)r!=s&&n(u,r)&&c.push(r);for(;e.length>a;)n(u,r=e[a++])&&(~i(c,r)||c.push(r));return c}},86425:(t,e,r)=>{var n=r(65326),o=r(31986);t.exports=Object.keys||function keys(t){return n(t,o)}},67410:(t,e)=>{e.f={}.propertyIsEnumerable},57972:(t,e,r)=>{var n=r(98310),o=r(47208),i=r(90472);t.exports=function(t,e){var r=(o.Object||{})[t]||Object[t],s={};s[t]=e(r),n(n.S+n.F*i((function(){r(1)})),"Object",s)}},64344:(t,e,r)=>{var n=r(8772),o=r(97739),i=r(30498),s=r(43280).Reflect;t.exports=s&&s.ownKeys||function ownKeys(t){var e=n.f(i(t)),r=o.f;return r?e.concat(r(t)):e}},52745:t=>{t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},88747:(t,e,r)=>{var n=r(30498),o=r(39632),i=r(88579);t.exports=function(t,e){if(n(t),o(e)&&e.constructor===t)return e;var r=i.f(t);return(0,r.resolve)(e),r.promise}},48439:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},13199:(t,e,r)=>{var n=r(62292);t.exports=function(t,e,r){for(var o in e)r&&t[o]?t[o]=e[o]:n(t,o,e[o]);return t}},19312:(t,e,r)=>{t.exports=r(62292)},25574:(t,e,r)=>{var n=r(39632),o=r(30498),check=function(t,e){if(o(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{(n=r(61725)(Function.call,r(83264).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function setPrototypeOf(t,r){return check(t,r),e?t.__proto__=r:n(t,r),t}}({},!1):void 0),check}},5698:(t,e,r)=>{"use strict";var n=r(43280),o=r(47208),i=r(60510),s=r(75179),u=r(24300)("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:n[t];s&&e&&!e[u]&&i.f(e,u,{configurable:!0,get:function(){return this}})}},2413:(t,e,r)=>{var n=r(60510).f,o=r(20657),i=r(24300)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},18478:(t,e,r)=>{var n=r(29990)("keys"),o=r(54251);t.exports=function(t){return n[t]||(n[t]=o(t))}},29990:(t,e,r)=>{var n=r(47208),o=r(43280),i="__core-js_shared__",s=o[i]||(o[i]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(36794)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},73732:(t,e,r)=>{var n=r(30498),o=r(26610),i=r(24300)("species");t.exports=function(t,e){var r,s=n(t).constructor;return void 0===s||null==(r=n(s)[i])?e:o(r)}},78502:(t,e,r)=>{var n=r(58290),o=r(18239);t.exports=function(t){return function(e,r){var i,s,u=String(o(e)),a=n(r),c=u.length;return a<0||a>=c?t?"":void 0:(i=u.charCodeAt(a))<55296||i>56319||a+1===c||(s=u.charCodeAt(a+1))<56320||s>57343?t?u.charAt(a):i:t?u.slice(a,a+2):s-56320+(i-55296<<10)+65536}}},6022:(t,e,r)=>{var n,o,i,s=r(61725),u=r(19897),a=r(92477),c=r(48765),f=r(43280),l=f.process,p=f.setImmediate,h=f.clearImmediate,v=f.MessageChannel,y=f.Dispatch,d=0,g={},_="onreadystatechange",run=function(){var t=+this;if(g.hasOwnProperty(t)){var e=g[t];delete g[t],e()}},listener=function(t){run.call(t.data)};p&&h||(p=function setImmediate(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return g[++d]=function(){u("function"==typeof t?t:Function(t),e)},n(d),d},h=function clearImmediate(t){delete g[t]},"process"==r(41352)(l)?n=function(t){l.nextTick(s(run,t,1))}:y&&y.now?n=function(t){y.now(s(run,t,1))}:v?(i=(o=new v).port2,o.port1.onmessage=listener,n=s(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(n=function(t){f.postMessage(t+"","*")},f.addEventListener("message",listener,!1)):n=_ in c("script")?function(t){a.appendChild(c("script")).onreadystatechange=function(){a.removeChild(this),run.call(t)}}:function(t){setTimeout(s(run,t,1),0)}),t.exports={set:p,clear:h}},46723:(t,e,r)=>{var n=r(58290),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=n(t))<0?o(t+e,0):i(t,e)}},58290:t=>{var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},1504:(t,e,r)=>{var n=r(13115),o=r(18239);t.exports=function(t){return n(o(t))}},37154:(t,e,r)=>{var n=r(58290),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},60061:(t,e,r)=>{var n=r(18239);t.exports=function(t){return Object(n(t))}},12737:(t,e,r)=>{var n=r(39632);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},54251:t=>{var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},35701:(t,e,r)=>{var n=r(43280).navigator;t.exports=n&&n.userAgent||""},31164:(t,e,r)=>{var n=r(43280),o=r(47208),i=r(36794),s=r(7273),u=r(60510).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:s.f(t)})}},7273:(t,e,r)=>{e.f=r(24300)},24300:(t,e,r)=>{var n=r(29990)("wks"),o=r(54251),i=r(43280).Symbol,s="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=s&&i[t]||(s?i:o)("Symbol."+t))}).store=n},26116:(t,e,r)=>{var n=r(8312),o=r(24300)("iterator"),i=r(79105);t.exports=r(47208).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[n(t)]}},37627:(t,e,r)=>{"use strict";var n=r(61725),o=r(98310),i=r(60061),s=r(93086),u=r(11827),a=r(37154),c=r(87352),f=r(26116);o(o.S+o.F*!r(26797)((function(t){Array.from(t)})),"Array",{from:function from(t){var e,r,o,l,p=i(t),h="function"==typeof this?this:Array,v=arguments.length,y=v>1?arguments[1]:void 0,d=void 0!==y,g=0,_=f(p);if(d&&(y=n(y,v>2?arguments[2]:void 0,2)),null==_||h==Array&&u(_))for(r=new h(e=a(p.length));e>g;g++)c(r,g,d?y(p[g],g):p[g]);else for(l=_.call(p),r=new h;!(o=l.next()).done;g++)c(r,g,d?s(l,y,[o.value,g],!0):o.value);return r.length=g,r}})},42580:(t,e,r)=>{var n=r(98310);n(n.S,"Array",{isArray:r(7359)})},84411:(t,e,r)=>{"use strict";var n=r(29697),o=r(9329),i=r(79105),s=r(1504);t.exports=r(6125)(Array,"Array",(function(t,e){this._t=s(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?r:"values"==e?t[r]:[r,t[r]])}),"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},30785:(t,e,r)=>{var n=r(98310);n(n.S,"Object",{create:r(82488)})},23078:(t,e,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperties:r(36607)})},40168:(t,e,r)=>{var n=r(98310);n(n.S+n.F*!r(75179),"Object",{defineProperty:r(60510).f})},18576:(t,e,r)=>{var n=r(1504),o=r(83264).f;r(57972)("getOwnPropertyDescriptor",(function(){return function getOwnPropertyDescriptor(t,e){return o(n(t),e)}}))},4840:(t,e,r)=>{var n=r(60061),o=r(999);r(57972)("getPrototypeOf",(function(){return function getPrototypeOf(t){return o(n(t))}}))},5453:(t,e,r)=>{var n=r(60061),o=r(86425);r(57972)("keys",(function(){return function keys(t){return o(n(t))}}))},13890:(t,e,r)=>{var n=r(98310);n(n.S,"Object",{setPrototypeOf:r(25574).set})},70285:()=>{},86082:(t,e,r)=>{"use strict";var n,o,i,s,u=r(36794),a=r(43280),c=r(61725),f=r(8312),l=r(98310),p=r(39632),h=r(26610),v=r(54677),y=r(25985),d=r(73732),g=r(6022).set,_=r(4326)(),m=r(88579),x=r(52745),b=r(35701),S=r(88747),w="Promise",O=a.TypeError,P=a.process,j=P&&P.versions,k=j&&j.v8||"",A=a.Promise,E="process"==f(P),empty=function(){},M=o=m.f,T=!!function(){try{var t=A.resolve(1),e=(t.constructor={})[r(24300)("species")]=function(t){t(empty,empty)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(empty)instanceof e&&0!==k.indexOf("6.6")&&-1===b.indexOf("Chrome/66")}catch(t){}}(),isThenable=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},notify=function(t,e){if(!t._n){t._n=!0;var r=t._c;_((function(){for(var n=t._v,o=1==t._s,i=0,run=function(e){var r,i,s,u=o?e.ok:e.fail,a=e.resolve,c=e.reject,f=e.domain;try{u?(o||(2==t._h&&onHandleUnhandled(t),t._h=1),!0===u?r=n:(f&&f.enter(),r=u(n),f&&(f.exit(),s=!0)),r===e.promise?c(O("Promise-chain cycle")):(i=isThenable(r))?i.call(r,a,c):a(r)):c(n)}catch(t){f&&!s&&f.exit(),c(t)}};r.length>i;)run(r[i++]);t._c=[],t._n=!1,e&&!t._h&&onUnhandled(t)}))}},onUnhandled=function(t){g.call(a,(function(){var e,r,n,o=t._v,i=isUnhandled(t);if(i&&(e=x((function(){E?P.emit("unhandledRejection",o,t):(r=a.onunhandledrejection)?r({promise:t,reason:o}):(n=a.console)&&n.error&&n.error("Unhandled promise rejection",o)})),t._h=E||isUnhandled(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},isUnhandled=function(t){return 1!==t._h&&0===(t._a||t._c).length},onHandleUnhandled=function(t){g.call(a,(function(){var e;E?P.emit("rejectionHandled",t):(e=a.onrejectionhandled)&&e({promise:t,reason:t._v})}))},$reject=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),notify(e,!0))},$resolve=function(t){var e,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw O("Promise can't be resolved itself");(e=isThenable(t))?_((function(){var n={_w:r,_d:!1};try{e.call(t,c($resolve,n,1),c($reject,n,1))}catch(t){$reject.call(n,t)}})):(r._v=t,r._s=1,notify(r,!1))}catch(t){$reject.call({_w:r,_d:!1},t)}}};T||(A=function Promise(t){v(this,A,w,"_h"),h(t),n.call(this);try{t(c($resolve,this,1),c($reject,this,1))}catch(t){$reject.call(this,t)}},(n=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=r(13199)(A.prototype,{then:function then(t,e){var r=M(d(this,A));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=E?P.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&notify(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new n;this.promise=t,this.resolve=c($resolve,t,1),this.reject=c($reject,t,1)},m.f=M=function(t){return t===A||t===s?new i(t):o(t)}),l(l.G+l.W+l.F*!T,{Promise:A}),r(2413)(A,w),r(5698)(w),s=r(47208).Promise,l(l.S+l.F*!T,w,{reject:function reject(t){var e=M(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(u||!T),w,{resolve:function resolve(t){return S(u&&this===s?A:this,t)}}),l(l.S+l.F*!(T&&r(26797)((function(t){A.all(t).catch(empty)}))),w,{all:function all(t){var e=this,r=M(e),n=r.resolve,o=r.reject,i=x((function(){var r=[],i=0,s=1;y(t,!1,(function(t){var u=i++,a=!1;r.push(void 0),s++,e.resolve(t).then((function(t){a||(a=!0,r[u]=t,--s||n(r))}),o)})),--s||n(r)}));return i.e&&o(i.v),r.promise},race:function race(t){var e=this,r=M(e),n=r.reject,o=x((function(){y(t,!1,(function(t){e.resolve(t).then(r.resolve,n)}))}));return o.e&&n(o.v),r.promise}})},11320:(t,e,r)=>{var n=r(98310),o=r(82488),i=r(26610),s=r(30498),u=r(39632),a=r(90472),c=r(45515),f=(r(43280).Reflect||{}).construct,l=a((function(){function F(){}return!(f((function(){}),[],F)instanceof F)})),p=!a((function(){f((function(){}))}));n(n.S+n.F*(l||p),"Reflect",{construct:function construct(t,e){i(t),s(e);var r=arguments.length<3?t:i(arguments[2]);if(p&&!l)return f(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(c.apply(t,n))}var a=r.prototype,h=o(u(a)?a:Object.prototype),v=Function.apply.call(t,h,e);return u(v)?v:h}})},36600:(t,e,r)=>{var n=r(83264),o=r(999),i=r(20657),s=r(98310),u=r(39632),a=r(30498);s(s.S,"Reflect",{get:function get(t,e){var r,s,c=arguments.length<3?t:arguments[2];return a(t)===c?t[e]:(r=n.f(t,e))?i(r,"value")?r.value:void 0!==r.get?r.get.call(c):void 0:u(s=o(t))?get(s,e,c):void 0}})},99572:(t,e,r)=>{"use strict";var n=r(78502)(!0);r(6125)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},54370:(t,e,r)=>{"use strict";var n=r(43280),o=r(20657),i=r(75179),s=r(98310),u=r(19312),a=r(6758).KEY,c=r(90472),f=r(29990),l=r(2413),p=r(54251),h=r(24300),v=r(7273),y=r(31164),d=r(42266),g=r(7359),_=r(30498),m=r(39632),x=r(60061),b=r(1504),S=r(12737),w=r(48439),O=r(82488),P=r(26084),j=r(83264),k=r(97739),A=r(60510),E=r(86425),M=j.f,T=A.f,C=P.f,L=n.Symbol,I=n.JSON,D=I&&I.stringify,R=h("_hidden"),N=h("toPrimitive"),q={}.propertyIsEnumerable,G=f("symbol-registry"),U=f("symbols"),$=f("op-symbols"),Q=Object.prototype,V="function"==typeof L&&!!k.f,B=n.QObject,W=!B||!B.prototype||!B.prototype.findChild,H=i&&c((function(){return 7!=O(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a}))?function(t,e,r){var n=M(Q,e);n&&delete Q[e],T(t,e,r),n&&t!==Q&&T(Q,e,n)}:T,wrap=function(t){var e=U[t]=O(L.prototype);return e._k=t,e},K=V&&"symbol"==typeof L.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof L},z=function defineProperty(t,e,r){return t===Q&&z($,e,r),_(t),e=S(e,!0),_(r),o(U,e)?(r.enumerable?(o(t,R)&&t[R][e]&&(t[R][e]=!1),r=O(r,{enumerable:w(0,!1)})):(o(t,R)||T(t,R,w(1,{})),t[R][e]=!0),H(t,e,r)):T(t,e,r)},J=function defineProperties(t,e){_(t);for(var r,n=d(e=b(e)),o=0,i=n.length;i>o;)z(t,r=n[o++],e[r]);return t},Y=function propertyIsEnumerable(t){var e=q.call(this,t=S(t,!0));return!(this===Q&&o(U,t)&&!o($,t))&&(!(e||!o(this,t)||!o(U,t)||o(this,R)&&this[R][t])||e)},X=function getOwnPropertyDescriptor(t,e){if(t=b(t),e=S(e,!0),t!==Q||!o(U,e)||o($,e)){var r=M(t,e);return!r||!o(U,e)||o(t,R)&&t[R][e]||(r.enumerable=!0),r}},Z=function getOwnPropertyNames(t){for(var e,r=C(b(t)),n=[],i=0;r.length>i;)o(U,e=r[i++])||e==R||e==a||n.push(e);return n},tt=function getOwnPropertySymbols(t){for(var e,r=t===Q,n=C(r?$:b(t)),i=[],s=0;n.length>s;)!o(U,e=n[s++])||r&&!o(Q,e)||i.push(U[e]);return i};V||(u((L=function Symbol(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),$set=function(e){this===Q&&$set.call($,e),o(this,R)&&o(this[R],t)&&(this[R][t]=!1),H(this,t,w(1,e))};return i&&W&&H(Q,t,{configurable:!0,set:$set}),wrap(t)}).prototype,"toString",(function toString(){return this._k})),j.f=X,A.f=z,r(8772).f=P.f=Z,r(67410).f=Y,k.f=tt,i&&!r(36794)&&u(Q,"propertyIsEnumerable",Y,!0),v.f=function(t){return wrap(h(t))}),s(s.G+s.W+s.F*!V,{Symbol:L});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;et.length>rt;)h(et[rt++]);for(var nt=E(h.store),ot=0;nt.length>ot;)y(nt[ot++]);s(s.S+s.F*!V,"Symbol",{for:function(t){return o(G,t+="")?G[t]:G[t]=L(t)},keyFor:function keyFor(t){if(!K(t))throw TypeError(t+" is not a symbol!");for(var e in G)if(G[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),s(s.S+s.F*!V,"Object",{create:function create(t,e){return void 0===e?O(t):J(O(t),e)},defineProperty:z,defineProperties:J,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:tt});var it=c((function(){k.f(1)}));s(s.S+s.F*it,"Object",{getOwnPropertySymbols:function getOwnPropertySymbols(t){return k.f(x(t))}}),I&&s(s.S+s.F*(!V||c((function(){var t=L();return"[null]"!=D([t])||"{}"!=D({a:t})||"{}"!=D(Object(t))}))),"JSON",{stringify:function stringify(t){for(var e,r,n=[t],o=1;arguments.length>o;)n.push(arguments[o++]);if(r=e=n[1],(m(e)||void 0!==t)&&!K(t))return g(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!K(e))return e}),n[1]=e,D.apply(I,n)}}),L.prototype[N]||r(62292)(L.prototype,N,L.prototype.valueOf),l(L,"Symbol"),l(Math,"Math",!0),l(n.JSON,"JSON",!0)},67685:(t,e,r)=>{var n=r(98310),o=r(64344),i=r(1504),s=r(83264),u=r(87352);n(n.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var e,r,n=i(t),a=s.f,c=o(n),f={},l=0;c.length>l;)void 0!==(r=a(n,e=c[l++]))&&u(f,e,r);return f}})},81522:(t,e,r)=>{"use strict";var n=r(98310),o=r(47208),i=r(43280),s=r(73732),u=r(88747);n(n.P+n.R,"Promise",{finally:function(t){var e=s(this,o.Promise||i.Promise),r="function"==typeof t;return this.then(r?function(r){return u(e,t()).then((function(){return r}))}:t,r?function(r){return u(e,t()).then((function(){throw r}))}:t)}})},25757:(t,e,r)=>{"use strict";var n=r(98310),o=r(88579),i=r(52745);n(n.S,"Promise",{try:function(t){var e=o.f(this),r=i(t);return(r.e?e.reject:e.resolve)(r.v),e.promise}})},87573:(t,e,r)=>{r(31164)("asyncIterator")},97224:(t,e,r)=>{r(31164)("observable")},74114:(t,e,r)=>{r(84411);for(var n=r(43280),o=r(62292),i=r(79105),s=r(24300)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;a<u.length;a++){var c=u[a],f=n[c],l=f&&f.prototype;l&&!l[s]&&o(l,s,c),i[c]=i.Array}},22761:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},42094:(t,e,r)=>{var n=r(62190)("unscopables"),o=Array.prototype;null==o[n]&&r(74216)(o,n,{}),t.exports=function(t){o[n][t]=!0}},6365:(t,e,r)=>{var n=r(67334);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},59021:(t,e,r)=>{var n=r(15703),o=r(26078),i=r(78615);t.exports=function(t){return function(e,r,s){var u,a=n(e),c=o(a.length),f=i(s,c);if(t&&r!=r){for(;c>f;)if((u=a[f++])!=u)return!0}else for(;c>f;f++)if((t||f in a)&&a[f]===r)return t||f||0;return!t&&-1}}},78309:(t,e,r)=>{var n=r(11528),o=r(8467),i=r(26033),s=r(26078),u=r(63531);t.exports=function(t,e){var r=1==t,a=2==t,c=3==t,f=4==t,l=6==t,p=5==t||l,h=e||u;return function(e,u,v){for(var y,d,g=i(e),_=o(g),m=n(u,v,3),x=s(_.length),b=0,S=r?h(e,x):a?h(e,0):void 0;x>b;b++)if((p||b in _)&&(d=m(y=_[b],b,g),t))if(r)S[b]=d;else if(d)switch(t){case 3:return!0;case 5:return y;case 6:return b;case 2:S.push(y)}else if(f)return!1;return l?-1:c||f?f:S}}},81071:(t,e,r)=>{var n=r(67334),o=r(99141),i=r(62190)("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),n(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},63531:(t,e,r)=>{var n=r(81071);t.exports=function(t,e){return new(n(t))(e)}},20106:(t,e,r)=>{var n=r(26688),o=r(62190)("toStringTag"),i="Arguments"==n(function(){return arguments}());t.exports=function(t){var e,r,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?r:i?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},26688:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},60066:t=>{var e=t.exports={version:"2.6.12"};"number"==typeof __e&&(__e=e)},11528:(t,e,r)=>{var n=r(22761);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},61622:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},36628:(t,e,r)=>{t.exports=!r(48625)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5050:(t,e,r)=>{var n=r(67334),o=r(38113).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},33603:t=>{t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},65772:(t,e,r)=>{var n=r(38113),o=r(60066),i=r(74216),s=r(17738),u=r(11528),$export=function(t,e,r){var a,c,f,l,p=t&$export.F,h=t&$export.G,v=t&$export.S,y=t&$export.P,d=t&$export.B,g=h?n:v?n[e]||(n[e]={}):(n[e]||{}).prototype,_=h?o:o[e]||(o[e]={}),m=_.prototype||(_.prototype={});for(a in h&&(r=e),r)f=((c=!p&&g&&void 0!==g[a])?g:r)[a],l=d&&c?u(f,n):y&&"function"==typeof f?u(Function.call,f):f,g&&s(g,a,f,t&$export.U),_[a]!=f&&i(_,a,l),y&&m[a]!=f&&(m[a]=f)};n.core=o,$export.F=1,$export.G=2,$export.S=4,$export.P=8,$export.B=16,$export.W=32,$export.U=64,$export.R=128,t.exports=$export},48625:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},20646:(t,e,r)=>{t.exports=r(8655)("native-function-to-string",Function.toString)},38113:t=>{var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},54040:t=>{var e={}.hasOwnProperty;t.exports=function(t,r){return e.call(t,r)}},74216:(t,e,r)=>{var n=r(98558),o=r(36061);t.exports=r(36628)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},8954:(t,e,r)=>{var n=r(38113).document;t.exports=n&&n.documentElement},5100:(t,e,r)=>{t.exports=!r(36628)&&!r(48625)((function(){return 7!=Object.defineProperty(r(5050)("div"),"a",{get:function(){return 7}}).a}))},8467:(t,e,r)=>{var n=r(26688);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},99141:(t,e,r)=>{var n=r(26688);t.exports=Array.isArray||function isArray(t){return"Array"==n(t)}},67334:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},46445:(t,e,r)=>{"use strict";var n=r(82897),o=r(36061),i=r(55727),s={};r(74216)(s,r(62190)("iterator"),(function(){return this})),t.exports=function(t,e,r){t.prototype=n(s,{next:o(1,r)}),i(t,e+" Iterator")}},61195:(t,e,r)=>{"use strict";var n=r(81422),o=r(65772),i=r(17738),s=r(74216),u=r(23988),a=r(46445),c=r(55727),f=r(19002),l=r(62190)("iterator"),p=!([].keys&&"next"in[].keys()),h="keys",v="values",returnThis=function(){return this};t.exports=function(t,e,r,y,d,g,_){a(r,e,y);var m,x,b,getMethod=function(t){if(!p&&t in P)return P[t];switch(t){case h:return function keys(){return new r(this,t)};case v:return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}},S=e+" Iterator",w=d==v,O=!1,P=t.prototype,j=P[l]||P["@@iterator"]||d&&P[d],k=j||getMethod(d),A=d?w?getMethod("entries"):k:void 0,E="Array"==e&&P.entries||j;if(E&&(b=f(E.call(new t)))!==Object.prototype&&b.next&&(c(b,S,!0),n||"function"==typeof b[l]||s(b,l,returnThis)),w&&j&&j.name!==v&&(O=!0,k=function values(){return j.call(this)}),n&&!_||!p&&!O&&P[l]||s(P,l,k),u[e]=k,u[S]=returnThis,d)if(m={values:w?k:getMethod(v),keys:g?k:getMethod(h),entries:A},_)for(x in m)x in P||i(P,x,m[x]);else o(o.P+o.F*(p||O),e,m);return m}},35038:t=>{t.exports=function(t,e){return{value:e,done:!!t}}},23988:t=>{t.exports={}},81422:t=>{t.exports=!1},82897:(t,e,r)=>{var n=r(6365),o=r(7331),i=r(33603),s=r(28034)("IE_PROTO"),Empty=function(){},createDict=function(){var t,e=r(5050)("iframe"),n=i.length;for(e.style.display="none",r(8954).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),createDict=t.F;n--;)delete createDict.prototype[i[n]];return createDict()};t.exports=Object.create||function create(t,e){var r;return null!==t?(Empty.prototype=n(t),r=new Empty,Empty.prototype=null,r[s]=t):r=createDict(),void 0===e?r:o(r,e)}},98558:(t,e,r)=>{var n=r(6365),o=r(5100),i=r(31382),s=Object.defineProperty;e.f=r(36628)?Object.defineProperty:function defineProperty(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return s(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},7331:(t,e,r)=>{var n=r(98558),o=r(6365),i=r(42912);t.exports=r(36628)?Object.defineProperties:function defineProperties(t,e){o(t);for(var r,s=i(e),u=s.length,a=0;u>a;)n.f(t,r=s[a++],e[r]);return t}},19002:(t,e,r)=>{var n=r(54040),o=r(26033),i=r(28034)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),n(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},75547:(t,e,r)=>{var n=r(54040),o=r(15703),i=r(59021)(!1),s=r(28034)("IE_PROTO");t.exports=function(t,e){var r,u=o(t),a=0,c=[];for(r in u)r!=s&&n(u,r)&&c.push(r);for(;e.length>a;)n(u,r=e[a++])&&(~i(c,r)||c.push(r));return c}},42912:(t,e,r)=>{var n=r(75547),o=r(33603);t.exports=Object.keys||function keys(t){return n(t,o)}},36061:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},17738:(t,e,r)=>{var n=r(38113),o=r(74216),i=r(54040),s=r(25078)("src"),u=r(20646),a="toString",c=(""+u).split(a);r(60066).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,r,u){var a="function"==typeof r;a&&(i(r,"name")||o(r,"name",e)),t[e]!==r&&(a&&(i(r,s)||o(r,s,t[e]?""+t[e]:c.join(String(e)))),t===n?t[e]=r:u?t[e]?t[e]=r:o(t,e,r):(delete t[e],o(t,e,r)))})(Function.prototype,a,(function toString(){return"function"==typeof this&&this[s]||u.call(this)}))},55727:(t,e,r)=>{var n=r(98558).f,o=r(54040),i=r(62190)("toStringTag");t.exports=function(t,e,r){t&&!o(t=r?t:t.prototype,i)&&n(t,i,{configurable:!0,value:e})}},28034:(t,e,r)=>{var n=r(8655)("keys"),o=r(25078);t.exports=function(t){return n[t]||(n[t]=o(t))}},8655:(t,e,r)=>{var n=r(60066),o=r(38113),i="__core-js_shared__",s=o[i]||(o[i]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(81422)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},10225:(t,e,r)=>{"use strict";var n=r(48625);t.exports=function(t,e){return!!t&&n((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},12070:(t,e,r)=>{var n=r(3338),o=r(61622);t.exports=function(t){return function(e,r){var i,s,u=String(o(e)),a=n(r),c=u.length;return a<0||a>=c?t?"":void 0:(i=u.charCodeAt(a))<55296||i>56319||a+1===c||(s=u.charCodeAt(a+1))<56320||s>57343?t?u.charAt(a):i:t?u.slice(a,a+2):s-56320+(i-55296<<10)+65536}}},78615:(t,e,r)=>{var n=r(3338),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=n(t))<0?o(t+e,0):i(t,e)}},3338:t=>{var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},15703:(t,e,r)=>{var n=r(8467),o=r(61622);t.exports=function(t){return n(o(t))}},26078:(t,e,r)=>{var n=r(3338),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},26033:(t,e,r)=>{var n=r(61622);t.exports=function(t){return Object(n(t))}},31382:(t,e,r)=>{var n=r(67334);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},25078:t=>{var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},62190:(t,e,r)=>{var n=r(8655)("wks"),o=r(25078),i=r(38113).Symbol,s="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=s&&i[t]||(s?i:o)("Symbol."+t))}).store=n},64434:(t,e,r)=>{"use strict";var n=r(65772),o=r(78309)(2);n(n.P+n.F*!r(10225)([].filter,!0),"Array",{filter:function filter(t){return o(this,t,arguments[1])}})},71954:(t,e,r)=>{"use strict";var n=r(65772),o=r(78309)(5),i="find",s=!0;i in[]&&Array(1).find((function(){s=!1})),n(n.P+n.F*s,"Array",{find:function find(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),r(42094)(i)},12897:(t,e,r)=>{"use strict";var n=r(42094),o=r(35038),i=r(23988),s=r(15703);t.exports=r(61195)(Array,"Array",(function(t,e){this._t=s(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?r:"values"==e?t[r]:[r,t[r]])}),"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},90286:(t,e,r)=>{"use strict";var n=r(65772),o=r(78309)(1);n(n.P+n.F*!r(10225)([].map,!0),"Array",{map:function map(t){return o(this,t,arguments[1])}})},76139:(t,e,r)=>{"use strict";var n=r(20106),o={};o[r(62190)("toStringTag")]="z",o+""!="[object z]"&&r(17738)(Object.prototype,"toString",(function toString(){return"[object "+n(this)+"]"}),!0)},37472:(t,e,r)=>{"use strict";var n=r(12070)(!0);r(61195)(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},93085:(t,e,r)=>{for(var n=r(12897),o=r(42912),i=r(17738),s=r(38113),u=r(74216),a=r(23988),c=r(62190),f=c("iterator"),l=c("toStringTag"),p=a.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},v=o(h),y=0;y<v.length;y++){var d,g=v[y],_=h[g],m=s[g],x=m&&m.prototype;if(x&&(x[f]||u(x,f,p),x[l]||u(x,l,g),a[g]=p,_))for(d in n)x[d]||i(x,d,n[d],!0)}}},e={};function __webpack_require__(r){var n=e[r];if(void 0!==n)return n.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,__webpack_require__),o.exports}(()=>{"use strict";var t=__webpack_require__(67971),e=t(__webpack_require__(73220));__webpack_require__(71954),__webpack_require__(90286),__webpack_require__(64434),__webpack_require__(37472),__webpack_require__(76139),__webpack_require__(12897),__webpack_require__(93085);var r=t(__webpack_require__(74846)),n=t(__webpack_require__(84899)),o=t(__webpack_require__(11959)),i=t(__webpack_require__(39041)),s=t(__webpack_require__(76700)),u=t(__webpack_require__(44263)),a=t(__webpack_require__(77371)),c=t(__webpack_require__(68537)),f=function(t){(0,a.default)(Screenshot,t);var f=(0,c.default)(Screenshot);function Screenshot(){return(0,o.default)(this,Screenshot),f.apply(this,arguments)}return(0,i.default)(Screenshot,[{key:"getDefaultSettings",value:function getDefaultSettings(){return(0,n.default)({empty_content_headline:"Empty Content.",crop:{width:1200,height:1500},excluded_external_css_urls:["https://kit-pro.fontawesome.com"],external_images_urls:["https://i.ytimg.com"],timeout:15e3,render_timeout:5e3,timerLabel:null,timer_label:"".concat(ElementorScreenshotConfig.post_id," - timer"),image_placeholder:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=",isDebug:elementorCommonConfig.isElementorDebug,isDebugSvg:!1},ElementorScreenshotConfig)}},{key:"getDefaultElements",value:function getDefaultElements(){var t=jQuery(ElementorScreenshotConfig.selector),e=t.find(" .elementor-section-wrap > .elementor-section");return{$elementor:t,$sections:e,$firstSection:e.first(),$notElementorElements:elementorCommon.elements.$body.find("> *:not(style, link)").not(t),$head:jQuery("head")}}},{key:"onInit",value:function onInit(){return(0,s.default)((0,u.default)(Screenshot.prototype),"onInit",this).call(this),this.log("Screenshot init","time"),this.timeoutTimer=setTimeout(this.screenshotFailed.bind(this),this.getSettings("timeout")),this.captureScreenshot()}},{key:"captureScreenshot",value:function captureScreenshot(){return this.elements.$elementor.length||(elementorCommon.helpers.consoleWarn("Screenshots: The content of this page is empty, the module will create a fake conent just for this screenshot."),this.createFakeContent()),this.removeUnnecessaryElements(),this.handleIFrames(),this.removeFirstSectionMargin(),this.handleLinks(),this.loadExternalCss(),this.loadExternalImages(),e.default.resolve().then(this.createImage.bind(this)).then(this.createImageElement.bind(this)).then(this.cropCanvas.bind(this)).then(this.save.bind(this)).then(this.screenshotSucceed.bind(this)).catch(this.screenshotFailed.bind(this))}},{key:"createFakeContent",value:function createFakeContent(){this.elements.$elementor=jQuery("<div>").css({height:this.getSettings("crop.height"),width:this.getSettings("crop.width"),display:"flex",alignItems:"center",justifyContent:"center"}),this.elements.$elementor.append(jQuery("<h1>").css({fontSize:"85px"}).html(this.getSettings("empty_content_headline"))),document.body.prepend(this.elements.$elementor)}},{key:"loadExternalCss",value:function loadExternalCss(){var t=this,e=[this.getSettings("home_url")].concat((0,r.default)(this.getSettings("excluded_external_css_urls"))).map((function(t){return'[href^="'.concat(t,'"]')})).join(", ");jQuery("link").not(e).each((function(e,r){var n=jQuery(r),o=n.clone();o.attr("href",t.getScreenshotProxyUrl(n.attr("href"))),t.elements.$head.append(o),n.remove()}))}},{key:"loadExternalImages",value:function loadExternalImages(){var t=this,e=this.getSettings("external_images_urls").map((function(t){return'img[src^="'.concat(t,'"]')})).join(", ");jQuery(e).each((function(e,r){var n=jQuery(r);n.attr("src",t.getScreenshotProxyUrl(n.attr("src")))}))}},{key:"handleIFrames",value:function handleIFrames(){this.elements.$elementor.find("iframe").each((function(t,e){var r=jQuery(e),n=jQuery("<div />",{css:{background:"gray",width:r.width(),height:r.height()}});r.before(n),r.remove()}))}},{key:"removeUnnecessaryElements",value:function removeUnnecessaryElements(){var t=this,e=0;this.elements.$sections.filter((function(r,n){var o=!1;return e>=t.getSettings("crop.height")&&(o=!0),e+=jQuery(n).outerHeight(),o})).each((function(t,e){e.remove()})),this.elements.$notElementorElements.remove()}},{key:"handleLinks",value:function handleLinks(){elementorCommon.elements.$body.find("a").attr("href","/")}},{key:"removeFirstSectionMargin",value:function removeFirstSectionMargin(){this.elements.$firstSection.css({marginTop:0})}},{key:"createImage",value:function createImage(){var t=this,r=new e.default((function(t){window.addEventListener("load",(function(){t()}))})),n=new e.default((function(e){setTimeout((function(){e()}),t.getSettings("render_timeout"))}));return e.default.race([r,n]).then((function(){return t.log("Start creating screenshot."),t.getSettings("isDebugSvg")?(domtoimage.toSvg(document.body,{imagePlaceholder:t.getSettings("image_placeholder")}).then((function(e){return t.download(e)})),e.default.reject("Debug SVG.")):/^((?!chrome|android).)*safari/i.test(window.userAgent)?(t.log('Creating screenshot with "html2canvas"'),html2canvas(document.body).then((function(t){return t.toDataURL("image/png")}))):(t.log('Creating screenshot with "dom-to-image"'),domtoimage.toPng(document.body,{imagePlaceholder:t.getSettings("image_placeholder")}))}))}},{key:"download",value:function download(t){var e=jQuery("<a/>",{href:t,download:"debugSvg.svg",html:"Download SVG"});elementorCommon.elements.$body.append(e),e.trigger("click")}},{key:"createImageElement",value:function createImageElement(t){var r=new Image;return r.src=t,new e.default((function(t){r.onload=function(){return t(r)}}))}},{key:"cropCanvas",value:function cropCanvas(t){var r=this.getSettings("crop.width"),n=this.getSettings("crop.height"),cropCanvas=document.createElement("canvas"),o=cropCanvas.getContext("2d"),i=r/t.width;return cropCanvas.width=r,cropCanvas.height=n>t.height?t.height:n,o.drawImage(t,0,0,t.width,t.height,0,0,t.width*i,t.height*i),e.default.resolve(cropCanvas)}},{key:"save",value:function save(t){var r=this;return new e.default((function(e,n){elementorCommon.ajax.addRequest("screenshot_save",{data:{post_id:r.getSettings("post_id"),screenshot:t.toDataURL("image/png")},success:function success(t){r.log("Screenshot created: ".concat(encodeURI(t))),e(t)},error:function error(){r.log("Failed to create screenshot."),n()}})}))}},{key:"markAsFailed",value:function markAsFailed(){var t=this;return new e.default((function(e,r){elementorCommon.ajax.addRequest("screenshot_failed",{data:{post_id:t.getSettings("post_id")},success:function success(){t.log("Marked as failed."),e()},error:function error(){t.log("Failed to mark this screenshot as failed."),r()}})}))}},{key:"getScreenshotProxyUrl",value:function getScreenshotProxyUrl(t){return"".concat(this.getSettings("home_url"),"?screenshot_proxy&nonce=").concat(this.getSettings("nonce"),"&href=").concat(t)}},{key:"screenshotSucceed",value:function screenshotSucceed(t){this.screenshotDone(!0,t)}},{key:"screenshotFailed",value:function screenshotFailed(t){var e=this;this.log(t,null),this.markAsFailed().then((function(){return e.screenshotDone(!1)}))}},{key:"screenshotDone",value:function screenshotDone(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;clearTimeout(this.timeoutTimer),this.timeoutTimer=null,window.parent.postMessage({name:"capture-screenshot-done",success:t,id:this.getSettings("post_id"),imageUrl:e},"*"),this.log("Screenshot ".concat(t?"Succeed":"Failed","."),"timeEnd")}},{key:"log",value:function log(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"timeLog";this.getSettings("isDebug")&&(console.log("string"==typeof t?"".concat(this.getSettings("post_id")," - ").concat(t):t),e&&console[e](this.getSettings("timer_label")))}}]),Screenshot}(elementorModules.ViewModule);jQuery((function(){new f}))})()})();PK!��B�&�&�9assets/js/jszip.vendor.9ec53381c344ee903f3e.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
/*! For license information please see jszip.vendor.9ec53381c344ee903f3e.bundle.min.js.LICENSE.txt */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[972],{82858:(t,e,m)=>{t.exports=function s(t,e,m){function h(v,b){if(!e[v]){if(!t[v]){if(_)return _(v,!0);var w=new Error("Cannot find module '"+v+"'");throw w.code="MODULE_NOT_FOUND",w}var W=e[v]={exports:{}};t[v][0].call(W.exports,(function(e){return h(t[v][1][e]||e)}),W,W.exports,s,t,e,m)}return e[v].exports}for(var _=void 0,v=0;v<m.length;v++)h(m[v]);return h}({1:[function(t,e,_){(function(m){!function(t){"object"==typeof _&&void 0!==e?e.exports=t():("undefined"!=typeof window?window:void 0!==m?m:"undefined"!=typeof self?self:this).JSZip=t()}((function(){return function s(e,m,_){function h(b,w){if(!m[b]){if(!e[b]){var W="function"==typeof t&&t;if(!w&&W)return W(b,!0);if(v)return v(b,!0);var M=new Error("Cannot find module '"+b+"'");throw M.code="MODULE_NOT_FOUND",M}var H=m[b]={exports:{}};e[b][0].call(H.exports,(function(t){return h(e[b][1][t]||t)}),H,H.exports,s,e,m,_)}return m[b].exports}for(var v="function"==typeof t&&t,b=0;b<_.length;b++)h(_[b]);return h}({1:[function(t,e,_){(function(m){!function(t){"object"==typeof _&&void 0!==e?e.exports=t():("undefined"!=typeof window?window:void 0!==m?m:"undefined"!=typeof self?self:this).JSZip=t()}((function(){return function s(e,m,_){function h(b,w){if(!m[b]){if(!e[b]){var W="function"==typeof t&&t;if(!w&&W)return W(b,!0);if(v)return v(b,!0);var M=new Error("Cannot find module '"+b+"'");throw M.code="MODULE_NOT_FOUND",M}var H=m[b]={exports:{}};e[b][0].call(H.exports,(function(t){return h(e[b][1][t]||t)}),H,H.exports,s,e,m,_)}return m[b].exports}for(var v="function"==typeof t&&t,b=0;b<_.length;b++)h(_[b]);return h}({1:[function(t,e,_){(function(m){!function(t){"object"==typeof _&&void 0!==e?e.exports=t():("undefined"!=typeof window?window:void 0!==m?m:"undefined"!=typeof self?self:this).JSZip=t()}((function(){return function s(e,m,_){function h(b,w){if(!m[b]){if(!e[b]){var W="function"==typeof t&&t;if(!w&&W)return W(b,!0);if(v)return v(b,!0);var M=new Error("Cannot find module '"+b+"'");throw M.code="MODULE_NOT_FOUND",M}var H=m[b]={exports:{}};e[b][0].call(H.exports,(function(t){return h(e[b][1][t]||t)}),H,H.exports,s,e,m,_)}return m[b].exports}for(var v="function"==typeof t&&t,b=0;b<_.length;b++)h(_[b]);return h}({1:[function(t,e,_){(function(m){!function(t){"object"==typeof _&&void 0!==e?e.exports=t():("undefined"!=typeof window?window:void 0!==m?m:"undefined"!=typeof self?self:this).JSZip=t()}((function(){return function s(e,m,_){function h(b,w){if(!m[b]){if(!e[b]){var W="function"==typeof t&&t;if(!w&&W)return W(b,!0);if(v)return v(b,!0);var M=new Error("Cannot find module '"+b+"'");throw M.code="MODULE_NOT_FOUND",M}var H=m[b]={exports:{}};e[b][0].call(H.exports,(function(t){return h(e[b][1][t]||t)}),H,H.exports,s,e,m,_)}return m[b].exports}for(var v="function"==typeof t&&t,b=0;b<_.length;b++)h(_[b]);return h}({1:[function(t,e,_){(function(m){!function(t){"object"==typeof _&&void 0!==e?e.exports=t():("undefined"!=typeof window?window:void 0!==m?m:"undefined"!=typeof self?self:this).JSZip=t()}((function(){return function s(e,m,_){function h(b,w){if(!m[b]){if(!e[b]){var W="function"==typeof t&&t;if(!w&&W)return W(b,!0);if(v)return v(b,!0);var M=new Error("Cannot find module '"+b+"'");throw M.code="MODULE_NOT_FOUND",M}var H=m[b]={exports:{}};e[b][0].call(H.exports,(function(t){return h(e[b][1][t]||t)}),H,H.exports,s,e,m,_)}return m[b].exports}for(var v="function"==typeof t&&t,b=0;b<_.length;b++)h(_[b]);return h}({1:[function(t,e,m){"use strict";var _=t("./utils"),v=t("./support"),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";m.encode=function(t){for(var e,m,v,w,W,M,H,G=[],K=0,Y=t.length,X=Y,J="string"!==_.getTypeOf(t);K<t.length;)X=Y-K,v=J?(e=t[K++],m=K<Y?t[K++]:0,K<Y?t[K++]:0):(e=t.charCodeAt(K++),m=K<Y?t.charCodeAt(K++):0,K<Y?t.charCodeAt(K++):0),w=e>>2,W=(3&e)<<4|m>>4,M=1<X?(15&m)<<2|v>>6:64,H=2<X?63&v:64,G.push(b.charAt(w)+b.charAt(W)+b.charAt(M)+b.charAt(H));return G.join("")},m.decode=function(t){var e,m,_,w,W,M,H=0,G=0;if("data:"===t.substr(0,"data:".length))throw new Error("Invalid base64 input, it looks like a data url.");var K,Y=3*(t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"")).length/4;if(t.charAt(t.length-1)===b.charAt(64)&&Y--,t.charAt(t.length-2)===b.charAt(64)&&Y--,Y%1!=0)throw new Error("Invalid base64 input, bad content length.");for(K=v.uint8array?new Uint8Array(0|Y):new Array(0|Y);H<t.length;)e=b.indexOf(t.charAt(H++))<<2|(w=b.indexOf(t.charAt(H++)))>>4,m=(15&w)<<4|(W=b.indexOf(t.charAt(H++)))>>2,_=(3&W)<<6|(M=b.indexOf(t.charAt(H++))),K[G++]=e,64!==W&&(K[G++]=m),64!==M&&(K[G++]=_);return K}},{"./support":30,"./utils":32}],2:[function(t,e,m){"use strict";var _=t("./external"),v=t("./stream/DataWorker"),b=t("./stream/Crc32Probe"),w=t("./stream/DataLengthProbe");function o(t,e,m,_,v){this.compressedSize=t,this.uncompressedSize=e,this.crc32=m,this.compression=_,this.compressedContent=v}o.prototype={getContentWorker:function(){var t=new v(_.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new w("data_length")),e=this;return t.on("end",(function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),t},getCompressedWorker:function(){return new v(_.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,m){return t.pipe(new b).pipe(new w("uncompressedSize")).pipe(e.compressWorker(m)).pipe(new w("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,m){"use strict";var _=t("./stream/GenericWorker");m.STORE={magic:"\0\0",compressWorker:function(t){return new _("STORE compression")},uncompressWorker:function(){return new _("STORE decompression")}},m.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,m){"use strict";var _=t("./utils"),v=function(){for(var t,e=[],m=0;m<256;m++){t=m;for(var _=0;_<8;_++)t=1&t?3988292384^t>>>1:t>>>1;e[m]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==_.getTypeOf(t)?function(t,e,m){var _=v,b=0+m;t^=-1;for(var w=0;w<b;w++)t=t>>>8^_[255&(t^e[w])];return-1^t}(0|e,t,t.length):function(t,e,m){var _=v,b=0+m;t^=-1;for(var w=0;w<b;w++)t=t>>>8^_[255&(t^e.charCodeAt(w))];return-1^t}(0|e,t,t.length):0}},{"./utils":32}],5:[function(t,e,m){"use strict";m.base64=!1,m.binary=!1,m.dir=!1,m.createFolders=!0,m.date=null,m.compression=null,m.compressionOptions=null,m.comment=null,m.unixPermissions=null,m.dosPermissions=null},{}],6:[function(t,e,m){"use strict";var _;_="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:_}},{lie:37}],7:[function(t,e,m){"use strict";var _="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,v=t("pako"),b=t("./utils"),w=t("./stream/GenericWorker"),W=_?"uint8array":"array";function u(t,e){w.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}m.magic="\b\0",b.inherits(u,w),u.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(b.transformTo(W,t.data),!1)},u.prototype.flush=function(){w.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},u.prototype.cleanUp=function(){w.prototype.cleanUp.call(this),this._pako=null},u.prototype._createPako=function(){this._pako=new v[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},m.compressWorker=function(t){return new u("Deflate",t)},m.uncompressWorker=function(){return new u("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,m){"use strict";function I(t,e){var m,_="";for(m=0;m<e;m++)_+=String.fromCharCode(255&t),t>>>=8;return _}function i(t,e,m,v,M,H){var G,K,Y=t.file,X=t.compression,J=H!==b.utf8encode,V=_.transformTo("string",H(Y.name)),q=_.transformTo("string",b.utf8encode(Y.name)),Q=Y.comment,$=_.transformTo("string",H(Q)),tt=_.transformTo("string",b.utf8encode(Q)),et=q.length!==Y.name.length,rt=tt.length!==Q.length,nt="",it="",st="",at=Y.dir,ot=Y.date,ht={crc32:0,compressedSize:0,uncompressedSize:0};e&&!m||(ht.crc32=t.crc32,ht.compressedSize=t.compressedSize,ht.uncompressedSize=t.uncompressedSize);var ut=0;e&&(ut|=8),J||!et&&!rt||(ut|=2048);var ft,lt=0,dt=0;at&&(lt|=16),"UNIX"===M?(dt=798,lt|=((ft=Y.unixPermissions)||(ft=at?16893:33204),(65535&ft)<<16)):(dt=20,lt|=63&(Y.dosPermissions||0)),G=ot.getUTCHours(),G<<=6,G|=ot.getUTCMinutes(),G<<=5,G|=ot.getUTCSeconds()/2,K=ot.getUTCFullYear()-1980,K<<=4,K|=ot.getUTCMonth()+1,K<<=5,K|=ot.getUTCDate(),et&&(nt+="up"+I((it=I(1,1)+I(w(V),4)+q).length,2)+it),rt&&(nt+="uc"+I((st=I(1,1)+I(w($),4)+tt).length,2)+st);var ct="";return ct+="\n\0",ct+=I(ut,2),ct+=X.magic,ct+=I(G,2),ct+=I(K,2),ct+=I(ht.crc32,4),ct+=I(ht.compressedSize,4),ct+=I(ht.uncompressedSize,4),ct+=I(V.length,2),ct+=I(nt.length,2),{fileRecord:W.LOCAL_FILE_HEADER+ct+V+nt,dirRecord:W.CENTRAL_FILE_HEADER+I(dt,2)+ct+I($.length,2)+"\0\0\0\0"+I(lt,4)+I(v,4)+V+nt+$}}var _=t("../utils"),v=t("../stream/GenericWorker"),b=t("../utf8"),w=t("../crc32"),W=t("../signature");function n(t,e,m,_){v.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=m,this.encodeFileName=_,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}_.inherits(n,v),n.prototype.push=function(t){var e=t.meta.percent||0,m=this.entriesCount,_=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,v.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:m?(e+100*(m-_-1))/m:100}}))},n.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var m=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:m.fileRecord,meta:{percent:0}})}else this.accumulate=!0},n.prototype.closedSource=function(t){this.accumulate=!1;var e,m=this.streamFiles&&!t.file.dir,_=i(t,m,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(_.dirRecord),m)this.push({data:(e=t,W.DATA_DESCRIPTOR+I(e.crc32,4)+I(e.compressedSize,4)+I(e.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:_.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},n.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e<this.dirRecords.length;e++)this.push({data:this.dirRecords[e],meta:{percent:100}});var m,v,b,w,M,H,G=this.bytesWritten-t,K=(m=this.dirRecords.length,v=G,b=t,w=this.zipComment,M=this.encodeFileName,H=_.transformTo("string",M(w)),W.CENTRAL_DIRECTORY_END+"\0\0\0\0"+I(m,2)+I(m,2)+I(v,4)+I(b,4)+I(H.length,2)+H);this.push({data:K,meta:{percent:100}})},n.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},n.prototype.registerPrevious=function(t){this._sources.push(t);var e=this;return t.on("data",(function(t){e.processChunk(t)})),t.on("end",(function(){e.closedSource(e.previous.streamInfo),e._sources.length?e.prepareNextSource():e.end()})),t.on("error",(function(t){e.error(t)})),this},n.prototype.resume=function(){return!!v.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},n.prototype.error=function(t){var e=this._sources;if(!v.prototype.error.call(this,t))return!1;for(var m=0;m<e.length;m++)try{e[m].error(t)}catch(t){}return!0},n.prototype.lock=function(){v.prototype.lock.call(this);for(var t=this._sources,e=0;e<t.length;e++)t[e].lock()},e.exports=n},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(t,e,m){"use strict";var _=t("../compressions"),v=t("./ZipFileWorker");m.generateWorker=function(t,e,m){var b=new v(e.streamFiles,m,e.platform,e.encodeFileName),w=0;try{t.forEach((function(t,m){w++;var v=function(t,e){var m=t||e,v=_[m];if(!v)throw new Error(m+" is not a valid compression method !");return v}(m.options.compression,e.compression),W=m.options.compressionOptions||e.compressionOptions||{},M=m.dir,H=m.date;m._compressWorker(v,W).withStreamInfo("file",{name:t,dir:M,date:H,comment:m.comment||"",unixPermissions:m.unixPermissions,dosPermissions:m.dosPermissions}).pipe(b)})),b.entriesCount=w}catch(t){b.error(t)}return b}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(t,e,m){"use strict";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var t=new n;for(var e in this)"function"!=typeof this[e]&&(t[e]=this[e]);return t}}(n.prototype=t("./object")).loadAsync=t("./load"),n.support=t("./support"),n.defaults=t("./defaults"),n.version="3.5.0",n.loadAsync=function(t,e){return(new n).loadAsync(t,e)},n.external=t("./external"),e.exports=n},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(t,e,m){"use strict";var _=t("./utils"),v=t("./external"),b=t("./utf8"),w=t("./zipEntries"),W=t("./stream/Crc32Probe"),M=t("./nodejsUtils");function f(t){return new v.Promise((function(e,m){var _=t.decompressed.getContentWorker().pipe(new W);_.on("error",(function(t){m(t)})).on("end",(function(){_.streamInfo.crc32!==t.decompressed.crc32?m(new Error("Corrupted zip : CRC32 mismatch")):e()})).resume()}))}e.exports=function(t,e){var m=this;return e=_.extend(e||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:b.utf8decode}),M.isNode&&M.isStream(t)?v.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):_.prepareContent("the loaded zip file",t,!0,e.optimizedBinaryString,e.base64).then((function(t){var m=new w(e);return m.load(t),m})).then((function(t){var m=[v.Promise.resolve(t)],_=t.files;if(e.checkCRC32)for(var b=0;b<_.length;b++)m.push(f(_[b]));return v.Promise.all(m)})).then((function(t){for(var _=t.shift(),v=_.files,b=0;b<v.length;b++){var w=v[b];m.file(w.fileNameStr,w.decompressed,{binary:!0,optimizedBinaryString:!0,date:w.date,dir:w.dir,comment:w.fileCommentStr.length?w.fileCommentStr:null,unixPermissions:w.unixPermissions,dosPermissions:w.dosPermissions,createFolders:e.createFolders})}return _.zipComment.length&&(m.comment=_.zipComment),m}))}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(t,e,m){"use strict";var _=t("../utils"),v=t("../stream/GenericWorker");function s(t,e){v.call(this,"Nodejs stream input adapter for "+t),this._upstreamEnded=!1,this._bindStream(e)}_.inherits(s,v),s.prototype._bindStream=function(t){var e=this;(this._stream=t).pause(),t.on("data",(function(t){e.push({data:t,meta:{percent:0}})})).on("error",(function(t){e.isPaused?this.generatedError=t:e.error(t)})).on("end",(function(){e.isPaused?e._upstreamEnded=!0:e.end()}))},s.prototype.pause=function(){return!!v.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!v.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},e.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(t,e,m){"use strict";var _=t("readable-stream").Readable;function n(t,e,m){_.call(this,e),this._helper=t;var v=this;t.on("data",(function(t,e){v.push(t)||v._helper.pause(),m&&m(e)})).on("error",(function(t){v.emit("error",t)})).on("end",(function(){v.push(null)}))}t("../utils").inherits(n,_),n.prototype._read=function(){this._helper.resume()},e.exports=n},{"../utils":32,"readable-stream":16}],14:[function(t,e,m){"use strict";e.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(t,e){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(t,e);if("number"==typeof t)throw new Error('The "data" argument must not be a number');return new Buffer(t,e)},allocBuffer:function(t){if(Buffer.alloc)return Buffer.alloc(t);var e=new Buffer(t);return e.fill(0),e},isBuffer:function(t){return Buffer.isBuffer(t)},isStream:function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pause&&"function"==typeof t.resume}}},{}],15:[function(t,e,m){"use strict";function s(t,e,m){var _,w=v.getTypeOf(e),G=v.extend(m||{},W);G.date=G.date||new Date,null!==G.compression&&(G.compression=G.compression.toUpperCase()),"string"==typeof G.unixPermissions&&(G.unixPermissions=parseInt(G.unixPermissions,8)),G.unixPermissions&&16384&G.unixPermissions&&(G.dir=!0),G.dosPermissions&&16&G.dosPermissions&&(G.dir=!0),G.dir&&(t=h(t)),G.createFolders&&(_=function(t){"/"===t.slice(-1)&&(t=t.substring(0,t.length-1));var e=t.lastIndexOf("/");return 0<e?t.substring(0,e):""}(t))&&g.call(this,_,!0);var X,J="string"===w&&!1===G.binary&&!1===G.base64;m&&void 0!==m.binary||(G.binary=!J),(e instanceof M&&0===e.uncompressedSize||G.dir||!e||0===e.length)&&(G.base64=!1,G.binary=!0,e="",G.compression="STORE",w="string"),X=e instanceof M||e instanceof b?e:K.isNode&&K.isStream(e)?new Y(t,e):v.prepareContent(t,e,G.binary,G.optimizedBinaryString,G.base64);var V=new H(t,X,G);this.files[t]=V}function h(t){return"/"!==t.slice(-1)&&(t+="/"),t}var _=t("./utf8"),v=t("./utils"),b=t("./stream/GenericWorker"),w=t("./stream/StreamHelper"),W=t("./defaults"),M=t("./compressedObject"),H=t("./zipObject"),G=t("./generate"),K=t("./nodejsUtils"),Y=t("./nodejs/NodejsStreamInputAdapter"),g=function(t,e){return e=void 0!==e?e:W.createFolders,t=h(t),this.files[t]||s.call(this,t,null,{dir:!0,createFolders:e}),this.files[t]};function u(t){return"[object RegExp]"===Object.prototype.toString.call(t)}var X={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(t){var e,m,_;for(e in this.files)this.files.hasOwnProperty(e)&&(_=this.files[e],(m=e.slice(this.root.length,e.length))&&e.slice(0,this.root.length)===this.root&&t(m,_))},filter:function(t){var e=[];return this.forEach((function(m,_){t(m,_)&&e.push(_)})),e},file:function(t,e,m){if(1!==arguments.length)return t=this.root+t,s.call(this,t,e,m),this;if(u(t)){var _=t;return this.filter((function(t,e){return!e.dir&&_.test(t)}))}var v=this.files[this.root+t];return v&&!v.dir?v:null},folder:function(t){if(!t)return this;if(u(t))return this.filter((function(e,m){return m.dir&&t.test(e)}));var e=this.root+t,m=g.call(this,e),_=this.clone();return _.root=m.name,_},remove:function(t){t=this.root+t;var e=this.files[t];if(e||("/"!==t.slice(-1)&&(t+="/"),e=this.files[t]),e&&!e.dir)delete this.files[t];else for(var m=this.filter((function(e,m){return m.name.slice(0,t.length)===t})),_=0;_<m.length;_++)delete this.files[m[_].name];return this},generate:function(t){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(t){var e,m={};try{if((m=v.extend(t||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:_.utf8encode})).type=m.type.toLowerCase(),m.compression=m.compression.toUpperCase(),"binarystring"===m.type&&(m.type="string"),!m.type)throw new Error("No output type specified.");v.checkSupport(m.type),"darwin"!==m.platform&&"freebsd"!==m.platform&&"linux"!==m.platform&&"sunos"!==m.platform||(m.platform="UNIX"),"win32"===m.platform&&(m.platform="DOS");var W=m.comment||this.comment||"";e=G.generateWorker(this,m,W)}catch(t){(e=new b("error")).error(t)}return new w(e,m.type||"string",m.mimeType)},generateAsync:function(t,e){return this.generateInternalStream(t).accumulate(e)},generateNodeStream:function(t,e){return(t=t||{}).type||(t.type="nodebuffer"),this.generateInternalStream(t).toNodejsStream(e)}};e.exports=X},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(t,e,m){e.exports=t("stream")},{stream:void 0}],17:[function(t,e,m){"use strict";var _=t("./DataReader");function i(t){_.call(this,t);for(var e=0;e<this.data.length;e++)t[e]=255&t[e]}t("../utils").inherits(i,_),i.prototype.byteAt=function(t){return this.data[this.zero+t]},i.prototype.lastIndexOfSignature=function(t){for(var e=t.charCodeAt(0),m=t.charCodeAt(1),_=t.charCodeAt(2),v=t.charCodeAt(3),b=this.length-4;0<=b;--b)if(this.data[b]===e&&this.data[b+1]===m&&this.data[b+2]===_&&this.data[b+3]===v)return b-this.zero;return-1},i.prototype.readAndCheckSignature=function(t){var e=t.charCodeAt(0),m=t.charCodeAt(1),_=t.charCodeAt(2),v=t.charCodeAt(3),b=this.readData(4);return e===b[0]&&m===b[1]&&_===b[2]&&v===b[3]},i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return[];var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./DataReader":18}],18:[function(t,e,m){"use strict";var _=t("../utils");function i(t){this.data=t,this.length=t.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(t){this.checkIndex(this.index+t)},checkIndex:function(t){if(this.length<this.zero+t||t<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+t+"). Corrupted zip ?")},setIndex:function(t){this.checkIndex(t),this.index=t},skip:function(t){this.setIndex(this.index+t)},byteAt:function(t){},readInt:function(t){var e,m=0;for(this.checkOffset(t),e=this.index+t-1;e>=this.index;e--)m=(m<<8)+this.byteAt(e);return this.index+=t,m},readString:function(t){return _.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=i},{"../utils":32}],19:[function(t,e,m){"use strict";var _=t("./Uint8ArrayReader");function i(t){_.call(this,t)}t("../utils").inherits(i,_),i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,m){"use strict";var _=t("./DataReader");function i(t){_.call(this,t)}t("../utils").inherits(i,_),i.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},i.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},i.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},i.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./DataReader":18}],21:[function(t,e,m){"use strict";var _=t("./ArrayReader");function i(t){_.call(this,t)}t("../utils").inherits(i,_),i.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,m){"use strict";var _=t("../utils"),v=t("../support"),b=t("./ArrayReader"),w=t("./StringReader"),W=t("./NodeBufferReader"),M=t("./Uint8ArrayReader");e.exports=function(t){var e=_.getTypeOf(t);return _.checkSupport(e),"string"!==e||v.uint8array?"nodebuffer"===e?new W(t):v.uint8array?new M(_.transformTo("uint8array",t)):new b(_.transformTo("array",t)):new w(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,m){"use strict";m.LOCAL_FILE_HEADER="PK",m.CENTRAL_FILE_HEADER="PK",m.CENTRAL_DIRECTORY_END="PK",m.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",m.ZIP64_CENTRAL_DIRECTORY_END="PK",m.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,m){"use strict";var _=t("./GenericWorker"),v=t("../utils");function s(t){_.call(this,"ConvertWorker to "+t),this.destType=t}v.inherits(s,_),s.prototype.processChunk=function(t){this.push({data:v.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,m){"use strict";var _=t("./GenericWorker"),v=t("../crc32");function s(){_.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,_),s.prototype.processChunk=function(t){this.streamInfo.crc32=v(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,m){"use strict";var _=t("../utils"),v=t("./GenericWorker");function s(t){v.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}_.inherits(s,v),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}v.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,m){"use strict";var _=t("../utils"),v=t("./GenericWorker");function s(t){v.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then((function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=_.getTypeOf(t),e.isPaused||e._tickAndRepeat()}),(function(t){e.error(t)}))}_.inherits(s,v),s.prototype.cleanUp=function(){v.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!v.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,_.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(_.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,m){"use strict";function n(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var m=0;m<this._listeners[t].length;m++)this._listeners[t][m].call(this,e)},pipe:function(t){return t.registerPrevious(this)},registerPrevious:function(t){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=t.streamInfo,this.mergeStreamInfo(),this.previous=t;var e=this;return t.on("data",(function(t){e.processChunk(t)})),t.on("end",(function(){e.end()})),t.on("error",(function(t){e.error(t)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var t=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),t=!0),this.previous&&this.previous.resume(),!t},flush:function(){},processChunk:function(t){this.push(t)},withStreamInfo:function(t,e){return this.extraStreamInfo[t]=e,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var t in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(t)&&(this.streamInfo[t]=this.extraStreamInfo[t])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var t="Worker "+this.name;return this.previous?this.previous+" -> "+t:t}},e.exports=n},{}],29:[function(t,e,m){"use strict";var _=t("../utils"),v=t("./ConvertWorker"),b=t("./GenericWorker"),w=t("../base64"),W=t("../support"),M=t("../external"),H=null;if(W.nodestream)try{H=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function u(t,e,m){var w=e;switch(e){case"blob":case"arraybuffer":w="uint8array";break;case"base64":w="string"}try{this._internalType=w,this._outputType=e,this._mimeType=m,_.checkSupport(w),this._worker=t.pipe(new v(w)),t.lock()}catch(t){this._worker=new b("error"),this._worker.error(t)}}u.prototype={accumulate:function(t){return e=this,m=t,new M.Promise((function(t,v){var b=[],W=e._internalType,M=e._outputType,H=e._mimeType;e.on("data",(function(t,e){b.push(t),m&&m(e)})).on("error",(function(t){b=[],v(t)})).on("end",(function(){try{var e=function(t,e,m){switch(t){case"blob":return _.newBlob(_.transformTo("arraybuffer",e),m);case"base64":return w.encode(e);default:return _.transformTo(t,e)}}(M,function(t,e){var m,_=0,v=null,b=0;for(m=0;m<e.length;m++)b+=e[m].length;switch(t){case"string":return e.join("");case"array":return Array.prototype.concat.apply([],e);case"uint8array":for(v=new Uint8Array(b),m=0;m<e.length;m++)v.set(e[m],_),_+=e[m].length;return v;case"nodebuffer":return Buffer.concat(e);default:throw new Error("concat : unsupported type '"+t+"'")}}(W,b),H);t(e)}catch(e){v(e)}b=[]})).resume()}));var e,m},on:function(t,e){var m=this;return"data"===t?this._worker.on(t,(function(t){e.call(m,t.data,t.meta)})):this._worker.on(t,(function(){_.delay(e,arguments,m)})),this},resume:function(){return _.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(t){if(_.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new H(this,{objectMode:"nodebuffer"!==this._outputType},t)}},e.exports=u},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(t,e,m){"use strict";if(m.base64=!0,m.array=!0,m.string=!0,m.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,m.nodebuffer="undefined"!=typeof Buffer,m.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)m.blob=!1;else{var _=new ArrayBuffer(0);try{m.blob=0===new Blob([_],{type:"application/zip"}).size}catch(t){try{var v=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);v.append(_),m.blob=0===v.getBlob("application/zip").size}catch(t){m.blob=!1}}}try{m.nodestream=!!t("readable-stream").Readable}catch(t){m.nodestream=!1}},{"readable-stream":16}],31:[function(t,e,m){"use strict";for(var _=t("./utils"),v=t("./support"),b=t("./nodejsUtils"),w=t("./stream/GenericWorker"),W=new Array(256),M=0;M<256;M++)W[M]=252<=M?6:248<=M?5:240<=M?4:224<=M?3:192<=M?2:1;function a(){w.call(this,"utf-8 decode"),this.leftOver=null}function f(){w.call(this,"utf-8 encode")}W[254]=W[254]=1,m.utf8encode=function(t){return v.nodebuffer?b.newBufferFrom(t,"utf-8"):function(t){var e,m,_,b,w,W=t.length,M=0;for(b=0;b<W;b++)55296==(64512&(m=t.charCodeAt(b)))&&b+1<W&&56320==(64512&(_=t.charCodeAt(b+1)))&&(m=65536+(m-55296<<10)+(_-56320),b++),M+=m<128?1:m<2048?2:m<65536?3:4;for(e=v.uint8array?new Uint8Array(M):new Array(M),b=w=0;w<M;b++)55296==(64512&(m=t.charCodeAt(b)))&&b+1<W&&56320==(64512&(_=t.charCodeAt(b+1)))&&(m=65536+(m-55296<<10)+(_-56320),b++),m<128?e[w++]=m:(m<2048?e[w++]=192|m>>>6:(m<65536?e[w++]=224|m>>>12:(e[w++]=240|m>>>18,e[w++]=128|m>>>12&63),e[w++]=128|m>>>6&63),e[w++]=128|63&m);return e}(t)},m.utf8decode=function(t){return v.nodebuffer?_.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,m,v,b,w=t.length,M=new Array(2*w);for(e=m=0;e<w;)if((v=t[e++])<128)M[m++]=v;else if(4<(b=W[v]))M[m++]=65533,e+=b-1;else{for(v&=2===b?31:3===b?15:7;1<b&&e<w;)v=v<<6|63&t[e++],b--;1<b?M[m++]=65533:v<65536?M[m++]=v:(v-=65536,M[m++]=55296|v>>10&1023,M[m++]=56320|1023&v)}return M.length!==m&&(M.subarray?M=M.subarray(0,m):M.length=m),_.applyFromCharCode(M)}(t=_.transformTo(v.uint8array?"uint8array":"array",t))},_.inherits(a,w),a.prototype.processChunk=function(t){var e=_.transformTo(v.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(v.uint8array){var b=e;(e=new Uint8Array(b.length+this.leftOver.length)).set(this.leftOver,0),e.set(b,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var w=function(t,e){var m;for((e=e||t.length)>t.length&&(e=t.length),m=e-1;0<=m&&128==(192&t[m]);)m--;return m<0||0===m?e:m+W[t[m]]>e?m:e}(e),M=e;w!==e.length&&(v.uint8array?(M=e.subarray(0,w),this.leftOver=e.subarray(w,e.length)):(M=e.slice(0,w),this.leftOver=e.slice(w,e.length))),this.push({data:m.utf8decode(M),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:m.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},m.Utf8DecodeWorker=a,_.inherits(f,w),f.prototype.processChunk=function(t){this.push({data:m.utf8encode(t.data),meta:t.meta})},m.Utf8EncodeWorker=f},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,m){"use strict";var _=t("./support"),v=t("./base64"),b=t("./nodejsUtils"),w=t("set-immediate-shim"),W=t("./external");function i(t){return t}function l(t,e){for(var m=0;m<t.length;++m)e[m]=255&t.charCodeAt(m);return e}m.newBlob=function(t,e){m.checkSupport("blob");try{return new Blob([t],{type:e})}catch(m){try{var _=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return _.append(t),_.getBlob(e)}catch(t){throw new Error("Bug : can't construct the Blob.")}}};var M={stringifyByChunk:function(t,e,m){var _=[],v=0,b=t.length;if(b<=m)return String.fromCharCode.apply(null,t);for(;v<b;)"array"===e||"nodebuffer"===e?_.push(String.fromCharCode.apply(null,t.slice(v,Math.min(v+m,b)))):_.push(String.fromCharCode.apply(null,t.subarray(v,Math.min(v+m,b)))),v+=m;return _.join("")},stringifyByChar:function(t){for(var e="",m=0;m<t.length;m++)e+=String.fromCharCode(t[m]);return e},applyCanBeUsed:{uint8array:function(){try{return _.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(t){return!1}}(),nodebuffer:function(){try{return _.nodebuffer&&1===String.fromCharCode.apply(null,b.allocBuffer(1)).length}catch(t){return!1}}()}};function a(t){var e=65536,_=m.getTypeOf(t),v=!0;if("uint8array"===_?v=M.applyCanBeUsed.uint8array:"nodebuffer"===_&&(v=M.applyCanBeUsed.nodebuffer),v)for(;1<e;)try{return M.stringifyByChunk(t,_,e)}catch(t){e=Math.floor(e/2)}return M.stringifyByChar(t)}function d(t,e){for(var m=0;m<t.length;m++)e[m]=t[m];return e}m.applyFromCharCode=a;var H={};H.string={string:i,array:function(t){return l(t,new Array(t.length))},arraybuffer:function(t){return H.string.uint8array(t).buffer},uint8array:function(t){return l(t,new Uint8Array(t.length))},nodebuffer:function(t){return l(t,b.allocBuffer(t.length))}},H.array={string:a,array:i,arraybuffer:function(t){return new Uint8Array(t).buffer},uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return b.newBufferFrom(t)}},H.arraybuffer={string:function(t){return a(new Uint8Array(t))},array:function(t){return d(new Uint8Array(t),new Array(t.byteLength))},arraybuffer:i,uint8array:function(t){return new Uint8Array(t)},nodebuffer:function(t){return b.newBufferFrom(new Uint8Array(t))}},H.uint8array={string:a,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return t.buffer},uint8array:i,nodebuffer:function(t){return b.newBufferFrom(t)}},H.nodebuffer={string:a,array:function(t){return d(t,new Array(t.length))},arraybuffer:function(t){return H.nodebuffer.uint8array(t).buffer},uint8array:function(t){return d(t,new Uint8Array(t.length))},nodebuffer:i},m.transformTo=function(t,e){if(e=e||"",!t)return e;m.checkSupport(t);var _=m.getTypeOf(e);return H[_][t](e)},m.getTypeOf=function(t){return"string"==typeof t?"string":"[object Array]"===Object.prototype.toString.call(t)?"array":_.nodebuffer&&b.isBuffer(t)?"nodebuffer":_.uint8array&&t instanceof Uint8Array?"uint8array":_.arraybuffer&&t instanceof ArrayBuffer?"arraybuffer":void 0},m.checkSupport=function(t){if(!_[t.toLowerCase()])throw new Error(t+" is not supported by this platform")},m.MAX_VALUE_16BITS=65535,m.MAX_VALUE_32BITS=-1,m.pretty=function(t){var e,m,_="";for(m=0;m<(t||"").length;m++)_+="\\x"+((e=t.charCodeAt(m))<16?"0":"")+e.toString(16).toUpperCase();return _},m.delay=function(t,e,m){w((function(){t.apply(m||null,e||[])}))},m.inherits=function(t,e){function r(){}r.prototype=e.prototype,t.prototype=new r},m.extend=function(){var t,e,m={};for(t=0;t<arguments.length;t++)for(e in arguments[t])arguments[t].hasOwnProperty(e)&&void 0===m[e]&&(m[e]=arguments[t][e]);return m},m.prepareContent=function(t,e,b,w,M){return W.Promise.resolve(e).then((function(t){return _.blob&&(t instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(t)))&&"undefined"!=typeof FileReader?new W.Promise((function(e,m){var _=new FileReader;_.onload=function(t){e(t.target.result)},_.onerror=function(t){m(t.target.error)},_.readAsArrayBuffer(t)})):t})).then((function(e){var H,G=m.getTypeOf(e);return G?("arraybuffer"===G?e=m.transformTo("uint8array",e):"string"===G&&(M?e=v.decode(e):b&&!0!==w&&(e=l(H=e,_.uint8array?new Uint8Array(H.length):new Array(H.length)))),e):W.Promise.reject(new Error("Can't read the data of '"+t+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))}))}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(t,e,m){"use strict";var _=t("./reader/readerFor"),v=t("./utils"),b=t("./signature"),w=t("./zipEntry"),W=(t("./utf8"),t("./support"));function u(t){this.files=[],this.loadOptions=t}u.prototype={checkSignature:function(t){if(!this.reader.readAndCheckSignature(t)){this.reader.index-=4;var e=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+v.pretty(e)+", expected "+v.pretty(t)+")")}},isSignature:function(t,e){var m=this.reader.index;this.reader.setIndex(t);var _=this.reader.readString(4)===e;return this.reader.setIndex(m),_},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var t=this.reader.readData(this.zipCommentLength),e=W.uint8array?"uint8array":"array",m=v.transformTo(e,t);this.zipComment=this.loadOptions.decodeFileName(m)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var t,e,m,_=this.zip64EndOfCentralSize-44;0<_;)t=this.reader.readInt(2),e=this.reader.readInt(4),m=this.reader.readData(e),this.zip64ExtensibleData[t]={id:t,length:e,value:m}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var t,e;for(t=0;t<this.files.length;t++)e=this.files[t],this.reader.setIndex(e.localHeaderOffset),this.checkSignature(b.LOCAL_FILE_HEADER),e.readLocalPart(this.reader),e.handleUTF8(),e.processAttributes()},readCentralDir:function(){var t;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(b.CENTRAL_FILE_HEADER);)(t=new w({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(t);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var t=this.reader.lastIndexOfSignature(b.CENTRAL_DIRECTORY_END);if(t<0)throw this.isSignature(0,b.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(t);var e=t;if(this.checkSignature(b.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===v.MAX_VALUE_16BITS||this.diskWithCentralDirStart===v.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===v.MAX_VALUE_16BITS||this.centralDirRecords===v.MAX_VALUE_16BITS||this.centralDirSize===v.MAX_VALUE_32BITS||this.centralDirOffset===v.MAX_VALUE_32BITS){if(this.zip64=!0,(t=this.reader.lastIndexOfSignature(b.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(t),this.checkSignature(b.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,b.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(b.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(b.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var m=this.centralDirOffset+this.centralDirSize;this.zip64&&(m+=20,m+=12+this.zip64EndOfCentralSize);var _=e-m;if(0<_)this.isSignature(e,b.CENTRAL_FILE_HEADER)||(this.reader.zero=_);else if(_<0)throw new Error("Corrupted zip: missing "+Math.abs(_)+" bytes.")},prepareReader:function(t){this.reader=_(t)},load:function(t){this.prepareReader(t),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},e.exports=u},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(t,e,m){"use strict";var _=t("./reader/readerFor"),v=t("./utils"),b=t("./compressedObject"),w=t("./crc32"),W=t("./utf8"),M=t("./compressions"),H=t("./support");function f(t,e){this.options=t,this.loadOptions=e}f.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(t){var e,m;if(t.skip(22),this.fileNameLength=t.readInt(2),m=t.readInt(2),this.fileName=t.readData(this.fileNameLength),t.skip(m),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(e=function(t){for(var e in M)if(M.hasOwnProperty(e)&&M[e].magic===t)return M[e];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+v.pretty(this.compressionMethod)+" unknown (inner file : "+v.transformTo("string",this.fileName)+")");this.decompressed=new b(this.compressedSize,this.uncompressedSize,this.crc32,e,t.readData(this.compressedSize))},readCentralPart:function(t){this.versionMadeBy=t.readInt(2),t.skip(2),this.bitFlag=t.readInt(2),this.compressionMethod=t.readString(2),this.date=t.readDate(),this.crc32=t.readInt(4),this.compressedSize=t.readInt(4),this.uncompressedSize=t.readInt(4);var e=t.readInt(2);if(this.extraFieldsLength=t.readInt(2),this.fileCommentLength=t.readInt(2),this.diskNumberStart=t.readInt(2),this.internalFileAttributes=t.readInt(2),this.externalFileAttributes=t.readInt(4),this.localHeaderOffset=t.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");t.skip(e),this.readExtraFields(t),this.parseZIP64ExtraField(t),this.fileComment=t.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var t=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=_(this.extraFields[1].value);this.uncompressedSize===v.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===v.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===v.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===v.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,m,_,v=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4<v;)e=t.readInt(2),m=t.readInt(2),_=t.readData(m),this.extraFields[e]={id:e,length:m,value:_};t.setIndex(v)},handleUTF8:function(){var t=H.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=W.utf8decode(this.fileName),this.fileCommentStr=W.utf8decode(this.fileComment);else{var e=this.findExtraFieldUnicodePath();if(null!==e)this.fileNameStr=e;else{var m=v.transformTo(t,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(m)}var _=this.findExtraFieldUnicodeComment();if(null!==_)this.fileCommentStr=_;else{var b=v.transformTo(t,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(b)}}},findExtraFieldUnicodePath:function(){var t=this.extraFields[28789];if(t){var e=_(t.value);return 1!==e.readInt(1)||w(this.fileName)!==e.readInt(4)?null:W.utf8decode(e.readData(t.length-5))}return null},findExtraFieldUnicodeComment:function(){var t=this.extraFields[25461];if(t){var e=_(t.value);return 1!==e.readInt(1)||w(this.fileComment)!==e.readInt(4)?null:W.utf8decode(e.readData(t.length-5))}return null}},e.exports=f},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(t,e,m){"use strict";function n(t,e,m){this.name=t,this.dir=m.dir,this.date=m.date,this.comment=m.comment,this.unixPermissions=m.unixPermissions,this.dosPermissions=m.dosPermissions,this._data=e,this._dataBinary=m.binary,this.options={compression:m.compression,compressionOptions:m.compressionOptions}}var _=t("./stream/StreamHelper"),v=t("./stream/DataWorker"),b=t("./utf8"),w=t("./compressedObject"),W=t("./stream/GenericWorker");n.prototype={internalStream:function(t){var e=null,m="string";try{if(!t)throw new Error("No output type specified.");var v="string"===(m=t.toLowerCase())||"text"===m;"binarystring"!==m&&"text"!==m||(m="string"),e=this._decompressWorker();var w=!this._dataBinary;w&&!v&&(e=e.pipe(new b.Utf8EncodeWorker)),!w&&v&&(e=e.pipe(new b.Utf8DecodeWorker))}catch(t){(e=new W("error")).error(t)}return new _(e,m,"")},async:function(t,e){return this.internalStream(t).accumulate(e)},nodeStream:function(t,e){return this.internalStream(t||"nodebuffer").toNodejsStream(e)},_compressWorker:function(t,e){if(this._data instanceof w&&this._data.compression.magic===t.magic)return this._data.getCompressedWorker();var m=this._decompressWorker();return this._dataBinary||(m=m.pipe(new b.Utf8EncodeWorker)),w.createWorkerFrom(m,t,e)},_decompressWorker:function(){return this._data instanceof w?this._data.getContentWorker():this._data instanceof W?this._data:new v(this._data)}};for(var M=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],f=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},H=0;H<M.length;H++)n.prototype[M[H]]=f;e.exports=n},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(t,e,_){(function(t){"use strict";var m,_,v=t.MutationObserver||t.WebKitMutationObserver;if(v){var b=0,w=new v(h),W=t.document.createTextNode("");w.observe(W,{characterData:!0}),m=function(){W.data=b=++b%2}}else if(t.setImmediate||void 0===t.MessageChannel)m="document"in t&&"onreadystatechange"in t.document.createElement("script")?function(){var e=t.document.createElement("script");e.onreadystatechange=function(){h(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(h,0)};else{var M=new t.MessageChannel;M.port1.onmessage=h,m=function(){M.port2.postMessage(0)}}var H=[];function h(){var t,e;_=!0;for(var m=H.length;m;){for(e=H,H=[],t=-1;++t<m;)e[t]();m=H.length}_=!1}e.exports=function(t){1!==H.push(t)||_||m()}}).call(this,void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(t,e,m){"use strict";var _=t("immediate");function h(){}var v={},b=["REJECTED"],w=["FULFILLED"],W=["PENDING"];function o(t){if("function"!=typeof t)throw new TypeError("resolver must be a function");this.state=W,this.queue=[],this.outcome=void 0,t!==h&&c(this,t)}function u(t,e,m){this.promise=t,"function"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),"function"==typeof m&&(this.onRejected=m,this.callRejected=this.otherCallRejected)}function l(t,e,m){_((function(){var _;try{_=e(m)}catch(_){return v.reject(t,_)}_===t?v.reject(t,new TypeError("Cannot resolve promise with itself")):v.resolve(t,_)}))}function d(t){var e=t&&t.then;if(t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof e)return function(){e.apply(t,arguments)}}function c(t,e){var m=!1;function n(e){m||(m=!0,v.reject(t,e))}function i(e){m||(m=!0,v.resolve(t,e))}var _=p((function(){e(i,n)}));"error"===_.status&&n(_.value)}function p(t,e){var m={};try{m.value=t(e),m.status="success"}catch(t){m.status="error",m.value=t}return m}(e.exports=o).prototype.finally=function(t){if("function"!=typeof t)return this;var e=this.constructor;return this.then((function(m){return e.resolve(t()).then((function(){return m}))}),(function(m){return e.resolve(t()).then((function(){throw m}))}))},o.prototype.catch=function(t){return this.then(null,t)},o.prototype.then=function(t,e){if("function"!=typeof t&&this.state===w||"function"!=typeof e&&this.state===b)return this;var m=new this.constructor(h);return this.state!==W?l(m,this.state===w?t:e,this.outcome):this.queue.push(new u(m,t,e)),m},u.prototype.callFulfilled=function(t){v.resolve(this.promise,t)},u.prototype.otherCallFulfilled=function(t){l(this.promise,this.onFulfilled,t)},u.prototype.callRejected=function(t){v.reject(this.promise,t)},u.prototype.otherCallRejected=function(t){l(this.promise,this.onRejected,t)},v.resolve=function(t,e){var m=p(d,e);if("error"===m.status)return v.reject(t,m.value);var _=m.value;if(_)c(t,_);else{t.state=w,t.outcome=e;for(var b=-1,W=t.queue.length;++b<W;)t.queue[b].callFulfilled(e)}return t},v.reject=function(t,e){t.state=b,t.outcome=e;for(var m=-1,_=t.queue.length;++m<_;)t.queue[m].callRejected(e);return t},o.resolve=function(t){return t instanceof this?t:v.resolve(new this(h),t)},o.reject=function(t){var e=new this(h);return v.reject(e,t)},o.all=function(t){var e=this;if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var m=t.length,_=!1;if(!m)return this.resolve([]);for(var b=new Array(m),w=0,W=-1,M=new this(h);++W<m;)u(t[W],W);return M;function u(t,W){e.resolve(t).then((function(t){b[W]=t,++w!==m||_||(_=!0,v.resolve(M,b))}),(function(t){_||(_=!0,v.reject(M,t))}))}},o.race=function(t){if("[object Array]"!==Object.prototype.toString.call(t))return this.reject(new TypeError("must be an array"));var e=t.length,m=!1;if(!e)return this.resolve([]);for(var _,b=-1,w=new this(h);++b<e;)_=t[b],this.resolve(_).then((function(t){m||(m=!0,v.resolve(w,t))}),(function(t){m||(m=!0,v.reject(w,t))}));return w}},{immediate:36}],38:[function(t,e,m){"use strict";var _={};(0,t("./lib/utils/common").assign)(_,t("./lib/deflate"),t("./lib/inflate"),t("./lib/zlib/constants")),e.exports=_},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(t,e,m){"use strict";var _=t("./zlib/deflate"),v=t("./utils/common"),b=t("./utils/strings"),w=t("./zlib/messages"),W=t("./zlib/zstream"),M=Object.prototype.toString,H=0,G=-1,K=0,Y=8;function p(t){if(!(this instanceof p))return new p(t);this.options=v.assign({level:G,method:Y,chunkSize:16384,windowBits:15,memLevel:8,strategy:K,to:""},t||{});var e=this.options;e.raw&&0<e.windowBits?e.windowBits=-e.windowBits:e.gzip&&0<e.windowBits&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new W,this.strm.avail_out=0;var m=_.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(m!==H)throw new Error(w[m]);if(e.header&&_.deflateSetHeader(this.strm,e.header),e.dictionary){var X;if(X="string"==typeof e.dictionary?b.string2buf(e.dictionary):"[object ArrayBuffer]"===M.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(m=_.deflateSetDictionary(this.strm,X))!==H)throw new Error(w[m]);this._dict_set=!0}}function n(t,e){var m=new p(e);if(m.push(t,!0),m.err)throw m.msg||w[m.err];return m.result}p.prototype.push=function(t,e){var m,w,W=this.strm,G=this.options.chunkSize;if(this.ended)return!1;w=e===~~e?e:!0===e?4:0,"string"==typeof t?W.input=b.string2buf(t):"[object ArrayBuffer]"===M.call(t)?W.input=new Uint8Array(t):W.input=t,W.next_in=0,W.avail_in=W.input.length;do{if(0===W.avail_out&&(W.output=new v.Buf8(G),W.next_out=0,W.avail_out=G),1!==(m=_.deflate(W,w))&&m!==H)return this.onEnd(m),!(this.ended=!0);0!==W.avail_out&&(0!==W.avail_in||4!==w&&2!==w)||("string"===this.options.to?this.onData(b.buf2binstring(v.shrinkBuf(W.output,W.next_out))):this.onData(v.shrinkBuf(W.output,W.next_out)))}while((0<W.avail_in||0===W.avail_out)&&1!==m);return 4===w?(m=_.deflateEnd(this.strm),this.onEnd(m),this.ended=!0,m===H):2!==w||(this.onEnd(H),!(W.avail_out=0))},p.prototype.onData=function(t){this.chunks.push(t)},p.prototype.onEnd=function(t){t===H&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=v.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},m.Deflate=p,m.deflate=n,m.deflateRaw=function(t,e){return(e=e||{}).raw=!0,n(t,e)},m.gzip=function(t,e){return(e=e||{}).gzip=!0,n(t,e)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(t,e,m){"use strict";var _=t("./zlib/inflate"),v=t("./utils/common"),b=t("./utils/strings"),w=t("./zlib/constants"),W=t("./zlib/messages"),M=t("./zlib/zstream"),H=t("./zlib/gzheader"),G=Object.prototype.toString;function a(t){if(!(this instanceof a))return new a(t);this.options=v.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&0<=e.windowBits&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(0<=e.windowBits&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),15<e.windowBits&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new M,this.strm.avail_out=0;var m=_.inflateInit2(this.strm,e.windowBits);if(m!==w.Z_OK)throw new Error(W[m]);this.header=new H,_.inflateGetHeader(this.strm,this.header)}function o(t,e){var m=new a(e);if(m.push(t,!0),m.err)throw m.msg||W[m.err];return m.result}a.prototype.push=function(t,e){var m,W,M,H,K,Y,X=this.strm,J=this.options.chunkSize,V=this.options.dictionary,q=!1;if(this.ended)return!1;W=e===~~e?e:!0===e?w.Z_FINISH:w.Z_NO_FLUSH,"string"==typeof t?X.input=b.binstring2buf(t):"[object ArrayBuffer]"===G.call(t)?X.input=new Uint8Array(t):X.input=t,X.next_in=0,X.avail_in=X.input.length;do{if(0===X.avail_out&&(X.output=new v.Buf8(J),X.next_out=0,X.avail_out=J),(m=_.inflate(X,w.Z_NO_FLUSH))===w.Z_NEED_DICT&&V&&(Y="string"==typeof V?b.string2buf(V):"[object ArrayBuffer]"===G.call(V)?new Uint8Array(V):V,m=_.inflateSetDictionary(this.strm,Y)),m===w.Z_BUF_ERROR&&!0===q&&(m=w.Z_OK,q=!1),m!==w.Z_STREAM_END&&m!==w.Z_OK)return this.onEnd(m),!(this.ended=!0);X.next_out&&(0!==X.avail_out&&m!==w.Z_STREAM_END&&(0!==X.avail_in||W!==w.Z_FINISH&&W!==w.Z_SYNC_FLUSH)||("string"===this.options.to?(M=b.utf8border(X.output,X.next_out),H=X.next_out-M,K=b.buf2string(X.output,M),X.next_out=H,X.avail_out=J-H,H&&v.arraySet(X.output,X.output,M,H,0),this.onData(K)):this.onData(v.shrinkBuf(X.output,X.next_out)))),0===X.avail_in&&0===X.avail_out&&(q=!0)}while((0<X.avail_in||0===X.avail_out)&&m!==w.Z_STREAM_END);return m===w.Z_STREAM_END&&(W=w.Z_FINISH),W===w.Z_FINISH?(m=_.inflateEnd(this.strm),this.onEnd(m),this.ended=!0,m===w.Z_OK):W!==w.Z_SYNC_FLUSH||(this.onEnd(w.Z_OK),!(X.avail_out=0))},a.prototype.onData=function(t){this.chunks.push(t)},a.prototype.onEnd=function(t){t===w.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=v.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},m.Inflate=a,m.inflate=o,m.inflateRaw=function(t,e){return(e=e||{}).raw=!0,o(t,e)},m.ungzip=o},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(t,e,m){"use strict";var _="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;m.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var m=e.shift();if(m){if("object"!=typeof m)throw new TypeError(m+"must be non-object");for(var _ in m)m.hasOwnProperty(_)&&(t[_]=m[_])}}return t},m.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var v={arraySet:function(t,e,m,_,v){if(e.subarray&&t.subarray)t.set(e.subarray(m,m+_),v);else for(var b=0;b<_;b++)t[v+b]=e[m+b]},flattenChunks:function(t){var e,m,_,v,b,w;for(e=_=0,m=t.length;e<m;e++)_+=t[e].length;for(w=new Uint8Array(_),e=v=0,m=t.length;e<m;e++)b=t[e],w.set(b,v),v+=b.length;return w}},b={arraySet:function(t,e,m,_,v){for(var b=0;b<_;b++)t[v+b]=e[m+b]},flattenChunks:function(t){return[].concat.apply([],t)}};m.setTyped=function(t){t?(m.Buf8=Uint8Array,m.Buf16=Uint16Array,m.Buf32=Int32Array,m.assign(m,v)):(m.Buf8=Array,m.Buf16=Array,m.Buf32=Array,m.assign(m,b))},m.setTyped(_)},{}],42:[function(t,e,m){"use strict";var _=t("./common"),v=!0,b=!0;try{String.fromCharCode.apply(null,[0])}catch(t){v=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){b=!1}for(var w=new _.Buf8(256),W=0;W<256;W++)w[W]=252<=W?6:248<=W?5:240<=W?4:224<=W?3:192<=W?2:1;function f(t,e){if(e<65537&&(t.subarray&&b||!t.subarray&&v))return String.fromCharCode.apply(null,_.shrinkBuf(t,e));for(var m="",w=0;w<e;w++)m+=String.fromCharCode(t[w]);return m}w[254]=w[254]=1,m.string2buf=function(t){var e,m,v,b,w,W=t.length,M=0;for(b=0;b<W;b++)55296==(64512&(m=t.charCodeAt(b)))&&b+1<W&&56320==(64512&(v=t.charCodeAt(b+1)))&&(m=65536+(m-55296<<10)+(v-56320),b++),M+=m<128?1:m<2048?2:m<65536?3:4;for(e=new _.Buf8(M),b=w=0;w<M;b++)55296==(64512&(m=t.charCodeAt(b)))&&b+1<W&&56320==(64512&(v=t.charCodeAt(b+1)))&&(m=65536+(m-55296<<10)+(v-56320),b++),m<128?e[w++]=m:(m<2048?e[w++]=192|m>>>6:(m<65536?e[w++]=224|m>>>12:(e[w++]=240|m>>>18,e[w++]=128|m>>>12&63),e[w++]=128|m>>>6&63),e[w++]=128|63&m);return e},m.buf2binstring=function(t){return f(t,t.length)},m.binstring2buf=function(t){for(var e=new _.Buf8(t.length),m=0,v=e.length;m<v;m++)e[m]=t.charCodeAt(m);return e},m.buf2string=function(t,e){var m,_,v,b,W=e||t.length,M=new Array(2*W);for(m=_=0;m<W;)if((v=t[m++])<128)M[_++]=v;else if(4<(b=w[v]))M[_++]=65533,m+=b-1;else{for(v&=2===b?31:3===b?15:7;1<b&&m<W;)v=v<<6|63&t[m++],b--;1<b?M[_++]=65533:v<65536?M[_++]=v:(v-=65536,M[_++]=55296|v>>10&1023,M[_++]=56320|1023&v)}return f(M,_)},m.utf8border=function(t,e){var m;for((e=e||t.length)>t.length&&(e=t.length),m=e-1;0<=m&&128==(192&t[m]);)m--;return m<0||0===m?e:m+w[t[m]]>e?m:e}},{"./common":41}],43:[function(t,e,m){"use strict";e.exports=function(t,e,m,_){for(var v=65535&t|0,b=t>>>16&65535|0,w=0;0!==m;){for(m-=w=2e3<m?2e3:m;b=b+(v=v+e[_++]|0)|0,--w;);v%=65521,b%=65521}return v|b<<16|0}},{}],44:[function(t,e,m){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(t,e,m){"use strict";var _=function(){for(var t,e=[],m=0;m<256;m++){t=m;for(var _=0;_<8;_++)t=1&t?3988292384^t>>>1:t>>>1;e[m]=t}return e}();e.exports=function(t,e,m,v){var b=_,w=v+m;t^=-1;for(var W=v;W<w;W++)t=t>>>8^b[255&(t^e[W])];return-1^t}},{}],46:[function(t,e,m){"use strict";var _,v=t("../utils/common"),b=t("./trees"),w=t("./adler32"),W=t("./crc32"),M=t("./messages"),H=0,G=0,K=-2,Y=2,X=8,J=286,V=30,q=19,Q=2*J+1,$=15,tt=3,et=258,rt=et+tt+1,nt=42,it=113;function S(t,e){return t.msg=M[e],e}function z(t){return(t<<1)-(4<t?9:0)}function E(t){for(var e=t.length;0<=--e;)t[e]=0}function C(t){var e=t.state,m=e.pending;m>t.avail_out&&(m=t.avail_out),0!==m&&(v.arraySet(t.output,e.pending_buf,e.pending_out,m,t.next_out),t.next_out+=m,e.pending_out+=m,t.total_out+=m,t.avail_out-=m,e.pending-=m,0===e.pending&&(e.pending_out=0))}function A(t,e){b._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,C(t.strm)}function I(t,e){t.pending_buf[t.pending++]=e}function O(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function B(t,e){var m,_,v=t.max_chain_length,b=t.strstart,w=t.prev_length,W=t.nice_match,M=t.strstart>t.w_size-rt?t.strstart-(t.w_size-rt):0,H=t.window,G=t.w_mask,K=t.prev,Y=t.strstart+et,X=H[b+w-1],J=H[b+w];t.prev_length>=t.good_match&&(v>>=2),W>t.lookahead&&(W=t.lookahead);do{if(H[(m=e)+w]===J&&H[m+w-1]===X&&H[m]===H[b]&&H[++m]===H[b+1]){b+=2,m++;do{}while(H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&H[++b]===H[++m]&&b<Y);if(_=et-(Y-b),b=Y-et,w<_){if(t.match_start=e,W<=(w=_))break;X=H[b+w-1],J=H[b+w]}}}while((e=K[e&G])>M&&0!=--v);return w<=t.lookahead?w:t.lookahead}function T(t){var e,m,_,b,M,H,G,K,Y,X,J=t.w_size;do{if(b=t.window_size-t.lookahead-t.strstart,t.strstart>=J+(J-rt)){for(v.arraySet(t.window,t.window,J,J,0),t.match_start-=J,t.strstart-=J,t.block_start-=J,e=m=t.hash_size;_=t.head[--e],t.head[e]=J<=_?_-J:0,--m;);for(e=m=J;_=t.prev[--e],t.prev[e]=J<=_?_-J:0,--m;);b+=J}if(0===t.strm.avail_in)break;if(H=t.strm,G=t.window,K=t.strstart+t.lookahead,X=void 0,(Y=b)<(X=H.avail_in)&&(X=Y),m=0===X?0:(H.avail_in-=X,v.arraySet(G,H.input,H.next_in,X,K),1===H.state.wrap?H.adler=w(H.adler,G,X,K):2===H.state.wrap&&(H.adler=W(H.adler,G,X,K)),H.next_in+=X,H.total_in+=X,X),t.lookahead+=m,t.lookahead+t.insert>=tt)for(M=t.strstart-t.insert,t.ins_h=t.window[M],t.ins_h=(t.ins_h<<t.hash_shift^t.window[M+1])&t.hash_mask;t.insert&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[M+tt-1])&t.hash_mask,t.prev[M&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=M,M++,t.insert--,!(t.lookahead+t.insert<tt)););}while(t.lookahead<rt&&0!==t.strm.avail_in)}function R(t,e){for(var m,_;;){if(t.lookahead<rt){if(T(t),t.lookahead<rt&&e===H)return 1;if(0===t.lookahead)break}if(m=0,t.lookahead>=tt&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+tt-1])&t.hash_mask,m=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==m&&t.strstart-m<=t.w_size-rt&&(t.match_length=B(t,m)),t.match_length>=tt)if(_=b._tr_tally(t,t.strstart-t.match_start,t.match_length-tt),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=tt){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+tt-1])&t.hash_mask,m=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart,0!=--t.match_length;);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+1])&t.hash_mask;else _=b._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(_&&(A(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<tt-1?t.strstart:tt-1,4===e?(A(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(A(t,!1),0===t.strm.avail_out)?1:2}function D(t,e){for(var m,_,v;;){if(t.lookahead<rt){if(T(t),t.lookahead<rt&&e===H)return 1;if(0===t.lookahead)break}if(m=0,t.lookahead>=tt&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+tt-1])&t.hash_mask,m=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=tt-1,0!==m&&t.prev_length<t.max_lazy_match&&t.strstart-m<=t.w_size-rt&&(t.match_length=B(t,m),t.match_length<=5&&(1===t.strategy||t.match_length===tt&&4096<t.strstart-t.match_start)&&(t.match_length=tt-1)),t.prev_length>=tt&&t.match_length<=t.prev_length){for(v=t.strstart+t.lookahead-tt,_=b._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-tt),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=v&&(t.ins_h=(t.ins_h<<t.hash_shift^t.window[t.strstart+tt-1])&t.hash_mask,m=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!=--t.prev_length;);if(t.match_available=0,t.match_length=tt-1,t.strstart++,_&&(A(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((_=b._tr_tally(t,0,t.window[t.strstart-1]))&&A(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(_=b._tr_tally(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<tt-1?t.strstart:tt-1,4===e?(A(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(A(t,!1),0===t.strm.avail_out)?1:2}function F(t,e,m,_,v){this.good_length=t,this.max_lazy=e,this.nice_length=m,this.max_chain=_,this.func=v}function N(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=X,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new v.Buf16(2*Q),this.dyn_dtree=new v.Buf16(2*(2*V+1)),this.bl_tree=new v.Buf16(2*(2*q+1)),E(this.dyn_ltree),E(this.dyn_dtree),E(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new v.Buf16($+1),this.heap=new v.Buf16(2*J+1),E(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new v.Buf16(2*J+1),E(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function U(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Y,(e=t.state).pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?nt:it,t.adler=2===e.wrap?0:1,e.last_flush=H,b._tr_init(e),G):S(t,K)}function P(t){var e,m=U(t);return m===G&&((e=t.state).window_size=2*e.w_size,E(e.head),e.max_lazy_match=_[e.level].max_lazy,e.good_match=_[e.level].good_length,e.nice_match=_[e.level].nice_length,e.max_chain_length=_[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=tt-1,e.match_available=0,e.ins_h=0),m}function L(t,e,m,_,b,w){if(!t)return K;var W=1;if(-1===e&&(e=6),_<0?(W=0,_=-_):15<_&&(W=2,_-=16),b<1||9<b||m!==X||_<8||15<_||e<0||9<e||w<0||4<w)return S(t,K);8===_&&(_=9);var M=new N;return(t.state=M).strm=t,M.wrap=W,M.gzhead=null,M.w_bits=_,M.w_size=1<<M.w_bits,M.w_mask=M.w_size-1,M.hash_bits=b+7,M.hash_size=1<<M.hash_bits,M.hash_mask=M.hash_size-1,M.hash_shift=~~((M.hash_bits+tt-1)/tt),M.window=new v.Buf8(2*M.w_size),M.head=new v.Buf16(M.hash_size),M.prev=new v.Buf16(M.w_size),M.lit_bufsize=1<<b+6,M.pending_buf_size=4*M.lit_bufsize,M.pending_buf=new v.Buf8(M.pending_buf_size),M.d_buf=1*M.lit_bufsize,M.l_buf=3*M.lit_bufsize,M.level=e,M.strategy=w,M.method=m,P(t)}_=[new F(0,0,0,0,(function(t,e){var m=65535;for(m>t.pending_buf_size-5&&(m=t.pending_buf_size-5);;){if(t.lookahead<=1){if(T(t),0===t.lookahead&&e===H)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var _=t.block_start+m;if((0===t.strstart||t.strstart>=_)&&(t.lookahead=t.strstart-_,t.strstart=_,A(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-rt&&(A(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(A(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(A(t,!1),t.strm.avail_out),1)})),new F(4,4,8,4,R),new F(4,5,16,8,R),new F(4,6,32,32,R),new F(4,4,16,16,D),new F(8,16,32,32,D),new F(8,16,128,128,D),new F(8,32,128,256,D),new F(32,128,258,1024,D),new F(32,258,258,4096,D)],m.deflateInit=function(t,e){return L(t,e,X,15,8,0)},m.deflateInit2=L,m.deflateReset=P,m.deflateResetKeep=U,m.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?K:(t.state.gzhead=e,G):K},m.deflate=function(t,e){var m,v,w,M;if(!t||!t.state||5<e||e<0)return t?S(t,K):K;if(v=t.state,!t.output||!t.input&&0!==t.avail_in||666===v.status&&4!==e)return S(t,0===t.avail_out?-5:K);if(v.strm=t,m=v.last_flush,v.last_flush=e,v.status===nt)if(2===v.wrap)t.adler=0,I(v,31),I(v,139),I(v,8),v.gzhead?(I(v,(v.gzhead.text?1:0)+(v.gzhead.hcrc?2:0)+(v.gzhead.extra?4:0)+(v.gzhead.name?8:0)+(v.gzhead.comment?16:0)),I(v,255&v.gzhead.time),I(v,v.gzhead.time>>8&255),I(v,v.gzhead.time>>16&255),I(v,v.gzhead.time>>24&255),I(v,9===v.level?2:2<=v.strategy||v.level<2?4:0),I(v,255&v.gzhead.os),v.gzhead.extra&&v.gzhead.extra.length&&(I(v,255&v.gzhead.extra.length),I(v,v.gzhead.extra.length>>8&255)),v.gzhead.hcrc&&(t.adler=W(t.adler,v.pending_buf,v.pending,0)),v.gzindex=0,v.status=69):(I(v,0),I(v,0),I(v,0),I(v,0),I(v,0),I(v,9===v.level?2:2<=v.strategy||v.level<2?4:0),I(v,3),v.status=it);else{var Y=X+(v.w_bits-8<<4)<<8;Y|=(2<=v.strategy||v.level<2?0:v.level<6?1:6===v.level?2:3)<<6,0!==v.strstart&&(Y|=32),Y+=31-Y%31,v.status=it,O(v,Y),0!==v.strstart&&(O(v,t.adler>>>16),O(v,65535&t.adler)),t.adler=1}if(69===v.status)if(v.gzhead.extra){for(w=v.pending;v.gzindex<(65535&v.gzhead.extra.length)&&(v.pending!==v.pending_buf_size||(v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),C(t),w=v.pending,v.pending!==v.pending_buf_size));)I(v,255&v.gzhead.extra[v.gzindex]),v.gzindex++;v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),v.gzindex===v.gzhead.extra.length&&(v.gzindex=0,v.status=73)}else v.status=73;if(73===v.status)if(v.gzhead.name){w=v.pending;do{if(v.pending===v.pending_buf_size&&(v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),C(t),w=v.pending,v.pending===v.pending_buf_size)){M=1;break}M=v.gzindex<v.gzhead.name.length?255&v.gzhead.name.charCodeAt(v.gzindex++):0,I(v,M)}while(0!==M);v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),0===M&&(v.gzindex=0,v.status=91)}else v.status=91;if(91===v.status)if(v.gzhead.comment){w=v.pending;do{if(v.pending===v.pending_buf_size&&(v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),C(t),w=v.pending,v.pending===v.pending_buf_size)){M=1;break}M=v.gzindex<v.gzhead.comment.length?255&v.gzhead.comment.charCodeAt(v.gzindex++):0,I(v,M)}while(0!==M);v.gzhead.hcrc&&v.pending>w&&(t.adler=W(t.adler,v.pending_buf,v.pending-w,w)),0===M&&(v.status=103)}else v.status=103;if(103===v.status&&(v.gzhead.hcrc?(v.pending+2>v.pending_buf_size&&C(t),v.pending+2<=v.pending_buf_size&&(I(v,255&t.adler),I(v,t.adler>>8&255),t.adler=0,v.status=it)):v.status=it),0!==v.pending){if(C(t),0===t.avail_out)return v.last_flush=-1,G}else if(0===t.avail_in&&z(e)<=z(m)&&4!==e)return S(t,-5);if(666===v.status&&0!==t.avail_in)return S(t,-5);if(0!==t.avail_in||0!==v.lookahead||e!==H&&666!==v.status){var J=2===v.strategy?function(t,e){for(var m;;){if(0===t.lookahead&&(T(t),0===t.lookahead)){if(e===H)return 1;break}if(t.match_length=0,m=b._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,m&&(A(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(A(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(A(t,!1),0===t.strm.avail_out)?1:2}(v,e):3===v.strategy?function(t,e){for(var m,_,v,w,W=t.window;;){if(t.lookahead<=et){if(T(t),t.lookahead<=et&&e===H)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=tt&&0<t.strstart&&(_=W[v=t.strstart-1])===W[++v]&&_===W[++v]&&_===W[++v]){w=t.strstart+et;do{}while(_===W[++v]&&_===W[++v]&&_===W[++v]&&_===W[++v]&&_===W[++v]&&_===W[++v]&&_===W[++v]&&_===W[++v]&&v<w);t.match_length=et-(w-v),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=tt?(m=b._tr_tally(t,1,t.match_length-tt),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(m=b._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),m&&(A(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(A(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(A(t,!1),0===t.strm.avail_out)?1:2}(v,e):_[v.level].func(v,e);if(3!==J&&4!==J||(v.status=666),1===J||3===J)return 0===t.avail_out&&(v.last_flush=-1),G;if(2===J&&(1===e?b._tr_align(v):5!==e&&(b._tr_stored_block(v,0,0,!1),3===e&&(E(v.head),0===v.lookahead&&(v.strstart=0,v.block_start=0,v.insert=0))),C(t),0===t.avail_out))return v.last_flush=-1,G}return 4!==e?G:v.wrap<=0?1:(2===v.wrap?(I(v,255&t.adler),I(v,t.adler>>8&255),I(v,t.adler>>16&255),I(v,t.adler>>24&255),I(v,255&t.total_in),I(v,t.total_in>>8&255),I(v,t.total_in>>16&255),I(v,t.total_in>>24&255)):(O(v,t.adler>>>16),O(v,65535&t.adler)),C(t),0<v.wrap&&(v.wrap=-v.wrap),0!==v.pending?G:1)},m.deflateEnd=function(t){var e;return t&&t.state?(e=t.state.status)!==nt&&69!==e&&73!==e&&91!==e&&103!==e&&e!==it&&666!==e?S(t,K):(t.state=null,e===it?S(t,-3):G):K},m.deflateSetDictionary=function(t,e){var m,_,b,W,M,H,Y,X,J=e.length;if(!t||!t.state)return K;if(2===(W=(m=t.state).wrap)||1===W&&m.status!==nt||m.lookahead)return K;for(1===W&&(t.adler=w(t.adler,e,J,0)),m.wrap=0,J>=m.w_size&&(0===W&&(E(m.head),m.strstart=0,m.block_start=0,m.insert=0),X=new v.Buf8(m.w_size),v.arraySet(X,e,J-m.w_size,m.w_size,0),e=X,J=m.w_size),M=t.avail_in,H=t.next_in,Y=t.input,t.avail_in=J,t.next_in=0,t.input=e,T(m);m.lookahead>=tt;){for(_=m.strstart,b=m.lookahead-(tt-1);m.ins_h=(m.ins_h<<m.hash_shift^m.window[_+tt-1])&m.hash_mask,m.prev[_&m.w_mask]=m.head[m.ins_h],m.head[m.ins_h]=_,_++,--b;);m.strstart=_,m.lookahead=tt-1,T(m)}return m.strstart+=m.lookahead,m.block_start=m.strstart,m.insert=m.lookahead,m.lookahead=0,m.match_length=m.prev_length=tt-1,m.match_available=0,t.next_in=H,t.input=Y,t.avail_in=M,m.wrap=W,G},m.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(t,e,m){"use strict";e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(t,e,m){"use strict";e.exports=function(t,e){var m,_,v,b,w,W,M,H,G,K,Y,X,J,V,q,Q,$,tt,et,rt,nt,it,st,at,ot;m=t.state,_=t.next_in,at=t.input,v=_+(t.avail_in-5),b=t.next_out,ot=t.output,w=b-(e-t.avail_out),W=b+(t.avail_out-257),M=m.dmax,H=m.wsize,G=m.whave,K=m.wnext,Y=m.window,X=m.hold,J=m.bits,V=m.lencode,q=m.distcode,Q=(1<<m.lenbits)-1,$=(1<<m.distbits)-1;t:do{J<15&&(X+=at[_++]<<J,J+=8,X+=at[_++]<<J,J+=8),tt=V[X&Q];e:for(;;){if(X>>>=et=tt>>>24,J-=et,0==(et=tt>>>16&255))ot[b++]=65535&tt;else{if(!(16&et)){if(0==(64&et)){tt=V[(65535&tt)+(X&(1<<et)-1)];continue e}if(32&et){m.mode=12;break t}t.msg="invalid literal/length code",m.mode=30;break t}rt=65535&tt,(et&=15)&&(J<et&&(X+=at[_++]<<J,J+=8),rt+=X&(1<<et)-1,X>>>=et,J-=et),J<15&&(X+=at[_++]<<J,J+=8,X+=at[_++]<<J,J+=8),tt=q[X&$];r:for(;;){if(X>>>=et=tt>>>24,J-=et,!(16&(et=tt>>>16&255))){if(0==(64&et)){tt=q[(65535&tt)+(X&(1<<et)-1)];continue r}t.msg="invalid distance code",m.mode=30;break t}if(nt=65535&tt,J<(et&=15)&&(X+=at[_++]<<J,(J+=8)<et&&(X+=at[_++]<<J,J+=8)),M<(nt+=X&(1<<et)-1)){t.msg="invalid distance too far back",m.mode=30;break t}if(X>>>=et,J-=et,(et=b-w)<nt){if(G<(et=nt-et)&&m.sane){t.msg="invalid distance too far back",m.mode=30;break t}if(st=Y,(it=0)===K){if(it+=H-et,et<rt){for(rt-=et;ot[b++]=Y[it++],--et;);it=b-nt,st=ot}}else if(K<et){if(it+=H+K-et,(et-=K)<rt){for(rt-=et;ot[b++]=Y[it++],--et;);if(it=0,K<rt){for(rt-=et=K;ot[b++]=Y[it++],--et;);it=b-nt,st=ot}}}else if(it+=K-et,et<rt){for(rt-=et;ot[b++]=Y[it++],--et;);it=b-nt,st=ot}for(;2<rt;)ot[b++]=st[it++],ot[b++]=st[it++],ot[b++]=st[it++],rt-=3;rt&&(ot[b++]=st[it++],1<rt&&(ot[b++]=st[it++]))}else{for(it=b-nt;ot[b++]=ot[it++],ot[b++]=ot[it++],ot[b++]=ot[it++],2<(rt-=3););rt&&(ot[b++]=ot[it++],1<rt&&(ot[b++]=ot[it++]))}break}}break}}while(_<v&&b<W);_-=rt=J>>3,X&=(1<<(J-=rt<<3))-1,t.next_in=_,t.next_out=b,t.avail_in=_<v?v-_+5:5-(_-v),t.avail_out=b<W?W-b+257:257-(b-W),m.hold=X,m.bits=J}},{}],49:[function(t,e,m){"use strict";var _=t("../utils/common"),v=t("./adler32"),b=t("./crc32"),w=t("./inffast"),W=t("./inftrees"),M=1,H=2,G=0,K=-2,Y=1,X=852,J=592;function L(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new _.Buf16(320),this.work=new _.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Y,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new _.Buf32(X),e.distcode=e.distdyn=new _.Buf32(J),e.sane=1,e.back=-1,G):K}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):K}function u(t,e){var m,_;return t&&t.state?(_=t.state,e<0?(m=0,e=-e):(m=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15<e)?K:(null!==_.window&&_.wbits!==e&&(_.window=null),_.wrap=m,_.wbits=e,o(t))):K}function h(t,e){var m,_;return t?(_=new s,(t.state=_).window=null,(m=u(t,e))!==G&&(t.state=null),m):K}var V,q,Q=!0;function j(t){if(Q){var e;for(V=new _.Buf32(512),q=new _.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(W(M,t.lens,0,288,V,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;W(H,t.lens,0,32,q,0,t.work,{bits:5}),Q=!1}t.lencode=V,t.lenbits=9,t.distcode=q,t.distbits=5}function Z(t,e,m,v){var b,w=t.state;return null===w.window&&(w.wsize=1<<w.wbits,w.wnext=0,w.whave=0,w.window=new _.Buf8(w.wsize)),v>=w.wsize?(_.arraySet(w.window,e,m-w.wsize,w.wsize,0),w.wnext=0,w.whave=w.wsize):(v<(b=w.wsize-w.wnext)&&(b=v),_.arraySet(w.window,e,m-v,b,w.wnext),(v-=b)?(_.arraySet(w.window,e,m-v,v,0),w.wnext=v,w.whave=w.wsize):(w.wnext+=b,w.wnext===w.wsize&&(w.wnext=0),w.whave<w.wsize&&(w.whave+=b))),0}m.inflateReset=o,m.inflateReset2=u,m.inflateResetKeep=a,m.inflateInit=function(t){return h(t,15)},m.inflateInit2=h,m.inflate=function(t,e){var m,X,J,V,q,Q,$,tt,et,rt,nt,it,st,at,ot,ht,ut,ft,lt,dt,ct,pt,mt,_t,gt=0,vt=new _.Buf8(4),bt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return K;12===(m=t.state).mode&&(m.mode=13),q=t.next_out,J=t.output,$=t.avail_out,V=t.next_in,X=t.input,Q=t.avail_in,tt=m.hold,et=m.bits,rt=Q,nt=$,pt=G;t:for(;;)switch(m.mode){case Y:if(0===m.wrap){m.mode=13;break}for(;et<16;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(2&m.wrap&&35615===tt){vt[m.check=0]=255&tt,vt[1]=tt>>>8&255,m.check=b(m.check,vt,2,0),et=tt=0,m.mode=2;break}if(m.flags=0,m.head&&(m.head.done=!1),!(1&m.wrap)||(((255&tt)<<8)+(tt>>8))%31){t.msg="incorrect header check",m.mode=30;break}if(8!=(15&tt)){t.msg="unknown compression method",m.mode=30;break}if(et-=4,ct=8+(15&(tt>>>=4)),0===m.wbits)m.wbits=ct;else if(ct>m.wbits){t.msg="invalid window size",m.mode=30;break}m.dmax=1<<ct,t.adler=m.check=1,m.mode=512&tt?10:12,et=tt=0;break;case 2:for(;et<16;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(m.flags=tt,8!=(255&m.flags)){t.msg="unknown compression method",m.mode=30;break}if(57344&m.flags){t.msg="unknown header flags set",m.mode=30;break}m.head&&(m.head.text=tt>>8&1),512&m.flags&&(vt[0]=255&tt,vt[1]=tt>>>8&255,m.check=b(m.check,vt,2,0)),et=tt=0,m.mode=3;case 3:for(;et<32;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.head&&(m.head.time=tt),512&m.flags&&(vt[0]=255&tt,vt[1]=tt>>>8&255,vt[2]=tt>>>16&255,vt[3]=tt>>>24&255,m.check=b(m.check,vt,4,0)),et=tt=0,m.mode=4;case 4:for(;et<16;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.head&&(m.head.xflags=255&tt,m.head.os=tt>>8),512&m.flags&&(vt[0]=255&tt,vt[1]=tt>>>8&255,m.check=b(m.check,vt,2,0)),et=tt=0,m.mode=5;case 5:if(1024&m.flags){for(;et<16;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.length=tt,m.head&&(m.head.extra_len=tt),512&m.flags&&(vt[0]=255&tt,vt[1]=tt>>>8&255,m.check=b(m.check,vt,2,0)),et=tt=0}else m.head&&(m.head.extra=null);m.mode=6;case 6:if(1024&m.flags&&(Q<(it=m.length)&&(it=Q),it&&(m.head&&(ct=m.head.extra_len-m.length,m.head.extra||(m.head.extra=new Array(m.head.extra_len)),_.arraySet(m.head.extra,X,V,it,ct)),512&m.flags&&(m.check=b(m.check,X,it,V)),Q-=it,V+=it,m.length-=it),m.length))break t;m.length=0,m.mode=7;case 7:if(2048&m.flags){if(0===Q)break t;for(it=0;ct=X[V+it++],m.head&&ct&&m.length<65536&&(m.head.name+=String.fromCharCode(ct)),ct&&it<Q;);if(512&m.flags&&(m.check=b(m.check,X,it,V)),Q-=it,V+=it,ct)break t}else m.head&&(m.head.name=null);m.length=0,m.mode=8;case 8:if(4096&m.flags){if(0===Q)break t;for(it=0;ct=X[V+it++],m.head&&ct&&m.length<65536&&(m.head.comment+=String.fromCharCode(ct)),ct&&it<Q;);if(512&m.flags&&(m.check=b(m.check,X,it,V)),Q-=it,V+=it,ct)break t}else m.head&&(m.head.comment=null);m.mode=9;case 9:if(512&m.flags){for(;et<16;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(tt!==(65535&m.check)){t.msg="header crc mismatch",m.mode=30;break}et=tt=0}m.head&&(m.head.hcrc=m.flags>>9&1,m.head.done=!0),t.adler=m.check=0,m.mode=12;break;case 10:for(;et<32;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}t.adler=m.check=L(tt),et=tt=0,m.mode=11;case 11:if(0===m.havedict)return t.next_out=q,t.avail_out=$,t.next_in=V,t.avail_in=Q,m.hold=tt,m.bits=et,2;t.adler=m.check=1,m.mode=12;case 12:if(5===e||6===e)break t;case 13:if(m.last){tt>>>=7&et,et-=7&et,m.mode=27;break}for(;et<3;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}switch(m.last=1&tt,et-=1,3&(tt>>>=1)){case 0:m.mode=14;break;case 1:if(j(m),m.mode=20,6!==e)break;tt>>>=2,et-=2;break t;case 2:m.mode=17;break;case 3:t.msg="invalid block type",m.mode=30}tt>>>=2,et-=2;break;case 14:for(tt>>>=7&et,et-=7&et;et<32;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if((65535&tt)!=(tt>>>16^65535)){t.msg="invalid stored block lengths",m.mode=30;break}if(m.length=65535&tt,et=tt=0,m.mode=15,6===e)break t;case 15:m.mode=16;case 16:if(it=m.length){if(Q<it&&(it=Q),$<it&&(it=$),0===it)break t;_.arraySet(J,X,V,it,q),Q-=it,V+=it,$-=it,q+=it,m.length-=it;break}m.mode=12;break;case 17:for(;et<14;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(m.nlen=257+(31&tt),tt>>>=5,et-=5,m.ndist=1+(31&tt),tt>>>=5,et-=5,m.ncode=4+(15&tt),tt>>>=4,et-=4,286<m.nlen||30<m.ndist){t.msg="too many length or distance symbols",m.mode=30;break}m.have=0,m.mode=18;case 18:for(;m.have<m.ncode;){for(;et<3;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.lens[bt[m.have++]]=7&tt,tt>>>=3,et-=3}for(;m.have<19;)m.lens[bt[m.have++]]=0;if(m.lencode=m.lendyn,m.lenbits=7,mt={bits:m.lenbits},pt=W(0,m.lens,0,19,m.lencode,0,m.work,mt),m.lenbits=mt.bits,pt){t.msg="invalid code lengths set",m.mode=30;break}m.have=0,m.mode=19;case 19:for(;m.have<m.nlen+m.ndist;){for(;ht=(gt=m.lencode[tt&(1<<m.lenbits)-1])>>>16&255,ut=65535&gt,!((ot=gt>>>24)<=et);){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(ut<16)tt>>>=ot,et-=ot,m.lens[m.have++]=ut;else{if(16===ut){for(_t=ot+2;et<_t;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(tt>>>=ot,et-=ot,0===m.have){t.msg="invalid bit length repeat",m.mode=30;break}ct=m.lens[m.have-1],it=3+(3&tt),tt>>>=2,et-=2}else if(17===ut){for(_t=ot+3;et<_t;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}et-=ot,ct=0,it=3+(7&(tt>>>=ot)),tt>>>=3,et-=3}else{for(_t=ot+7;et<_t;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}et-=ot,ct=0,it=11+(127&(tt>>>=ot)),tt>>>=7,et-=7}if(m.have+it>m.nlen+m.ndist){t.msg="invalid bit length repeat",m.mode=30;break}for(;it--;)m.lens[m.have++]=ct}}if(30===m.mode)break;if(0===m.lens[256]){t.msg="invalid code -- missing end-of-block",m.mode=30;break}if(m.lenbits=9,mt={bits:m.lenbits},pt=W(M,m.lens,0,m.nlen,m.lencode,0,m.work,mt),m.lenbits=mt.bits,pt){t.msg="invalid literal/lengths set",m.mode=30;break}if(m.distbits=6,m.distcode=m.distdyn,mt={bits:m.distbits},pt=W(H,m.lens,m.nlen,m.ndist,m.distcode,0,m.work,mt),m.distbits=mt.bits,pt){t.msg="invalid distances set",m.mode=30;break}if(m.mode=20,6===e)break t;case 20:m.mode=21;case 21:if(6<=Q&&258<=$){t.next_out=q,t.avail_out=$,t.next_in=V,t.avail_in=Q,m.hold=tt,m.bits=et,w(t,nt),q=t.next_out,J=t.output,$=t.avail_out,V=t.next_in,X=t.input,Q=t.avail_in,tt=m.hold,et=m.bits,12===m.mode&&(m.back=-1);break}for(m.back=0;ht=(gt=m.lencode[tt&(1<<m.lenbits)-1])>>>16&255,ut=65535&gt,!((ot=gt>>>24)<=et);){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(ht&&0==(240&ht)){for(ft=ot,lt=ht,dt=ut;ht=(gt=m.lencode[dt+((tt&(1<<ft+lt)-1)>>ft)])>>>16&255,ut=65535&gt,!(ft+(ot=gt>>>24)<=et);){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}tt>>>=ft,et-=ft,m.back+=ft}if(tt>>>=ot,et-=ot,m.back+=ot,m.length=ut,0===ht){m.mode=26;break}if(32&ht){m.back=-1,m.mode=12;break}if(64&ht){t.msg="invalid literal/length code",m.mode=30;break}m.extra=15&ht,m.mode=22;case 22:if(m.extra){for(_t=m.extra;et<_t;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.length+=tt&(1<<m.extra)-1,tt>>>=m.extra,et-=m.extra,m.back+=m.extra}m.was=m.length,m.mode=23;case 23:for(;ht=(gt=m.distcode[tt&(1<<m.distbits)-1])>>>16&255,ut=65535&gt,!((ot=gt>>>24)<=et);){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(0==(240&ht)){for(ft=ot,lt=ht,dt=ut;ht=(gt=m.distcode[dt+((tt&(1<<ft+lt)-1)>>ft)])>>>16&255,ut=65535&gt,!(ft+(ot=gt>>>24)<=et);){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}tt>>>=ft,et-=ft,m.back+=ft}if(tt>>>=ot,et-=ot,m.back+=ot,64&ht){t.msg="invalid distance code",m.mode=30;break}m.offset=ut,m.extra=15&ht,m.mode=24;case 24:if(m.extra){for(_t=m.extra;et<_t;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}m.offset+=tt&(1<<m.extra)-1,tt>>>=m.extra,et-=m.extra,m.back+=m.extra}if(m.offset>m.dmax){t.msg="invalid distance too far back",m.mode=30;break}m.mode=25;case 25:if(0===$)break t;if(it=nt-$,m.offset>it){if((it=m.offset-it)>m.whave&&m.sane){t.msg="invalid distance too far back",m.mode=30;break}st=it>m.wnext?(it-=m.wnext,m.wsize-it):m.wnext-it,it>m.length&&(it=m.length),at=m.window}else at=J,st=q-m.offset,it=m.length;for($<it&&(it=$),$-=it,m.length-=it;J[q++]=at[st++],--it;);0===m.length&&(m.mode=21);break;case 26:if(0===$)break t;J[q++]=m.length,$--,m.mode=21;break;case 27:if(m.wrap){for(;et<32;){if(0===Q)break t;Q--,tt|=X[V++]<<et,et+=8}if(nt-=$,t.total_out+=nt,m.total+=nt,nt&&(t.adler=m.check=m.flags?b(m.check,J,nt,q-nt):v(m.check,J,nt,q-nt)),nt=$,(m.flags?tt:L(tt))!==m.check){t.msg="incorrect data check",m.mode=30;break}et=tt=0}m.mode=28;case 28:if(m.wrap&&m.flags){for(;et<32;){if(0===Q)break t;Q--,tt+=X[V++]<<et,et+=8}if(tt!==(4294967295&m.total)){t.msg="incorrect length check",m.mode=30;break}et=tt=0}m.mode=29;case 29:pt=1;break t;case 30:pt=-3;break t;case 31:return-4;case 32:default:return K}return t.next_out=q,t.avail_out=$,t.next_in=V,t.avail_in=Q,m.hold=tt,m.bits=et,(m.wsize||nt!==t.avail_out&&m.mode<30&&(m.mode<27||4!==e))&&Z(t,t.output,t.next_out,nt-t.avail_out)?(m.mode=31,-4):(rt-=t.avail_in,nt-=t.avail_out,t.total_in+=rt,t.total_out+=nt,m.total+=nt,m.wrap&&nt&&(t.adler=m.check=m.flags?b(m.check,J,nt,t.next_out-nt):v(m.check,J,nt,t.next_out-nt)),t.data_type=m.bits+(m.last?64:0)+(12===m.mode?128:0)+(20===m.mode||15===m.mode?256:0),(0==rt&&0===nt||4===e)&&pt===G&&(pt=-5),pt)},m.inflateEnd=function(t){if(!t||!t.state)return K;var e=t.state;return e.window&&(e.window=null),t.state=null,G},m.inflateGetHeader=function(t,e){var m;return t&&t.state?0==(2&(m=t.state).wrap)?K:((m.head=e).done=!1,G):K},m.inflateSetDictionary=function(t,e){var m,_=e.length;return t&&t.state?0!==(m=t.state).wrap&&11!==m.mode?K:11===m.mode&&v(1,e,_,0)!==m.check?-3:Z(t,e,_,_)?(m.mode=31,-4):(m.havedict=1,G):K},m.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(t,e,m){"use strict";var _=t("../utils/common"),v=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],b=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],w=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],W=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(t,e,m,M,H,G,K,Y){var X,J,V,q,Q,$,tt,et,rt,nt=Y.bits,it=0,st=0,at=0,ot=0,ht=0,ut=0,ft=0,lt=0,dt=0,ct=0,pt=null,mt=0,_t=new _.Buf16(16),gt=new _.Buf16(16),vt=null,bt=0;for(it=0;it<=15;it++)_t[it]=0;for(st=0;st<M;st++)_t[e[m+st]]++;for(ht=nt,ot=15;1<=ot&&0===_t[ot];ot--);if(ot<ht&&(ht=ot),0===ot)return H[G++]=20971520,H[G++]=20971520,Y.bits=1,0;for(at=1;at<ot&&0===_t[at];at++);for(ht<at&&(ht=at),it=lt=1;it<=15;it++)if(lt<<=1,(lt-=_t[it])<0)return-1;if(0<lt&&(0===t||1!==ot))return-1;for(gt[1]=0,it=1;it<15;it++)gt[it+1]=gt[it]+_t[it];for(st=0;st<M;st++)0!==e[m+st]&&(K[gt[e[m+st]]++]=st);if($=0===t?(pt=vt=K,19):1===t?(pt=v,mt-=257,vt=b,bt-=257,256):(pt=w,vt=W,-1),it=at,Q=G,ft=st=ct=0,V=-1,q=(dt=1<<(ut=ht))-1,1===t&&852<dt||2===t&&592<dt)return 1;for(;;){for(tt=it-ft,rt=K[st]<$?(et=0,K[st]):K[st]>$?(et=vt[bt+K[st]],pt[mt+K[st]]):(et=96,0),X=1<<it-ft,at=J=1<<ut;H[Q+(ct>>ft)+(J-=X)]=tt<<24|et<<16|rt|0,0!==J;);for(X=1<<it-1;ct&X;)X>>=1;if(0!==X?(ct&=X-1,ct+=X):ct=0,st++,0==--_t[it]){if(it===ot)break;it=e[m+K[st]]}if(ht<it&&(ct&q)!==V){for(0===ft&&(ft=ht),Q+=at,lt=1<<(ut=it-ft);ut+ft<ot&&!((lt-=_t[ut+ft])<=0);)ut++,lt<<=1;if(dt+=1<<ut,1===t&&852<dt||2===t&&592<dt)return 1;H[V=ct&q]=ht<<24|ut<<16|Q-G|0}}return 0!==ct&&(H[Q+ct]=it-ft<<24|64<<16|0),Y.bits=ht,0}},{"../utils/common":41}],51:[function(t,e,m){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(t,e,m){"use strict";var _=t("../utils/common");function n(t){for(var e=t.length;0<=--e;)t[e]=0}var v=15,b=16,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],W=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],M=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],H=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],G=new Array(576);n(G);var K=new Array(60);n(K);var Y=new Array(512);n(Y);var X=new Array(256);n(X);var J=new Array(29);n(J);var V,q,Q,$=new Array(30);function y(t,e,m,_,v){this.static_tree=t,this.extra_bits=e,this.extra_base=m,this.elems=_,this.max_length=v,this.has_stree=t&&t.length}function s(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function k(t){return t<256?Y[t]:Y[256+(t>>>7)]}function x(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function S(t,e,m){t.bi_valid>b-m?(t.bi_buf|=e<<t.bi_valid&65535,x(t,t.bi_buf),t.bi_buf=e>>b-t.bi_valid,t.bi_valid+=m-b):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=m)}function z(t,e,m){S(t,m[2*e],m[2*e+1])}function E(t,e){for(var m=0;m|=1&t,t>>>=1,m<<=1,0<--e;);return m>>>1}function C(t,e,m){var _,b,w=new Array(v+1),W=0;for(_=1;_<=v;_++)w[_]=W=W+m[_-1]<<1;for(b=0;b<=e;b++){var M=t[2*b+1];0!==M&&(t[2*b]=E(w[M]++,M))}}function A(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function I(t){8<t.bi_valid?x(t,t.bi_buf):0<t.bi_valid&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function O(t,e,m,_){var v=2*e,b=2*m;return t[v]<t[b]||t[v]===t[b]&&_[e]<=_[m]}function B(t,e,m){for(var _=t.heap[m],v=m<<1;v<=t.heap_len&&(v<t.heap_len&&O(e,t.heap[v+1],t.heap[v],t.depth)&&v++,!O(e,_,t.heap[v],t.depth));)t.heap[m]=t.heap[v],m=v,v<<=1;t.heap[m]=_}function T(t,e,m){var _,v,b,M,H=0;if(0!==t.last_lit)for(;_=t.pending_buf[t.d_buf+2*H]<<8|t.pending_buf[t.d_buf+2*H+1],v=t.pending_buf[t.l_buf+H],H++,0===_?z(t,v,e):(z(t,(b=X[v])+256+1,e),0!==(M=w[b])&&S(t,v-=J[b],M),z(t,b=k(--_),m),0!==(M=W[b])&&S(t,_-=$[b],M)),H<t.last_lit;);z(t,256,e)}function R(t,e){var m,_,b,w=e.dyn_tree,W=e.stat_desc.static_tree,M=e.stat_desc.has_stree,H=e.stat_desc.elems,G=-1;for(t.heap_len=0,t.heap_max=573,m=0;m<H;m++)0!==w[2*m]?(t.heap[++t.heap_len]=G=m,t.depth[m]=0):w[2*m+1]=0;for(;t.heap_len<2;)w[2*(b=t.heap[++t.heap_len]=G<2?++G:0)]=1,t.depth[b]=0,t.opt_len--,M&&(t.static_len-=W[2*b+1]);for(e.max_code=G,m=t.heap_len>>1;1<=m;m--)B(t,w,m);for(b=H;m=t.heap[1],t.heap[1]=t.heap[t.heap_len--],B(t,w,1),_=t.heap[1],t.heap[--t.heap_max]=m,t.heap[--t.heap_max]=_,w[2*b]=w[2*m]+w[2*_],t.depth[b]=(t.depth[m]>=t.depth[_]?t.depth[m]:t.depth[_])+1,w[2*m+1]=w[2*_+1]=b,t.heap[1]=b++,B(t,w,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var m,_,b,w,W,M,H=e.dyn_tree,G=e.max_code,K=e.stat_desc.static_tree,Y=e.stat_desc.has_stree,X=e.stat_desc.extra_bits,J=e.stat_desc.extra_base,V=e.stat_desc.max_length,q=0;for(w=0;w<=v;w++)t.bl_count[w]=0;for(H[2*t.heap[t.heap_max]+1]=0,m=t.heap_max+1;m<573;m++)V<(w=H[2*H[2*(_=t.heap[m])+1]+1]+1)&&(w=V,q++),H[2*_+1]=w,G<_||(t.bl_count[w]++,W=0,J<=_&&(W=X[_-J]),M=H[2*_],t.opt_len+=M*(w+W),Y&&(t.static_len+=M*(K[2*_+1]+W)));if(0!==q){do{for(w=V-1;0===t.bl_count[w];)w--;t.bl_count[w]--,t.bl_count[w+1]+=2,t.bl_count[V]--,q-=2}while(0<q);for(w=V;0!==w;w--)for(_=t.bl_count[w];0!==_;)G<(b=t.heap[--m])||(H[2*b+1]!==w&&(t.opt_len+=(w-H[2*b+1])*H[2*b],H[2*b+1]=w),_--)}}(t,e),C(w,G,t.bl_count)}function D(t,e,m){var _,v,b=-1,w=e[1],W=0,M=7,H=4;for(0===w&&(M=138,H=3),e[2*(m+1)+1]=65535,_=0;_<=m;_++)v=w,w=e[2*(_+1)+1],++W<M&&v===w||(W<H?t.bl_tree[2*v]+=W:0!==v?(v!==b&&t.bl_tree[2*v]++,t.bl_tree[32]++):W<=10?t.bl_tree[34]++:t.bl_tree[36]++,b=v,H=(W=0)===w?(M=138,3):v===w?(M=6,3):(M=7,4))}function F(t,e,m){var _,v,b=-1,w=e[1],W=0,M=7,H=4;for(0===w&&(M=138,H=3),_=0;_<=m;_++)if(v=w,w=e[2*(_+1)+1],!(++W<M&&v===w)){if(W<H)for(;z(t,v,t.bl_tree),0!=--W;);else 0!==v?(v!==b&&(z(t,v,t.bl_tree),W--),z(t,16,t.bl_tree),S(t,W-3,2)):W<=10?(z(t,17,t.bl_tree),S(t,W-3,3)):(z(t,18,t.bl_tree),S(t,W-11,7));b=v,H=(W=0)===w?(M=138,3):v===w?(M=6,3):(M=7,4)}}n($);var tt=!1;function U(t,e,m,v){var b,w,W;S(t,0+(v?1:0),3),w=e,W=m,I(b=t),x(b,W),x(b,~W),_.arraySet(b.pending_buf,b.window,w,W,b.pending),b.pending+=W}m._tr_init=function(t){tt||(function(){var t,e,m,_,b,H=new Array(v+1);for(_=m=0;_<28;_++)for(J[_]=m,t=0;t<1<<w[_];t++)X[m++]=_;for(X[m-1]=_,_=b=0;_<16;_++)for($[_]=b,t=0;t<1<<W[_];t++)Y[b++]=_;for(b>>=7;_<30;_++)for($[_]=b<<7,t=0;t<1<<W[_]-7;t++)Y[256+b++]=_;for(e=0;e<=v;e++)H[e]=0;for(t=0;t<=143;)G[2*t+1]=8,t++,H[8]++;for(;t<=255;)G[2*t+1]=9,t++,H[9]++;for(;t<=279;)G[2*t+1]=7,t++,H[7]++;for(;t<=287;)G[2*t+1]=8,t++,H[8]++;for(C(G,287,H),t=0;t<30;t++)K[2*t+1]=5,K[2*t]=E(t,5);V=new y(G,w,257,286,v),q=new y(K,W,0,30,v),Q=new y(new Array(0),M,0,19,7)}(),tt=!0),t.l_desc=new s(t.dyn_ltree,V),t.d_desc=new s(t.dyn_dtree,q),t.bl_desc=new s(t.bl_tree,Q),t.bi_buf=0,t.bi_valid=0,A(t)},m._tr_stored_block=U,m._tr_flush_block=function(t,e,m,_){var v,b,w=0;0<t.level?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,m=4093624447;for(e=0;e<=31;e++,m>>>=1)if(1&m&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),R(t,t.l_desc),R(t,t.d_desc),w=function(t){var e;for(D(t,t.dyn_ltree,t.l_desc.max_code),D(t,t.dyn_dtree,t.d_desc.max_code),R(t,t.bl_desc),e=18;3<=e&&0===t.bl_tree[2*H[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),v=t.opt_len+3+7>>>3,(b=t.static_len+3+7>>>3)<=v&&(v=b)):v=b=m+5,m+4<=v&&-1!==e?U(t,e,m,_):4===t.strategy||b===v?(S(t,2+(_?1:0),3),T(t,G,K)):(S(t,4+(_?1:0),3),function(t,e,m,_){var v;for(S(t,e-257,5),S(t,m-1,5),S(t,_-4,4),v=0;v<_;v++)S(t,t.bl_tree[2*H[v]+1],3);F(t,t.dyn_ltree,e-1),F(t,t.dyn_dtree,m-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,w+1),T(t,t.dyn_ltree,t.dyn_dtree)),A(t),_&&I(t)},m._tr_tally=function(t,e,m){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&m,t.last_lit++,0===e?t.dyn_ltree[2*m]++:(t.matches++,e--,t.dyn_ltree[2*(X[m]+256+1)]++,t.dyn_dtree[2*k(e)]++),t.last_lit===t.lit_bufsize-1},m._tr_align=function(t){var e;S(t,2,3),z(t,256,G),16===(e=t).bi_valid?(x(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}},{"../utils/common":41}],53:[function(t,e,m){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,m){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)}))}).call(this,void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this,void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this,void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this,void 0!==m?m:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this,void 0!==m.g?m.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}}]);PK!x�q9��2assets/js/popup.7b71aedb401104b93788.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[50],{3573:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=elementorModules.frontend.handlers.Base.extend({getDefaultSettings:()=>({selectors:{form:".elementor-form"}}),getDefaultElements(){var e=this.getSettings("selectors"),t={};return t.$form=this.$element.find(e.form),t},bindEvents(){this.elements.$form.on("submit_success",this.handleFormAction)},handleFormAction(e,t){if(void 0===t.data.popup)return;const o=t.data.popup;if("open"===o.action)return elementorProFrontend.modules.popup.showPopup(o);setTimeout((()=>elementorProFrontend.modules.popup.closePopup(o,e)),1e3)}});t.default=o}}]);PK!|����3assets/js/social.787445e9f143597c5be5.bundle.min.jsnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
(self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[]).push([[443],{908:(e,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;class FacebookHandler extends elementorModules.frontend.handlers.Base{getConfig(){return elementorProFrontend.config.facebook_sdk}setConfig(e,o){elementorProFrontend.config.facebook_sdk[e]=o}parse(){FB.XFBML.parse(this.$element[0])}loadSDK(){const e=this.getConfig();e.isLoading||e.isLoaded||(this.setConfig("isLoading",!0),jQuery.ajax({url:"https://connect.facebook.net/"+e.lang+"/sdk.js",dataType:"script",cache:!0,success:()=>{FB.init({appId:e.app_id,version:"v2.10",xfbml:!1}),this.setConfig("isLoaded",!0),this.setConfig("isLoading",!1),elementorFrontend.elements.$document.trigger("fb:sdk:loaded")}}))}onInit(...e){super.onInit(...e),this.loadSDK();this.getConfig().isLoaded?this.parse():elementorFrontend.elements.$document.on("fb:sdk:loaded",(()=>this.parse()))}}o.default=FacebookHandler}}]);PK!+3�jjassets/css/preview.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-document-handle{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;z-index:100;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);background-color:#fcb92c;padding:5px 10px;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:11px;color:#fff;border-radius:0 0 3px 3px;cursor:pointer}.elementor-document-handle:after,.elementor-document-handle:before{content:"";position:absolute;border:solid transparent}.elementor-document-handle:before{right:calc(100% - 1px);border-right-color:#fcb92c;border-width:0 14px 23px 0}.elementor-document-handle:after{left:calc(100% - 1px);border-left-color:#fcb92c;border-width:0 0 23px 14px}.elementor-document-handle .eicon-edit{margin-right:5px}.elementor-editor-active .elementor{position:relative}.elementor-editor-active .elementor:not(.elementor-edit-mode):hover{-webkit-box-shadow:0 0 0 1px #fcb92c;box-shadow:0 0 0 1px #fcb92c}.elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:normal}.elementor-editor-active .elementor.loading{opacity:.5}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle{-webkit-transform:translateX(-50%) translateY(-100%);-ms-transform:translateX(-50%) translateY(-100%);transform:translateX(-50%) translateY(-100%);border-radius:3px 3px 0 0}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle:before{border-width:23px 14px 0 0}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle:after{border-width:23px 0 0 14px}.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty)+#elementor-add-new-section{display:none}PK!"�E�� assets/css/widget-lottie.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}PK!LX&kk/assets/css/widget-table-of-contents-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-right:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-left:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-left:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:1024px){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:767px){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}PK!I-z�U�Uassets/css/admin.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.wrap.elementor-admin-page-license form.elementor-license-box {
  max-width: 600px;
  background: white;
  margin: 20px 0;
  padding: 20px 20px; }
  .wrap.elementor-admin-page-license form.elementor-license-box h3 {
    border-bottom: 1px solid #eee;
    padding: 20px;
    margin: -20px -20px 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 span {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      padding-left: 5px; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 small {
      float: right;
      font-size: 13px;
      font-weight: normal; }
  .wrap.elementor-admin-page-license form.elementor-license-box label {
    display: block;
    font-size: 1.3em;
    font-weight: 600;
    margin: 1em 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .button {
    height: 30px;
    margin-left: 15px;
    margin-bottom: 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box p.description {
    margin: 10px 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom {
    padding-bottom: 15px;
    border-bottom: 1px solid #eeeeee; }

.wrap.elementor-admin-page-license .elementor-box-action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  margin-top: 30px; }
  .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link {
    color: #72777c;
    margin-right: 15px; }
    .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover {
      color: inherit; }

.fixed .column-elementor_library_type,
.fixed .column-instances {
  width: 10%; }

.fixed .elementor-shortcode-input {
  min-width: 235px; }

@media (min-width: 768px) and (max-width: 1440px) {
  .fixed .column-shortcode {
    width: 25%; }
  .fixed .elementor-shortcode-input {
    min-width: 100%; } }

#available-widgets [class*="elementor-template"] .widget-title:before {
  content: "\e801";
  font-family: eicon;
  font-size: 17px; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

.elementor-button-spinner.error:before {
  content: "\f335";
  color: #ff0000; }

span.font-variations-count {
  display: inline-block;
  vertical-align: top;
  margin: 1px 0 0 5px;
  padding: 0 5px;
  min-width: 7px;
  height: 17px;
  border-radius: 11px;
  background-color: #d4dffb;
  color: #4278b2;
  font-size: 9px;
  line-height: 17px;
  text-align: center;
  z-index: 26; }

.post-type-elementor_font div#elementor-font-custommetabox {
  background: none;
  border: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox button.handlediv {
    display: none; }
  .post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside {
    margin: 0;
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox h2.hndle {
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox .handle-actions {
    display: none; }

.post-type-elementor_font #tagsdiv-elementor_font_type,
.post-type-elementor_font #minor-publishing-actions,
.post-type-elementor_font #misc-publishing-actions {
  display: none; }

.elementor-metabox-content .repeater-block {
  background: #ffffff;
  color: #6d7882;
  padding: 20px;
  margin-bottom: 2px; }
  .elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block.block-visible {
    padding-bottom: 0;
    margin-bottom: 0; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row {
      display: none; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row {
      display: inline-block; }
  .elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block .repeater-title {
    cursor: pointer; }

.elementor-metabox-content .row-font-label {
  padding: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-transform: capitalize; }
  .elementor-metabox-content .row-font-label li {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    width: 100%;
    margin: 0; }
    .elementor-metabox-content .row-font-label li span.label {
      font-weight: 500;
      padding-right: 10px; }
    .elementor-metabox-content .row-font-label li.row-font-weight, .elementor-metabox-content .row-font-label li.row-font-style {
      max-width: 180px; }
    .elementor-metabox-content .row-font-label li.row-font-actions {
      max-width: 200px;
      text-align: right; }

.elementor-metabox-content .repeater-content {
  margin: 0; }
  .elementor-metabox-content .repeater-content .repeater-content-top {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 20px;
    line-height: 28px; }
    .elementor-metabox-content .repeater-content .repeater-content-top > div {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .elementor-metabox-content .repeater-content .repeater-content-top p {
      margin: 0;
      display: inline-block; }
      .elementor-metabox-content .repeater-content .repeater-content-top p label {
        font-weight: 500;
        padding-right: 10px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select {
      max-width: 180px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar {
      max-width: 200px;
      text-align: right; }
  .elementor-metabox-content .repeater-content .repeater-content-bottom {
    background-color: #f7f7f7;
    padding: 20px 40px;
    margin: 0 -20px; }
    .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background-color: #ffffff;
      padding: 10px 20px;
      margin-bottom: 10px;
      -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05);
              box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05); }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child {
        margin-bottom: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        width: 100%;
        margin: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label {
        font-weight: 500;
        max-width: 120px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input {
        padding: 5px 8px;
        margin: 0 15px;
        border-radius: 3px;
        font-size: 12px;
        width: 100%;
        background: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        color: #495157;
        border: 1px solid;
        outline: none; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus) {
          border-color: #d5dadf; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus {
          border-color: #a4afb7; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        max-width: 100px;
        font-size: 11px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        background-color: #eceeef;
        color: #a4afb7; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover {
          background-color: #b01b1b;
          color: white; }

.elementor-metabox-content .elementor-button {
  background-color: #a4afb7;
  color: #fff;
  line-height: 1;
  text-transform: uppercase;
  height: auto;
  padding: 10px 20px;
  outline: none;
  border: none;
  -webkit-transition-property: background, color, opacity, -webkit-box-shadow;
  transition-property: background, color, opacity, -webkit-box-shadow;
  -o-transition-property: background, color, box-shadow, opacity;
  transition-property: background, color, box-shadow, opacity;
  transition-property: background, color, box-shadow, opacity, -webkit-box-shadow;
  -webkit-transition-duration: .3s;
       -o-transition-duration: .3s;
          transition-duration: .3s; }
  .elementor-metabox-content .elementor-button:hover, .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    color: #fff; }
  .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    background-color: #a4afb7; }
  .elementor-metabox-content .elementor-button:hover {
    background-color: #6d7882;
    -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
            box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
    border: none; }
  .elementor-metabox-content .elementor-button:active {
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); }
  .elementor-metabox-content .elementor-button:not([disabled]) {
    cursor: pointer; }
  .elementor-metabox-content .elementor-button.elementor-size-xs {
    font-size: 11px;
    padding: 10px 20px;
    border-radius: 2px; }
  .elementor-metabox-content .elementor-button.elementor-size-sm {
    font-size: 13px;
    padding: 12px 24px;
    border-radius: 3px; }
  .elementor-metabox-content .elementor-button.elementor-size-md {
    font-size: 14px;
    padding: 15px 30px;
    border-radius: 4px; }
  .elementor-metabox-content .elementor-button.elementor-size-lg {
    font-size: 15px;
    padding: 20px 40px;
    border-radius: 5px; }
  .elementor-metabox-content .elementor-button.elementor-size-xl {
    font-size: 18px;
    padding: 25px 50px;
    border-radius: 6px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-right {
    float: right;
    margin-left: 5px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-left {
    float: left;
    margin-right: 5px; }

.elementor-metabox-content input.button.add-repeater-row {
  margin-top: 18px;
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none; }

.elementor-metabox-content .elementor-repeater-tool-btn {
  color: #a4afb7;
  cursor: pointer;
  padding: 0 20px;
  font-size: 12px;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s; }
  .elementor-metabox-content .elementor-repeater-tool-btn i {
    padding-right: 5px; }
  .elementor-metabox-content .elementor-repeater-tool-btn:hover {
    color: #6d7882; }
  .elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover {
    color: #b01b1b; }

.elementor-metabox-content .row-font-preview,
.elementor-metabox-content .inline-preview {
  font-size: 16px;
  text-transform: capitalize; }

.column-font_preview {
  width: 65%; }

.widefat td.column-font_preview {
  font-size: 16px; }

.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]) {
  margin-top: 10px; }

.post-type-elementor_icons div#postbox-container-1 {
  display: none; }

.post-type-elementor_icons div#elementor-custom-icons-metabox {
  display: none;
  border: 1px solid #eceeef;
  border-radius: 1px;
  background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .inside {
    margin-top: 10px;
    margin-bottom: 20px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content {
    background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
    padding: 4px 10px 10px 10px; }
    @media (max-width: 1025px) {
      .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
        padding: 0; } }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h4 {
    color: #556068;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.7px;
    line-height: 28px;
    margin: 0 0 4px 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h5 {
    color: #a4afb7;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.5px;
    line-height: 21px;
    margin: 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i {
    font-size: 64px;
    color: #39b54a; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__file {
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover {
    background-color: grey; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__input {
    padding: 180px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone {
    outline: 2px dashed #d5dadf;
    outline-offset: -3px;
    background-color: #fff;
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons {
    background-color: #f7f7f7;
    border: 1px solid #eceeef;
    border-radius: 1px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content {
      background-color: #f7f7f7; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox {
        padding: 4px 10px 0 10px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
      height: 50px;
      color: #6d7882;
      background-color: #fff;
      -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
              box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
      padding: 0 35px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
      @media (max-width: 1025px) {
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
          padding: 0 6px; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
        -webkit-padding-end: 10px;
                padding-inline-end: 10px;
        -webkit-padding-start: 10px;
                padding-inline-start: 10px; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
            line-height: 1; }
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2) {
          border: 1px solid #a4afb7;
          border-top: 0;
          border-bottom: 0; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
        color: #556068;
        font-size: 14px;
        line-height: 1; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
            font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
          font-weight: bold; }
          @media (max-width: 1025px) {
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove {
          margin-left: auto;
          color: #556068;
          opacity: .6;
          cursor: pointer;
          -webkit-transition: all 0.3s;
          -o-transition: all 0.3s;
          transition: all 0.3s; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i {
            color: #6d7882; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover {
            opacity: 1; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer {
      color: #c2cbd2;
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      border-top: 1px solid #eceeef;
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      text-align: right;
      padding-top: 10px;
      padding-bottom: 10px;
      -webkit-padding-end: 35px;
              padding-inline-end: 35px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr));
    grid-gap: 20px;
    padding: 15px 35px 0 35px;
    overflow-y: auto;
    max-height: 575px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox ul li {
      position: relative;
      height: 0;
      padding-bottom: 100%;
      background-color: #fff;
      -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
              box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      overflow: hidden; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        padding: 1px; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
        color: #c2cbd2;
        font-size: 11px;
        padding: 18px 20px 0;
        white-space: nowrap;
        max-width: 100%;
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis; }
        @media (max-width: 479px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
            display: none; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li i {
        font-size: 32px; }

.post-type-elementor_icons #tagsdiv-elementor_icon_type,
.post-type-elementor_icons #minor-publishing-actions,
.post-type-elementor_icons #misc-publishing-actions {
  display: none; }

.column-icons_prefix {
  width: 65%; }
/*# sourceMappingURL=admin.css.map */PK!!��??assets/css/widget-posts.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}PK!4�|�|�|'assets/css/widget-share-buttons.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-left:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:linear-gradient(90deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-left:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-left:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-right:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}PK!��l��'assets/css/widget-motion-fx-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!r��KKassets/css/editor.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
#elementor-panel-get-pro-elements {
  display: none; }

.elementor-panel .elementor-control .e-control-error {
  color: #b01b1b; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-content {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row;
          flex-flow: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-title {
  width: 45%; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-raw-html {
  width: 55%; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

#elementor-panel-global-widget {
  height: 100%; }
  #elementor-panel-global-widget > * {
    background-color: #fff; }

#elementor-global-widget-locked-header {
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); }
  #elementor-global-widget-locked-header.elementor-nerd-box {
    padding: 40px 25px; }
    #elementor-global-widget-locked-header.elementor-nerd-box .elementor-nerd-box-icon {
      margin-top: 20px; }

#elementor-global-widget-locked-tools {
  margin-top: 15px;
  padding: 0 20px; }

.elementor-global-widget-locked-tool {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 20px 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-global-widget-locked-tool .elementor-button {
    text-transform: uppercase;
    color: #fff;
    padding: 8px 0;
    width: 70px;
    font-weight: 600; }

.elementor-global-widget-locked-tool-description {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

#elementor-global-widget-locked-unlink {
  border-top: 1px solid #e6e9ec; }

#elementor-global-templates .elementor-element {
  position: relative; }
  #elementor-global-templates .elementor-element:before {
    position: absolute;
    font-family: eicons;
    content: '\e91f';
    top: 5px;
    left: 5px;
    color: #fcb92c;
    font-size: 10px; }

#elementor-global-widget-loading {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  #elementor-global-widget-loading:not(.elementor-hidden) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  #elementor-global-widget-loading i {
    color: #d5dadf;
    font-size: 50px; }

.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields {
  margin: 10px 0; }
  .elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields .elementor-control {
    padding: 0; }
  .elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields:last-child {
    margin-bottom: 0; }

.elementor-repeater-row--form-step .elementor-repeater-row-tools:hover {
  background-color: #c2cbd2; }

.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable) {
  background-color: #f1f3f5; }
  .elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable):hover {
    background-color: #e6e9ec; }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

#elementor-publish {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  #elementor-publish__modal .dialog-message {
    padding: 0; }
  #elementor-publish__modal .dialog-buttons-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  #elementor-publish__modal .dialog-publish {
    -webkit-transition-property: opacity, -webkit-box-shadow;
    transition-property: opacity, -webkit-box-shadow;
    -o-transition-property: box-shadow, opacity;
    transition-property: box-shadow, opacity;
    transition-property: box-shadow, opacity, -webkit-box-shadow; }
    #elementor-publish__modal .dialog-publish:not(.elementor-button-success) {
      text-decoration: underline;
      color: #a4afb7;
      font-weight: normal;
      width: 110px;
      background-color: transparent; }
      #elementor-publish__modal .dialog-publish:not(.elementor-button-success):hover {
        color: #6d7882; }
  #elementor-publish__tabs {
    padding-top: 50px; }
    @media (max-width: 1439px) {
      #elementor-publish__tabs {
        width: 28%; } }
  #elementor-publish__screen {
    overflow: auto;
    padding: 50px; }

.elementor-publish__tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  height: 110px;
  padding: 20px 15px;
  cursor: pointer; }
  .elementor-publish__tab.elementor-active {
    background-color: #fff;
    -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07); }
    .elementor-publish__tab.elementor-active:after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 5px;
      background-color: #71d7f7; }
  .elementor-publish__tab__image {
    width: 50px;
    -ms-flex-negative: 0;
        flex-shrink: 0; }
    .elementor-publish__tab__image img {
      width: 100%; }
  .elementor-publish__tab__content {
    text-align: left;
    padding-left: 15px; }
  .elementor-publish__tab__title {
    font-size: 18px;
    color: #556068;
    font-weight: bold; }

#elementor-theme-builder-conditions {
  margin: 40px 0 60px; }
  #elementor-theme-builder-conditions-view {
    overflow: hidden; }
  #elementor-theme-builder-conditions .elementor-control {
    background-color: transparent;
    padding: 0; }
    #elementor-theme-builder-conditions .elementor-control:before {
      content: none; }
    #elementor-theme-builder-conditions .elementor-control select {
      border-width: 0;
      height: 40px;
      padding: 0 14px; }
    #elementor-theme-builder-conditions .elementor-control-type-query {
      width: 100px; }
    #elementor-theme-builder-conditions .elementor-control-type-select .elementor-control-input-wrapper:after {
      right: 10px;
      color: #495157; }
    #elementor-theme-builder-conditions .elementor-control-type {
      width: 120px; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] {
        background-color: #a4afb7; }
        #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] .elementor-control-input-wrapper:before {
          content: '\e8cc'; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] {
        background-color: #c2cbd2; }
        #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] .elementor-control-input-wrapper:before {
          content: '\e8cd'; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] select, #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] select {
        color: #fff;
        text-transform: uppercase;
        padding-left: 33px; }
      #elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:before {
        font-family: eicons;
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 13px;
        font-size: 15px;
        color: #fff; }
      #elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:after {
        color: #fff; }
      #elementor-theme-builder-conditions .elementor-control-type-select {
        background-color: #ffffff; }
      #elementor-theme-builder-conditions .elementor-control-type option {
        color: #495157; }
  #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-right: 10px;
    width: 70%;
    -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    border-radius: 3px; }
    #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      margin-left: 1px; }
      #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) select {
        border-radius: 0; }
  #elementor-theme-builder-conditions .elementor-repeater-fields-wrapper {
    max-width: 700px;
    width: 100%;
    margin: auto; }
  #elementor-theme-builder-conditions .elementor-repeater-fields {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: 10px; }
  #elementor-theme-builder-conditions .elementor-control-field {
    display: block; }
  #elementor-theme-builder-conditions .elementor-control-title,
  #elementor-theme-builder-conditions .elementor-control-spinner {
    display: none; }
  #elementor-theme-builder-conditions .elementor-control-input-wrapper {
    width: 100%;
    max-width: initial; }
  #elementor-theme-builder-conditions .select2-selection {
    height: 40px;
    border: none;
    border-radius: 0; }
    #elementor-theme-builder-conditions .select2-selection__rendered {
      line-height: 40px;
      padding-left: 15px;
      text-align: left; }
    #elementor-theme-builder-conditions .select2-selection__arrow {
      height: 30px; }
      #elementor-theme-builder-conditions .select2-selection__arrow b {
        border-top-color: #495157;
        border-width: 4px 4px 0 4px;
        margin-top: 2px;
        margin-left: -7px; }
  #elementor-theme-builder-conditions .elementor-repeater-tool-remove {
    font-size: 18px;
    cursor: pointer;
    color: #a4afb7; }
  #elementor-theme-builder-conditions .elementor-button-wrapper {
    margin-top: 50px; }
  #elementor-theme-builder-conditions .elementor-repeater-add {
    font-size: 14px;
    padding: 12px 26px; }

.elementor-error .elementor-theme-builder-conditions-repeater-row-controls {
  border: 1px solid rgba(176, 27, 27, 0.5); }

.elementor-conditions-conflict-message {
  margin-top: 10px;
  font-size: 11px;
  color: #b01b1b;
  text-align: left;
  padding-left: 90px; }
  .elementor-conditions-conflict-message a {
    color: #b01b1b; }

.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item {
  display: inline-block; }
  .elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item i {
    margin-right: 5px; }
  .elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item > * {
    display: inline-block;
    line-height: 40px; }

.elementor-conditions-select2-dropdown {
  border: none;
  border-radius: 0; }
  .elementor-conditions-select2-dropdown .select2-results__message {
    display: none; }
  .elementor-conditions-select2-dropdown .select2-search--dropdown .select2-search__field {
    border-width: 0 0 1px;
    border-radius: 0; }

#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-wrapper {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-message {
  text-align: center; }

#elementor-toast.e-theme-builder-save-toaster .dialog-button {
  border-radius: 3px;
  text-align: center;
  font-size: 12px;
  color: #ffffff;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 27px;
  background-color: #6d7882;
  margin: 0; }
  #elementor-toast.e-theme-builder-save-toaster .dialog-button:hover {
    background-color: #39b54a; }
  #elementor-toast.e-theme-builder-save-toaster .dialog-button i {
    margin-right: 5px; }

#elementor-toast.e-theme-builder-save-toaster .dialog-open_site_editor {
  margin-bottom: 10px; }

.elementor-control.elementor-control-sitemap_items.elementor-control-type-repeater .elementor-repeater-row-tools .elementor-repeater-row-item-title span {
  text-transform: capitalize; }

.elementor-editor-popup .elementor-tab-control-settings a:before {
  content: '\e922'; }

#elementor-publish .elementor-popup__display-settings .elementor-control-type-slider .elementor-control-input-wrapper {
  width: 150px; }

#elementor-publish .elementor-popup__display-settings .elementor-control-input-wrapper {
  width: 80px;
  max-width: 100%; }

.elementor-popup__display-settings {
  text-align: left; }
  .elementor-popup__display-settings_controls_group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 60px;
    background-color: #fff;
    margin-bottom: 10px;
    padding-right: 20px;
    -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
    border-radius: 3px; }
    .elementor-popup__display-settings_controls_group:not(.elementor-active) .elementor-control:nth-child(2) h3 {
      color: #a4afb7; }
    .elementor-popup__display-settings_controls_group__icon {
      width: 60px;
      height: 60px;
      border-right: 1px solid #e6e9ec;
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
      .elementor-popup__display-settings_controls_group__icon img {
        width: 35px; }
    .elementor-popup__display-settings_controls_group .elementor-control {
      padding: 0;
      margin: 0; }
      .elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) {
        width: 230px; }
        .elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) h3 {
          font-size: 16px;
          font-weight: 400; }
      .elementor-popup__display-settings_controls_group .elementor-control:not(:nth-child(2)) .elementor-control-title:not(:empty) {
        width: 75px; }
      .elementor-popup__display-settings_controls_group .elementor-control:not(:last-child) {
        margin-left: 25px; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-control-input-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-slider-input {
        width: 45%; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-switcher .elementor-control-field {
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end; }
  .elementor-popup__display-settings .elementor-control-type-section {
    display: none; }
  .elementor-popup__display-settings__group-toggle {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }

#elementor-popup-timing__controls .select2-selection {
  min-height: 27px; }

#elementor-popup-timing__controls .select2-selection__rendered {
  line-height: 1; }

#elementor-popup-timing__controls .select2-selection__choice {
  font-size: 10px; }

#elementor-popup__timing-controls-group--url .elementor-control-url_url .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup__timing-controls-group--sources .elementor-control-sources_sources .elementor-control-input-wrapper {
  width: 300px; }

#elementor-popup__timing-controls-group--devices .elementor-control-devices_devices .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup__timing-controls-group--logged_in .elementor-control-logged_in_roles .elementor-control-input-wrapper {
  width: 195px; }

#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers .elementor-control-input-wrapper {
  width: 100px; }

#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers_options .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup-settings-introduction {
  position: absolute;
  z-index: 1;
  background-color: #fff;
  color: #556068;
  -webkit-box-shadow: -4px -3px 20px 1px rgba(0, 0, 0, 0.07);
          box-shadow: -4px -3px 20px 1px rgba(0, 0, 0, 0.07);
  height: 110px;
  width: 260px;
  padding: 20px 30px;
  border-radius: 3px; }
  #elementor-popup-settings-introduction:before {
    content: '';
    position: absolute;
    border: solid transparent;
    border-width: 5px 7px;
    border-right-color: #fff;
    left: -14px;
    top: 83%; }
  #elementor-popup-settings-introduction .dialog-close-button {
    top: 10px;
    right: 10px;
    font-size: 13px; }
  #elementor-popup-settings-introduction .dialog-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: 14px;
    font-weight: 500; }
    #elementor-popup-settings-introduction .dialog-header i {
      color: #39b54a;
      font-size: 23px;
      margin-right: 10px; }
  #elementor-popup-settings-introduction .dialog-message {
    margin-top: 10px; }
/*# sourceMappingURL=editor.css.map */PK!�J�gsEsEassets/css/admin.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.wrap.elementor-admin-page-license form.elementor-license-box{max-width:600px;background:#fff;margin:20px 0;padding:20px}.wrap.elementor-admin-page-license form.elementor-license-box h3{border-bottom:1px solid #eee;padding:20px;margin:-20px -20px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wrap.elementor-admin-page-license form.elementor-license-box h3 span{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-left:5px}.wrap.elementor-admin-page-license form.elementor-license-box h3 small{float:right;font-size:13px;font-weight:400}.wrap.elementor-admin-page-license form.elementor-license-box label{display:block;font-size:1.3em;font-weight:600;margin:1em 0}.wrap.elementor-admin-page-license form.elementor-license-box .button{height:30px;margin-left:15px;margin-bottom:0}.wrap.elementor-admin-page-license form.elementor-license-box p.description{margin:10px 0}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom{padding-bottom:15px;border-bottom:1px solid #eee}.wrap.elementor-admin-page-license .elementor-box-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin-top:30px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link{color:#72777c;margin-right:15px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover{color:inherit}.fixed .column-elementor_library_type,.fixed .column-instances{width:10%}.fixed .elementor-shortcode-input{min-width:235px}@media (min-width:768px) and (max-width:1440px){.fixed .column-shortcode{width:25%}.fixed .elementor-shortcode-input{min-width:100%}}#available-widgets [class*=elementor-template] .widget-title:before{content:"\e801";font-family:eicon;font-size:17px}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}.elementor-button-spinner.error:before{content:"\f335";color:red}span.font-variations-count{display:inline-block;vertical-align:top;margin:1px 0 0 5px;padding:0 5px;min-width:7px;height:17px;border-radius:11px;background-color:#d4dffb;color:#4278b2;font-size:9px;line-height:17px;text-align:center;z-index:26}.post-type-elementor_font div#elementor-font-custommetabox{background:none;border:0}.post-type-elementor_font div#elementor-font-custommetabox button.handlediv{display:none}.post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside{margin:0;padding:0}.post-type-elementor_font div#elementor-font-custommetabox h2.hndle{padding:0}.post-type-elementor_font #minor-publishing-actions,.post-type-elementor_font #misc-publishing-actions,.post-type-elementor_font #tagsdiv-elementor_font_type,.post-type-elementor_font div#elementor-font-custommetabox .handle-actions{display:none}.elementor-metabox-content .repeater-block{background:#fff;color:#6d7882;padding:20px;margin-bottom:2px}.elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible{padding-bottom:0;margin-bottom:0}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row{display:inline-block}.elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row{display:none}.elementor-metabox-content .repeater-block .repeater-title{cursor:pointer}.elementor-metabox-content .row-font-label{padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;text-transform:capitalize}.elementor-metabox-content .row-font-label li{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .row-font-label li span.label{font-weight:500;padding-right:10px}.elementor-metabox-content .row-font-label li.row-font-style,.elementor-metabox-content .row-font-label li.row-font-weight{max-width:180px}.elementor-metabox-content .row-font-label li.row-font-actions{max-width:200px;text-align:right}.elementor-metabox-content .repeater-content{margin:0}.elementor-metabox-content .repeater-content .repeater-content-top{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:20px;line-height:28px}.elementor-metabox-content .repeater-content .repeater-content-top>div{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-metabox-content .repeater-content .repeater-content-top p{margin:0;display:inline-block}.elementor-metabox-content .repeater-content .repeater-content-top p label{font-weight:500;padding-right:10px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select{max-width:180px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar{max-width:200px;text-align:right}.elementor-metabox-content .repeater-content .repeater-content-bottom{background-color:#f7f7f7;padding:20px 40px;margin:0 -20px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;padding:10px 20px;margin-bottom:10px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.05);box-shadow:0 3px 5px rgba(0,0,0,.05)}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child{margin-bottom:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label{font-weight:500;max-width:120px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input{padding:5px 8px;margin:0 15px;border-radius:3px;font-size:12px;width:100%;background:none;-webkit-box-shadow:none;box-shadow:none;color:#495157;border:1px solid;outline:none}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus){border-color:#d5dadf}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus{border-color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{max-width:100px;font-size:11px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{background-color:#eceeef;color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover{background-color:#b01b1b;color:#fff}.elementor-metabox-content .elementor-button{background-color:#a4afb7;color:#fff;line-height:1;text-transform:uppercase;height:auto;padding:10px 20px;outline:none;border:none;-webkit-transition-property:background,color,opacity,-webkit-box-shadow;transition-property:background,color,opacity,-webkit-box-shadow;-o-transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity,-webkit-box-shadow;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:hover,.elementor-metabox-content .elementor-button:visited{color:#fff}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:visited{background-color:#a4afb7}.elementor-metabox-content .elementor-button:hover{background-color:#6d7882;-webkit-box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);border:none}.elementor-metabox-content .elementor-button:active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1);box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1)}.elementor-metabox-content .elementor-button:not([disabled]){cursor:pointer}.elementor-metabox-content .elementor-button.elementor-size-xs{font-size:11px;padding:10px 20px;border-radius:2px}.elementor-metabox-content .elementor-button.elementor-size-sm{font-size:13px;padding:12px 24px;border-radius:3px}.elementor-metabox-content .elementor-button.elementor-size-md{font-size:14px;padding:15px 30px;border-radius:4px}.elementor-metabox-content .elementor-button.elementor-size-lg{font-size:15px;padding:20px 40px;border-radius:5px}.elementor-metabox-content .elementor-button.elementor-size-xl{font-size:18px;padding:25px 50px;border-radius:6px}.elementor-metabox-content .elementor-button .elementor-align-icon-right{float:right;margin-left:5px}.elementor-metabox-content .elementor-button .elementor-align-icon-left{float:left;margin-right:5px}.elementor-metabox-content input.button.add-repeater-row{margin-top:18px;border:none;-webkit-box-shadow:none;box-shadow:none}.elementor-metabox-content .elementor-repeater-tool-btn{color:#a4afb7;cursor:pointer;padding:0 20px;font-size:12px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-metabox-content .elementor-repeater-tool-btn i{padding-right:5px}.elementor-metabox-content .elementor-repeater-tool-btn:hover{color:#6d7882}.elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover{color:#b01b1b}.elementor-metabox-content .inline-preview,.elementor-metabox-content .row-font-preview{font-size:16px;text-transform:capitalize}.column-font_preview{width:65%}.widefat td.column-font_preview{font-size:16px}.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]){margin-top:10px}.post-type-elementor_icons div#postbox-container-1{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox{display:none;border:1px solid #eceeef;border-radius:1px;background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .inside{margin-top:10px;margin-bottom:20px}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content{background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:4px 10px 10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:0}}.post-type-elementor_icons div#elementor-custom-icons-metabox h4{color:#556068;font-size:22px;font-weight:500;letter-spacing:.7px;line-height:28px;margin:0 0 4px}.post-type-elementor_icons div#elementor-custom-icons-metabox h5{color:#a4afb7;font-size:16px;font-weight:500;letter-spacing:.5px;line-height:21px;margin:0}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i{font-size:64px;color:#39b54a}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__file,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover{background-color:grey}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__input{padding:180px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone{outline:2px dashed #d5dadf;outline-offset:-3px;background-color:#fff;display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons{background-color:#f7f7f7;border:1px solid #eceeef;border-radius:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content{background-color:#f7f7f7}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox{padding:4px 10px 0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{height:50px;color:#6d7882;background-color:#fff;-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.06);box-shadow:0 2px 6px 0 rgba(0,0,0,.06);padding:0 35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{padding:0 6px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{-webkit-padding-end:10px;padding-inline-end:10px;-webkit-padding-start:10px;padding-inline-start:10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{line-height:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2){border:1px solid #a4afb7;border-top:0;border-bottom:0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{color:#556068;font-size:14px;line-height:1}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-weight:700}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove{margin-left:auto;color:#556068;opacity:.6;cursor:pointer;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i{color:#6d7882}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover{opacity:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer{color:#c2cbd2;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;border-top:1px solid #eceeef;font-size:11px;font-weight:500;line-height:1;text-align:right;padding-top:10px;padding-bottom:10px;-webkit-padding-end:35px;padding-inline-end:35px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));grid-gap:20px;padding:15px 35px 0;overflow-y:auto;max-height:575px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li{position:relative;height:0;padding-bottom:100%;background-color:#fff;-webkit-box-shadow:0 1px 12px rgba(0,0,0,.05);box-shadow:0 1px 12px rgba(0,0,0,.05);border-radius:3px;overflow:hidden}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{color:#c2cbd2;font-size:11px;padding:18px 20px 0;white-space:nowrap;max-width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}@media (max-width:479px){.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{display:none}}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li i{font-size:32px}.post-type-elementor_icons #minor-publishing-actions,.post-type-elementor_icons #misc-publishing-actions,.post-type-elementor_icons #tagsdiv-elementor_icon_type{display:none}.column-icons_prefix{width:65%}PK!��w�.�.(assets/css/widget-theme-elements.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}PK!;[9���%assets/css/widget-woocommerce.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}PK!��*��)assets/css/templates/frontend-rtl.min.cssnu�[���@charset "UTF-8";.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-left:0}.woocommerce div.product.elementor .quantity+.button{margin-right:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;left:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-right:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,right)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-left:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;left:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:right}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,0);right:var(--side-cart-alignment-right,auto);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,right)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(-100%));-ms-transform:var(--side-cart-alignment-transform,translateX(-100%));transform:var(--side-cart-alignment-transform,translateX(-100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-right:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;left:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-left:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;right:0;left:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:left}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:right;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,right)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-right:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-left:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-right:15px;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-right:1rem;padding-left:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:right}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,right)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:right;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:left;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-left:30px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-left:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-left:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:right;font-size:14px;font-weight:700}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-left:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-right:0;padding-left:0}@media (min-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 0 8px 20px}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-right:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:right;width:25%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:left;width:75%;padding:0;padding-right:var(--tab-content-spacing,6%)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-right:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-right:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-right:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:right;position:absolute;margin-right:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-right:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-left:0;border-right-width:0}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:left}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:left}.elementor-post-navigation .elementor-post-navigation__next a{float:left}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-left:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;left:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;right:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-left:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-left:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:right;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-left:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-left:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-left:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-cta{cursor:pointer}}@media (min-width:ELEMENTOR_SCREEN_WIDESCREEN_MIN){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:ELEMENTOR_SCREEN_LAPTOP_MAX){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-right:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:linear-gradient(270deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-right:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-right:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-left:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-right:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-left:20px;margin-right:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-left:0;margin-right:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:right}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-right:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-right:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-right:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-right:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-left-color:#1da1f2;position:absolute;right:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-right:7px #e6e9ec;border-style:solid;padding-right:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:right}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;right:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:0;right:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:0;right:auto;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 3px 3px 0;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:3px 0 0 3px;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 3px 0 0}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:0 0 3px 3px}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;right:50%;margin-right:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{right:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 10px 10px 0;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b2b2}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-right:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_MOBILE_NEXT){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_NEXT){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_TABLET_EXTRA_NEXT){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-left:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-right:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-left:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-left:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}.e-tabs-inner-tabs{text-align:right;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}.elementor-payment-button{border:none}.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!Z�۲����!assets/css/templates/frontend.cssnu�[���@charset "UTF-8";
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: flex;
  flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-right: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-left: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-right: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: 100%; }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  justify-content: flex-end; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: flex;
  flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    right: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: flex;
  flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: flex;
  align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  justify-content: flex-start; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  justify-content: flex-end; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-left: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, left); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: inline-flex;
    align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  right: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  transition: background-color 0.4s, transform 0s;
  text-align: left; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, auto);
  right: var(--side-cart-alignment-right, 0);
  transform: translateX(0);
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: flex;
    flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, left); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  transform: scale(0);
  transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  transform: var(--side-cart-alignment-transform, translateX(100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-left: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 20px;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-right: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      left: 0;
      right: auto;
      transform: scale(1);
      transition: background-color 0.4s, transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      transform: translateY(0);
      transition: 0.3s; }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    transform: scale(0);
    transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: flex;
    align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      flex: 20%;
      text-align: right; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: left;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-left: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-right: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-left: 15px;
            font-size: 12px; }
            @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: right; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: left; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-left: 1rem;
        padding-right: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: left; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, left); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: left;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-right: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: right;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        flex: 2;
        padding-right: 30px; }
        @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-right: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        flex: 1; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: left;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-right: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-left: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-left: 0;
          padding-right: 0; }
      @media (min-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-left: 0;
        padding-right: 0; } }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-left: 0;
          padding-right: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-left: 0;
      padding-right: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-left: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: right;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-left: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-left: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-left: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-left: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: left;
    position: absolute;
    margin-left: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-left: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-right: 0;
        border-right-width: 0; }
      @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  flex-basis: 100%;
  flex-shrink: 0; }

.e-sticky-right-column--active {
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: flex;
    align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: right; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: flex;
    flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: right; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: right; }

.elementor-search-form {
  display: block;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: flex;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    flex-basis: 100%;
    color: #55595c;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    transition: 0.3s;
    align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: flex;
  align-items: center; }
  .elementor-author-box__avatar {
    flex-shrink: 0;
    margin-right: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      object-fit: cover; }
  .elementor-author-box__text {
    flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    flex-direction: row; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    flex-direction: row-reverse; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: flex;
  flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: flex;
  pointer-events: none;
  background-color: transparent;
  user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    right: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover; }

.elementor-motion-effects-perspective {
  perspective: 1200px; }

.elementor-widget-posts:after, .elementor-widget-archive-posts:after {
  display: none; }

.elementor-posts-container.elementor-posts-masonry {
  align-items: flex-start; }

.elementor-posts-container:not(.elementor-posts-masonry) {
  align-items: stretch; }

.elementor-posts-container .elementor-post {
  padding: 0;
  margin: 0; }
  .elementor-posts-container .elementor-post__thumbnail {
    overflow: hidden; }
    .elementor-posts-container .elementor-post__thumbnail img {
      display: block;
      width: 100%;
      max-height: none;
      max-width: none;
      transition: filter 0.3s; }
    .elementor-posts-container .elementor-post__thumbnail__link {
      position: relative;
      display: block;
      width: 100%; }

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    height: auto;
    position: absolute;
    top: calc( 50% + 1px);
    left: calc( 50% + 1px);
    transform: scale(1.01) translate(-50%, -50%); }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
    height: 100%;
    width: auto; }

.elementor-posts .elementor-post {
  display: flex;
  transition-property: background, border, box-shadow;
  transition-duration: 0.25s; }
  .elementor-posts .elementor-post__title {
    font-size: 18px;
    margin: 0; }
  .elementor-posts .elementor-post__excerpt {
    margin-bottom: 10px; }
    .elementor-posts .elementor-post__excerpt p {
      margin: 0;
      line-height: 1.5em;
      font-size: 14px;
      color: #777; }
  .elementor-posts .elementor-post__meta-data {
    line-height: 1.3em;
    font-size: 12px;
    margin-bottom: 13px;
    color: #adadad; }
  .elementor-posts .elementor-post__read-more {
    font-size: 12px;
    font-weight: bold; }
  .elementor-posts .elementor-post__thumbnail {
    position: relative; }

.elementor-posts--skin-classic {
  display: grid;
  flex-wrap: wrap; }
  .elementor-posts--skin-classic:not(.elementor-posts-masonry) {
    align-items: stretch; }
  .elementor-posts--skin-classic .elementor-post {
    overflow: hidden; }
    .elementor-posts--skin-classic .elementor-post__text {
      flex-grow: 1; }

.elementor-posts--align-left .elementor-post {
  text-align: left; }

.elementor-posts--align-right .elementor-post {
  text-align: right; }

.elementor-posts--align-center .elementor-post {
  text-align: center; }

.elementor-posts--thumbnail-top .elementor-post {
  display: block;
  /*

			 used to be
			 align-self: flex-start;
			 until v2.1

			*/ }
  .elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
    margin-bottom: 20px; }
  .elementor-posts--thumbnail-top .elementor-post__text {
    width: 100%; }

.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link {
  margin-right: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link {
  margin-left: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link {
  margin-right: auto;
  margin-left: auto; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link, .elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  flex-shrink: 0;
  width: 25%; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link {
  order: 0;
  margin-right: 20px; }

.elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  order: 5;
  margin-left: 20px; }

.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link {
  display: none; }

.elementor-posts .elementor-post__card {
  overflow: hidden;
  position: relative;
  background-color: #fff;
  width: 100%;
  min-height: 100%;
  border-radius: 3px;
  border: 0 solid #818a91;
  transition: all 0.25s; }
  .elementor-posts .elementor-post__card .elementor-post__thumbnail {
    position: relative;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d; }
    .elementor-posts .elementor-post__card .elementor-post__thumbnail img {
      width: calc( 100% + 1px); }
  .elementor-posts .elementor-post__card .elementor-post__text {
    padding: 0 30px;
    margin-bottom: 0;
    margin-top: 20px; }
  .elementor-posts .elementor-post__card .elementor-post__read-more {
    margin-bottom: 20px;
    display: inline-block; }
  .elementor-posts .elementor-post__card .elementor-post__meta-data {
    padding: 15px 30px;
    margin-bottom: 0;
    border-top: 1px solid #eaeaea; }
    .elementor-posts .elementor-post__card .elementor-post__meta-data span + span:before {
      margin: 0 5px; }
  .elementor-posts .elementor-post__card .elementor-post__title {
    font-size: 21px; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt {
    line-height: 1.7; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt, .elementor-posts .elementor-post__card .elementor-post__title {
    margin-bottom: 25px; }
  .elementor-posts .elementor-post__card .elementor-post__badge, .elementor-posts .elementor-post__card .elementor-post__read-more {
    text-transform: uppercase; }

.elementor-posts .elementor-post__badge {
  position: absolute;
  top: 0;
  background: #818a91;
  color: #fff;
  font-size: 12px;
  padding: 0.6em 1.2em;
  line-height: 1;
  font-weight: 400;
  margin: 20px;
  border-radius: 999px; }

.elementor-posts .elementor-post__avatar {
  position: relative;
  padding: 0 30px;
  width: 100%;
  top: -25px;
  height: 0;
  pointer-events: none; }
  .elementor-posts .elementor-post__avatar img {
    border-radius: 50%;
    width: 60px;
    pointer-events: all;
    transform: translateY(-50%); }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start; }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data {
  margin-top: auto; }

.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar {
  padding-top: 0;
  position: static;
  height: auto; }
  .elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar {
    transform: translateY(0);
    vertical-align: bottom; }

.elementor-posts--show-avatar .elementor-post__thumbnail__link {
  margin-bottom: 25px; }

.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after {
  display: block;
  content: '';
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  opacity: 1;
  transition: all 0.3s ease-out; }

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after {
  opacity: 0.5; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-out .elementor-post__thumbnail img, .elementor-posts__hover-zoom-in .elementor-post__thumbnail img {
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1); }

.elementor-card-shadow-yes .elementor-post__card {
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
  .elementor-card-shadow-yes .elementor-post__card:hover {
    box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15); }

.elementor-posts--skin-full_content article {
  flex-direction: column;
  overflow: hidden; }
  .elementor-posts--skin-full_content article .elementor-post__thumbnail {
    padding-bottom: 0; }

body.elementor-editor-active .elementor-posts--skin-full_content,
body.elementor-editor-active .elementor-posts--skin-archive_full_content {
  pointer-events: none; }
  body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link,
  body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link {
    display: none; }

body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link {
  display: block; }

.elementor-portfolio__filters {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  margin: 0; }

.elementor-portfolio__filter {
  margin: 0;
  cursor: pointer;
  padding: 8px; }

.elementor-portfolio-item {
  align-self: flex-start;
  transition-property: transform, opacity;
  transition-timing-function: ease-in-out;
  transform-style: preserve-3d;
  overflow: hidden;
  margin: 0; }
  .elementor-portfolio-item__title {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #fff; }
  .elementor-portfolio-item__tags__separator:before {
    content: ', '; }
  .elementor-portfolio-item__overlay {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    transition: opacity 1s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    background-color: rgba(129, 138, 145, 0.8); }
    .elementor-portfolio-item__overlay:hover {
      opacity: 1;
      transition: opacity 0.5s; }
  .elementor-portfolio-item__img img[src=""] {
    background-color: rgba(0, 0, 0, 0.1);
    height: 100%; }

.elementor-portfolio.elementor-has-item-ratio {
  transition: height 0.5s; }
  .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1); }
    .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link {
      padding-bottom: 56.25%; }

.elementor ul li.elementor-portfolio__filter {
  list-style-type: none; }

.elementor-widget-posts.load-more-align-center .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper {
  text-align: center; }

.elementor-widget-posts.load-more-align-start .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper {
  text-align: start; }

.elementor-widget-posts.load-more-align-end .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper {
  text-align: end; }

.elementor-widget-posts.load-more-align-justify .elementor-button, .elementor-widget-archive-posts.load-more-align-justify .elementor-button {
  width: 100%; }

.elementor-widget-posts .e-load-more-spinner, .elementor-widget-archive-posts .e-load-more-spinner {
  display: flex; }
  .elementor-widget-posts .e-load-more-spinner i,
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner i,
  .elementor-widget-archive-posts .e-load-more-spinner svg {
    margin: 0 auto;
    display: none; }
  .elementor-widget-posts .e-load-more-spinner i, .elementor-widget-archive-posts .e-load-more-spinner i {
    color: var(--load-more-spinner-color); }
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner svg {
    fill: var(--load-more-spinner-color);
    height: 1em;
    width: 1em; }

.elementor-widget-posts .e-load-more-message, .elementor-widget-archive-posts .e-load-more-message {
  color: var(--load-more-message-color);
  text-align: var(--load-more-message-alignment, center);
  display: none;
  margin-top: var(--load-more—spacing, 30px); }

.elementor-widget-posts.e-load-more-pagination-loading, .elementor-widget-archive-posts.e-load-more-pagination-loading {
  cursor: default; }
  .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner {
    margin-top: var(--load-more—spacing, 30px); }
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg {
      display: flex; }
  .elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper {
    visibility: hidden; }

.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper {
  display: none; }

.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message, .elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message {
  display: block; }

.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper {
  visibility: visible; }

.elementor-widget-posts .elementor-button-wrapper, .elementor-widget-archive-posts .elementor-button-wrapper {
  margin-top: var(--load-more—spacing, 30px); }
  .elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner, .elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: inherit; }
  .elementor-widget-posts .elementor-button-wrapper .elementor-button, .elementor-widget-archive-posts .elementor-button-wrapper .elementor-button {
    cursor: pointer;
    position: relative; }

/*
Multi Steps Form

Currently manually overwriting  - need to find a better solution,
the source property is coming from element/dev/scss...

*/
/* TODO: check why elementor-hidden class is not working */
.elementor-hidden,
.elementor-button.elementor-hidden {
  display: none; }

.e-form__step {
  width: 100%; }
  .e-form__step:not(.elementor-hidden) {
    display: flex;
    flex-wrap: wrap; }

.e-form__buttons {
  flex-wrap: wrap; }
  .e-form__buttons, .e-form__buttons__wrapper {
    display: flex; }

.e-form__indicators {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  font-size: 13px;
  margin-bottom: var(--e-form-steps-indicators-spacing); }
  .e-form__indicators__indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-basis: 0;
    padding: 0 var(--e-form-steps-divider-gap); }
    .e-form__indicators__indicator__progress {
      width: 100%;
      position: relative;
      background-color: var(--e-form-steps-indicator-progress-background-color);
      border-radius: var(--e-form-steps-indicator-progress-border-radius);
      overflow: hidden; }
      .e-form__indicators__indicator__progress__meter {
        width: var(--e-form-steps-indicator-progress-meter-width, 0);
        height: var(--e-form-steps-indicator-progress-height);
        line-height: var(--e-form-steps-indicator-progress-height);
        padding-right: 15px;
        border-radius: var(--e-form-steps-indicator-progress-border-radius);
        background-color: var(--e-form-steps-indicator-progress-color);
        color: var(--e-form-steps-indicator-progress-meter-color);
        text-align: right;
        transition: width 0.1s linear; }
    .e-form__indicators__indicator:first-child {
      padding-left: 0; }
    .e-form__indicators__indicator:last-child {
      padding-right: 0; }
    .e-form__indicators__indicator--state-inactive {
      color: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
      .e-form__indicators__indicator--state-inactive [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-inactive-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-inactive svg,
      .e-form__indicators__indicator--state-inactive object {
        fill: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
    .e-form__indicators__indicator--state-active {
      color: var(--e-form-steps-indicator-active-primary-color, #39B54A);
      border-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active svg,
      .e-form__indicators__indicator--state-active object {
        fill: var(--e-form-steps-indicator-active-primary-color, #39B54A); }
    .e-form__indicators__indicator--state-completed {
      color: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-completed [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A);
        background-color: initial; }
      .e-form__indicators__indicator--state-completed svg,
      .e-form__indicators__indicator--state-completed object {
        fill: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
    .e-form__indicators__indicator__icon {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      font-size: var(--e-form-steps-indicator-icon-size);
      border-width: 1px;
      border-style: solid;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      margin-bottom: 10px; }
      .e-form__indicators__indicator__icon img,
      .e-form__indicators__indicator__icon svg,
      .e-form__indicators__indicator__icon object {
        width: var(--e-form-steps-indicator-icon-size);
        height: auto; }
      .e-form__indicators__indicator__icon .e-font-icon-svg {
        height: 1em; }
    .e-form__indicators__indicator__number {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      border-width: 1px;
      border-style: solid;
      display: flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 10px; }
    .e-form__indicators__indicator--shape-circle {
      border-radius: 50%; }
    .e-form__indicators__indicator--shape-square {
      border-radius: 0; }
    .e-form__indicators__indicator--shape-rounded {
      border-radius: 5px; }
    .e-form__indicators__indicator--shape-none {
      border: 0; }
    .e-form__indicators__indicator__label {
      text-align: center; }
    .e-form__indicators__indicator__separator {
      width: 100%;
      height: var(--e-form-steps-divider-width);
      background-color: #c2cbd2; }
  .e-form__indicators--type-number, .e-form__indicators--type-number_text, .e-form__indicators--type-icon, .e-form__indicators--type-icon_text {
    align-items: flex-start; }
    .e-form__indicators--type-number .e-form__indicators__indicator__separator, .e-form__indicators--type-number_text .e-form__indicators__indicator__separator, .e-form__indicators--type-icon .e-form__indicators__indicator__separator, .e-form__indicators--type-icon_text .e-form__indicators__indicator__separator {
      margin-top: calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2); }

/* End OF Multi Steps Form */
.elementor-field-type-hidden {
  display: none; }

.elementor-field-type-html {
  display: inline-block; }

.elementor-login .elementor-remember-me,
.elementor-login .elementor-lost-password {
  font-size: 0.85em; }

.elementor-field-type-recaptcha_v3 .elementor-field-label {
  display: none; }

.elementor-field-type-recaptcha_v3 .grecaptcha-badge {
  z-index: 1; }

.elementor-button .elementor-form-spinner {
  order: 3; }

.elementor-form .elementor-button > span {
  display: flex;
  justify-content: center;
  align-items: center; }

.elementor-form .elementor-button .elementor-button-text {
  white-space: normal;
  flex-grow: 0; }

.elementor-form .elementor-button svg {
  height: auto; }

.elementor-form .elementor-button .e-font-icon-svg {
  height: 1em; }

.elementor-widget-price-list .elementor-price-list {
  list-style: none;
  padding: 0;
  margin: 0; }
  .elementor-widget-price-list .elementor-price-list li {
    margin: 0; }

.elementor-price-list li:not(:last-child) {
  margin-bottom: 20px; }

.elementor-price-list .elementor-price-list-image {
  max-width: 50%;
  flex-shrink: 0;
  padding-right: 25px; }
  .elementor-price-list .elementor-price-list-image img {
    width: 100%; }

.elementor-price-list .elementor-price-list-text,
.elementor-price-list .elementor-price-list-item,
.elementor-price-list .elementor-price-list-header {
  display: flex; }

.elementor-price-list .elementor-price-list-item {
  align-items: flex-start; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-text {
    align-items: flex-start;
    flex-wrap: wrap;
    flex-grow: 1; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
    align-items: center;
    flex-basis: 100%;
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 10px;
    justify-content: space-between; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-title {
    max-width: 80%; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-price {
    font-weight: 600; }
  .elementor-price-list .elementor-price-list-item p.elementor-price-list-description {
    flex-basis: 100%;
    font-size: 14px;
    margin: 0; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-separator {
    flex-grow: 1;
    margin-left: 10px;
    margin-right: 10px;
    border-bottom-style: dotted;
    border-bottom-width: 2px;
    height: 0; }

.elementor-price-table {
  text-align: center; }
  .elementor-price-table .elementor-price-table__header {
    background: var(--e-price-table-header-background-color, #555);
    padding: 20px 0; }
  .elementor-price-table .elementor-price-table__heading {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 24px;
    font-weight: 600;
    color: #fff; }
  .elementor-price-table .elementor-price-table__subheading {
    font-size: 13px;
    font-weight: 400;
    color: #fff; }
  .elementor-price-table .elementor-price-table__original-price {
    margin-right: 15px;
    text-decoration: line-through;
    font-size: 0.5em;
    line-height: 1;
    font-weight: 400;
    align-self: center; }
    .elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency {
      font-size: 1em;
      margin: 0; }
  .elementor-price-table .elementor-price-table__price {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    flex-direction: row;
    color: #555;
    font-weight: 800;
    font-size: 65px;
    padding: 40px 0; }
    .elementor-price-table .elementor-price-table__price .elementor-typo-excluded {
      line-height: initial;
      letter-spacing: initial;
      text-transform: initial;
      font-weight: initial;
      font-size: initial;
      font-style: initial; }
  .elementor-price-table .elementor-price-table__after-price {
    display: flex;
    flex-wrap: wrap;
    text-align: left;
    align-self: stretch;
    align-items: flex-start;
    flex-direction: column; }
  .elementor-price-table .elementor-price-table__integer-part {
    line-height: 0.8; }
  .elementor-price-table .elementor-price-table__currency, .elementor-price-table .elementor-price-table__fractional-part {
    line-height: 1;
    font-size: 0.3em; }
  .elementor-price-table .elementor-price-table__currency {
    margin-right: 3px; }
  .elementor-price-table .elementor-price-table__period {
    width: 100%;
    font-size: 13px;
    font-weight: 400; }
  .elementor-price-table .elementor-price-table__features-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: var(--e-price-table-features-list-color); }
    .elementor-price-table .elementor-price-table__features-list li {
      font-size: 14px;
      line-height: 1;
      margin: 0;
      padding: 0; }
      .elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
        margin-left: 15px;
        margin-right: 15px; }
      .elementor-price-table .elementor-price-table__features-list li:not(:first-child):before {
        content: '';
        display: block;
        border: 0 solid rgba(122, 122, 122, 0.3);
        margin: 10px 12.5%; }
    .elementor-price-table .elementor-price-table__features-list i {
      margin-right: 10px;
      font-size: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg {
      margin-right: 10px;
      fill: var(--e-price-table-features-list-color);
      height: 1.3em;
      width: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg ~ * {
      vertical-align: text-top; }
  .elementor-price-table .elementor-price-table__footer {
    padding: 30px 0; }
  .elementor-price-table .elementor-price-table__additional_info {
    margin: 0;
    font-size: 13px;
    line-height: 1.4; }
  .elementor-price-table__ribbon {
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    transform: rotate(90deg);
    width: 150px;
    overflow: hidden;
    height: 150px; }
    .elementor-price-table__ribbon-inner {
      text-align: center;
      left: 0;
      width: 200%;
      transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
      margin-top: 35px;
      font-size: 13px;
      line-height: 2;
      font-weight: 800;
      text-transform: uppercase;
      background: #000; }
    .elementor-price-table__ribbon.elementor-ribbon-left {
      transform: rotate(0);
      left: 0;
      right: auto; }
    .elementor-price-table__ribbon.elementor-ribbon-right {
      transform: rotate(90deg);
      left: auto;
      right: 0; }

.elementor-widget-price-table .elementor-widget-container {
  overflow: hidden;
  background-color: #f7f7f7; }

.elementor-flip-box {
  height: 280px;
  position: relative;
  perspective: 1000px;
  transform-style: preserve-3d; }
  @media (max-device-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-flip-box {
      cursor: pointer; } }
  .elementor-flip-box__front {
    background-color: #1abc9c; }
  .elementor-flip-box__back {
    background-color: #4054b2;
    display: block; }
  .elementor-flip-box__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    transition: all .6s ease-in-out; }
    .elementor-flip-box__layer__overlay {
      display: flex;
      width: 100%;
      height: 100%;
      flex-direction: column;
      justify-content: center;
      align-items: stretch;
      text-align: center;
      padding: 35px;
      color: white; }
    .elementor-flip-box__layer__title {
      font-size: 21px; }
    .elementor-flip-box__layer__description {
      font-size: 14px; }
    .elementor-flip-box__layer__description:not(:last-child), .elementor-flip-box__layer__title:not(:last-child) {
      margin: 0 0 20px 0;
      padding: 0; }
    .elementor-flip-box__layer__title {
      line-height: 1;
      font-weight: 600; }
  .elementor-flip-box,
  .elementor-flip-box .elementor-view-framed,
  .elementor-flip-box .elementor-view-stacked {
    --e-flip-box-view-framed-stacked-icon-color: #fff; }
    .elementor-flip-box .elementor-icon,
    .elementor-flip-box .elementor-view-framed .elementor-icon,
    .elementor-flip-box .elementor-view-stacked .elementor-icon {
      color: var(--e-flip-box-view-framed-stacked-icon-color); }
      .elementor-flip-box .elementor-icon svg,
      .elementor-flip-box .elementor-view-framed .elementor-icon svg,
      .elementor-flip-box .elementor-view-stacked .elementor-icon svg {
        fill: var(--e-flip-box-view-framed-stacked-icon-color); }
  .elementor-flip-box .elementor-view-framed .elementor-icon {
    border-color: #fff; }
  .elementor-flip-box .elementor-view-stacked .elementor-icon {
    background-color: rgba(0, 0, 0, 0.5); }
  .elementor-flip-box__button.elementor-button {
    cursor: pointer;
    align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-flip-box__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-flip-box__image {
    margin: 0 0 20px 0;
    display: inline-block;
    width: 100%; }
    .elementor-flip-box__image img {
      width: 50%; }
  .elementor-flip-box .elementor-icon-wrapper {
    margin-bottom: 20px; }
  .elementor-flip-box--3d .elementor-flip-box__layer__inner {
    transform: translateZ(90px) scale(0.91); }
  .elementor-flip-box--3d .elementor-flip-box__layer__overlay {
    transform-style: preserve-3d;
    transform: translateZ(0.1px); }
  .elementor-flip-box--effect-flip .elementor-flip-box {
    perspective: 1000px;
    transform-style: preserve-3d; }
    .elementor-flip-box--effect-flip .elementor-flip-box__layer {
      transform-style: preserve-3d;
      backface-visibility: hidden; }
    .elementor-flip-box--effect-flip .elementor-flip-box__front {
      transform: none;
      z-index: 1; }
    .elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back {
      transform: none; }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
    transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back {
    transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back {
    transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back {
    transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-push .elementor-flip-box__front {
    transform: none; }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide .elementor-flip-box, .elementor-flip-box--effect-push .elementor-flip-box {
    overflow: hidden; }
    .elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back, .elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back {
      transform: none; }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back {
    transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back {
    transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back {
    transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back {
    transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front {
    transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    opacity: 1;
    transform: scale(1);
    z-index: 1;
    width: 100%; }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front {
    width: 0;
    opacity: 0;
    transform: scale(0.7);
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s; }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back {
    transition: transform 0.7s, opacity 0.5s 0.2s;
    opacity: 0;
    transform: scale(0.7); }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back {
    transition: transform 0.7s, opacity 0.5s;
    opacity: 1;
    transform: scale(1); }
  .elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back {
    opacity: 0; }
  .elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back {
    opacity: 1; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front {
  display: none; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back {
  transform: none;
  opacity: 1; }

.elementor-widget-call-to-action .elementor-widget-container {
  overflow: hidden; }

.elementor-cta {
  position: relative;
  display: flex;
  overflow: hidden;
  transition: 0.5s; }
  .elementor-cta--skin-classic .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--skin-classic .elementor-cta__bg-wrapper {
      position: relative;
      min-height: 200px;
      width: 100%; }
    .elementor-cta--skin-classic .elementor-cta__content {
      transition: all 0.4s;
      width: 100%;
      background-color: #f7f7f7; }
    .elementor-cta--skin-classic .elementor-cta__content-item, .elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon {
      color: #55595c;
      border-color: #55595c;
      fill: #55595c; }
    .elementor-cta--skin-classic .elementor-cta__button.elementor-button {
      color: #55595c;
      border-color: #55595c; }
  .elementor-cta--skin-cover .elementor-cta {
    display: block; }
    .elementor-cta--skin-cover .elementor-cta__bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      transition: all 0.4s;
      width: 100%; }
    .elementor-cta--skin-cover .elementor-cta__content {
      min-height: 280px; }
    .elementor-cta--skin-cover .elementor-cta__content-item, .elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon {
      color: #fff;
      border-color: #fff; }
    .elementor-cta--skin-cover .elementor-cta__button.elementor-button {
      color: white;
      border-color: white; }
  .elementor-cta--layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--layout-image-left .elementor-cta, .elementor-cta--layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--layout-image-left .elementor-cta__content, .elementor-cta--layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--layout-image-right .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta__bg, .elementor-cta__bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    transition: all 0.4s; }
  .elementor-cta__bg-wrapper {
    z-index: 1;
    overflow: hidden; }
  .elementor-cta__bg {
    background-size: cover;
    background-position: center;
    z-index: 1; }
  .elementor-cta__bg-overlay {
    z-index: 2; }
  .elementor-cta__button.elementor-button {
    cursor: pointer;
    align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-cta__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-cta__title {
    font-size: 23px; }
  .elementor-cta__content {
    z-index: 1;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    padding: 35px;
    width: 100%; }
    .elementor-cta__content, .elementor-cta__content-item {
      position: relative;
      transition: 0.5s;
      color: #fff; }
    .elementor-cta__content-item {
      width: 100%;
      margin: 0; }
      .elementor-cta__content-item:not(:last-child) {
        margin-bottom: 15px; }
      .elementor-cta__content-item .elementor-icon {
        color: #fff; }
  .elementor-cta--valign-top .elementor-cta__content {
    align-content: flex-start;
    align-items: flex-start; }
  .elementor-cta--valign-middle .elementor-cta__content {
    align-content: center;
    align-items: center; }
  .elementor-cta--valign-bottom .elementor-cta__content {
    align-content: flex-end;
    align-items: flex-end; }
  .elementor-cta:hover .elementor-cta__bg-overlay {
    background-color: rgba(0, 0, 0, 0.3); }

@media (max-device-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-cta {
    cursor: pointer; } }

@media (min-width: ELEMENTOR_SCREEN_WIDESCREEN_MIN) {
  .elementor-cta--widescreen-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta, .elementor-cta--widescreen-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__content, .elementor-cta--widescreen-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--widescreen-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

@media (max-width: ELEMENTOR_SCREEN_LAPTOP_MAX) {
  .elementor-cta--laptop-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--laptop-layout-image-left .elementor-cta, .elementor-cta--laptop-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__content, .elementor-cta--laptop-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--laptop-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--laptop-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-cta--tablet_extra-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta, .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__content, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-cta--tablet-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet-layout-image-left .elementor-cta, .elementor-cta--tablet-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__content, .elementor-cta--tablet-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--tablet-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--tablet-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-cta--mobile_extra-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta, .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__content, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-cta--mobile-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile-layout-image-left .elementor-cta, .elementor-cta--mobile-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__content, .elementor-cta--mobile-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--mobile-layout-image-left .elementor-cta {
    flex-direction: row; }
  .elementor-cta--mobile-layout-image-right .elementor-cta {
    flex-direction: row-reverse; } }

.elementor-ribbon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: auto;
  right: 0;
  transform: rotate(90deg);
  width: 150px;
  overflow: hidden;
  height: 150px; }
  .elementor-ribbon-inner {
    text-align: center;
    left: 0;
    width: 200%;
    transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
    margin-top: 35px;
    font-size: 13px;
    line-height: 2;
    font-weight: 800;
    text-transform: uppercase;
    background: #000;
    color: #fff; }
  .elementor-ribbon.elementor-ribbon-left {
    transform: rotate(0);
    left: 0;
    right: auto; }
  .elementor-ribbon.elementor-ribbon-right {
    transform: rotate(90deg);
    left: auto;
    right: 0; }

.elementor-widget-countdown .elementor-countdown-expire--message {
  display: none;
  padding: 20px;
  text-align: center; }

.elementor-widget-countdown .elementor-countdown-wrapper {
  flex-direction: row; }

.elementor-widget-countdown .elementor-countdown-item {
  padding: 20px 0;
  text-align: center;
  color: #ffffff; }

.elementor-widget-countdown .elementor-countdown-digits,
.elementor-widget-countdown .elementor-countdown-label {
  line-height: 1; }

.elementor-widget-countdown .elementor-countdown-digits {
  font-size: 69px; }

.elementor-widget-countdown .elementor-countdown-label {
  font-size: 19px; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper {
  display: flex;
  justify-content: center;
  margin-right: auto;
  margin-left: auto; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,
.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label {
  display: block; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item {
  flex-basis: 0;
  flex-grow: 1; }

.elementor-widget-countdown.elementor-countdown--label-inline {
  text-align: center; }
  .elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px; }

/* Slides Widget */
.elementor-slides .swiper-slide-bg {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-width: 100%;
  min-height: 100%; }

.elementor-slides .swiper-slide-inner {
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 50px;
  margin: auto; }
  .elementor-slides .swiper-slide-inner, .elementor-slides .swiper-slide-inner:hover {
    color: white;
    display: flex; }
  .elementor-slides .swiper-slide-inner .elementor-background-overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }
  .elementor-slides .swiper-slide-inner .elementor-slide-content {
    position: relative;
    z-index: 1;
    width: 100%; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading {
    font-size: 35px;
    font-weight: bold;
    line-height: 1; }
  .elementor-slides .swiper-slide-inner .elementor-slide-description {
    font-size: 17px;
    line-height: 1.4; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child) {
    margin-bottom: 30px; }
  .elementor-slides .swiper-slide-inner .elementor-slide-button {
    border: solid 2px white;
    color: white;
    background: transparent;
    display: inline-block; }
    .elementor-slides .swiper-slide-inner .elementor-slide-button, .elementor-slides .swiper-slide-inner .elementor-slide-button:hover {
      background: transparent;
      color: inherit;
      text-decoration: none; }

.elementor--v-position-top .swiper-slide-inner {
  align-items: flex-start; }

.elementor--v-position-bottom .swiper-slide-inner {
  align-items: flex-end; }

.elementor--v-position-middle .swiper-slide-inner {
  align-items: center; }

.elementor--h-position-left .swiper-slide-inner {
  justify-content: flex-start; }

.elementor--h-position-right .swiper-slide-inner {
  justify-content: flex-end; }

.elementor--h-position-center .swiper-slide-inner {
  justify-content: center; }

body.rtl .elementor-widget-slides .elementor-swiper-button-next {
  left: 10px;
  right: auto; }

body.rtl .elementor-widget-slides .elementor-swiper-button-prev {
  right: 10px;
  left: auto; }

.elementor-slides-wrapper div:not(.swiper-slide) > .swiper-slide-inner {
  display: none; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-slides .swiper-slide-inner {
    padding: 30px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-heading {
      font-size: 23px;
      line-height: 1;
      margin-bottom: 15px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-description {
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 15px; } }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn {
  color: var(--e-share-buttons-primary-color, #ea4335);
  border-color: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  background-color: var(--e-share-buttons-primary-color, #ea4335);
  color: var(--e-share-buttons-secondary-color, #fff); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon {
  color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-official .elementor-share-btn:hover {
  filter: saturate(1.5) brightness(1.2); }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg {
  color: #005be2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg {
    fill: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email {
  color: #ea4335; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg {
    fill: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print {
  color: #aaaaaa; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg {
    fill: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook {
  color: #3b5998; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg {
    fill: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google {
  color: #dd4b39; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg {
    fill: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket {
  color: #EF3F56; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg {
    fill: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki {
  color: #F4731C; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg {
    fill: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest {
  color: #bd081c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg {
    fill: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit {
  color: #ff4500; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg {
    fill: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype {
  color: #00AFF0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg {
    fill: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat {
  color: #fffc00; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg {
    fill: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon {
  color: #EB4924; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg {
    fill: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix {
  color: #f3782b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg {
    fill: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr {
  color: #35465c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg {
    fill: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch {
  color: #6441A5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg {
    fill: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram {
  color: #2CA5E0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg {
    fill: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter {
  color: #1DA1F2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg {
    fill: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo {
  color: #1ab7ea; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg {
    fill: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk {
  color: #45668e; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg {
    fill: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp {
  color: #25d366; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg {
    fill: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress {
  color: #21759b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg {
    fill: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing {
  color: #026466; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg {
    fill: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon {
  color: var(--e-share-buttons-icon-color, #fff); }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-icon-color, #fff); }

.elementor-share-buttons--skin-framed .elementor-share-btn__icon, .elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  margin-left: -0.2em; }

.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--skin-boxed .elementor-share-btn {
  border-style: solid; }

.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-boxed .elementor-share-btn__text, .elementor-share-buttons--skin-minimal .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  padding-left: 0.9em; }

.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon {
  border-radius: 0.5em; }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon {
  border-radius: 99.9em; }

.elementor-share-buttons--view-text .elementor-share-btn__text {
  padding-left: 1em; }

.elementor-share-buttons--view-text .elementor-share-btn, .elementor-share-buttons--view-icon .elementor-share-btn {
  justify-content: center; }
  .elementor-share-buttons--view-text .elementor-share-btn__icon, .elementor-share-buttons--view-text .elementor-share-btn__text, .elementor-share-buttons--view-icon .elementor-share-btn__icon, .elementor-share-buttons--view-icon .elementor-share-btn__text {
    flex-grow: 1;
    justify-content: center; }

.elementor-share-buttons--shape-rounded .elementor-share-btn {
  border-radius: 0.5em; }

.elementor-share-buttons--shape-circle .elementor-share-btn {
  border-radius: 99.9em; }

.elementor-share-btn {
  overflow: hidden;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition-duration: 0.2s;
  transition-property: filter, background-color, border-color;
  height: 4.5em;
  cursor: pointer; }
  .elementor-share-btn__icon, .elementor-share-btn__text {
    transition-property: color, background-color;
    transition-duration: 0.2s; }
  .elementor-share-btn__icon {
    display: flex;
    align-self: stretch;
    justify-content: center;
    align-items: center;
    width: 4.5em;
    position: relative; }
    .elementor-share-btn__icon i {
      font-size: var(--e-share-buttons-icon-size, 1.7em); }
    .elementor-share-btn__icon svg {
      width: var(--e-share-buttons-icon-size, 1.7em);
      height: var(--e-share-buttons-icon-size, 1.7em); }
  .elementor-share-btn__text {
    font-size: 1.5em;
    padding-right: 1em;
    align-self: stretch;
    flex-grow: 1;
    align-items: center;
    display: flex;
    font-weight: 100; }
  .elementor-share-btn__title {
    font-weight: bold;
    flex-shrink: 0; }

.elementor-widget-share-buttons {
  text-align: var(--alignment, inherit);
  text-align-last: var(--alignment, inherit); }
  .elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container {
    font-size: 0; }

.elementor-skin-carousel .elementor-main-swiper, .elementor-skin-coverflow .elementor-main-swiper {
  height: 230px; }

.elementor-skin-slideshow .elementor-main-swiper {
  height: 450px;
  position: relative; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i {
  font-size: 50px; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide {
  cursor: pointer; }
  .elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.3); }

.elementor-carousel-image {
  background: no-repeat center;
  background-size: cover;
  height: 100%;
  position: relative; }

.elementor-carousel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  color: var(--e-carousel-image-overlay-color, #fff);
  background-color: rgba(129, 138, 145, 0.8);
  transition: transform .5s, opacity .5s; }
  .elementor-carousel-image-overlay i {
    font-size: var(--e-carousel-image-overlay-icon-size, 21px); }
  .elementor-carousel-image-overlay svg {
    fill: var(--e-carousel-image-overlay-color, #fff);
    width: var(--e-carousel-image-overlay-icon-size, 21px);
    height: var(--e-carousel-image-overlay-icon-size, 21px); }

.elementor-testimonial__image {
  flex-shrink: 0; }
  .elementor-testimonial__image img {
    border-radius: 999px;
    box-sizing: content-box;
    object-fit: cover; }

.elementor-testimonial__footer, .elementor-testimonial__header {
  display: flex; }
  .elementor-testimonial__footer cite, .elementor-testimonial__header cite {
    display: flex;
    flex-direction: column;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5; }

.elementor-testimonial__name {
  font-weight: bold; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer, .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
  align-items: center; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above .elementor-testimonial__image + cite {
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer {
  flex-direction: row-reverse; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite {
  margin-right: 20px;
  margin-left: 0; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer {
  flex-direction: row; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite {
  margin-right: 0;
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer {
  margin-top: 25px; }

.elementor-testimonial--layout-image_above .elementor-testimonial {
  display: flex;
  flex-direction: column-reverse; }
  .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
    margin-bottom: 25px; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer {
  margin-top: 25px;
  flex-wrap: wrap; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__image, .elementor-testimonial--layout-image_stacked .elementor-testimonial cite {
  margin-top: 15px;
  width: 100%; }

.elementor-testimonial--layout-image_left .elementor-testimonial, .elementor-testimonial--layout-image_right .elementor-testimonial {
  display: flex;
  align-items: stretch; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    flex-shrink: 0;
    flex-direction: column;
    text-align: center; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_right .elementor-testimonial__image + cite {
    margin-top: 15px; }

.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer, .elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer {
  justify-content: flex-start; }

.elementor-testimonial--layout-image_left .elementor-testimonial {
  flex-direction: row-reverse; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer {
    padding-right: 20px; }

.elementor-testimonial--layout-image_right .elementor-testimonial {
  flex-direction: row; }
  .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    padding-left: 20px; }

.elementor-testimonial--align-right .elementor-testimonial {
  text-align: right; }

.elementor-testimonial--align-left .elementor-testimonial {
  text-align: left; }

.elementor-testimonial--align-center .elementor-testimonial {
  text-align: center; }
  .elementor-testimonial--align-center .elementor-testimonial__footer {
    justify-content: center; }

.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite {
  text-align: left; }

.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite {
  width: 100%;
  display: flex;
  flex-direction: column;
  margin-top: 25px; }

.elementor-testimonial--skin-bubble .elementor-testimonial__content {
  background-color: #e6e9ec;
  padding: 20px;
  position: relative; }
  .elementor-testimonial--skin-bubble .elementor-testimonial__content:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-color: #e6e9ec;
    position: absolute;
    transform: scaleX(0.75) rotate(45deg);
    border-width: 0;
    box-sizing: content-box; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after {
  bottom: calc( 100% - 7px);
  transform: scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  transform: translateX(-50%) scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after {
  top: calc( 100% - 7px); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  transform: translateX(-50%) scaleX(0.75) rotate(45deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after {
  left: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after {
  right: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after {
  transform: scaleY(0.75) rotate(135deg);
  left: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  transform: scaleY(0.75) rotate(-45deg);
  right: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  top: calc(20px + (50px / 2)); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer {
  padding-top: 20px; }

.elementor-widget-testimonial-carousel .swiper-slide {
  padding: 20px; }

.elementor-widget-testimonial-carousel .elementor-testimonial__text {
  font-size: 1.3em;
  font-style: italic;
  line-height: 1.5; }

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
  width: 50px;
  height: 50px; }

.elementor-widget-reviews .swiper-slide {
  background-color: white;
  border: 1px solid #e1e8ed;
  border-radius: 5px;
  padding: 0; }

.elementor-widget-reviews .elementor-testimonial__text {
  font-size: 14px;
  line-height: 20px; }

.elementor-widget-reviews .elementor-testimonial__name {
  color: #1c2022; }

.elementor-widget-reviews .elementor-testimonial__title {
  color: #697882;
  font-size: 12.5px;
  font-weight: normal;
  font-family: inherit; }

.elementor-widget-reviews .elementor-testimonial__image {
  display: flex; }
  .elementor-widget-reviews .elementor-testimonial__image img {
    width: 36px;
    height: 36px; }

.elementor-widget-reviews .elementor-testimonial__icon {
  margin-left: auto;
  font-size: 17px; }
  .elementor-widget-reviews .elementor-testimonial__icon .fa + .fa {
    margin-left: 0.15em; }
  .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon {
    color: var(--e-testimonial-icon-color); }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android {
      --e-testimonial-icon-color: #A4C639; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple {
      --e-testimonial-icon-color: #999999; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance {
      --e-testimonial-icon-color: #1769ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket {
      --e-testimonial-icon-color: #205081; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen {
      --e-testimonial-icon-color: #000000; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious {
      --e-testimonial-icon-color: #3399ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg {
      --e-testimonial-icon-color: #005be2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble {
      --e-testimonial-icon-color: #ea4c89; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope {
      --e-testimonial-icon-color: #ea4335; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook {
      --e-testimonial-icon-color: #3b5998; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr {
      --e-testimonial-icon-color: #0063dc; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare {
      --e-testimonial-icon-color: #2d5be3; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github {
      --e-testimonial-icon-color: #333333; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus {
      --e-testimonial-icon-color: #dd4b39; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz {
      --e-testimonial-icon-color: #7ac142; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram {
      --e-testimonial-icon-color: #262626; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle {
      --e-testimonial-icon-color: #487AA2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium {
      --e-testimonial-icon-color: #00ab6b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup {
      --e-testimonial-icon-color: #ec1c40; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud {
      --e-testimonial-icon-color: #273a4b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki {
      --e-testimonial-icon-color: #F4731C; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest {
      --e-testimonial-icon-color: #bd081c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt {
      --e-testimonial-icon-color: #da552f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit {
      --e-testimonial-icon-color: #ff4500; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss {
      --e-testimonial-icon-color: #f26522; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart {
      --e-testimonial-icon-color: #4CAF50; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype {
      --e-testimonial-icon-color: #00AFF0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat {
      --e-testimonial-icon-color: #fffc00; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud {
      --e-testimonial-icon-color: #ff8800; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify {
      --e-testimonial-icon-color: #2ebd59; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow {
      --e-testimonial-icon-color: #fe7a15; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam {
      --e-testimonial-icon-color: #00adee; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon {
      --e-testimonial-icon-color: #EB4924; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram {
      --e-testimonial-icon-color: #2CA5E0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack, .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack {
      --e-testimonial-icon-color: #1aa1d8; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor {
      --e-testimonial-icon-color: #589442; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr {
      --e-testimonial-icon-color: #35465c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch {
      --e-testimonial-icon-color: #6441A5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter {
      --e-testimonial-icon-color: #1DA1F2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo {
      --e-testimonial-icon-color: #1ab7ea; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk {
      --e-testimonial-icon-color: #45668e; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo {
      --e-testimonial-icon-color: #DD2430; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin {
      --e-testimonial-icon-color: #31A918; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp {
      --e-testimonial-icon-color: #25d366; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress {
      --e-testimonial-icon-color: #21759b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing {
      --e-testimonial-icon-color: #026466; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp {
      --e-testimonial-icon-color: #af0606; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube {
      --e-testimonial-icon-color: #cd201f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px {
      --e-testimonial-icon-color: #0099e5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg {
      fill: var(--e-testimonial-icon-color); }

.elementor-widget-reviews .elementor-testimonial__rating {
  background-image: linear-gradient(to right, #ffc82c var(--rating), #cccccc var(--rating));
  font-family: eicons; }

.elementor-widget-reviews .elementor-testimonial__header {
  display: flex;
  padding-top: 15px;
  padding-bottom: 6px; }

.elementor-widget-reviews .elementor-testimonial__image + cite {
  margin-left: 9px; }

.elementor-widget-reviews .elementor-testimonial__separator {
  margin: 0 auto;
  border-top: 0 none;
  border-bottom: 1px solid #e1e8ed;
  height: 0; }

.elementor-widget-reviews .elementor-testimonial__content {
  padding-top: 6px;
  padding-bottom: 15px; }

.elementor-widget-reviews .elementor-testimonial__content, .elementor-widget-reviews .elementor-testimonial__header {
  padding-left: 15px;
  padding-right: 15px; }

.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header {
  border-bottom: 1px solid #e1e8ed; }

.swiper-pagination-bullets {
  color: #fff;
  cursor: default; }

.swiper-slide {
  will-change: transform;
  border-style: solid;
  border-width: 0;
  transition-duration: .5s;
  transition-property: border, background, transform;
  overflow: hidden; }
  .swiper-slide:not(:hover) .e-overlay-animation-fade {
    opacity: 0; }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-up {
    transform: translateY(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-down {
    transform: translateY(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-right {
    transform: translateX(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-left {
    transform: translateX(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-zoom-in {
    transform: scale(0.5);
    opacity: 0; }
  .swiper-slide a {
    display: inline; }
    .swiper-slide a.elementor-button {
      display: inline-block; }

.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper,
.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper {
  width: calc( 95% - 40px); }

.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper {
  width: 95%; }

.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper {
  display: flex;
  align-items: stretch; }

.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container, .elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container {
  padding-bottom: 40px; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next,
.elementor-widget-reviews .elementor-swiper-button-prev,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next {
  left: 0;
  right: unset; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-next,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev,
.elementor-widget-reviews .elementor-swiper-button-next,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev {
  right: 0;
  left: unset; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next, .elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev {
  top: calc( 50% - ( 40px / 2 )); }

.elementor-widget-media-carousel .elementor-swiper-button-prev,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next {
  left: 10px;
  right: unset; }

.elementor-widget-media-carousel .elementor-swiper-button-next,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev {
  right: 10px;
  left: unset; }

.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),
.entry-summary blockquote.elementor-blockquote {
  margin-right: 0;
  margin-left: 0; }

.elementor-widget-blockquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  quotes: none;
  border-left: 0 none;
  border-right: 0 none;
  border-top: 0 none;
  border-bottom: 0 none;
  font-style: normal;
  color: #55595c; }
  .elementor-widget-blockquote blockquote:before, .elementor-widget-blockquote blockquote:after,
  .elementor-widget-blockquote blockquote footer:before,
  .elementor-widget-blockquote blockquote footer:after,
  .elementor-widget-blockquote blockquote cite:before,
  .elementor-widget-blockquote blockquote cite:after {
    content: '';
    content: none; }

.elementor-blockquote {
  transition: 0.3s; }
  .elementor-blockquote__author, .elementor-blockquote__content {
    margin-bottom: 0;
    font-style: normal; }
  .elementor-blockquote__author {
    font-weight: bold; }
  .elementor-blockquote footer {
    margin-top: 12px;
    display: flex;
    justify-content: space-between; }
  .elementor-blockquote__tweet-button {
    display: flex;
    transition: 0.3s;
    color: #1DA1F2;
    align-self: flex-end;
    line-height: 1;
    position: relative;
    width: max-content; }
    .elementor-blockquote__tweet-button:hover {
      color: #0967a0; }
    .elementor-blockquote__tweet-button span {
      font-weight: 600; }
    .elementor-blockquote__tweet-button i, .elementor-blockquote__tweet-button span {
      vertical-align: middle; }
    .elementor-blockquote__tweet-button i + span,
    .elementor-blockquote__tweet-button svg + span {
      margin-left: 0.5em; }
    .elementor-blockquote__tweet-button svg {
      fill: #1DA1F2;
      height: 1em;
      width: 1em; }
  .elementor-blockquote__tweet-label {
    white-space: pre-wrap; }
  .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button {
    padding: 0.7em 1.2em;
    border-radius: 100em;
    background-color: #1DA1F2;
    color: #fff;
    font-size: 15px; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover {
      background-color: #0967a0;
      color: #fff; }
      .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before {
        border-right-color: #0967a0; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg {
      fill: #fff;
      height: 1em;
      width: 1em; }
  .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button {
    padding: 0;
    width: 2em;
    height: 2em; }
    .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%); }
  .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before {
    content: '';
    border: solid 0.5em transparent;
    border-right-color: #1DA1F2;
    position: absolute;
    left: -0.8em;
    top: 50%;
    transform: translateY(-50%) scale(1, 0.65);
    transition: 0.3s; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before {
    right: auto;
    left: -0.8em;
    border-right-color: #1DA1F2;
    border-left-color: transparent; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before {
    border-right-color: #0967a0; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before {
    left: auto;
    right: -0.8em;
    border-right-color: transparent;
    border-left-color: #1DA1F2; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before {
    border-left-color: #0967a0; }
  .elementor-blockquote--skin-boxed .elementor-blockquote {
    background-color: #e6e9ec;
    padding: 30px; }
  .elementor-blockquote--skin-border .elementor-blockquote {
    border-color: #e6e9ec;
    border-style: solid;
    border-left-width: 7px;
    padding-left: 20px; }
  .elementor-blockquote--skin-quotation .elementor-blockquote:before {
    content: '“';
    font-size: 100px;
    color: #e6e9ec;
    font-family: "Times New Roman", Times, serif;
    font-weight: 900;
    line-height: 1;
    display: block;
    height: 0.6em; }
  .elementor-blockquote--skin-quotation .elementor-blockquote__content {
    margin-top: 15px; }
  .elementor-blockquote--align-left .elementor-blockquote__content {
    text-align: left; }
  .elementor-blockquote--align-left .elementor-blockquote footer {
    flex-direction: row; }
  .elementor-blockquote--align-right .elementor-blockquote__content {
    text-align: right; }
  .elementor-blockquote--align-right .elementor-blockquote footer {
    flex-direction: row-reverse; }
  .elementor-blockquote--align-center .elementor-blockquote {
    text-align: center; }
    .elementor-blockquote--align-center .elementor-blockquote footer {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__author {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__tweet-button {
      margin-right: auto;
      margin-left: auto; }

.elementor-headline {
  font-size: 43px;
  line-height: 1.2;
  display: block; }
  .elementor-headline-dynamic-text {
    color: var(--dynamic-text-color, #aebcb9); }
  .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper {
    text-align: left; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-wrapper {
    overflow: visible;
    text-align: inherit; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-text {
    z-index: 1; }
  .elementor-headline--style-highlight .elementor-headline-plain-text {
    z-index: 1;
    position: relative; }
  .elementor-headline--style-highlight svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc( 100% + 20px);
    height: calc( 100% + 20px);
    transform: translate(-50%, -50%);
    overflow: visible; }
    .elementor-headline--style-highlight svg path {
      stroke: red;
      stroke-width: 9;
      fill: none;
      opacity: 0;
      stroke-dasharray: 0 1500;
      transition: 0.3s; }
  .elementor-headline.e-animated svg path {
    animation: elementor-headline-dash forwards;
    animation-duration: var(--animation-duration, 1.2s);
    animation-iteration-count: 1; }
    .elementor-headline.e-animated svg path:nth-of-type(2) {
      animation-delay: calc(var(--animation-duration, 1.2s) / 2); }
  .elementor-headline.e-hide-highlight svg path {
    opacity: 1;
    stroke-dasharray: 1500 1500;
    animation: hide-highlight 0.4s forwards;
    animation-iteration-count: 1; }

@keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    filter: blur(10px); } }

.elementor-headline-text-wrapper {
  vertical-align: bottom; }

.elementor-headline-dynamic-wrapper {
  display: inline-block;
  position: relative; }
  .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0; }
    .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active {
      position: relative; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-text {
  opacity: 0;
  transform-origin: 50% 100%;
  transform: rotateX(180deg); }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    transform: rotateX(0deg);
    animation: elementor-headline-flip-in 1.2s; }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    transform: rotateX(180deg);
    animation: elementor-headline-flip-out 1.2s; }

@keyframes elementor-headline-flip-in {
  0% {
    transform: rotateX(180deg);
    opacity: 0; }
  35% {
    transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    transform: rotateX(360deg);
    opacity: 1; } }

@keyframes elementor-headline-flip-out {
  0% {
    transform: rotateX(0deg);
    opacity: 1; }
  35% {
    transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    transform: rotateX(180deg);
    opacity: 0; } }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper {
  vertical-align: top;
  overflow: hidden; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after {
    /* vertical bar */
    content: '';
    position: absolute;
    left: auto;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 90%;
    width: 1px;
    background-color: #0d0d0d; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after {
    animation: elementor-headline-pulse 1s infinite; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected {
    background-color: var(--typing-selected-bg-color, #0d0d0d); }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected::after {
      visibility: hidden; }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text {
      color: var(--typing-selected-color, var(--dynamic-text-color), #aebcb9); }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active) {
  visibility: hidden; }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
  position: absolute;
  visibility: hidden; }

@keyframes elementor-headline-pulse {
  0% {
    transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    transform: translateY(-50%) scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  display: inline-block;
  backface-visibility: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text {
  transform: scaleX(1.0005);
  opacity: 0; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  transform-style: preserve-3d;
  transform: translateZ(-20px) rotateX(90deg);
  opacity: 0; }
  .elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-swirl-in .4s forwards; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-swirl-out .4s forwards; }

@keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(0deg); } }

@keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(-90deg); } }

.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text {
  opacity: 0;
  top: .2em; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active {
    top: 0;
    opacity: 1;
    animation: elementor-headline-slide-down-in .6s; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-slide-down-out .6s; }

@keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    transform: translateY(-100%); }
  60% {
    opacity: 1;
    transform: translateY(20%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

@keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    transform: translateY(0); }
  60% {
    opacity: 0;
    transform: translateY(120%); }
  100% {
    opacity: 0;
    transform: translateY(100%); } }

.elementor-headline-animation-type-clip .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper::after {
    /* line */
    content: '';
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    width: 2px;
    height: 100%;
    background-color: #0d0d0d; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    animation: elementor-headline-drop-in-in .8s; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-drop-in-out .8s; }

@keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    transform: translateZ(100px); }
  100% {
    opacity: 1;
    transform: translateZ(0); } }

@keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    transform: translateZ(0); }
  100% {
    opacity: 0;
    transform: translateZ(-100px); } }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
  display: inline-block;
  transform: rotateY(180deg);
  backface-visibility: hidden; }
  .elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
    transform: rotateY(0deg); }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-blinds-in .6s forwards; }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-blinds-out .6s forwards; }

@keyframes elementor-headline-blinds-in {
  0% {
    transform: rotateY(180deg); }
  100% {
    transform: rotateY(0deg); } }

@keyframes elementor-headline-blinds-out {
  0% {
    transform: rotateY(0); }
  100% {
    transform: rotateY(-180deg); } }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
  display: inline-block;
  opacity: 0;
  transform: scale(0); }
  .elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-wave-up .6s forwards; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-wave-down .6s forwards; }

@keyframes elementor-headline-wave-up {
  0% {
    transform: scale(0);
    opacity: 0; }
  60% {
    transform: scale(1.2);
    opacity: 1; }
  100% {
    transform: scale(1);
    opacity: 1; } }

@keyframes elementor-headline-wave-down {
  0% {
    transform: scale(1);
    opacity: 1; }
  60% {
    transform: scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-slide .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    animation: elementor-headline-slide-in .6s; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-slide-out .6s; }

@keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    transform: translateX(-100%); }
  60% {
    opacity: 1;
    transform: translateX(10%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

@keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    transform: translateX(0); }
  60% {
    opacity: 0;
    transform: translateX(110%); }
  100% {
    opacity: 0;
    transform: translateX(100%); } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  transition: width 0.5s; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper {
  overflow: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-text, .elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  white-space: nowrap; }

.elementor-msie .elementor-headline--style-highlight svg {
  top: auto;
  left: auto;
  transform: translate(-100%); }

/* Animations */
@keyframes e-hotspot-soft-beat {
  from {
    transform: scale(1); }
  to {
    transform: scale(1.1); } }

@keyframes e-hotspot-expand {
  from {
    transform: scale(0.5);
    opacity: 1; }
  to {
    transform: scale(1.5);
    opacity: 0; } }

/* Hotspot Wrapper */
.elementor-widget-hotspot {
  display: flex;
  justify-content: var(--background-align); }
  .elementor-widget-hotspot .elementor-widget-container {
    position: relative;
    display: inline-block;
    width: var(--container-width);
    max-width: var(--container-max-width);
    height: var(--container-height); }
    .elementor-widget-hotspot .elementor-widget-container > img {
      display: block;
      width: var(--image-width, auto);
      height: var(--container-height);
      opacity: var(--opacity, 1); }

/* Each Hotspot */
.e-hotspot {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  /* Hotspot Button Animations */
  /* End: Hotspot Button Animations */ }
  .e-hotspot--position-left.e-hotspot--position-top {
    transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-left.e-hotspot--position-bottom {
    transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y)); }
  .e-hotspot--position-right.e-hotspot--position-top {
    transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-right.e-hotspot--position-bottom {
    transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y)); }
  .e-hotspot--active {
    z-index: 2; }
  .e-hotspot__outer-circle, .e-hotspot__inner-circle {
    content: "";
    display: inline-block;
    box-sizing: content-box;
    border-radius: 50%; }
  .e-hotspot__inner-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--hotspot-color);
    padding: calc( var(--hotspot-size, 18px) / 2); }
  .e-hotspot__outer-circle {
    background-color: var(--hotspot-color);
    padding: var(--hotspot-padding, 4px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot--icon .e-hotspot__button {
    line-height: 0;
    box-sizing: content-box;
    font-size: var(--hotspot-size, 18px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot__icon, .e-hotspot__label {
    display: flex;
    justify-content: center;
    align-items: center; }
    .e-hotspot__icon svg, .e-hotspot__label svg {
      width: var(--hotspot-size, 18px);
      height: auto; }
  .e-hotspot__button {
    cursor: pointer;
    position: relative;
    display: grid;
    grid-auto-flow: column;
    justify-content: center;
    color: var(--hotspot-color);
    font-size: var(--hotspot-size, 18px);
    min-width: var(--hotspot-button-width);
    min-height: var(--hotspot-button-height); }
    .e-hotspot__button:before {
      z-index: -2;
      content: "";
      width: 100%;
      height: 100%;
      left: -5px;
      top: -5px;
      position: absolute;
      padding: 5px;
      box-sizing: content-box; }
    .e-hotspot__button svg {
      fill: var(--hotspot-color); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button {
    min-width: var(--hotspot-min-width);
    min-height: var(--hotspot-min-height);
    background-color: var(--hotspot-box-color);
    padding: var(--hotspot-padding, 4px);
    border-radius: var(--hotspot-border-radius, 3px); }
    .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before {
      border-radius: var(--hotspot-border-radius, 3px); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    background-color: var(--hotspot-box-color); }
  .e-hotspot--overlay {
    opacity: 0.7;
    transition: opacity 0.2s; }
  .e-hotspot--overlay:hover,
  .e-hotspot--active .e-hotspot--overlay {
    opacity: 1; }
  .e-hotspot--soft-beat {
    animation: e-hotspot-soft-beat 0.7s infinite alternate;
    animation-timing-function: ease; }
  .e-hotspot--expand .e-hotspot__outer-circle {
    animation: e-hotspot-expand 2s infinite; }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    opacity: 0;
    animation: e-hotspot-expand 2s infinite; }
  .e-hotspot--sequenced {
    animation: fadeIn 0.3s;
    animation-iteration-count: 1;
    animation-fill-mode: both; }
  .e-hotspot__direction-mask {
    overflow: hidden;
    position: absolute;
    pointer-events: none; }
  .e-hotspot__tooltip {
    white-space: var(--white-space, nowrap);
    transition-property: transform, opacity;
    transition-duration: var(--tooltip-transition-duration, 500ms);
    transform-origin: center center;
    position: absolute;
    pointer-events: none;
    color: var(--tooltip-text-color, #FFF);
    text-align: var(--tooltip-align);
    min-width: var(--tooltip-min-width);
    padding: var(--tooltip-padding, 8px);
    border-radius: var(--tooltip-border-radius);
    background-color: var(--tooltip-color); }
  .e-hotspot__tooltip p:last-of-type {
    margin-bottom: 0; }
  .e-hotspot__direction-mask .e-hotspot__tooltip {
    box-shadow: none !important;
    position: static; }
  .e-hotspot--active .e-hotspot__tooltip {
    pointer-events: visible; }
  .e-hotspot--fade-in-out {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--fade-in-out {
    opacity: 1; }
  .e-hotspot--fade-grow {
    opacity: 0;
    transform: scale(0); }
  .e-hotspot--active .e-hotspot--fade-grow {
    opacity: 1;
    transform: scale(1); }
  .e-hotspot--tooltip-animation-from-top, .e-hotspot--override-tooltip-animation-from-top {
    transform: translate(0, calc(-100% - 1px)); }
  .e-hotspot--tooltip-animation-from-left, .e-hotspot--override-tooltip-animation-from-left {
    transform: translate(calc(-100% - 1px), 0); }
  .e-hotspot--tooltip-animation-from-right, .e-hotspot--override-tooltip-animation-from-right {
    transform: translate(calc(100% + 1px), 0); }
  .e-hotspot--tooltip-animation-from-bottom, .e-hotspot--override-tooltip-animation-from-bottom {
    transform: translate(0, calc(100% + 1px)); }
  .e-hotspot--fade-direction {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--slide-direction,
  .e-hotspot--active .e-hotspot--fade-direction {
    transform: translate(0, 0) scale(1);
    opacity: 1; }
  .e-hotspot--show-tooltip {
    transition: none;
    opacity: 1;
    pointer-events: visible;
    transform: translate(0, 0); }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

.site-main .menu-navigation-container {
  overflow: visible; }

.elementor-item:before, .elementor-item:after {
  display: block;
  position: absolute;
  transition: 0.3s;
  transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  opacity: 0; }


.elementor-item:hover:before,
.elementor-item:hover:after,
.elementor-item:focus:before,
.elementor-item:focus:after,
.elementor-item.highlighted:before,
.elementor-item.highlighted:after,
.elementor-item-active:before,
.elementor-item-active:after {
  transform: scale(1); }

.e--pointer-double-line .elementor-item:before, .e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:before, .e--pointer-underline .elementor-item:after, .e--pointer-overline .elementor-item:before, .e--pointer-overline .elementor-item:after {
  height: 3px;
  width: 100%;
  left: 0;
  background-color: #55595c;
  z-index: 2; }

.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  height: 0;
  width: 0;
  left: 50%; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 10px; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: 10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: -10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: -10px; }

.e--pointer-double-line.e--animation-none,
.e--pointer-double-line.e--animation-none .elementor-item, .e--pointer-underline.e--animation-none,
.e--pointer-underline.e--animation-none .elementor-item, .e--pointer-overline.e--animation-none,
.e--pointer-overline.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-double-line.e--animation-none:before, .e--pointer-double-line.e--animation-none:after, .e--pointer-double-line.e--animation-none:hover, .e--pointer-double-line.e--animation-none:focus,
  .e--pointer-double-line.e--animation-none .elementor-item:before,
  .e--pointer-double-line.e--animation-none .elementor-item:after,
  .e--pointer-double-line.e--animation-none .elementor-item:hover,
  .e--pointer-double-line.e--animation-none .elementor-item:focus, .e--pointer-underline.e--animation-none:before, .e--pointer-underline.e--animation-none:after, .e--pointer-underline.e--animation-none:hover, .e--pointer-underline.e--animation-none:focus,
  .e--pointer-underline.e--animation-none .elementor-item:before,
  .e--pointer-underline.e--animation-none .elementor-item:after,
  .e--pointer-underline.e--animation-none .elementor-item:hover,
  .e--pointer-underline.e--animation-none .elementor-item:focus, .e--pointer-overline.e--animation-none:before, .e--pointer-overline.e--animation-none:after, .e--pointer-overline.e--animation-none:hover, .e--pointer-overline.e--animation-none:focus,
  .e--pointer-overline.e--animation-none .elementor-item:before,
  .e--pointer-overline.e--animation-none .elementor-item:after,
  .e--pointer-overline.e--animation-none .elementor-item:hover,
  .e--pointer-overline.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-double-line .elementor-item:before, .e--pointer-overline .elementor-item:before {
  content: '';
  top: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  width: 10px;
  left: -20px; }

.e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:after {
  content: '';
  bottom: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  width: 10px;
  inset-inline-start: 100%; }

.e--pointer-framed .elementor-item:before, .e--pointer-framed .elementor-item:after {
  background: transparent;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  border: 3px solid #55595c; }

.e--pointer-framed .elementor-item:before {
  content: ''; }

.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(0.75); }

.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(1.25); }

.e--pointer-framed.e--animation-grow .elementor-item:before, .e--pointer-framed.e--animation-shrink .elementor-item:before {
  transition: opacity 0.2s, transform 0.4s; }

.e--pointer-framed.e--animation-draw .elementor-item:before, .e--pointer-framed.e--animation-draw .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-draw .elementor-item:before {
  border-width: 0 0 3px 3px;
  transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }

.e--pointer-framed.e--animation-draw .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 3px 3px 0 0;
  transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  width: 100%;
  height: 100%; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:before {
  transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }

.e--pointer-framed.e--animation-corners .elementor-item:before, .e--pointer-framed.e--animation-corners .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:before {
  border-width: 3px 0 0 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 0 3px 3px 0; }


.e--pointer-framed.e--animation-corners .elementor-item:hover:before,
.e--pointer-framed.e--animation-corners .elementor-item:hover:after,
.e--pointer-framed.e--animation-corners .elementor-item:focus:before,
.e--pointer-framed.e--animation-corners .elementor-item:focus:after,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-corners .elementor-item-active:before,
.e--pointer-framed.e--animation-corners .elementor-item-active:after {
  width: 100%;
  height: 100%;
  transition: opacity 0.002s, width 0.4s, height 0.4s; }

.e--pointer-framed.e--animation-none,
.e--pointer-framed.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-framed.e--animation-none:before, .e--pointer-framed.e--animation-none:after, .e--pointer-framed.e--animation-none:hover, .e--pointer-framed.e--animation-none:focus,
  .e--pointer-framed.e--animation-none .elementor-item:before,
  .e--pointer-framed.e--animation-none .elementor-item:after,
  .e--pointer-framed.e--animation-none .elementor-item:hover,
  .e--pointer-framed.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-background .elementor-item:before, .e--pointer-background .elementor-item:after {
  content: '';
  transition: 0.3s; }

.e--pointer-background .elementor-item:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }


.e--pointer-background .elementor-item:hover,
.e--pointer-background .elementor-item:focus,
.e--pointer-background .elementor-item.highlighted,
.e--pointer-background .elementor-item-active {
  color: #fff; }

.e--pointer-background.e--animation-grow .elementor-item:before {
  transform: scale(0.5); }


.e--pointer-background.e--animation-grow .elementor-item:hover:before,
.e--pointer-background.e--animation-grow .elementor-item:focus:before,
.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,
.e--pointer-background.e--animation-grow .elementor-item-active:before {
  transform: scale(1);
  opacity: 1; }

.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(1.2);
  transition: 0.3s; }


.e--pointer-background.e--animation-shrink .elementor-item:hover:before,
.e--pointer-background.e--animation-shrink .elementor-item:focus:before,
.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shrink .elementor-item-active:before {
  transition: opacity 0.15s, transform 0.4s; }

.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  left: 100%; }

.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 100%; }

.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 100%; }

.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 50%;
  top: 50%; }

.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 50%;
  left: 50%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after, .e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before {
  top: 0;
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after {
  top: 100%;
  bottom: 0; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before {
  bottom: 50%; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after {
  top: 50%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before {
  right: 0;
  left: 100%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  right: 100%;
  left: 0; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before {
  left: 50%; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after {
  right: 50%; }

.e--pointer-background.e--animation-none,
.e--pointer-background.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-background.e--animation-none:before, .e--pointer-background.e--animation-none:after, .e--pointer-background.e--animation-none:hover, .e--pointer-background.e--animation-none:focus,
  .e--pointer-background.e--animation-none .elementor-item:before,
  .e--pointer-background.e--animation-none .elementor-item:after,
  .e--pointer-background.e--animation-none .elementor-item:hover,
  .e--pointer-background.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-text.e--animation-skew .elementor-item:hover,
.e--pointer-text.e--animation-skew .elementor-item:focus {
  transform: skew(-8deg); }

.e--pointer-text.e--animation-grow .elementor-item:hover,
.e--pointer-text.e--animation-grow .elementor-item:focus {
  transform: scale(1.2); }

.e--pointer-text.e--animation-shrink .elementor-item:hover,
.e--pointer-text.e--animation-shrink .elementor-item:focus {
  transform: scale(0.8); }

.e--pointer-text.e--animation-float .elementor-item:hover,
.e--pointer-text.e--animation-float .elementor-item:focus {
  transform: translateY(-8px); }

.e--pointer-text.e--animation-sink .elementor-item:hover,
.e--pointer-text.e--animation-sink .elementor-item:focus {
  transform: translateY(8px); }

.e--pointer-text.e--animation-rotate .elementor-item:hover,
.e--pointer-text.e--animation-rotate .elementor-item:focus {
  transform: rotate(6deg); }

.e--pointer-text.e--animation-none,
.e--pointer-text.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-text.e--animation-none:before, .e--pointer-text.e--animation-none:after, .e--pointer-text.e--animation-none:hover, .e--pointer-text.e--animation-none:focus,
  .e--pointer-text.e--animation-none .elementor-item:before,
  .e--pointer-text.e--animation-none .elementor-item:after,
  .e--pointer-text.e--animation-none .elementor-item:hover,
  .e--pointer-text.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.elementor-nav-menu--main .elementor-nav-menu a {
  transition: 0.4s; }
  .elementor-nav-menu--main .elementor-nav-menu a, .elementor-nav-menu--main .elementor-nav-menu a:hover, .elementor-nav-menu--main .elementor-nav-menu a:focus, .elementor-nav-menu--main .elementor-nav-menu a.highlighted {
    padding: 13px 20px; }
  .elementor-nav-menu--main .elementor-nav-menu a.current {
    background: #373a3c;
    color: #fff; }
  .elementor-nav-menu--main .elementor-nav-menu a.disabled {
    background: #55595c;
    color: #a1a6a9; }

.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  width: 12em;
  border-width: 0;
  border-style: solid;
  padding: 0; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up,
.elementor-nav-menu--main .elementor-nav-menu span.scroll-down {
  position: absolute;
  display: none;
  visibility: hidden;
  overflow: hidden;
  background: #fff;
  height: 20px; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  position: absolute;
  top: -2px;
  left: 50%;
  margin-left: -8px;
  width: 0;
  height: 0;
  overflow: hidden;
  border-width: 8px;
  border-style: dashed dashed solid dashed;
  border-color: transparent transparent #494c4f transparent; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  top: 6px;
  border-style: solid dashed dashed dashed;
  border-color: #494c4f transparent transparent transparent; }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i {
  transform: rotate(-90deg); }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg {
  height: 1em;
  width: 1em; }

.elementor-nav-menu--layout-horizontal {
  display: flex; }
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: flex;
    flex-wrap: wrap; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
      white-space: nowrap;
      flex-grow: 1; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
      display: flex; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > .scroll-down {
        top: 100% !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > a {
        margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-down, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-up {
        left: var(--e-nav-menu-horizontal-menu-item-margin) !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child) > a {
        margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child):after {
        content: var(--e-nav-menu-divider-content, none);
        border-left-width: var(--e-nav-menu-divider-width, 2px);
        border-left-style: var(--e-nav-menu-divider-style, solid);
        height: var(--e-nav-menu-divider-height, 35%);
        border-color: var(--e-nav-menu-divider-color, #000);
        align-self: center; }

.elementor-nav-menu__align-right .elementor-nav-menu {
  margin-left: auto;
  justify-content: flex-end; }

.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: flex-end; }

.elementor-nav-menu__align-left .elementor-nav-menu {
  margin-right: auto;
  justify-content: flex-start; }

.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: flex-start; }

.elementor-nav-menu__align-center .elementor-nav-menu {
  margin-left: auto;
  margin-right: auto;
  justify-content: center; }

.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: center; }

.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  width: 100%; }
  .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    flex-grow: 1; }
    .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
      justify-content: center; }

.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle {
  display: none; }

.elementor-widget-nav-menu .elementor-widget-container {
  display: flex;
  flex-direction: column; }

.elementor-nav-menu {
  position: relative;
  z-index: 2; }
  .elementor-nav-menu:after {
    content: "\00a0";
    display: block;
    height: 0;
    font: 0px/0 serif;
    clear: both;
    visibility: hidden;
    overflow: hidden; }
  .elementor-nav-menu,
  .elementor-nav-menu ul,
  .elementor-nav-menu li {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: normal;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .elementor-nav-menu ul {
    display: none; }
    .elementor-nav-menu ul ul a,
    .elementor-nav-menu ul ul a:hover,
    .elementor-nav-menu ul ul a:focus,
    .elementor-nav-menu ul ul a:active {
      border-left: 16px solid transparent; }
    .elementor-nav-menu ul ul ul a,
    .elementor-nav-menu ul ul ul a:hover,
    .elementor-nav-menu ul ul ul a:focus,
    .elementor-nav-menu ul ul ul a:active {
      border-left: 24px solid transparent; }
    .elementor-nav-menu ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul a:active {
      border-left: 32px solid transparent; }
    .elementor-nav-menu ul ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul ul a:active {
      border-left: 40px solid transparent; }
  .elementor-nav-menu li,
  .elementor-nav-menu a {
    position: relative; }
  .elementor-nav-menu li {
    border-width: 0; }
  .elementor-nav-menu a {
    display: flex;
    align-items: center; }
    .elementor-nav-menu a, .elementor-nav-menu a:hover, .elementor-nav-menu a:focus {
      padding: 10px 20px;
      line-height: 20px; }
    .elementor-nav-menu a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu a.disabled {
      cursor: not-allowed;
      color: #a1a6a9; }
  .elementor-nav-menu .e-plus-icon:before {
    content: '+'; }
  .elementor-nav-menu .sub-arrow {
    line-height: 1;
    padding: 10px 0 10px 10px;
    margin-top: -10px;
    margin-bottom: -10px;
    display: flex;
    align-items: center; }
    .elementor-nav-menu .sub-arrow i {
      pointer-events: none; }
    .elementor-nav-menu .sub-arrow .fa.fa-chevron-down, .elementor-nav-menu .sub-arrow .fas.fa-chevron-down {
      font-size: 0.7em; }
    .elementor-nav-menu .sub-arrow .e-font-icon-svg {
      height: 1em;
      width: 1em; }
      .elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down {
        height: 0.7em;
        width: 0.7em; }

.elementor-nav-menu--dropdown .elementor-item:hover, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor-sub-item:hover,
.elementor-sub-item:focus,
.elementor-sub-item.highlighted,
.elementor-sub-item.elementor-item-active {
  background-color: #55595c;
  color: #fff; }

.elementor-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  padding: 0.25em;
  cursor: pointer;
  border: 0 solid;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.05);
  color: #494c4f; }
  .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none; }
  .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close {
    display: none; }
  .elementor-menu-toggle .e-font-icon-svg {
    fill: #494c4f;
    height: 1em;
    width: 1em; }

.elementor-nav-menu--dropdown {
  background-color: #fff;
  font-size: 13px; }
  .elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-none .elementor-menu-toggle {
    display: none; }
  .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    margin-top: 10px;
    transition: max-height 0.3s, transform 0.3s;
    transform-origin: top;
    overflow: auto; }
    .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
      font-size: 0.85em; }
  .elementor-nav-menu--dropdown a {
    color: #494c4f; }
    .elementor-nav-menu--dropdown a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu--dropdown a.disabled {
      color: #b3b2b2; }

ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:hover, ul.elementor-nav-menu--dropdown a:focus {
  text-shadow: none;
  border-left: 8px solid transparent; }

.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a {
  justify-content: center; }

.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  transform: scaleY(0);
  max-height: 0; }

.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  transform: scaleY(1);
  max-height: 100vh; }

.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  position: absolute;
  z-index: 9997; }

/**
 * Mobile Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_MOBILE_NEXT) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle {
    display: none; } }

/**
 * Mobile Extra Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_NEXT) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle {
    display: none; } }

/**
 * Tablet Hamburger Menu Breakpoint
 */
@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle {
    display: none; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
    display: none; } }

/**
 * Tablet Extra Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_TABLET_EXTRA_NEXT) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle {
    display: none; } }

.elementor-gallery__container {
  min-height: 1px; }

.elementor-gallery-item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  border: solid var(--image-border-width) var(--image-border-color);
  border-radius: var(--image-border-radius); }
  .elementor-gallery-item__overlay, .elementor-gallery-item__content {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .elementor-gallery-item__overlay {
    mix-blend-mode: var(--overlay-mix-blend-mode);
    transition-duration: var(--overlay-transition-duration);
    transition-property: mix-blend-mode, transform, opacity, background-color; }
  .elementor-gallery-item__image.e-gallery-image {
    transition-duration: var(--image-transition-duration);
    transition-property: filter, transform; }
  .elementor-gallery-item__content {
    display: flex;
    flex-direction: column;
    justify-content: var(--content-justify-content, center);
    align-items: center;
    text-align: var(--content-text-align);
    padding: var(--content-padding); }
    .elementor-gallery-item__content > div {
      transition-duration: var(--content-transition-duration); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(2) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 )); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(3) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(4) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3); }
  .elementor-gallery-item__description {
    color: var(--description-text-color, #ffffff);
    width: 100%; }
  .elementor-gallery-item__title {
    color: var(--title-text-color, #ffffff);
    font-weight: bold;
    width: 100%; }

.elementor-gallery__titles-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: var(--titles-container-justify-content, center);
  margin-bottom: 20px; }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:before {
    border-color: var(--galleries-pointer-bg-color-hover);
    border-width: var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:after {
    border-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before {
    border-width: 0 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after {
    border-width: var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0 0; }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before {
    border-width: var(--galleries-pointer-border-width) 0 0 var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after {
    border-width: 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0; }
  .elementor-gallery__titles-container .e--pointer-underline .elementor-item:after,
  .elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after {
    height: var(--galleries-pointer-border-width); }

.elementor-gallery-title {
  --space-between: 10px;
  cursor: pointer;
  color: #6D7882;
  font-weight: 500;
  position: relative;
  padding: 7px 14px;
  transition: all 0.3s; }
  .elementor-gallery-title--active {
    color: #495157; }
  .elementor-gallery-title:not(:last-child) {
    margin-right: var(--space-between); }

.elementor-gallery-item__title + .elementor-gallery-item__description {
  margin-top: var(--description-margin-top); }

.e-gallery-item.elementor-gallery-item {
  transition-property: all; }

.e-gallery-item:hover .elementor-gallery__item-overlay-bg {
  opacity: 1; }

.e-gallery-item:hover .elementor-gallery__item-overlay-content {
  opacity: 1; }
  .e-gallery-item:hover .elementor-gallery__item-overlay-content__title, .e-gallery-item:hover .elementor-gallery__item-overlay-content__description {
    opacity: 1; }

.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom {
  opacity: 1; }

a.elementor-item.elementor-gallery-title {
  color: var(--galleries-title-color-normal); }
  a.elementor-item.elementor-gallery-title:hover, a.elementor-item.elementor-gallery-title.elementor-item-active, a.elementor-item.elementor-gallery-title.highlighted, a.elementor-item.elementor-gallery-title:focus {
    color: var(--galleries-title-color-hover); }
  a.elementor-item.elementor-gallery-title.elementor-item-active {
    color: var(--gallery-title-color-active); }

.elementor-widget-table-of-contents .elementor-toc__header-title {
  color: var(--header-color); }

.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse {
  display: none; }

.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand {
  display: none; }

.elementor-widget-table-of-contents .elementor-widget-container {
  min-height: var(--box-min-height);
  border: var(--box-border-width, 1px) solid var(--box-border-color, #a4afb7);
  border-radius: var(--box-border-radius, 3px);
  background-color: var(--box-background-color);
  transition: min-height 0.4s;
  overflow: hidden; }

.elementor-toc__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--box-padding, 20px);
  background-color: var(--header-background-color);
  border-bottom: var(--separator-width, 1px) solid var(--box-border-color, #a4afb7); }
  .elementor-toc__header-title {
    font-size: 18px;
    margin: 0;
    color: var(--header-color); }

.elementor-toc__toggle-button {
  cursor: pointer;
  display: inline-flex; }
  .elementor-toc__toggle-button i {
    color: var(--toggle-button-color); }
  .elementor-toc__toggle-button svg {
    fill: var(--toggle-button-color);
    height: 1em;
    width: 1em;
    fill: var(--toggle-button-color); }

.elementor-toc__spinner-container {
  text-align: center; }

.elementor-toc__spinner {
  font-size: 2em; }
  .elementor-toc__spinner.e-font-icon-svg {
    height: 1em;
    width: 1em; }

.elementor-toc__body {
  padding: var(--box-padding, 20px);
  max-height: var(--toc-body-max-height);
  overflow-y: auto; }
  .elementor-toc__body::-webkit-scrollbar {
    width: 7px; }
  .elementor-toc__body::-webkit-scrollbar-thumb {
    background-color: #c2cbd2;
    border-radius: 10px; }

.elementor-toc__list-wrapper {
  list-style: none;
  padding: 0; }

.elementor-toc__list-item {
  margin-bottom: 0.5em; }
  .elementor-toc__list-item.elementor-item-active {
    font-weight: bold; }
  .elementor-toc__list-item .elementor-toc__list-wrapper {
    margin-top: 0.5em;
    margin-left: var(--nested-list-indent, 1em); }
  .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    text-decoration: var(--item-text-active-decoration); }
  .elementor-toc__list-item-text-wrapper {
    display: flex;
    align-items: center; }
    .elementor-toc__list-item-text-wrapper i, .elementor-toc__list-item-text-wrapper:before {
      margin-right: 8px;
      color: var(--marker-color); }
    .elementor-toc__list-item-text-wrapper svg {
      margin-right: 8px;
      fill: var(--marker-color);
      height: var(--marker-size, 0.5em);
      width: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper i {
      font-size: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper:before {
      font-size: var(--marker-size, 1em); }

.elementor-toc--content-ellipsis .elementor-toc__list-item-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-toc__list-items--collapsible > .elementor-toc__list-wrapper > .elementor-toc__list-item > .elementor-toc__list-wrapper {
  display: none; }

.elementor-toc__heading-anchor {
  position: absolute; }

.elementor-toc__body .elementor-toc__list-item-text {
  color: var(--item-text-color);
  text-decoration: var(--item-text-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    text-decoration: var(--item-text-active-decoration); }

ol.elementor-toc__list-wrapper {
  counter-reset: item; }
  ol.elementor-toc__list-wrapper .elementor-toc__list-item {
    counter-increment: item; }
    ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before {
      content: counters(item, ".") ". "; }

@media only screen and (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-toc--minimized-on-tablet_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-toc--minimized-on-tablet .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-toc--minimized-on-mobile_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-toc--minimized-on-mobile .elementor-toc__body {
    display: none; } }

.e-lottie__container {
  display: inline-block;
  max-width: var(--lottie-container-max-width);
  width: var(--lottie-container-width);
  opacity: var(--lottie-container-opacity); }
  .e-lottie__container:hover {
    opacity: var(--lottie-container-opacity-hover);
    transition-duration: var(--lottie-container-transition-duration-hover); }
  .e-lottie__container svg,
  .e-lottie__container svg * {
    transition: none !important; }

.e-lottie__caption {
  color: var(--caption-color);
  margin-top: var(--caption-margin-top);
  text-align: var(--caption-text-align); }

/* Video_Playlist Widget */
.e-tabs-inner-tabs {
  text-align: left;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 16px; }
  .e-tabs-inner-tabs .e-tab-content {
    padding-top: 32px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: flex;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper :after {
      content: '';
      width: 100%;
      height: var(--inner-tabs-border-height, 1px);
      background-color: var(--inner-tabs-border-color, #d5dadf);
      position: absolute;
      bottom: 0;
      z-index: -1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title {
      font-weight: 700;
      min-width: 140px;
      line-height: 38px;
      height: 38px;
      box-sizing: content-box; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a {
        color: #6d7882;
        padding: 0 36px;
        display: block;
        text-align: center; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active {
        border-bottom: 0 solid transparent;
        border-color: #495157;
        border-width: 0 0 1px 0; }
        .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a {
          color: #495157; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
    display: none;
    padding: 20px; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text {
      color: #556068; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons {
      margin-top: 24px;
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button {
        display: none;
        font-weight: 500;
        line-height: 24px;
        text-decoration: underline;
        border: none;
        background: transparent;
        padding: 0; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text {
      overflow: hidden; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button {
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button {
        display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text {
      height: auto; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .e-tabs-inner-tabs > .e-tab-content:first-child {
    padding-top: 24px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper {
    border-width: 1px 1px 0;
    border-style: solid;
    border-color: #d5dadf; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      font-size: 16px;
      font-weight: 700;
      text-align: center;
      height: 38px;
      line-height: 38px;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      padding: 0 10px;
      cursor: pointer;
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      padding: 20px; } }

.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
  flex-direction: row; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
    flex-direction: column-reverse; } }

.elementor-widget-video-playlist {
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; }
  .elementor-widget-video-playlist .e-tabs {
    display: flex;
    flex-direction: column; }
  .elementor-widget-video-playlist .e-tabs-main-area {
    display: flex;
    flex-direction: row-reverse;
    height: 434px; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
    width: 33%; }
  .elementor-widget-video-playlist .e-tabs-header {
    background-color: #ffffff;
    display: flex;
    flex: 0 0 auto;
    justify-content: space-between;
    padding: 0 16px;
    min-height: 56px;
    border-bottom: 1px solid #d5dadf; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side {
      display: inline-flex;
      flex-shrink: 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-title {
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      text-overflow: ellipsis;
      font-weight: 700;
      font-size: 16px;
      padding: 10px 0;
      overflow-wrap: anywhere;
      hyphens: auto;
      margin: auto 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      font-size: 14px;
      flex-shrink: 0;
      font-weight: 400;
      line-height: 20px;
      align-self: flex-start;
      padding: 18px 0 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: none;
      margin: auto 0 auto 8px;
      cursor: pointer;
      padding: 0 4px; }
      .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg {
        height: 1em;
        width: 1em; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-up {
      transform: rotate(-180deg);
      transition: .3s; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-down {
      transform: rotate(0deg);
      transition: .3s; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper {
    background-color: #ffffff;
    overflow: hidden;
    position: relative;
    height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
      overflow: auto;
      height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title {
      border-color: #d5dadf;
      border-width: 1px 0 0 0;
      font-size: 14px;
      height: 36px;
      padding: 0 16px;
      line-height: 36px;
      margin: 0;
      text-align: left;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      border-width: 0;
      box-sizing: content-box; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title {
      background-color: #ffffff;
      border-color: #d5dadf;
      border-width: 0 0 1px 0;
      cursor: pointer;
      display: flex;
      font-size: 14px;
      height: 55px;
      line-height: 55px;
      outline: none;
      padding: 0 16px;
      box-sizing: content-box; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        font-size: var(--playlist-item-icon-size, 16px); }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        fill: #ffffff;
        width: var(--playlist-item-icon-size, 16px);
        height: var(--playlist-item-icon-size, 16px); }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path {
          fill: #ffffff; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover {
        background-color: #f1f3f5;
        border-color: #d5dadf;
        border-width: 0 0 1px 0; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
          .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path {
            fill: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text {
          font-size: 14px; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: inline-flex; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail {
        background-color: #d5dadf;
        position: relative;
        margin: auto 0;
        flex-shrink: 0;
        width: 75px;
        height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img {
          object-fit: fill;
          width: 75px;
          height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg {
          position: absolute;
          bottom: 4px;
          right: 4px;
          font-weight: 900; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text {
        font-size: 14px;
        margin: auto 8px;
        text-align: left;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        flex-grow: 1; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        margin: auto 0;
        vertical-align: middle; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration {
        font-size: 14px;
        margin: auto 0; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched {
        display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      display: none;
      height: 98px;
      position: absolute;
      top: 0;
      width: 100%;
      pointer-events: none;
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      display: none;
      height: 98px;
      position: absolute;
      bottom: 0;
      width: 100%;
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
      pointer-events: none; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top {
      display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom {
      display: block; }
  .elementor-widget-video-playlist .e-tabs-content-wrapper {
    flex-grow: 1;
    height: 100%;
    position: relative; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay {
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: 50%; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title {
      display: none; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content {
      background-color: #000000;
      display: none;
      height: 100%;
      outline: none; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content > div {
        height: 100%; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe {
        height: 100%;
        max-height: 100% !important;
        display: flex; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video {
        height: 100%;
        background-color: #000000; }
  .elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content {
    display: none;
    outline: none; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-video-playlist .e-tabs-main-area {
    flex-direction: column-reverse;
    height: auto; }
    .elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper {
      border: none;
      height: 38%; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    width: auto;
    height: 62%; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
    max-height: 248px; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title {
      border: none; }
  .elementor-widget-video-playlist .e-tabs-header {
    min-height: 48px; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: inline-flex; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      margin: 0 6px;
      padding: 14px 0 0; }
  .elementor-widget-video-playlist .e-tab-content {
    border: none;
    padding: 0;
    display: flex; } }

.elementor-payment-button {
  border: none; }

.elementor-scrolling-tracker {
  --scrolling-track-default-progress-color: #61ce70;
  --scrolling-track-default-color: #eeeeee;
  --scrolling-track-precentage-default-color: $black; }

.elementor-scrolling-tracker-horizontal {
  display: flex;
  width: 100%;
  height: var(--horizontal-height, 20px);
  padding: var(--tracker-padding);
  align-items: center;
  border-top-width: var(--horizontal-border-top-width, 2px);
  border-right-width: var(--horizontal-border-right-width, 2px);
  border-bottom-width: var(--horizontal-border-bottom-width, 2px);
  border-left-width: var(--horizontal-border-left-width, 2px);
  border-style: var(--horizontal-border-style);
  border-color: var(--horizontal-border-color);
  border-radius: var(--border-radius);
  background-color: var(--scrolling-track-default-color);
  direction: var(--direction); }
  .elementor-scrolling-tracker-horizontal .current-progress {
    display: none;
    height: 100%;
    align-items: center;
    position: relative;
    border-radius: var(--progress-border-radius);
    border-top-width: var(--horizontal-progress-border-top-width, 2px);
    border-right-width: var(--horizontal-progress-border-right-width, 2px);
    border-bottom-width: var(--horizontal-progress-border-bottom-width, 2px);
    border-left-width: var(--horizontal-progress-border-left-width, 2px);
    border-style: var(--horizontal-progress-border);
    border-color: var(--horizontal-progress-border-color);
    background-color: var(--scrolling-track-default-progress-color); }
    .elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage {
      inset-inline-end: 0.5em;
      inset-inline-start: auto;
      position: absolute;
      direction: var(--text-direction);
      color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }

.elementor-scrolling-tracker-circular {
  display: flex;
  width: var(--circular-width, 100px);
  height: var(--circular-height, 100px);
  align-items: center;
  justify-content: center;
  position: relative;
  margin-inline-start: 0;
  margin-inline-end: auto; }
  .elementor-scrolling-tracker-circular .current-progress-percentage {
    position: absolute;
    color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }
  .elementor-scrolling-tracker-circular svg {
    position: absolute; }
  .elementor-scrolling-tracker-circular .current-progress {
    display: none;
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
    stroke: var(--circular-color, var(--scrolling-track-default-progress-color));
    fill: transparent;
    stroke-width: var(--circular-progress-width, 4px); }
  .elementor-scrolling-tracker-circular .circle {
    stroke: var(--circular-background-color, var(--scrolling-track-default-color));
    fill: transparent;
    stroke-width: var(--circular-background-width, 4px); }

.elementor-scrolling-tracker-alignment-left {
  margin-left: 0;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-center {
  margin-left: auto;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-right {
  margin-left: auto;
  margin-right: 0; }
PK!D�<�))*assets/css/templates/frontend-lite-rtl.cssnu�[���.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: flex;
  flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-left: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-right: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-left: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: 100%; }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  justify-content: flex-start; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: flex;
  flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    left: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: flex;
  flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: flex;
  align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  justify-content: flex-end; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  justify-content: flex-start; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-right: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, right); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: inline-flex;
    align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-left: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  left: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  transition: background-color 0.4s, transform 0s;
  text-align: right; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, 0);
  right: var(--side-cart-alignment-right, auto);
  transform: translateX(0);
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: flex;
    flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, right); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  transform: scale(0);
  transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  transform: var(--side-cart-alignment-transform, translateX(-100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-right: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    left: 0;
    bottom: 20px;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-left: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      right: 0;
      left: auto;
      transform: scale(1);
      transition: background-color 0.4s, transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      transform: translateY(0);
      transition: 0.3s; }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    transform: scale(0);
    transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: flex;
    align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      flex: 20%;
      text-align: left; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: right;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-right: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-left: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-right: 15px;
            font-size: 12px; }
            @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: left; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: right; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-right: 1rem;
        padding-left: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: right; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, right); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: right;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-left: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: left;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        flex: 2;
        padding-left: 30px; }
        @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-left: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        flex: 1; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-left: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: right;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-left: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-right: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-right: 0;
          padding-left: 0; }
      @media (min-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-right: 0;
        padding-left: 0; } }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-right: 0;
          padding-left: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-right: 0;
      padding-left: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-right: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: right;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: left;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-right: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-right: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-right: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: right;
    position: absolute;
    margin-right: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-right: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-left: 0;
        border-right-width: 0; }
      @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  flex-basis: 100%;
  flex-shrink: 0; }

.e-sticky-right-column--active {
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: flex;
    align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: left; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: flex;
    flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: left; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: left; }

.elementor-search-form {
  display: block;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: flex;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    flex-basis: 100%;
    color: #55595c;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    transition: 0.3s;
    align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: flex;
  align-items: center; }
  .elementor-author-box__avatar {
    flex-shrink: 0;
    margin-left: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      object-fit: cover; }
  .elementor-author-box__text {
    flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    flex-direction: row-reverse; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    flex-direction: row; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: flex;
  flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: flex;
  pointer-events: none;
  background-color: transparent;
  user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    left: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover; }

.elementor-motion-effects-perspective {
  perspective: 1200px; }
PK!i�\��%assets/css/templates/frontend.min.cssnu�[���@charset "UTF-8";.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-right:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-right:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:left;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-right:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-right:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-right:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-cta{cursor:pointer}}@media (min-width:ELEMENTOR_SCREEN_WIDESCREEN_MIN){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:ELEMENTOR_SCREEN_LAPTOP_MAX){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-left:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:linear-gradient(90deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-left:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-left:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-right:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-left:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-right:20px;margin-left:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-right:0;margin-left:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:left}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-left:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-left:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-left:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-left:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-right-color:#1da1f2;position:absolute;left:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-left:7px #e6e9ec;border-style:solid;padding-left:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:left}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;left:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:auto;right:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:auto;right:0;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 0 3px 3px;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:3px 3px 0 0;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 0 0 3px}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:0 3px 3px 0}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;left:50%;margin-left:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{left:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 0 10px 10px;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b2b2}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-left:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_MOBILE_NEXT){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_NEXT){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:ELEMENTOR_SCREEN_TABLET_EXTRA_NEXT){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-right:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-left:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-right:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-right:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:ELEMENTOR_SCREEN_TABLET_EXTRA_MAX){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}.e-tabs-inner-tabs{text-align:left;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}.elementor-payment-button{border:none}.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!yS�Z##&assets/css/templates/frontend-lite.cssnu�[���.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: flex;
  flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-right: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-left: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-right: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: 100%; }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  justify-content: flex-end; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: flex;
  flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    right: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: flex;
  flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: flex;
  align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  justify-content: flex-start; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  justify-content: flex-end; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-left: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, left); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: inline-flex;
    align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  right: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  transition: background-color 0.4s, transform 0s;
  text-align: left; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, auto);
  right: var(--side-cart-alignment-right, 0);
  transform: translateX(0);
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: flex;
    flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, left); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  transform: scale(0);
  transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  transform: var(--side-cart-alignment-transform, translateX(100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-left: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 20px;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-right: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      left: 0;
      right: auto;
      transform: scale(1);
      transition: background-color 0.4s, transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      transform: translateY(0);
      transition: 0.3s; }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    transform: scale(0);
    transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: flex;
    align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      flex: 20%;
      text-align: right; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: left;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-left: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-right: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-left: 15px;
            font-size: 12px; }
            @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: right; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: left; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-left: 1rem;
        padding-right: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: left; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, left); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: left;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-right: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: right;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        flex: 2;
        padding-right: 30px; }
        @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-right: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        flex: 1; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: left;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-right: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-left: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-left: 0;
          padding-right: 0; }
      @media (min-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-left: 0;
        padding-right: 0; } }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-left: 0;
          padding-right: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-left: 0;
      padding-right: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-left: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: right;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-left: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-left: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-left: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-left: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: left;
    position: absolute;
    margin-left: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-left: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-right: 0;
        border-right-width: 0; }
      @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  flex-basis: 100%;
  flex-shrink: 0; }

.e-sticky-right-column--active {
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: flex;
    align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: right; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: flex;
    flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: right; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: right; }

.elementor-search-form {
  display: block;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: flex;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    flex-basis: 100%;
    color: #55595c;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    transition: 0.3s;
    align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: flex;
  align-items: center; }
  .elementor-author-box__avatar {
    flex-shrink: 0;
    margin-right: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      object-fit: cover; }
  .elementor-author-box__text {
    flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    flex-direction: row; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    flex-direction: row-reverse; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: flex;
  flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: flex;
  pointer-events: none;
  background-color: transparent;
  user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    right: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover; }

.elementor-motion-effects-perspective {
  perspective: 1200px; }
PK!�J#%	�	�.assets/css/templates/frontend-lite-rtl.min.cssnu�[���.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-left:0}.woocommerce div.product.elementor .quantity+.button{margin-right:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;left:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-right:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,right)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-left:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;left:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:right}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,0);right:var(--side-cart-alignment-right,auto);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,right)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(-100%));-ms-transform:var(--side-cart-alignment-transform,translateX(-100%));transform:var(--side-cart-alignment-transform,translateX(-100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-right:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;left:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-left:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;right:0;left:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:left}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:right;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,right)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-right:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-left:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-right:15px;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-right:1rem;padding-left:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:right}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,right)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:right;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:left;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-left:30px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-left:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-left:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:right;font-size:14px;font-weight:700}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-left:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-right:0;padding-left:0}@media (min-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 0 8px 20px}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-right:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:right;width:25%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:left;width:75%;padding:0;padding-right:var(--tab-content-spacing,6%)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-right:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-right:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-right:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:right;position:absolute;margin-right:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-right:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-left:0;border-right-width:0}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:left}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:left}.elementor-post-navigation .elementor-post-navigation__next a{float:left}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-left:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;left:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!�G�����%assets/css/templates/frontend-rtl.cssnu�[���@charset "UTF-8";
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: flex;
  flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-left: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-right: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-left: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: 100%; }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  justify-content: flex-start; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  justify-content: flex-start; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: flex;
  flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    left: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: flex;
  flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: flex;
  align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  justify-content: flex-end; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  justify-content: flex-start; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-right: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, right); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: inline-flex;
    align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-left: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  left: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  transition: background-color 0.4s, transform 0s;
  text-align: right; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, 0);
  right: var(--side-cart-alignment-right, auto);
  transform: translateX(0);
  top: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: flex;
    flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, right); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  transform: scale(0);
  transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  transform: var(--side-cart-alignment-transform, translateX(-100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-right: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    left: 0;
    bottom: 20px;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-left: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      right: 0;
      left: auto;
      transform: scale(1);
      transition: background-color 0.4s, transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      transform: translateY(0);
      transition: 0.3s; }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    transform: scale(0);
    transition: background-color 0.4s, transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: flex;
    align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      flex: 20%;
      text-align: left; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: right;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-right: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-left: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-right: 15px;
            font-size: 12px; }
            @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: left; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: right; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-right: 1rem;
        padding-left: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: right; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, right); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: right;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: flex;
      flex-direction: column;
      flex-wrap: wrap;
      align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-left: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: left;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        flex: 2;
        padding-left: 30px; }
        @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-left: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        flex: 1; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-left: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: right;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-left: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-right: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-right: 0;
          padding-left: 0; }
      @media (min-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MIN) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-right: 0;
        padding-left: 0; } }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-right: 0;
          padding-left: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-right: 0;
      padding-left: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-right: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: right;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: left;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-right: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-right: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-right: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: right;
    position: absolute;
    margin-right: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-right: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-left: 0;
        border-right-width: 0; }
      @media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  flex-basis: 100%;
  flex-shrink: 0; }

.e-sticky-right-column--active {
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: flex;
    align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: left; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: flex;
    flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: left; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: left; }

.elementor-search-form {
  display: block;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: flex;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    flex-basis: 100%;
    color: #55595c;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    transition: 0.3s;
    align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: flex;
  align-items: center; }
  .elementor-author-box__avatar {
    flex-shrink: 0;
    margin-left: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      object-fit: cover; }
  .elementor-author-box__text {
    flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    flex-direction: row-reverse; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    flex-direction: row; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: flex;
  flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: flex;
  pointer-events: none;
  background-color: transparent;
  user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    left: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  transition-property: transform, opacity;
  transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover; }

.elementor-motion-effects-perspective {
  perspective: 1200px; }

.elementor-widget-posts:after, .elementor-widget-archive-posts:after {
  display: none; }

.elementor-posts-container.elementor-posts-masonry {
  align-items: flex-start; }

.elementor-posts-container:not(.elementor-posts-masonry) {
  align-items: stretch; }

.elementor-posts-container .elementor-post {
  padding: 0;
  margin: 0; }
  .elementor-posts-container .elementor-post__thumbnail {
    overflow: hidden; }
    .elementor-posts-container .elementor-post__thumbnail img {
      display: block;
      width: 100%;
      max-height: none;
      max-width: none;
      transition: filter 0.3s; }
    .elementor-posts-container .elementor-post__thumbnail__link {
      position: relative;
      display: block;
      width: 100%; }

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    height: auto;
    position: absolute;
    top: calc( 50% + 1px);
    left: calc( 50% + 1px);
    transform: scale(1.01) translate(-50%, -50%); }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
    height: 100%;
    width: auto; }

.elementor-posts .elementor-post {
  display: flex;
  transition-property: background, border, box-shadow;
  transition-duration: 0.25s; }
  .elementor-posts .elementor-post__title {
    font-size: 18px;
    margin: 0; }
  .elementor-posts .elementor-post__excerpt {
    margin-bottom: 10px; }
    .elementor-posts .elementor-post__excerpt p {
      margin: 0;
      line-height: 1.5em;
      font-size: 14px;
      color: #777; }
  .elementor-posts .elementor-post__meta-data {
    line-height: 1.3em;
    font-size: 12px;
    margin-bottom: 13px;
    color: #adadad; }
  .elementor-posts .elementor-post__read-more {
    font-size: 12px;
    font-weight: bold; }
  .elementor-posts .elementor-post__thumbnail {
    position: relative; }

.elementor-posts--skin-classic {
  display: grid;
  flex-wrap: wrap; }
  .elementor-posts--skin-classic:not(.elementor-posts-masonry) {
    align-items: stretch; }
  .elementor-posts--skin-classic .elementor-post {
    overflow: hidden; }
    .elementor-posts--skin-classic .elementor-post__text {
      flex-grow: 1; }

.elementor-posts--align-left .elementor-post {
  text-align: left; }

.elementor-posts--align-right .elementor-post {
  text-align: right; }

.elementor-posts--align-center .elementor-post {
  text-align: center; }

.elementor-posts--thumbnail-top .elementor-post {
  display: block;
  /*

			 used to be
			 align-self: flex-start;
			 until v2.1

			*/ }
  .elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
    margin-bottom: 20px; }
  .elementor-posts--thumbnail-top .elementor-post__text {
    width: 100%; }

.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link {
  margin-right: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link {
  margin-left: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link {
  margin-right: auto;
  margin-left: auto; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link, .elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  flex-shrink: 0;
  width: 25%; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link {
  order: 5;
  margin-right: 20px; }

.elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  order: 0;
  margin-left: 20px; }

.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link {
  display: none; }

.elementor-posts .elementor-post__card {
  overflow: hidden;
  position: relative;
  background-color: #fff;
  width: 100%;
  min-height: 100%;
  border-radius: 3px;
  border: 0 solid #818a91;
  transition: all 0.25s; }
  .elementor-posts .elementor-post__card .elementor-post__thumbnail {
    position: relative;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d; }
    .elementor-posts .elementor-post__card .elementor-post__thumbnail img {
      width: calc( 100% + 1px); }
  .elementor-posts .elementor-post__card .elementor-post__text {
    padding: 0 30px;
    margin-bottom: 0;
    margin-top: 20px; }
  .elementor-posts .elementor-post__card .elementor-post__read-more {
    margin-bottom: 20px;
    display: inline-block; }
  .elementor-posts .elementor-post__card .elementor-post__meta-data {
    padding: 15px 30px;
    margin-bottom: 0;
    border-top: 1px solid #eaeaea; }
    .elementor-posts .elementor-post__card .elementor-post__meta-data span + span:before {
      margin: 0 5px; }
  .elementor-posts .elementor-post__card .elementor-post__title {
    font-size: 21px; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt {
    line-height: 1.7; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt, .elementor-posts .elementor-post__card .elementor-post__title {
    margin-bottom: 25px; }
  .elementor-posts .elementor-post__card .elementor-post__badge, .elementor-posts .elementor-post__card .elementor-post__read-more {
    text-transform: uppercase; }

.elementor-posts .elementor-post__badge {
  position: absolute;
  top: 0;
  background: #818a91;
  color: #fff;
  font-size: 12px;
  padding: 0.6em 1.2em;
  line-height: 1;
  font-weight: 400;
  margin: 20px;
  border-radius: 999px; }

.elementor-posts .elementor-post__avatar {
  position: relative;
  padding: 0 30px;
  width: 100%;
  top: -25px;
  height: 0;
  pointer-events: none; }
  .elementor-posts .elementor-post__avatar img {
    border-radius: 50%;
    width: 60px;
    pointer-events: all;
    transform: translateY(-50%); }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start; }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data {
  margin-top: auto; }

.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar {
  padding-top: 0;
  position: static;
  height: auto; }
  .elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar {
    transform: translateY(0);
    vertical-align: bottom; }

.elementor-posts--show-avatar .elementor-post__thumbnail__link {
  margin-bottom: 25px; }

.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after {
  display: block;
  content: '';
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  opacity: 1;
  transition: all 0.3s ease-out; }

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after {
  opacity: 0.5; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-out .elementor-post__thumbnail img, .elementor-posts__hover-zoom-in .elementor-post__thumbnail img {
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1); }

.elementor-card-shadow-yes .elementor-post__card {
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
  .elementor-card-shadow-yes .elementor-post__card:hover {
    box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15); }

.elementor-posts--skin-full_content article {
  flex-direction: column;
  overflow: hidden; }
  .elementor-posts--skin-full_content article .elementor-post__thumbnail {
    padding-bottom: 0; }

body.elementor-editor-active .elementor-posts--skin-full_content,
body.elementor-editor-active .elementor-posts--skin-archive_full_content {
  pointer-events: none; }
  body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link,
  body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link {
    display: none; }

body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link {
  display: block; }

.elementor-portfolio__filters {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  margin: 0; }

.elementor-portfolio__filter {
  margin: 0;
  cursor: pointer;
  padding: 8px; }

.elementor-portfolio-item {
  align-self: flex-start;
  transition-property: transform, opacity;
  transition-timing-function: ease-in-out;
  transform-style: preserve-3d;
  overflow: hidden;
  margin: 0; }
  .elementor-portfolio-item__title {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #fff; }
  .elementor-portfolio-item__tags__separator:before {
    content: ', '; }
  .elementor-portfolio-item__overlay {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    transition: opacity 1s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    background-color: rgba(129, 138, 145, 0.8); }
    .elementor-portfolio-item__overlay:hover {
      opacity: 1;
      transition: opacity 0.5s; }
  .elementor-portfolio-item__img img[src=""] {
    background-color: rgba(0, 0, 0, 0.1);
    height: 100%; }

.elementor-portfolio.elementor-has-item-ratio {
  transition: height 0.5s; }
  .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1); }
    .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link {
      padding-bottom: 56.25%; }

.elementor ul li.elementor-portfolio__filter {
  list-style-type: none; }

.elementor-widget-posts.load-more-align-center .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper {
  text-align: center; }

.elementor-widget-posts.load-more-align-start .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper {
  text-align: start; }

.elementor-widget-posts.load-more-align-end .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper {
  text-align: end; }

.elementor-widget-posts.load-more-align-justify .elementor-button, .elementor-widget-archive-posts.load-more-align-justify .elementor-button {
  width: 100%; }

.elementor-widget-posts .e-load-more-spinner, .elementor-widget-archive-posts .e-load-more-spinner {
  display: flex; }
  .elementor-widget-posts .e-load-more-spinner i,
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner i,
  .elementor-widget-archive-posts .e-load-more-spinner svg {
    margin: 0 auto;
    display: none; }
  .elementor-widget-posts .e-load-more-spinner i, .elementor-widget-archive-posts .e-load-more-spinner i {
    color: var(--load-more-spinner-color); }
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner svg {
    fill: var(--load-more-spinner-color);
    height: 1em;
    width: 1em; }

.elementor-widget-posts .e-load-more-message, .elementor-widget-archive-posts .e-load-more-message {
  color: var(--load-more-message-color);
  text-align: var(--load-more-message-alignment, center);
  display: none;
  margin-top: var(--load-more—spacing, 30px); }

.elementor-widget-posts.e-load-more-pagination-loading, .elementor-widget-archive-posts.e-load-more-pagination-loading {
  cursor: default; }
  .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner {
    margin-top: var(--load-more—spacing, 30px); }
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg {
      display: flex; }
  .elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper {
    visibility: hidden; }

.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper {
  display: none; }

.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message, .elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message {
  display: block; }

.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper {
  visibility: visible; }

.elementor-widget-posts .elementor-button-wrapper, .elementor-widget-archive-posts .elementor-button-wrapper {
  margin-top: var(--load-more—spacing, 30px); }
  .elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner, .elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner {
    position: absolute;
    right: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: inherit; }
  .elementor-widget-posts .elementor-button-wrapper .elementor-button, .elementor-widget-archive-posts .elementor-button-wrapper .elementor-button {
    cursor: pointer;
    position: relative; }

/*
Multi Steps Form

Currently manually overwriting  - need to find a better solution,
the source property is coming from element/dev/scss...

*/
/* TODO: check why elementor-hidden class is not working */
.elementor-hidden,
.elementor-button.elementor-hidden {
  display: none; }

.e-form__step {
  width: 100%; }
  .e-form__step:not(.elementor-hidden) {
    display: flex;
    flex-wrap: wrap; }

.e-form__buttons {
  flex-wrap: wrap; }
  .e-form__buttons, .e-form__buttons__wrapper {
    display: flex; }

.e-form__indicators {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  font-size: 13px;
  margin-bottom: var(--e-form-steps-indicators-spacing); }
  .e-form__indicators__indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-basis: 0;
    padding: 0 var(--e-form-steps-divider-gap); }
    .e-form__indicators__indicator__progress {
      width: 100%;
      position: relative;
      background-color: var(--e-form-steps-indicator-progress-background-color);
      border-radius: var(--e-form-steps-indicator-progress-border-radius);
      overflow: hidden; }
      .e-form__indicators__indicator__progress__meter {
        width: var(--e-form-steps-indicator-progress-meter-width, 0);
        height: var(--e-form-steps-indicator-progress-height);
        line-height: var(--e-form-steps-indicator-progress-height);
        padding-right: 15px;
        border-radius: var(--e-form-steps-indicator-progress-border-radius);
        background-color: var(--e-form-steps-indicator-progress-color);
        color: var(--e-form-steps-indicator-progress-meter-color);
        text-align: right;
        transition: width 0.1s linear; }
    .e-form__indicators__indicator:first-child {
      padding-left: 0; }
    .e-form__indicators__indicator:last-child {
      padding-right: 0; }
    .e-form__indicators__indicator--state-inactive {
      color: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
      .e-form__indicators__indicator--state-inactive [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-inactive-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-inactive svg,
      .e-form__indicators__indicator--state-inactive object {
        fill: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
    .e-form__indicators__indicator--state-active {
      color: var(--e-form-steps-indicator-active-primary-color, #39B54A);
      border-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active svg,
      .e-form__indicators__indicator--state-active object {
        fill: var(--e-form-steps-indicator-active-primary-color, #39B54A); }
    .e-form__indicators__indicator--state-completed {
      color: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-completed [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A);
        background-color: initial; }
      .e-form__indicators__indicator--state-completed svg,
      .e-form__indicators__indicator--state-completed object {
        fill: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
    .e-form__indicators__indicator__icon {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      font-size: var(--e-form-steps-indicator-icon-size);
      border-width: 1px;
      border-style: solid;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      margin-bottom: 10px; }
      .e-form__indicators__indicator__icon img,
      .e-form__indicators__indicator__icon svg,
      .e-form__indicators__indicator__icon object {
        width: var(--e-form-steps-indicator-icon-size);
        height: auto; }
      .e-form__indicators__indicator__icon .e-font-icon-svg {
        height: 1em; }
    .e-form__indicators__indicator__number {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      border-width: 1px;
      border-style: solid;
      display: flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 10px; }
    .e-form__indicators__indicator--shape-circle {
      border-radius: 50%; }
    .e-form__indicators__indicator--shape-square {
      border-radius: 0; }
    .e-form__indicators__indicator--shape-rounded {
      border-radius: 5px; }
    .e-form__indicators__indicator--shape-none {
      border: 0; }
    .e-form__indicators__indicator__label {
      text-align: center; }
    .e-form__indicators__indicator__separator {
      width: 100%;
      height: var(--e-form-steps-divider-width);
      background-color: #c2cbd2; }
  .e-form__indicators--type-number, .e-form__indicators--type-number_text, .e-form__indicators--type-icon, .e-form__indicators--type-icon_text {
    align-items: flex-start; }
    .e-form__indicators--type-number .e-form__indicators__indicator__separator, .e-form__indicators--type-number_text .e-form__indicators__indicator__separator, .e-form__indicators--type-icon .e-form__indicators__indicator__separator, .e-form__indicators--type-icon_text .e-form__indicators__indicator__separator {
      margin-top: calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2); }

/* End OF Multi Steps Form */
.elementor-field-type-hidden {
  display: none; }

.elementor-field-type-html {
  display: inline-block; }

.elementor-login .elementor-remember-me,
.elementor-login .elementor-lost-password {
  font-size: 0.85em; }

.elementor-field-type-recaptcha_v3 .elementor-field-label {
  display: none; }

.elementor-field-type-recaptcha_v3 .grecaptcha-badge {
  z-index: 1; }

.elementor-button .elementor-form-spinner {
  order: 3; }

.elementor-form .elementor-button > span {
  display: flex;
  justify-content: center;
  align-items: center; }

.elementor-form .elementor-button .elementor-button-text {
  white-space: normal;
  flex-grow: 0; }

.elementor-form .elementor-button svg {
  height: auto; }

.elementor-form .elementor-button .e-font-icon-svg {
  height: 1em; }

.elementor-widget-price-list .elementor-price-list {
  list-style: none;
  padding: 0;
  margin: 0; }
  .elementor-widget-price-list .elementor-price-list li {
    margin: 0; }

.elementor-price-list li:not(:last-child) {
  margin-bottom: 20px; }

.elementor-price-list .elementor-price-list-image {
  max-width: 50%;
  flex-shrink: 0;
  padding-left: 25px; }
  .elementor-price-list .elementor-price-list-image img {
    width: 100%; }

.elementor-price-list .elementor-price-list-text,
.elementor-price-list .elementor-price-list-item,
.elementor-price-list .elementor-price-list-header {
  display: flex; }

.elementor-price-list .elementor-price-list-item {
  align-items: flex-start; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-text {
    align-items: flex-start;
    flex-wrap: wrap;
    flex-grow: 1; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
    align-items: center;
    flex-basis: 100%;
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 10px;
    justify-content: space-between; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-title {
    max-width: 80%; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-price {
    font-weight: 600; }
  .elementor-price-list .elementor-price-list-item p.elementor-price-list-description {
    flex-basis: 100%;
    font-size: 14px;
    margin: 0; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-separator {
    flex-grow: 1;
    margin-left: 10px;
    margin-right: 10px;
    border-bottom-style: dotted;
    border-bottom-width: 2px;
    height: 0; }

.elementor-price-table {
  text-align: center; }
  .elementor-price-table .elementor-price-table__header {
    background: var(--e-price-table-header-background-color, #555);
    padding: 20px 0; }
  .elementor-price-table .elementor-price-table__heading {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 24px;
    font-weight: 600;
    color: #fff; }
  .elementor-price-table .elementor-price-table__subheading {
    font-size: 13px;
    font-weight: 400;
    color: #fff; }
  .elementor-price-table .elementor-price-table__original-price {
    margin-left: 15px;
    text-decoration: line-through;
    font-size: 0.5em;
    line-height: 1;
    font-weight: 400;
    align-self: center; }
    .elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency {
      font-size: 1em;
      margin: 0; }
  .elementor-price-table .elementor-price-table__price {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    color: #555;
    font-weight: 800;
    font-size: 65px;
    padding: 40px 0; }
    .elementor-price-table .elementor-price-table__price .elementor-typo-excluded {
      line-height: initial;
      letter-spacing: initial;
      text-transform: initial;
      font-weight: initial;
      font-size: initial;
      font-style: initial; }
  .elementor-price-table .elementor-price-table__after-price {
    display: flex;
    flex-wrap: wrap;
    text-align: right;
    align-self: stretch;
    align-items: flex-start;
    flex-direction: column; }
  .elementor-price-table .elementor-price-table__integer-part {
    line-height: 0.8; }
  .elementor-price-table .elementor-price-table__currency, .elementor-price-table .elementor-price-table__fractional-part {
    line-height: 1;
    font-size: 0.3em; }
  .elementor-price-table .elementor-price-table__currency {
    margin-left: 3px; }
  .elementor-price-table .elementor-price-table__period {
    width: 100%;
    font-size: 13px;
    font-weight: 400; }
  .elementor-price-table .elementor-price-table__features-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: var(--e-price-table-features-list-color); }
    .elementor-price-table .elementor-price-table__features-list li {
      font-size: 14px;
      line-height: 1;
      margin: 0;
      padding: 0; }
      .elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
        margin-left: 15px;
        margin-right: 15px; }
      .elementor-price-table .elementor-price-table__features-list li:not(:first-child):before {
        content: '';
        display: block;
        border: 0 solid rgba(122, 122, 122, 0.3);
        margin: 10px 12.5%; }
    .elementor-price-table .elementor-price-table__features-list i {
      margin-left: 10px;
      font-size: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg {
      margin-left: 10px;
      fill: var(--e-price-table-features-list-color);
      height: 1.3em;
      width: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg ~ * {
      vertical-align: text-top; }
  .elementor-price-table .elementor-price-table__footer {
    padding: 30px 0; }
  .elementor-price-table .elementor-price-table__additional_info {
    margin: 0;
    font-size: 13px;
    line-height: 1.4; }
  .elementor-price-table__ribbon {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    transform: rotate(0);
    width: 150px;
    overflow: hidden;
    height: 150px; }
    .elementor-price-table__ribbon-inner {
      text-align: center;
      left: 0;
      width: 200%;
      transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
      margin-top: 35px;
      font-size: 13px;
      line-height: 2;
      font-weight: 800;
      text-transform: uppercase;
      background: #000; }
    .elementor-price-table__ribbon.elementor-ribbon-left {
      transform: rotate(0);
      left: 0;
      right: auto; }
    .elementor-price-table__ribbon.elementor-ribbon-right {
      transform: rotate(90deg);
      left: auto;
      right: 0; }

.elementor-widget-price-table .elementor-widget-container {
  overflow: hidden;
  background-color: #f7f7f7; }

.elementor-flip-box {
  height: 280px;
  position: relative;
  perspective: 1000px;
  transform-style: preserve-3d; }
  @media (max-device-width: ELEMENTOR_SCREEN_TABLET_MAX) {
    .elementor-flip-box {
      cursor: pointer; } }
  .elementor-flip-box__front {
    background-color: #1abc9c; }
  .elementor-flip-box__back {
    background-color: #4054b2;
    display: block; }
  .elementor-flip-box__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    transition: all .6s ease-in-out; }
    .elementor-flip-box__layer__overlay {
      display: flex;
      width: 100%;
      height: 100%;
      flex-direction: column;
      justify-content: center;
      align-items: stretch;
      text-align: center;
      padding: 35px;
      color: white; }
    .elementor-flip-box__layer__title {
      font-size: 21px; }
    .elementor-flip-box__layer__description {
      font-size: 14px; }
    .elementor-flip-box__layer__description:not(:last-child), .elementor-flip-box__layer__title:not(:last-child) {
      margin: 0 0 20px 0;
      padding: 0; }
    .elementor-flip-box__layer__title {
      line-height: 1;
      font-weight: 600; }
  .elementor-flip-box,
  .elementor-flip-box .elementor-view-framed,
  .elementor-flip-box .elementor-view-stacked {
    --e-flip-box-view-framed-stacked-icon-color: #fff; }
    .elementor-flip-box .elementor-icon,
    .elementor-flip-box .elementor-view-framed .elementor-icon,
    .elementor-flip-box .elementor-view-stacked .elementor-icon {
      color: var(--e-flip-box-view-framed-stacked-icon-color); }
      .elementor-flip-box .elementor-icon svg,
      .elementor-flip-box .elementor-view-framed .elementor-icon svg,
      .elementor-flip-box .elementor-view-stacked .elementor-icon svg {
        fill: var(--e-flip-box-view-framed-stacked-icon-color); }
  .elementor-flip-box .elementor-view-framed .elementor-icon {
    border-color: #fff; }
  .elementor-flip-box .elementor-view-stacked .elementor-icon {
    background-color: rgba(0, 0, 0, 0.5); }
  .elementor-flip-box__button.elementor-button {
    cursor: pointer;
    align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-flip-box__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-flip-box__image {
    margin: 0 0 20px 0;
    display: inline-block;
    width: 100%; }
    .elementor-flip-box__image img {
      width: 50%; }
  .elementor-flip-box .elementor-icon-wrapper {
    margin-bottom: 20px; }
  .elementor-flip-box--3d .elementor-flip-box__layer__inner {
    transform: translateZ(90px) scale(0.91); }
  .elementor-flip-box--3d .elementor-flip-box__layer__overlay {
    transform-style: preserve-3d;
    transform: translateZ(0.1px); }
  .elementor-flip-box--effect-flip .elementor-flip-box {
    perspective: 1000px;
    transform-style: preserve-3d; }
    .elementor-flip-box--effect-flip .elementor-flip-box__layer {
      transform-style: preserve-3d;
      backface-visibility: hidden; }
    .elementor-flip-box--effect-flip .elementor-flip-box__front {
      transform: none;
      z-index: 1; }
    .elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back {
      transform: none; }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
    transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back {
    transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back {
    transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back {
    transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-push .elementor-flip-box__front {
    transform: none; }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide .elementor-flip-box, .elementor-flip-box--effect-push .elementor-flip-box {
    overflow: hidden; }
    .elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back, .elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back {
      transform: none; }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back {
    transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back {
    transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back {
    transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back {
    transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front {
    transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    opacity: 1;
    transform: scale(1);
    z-index: 1;
    width: 100%; }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front {
    width: 0;
    opacity: 0;
    transform: scale(0.7);
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s; }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back {
    transition: transform 0.7s, opacity 0.5s 0.2s;
    opacity: 0;
    transform: scale(0.7); }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back {
    transition: transform 0.7s, opacity 0.5s;
    opacity: 1;
    transform: scale(1); }
  .elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back {
    opacity: 0; }
  .elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back {
    opacity: 1; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front {
  display: none; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back {
  transform: none;
  opacity: 1; }

.elementor-widget-call-to-action .elementor-widget-container {
  overflow: hidden; }

.elementor-cta {
  position: relative;
  display: flex;
  overflow: hidden;
  transition: 0.5s; }
  .elementor-cta--skin-classic .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--skin-classic .elementor-cta__bg-wrapper {
      position: relative;
      min-height: 200px;
      width: 100%; }
    .elementor-cta--skin-classic .elementor-cta__content {
      transition: all 0.4s;
      width: 100%;
      background-color: #f7f7f7; }
    .elementor-cta--skin-classic .elementor-cta__content-item, .elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon {
      color: #55595c;
      border-color: #55595c;
      fill: #55595c; }
    .elementor-cta--skin-classic .elementor-cta__button.elementor-button {
      color: #55595c;
      border-color: #55595c; }
  .elementor-cta--skin-cover .elementor-cta {
    display: block; }
    .elementor-cta--skin-cover .elementor-cta__bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      transition: all 0.4s;
      width: 100%; }
    .elementor-cta--skin-cover .elementor-cta__content {
      min-height: 280px; }
    .elementor-cta--skin-cover .elementor-cta__content-item, .elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon {
      color: #fff;
      border-color: #fff; }
    .elementor-cta--skin-cover .elementor-cta__button.elementor-button {
      color: white;
      border-color: white; }
  .elementor-cta--layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--layout-image-left .elementor-cta, .elementor-cta--layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--layout-image-left .elementor-cta__content, .elementor-cta--layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--layout-image-right .elementor-cta {
    flex-direction: row; }
  .elementor-cta__bg, .elementor-cta__bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    transition: all 0.4s; }
  .elementor-cta__bg-wrapper {
    z-index: 1;
    overflow: hidden; }
  .elementor-cta__bg {
    background-size: cover;
    background-position: center;
    z-index: 1; }
  .elementor-cta__bg-overlay {
    z-index: 2; }
  .elementor-cta__button.elementor-button {
    cursor: pointer;
    align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-cta__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-cta__title {
    font-size: 23px; }
  .elementor-cta__content {
    z-index: 1;
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    padding: 35px;
    width: 100%; }
    .elementor-cta__content, .elementor-cta__content-item {
      position: relative;
      transition: 0.5s;
      color: #fff; }
    .elementor-cta__content-item {
      width: 100%;
      margin: 0; }
      .elementor-cta__content-item:not(:last-child) {
        margin-bottom: 15px; }
      .elementor-cta__content-item .elementor-icon {
        color: #fff; }
  .elementor-cta--valign-top .elementor-cta__content {
    align-content: flex-start;
    align-items: flex-start; }
  .elementor-cta--valign-middle .elementor-cta__content {
    align-content: center;
    align-items: center; }
  .elementor-cta--valign-bottom .elementor-cta__content {
    align-content: flex-end;
    align-items: flex-end; }
  .elementor-cta:hover .elementor-cta__bg-overlay {
    background-color: rgba(0, 0, 0, 0.3); }

@media (max-device-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-cta {
    cursor: pointer; } }

@media (min-width: ELEMENTOR_SCREEN_WIDESCREEN_MIN) {
  .elementor-cta--widescreen-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta, .elementor-cta--widescreen-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__content, .elementor-cta--widescreen-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--widescreen-layout-image-right .elementor-cta {
    flex-direction: row; } }

@media (max-width: ELEMENTOR_SCREEN_LAPTOP_MAX) {
  .elementor-cta--laptop-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--laptop-layout-image-left .elementor-cta, .elementor-cta--laptop-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__content, .elementor-cta--laptop-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--laptop-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--laptop-layout-image-right .elementor-cta {
    flex-direction: row; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-cta--tablet_extra-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta, .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__content, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    flex-direction: row; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-cta--tablet-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet-layout-image-left .elementor-cta, .elementor-cta--tablet-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__content, .elementor-cta--tablet-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--tablet-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--tablet-layout-image-right .elementor-cta {
    flex-direction: row; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-cta--mobile_extra-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta, .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__content, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    flex-direction: row; } }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-cta--mobile-layout-image-above .elementor-cta {
    flex-wrap: wrap; }
    .elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile-layout-image-left .elementor-cta, .elementor-cta--mobile-layout-image-right .elementor-cta {
    flex-wrap: nowrap; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__content, .elementor-cta--mobile-layout-image-right .elementor-cta__content {
      flex-grow: 1; }
  .elementor-cta--mobile-layout-image-left .elementor-cta {
    flex-direction: row-reverse; }
  .elementor-cta--mobile-layout-image-right .elementor-cta {
    flex-direction: row; } }

.elementor-ribbon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: auto;
  transform: rotate(0);
  width: 150px;
  overflow: hidden;
  height: 150px; }
  .elementor-ribbon-inner {
    text-align: center;
    left: 0;
    width: 200%;
    transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
    margin-top: 35px;
    font-size: 13px;
    line-height: 2;
    font-weight: 800;
    text-transform: uppercase;
    background: #000;
    color: #fff; }
  .elementor-ribbon.elementor-ribbon-left {
    transform: rotate(0);
    left: 0;
    right: auto; }
  .elementor-ribbon.elementor-ribbon-right {
    transform: rotate(90deg);
    left: auto;
    right: 0; }

.elementor-widget-countdown .elementor-countdown-expire--message {
  display: none;
  padding: 20px;
  text-align: center; }

.elementor-widget-countdown .elementor-countdown-wrapper {
  flex-direction: row-reverse; }

.elementor-widget-countdown .elementor-countdown-item {
  padding: 20px 0;
  text-align: center;
  color: #ffffff; }

.elementor-widget-countdown .elementor-countdown-digits,
.elementor-widget-countdown .elementor-countdown-label {
  line-height: 1; }

.elementor-widget-countdown .elementor-countdown-digits {
  font-size: 69px; }

.elementor-widget-countdown .elementor-countdown-label {
  font-size: 19px; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper {
  display: flex;
  justify-content: center;
  margin-right: auto;
  margin-left: auto; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,
.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label {
  display: block; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item {
  flex-basis: 0;
  flex-grow: 1; }

.elementor-widget-countdown.elementor-countdown--label-inline {
  text-align: center; }
  .elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px; }

/* Slides Widget */
.elementor-slides .swiper-slide-bg {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-width: 100%;
  min-height: 100%; }

.elementor-slides .swiper-slide-inner {
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 50px;
  margin: auto; }
  .elementor-slides .swiper-slide-inner, .elementor-slides .swiper-slide-inner:hover {
    color: white;
    display: flex; }
  .elementor-slides .swiper-slide-inner .elementor-background-overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }
  .elementor-slides .swiper-slide-inner .elementor-slide-content {
    position: relative;
    z-index: 1;
    width: 100%; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading {
    font-size: 35px;
    font-weight: bold;
    line-height: 1; }
  .elementor-slides .swiper-slide-inner .elementor-slide-description {
    font-size: 17px;
    line-height: 1.4; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child) {
    margin-bottom: 30px; }
  .elementor-slides .swiper-slide-inner .elementor-slide-button {
    border: solid 2px white;
    color: white;
    background: transparent;
    display: inline-block; }
    .elementor-slides .swiper-slide-inner .elementor-slide-button, .elementor-slides .swiper-slide-inner .elementor-slide-button:hover {
      background: transparent;
      color: inherit;
      text-decoration: none; }

.elementor--v-position-top .swiper-slide-inner {
  align-items: flex-start; }

.elementor--v-position-bottom .swiper-slide-inner {
  align-items: flex-end; }

.elementor--v-position-middle .swiper-slide-inner {
  align-items: center; }

.elementor--h-position-left .swiper-slide-inner {
  justify-content: flex-end; }

.elementor--h-position-right .swiper-slide-inner {
  justify-content: flex-start; }

.elementor--h-position-center .swiper-slide-inner {
  justify-content: center; }

body.rtl .elementor-widget-slides .elementor-swiper-button-next {
  left: 10px;
  right: auto; }

body.rtl .elementor-widget-slides .elementor-swiper-button-prev {
  right: 10px;
  left: auto; }

.elementor-slides-wrapper div:not(.swiper-slide) > .swiper-slide-inner {
  display: none; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-slides .swiper-slide-inner {
    padding: 30px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-heading {
      font-size: 23px;
      line-height: 1;
      margin-bottom: 15px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-description {
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 15px; } }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn {
  color: var(--e-share-buttons-primary-color, #ea4335);
  border-color: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  background-color: var(--e-share-buttons-primary-color, #ea4335);
  color: var(--e-share-buttons-secondary-color, #fff); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon {
  color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-official .elementor-share-btn:hover {
  filter: saturate(1.5) brightness(1.2); }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg {
  color: #005be2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg {
    fill: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email {
  color: #ea4335; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg {
    fill: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print {
  color: #aaaaaa; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg {
    fill: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook {
  color: #3b5998; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg {
    fill: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google {
  color: #dd4b39; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg {
    fill: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket {
  color: #EF3F56; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg {
    fill: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki {
  color: #F4731C; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg {
    fill: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest {
  color: #bd081c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg {
    fill: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit {
  color: #ff4500; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg {
    fill: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype {
  color: #00AFF0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg {
    fill: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat {
  color: #fffc00; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg {
    fill: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon {
  color: #EB4924; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg {
    fill: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix {
  color: #f3782b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg {
    fill: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr {
  color: #35465c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg {
    fill: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch {
  color: #6441A5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg {
    fill: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram {
  color: #2CA5E0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg {
    fill: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter {
  color: #1DA1F2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg {
    fill: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo {
  color: #1ab7ea; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg {
    fill: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk {
  color: #45668e; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg {
    fill: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp {
  color: #25d366; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg {
    fill: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress {
  color: #21759b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg {
    fill: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing {
  color: #026466; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg {
    fill: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon {
  color: var(--e-share-buttons-icon-color, #fff); }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-icon-color, #fff); }

.elementor-share-buttons--skin-framed .elementor-share-btn__icon, .elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  margin-right: -0.2em; }

.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--skin-boxed .elementor-share-btn {
  border-style: solid; }

.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-boxed .elementor-share-btn__text, .elementor-share-buttons--skin-minimal .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  padding-right: 0.9em; }

.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon {
  border-radius: 0.5em; }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon {
  border-radius: 99.9em; }

.elementor-share-buttons--view-text .elementor-share-btn__text {
  padding-right: 1em; }

.elementor-share-buttons--view-text .elementor-share-btn, .elementor-share-buttons--view-icon .elementor-share-btn {
  justify-content: center; }
  .elementor-share-buttons--view-text .elementor-share-btn__icon, .elementor-share-buttons--view-text .elementor-share-btn__text, .elementor-share-buttons--view-icon .elementor-share-btn__icon, .elementor-share-buttons--view-icon .elementor-share-btn__text {
    flex-grow: 1;
    justify-content: center; }

.elementor-share-buttons--shape-rounded .elementor-share-btn {
  border-radius: 0.5em; }

.elementor-share-buttons--shape-circle .elementor-share-btn {
  border-radius: 99.9em; }

.elementor-share-btn {
  overflow: hidden;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  transition-duration: 0.2s;
  transition-property: filter, background-color, border-color;
  height: 4.5em;
  cursor: pointer; }
  .elementor-share-btn__icon, .elementor-share-btn__text {
    transition-property: color, background-color;
    transition-duration: 0.2s; }
  .elementor-share-btn__icon {
    display: flex;
    align-self: stretch;
    justify-content: center;
    align-items: center;
    width: 4.5em;
    position: relative; }
    .elementor-share-btn__icon i {
      font-size: var(--e-share-buttons-icon-size, 1.7em); }
    .elementor-share-btn__icon svg {
      width: var(--e-share-buttons-icon-size, 1.7em);
      height: var(--e-share-buttons-icon-size, 1.7em); }
  .elementor-share-btn__text {
    font-size: 1.5em;
    padding-left: 1em;
    align-self: stretch;
    flex-grow: 1;
    align-items: center;
    display: flex;
    font-weight: 100; }
  .elementor-share-btn__title {
    font-weight: bold;
    flex-shrink: 0; }

.elementor-widget-share-buttons {
  text-align: var(--alignment, inherit);
  text-align-last: var(--alignment, inherit); }
  .elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container {
    font-size: 0; }

.elementor-skin-carousel .elementor-main-swiper, .elementor-skin-coverflow .elementor-main-swiper {
  height: 230px; }

.elementor-skin-slideshow .elementor-main-swiper {
  height: 450px;
  position: relative; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i {
  font-size: 50px; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide {
  cursor: pointer; }
  .elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.3); }

.elementor-carousel-image {
  background: no-repeat center;
  background-size: cover;
  height: 100%;
  position: relative; }

.elementor-carousel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  color: var(--e-carousel-image-overlay-color, #fff);
  background-color: rgba(129, 138, 145, 0.8);
  transition: transform .5s, opacity .5s; }
  .elementor-carousel-image-overlay i {
    font-size: var(--e-carousel-image-overlay-icon-size, 21px); }
  .elementor-carousel-image-overlay svg {
    fill: var(--e-carousel-image-overlay-color, #fff);
    width: var(--e-carousel-image-overlay-icon-size, 21px);
    height: var(--e-carousel-image-overlay-icon-size, 21px); }

.elementor-testimonial__image {
  flex-shrink: 0; }
  .elementor-testimonial__image img {
    border-radius: 999px;
    box-sizing: content-box;
    object-fit: cover; }

.elementor-testimonial__footer, .elementor-testimonial__header {
  display: flex; }
  .elementor-testimonial__footer cite, .elementor-testimonial__header cite {
    display: flex;
    flex-direction: column;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5; }

.elementor-testimonial__name {
  font-weight: bold; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer, .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
  align-items: center; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above .elementor-testimonial__image + cite {
  margin-right: 20px; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer {
  flex-direction: row; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite {
  margin-left: 20px;
  margin-right: 0; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer {
  flex-direction: row-reverse; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite {
  margin-left: 0;
  margin-right: 20px; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer {
  margin-top: 25px; }

.elementor-testimonial--layout-image_above .elementor-testimonial {
  display: flex;
  flex-direction: column-reverse; }
  .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
    margin-bottom: 25px; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer {
  margin-top: 25px;
  flex-wrap: wrap; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__image, .elementor-testimonial--layout-image_stacked .elementor-testimonial cite {
  margin-top: 15px;
  width: 100%; }

.elementor-testimonial--layout-image_left .elementor-testimonial, .elementor-testimonial--layout-image_right .elementor-testimonial {
  display: flex;
  align-items: stretch; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    flex-shrink: 0;
    flex-direction: column;
    text-align: center; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_right .elementor-testimonial__image + cite {
    margin-top: 15px; }

.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer, .elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer {
  justify-content: flex-start; }

.elementor-testimonial--layout-image_left .elementor-testimonial {
  flex-direction: row; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer {
    padding-left: 20px; }

.elementor-testimonial--layout-image_right .elementor-testimonial {
  flex-direction: row-reverse; }
  .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    padding-right: 20px; }

.elementor-testimonial--align-right .elementor-testimonial {
  text-align: right; }

.elementor-testimonial--align-left .elementor-testimonial {
  text-align: left; }

.elementor-testimonial--align-center .elementor-testimonial {
  text-align: center; }
  .elementor-testimonial--align-center .elementor-testimonial__footer {
    justify-content: center; }

.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite {
  text-align: right; }

.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite {
  width: 100%;
  display: flex;
  flex-direction: column;
  margin-top: 25px; }

.elementor-testimonial--skin-bubble .elementor-testimonial__content {
  background-color: #e6e9ec;
  padding: 20px;
  position: relative; }
  .elementor-testimonial--skin-bubble .elementor-testimonial__content:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-color: #e6e9ec;
    position: absolute;
    transform: scaleX(0.75) rotate(45deg);
    border-width: 0;
    box-sizing: content-box; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after {
  bottom: calc( 100% - 7px);
  transform: scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  transform: translateX(-50%) scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after {
  top: calc( 100% - 7px); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  transform: translateX(-50%) scaleX(0.75) rotate(45deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after {
  left: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after {
  right: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after {
  transform: scaleY(0.75) rotate(135deg);
  left: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  transform: scaleY(0.75) rotate(-45deg);
  right: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  top: calc(20px + (50px / 2)); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer {
  padding-top: 20px; }

.elementor-widget-testimonial-carousel .swiper-slide {
  padding: 20px; }

.elementor-widget-testimonial-carousel .elementor-testimonial__text {
  font-size: 1.3em;
  font-style: italic;
  line-height: 1.5; }

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
  width: 50px;
  height: 50px; }

.elementor-widget-reviews .swiper-slide {
  background-color: white;
  border: 1px solid #e1e8ed;
  border-radius: 5px;
  padding: 0; }

.elementor-widget-reviews .elementor-testimonial__text {
  font-size: 14px;
  line-height: 20px; }

.elementor-widget-reviews .elementor-testimonial__name {
  color: #1c2022; }

.elementor-widget-reviews .elementor-testimonial__title {
  color: #697882;
  font-size: 12.5px;
  font-weight: normal;
  font-family: inherit; }

.elementor-widget-reviews .elementor-testimonial__image {
  display: flex; }
  .elementor-widget-reviews .elementor-testimonial__image img {
    width: 36px;
    height: 36px; }

.elementor-widget-reviews .elementor-testimonial__icon {
  margin-right: auto;
  font-size: 17px; }
  .elementor-widget-reviews .elementor-testimonial__icon .fa + .fa {
    margin-right: 0.15em; }
  .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon {
    color: var(--e-testimonial-icon-color); }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android {
      --e-testimonial-icon-color: #A4C639; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple {
      --e-testimonial-icon-color: #999999; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance {
      --e-testimonial-icon-color: #1769ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket {
      --e-testimonial-icon-color: #205081; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen {
      --e-testimonial-icon-color: #000000; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious {
      --e-testimonial-icon-color: #3399ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg {
      --e-testimonial-icon-color: #005be2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble {
      --e-testimonial-icon-color: #ea4c89; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope {
      --e-testimonial-icon-color: #ea4335; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook {
      --e-testimonial-icon-color: #3b5998; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr {
      --e-testimonial-icon-color: #0063dc; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare {
      --e-testimonial-icon-color: #2d5be3; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github {
      --e-testimonial-icon-color: #333333; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus {
      --e-testimonial-icon-color: #dd4b39; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz {
      --e-testimonial-icon-color: #7ac142; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram {
      --e-testimonial-icon-color: #262626; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle {
      --e-testimonial-icon-color: #487AA2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium {
      --e-testimonial-icon-color: #00ab6b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup {
      --e-testimonial-icon-color: #ec1c40; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud {
      --e-testimonial-icon-color: #273a4b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki {
      --e-testimonial-icon-color: #F4731C; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest {
      --e-testimonial-icon-color: #bd081c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt {
      --e-testimonial-icon-color: #da552f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit {
      --e-testimonial-icon-color: #ff4500; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss {
      --e-testimonial-icon-color: #f26522; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart {
      --e-testimonial-icon-color: #4CAF50; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype {
      --e-testimonial-icon-color: #00AFF0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat {
      --e-testimonial-icon-color: #fffc00; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud {
      --e-testimonial-icon-color: #ff8800; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify {
      --e-testimonial-icon-color: #2ebd59; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow {
      --e-testimonial-icon-color: #fe7a15; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam {
      --e-testimonial-icon-color: #00adee; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon {
      --e-testimonial-icon-color: #EB4924; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram {
      --e-testimonial-icon-color: #2CA5E0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack, .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack {
      --e-testimonial-icon-color: #1aa1d8; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor {
      --e-testimonial-icon-color: #589442; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr {
      --e-testimonial-icon-color: #35465c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch {
      --e-testimonial-icon-color: #6441A5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter {
      --e-testimonial-icon-color: #1DA1F2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo {
      --e-testimonial-icon-color: #1ab7ea; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk {
      --e-testimonial-icon-color: #45668e; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo {
      --e-testimonial-icon-color: #DD2430; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin {
      --e-testimonial-icon-color: #31A918; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp {
      --e-testimonial-icon-color: #25d366; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress {
      --e-testimonial-icon-color: #21759b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing {
      --e-testimonial-icon-color: #026466; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp {
      --e-testimonial-icon-color: #af0606; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube {
      --e-testimonial-icon-color: #cd201f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px {
      --e-testimonial-icon-color: #0099e5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg {
      fill: var(--e-testimonial-icon-color); }

.elementor-widget-reviews .elementor-testimonial__rating {
  background-image: linear-gradient(to right, #ffc82c var(--rating), #cccccc var(--rating));
  font-family: eicons; }

.elementor-widget-reviews .elementor-testimonial__header {
  display: flex;
  padding-top: 15px;
  padding-bottom: 6px; }

.elementor-widget-reviews .elementor-testimonial__image + cite {
  margin-right: 9px; }

.elementor-widget-reviews .elementor-testimonial__separator {
  margin: 0 auto;
  border-top: 0 none;
  border-bottom: 1px solid #e1e8ed;
  height: 0; }

.elementor-widget-reviews .elementor-testimonial__content {
  padding-top: 6px;
  padding-bottom: 15px; }

.elementor-widget-reviews .elementor-testimonial__content, .elementor-widget-reviews .elementor-testimonial__header {
  padding-left: 15px;
  padding-right: 15px; }

.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header {
  border-bottom: 1px solid #e1e8ed; }

.swiper-pagination-bullets {
  color: #fff;
  cursor: default; }

.swiper-slide {
  will-change: transform;
  border-style: solid;
  border-width: 0;
  transition-duration: .5s;
  transition-property: border, background, transform;
  overflow: hidden; }
  .swiper-slide:not(:hover) .e-overlay-animation-fade {
    opacity: 0; }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-up {
    transform: translateY(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-down {
    transform: translateY(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-right {
    transform: translateX(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-left {
    transform: translateX(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-zoom-in {
    transform: scale(0.5);
    opacity: 0; }
  .swiper-slide a {
    display: inline; }
    .swiper-slide a.elementor-button {
      display: inline-block; }

.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper,
.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper {
  width: calc( 95% - 40px); }

.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper {
  width: 95%; }

.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper {
  display: flex;
  align-items: stretch; }

.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container, .elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container {
  padding-bottom: 40px; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next,
.elementor-widget-reviews .elementor-swiper-button-prev,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next {
  left: 0;
  right: unset; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-next,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev,
.elementor-widget-reviews .elementor-swiper-button-next,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev {
  right: 0;
  left: unset; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next, .elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev {
  top: calc( 50% - ( 40px / 2 )); }

.elementor-widget-media-carousel .elementor-swiper-button-prev,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next {
  left: 10px;
  right: unset; }

.elementor-widget-media-carousel .elementor-swiper-button-next,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev {
  right: 10px;
  left: unset; }

.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),
.entry-summary blockquote.elementor-blockquote {
  margin-right: 0;
  margin-left: 0; }

.elementor-widget-blockquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  quotes: none;
  border-left: 0 none;
  border-right: 0 none;
  border-top: 0 none;
  border-bottom: 0 none;
  font-style: normal;
  color: #55595c; }
  .elementor-widget-blockquote blockquote:before, .elementor-widget-blockquote blockquote:after,
  .elementor-widget-blockquote blockquote footer:before,
  .elementor-widget-blockquote blockquote footer:after,
  .elementor-widget-blockquote blockquote cite:before,
  .elementor-widget-blockquote blockquote cite:after {
    content: '';
    content: none; }

.elementor-blockquote {
  transition: 0.3s; }
  .elementor-blockquote__author, .elementor-blockquote__content {
    margin-bottom: 0;
    font-style: normal; }
  .elementor-blockquote__author {
    font-weight: bold; }
  .elementor-blockquote footer {
    margin-top: 12px;
    display: flex;
    justify-content: space-between; }
  .elementor-blockquote__tweet-button {
    display: flex;
    transition: 0.3s;
    color: #1DA1F2;
    align-self: flex-end;
    line-height: 1;
    position: relative;
    width: max-content; }
    .elementor-blockquote__tweet-button:hover {
      color: #0967a0; }
    .elementor-blockquote__tweet-button span {
      font-weight: 600; }
    .elementor-blockquote__tweet-button i, .elementor-blockquote__tweet-button span {
      vertical-align: middle; }
    .elementor-blockquote__tweet-button i + span,
    .elementor-blockquote__tweet-button svg + span {
      margin-right: 0.5em; }
    .elementor-blockquote__tweet-button svg {
      fill: #1DA1F2;
      height: 1em;
      width: 1em; }
  .elementor-blockquote__tweet-label {
    white-space: pre-wrap; }
  .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button {
    padding: 0.7em 1.2em;
    border-radius: 100em;
    background-color: #1DA1F2;
    color: #fff;
    font-size: 15px; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover {
      background-color: #0967a0;
      color: #fff; }
      .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before {
        border-left-color: #0967a0; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg {
      fill: #fff;
      height: 1em;
      width: 1em; }
  .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button {
    padding: 0;
    width: 2em;
    height: 2em; }
    .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%); }
  .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before {
    content: '';
    border: solid 0.5em transparent;
    border-left-color: #1DA1F2;
    position: absolute;
    right: -0.8em;
    top: 50%;
    transform: translateY(-50%) scale(1, 0.65);
    transition: 0.3s; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before {
    right: auto;
    left: -0.8em;
    border-right-color: #1DA1F2;
    border-left-color: transparent; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before {
    border-right-color: #0967a0; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before {
    left: auto;
    right: -0.8em;
    border-right-color: transparent;
    border-left-color: #1DA1F2; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before {
    border-left-color: #0967a0; }
  .elementor-blockquote--skin-boxed .elementor-blockquote {
    background-color: #e6e9ec;
    padding: 30px; }
  .elementor-blockquote--skin-border .elementor-blockquote {
    border-color: #e6e9ec;
    border-style: solid;
    border-right-width: 7px;
    padding-right: 20px; }
  .elementor-blockquote--skin-quotation .elementor-blockquote:before {
    content: '“';
    font-size: 100px;
    color: #e6e9ec;
    font-family: "Times New Roman", Times, serif;
    font-weight: 900;
    line-height: 1;
    display: block;
    height: 0.6em; }
  .elementor-blockquote--skin-quotation .elementor-blockquote__content {
    margin-top: 15px; }
  .elementor-blockquote--align-left .elementor-blockquote__content {
    text-align: left; }
  .elementor-blockquote--align-left .elementor-blockquote footer {
    flex-direction: row-reverse; }
  .elementor-blockquote--align-right .elementor-blockquote__content {
    text-align: right; }
  .elementor-blockquote--align-right .elementor-blockquote footer {
    flex-direction: row; }
  .elementor-blockquote--align-center .elementor-blockquote {
    text-align: center; }
    .elementor-blockquote--align-center .elementor-blockquote footer {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__author {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__tweet-button {
      margin-right: auto;
      margin-left: auto; }

.elementor-headline {
  font-size: 43px;
  line-height: 1.2;
  display: block; }
  .elementor-headline-dynamic-text {
    color: var(--dynamic-text-color, #aebcb9); }
  .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper {
    text-align: right; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-wrapper {
    overflow: visible;
    text-align: inherit; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-text {
    z-index: 1; }
  .elementor-headline--style-highlight .elementor-headline-plain-text {
    z-index: 1;
    position: relative; }
  .elementor-headline--style-highlight svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc( 100% + 20px);
    height: calc( 100% + 20px);
    transform: translate(-50%, -50%);
    overflow: visible; }
    .elementor-headline--style-highlight svg path {
      stroke: red;
      stroke-width: 9;
      fill: none;
      opacity: 0;
      stroke-dasharray: 0 1500;
      transition: 0.3s; }
  .elementor-headline.e-animated svg path {
    animation: elementor-headline-dash forwards;
    animation-duration: var(--animation-duration, 1.2s);
    animation-iteration-count: 1; }
    .elementor-headline.e-animated svg path:nth-of-type(2) {
      animation-delay: calc(var(--animation-duration, 1.2s) / 2); }
  .elementor-headline.e-hide-highlight svg path {
    opacity: 1;
    stroke-dasharray: 1500 1500;
    animation: hide-highlight 0.4s forwards;
    animation-iteration-count: 1; }

@keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    filter: blur(10px); } }

.elementor-headline-text-wrapper {
  vertical-align: bottom; }

.elementor-headline-dynamic-wrapper {
  display: inline-block;
  position: relative; }
  .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0; }
    .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active {
      position: relative; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-text {
  opacity: 0;
  transform-origin: 50% 100%;
  transform: rotateX(180deg); }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    transform: rotateX(0deg);
    animation: elementor-headline-flip-in 1.2s; }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    transform: rotateX(180deg);
    animation: elementor-headline-flip-out 1.2s; }

@keyframes elementor-headline-flip-in {
  0% {
    transform: rotateX(180deg);
    opacity: 0; }
  35% {
    transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    transform: rotateX(360deg);
    opacity: 1; } }

@keyframes elementor-headline-flip-out {
  0% {
    transform: rotateX(0deg);
    opacity: 1; }
  35% {
    transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    transform: rotateX(180deg);
    opacity: 0; } }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper {
  vertical-align: top;
  overflow: hidden; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after {
    /* vertical bar */
    content: '';
    position: absolute;
    left: 0;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
    height: 90%;
    width: 1px;
    background-color: #0d0d0d; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after {
    animation: elementor-headline-pulse 1s infinite; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected {
    background-color: var(--typing-selected-bg-color, #0d0d0d); }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected::after {
      visibility: hidden; }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text {
      color: var(--typing-selected-color, var(--dynamic-text-color), #aebcb9); }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active) {
  visibility: hidden; }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
  position: absolute;
  visibility: hidden; }

@keyframes elementor-headline-pulse {
  0% {
    transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    transform: translateY(-50%) scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  display: inline-block;
  backface-visibility: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text {
  transform: scaleX(1.0005);
  opacity: 0; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  transform-style: preserve-3d;
  transform: translateZ(-20px) rotateX(90deg);
  opacity: 0; }
  .elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-swirl-in .4s forwards; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-swirl-out .4s forwards; }

@keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(0deg); } }

@keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    transform: translateZ(-20px) rotateX(-90deg); } }

.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text {
  opacity: 0;
  top: .2em; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active {
    top: 0;
    opacity: 1;
    animation: elementor-headline-slide-down-in .6s; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-slide-down-out .6s; }

@keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    transform: translateY(-100%); }
  60% {
    opacity: 1;
    transform: translateY(20%); }
  100% {
    opacity: 1;
    transform: translateY(0); } }

@keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    transform: translateY(0); }
  60% {
    opacity: 0;
    transform: translateY(120%); }
  100% {
    opacity: 0;
    transform: translateY(100%); } }

.elementor-headline-animation-type-clip .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper::after {
    /* line */
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: 2px;
    height: 100%;
    background-color: #0d0d0d; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    animation: elementor-headline-drop-in-in .8s; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-drop-in-out .8s; }

@keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    transform: translateZ(100px); }
  100% {
    opacity: 1;
    transform: translateZ(0); } }

@keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    transform: translateZ(0); }
  100% {
    opacity: 0;
    transform: translateZ(-100px); } }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper {
  perspective: 300px; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
  display: inline-block;
  transform: rotateY(180deg);
  backface-visibility: hidden; }
  .elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
    transform: rotateY(0deg); }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-blinds-in .6s forwards; }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-blinds-out .6s forwards; }

@keyframes elementor-headline-blinds-in {
  0% {
    transform: rotateY(180deg); }
  100% {
    transform: rotateY(0deg); } }

@keyframes elementor-headline-blinds-out {
  0% {
    transform: rotateY(0); }
  100% {
    transform: rotateY(-180deg); } }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
  display: inline-block;
  opacity: 0;
  transform: scale(0); }
  .elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    animation: elementor-headline-wave-up .6s forwards; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    animation: elementor-headline-wave-down .6s forwards; }

@keyframes elementor-headline-wave-up {
  0% {
    transform: scale(0);
    opacity: 0; }
  60% {
    transform: scale(1.2);
    opacity: 1; }
  100% {
    transform: scale(1);
    opacity: 1; } }

@keyframes elementor-headline-wave-down {
  0% {
    transform: scale(1);
    opacity: 1; }
  60% {
    transform: scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-slide .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    animation: elementor-headline-slide-in .6s; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    animation: elementor-headline-slide-out .6s; }

@keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    transform: translateX(-100%); }
  60% {
    opacity: 1;
    transform: translateX(10%); }
  100% {
    opacity: 1;
    transform: translateX(0); } }

@keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    transform: translateX(0); }
  60% {
    opacity: 0;
    transform: translateX(110%); }
  100% {
    opacity: 0;
    transform: translateX(100%); } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  transition: width 0.5s; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper {
  overflow: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-text, .elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  white-space: nowrap; }

.elementor-msie .elementor-headline--style-highlight svg {
  top: auto;
  left: auto;
  transform: translate(-100%); }

/* Animations */
@keyframes e-hotspot-soft-beat {
  from {
    transform: scale(1); }
  to {
    transform: scale(1.1); } }

@keyframes e-hotspot-expand {
  from {
    transform: scale(0.5);
    opacity: 1; }
  to {
    transform: scale(1.5);
    opacity: 0; } }

/* Hotspot Wrapper */
.elementor-widget-hotspot {
  display: flex;
  justify-content: var(--background-align); }
  .elementor-widget-hotspot .elementor-widget-container {
    position: relative;
    display: inline-block;
    width: var(--container-width);
    max-width: var(--container-max-width);
    height: var(--container-height); }
    .elementor-widget-hotspot .elementor-widget-container > img {
      display: block;
      width: var(--image-width, auto);
      height: var(--container-height);
      opacity: var(--opacity, 1); }

/* Each Hotspot */
.e-hotspot {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  /* Hotspot Button Animations */
  /* End: Hotspot Button Animations */ }
  .e-hotspot--position-left.e-hotspot--position-top {
    transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-left.e-hotspot--position-bottom {
    transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y)); }
  .e-hotspot--position-right.e-hotspot--position-top {
    transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-right.e-hotspot--position-bottom {
    transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y)); }
  .e-hotspot--active {
    z-index: 2; }
  .e-hotspot__outer-circle, .e-hotspot__inner-circle {
    content: "";
    display: inline-block;
    box-sizing: content-box;
    border-radius: 50%; }
  .e-hotspot__inner-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--hotspot-color);
    padding: calc( var(--hotspot-size, 18px) / 2); }
  .e-hotspot__outer-circle {
    background-color: var(--hotspot-color);
    padding: var(--hotspot-padding, 4px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot--icon .e-hotspot__button {
    line-height: 0;
    box-sizing: content-box;
    font-size: var(--hotspot-size, 18px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot__icon, .e-hotspot__label {
    display: flex;
    justify-content: center;
    align-items: center; }
    .e-hotspot__icon svg, .e-hotspot__label svg {
      width: var(--hotspot-size, 18px);
      height: auto; }
  .e-hotspot__button {
    cursor: pointer;
    position: relative;
    display: grid;
    grid-auto-flow: column;
    justify-content: center;
    color: var(--hotspot-color);
    font-size: var(--hotspot-size, 18px);
    min-width: var(--hotspot-button-width);
    min-height: var(--hotspot-button-height); }
    .e-hotspot__button:before {
      z-index: -2;
      content: "";
      width: 100%;
      height: 100%;
      left: -5px;
      top: -5px;
      position: absolute;
      padding: 5px;
      box-sizing: content-box; }
    .e-hotspot__button svg {
      fill: var(--hotspot-color); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button {
    min-width: var(--hotspot-min-width);
    min-height: var(--hotspot-min-height);
    background-color: var(--hotspot-box-color);
    padding: var(--hotspot-padding, 4px);
    border-radius: var(--hotspot-border-radius, 3px); }
    .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before {
      border-radius: var(--hotspot-border-radius, 3px); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    background-color: var(--hotspot-box-color); }
  .e-hotspot--overlay {
    opacity: 0.7;
    transition: opacity 0.2s; }
  .e-hotspot--overlay:hover,
  .e-hotspot--active .e-hotspot--overlay {
    opacity: 1; }
  .e-hotspot--soft-beat {
    animation: e-hotspot-soft-beat 0.7s infinite alternate;
    animation-timing-function: ease; }
  .e-hotspot--expand .e-hotspot__outer-circle {
    animation: e-hotspot-expand 2s infinite; }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    opacity: 0;
    animation: e-hotspot-expand 2s infinite; }
  .e-hotspot--sequenced {
    animation: fadeIn 0.3s;
    animation-iteration-count: 1;
    animation-fill-mode: both; }
  .e-hotspot__direction-mask {
    overflow: hidden;
    position: absolute;
    pointer-events: none; }
  .e-hotspot__tooltip {
    white-space: var(--white-space, nowrap);
    transition-property: transform, opacity;
    transition-duration: var(--tooltip-transition-duration, 500ms);
    transform-origin: center center;
    position: absolute;
    pointer-events: none;
    color: var(--tooltip-text-color, #FFF);
    text-align: var(--tooltip-align);
    min-width: var(--tooltip-min-width);
    padding: var(--tooltip-padding, 8px);
    border-radius: var(--tooltip-border-radius);
    background-color: var(--tooltip-color); }
  .e-hotspot__tooltip p:last-of-type {
    margin-bottom: 0; }
  .e-hotspot__direction-mask .e-hotspot__tooltip {
    box-shadow: none !important;
    position: static; }
  .e-hotspot--active .e-hotspot__tooltip {
    pointer-events: visible; }
  .e-hotspot--fade-in-out {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--fade-in-out {
    opacity: 1; }
  .e-hotspot--fade-grow {
    opacity: 0;
    transform: scale(0); }
  .e-hotspot--active .e-hotspot--fade-grow {
    opacity: 1;
    transform: scale(1); }
  .e-hotspot--tooltip-animation-from-top, .e-hotspot--override-tooltip-animation-from-top {
    transform: translate(0, calc(-100% - 1px)); }
  .e-hotspot--tooltip-animation-from-left, .e-hotspot--override-tooltip-animation-from-left {
    transform: translate(calc(-100% - 1px), 0); }
  .e-hotspot--tooltip-animation-from-right, .e-hotspot--override-tooltip-animation-from-right {
    transform: translate(calc(100% + 1px), 0); }
  .e-hotspot--tooltip-animation-from-bottom, .e-hotspot--override-tooltip-animation-from-bottom {
    transform: translate(0, calc(100% + 1px)); }
  .e-hotspot--fade-direction {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--slide-direction,
  .e-hotspot--active .e-hotspot--fade-direction {
    transform: translate(0, 0) scale(1);
    opacity: 1; }
  .e-hotspot--show-tooltip {
    transition: none;
    opacity: 1;
    pointer-events: visible;
    transform: translate(0, 0); }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

.site-main .menu-navigation-container {
  overflow: visible; }

.elementor-item:before, .elementor-item:after {
  display: block;
  position: absolute;
  transition: 0.3s;
  transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  opacity: 0; }


.elementor-item:hover:before,
.elementor-item:hover:after,
.elementor-item:focus:before,
.elementor-item:focus:after,
.elementor-item.highlighted:before,
.elementor-item.highlighted:after,
.elementor-item-active:before,
.elementor-item-active:after {
  transform: scale(1); }

.e--pointer-double-line .elementor-item:before, .e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:before, .e--pointer-underline .elementor-item:after, .e--pointer-overline .elementor-item:before, .e--pointer-overline .elementor-item:after {
  height: 3px;
  width: 100%;
  left: 0;
  background-color: #55595c;
  z-index: 2; }

.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  height: 0;
  width: 0;
  left: 50%; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 10px; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: 10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: -10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: -10px; }

.e--pointer-double-line.e--animation-none,
.e--pointer-double-line.e--animation-none .elementor-item, .e--pointer-underline.e--animation-none,
.e--pointer-underline.e--animation-none .elementor-item, .e--pointer-overline.e--animation-none,
.e--pointer-overline.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-double-line.e--animation-none:before, .e--pointer-double-line.e--animation-none:after, .e--pointer-double-line.e--animation-none:hover, .e--pointer-double-line.e--animation-none:focus,
  .e--pointer-double-line.e--animation-none .elementor-item:before,
  .e--pointer-double-line.e--animation-none .elementor-item:after,
  .e--pointer-double-line.e--animation-none .elementor-item:hover,
  .e--pointer-double-line.e--animation-none .elementor-item:focus, .e--pointer-underline.e--animation-none:before, .e--pointer-underline.e--animation-none:after, .e--pointer-underline.e--animation-none:hover, .e--pointer-underline.e--animation-none:focus,
  .e--pointer-underline.e--animation-none .elementor-item:before,
  .e--pointer-underline.e--animation-none .elementor-item:after,
  .e--pointer-underline.e--animation-none .elementor-item:hover,
  .e--pointer-underline.e--animation-none .elementor-item:focus, .e--pointer-overline.e--animation-none:before, .e--pointer-overline.e--animation-none:after, .e--pointer-overline.e--animation-none:hover, .e--pointer-overline.e--animation-none:focus,
  .e--pointer-overline.e--animation-none .elementor-item:before,
  .e--pointer-overline.e--animation-none .elementor-item:after,
  .e--pointer-overline.e--animation-none .elementor-item:hover,
  .e--pointer-overline.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-double-line .elementor-item:before, .e--pointer-overline .elementor-item:before {
  content: '';
  top: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  width: 10px;
  left: -20px; }

.e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:after {
  content: '';
  bottom: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  width: 10px;
  inset-inline-start: 100%; }

.e--pointer-framed .elementor-item:before, .e--pointer-framed .elementor-item:after {
  background: transparent;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  border: 3px solid #55595c; }

.e--pointer-framed .elementor-item:before {
  content: ''; }

.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(0.75); }

.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(1.25); }

.e--pointer-framed.e--animation-grow .elementor-item:before, .e--pointer-framed.e--animation-shrink .elementor-item:before {
  transition: opacity 0.2s, transform 0.4s; }

.e--pointer-framed.e--animation-draw .elementor-item:before, .e--pointer-framed.e--animation-draw .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-draw .elementor-item:before {
  border-width: 0 3px 3px 0;
  transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }

.e--pointer-framed.e--animation-draw .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  right: initial;
  left: 0;
  border-width: 3px 0 0 3px;
  transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  width: 100%;
  height: 100%; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:before {
  transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }

.e--pointer-framed.e--animation-corners .elementor-item:before, .e--pointer-framed.e--animation-corners .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:before {
  border-width: 3px 3px 0 0; }

.e--pointer-framed.e--animation-corners .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  right: initial;
  left: 0;
  border-width: 0 0 3px 3px; }


.e--pointer-framed.e--animation-corners .elementor-item:hover:before,
.e--pointer-framed.e--animation-corners .elementor-item:hover:after,
.e--pointer-framed.e--animation-corners .elementor-item:focus:before,
.e--pointer-framed.e--animation-corners .elementor-item:focus:after,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-corners .elementor-item-active:before,
.e--pointer-framed.e--animation-corners .elementor-item-active:after {
  width: 100%;
  height: 100%;
  transition: opacity 0.002s, width 0.4s, height 0.4s; }

.e--pointer-framed.e--animation-none,
.e--pointer-framed.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-framed.e--animation-none:before, .e--pointer-framed.e--animation-none:after, .e--pointer-framed.e--animation-none:hover, .e--pointer-framed.e--animation-none:focus,
  .e--pointer-framed.e--animation-none .elementor-item:before,
  .e--pointer-framed.e--animation-none .elementor-item:after,
  .e--pointer-framed.e--animation-none .elementor-item:hover,
  .e--pointer-framed.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-background .elementor-item:before, .e--pointer-background .elementor-item:after {
  content: '';
  transition: 0.3s; }

.e--pointer-background .elementor-item:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }


.e--pointer-background .elementor-item:hover,
.e--pointer-background .elementor-item:focus,
.e--pointer-background .elementor-item.highlighted,
.e--pointer-background .elementor-item-active {
  color: #fff; }

.e--pointer-background.e--animation-grow .elementor-item:before {
  transform: scale(0.5); }


.e--pointer-background.e--animation-grow .elementor-item:hover:before,
.e--pointer-background.e--animation-grow .elementor-item:focus:before,
.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,
.e--pointer-background.e--animation-grow .elementor-item-active:before {
  transform: scale(1);
  opacity: 1; }

.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  transform: scale(1.2);
  transition: 0.3s; }


.e--pointer-background.e--animation-shrink .elementor-item:hover:before,
.e--pointer-background.e--animation-shrink .elementor-item:focus:before,
.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shrink .elementor-item-active:before {
  transition: opacity 0.15s, transform 0.4s; }

.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  left: 100%; }

.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 100%; }

.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 100%; }

.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 50%;
  top: 50%; }

.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 50%;
  left: 50%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after, .e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before {
  top: 0;
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after {
  top: 100%;
  bottom: 0; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before {
  bottom: 50%; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after {
  top: 50%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before {
  right: 0;
  left: 100%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  right: 100%;
  left: 0; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before {
  left: 50%; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after {
  right: 50%; }

.e--pointer-background.e--animation-none,
.e--pointer-background.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-background.e--animation-none:before, .e--pointer-background.e--animation-none:after, .e--pointer-background.e--animation-none:hover, .e--pointer-background.e--animation-none:focus,
  .e--pointer-background.e--animation-none .elementor-item:before,
  .e--pointer-background.e--animation-none .elementor-item:after,
  .e--pointer-background.e--animation-none .elementor-item:hover,
  .e--pointer-background.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.e--pointer-text.e--animation-skew .elementor-item:hover,
.e--pointer-text.e--animation-skew .elementor-item:focus {
  transform: skew(-8deg); }

.e--pointer-text.e--animation-grow .elementor-item:hover,
.e--pointer-text.e--animation-grow .elementor-item:focus {
  transform: scale(1.2); }

.e--pointer-text.e--animation-shrink .elementor-item:hover,
.e--pointer-text.e--animation-shrink .elementor-item:focus {
  transform: scale(0.8); }

.e--pointer-text.e--animation-float .elementor-item:hover,
.e--pointer-text.e--animation-float .elementor-item:focus {
  transform: translateY(-8px); }

.e--pointer-text.e--animation-sink .elementor-item:hover,
.e--pointer-text.e--animation-sink .elementor-item:focus {
  transform: translateY(8px); }

.e--pointer-text.e--animation-rotate .elementor-item:hover,
.e--pointer-text.e--animation-rotate .elementor-item:focus {
  transform: rotate(6deg); }

.e--pointer-text.e--animation-none,
.e--pointer-text.e--animation-none .elementor-item {
  transition-duration: 0s; }
  .e--pointer-text.e--animation-none:before, .e--pointer-text.e--animation-none:after, .e--pointer-text.e--animation-none:hover, .e--pointer-text.e--animation-none:focus,
  .e--pointer-text.e--animation-none .elementor-item:before,
  .e--pointer-text.e--animation-none .elementor-item:after,
  .e--pointer-text.e--animation-none .elementor-item:hover,
  .e--pointer-text.e--animation-none .elementor-item:focus {
    transition-duration: 0s; }

.elementor-nav-menu--main .elementor-nav-menu a {
  transition: 0.4s; }
  .elementor-nav-menu--main .elementor-nav-menu a, .elementor-nav-menu--main .elementor-nav-menu a:hover, .elementor-nav-menu--main .elementor-nav-menu a:focus, .elementor-nav-menu--main .elementor-nav-menu a.highlighted {
    padding: 13px 20px; }
  .elementor-nav-menu--main .elementor-nav-menu a.current {
    background: #373a3c;
    color: #fff; }
  .elementor-nav-menu--main .elementor-nav-menu a.disabled {
    background: #55595c;
    color: #a1a6a9; }

.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  width: 12em;
  border-width: 0;
  border-style: solid;
  padding: 0; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up,
.elementor-nav-menu--main .elementor-nav-menu span.scroll-down {
  position: absolute;
  display: none;
  visibility: hidden;
  overflow: hidden;
  background: #fff;
  height: 20px; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  position: absolute;
  top: -2px;
  right: 50%;
  margin-right: -8px;
  width: 0;
  height: 0;
  overflow: hidden;
  border-width: 8px;
  border-style: dashed dashed solid dashed;
  border-color: transparent transparent #494c4f transparent; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  top: 6px;
  border-style: solid dashed dashed dashed;
  border-color: #494c4f transparent transparent transparent; }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i {
  transform: rotate(90deg); }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg {
  height: 1em;
  width: 1em; }

.elementor-nav-menu--layout-horizontal {
  display: flex; }
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: flex;
    flex-wrap: wrap; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
      white-space: nowrap;
      flex-grow: 1; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
      display: flex; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > .scroll-down {
        top: 100% !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > a {
        margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-down, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-up {
        right: var(--e-nav-menu-horizontal-menu-item-margin) !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child) > a {
        margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child):after {
        content: var(--e-nav-menu-divider-content, none);
        border-left-width: var(--e-nav-menu-divider-width, 2px);
        border-left-style: var(--e-nav-menu-divider-style, solid);
        height: var(--e-nav-menu-divider-height, 35%);
        border-color: var(--e-nav-menu-divider-color, #000);
        align-self: center; }

.elementor-nav-menu__align-right .elementor-nav-menu {
  margin-left: auto;
  justify-content: flex-start; }

.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: flex-start; }

.elementor-nav-menu__align-left .elementor-nav-menu {
  margin-right: auto;
  justify-content: flex-end; }

.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: flex-end; }

.elementor-nav-menu__align-center .elementor-nav-menu {
  margin-left: auto;
  margin-right: auto;
  justify-content: center; }

.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical > ul > li > a {
  justify-content: center; }

.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  width: 100%; }
  .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    flex-grow: 1; }
    .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
      justify-content: center; }

.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle {
  display: none; }

.elementor-widget-nav-menu .elementor-widget-container {
  display: flex;
  flex-direction: column; }

.elementor-nav-menu {
  position: relative;
  z-index: 2; }
  .elementor-nav-menu:after {
    content: "\00a0";
    display: block;
    height: 0;
    font: 0px/0 serif;
    clear: both;
    visibility: hidden;
    overflow: hidden; }
  .elementor-nav-menu,
  .elementor-nav-menu ul,
  .elementor-nav-menu li {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: normal;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .elementor-nav-menu ul {
    display: none; }
    .elementor-nav-menu ul ul a,
    .elementor-nav-menu ul ul a:hover,
    .elementor-nav-menu ul ul a:focus,
    .elementor-nav-menu ul ul a:active {
      border-left: 16px solid transparent; }
    .elementor-nav-menu ul ul ul a,
    .elementor-nav-menu ul ul ul a:hover,
    .elementor-nav-menu ul ul ul a:focus,
    .elementor-nav-menu ul ul ul a:active {
      border-left: 24px solid transparent; }
    .elementor-nav-menu ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul a:active {
      border-left: 32px solid transparent; }
    .elementor-nav-menu ul ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul ul a:active {
      border-left: 40px solid transparent; }
  .elementor-nav-menu li,
  .elementor-nav-menu a {
    position: relative; }
  .elementor-nav-menu li {
    border-width: 0; }
  .elementor-nav-menu a {
    display: flex;
    align-items: center; }
    .elementor-nav-menu a, .elementor-nav-menu a:hover, .elementor-nav-menu a:focus {
      padding: 10px 20px;
      line-height: 20px; }
    .elementor-nav-menu a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu a.disabled {
      cursor: not-allowed;
      color: #a1a6a9; }
  .elementor-nav-menu .e-plus-icon:before {
    content: '+'; }
  .elementor-nav-menu .sub-arrow {
    line-height: 1;
    padding: 10px 10px 10px 0;
    margin-top: -10px;
    margin-bottom: -10px;
    display: flex;
    align-items: center; }
    .elementor-nav-menu .sub-arrow i {
      pointer-events: none; }
    .elementor-nav-menu .sub-arrow .fa.fa-chevron-down, .elementor-nav-menu .sub-arrow .fas.fa-chevron-down {
      font-size: 0.7em; }
    .elementor-nav-menu .sub-arrow .e-font-icon-svg {
      height: 1em;
      width: 1em; }
      .elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down {
        height: 0.7em;
        width: 0.7em; }

.elementor-nav-menu--dropdown .elementor-item:hover, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor-sub-item:hover,
.elementor-sub-item:focus,
.elementor-sub-item.highlighted,
.elementor-sub-item.elementor-item-active {
  background-color: #55595c;
  color: #fff; }

.elementor-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  padding: 0.25em;
  cursor: pointer;
  border: 0 solid;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.05);
  color: #494c4f; }
  .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none; }
  .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close {
    display: none; }
  .elementor-menu-toggle .e-font-icon-svg {
    fill: #494c4f;
    height: 1em;
    width: 1em; }

.elementor-nav-menu--dropdown {
  background-color: #fff;
  font-size: 13px; }
  .elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-none .elementor-menu-toggle {
    display: none; }
  .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    margin-top: 10px;
    transition: max-height 0.3s, transform 0.3s;
    transform-origin: top;
    overflow: auto; }
    .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
      font-size: 0.85em; }
  .elementor-nav-menu--dropdown a {
    color: #494c4f; }
    .elementor-nav-menu--dropdown a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu--dropdown a.disabled {
      color: #b3b2b2; }

ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:hover, ul.elementor-nav-menu--dropdown a:focus {
  text-shadow: none;
  border-right: 8px solid transparent; }

.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a {
  justify-content: center; }

.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  transform: scaleY(0);
  max-height: 0; }

.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  transform: scaleY(1);
  max-height: 100vh; }

.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  position: absolute;
  z-index: 9997; }

/**
 * Mobile Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_MOBILE_NEXT) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle {
    display: none; } }

/**
 * Mobile Extra Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_NEXT) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle {
    display: none; } }

/**
 * Tablet Hamburger Menu Breakpoint
 */
@media (min-width: ELEMENTOR_SCREEN_TABLET_NEXT) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle {
    display: none; } }

@media (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
    display: none; } }

/**
 * Tablet Extra Hamburger Menu Breakpoint
 */
@media (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: ELEMENTOR_SCREEN_TABLET_EXTRA_NEXT) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle {
    display: none; } }

.elementor-gallery__container {
  min-height: 1px; }

.elementor-gallery-item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  border: solid var(--image-border-width) var(--image-border-color);
  border-radius: var(--image-border-radius); }
  .elementor-gallery-item__overlay, .elementor-gallery-item__content {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .elementor-gallery-item__overlay {
    mix-blend-mode: var(--overlay-mix-blend-mode);
    transition-duration: var(--overlay-transition-duration);
    transition-property: mix-blend-mode, transform, opacity, background-color; }
  .elementor-gallery-item__image.e-gallery-image {
    transition-duration: var(--image-transition-duration);
    transition-property: filter, transform; }
  .elementor-gallery-item__content {
    display: flex;
    flex-direction: column;
    justify-content: var(--content-justify-content, center);
    align-items: center;
    text-align: var(--content-text-align);
    padding: var(--content-padding); }
    .elementor-gallery-item__content > div {
      transition-duration: var(--content-transition-duration); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(2) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 )); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(3) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(4) {
      transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3); }
  .elementor-gallery-item__description {
    color: var(--description-text-color, #ffffff);
    width: 100%; }
  .elementor-gallery-item__title {
    color: var(--title-text-color, #ffffff);
    font-weight: bold;
    width: 100%; }

.elementor-gallery__titles-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: var(--titles-container-justify-content, center);
  margin-bottom: 20px; }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:before {
    border-color: var(--galleries-pointer-bg-color-hover);
    border-width: var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:after {
    border-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before {
    border-width: 0 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after {
    border-width: var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0 0; }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before {
    border-width: var(--galleries-pointer-border-width) 0 0 var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after {
    border-width: 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0; }
  .elementor-gallery__titles-container .e--pointer-underline .elementor-item:after,
  .elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after {
    height: var(--galleries-pointer-border-width); }

.elementor-gallery-title {
  --space-between: 10px;
  cursor: pointer;
  color: #6D7882;
  font-weight: 500;
  position: relative;
  padding: 7px 14px;
  transition: all 0.3s; }
  .elementor-gallery-title--active {
    color: #495157; }
  .elementor-gallery-title:not(:last-child) {
    margin-left: var(--space-between); }

.elementor-gallery-item__title + .elementor-gallery-item__description {
  margin-top: var(--description-margin-top); }

.e-gallery-item.elementor-gallery-item {
  transition-property: all; }

.e-gallery-item:hover .elementor-gallery__item-overlay-bg {
  opacity: 1; }

.e-gallery-item:hover .elementor-gallery__item-overlay-content {
  opacity: 1; }
  .e-gallery-item:hover .elementor-gallery__item-overlay-content__title, .e-gallery-item:hover .elementor-gallery__item-overlay-content__description {
    opacity: 1; }

.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom {
  opacity: 1; }

a.elementor-item.elementor-gallery-title {
  color: var(--galleries-title-color-normal); }
  a.elementor-item.elementor-gallery-title:hover, a.elementor-item.elementor-gallery-title.elementor-item-active, a.elementor-item.elementor-gallery-title.highlighted, a.elementor-item.elementor-gallery-title:focus {
    color: var(--galleries-title-color-hover); }
  a.elementor-item.elementor-gallery-title.elementor-item-active {
    color: var(--gallery-title-color-active); }

.elementor-widget-table-of-contents .elementor-toc__header-title {
  color: var(--header-color); }

.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse {
  display: none; }

.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand {
  display: none; }

.elementor-widget-table-of-contents .elementor-widget-container {
  min-height: var(--box-min-height);
  border: var(--box-border-width, 1px) solid var(--box-border-color, #a4afb7);
  border-radius: var(--box-border-radius, 3px);
  background-color: var(--box-background-color);
  transition: min-height 0.4s;
  overflow: hidden; }

.elementor-toc__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--box-padding, 20px);
  background-color: var(--header-background-color);
  border-bottom: var(--separator-width, 1px) solid var(--box-border-color, #a4afb7); }
  .elementor-toc__header-title {
    font-size: 18px;
    margin: 0;
    color: var(--header-color); }

.elementor-toc__toggle-button {
  cursor: pointer;
  display: inline-flex; }
  .elementor-toc__toggle-button i {
    color: var(--toggle-button-color); }
  .elementor-toc__toggle-button svg {
    fill: var(--toggle-button-color);
    height: 1em;
    width: 1em;
    fill: var(--toggle-button-color); }

.elementor-toc__spinner-container {
  text-align: center; }

.elementor-toc__spinner {
  font-size: 2em; }
  .elementor-toc__spinner.e-font-icon-svg {
    height: 1em;
    width: 1em; }

.elementor-toc__body {
  padding: var(--box-padding, 20px);
  max-height: var(--toc-body-max-height);
  overflow-y: auto; }
  .elementor-toc__body::-webkit-scrollbar {
    width: 7px; }
  .elementor-toc__body::-webkit-scrollbar-thumb {
    background-color: #c2cbd2;
    border-radius: 10px; }

.elementor-toc__list-wrapper {
  list-style: none;
  padding: 0; }

.elementor-toc__list-item {
  margin-bottom: 0.5em; }
  .elementor-toc__list-item.elementor-item-active {
    font-weight: bold; }
  .elementor-toc__list-item .elementor-toc__list-wrapper {
    margin-top: 0.5em;
    margin-right: var(--nested-list-indent, 1em); }
  .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    text-decoration: var(--item-text-active-decoration); }
  .elementor-toc__list-item-text-wrapper {
    display: flex;
    align-items: center; }
    .elementor-toc__list-item-text-wrapper i, .elementor-toc__list-item-text-wrapper:before {
      margin-left: 8px;
      color: var(--marker-color); }
    .elementor-toc__list-item-text-wrapper svg {
      margin-left: 8px;
      fill: var(--marker-color);
      height: var(--marker-size, 0.5em);
      width: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper i {
      font-size: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper:before {
      font-size: var(--marker-size, 1em); }

.elementor-toc--content-ellipsis .elementor-toc__list-item-text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.elementor-toc__list-items--collapsible > .elementor-toc__list-wrapper > .elementor-toc__list-item > .elementor-toc__list-wrapper {
  display: none; }

.elementor-toc__heading-anchor {
  position: absolute; }

.elementor-toc__body .elementor-toc__list-item-text {
  color: var(--item-text-color);
  text-decoration: var(--item-text-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    text-decoration: var(--item-text-active-decoration); }

ol.elementor-toc__list-wrapper {
  counter-reset: item; }
  ol.elementor-toc__list-wrapper .elementor-toc__list-item {
    counter-increment: item; }
    ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before {
      content: counters(item, ".") ". "; }

@media only screen and (max-width: ELEMENTOR_SCREEN_TABLET_EXTRA_MAX) {
  .elementor-toc--minimized-on-tablet_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_TABLET_MAX) {
  .elementor-toc--minimized-on-tablet .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_MOBILE_EXTRA_MAX) {
  .elementor-toc--minimized-on-mobile_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-toc--minimized-on-mobile .elementor-toc__body {
    display: none; } }

.e-lottie__container {
  display: inline-block;
  max-width: var(--lottie-container-max-width);
  width: var(--lottie-container-width);
  opacity: var(--lottie-container-opacity); }
  .e-lottie__container:hover {
    opacity: var(--lottie-container-opacity-hover);
    transition-duration: var(--lottie-container-transition-duration-hover); }
  .e-lottie__container svg,
  .e-lottie__container svg * {
    transition: none !important; }

.e-lottie__caption {
  color: var(--caption-color);
  margin-top: var(--caption-margin-top);
  text-align: var(--caption-text-align); }

/* Video_Playlist Widget */
.e-tabs-inner-tabs {
  text-align: right;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 16px; }
  .e-tabs-inner-tabs .e-tab-content {
    padding-top: 32px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: flex;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper :after {
      content: '';
      width: 100%;
      height: var(--inner-tabs-border-height, 1px);
      background-color: var(--inner-tabs-border-color, #d5dadf);
      position: absolute;
      bottom: 0;
      z-index: -1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title {
      font-weight: 700;
      min-width: 140px;
      line-height: 38px;
      height: 38px;
      box-sizing: content-box; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a {
        color: #6d7882;
        padding: 0 36px;
        display: block;
        text-align: center; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active {
        border-bottom: 0 solid transparent;
        border-color: #495157;
        border-width: 0 0 1px 0; }
        .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a {
          color: #495157; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
    display: none;
    padding: 20px; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text {
      color: #556068; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons {
      margin-top: 24px;
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button {
        display: none;
        font-weight: 500;
        line-height: 24px;
        text-decoration: underline;
        border: none;
        background: transparent;
        padding: 0; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text {
      overflow: hidden; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button {
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button {
        display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text {
      height: auto; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .e-tabs-inner-tabs > .e-tab-content:first-child {
    padding-top: 24px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper {
    border-width: 1px 1px 0;
    border-style: solid;
    border-color: #d5dadf; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      font-size: 16px;
      font-weight: 700;
      text-align: center;
      height: 38px;
      line-height: 38px;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      padding: 0 10px;
      cursor: pointer;
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      padding: 20px; } }

.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
  flex-direction: row; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
    flex-direction: column-reverse; } }

.elementor-widget-video-playlist {
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; }
  .elementor-widget-video-playlist .e-tabs {
    display: flex;
    flex-direction: column; }
  .elementor-widget-video-playlist .e-tabs-main-area {
    display: flex;
    flex-direction: row-reverse;
    height: 434px; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
    width: 33%; }
  .elementor-widget-video-playlist .e-tabs-header {
    background-color: #ffffff;
    display: flex;
    flex: 0 0 auto;
    justify-content: space-between;
    padding: 0 16px;
    min-height: 56px;
    border-bottom: 1px solid #d5dadf; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side {
      display: inline-flex;
      flex-shrink: 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-title {
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      text-overflow: ellipsis;
      font-weight: 700;
      font-size: 16px;
      padding: 10px 0;
      overflow-wrap: anywhere;
      hyphens: auto;
      margin: auto 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      font-size: 14px;
      flex-shrink: 0;
      font-weight: 400;
      line-height: 20px;
      align-self: flex-start;
      padding: 18px 0 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: none;
      margin: auto 0 auto 8px;
      cursor: pointer;
      padding: 0 4px; }
      .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg {
        height: 1em;
        width: 1em; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-up {
      transform: rotate(-180deg);
      transition: .3s; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-down {
      transform: rotate(0deg);
      transition: .3s; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper {
    background-color: #ffffff;
    overflow: hidden;
    position: relative;
    height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
      overflow: auto;
      height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title {
      border-color: #d5dadf;
      border-width: 1px 0 0 0;
      font-size: 14px;
      height: 36px;
      padding: 0 16px;
      line-height: 36px;
      margin: 0;
      text-align: right;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      border-width: 0;
      box-sizing: content-box; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title {
      background-color: #ffffff;
      border-color: #d5dadf;
      border-width: 0 0 1px 0;
      cursor: pointer;
      display: flex;
      font-size: 14px;
      height: 55px;
      line-height: 55px;
      outline: none;
      padding: 0 16px;
      box-sizing: content-box; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        font-size: var(--playlist-item-icon-size, 16px); }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        fill: #ffffff;
        width: var(--playlist-item-icon-size, 16px);
        height: var(--playlist-item-icon-size, 16px); }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path {
          fill: #ffffff; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover {
        background-color: #f1f3f5;
        border-color: #d5dadf;
        border-width: 0 0 1px 0; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
          .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path {
            fill: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text {
          font-size: 14px; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: inline-flex; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail {
        background-color: #d5dadf;
        position: relative;
        margin: auto 0;
        flex-shrink: 0;
        width: 75px;
        height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img {
          object-fit: fill;
          width: 75px;
          height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg {
          position: absolute;
          bottom: 4px;
          right: 4px;
          font-weight: 900; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text {
        font-size: 14px;
        margin: auto 8px;
        text-align: right;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        flex-grow: 1; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        margin: auto 0;
        vertical-align: middle; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration {
        font-size: 14px;
        margin: auto 0; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched {
        display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      display: none;
      height: 98px;
      position: absolute;
      top: 0;
      width: 100%;
      pointer-events: none;
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      display: none;
      height: 98px;
      position: absolute;
      bottom: 0;
      width: 100%;
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
      pointer-events: none; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top {
      display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom {
      display: block; }
  .elementor-widget-video-playlist .e-tabs-content-wrapper {
    flex-grow: 1;
    height: 100%;
    position: relative; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay {
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-size: cover;
      background-position: 50%; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title {
      display: none; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content {
      background-color: #000000;
      display: none;
      height: 100%;
      outline: none; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content > div {
        height: 100%; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe {
        height: 100%;
        max-height: 100% !important;
        display: flex; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video {
        height: 100%;
        background-color: #000000; }
  .elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content {
    display: none;
    outline: none; }

@media (max-width: ELEMENTOR_SCREEN_MOBILE_MAX) {
  .elementor-widget-video-playlist .e-tabs-main-area {
    flex-direction: column-reverse;
    height: auto; }
    .elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper {
      border: none;
      height: 38%; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    width: auto;
    height: 62%; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
    max-height: 248px; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title {
      border: none; }
  .elementor-widget-video-playlist .e-tabs-header {
    min-height: 48px; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: inline-flex; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      margin: 0 6px;
      padding: 14px 0 0; }
  .elementor-widget-video-playlist .e-tab-content {
    border: none;
    padding: 0;
    display: flex; } }

.elementor-payment-button {
  border: none; }

.elementor-scrolling-tracker {
  --scrolling-track-default-progress-color: #61ce70;
  --scrolling-track-default-color: #eeeeee;
  --scrolling-track-precentage-default-color: $black; }

.elementor-scrolling-tracker-horizontal {
  display: flex;
  width: 100%;
  height: var(--horizontal-height, 20px);
  padding: var(--tracker-padding);
  align-items: center;
  border-top-width: var(--horizontal-border-top-width, 2px);
  border-right-width: var(--horizontal-border-right-width, 2px);
  border-bottom-width: var(--horizontal-border-bottom-width, 2px);
  border-left-width: var(--horizontal-border-left-width, 2px);
  border-style: var(--horizontal-border-style);
  border-color: var(--horizontal-border-color);
  border-radius: var(--border-radius);
  background-color: var(--scrolling-track-default-color);
  direction: var(--direction); }
  .elementor-scrolling-tracker-horizontal .current-progress {
    display: none;
    height: 100%;
    align-items: center;
    position: relative;
    border-radius: var(--progress-border-radius);
    border-top-width: var(--horizontal-progress-border-top-width, 2px);
    border-right-width: var(--horizontal-progress-border-right-width, 2px);
    border-bottom-width: var(--horizontal-progress-border-bottom-width, 2px);
    border-left-width: var(--horizontal-progress-border-left-width, 2px);
    border-style: var(--horizontal-progress-border);
    border-color: var(--horizontal-progress-border-color);
    background-color: var(--scrolling-track-default-progress-color); }
    .elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage {
      inset-inline-end: 0.5em;
      inset-inline-start: auto;
      position: absolute;
      direction: var(--text-direction);
      color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }

.elementor-scrolling-tracker-circular {
  display: flex;
  width: var(--circular-width, 100px);
  height: var(--circular-height, 100px);
  align-items: center;
  justify-content: center;
  position: relative;
  margin-inline-start: 0;
  margin-inline-end: auto; }
  .elementor-scrolling-tracker-circular .current-progress-percentage {
    position: absolute;
    color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }
  .elementor-scrolling-tracker-circular svg {
    position: absolute; }
  .elementor-scrolling-tracker-circular .current-progress {
    display: none;
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
    stroke: var(--circular-color, var(--scrolling-track-default-progress-color));
    fill: transparent;
    stroke-width: var(--circular-progress-width, 4px); }
  .elementor-scrolling-tracker-circular .circle {
    stroke: var(--circular-background-color, var(--scrolling-track-default-color));
    fill: transparent;
    stroke-width: var(--circular-background-width, 4px); }

.elementor-scrolling-tracker-alignment-left {
  margin-left: 0;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-center {
  margin-left: auto;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-right {
  margin-left: auto;
  margin-right: 0; }
PK!�%�����*assets/css/templates/frontend-lite.min.cssnu�[���.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:ELEMENTOR_SCREEN_TABLET_NEXT){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:ELEMENTOR_SCREEN_TABLET_MIN){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:ELEMENTOR_SCREEN_TABLET_MAX){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:ELEMENTOR_SCREEN_MOBILE_MAX){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!D�啧.�.,assets/css/widget-theme-elements-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:left}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:left}.elementor-post-navigation .elementor-post-navigation__next a{float:left}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-left:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}PK!��v�
�
*assets/css/widget-progress-tracker.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!�V	Y��assets/css/frontend-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-left:0}.woocommerce div.product.elementor .quantity+.button{margin-right:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;left:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-right:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,right)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-left:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;left:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:right}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,0);right:var(--side-cart-alignment-right,auto);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,right)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(-100%));-ms-transform:var(--side-cart-alignment-transform,translateX(-100%));transform:var(--side-cart-alignment-transform,translateX(-100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-right:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;left:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-left:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;right:0;left:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:right;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,right)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-right:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-left:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-right:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-right:1rem;padding-left:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:right}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,right)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:right;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:left;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-left:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-left:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-left:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:right;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-left:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-right:0;padding-left:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 0 8px 20px}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-right:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:right;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:left;width:75%;padding:0;padding-right:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-right:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-right:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-right:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:right;position:absolute;margin-right:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-right:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-left:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:left}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:left}.elementor-post-navigation .elementor-post-navigation__next a{float:left}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-left:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;left:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;right:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-left:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-left:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:right;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-left:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-left:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-left:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:1024px){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:767px){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-right:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:linear-gradient(270deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-right:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-right:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-left:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-right:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-left:20px;margin-right:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-left:0;margin-right:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:right}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-right:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-right:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-right:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-right:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-left-color:#1da1f2;position:absolute;right:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-right:7px #e6e9ec;border-style:solid;padding-right:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:right}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;right:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:0;right:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:0;right:auto;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 3px 3px 0;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:3px 0 0 3px;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 3px 0 0}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:0 0 3px 3px}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;right:50%;margin-right:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{right:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 10px 10px 0;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b3b3}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-right:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:767px){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:768px){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:1025px){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:1024px){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-left:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-right:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-left:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-left:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:1024px){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:767px){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}.e-tabs-inner-tabs{text-align:right;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:767px){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:767px){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:767px){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}.elementor-payment-button{border:none}.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!M��_��$assets/css/widget-blockquote.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-left:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-right-color:#1da1f2;position:absolute;left:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-left:7px #e6e9ec;border-style:solid;padding-left:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}PK!���F��'assets/css/widget-countdown-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}PK!~٨�,�,,assets/css/widget-call-to-action-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}PK!�m�̡�assets/css/frontend.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-right:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-right:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:left;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-right:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-right:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-right:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:1024px){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:767px){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-left:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:linear-gradient(90deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-left:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-left:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-right:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-left:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-right:20px;margin-left:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-right:0;margin-left:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:left}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-left:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-left:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-left:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-left:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-right-color:#1da1f2;position:absolute;left:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-left:7px #e6e9ec;border-style:solid;padding-left:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:left}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;left:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:auto;right:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:auto;right:0;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 0 3px 3px;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:3px 3px 0 0;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 0 0 3px}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:0 3px 3px 0}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;left:50%;margin-left:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{left:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 0 10px 10px;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b3b3}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-left:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:767px){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:768px){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:1025px){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:1024px){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-right:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-left:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-right:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-right:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:1024px){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:767px){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}.e-tabs-inner-tabs{text-align:left;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:767px){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:767px){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:767px){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}.elementor-payment-button{border:none}.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!�����assets/css/frontend.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    -webkit-transform: scale(0.85);
        -ms-transform: scale(0.85);
            transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    -webkit-transform: translateY(600px);
        -ms-transform: translateY(600px);
            transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    -webkit-transform: translateX(30px);
        -ms-transform: translateX(30px);
            transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    -webkit-transform: translateX(-30px);
        -ms-transform: translateX(-30px);
            transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
            transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1.17);
        -ms-transform: scale(1.17);
            transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    -webkit-transform: translateY(500px);
        -ms-transform: translateY(500px);
            transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    -webkit-transform: scale(1.2) translate(var(--translate));
        -ms-transform: scale(1.2) translate(var(--translate));
            transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: -webkit-gradient(linear, left bottom, left top, from(#feb416), to(#fec449));
  background-image: -webkit-linear-gradient(bottom, #feb416, #fec449);
  background-image: -o-linear-gradient(bottom, #feb416, #fec449);
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-right: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-left: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-right: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  -ms-flex-preferred-size: auto;
      flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%; }

@media (max-width: 1024px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

@media (max-width: 767px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    right: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-left: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: 1025px) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: 1024px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, left); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  right: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s;
  transition: background-color 0.4s, -webkit-transform 0s;
  -o-transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s, -webkit-transform 0s;
  text-align: left; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, auto);
  right: var(--side-cart-alignment-right, 0);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  top: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, left); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  -o-transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: var(--side-cart-alignment-transform, translateX(100%));
      -ms-transform: var(--side-cart-alignment-transform, translateX(100%));
          transform: var(--side-cart-alignment-transform, translateX(100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  -ms-flex-item-align: end;
      align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: -webkit-max-content auto;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      -webkit-margin-start: 5px;
              margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    -ms-flex-item-align: var(--price-quantity-position--align-self, end);
        align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-left: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 20px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-right: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: 767px) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    -webkit-transform: translateY(50%);
        -ms-transform: translateY(50%);
            transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      left: 0;
      right: auto;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: background-color 0.4s, -webkit-transform 0s;
      transition: background-color 0.4s, -webkit-transform 0s;
      -o-transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s, -webkit-transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    -o-transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    -webkit-transform: translateY(-10px);
        -ms-transform: translateY(-10px);
            transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      -webkit-box-flex: 75%;
          -ms-flex: 75%;
              flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      -webkit-box-flex: 20%;
          -ms-flex: 20%;
              flex: 20%;
      text-align: right; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: left;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-left: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                  transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-right: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-left: 15px;
            font-size: 12px; }
            @media (max-width: 1024px) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        -webkit-box-align: var(--place-order-title-alignment, stretch);
            -ms-flex-align: var(--place-order-title-alignment, stretch);
                align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: right; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: left; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-left: 1rem;
        padding-right: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                  transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: left; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, left); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: left;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: var(--place-order-title-alignment, stretch);
          -ms-flex-align: var(--place-order-title-alignment, stretch);
              align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-right: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: right;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        -webkit-box-flex: 2;
            -ms-flex: 2;
                flex: 2;
        padding-right: 30px; }
        @media (max-width: 1024px) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-right: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: left;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-right: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-left: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: 768px) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-left: 0;
          padding-right: 0; }
      @media (min-width: 767px) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: 768px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-left: 0;
        padding-right: 0; } }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-left: 0;
          padding-right: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-left: 0;
      padding-right: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-left: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
         -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
            transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      -webkit-padding-start: 0;
              padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: right;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-left: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-left: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-left: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-left: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
              transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: left;
    position: absolute;
    margin-left: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    -webkit-margin-start: 0;
            margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
              transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: var(--tabs-container-justify-content, space-between);
        -ms-flex-pack: var(--tabs-container-justify-content, space-between);
            justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: 767px) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-left: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-right: 0;
        border-right-width: 0; }
      @media (max-width: 767px) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0; }

.e-sticky-right-column--active {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      -webkit-transform: translateY(-5%);
          -ms-transform: translateY(-5%);
              transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: right; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: right; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: right; }

.elementor-search-form {
  display: block;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    color: #55595c;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    -webkit-transition: color 0.2s, background 0.2s;
    -o-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    -ms-flex-negative: 0;
        flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      -webkit-transform: scale(0);
          -ms-transform: scale(0);
              transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-author-box__avatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-right: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      -o-object-fit: cover;
         object-fit: cover; }
  .elementor-author-box__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  -ms-flex-item-align: center;
      align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: none;
  background-color: transparent;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    right: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
       -o-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
          transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  -webkit-transition-duration: 1s;
       -o-transition-duration: 1s;
          transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
      -ms-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
          transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover; }

.elementor-motion-effects-perspective {
  -webkit-perspective: 1200px;
          perspective: 1200px; }

.elementor-widget-posts:after, .elementor-widget-archive-posts:after {
  display: none; }

.elementor-posts-container.elementor-posts-masonry {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor-posts-container:not(.elementor-posts-masonry) {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-posts-container .elementor-post {
  padding: 0;
  margin: 0; }
  .elementor-posts-container .elementor-post__thumbnail {
    overflow: hidden; }
    .elementor-posts-container .elementor-post__thumbnail img {
      display: block;
      width: 100%;
      max-height: none;
      max-width: none;
      -webkit-transition: -webkit-filter 0.3s;
      transition: -webkit-filter 0.3s;
      -o-transition: filter 0.3s;
      transition: filter 0.3s;
      transition: filter 0.3s, -webkit-filter 0.3s; }
    .elementor-posts-container .elementor-post__thumbnail__link {
      position: relative;
      display: block;
      width: 100%; }

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    height: auto;
    position: absolute;
    top: calc( 50% + 1px);
    left: calc( 50% + 1px);
    -webkit-transform: scale(1.01) translate(-50%, -50%);
        -ms-transform: scale(1.01) translate(-50%, -50%);
            transform: scale(1.01) translate(-50%, -50%); }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
    height: 100%;
    width: auto; }

.elementor-posts .elementor-post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition-property: background, border, -webkit-box-shadow;
  transition-property: background, border, -webkit-box-shadow;
  -o-transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow, -webkit-box-shadow;
  -webkit-transition-duration: 0.25s;
       -o-transition-duration: 0.25s;
          transition-duration: 0.25s; }
  .elementor-posts .elementor-post__title {
    font-size: 18px;
    margin: 0; }
  .elementor-posts .elementor-post__excerpt {
    margin-bottom: 10px; }
    .elementor-posts .elementor-post__excerpt p {
      margin: 0;
      line-height: 1.5em;
      font-size: 14px;
      color: #777; }
  .elementor-posts .elementor-post__meta-data {
    line-height: 1.3em;
    font-size: 12px;
    margin-bottom: 13px;
    color: #adadad; }
  .elementor-posts .elementor-post__read-more {
    font-size: 12px;
    font-weight: bold; }
  .elementor-posts .elementor-post__thumbnail {
    position: relative; }

.elementor-posts--skin-classic {
  display: grid;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-posts--skin-classic:not(.elementor-posts-masonry) {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch; }
  .elementor-posts--skin-classic .elementor-post {
    overflow: hidden; }
    .elementor-posts--skin-classic .elementor-post__text {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }

.elementor-posts--align-left .elementor-post {
  text-align: left; }

.elementor-posts--align-right .elementor-post {
  text-align: right; }

.elementor-posts--align-center .elementor-post {
  text-align: center; }

.elementor-posts--thumbnail-top .elementor-post {
  display: block;
  /*

			 used to be
			 align-self: flex-start;
			 until v2.1

			*/ }
  .elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
    margin-bottom: 20px; }
  .elementor-posts--thumbnail-top .elementor-post__text {
    width: 100%; }

.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link {
  margin-right: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link {
  margin-left: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link {
  margin-right: auto;
  margin-left: auto; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link, .elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 25%; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 1;
      -ms-flex-order: 0;
          order: 0;
  margin-right: 20px; }

.elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
  margin-left: 20px; }

.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link {
  display: none; }

.elementor-posts .elementor-post__card {
  overflow: hidden;
  position: relative;
  background-color: #fff;
  width: 100%;
  min-height: 100%;
  border-radius: 3px;
  border: 0 solid #818a91;
  -webkit-transition: all 0.25s;
  -o-transition: all 0.25s;
  transition: all 0.25s; }
  .elementor-posts .elementor-post__card .elementor-post__thumbnail {
    position: relative;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d; }
    .elementor-posts .elementor-post__card .elementor-post__thumbnail img {
      width: calc( 100% + 1px); }
  .elementor-posts .elementor-post__card .elementor-post__text {
    padding: 0 30px;
    margin-bottom: 0;
    margin-top: 20px; }
  .elementor-posts .elementor-post__card .elementor-post__read-more {
    margin-bottom: 20px;
    display: inline-block; }
  .elementor-posts .elementor-post__card .elementor-post__meta-data {
    padding: 15px 30px;
    margin-bottom: 0;
    border-top: 1px solid #eaeaea; }
    .elementor-posts .elementor-post__card .elementor-post__meta-data span + span:before {
      margin: 0 5px; }
  .elementor-posts .elementor-post__card .elementor-post__title {
    font-size: 21px; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt {
    line-height: 1.7; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt, .elementor-posts .elementor-post__card .elementor-post__title {
    margin-bottom: 25px; }
  .elementor-posts .elementor-post__card .elementor-post__badge, .elementor-posts .elementor-post__card .elementor-post__read-more {
    text-transform: uppercase; }

.elementor-posts .elementor-post__badge {
  position: absolute;
  top: 0;
  background: #818a91;
  color: #fff;
  font-size: 12px;
  padding: 0.6em 1.2em;
  line-height: 1;
  font-weight: 400;
  margin: 20px;
  border-radius: 999px; }

.elementor-posts .elementor-post__avatar {
  position: relative;
  padding: 0 30px;
  width: 100%;
  top: -25px;
  height: 0;
  pointer-events: none; }
  .elementor-posts .elementor-post__avatar img {
    border-radius: 50%;
    width: 60px;
    pointer-events: all;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data {
  margin-top: auto; }

.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar {
  padding-top: 0;
  position: static;
  height: auto; }
  .elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    vertical-align: bottom; }

.elementor-posts--show-avatar .elementor-post__thumbnail__link {
  margin-bottom: 25px; }

.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after {
  display: block;
  content: '';
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.35)), color-stop(75%, rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  opacity: 1;
  -webkit-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out; }

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after {
  opacity: 0.5; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-out .elementor-post__thumbnail img, .elementor-posts__hover-zoom-in .elementor-post__thumbnail img {
  -webkit-transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  -o-transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s; }

.elementor-card-shadow-yes .elementor-post__card {
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
  .elementor-card-shadow-yes .elementor-post__card:hover {
    -webkit-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15); }

.elementor-posts--skin-full_content article {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden; }
  .elementor-posts--skin-full_content article .elementor-post__thumbnail {
    padding-bottom: 0; }

body.elementor-editor-active .elementor-posts--skin-full_content,
body.elementor-editor-active .elementor-posts--skin-archive_full_content {
  pointer-events: none; }
  body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link,
  body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link {
    display: none; }

body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link {
  display: block; }

.elementor-portfolio__filters {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  margin: 0; }

.elementor-portfolio__filter {
  margin: 0;
  cursor: pointer;
  padding: 8px; }

.elementor-portfolio-item {
  -ms-flex-item-align: start;
      align-self: flex-start;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: ease-in-out;
       -o-transition-timing-function: ease-in-out;
          transition-timing-function: ease-in-out;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  overflow: hidden;
  margin: 0; }
  .elementor-portfolio-item__title {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #fff; }
  .elementor-portfolio-item__tags__separator:before {
    content: ', '; }
  .elementor-portfolio-item__overlay {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    -webkit-transition: opacity 1s;
    -o-transition: opacity 1s;
    transition: opacity 1s;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    overflow: hidden;
    background-color: rgba(129, 138, 145, 0.8); }
    .elementor-portfolio-item__overlay:hover {
      opacity: 1;
      -webkit-transition: opacity 0.5s;
      -o-transition: opacity 0.5s;
      transition: opacity 0.5s; }
  .elementor-portfolio-item__img img[src=""] {
    background-color: rgba(0, 0, 0, 0.1);
    height: 100%; }

.elementor-portfolio.elementor-has-item-ratio {
  -webkit-transition: height 0.5s;
  -o-transition: height 0.5s;
  transition: height 0.5s; }
  .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1); }
    .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link {
      padding-bottom: 56.25%; }

.elementor ul li.elementor-portfolio__filter {
  list-style-type: none; }

.elementor-widget-posts.load-more-align-center .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper {
  text-align: center; }

.elementor-widget-posts.load-more-align-start .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper {
  text-align: start; }

.elementor-widget-posts.load-more-align-end .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper {
  text-align: end; }

.elementor-widget-posts.load-more-align-justify .elementor-button, .elementor-widget-archive-posts.load-more-align-justify .elementor-button {
  width: 100%; }

.elementor-widget-posts .e-load-more-spinner, .elementor-widget-archive-posts .e-load-more-spinner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-posts .e-load-more-spinner i,
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner i,
  .elementor-widget-archive-posts .e-load-more-spinner svg {
    margin: 0 auto;
    display: none; }
  .elementor-widget-posts .e-load-more-spinner i, .elementor-widget-archive-posts .e-load-more-spinner i {
    color: var(--load-more-spinner-color); }
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner svg {
    fill: var(--load-more-spinner-color);
    height: 1em;
    width: 1em; }

.elementor-widget-posts .e-load-more-message, .elementor-widget-archive-posts .e-load-more-message {
  color: var(--load-more-message-color);
  text-align: var(--load-more-message-alignment, center);
  display: none;
  margin-top: var(--load-more—spacing, 30px); }

.elementor-widget-posts.e-load-more-pagination-loading, .elementor-widget-archive-posts.e-load-more-pagination-loading {
  cursor: default; }
  .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner {
    margin-top: var(--load-more—spacing, 30px); }
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
  .elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper {
    visibility: hidden; }

.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper {
  display: none; }

.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message, .elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message {
  display: block; }

.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper {
  visibility: visible; }

.elementor-widget-posts .elementor-button-wrapper, .elementor-widget-archive-posts .elementor-button-wrapper {
  margin-top: var(--load-more—spacing, 30px); }
  .elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner, .elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    margin: inherit; }
  .elementor-widget-posts .elementor-button-wrapper .elementor-button, .elementor-widget-archive-posts .elementor-button-wrapper .elementor-button {
    cursor: pointer;
    position: relative; }

/*
Multi Steps Form

Currently manually overwriting  - need to find a better solution,
the source property is coming from element/dev/scss...

*/
/* TODO: check why elementor-hidden class is not working */
.elementor-hidden,
.elementor-button.elementor-hidden {
  display: none; }

.e-form__step {
  width: 100%; }
  .e-form__step:not(.elementor-hidden) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

.e-form__buttons {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .e-form__buttons, .e-form__buttons__wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }

.e-form__indicators {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  font-size: 13px;
  margin-bottom: var(--e-form-steps-indicators-spacing); }
  .e-form__indicators__indicator {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    padding: 0 var(--e-form-steps-divider-gap); }
    .e-form__indicators__indicator__progress {
      width: 100%;
      position: relative;
      background-color: var(--e-form-steps-indicator-progress-background-color);
      border-radius: var(--e-form-steps-indicator-progress-border-radius);
      overflow: hidden; }
      .e-form__indicators__indicator__progress__meter {
        width: var(--e-form-steps-indicator-progress-meter-width, 0);
        height: var(--e-form-steps-indicator-progress-height);
        line-height: var(--e-form-steps-indicator-progress-height);
        padding-right: 15px;
        border-radius: var(--e-form-steps-indicator-progress-border-radius);
        background-color: var(--e-form-steps-indicator-progress-color);
        color: var(--e-form-steps-indicator-progress-meter-color);
        text-align: right;
        -webkit-transition: width 0.1s linear;
        -o-transition: width 0.1s linear;
        transition: width 0.1s linear; }
    .e-form__indicators__indicator:first-child {
      padding-left: 0; }
    .e-form__indicators__indicator:last-child {
      padding-right: 0; }
    .e-form__indicators__indicator--state-inactive {
      color: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
      .e-form__indicators__indicator--state-inactive [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-inactive-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-inactive svg,
      .e-form__indicators__indicator--state-inactive object {
        fill: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
    .e-form__indicators__indicator--state-active {
      color: var(--e-form-steps-indicator-active-primary-color, #39B54A);
      border-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active svg,
      .e-form__indicators__indicator--state-active object {
        fill: var(--e-form-steps-indicator-active-primary-color, #39B54A); }
    .e-form__indicators__indicator--state-completed {
      color: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-completed [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A);
        background-color: initial; }
      .e-form__indicators__indicator--state-completed svg,
      .e-form__indicators__indicator--state-completed object {
        fill: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
    .e-form__indicators__indicator__icon {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      font-size: var(--e-form-steps-indicator-icon-size);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      overflow: hidden;
      margin-bottom: 10px; }
      .e-form__indicators__indicator__icon img,
      .e-form__indicators__indicator__icon svg,
      .e-form__indicators__indicator__icon object {
        width: var(--e-form-steps-indicator-icon-size);
        height: auto; }
      .e-form__indicators__indicator__icon .e-font-icon-svg {
        height: 1em; }
    .e-form__indicators__indicator__number {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-bottom: 10px; }
    .e-form__indicators__indicator--shape-circle {
      border-radius: 50%; }
    .e-form__indicators__indicator--shape-square {
      border-radius: 0; }
    .e-form__indicators__indicator--shape-rounded {
      border-radius: 5px; }
    .e-form__indicators__indicator--shape-none {
      border: 0; }
    .e-form__indicators__indicator__label {
      text-align: center; }
    .e-form__indicators__indicator__separator {
      width: 100%;
      height: var(--e-form-steps-divider-width);
      background-color: #c2cbd2; }
  .e-form__indicators--type-number, .e-form__indicators--type-number_text, .e-form__indicators--type-icon, .e-form__indicators--type-icon_text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .e-form__indicators--type-number .e-form__indicators__indicator__separator, .e-form__indicators--type-number_text .e-form__indicators__indicator__separator, .e-form__indicators--type-icon .e-form__indicators__indicator__separator, .e-form__indicators--type-icon_text .e-form__indicators__indicator__separator {
      margin-top: calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2); }

/* End OF Multi Steps Form */
.elementor-field-type-hidden {
  display: none; }

.elementor-field-type-html {
  display: inline-block; }

.elementor-login .elementor-remember-me,
.elementor-login .elementor-lost-password {
  font-size: 0.85em; }

.elementor-field-type-recaptcha_v3 .elementor-field-label {
  display: none; }

.elementor-field-type-recaptcha_v3 .grecaptcha-badge {
  z-index: 1; }

.elementor-button .elementor-form-spinner {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.elementor-form .elementor-button > span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-form .elementor-button .elementor-button-text {
  white-space: normal;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0; }

.elementor-form .elementor-button svg {
  height: auto; }

.elementor-form .elementor-button .e-font-icon-svg {
  height: 1em; }

.elementor-widget-price-list .elementor-price-list {
  list-style: none;
  padding: 0;
  margin: 0; }
  .elementor-widget-price-list .elementor-price-list li {
    margin: 0; }

.elementor-price-list li:not(:last-child) {
  margin-bottom: 20px; }

.elementor-price-list .elementor-price-list-image {
  max-width: 50%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-right: 25px; }
  .elementor-price-list .elementor-price-list-image img {
    width: 100%; }

.elementor-price-list .elementor-price-list-text,
.elementor-price-list .elementor-price-list-item,
.elementor-price-list .elementor-price-list-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.elementor-price-list .elementor-price-list-item {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 10px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-title {
    max-width: 80%; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-price {
    font-weight: 600; }
  .elementor-price-list .elementor-price-list-item p.elementor-price-list-description {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 14px;
    margin: 0; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-separator {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-left: 10px;
    margin-right: 10px;
    border-bottom-style: dotted;
    border-bottom-width: 2px;
    height: 0; }

.elementor-price-table {
  text-align: center; }
  .elementor-price-table .elementor-price-table__header {
    background: var(--e-price-table-header-background-color, #555);
    padding: 20px 0; }
  .elementor-price-table .elementor-price-table__heading {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 24px;
    font-weight: 600;
    color: #fff; }
  .elementor-price-table .elementor-price-table__subheading {
    font-size: 13px;
    font-weight: 400;
    color: #fff; }
  .elementor-price-table .elementor-price-table__original-price {
    margin-right: 15px;
    text-decoration: line-through;
    font-size: 0.5em;
    line-height: 1;
    font-weight: 400;
    -ms-flex-item-align: center;
        align-self: center; }
    .elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency {
      font-size: 1em;
      margin: 0; }
  .elementor-price-table .elementor-price-table__price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    color: #555;
    font-weight: 800;
    font-size: 65px;
    padding: 40px 0; }
    .elementor-price-table .elementor-price-table__price .elementor-typo-excluded {
      line-height: initial;
      letter-spacing: initial;
      text-transform: initial;
      font-weight: initial;
      font-size: initial;
      font-style: initial; }
  .elementor-price-table .elementor-price-table__after-price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    text-align: left;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-price-table .elementor-price-table__integer-part {
    line-height: 0.8; }
  .elementor-price-table .elementor-price-table__currency, .elementor-price-table .elementor-price-table__fractional-part {
    line-height: 1;
    font-size: 0.3em; }
  .elementor-price-table .elementor-price-table__currency {
    margin-right: 3px; }
  .elementor-price-table .elementor-price-table__period {
    width: 100%;
    font-size: 13px;
    font-weight: 400; }
  .elementor-price-table .elementor-price-table__features-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: var(--e-price-table-features-list-color); }
    .elementor-price-table .elementor-price-table__features-list li {
      font-size: 14px;
      line-height: 1;
      margin: 0;
      padding: 0; }
      .elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
        margin-left: 15px;
        margin-right: 15px; }
      .elementor-price-table .elementor-price-table__features-list li:not(:first-child):before {
        content: '';
        display: block;
        border: 0 solid rgba(122, 122, 122, 0.3);
        margin: 10px 12.5%; }
    .elementor-price-table .elementor-price-table__features-list i {
      margin-right: 10px;
      font-size: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg {
      margin-right: 10px;
      fill: var(--e-price-table-features-list-color);
      height: 1.3em;
      width: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg ~ * {
      vertical-align: text-top; }
  .elementor-price-table .elementor-price-table__footer {
    padding: 30px 0; }
  .elementor-price-table .elementor-price-table__additional_info {
    margin: 0;
    font-size: 13px;
    line-height: 1.4; }
  .elementor-price-table__ribbon {
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    width: 150px;
    overflow: hidden;
    height: 150px; }
    .elementor-price-table__ribbon-inner {
      text-align: center;
      left: 0;
      width: 200%;
      -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
          -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
              transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
      margin-top: 35px;
      font-size: 13px;
      line-height: 2;
      font-weight: 800;
      text-transform: uppercase;
      background: #000; }
    .elementor-price-table__ribbon.elementor-ribbon-left {
      -webkit-transform: rotate(0);
          -ms-transform: rotate(0);
              transform: rotate(0);
      left: 0;
      right: auto; }
    .elementor-price-table__ribbon.elementor-ribbon-right {
      -webkit-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
              transform: rotate(90deg);
      left: auto;
      right: 0; }

.elementor-widget-price-table .elementor-widget-container {
  overflow: hidden;
  background-color: #f7f7f7; }

.elementor-flip-box {
  height: 280px;
  position: relative;
  -webkit-perspective: 1000px;
          perspective: 1000px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  @media (max-device-width: 1024px) {
    .elementor-flip-box {
      cursor: pointer; } }
  .elementor-flip-box__front {
    background-color: #1abc9c; }
  .elementor-flip-box__back {
    background-color: #4054b2;
    display: block; }
  .elementor-flip-box__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-transition: all .6s ease-in-out;
    -o-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out; }
    .elementor-flip-box__layer__overlay {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      width: 100%;
      height: 100%;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      text-align: center;
      padding: 35px;
      color: white; }
    .elementor-flip-box__layer__title {
      font-size: 21px; }
    .elementor-flip-box__layer__description {
      font-size: 14px; }
    .elementor-flip-box__layer__description:not(:last-child), .elementor-flip-box__layer__title:not(:last-child) {
      margin: 0 0 20px 0;
      padding: 0; }
    .elementor-flip-box__layer__title {
      line-height: 1;
      font-weight: 600; }
  .elementor-flip-box,
  .elementor-flip-box .elementor-view-framed,
  .elementor-flip-box .elementor-view-stacked {
    --e-flip-box-view-framed-stacked-icon-color: #fff; }
    .elementor-flip-box .elementor-icon,
    .elementor-flip-box .elementor-view-framed .elementor-icon,
    .elementor-flip-box .elementor-view-stacked .elementor-icon {
      color: var(--e-flip-box-view-framed-stacked-icon-color); }
      .elementor-flip-box .elementor-icon svg,
      .elementor-flip-box .elementor-view-framed .elementor-icon svg,
      .elementor-flip-box .elementor-view-stacked .elementor-icon svg {
        fill: var(--e-flip-box-view-framed-stacked-icon-color); }
  .elementor-flip-box .elementor-view-framed .elementor-icon {
    border-color: #fff; }
  .elementor-flip-box .elementor-view-stacked .elementor-icon {
    background-color: rgba(0, 0, 0, 0.5); }
  .elementor-flip-box__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-flip-box__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-flip-box__image {
    margin: 0 0 20px 0;
    display: inline-block;
    width: 100%; }
    .elementor-flip-box__image img {
      width: 50%; }
  .elementor-flip-box .elementor-icon-wrapper {
    margin-bottom: 20px; }
  .elementor-flip-box--3d .elementor-flip-box__layer__inner {
    -webkit-transform: translateZ(90px) scale(0.91);
            transform: translateZ(90px) scale(0.91); }
  .elementor-flip-box--3d .elementor-flip-box__layer__overlay {
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
    -webkit-transform: translateZ(0.1px);
            transform: translateZ(0.1px); }
  .elementor-flip-box--effect-flip .elementor-flip-box {
    -webkit-perspective: 1000px;
            perspective: 1000px;
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d; }
    .elementor-flip-box--effect-flip .elementor-flip-box__layer {
      -webkit-transform-style: preserve-3d;
              transform-style: preserve-3d;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .elementor-flip-box--effect-flip .elementor-flip-box__front {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      z-index: 1; }
    .elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-push .elementor-flip-box__front {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide .elementor-flip-box, .elementor-flip-box--effect-push .elementor-flip-box {
    overflow: hidden; }
    .elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back, .elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front {
    -webkit-transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    z-index: 1;
    width: 100%; }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front {
    width: 0;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7);
    -webkit-transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    -o-transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s; }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s, -webkit-transform 0.7s;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7); }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s, -webkit-transform 0.7s;
    transition: opacity 0.5s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back {
    opacity: 0; }
  .elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back {
    opacity: 1; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front {
  display: none; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  opacity: 1; }

.elementor-widget-call-to-action .elementor-widget-container {
  overflow: hidden; }

.elementor-cta {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -webkit-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s; }
  .elementor-cta--skin-classic .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--skin-classic .elementor-cta__bg-wrapper {
      position: relative;
      min-height: 200px;
      width: 100%; }
    .elementor-cta--skin-classic .elementor-cta__content {
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%;
      background-color: #f7f7f7; }
    .elementor-cta--skin-classic .elementor-cta__content-item, .elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon {
      color: #55595c;
      border-color: #55595c;
      fill: #55595c; }
    .elementor-cta--skin-classic .elementor-cta__button.elementor-button {
      color: #55595c;
      border-color: #55595c; }
  .elementor-cta--skin-cover .elementor-cta {
    display: block; }
    .elementor-cta--skin-cover .elementor-cta__bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%; }
    .elementor-cta--skin-cover .elementor-cta__content {
      min-height: 280px; }
    .elementor-cta--skin-cover .elementor-cta__content-item, .elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon {
      color: #fff;
      border-color: #fff; }
    .elementor-cta--skin-cover .elementor-cta__button.elementor-button {
      color: white;
      border-color: white; }
  .elementor-cta--layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--layout-image-left .elementor-cta, .elementor-cta--layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--layout-image-left .elementor-cta__content, .elementor-cta--layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta__bg, .elementor-cta__bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    -webkit-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s; }
  .elementor-cta__bg-wrapper {
    z-index: 1;
    overflow: hidden; }
  .elementor-cta__bg {
    -webkit-background-size: cover;
            background-size: cover;
    background-position: center;
    z-index: 1; }
  .elementor-cta__bg-overlay {
    z-index: 2; }
  .elementor-cta__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-cta__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-cta__title {
    font-size: 23px; }
  .elementor-cta__content {
    z-index: 1;
    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 35px;
    width: 100%; }
    .elementor-cta__content, .elementor-cta__content-item {
      position: relative;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s;
      color: #fff; }
    .elementor-cta__content-item {
      width: 100%;
      margin: 0; }
      .elementor-cta__content-item:not(:last-child) {
        margin-bottom: 15px; }
      .elementor-cta__content-item .elementor-icon {
        color: #fff; }
  .elementor-cta--valign-top .elementor-cta__content {
    -ms-flex-line-pack: start;
        align-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
  .elementor-cta--valign-middle .elementor-cta__content {
    -ms-flex-line-pack: center;
        align-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .elementor-cta--valign-bottom .elementor-cta__content {
    -ms-flex-line-pack: end;
        align-content: flex-end;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .elementor-cta:hover .elementor-cta__bg-overlay {
    background-color: rgba(0, 0, 0, 0.3); }

@media (max-device-width: 1024px) {
  .elementor-cta {
    cursor: pointer; } }

@media (min-width: -1px) {
  .elementor-cta--widescreen-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta, .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__content, .elementor-cta--widescreen-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--laptop-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--laptop-layout-image-left .elementor-cta, .elementor-cta--laptop-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__content, .elementor-cta--laptop-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--laptop-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--laptop-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--tablet_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta, .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__content, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: 1024px) {
  .elementor-cta--tablet-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet-layout-image-left .elementor-cta, .elementor-cta--tablet-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__content, .elementor-cta--tablet-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--tablet-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--mobile_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta, .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__content, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: 767px) {
  .elementor-cta--mobile-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile-layout-image-left .elementor-cta, .elementor-cta--mobile-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__content, .elementor-cta--mobile-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--mobile-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

.elementor-ribbon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: auto;
  right: 0;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  width: 150px;
  overflow: hidden;
  height: 150px; }
  .elementor-ribbon-inner {
    text-align: center;
    left: 0;
    width: 200%;
    -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
        -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
            transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
    margin-top: 35px;
    font-size: 13px;
    line-height: 2;
    font-weight: 800;
    text-transform: uppercase;
    background: #000;
    color: #fff; }
  .elementor-ribbon.elementor-ribbon-left {
    -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
            transform: rotate(0);
    left: 0;
    right: auto; }
  .elementor-ribbon.elementor-ribbon-right {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    left: auto;
    right: 0; }

.elementor-widget-countdown .elementor-countdown-expire--message {
  display: none;
  padding: 20px;
  text-align: center; }

.elementor-widget-countdown .elementor-countdown-wrapper {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.elementor-widget-countdown .elementor-countdown-item {
  padding: 20px 0;
  text-align: center;
  color: #ffffff; }

.elementor-widget-countdown .elementor-countdown-digits,
.elementor-widget-countdown .elementor-countdown-label {
  line-height: 1; }

.elementor-widget-countdown .elementor-countdown-digits {
  font-size: 69px; }

.elementor-widget-countdown .elementor-countdown-label {
  font-size: 19px; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-right: auto;
  margin-left: auto; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,
.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label {
  display: block; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.elementor-widget-countdown.elementor-countdown--label-inline {
  text-align: center; }
  .elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px; }

/* Slides Widget */
.elementor-slides .swiper-slide-bg {
  -webkit-background-size: cover;
          background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-width: 100%;
  min-height: 100%; }

.elementor-slides .swiper-slide-inner {
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 50px;
  margin: auto; }
  .elementor-slides .swiper-slide-inner, .elementor-slides .swiper-slide-inner:hover {
    color: white;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-slides .swiper-slide-inner .elementor-background-overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }
  .elementor-slides .swiper-slide-inner .elementor-slide-content {
    position: relative;
    z-index: 1;
    width: 100%; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading {
    font-size: 35px;
    font-weight: bold;
    line-height: 1; }
  .elementor-slides .swiper-slide-inner .elementor-slide-description {
    font-size: 17px;
    line-height: 1.4; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child) {
    margin-bottom: 30px; }
  .elementor-slides .swiper-slide-inner .elementor-slide-button {
    border: solid 2px white;
    color: white;
    background: transparent;
    display: inline-block; }
    .elementor-slides .swiper-slide-inner .elementor-slide-button, .elementor-slides .swiper-slide-inner .elementor-slide-button:hover {
      background: transparent;
      color: inherit;
      text-decoration: none; }

.elementor--v-position-top .swiper-slide-inner {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor--v-position-bottom .swiper-slide-inner {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

.elementor--v-position-middle .swiper-slide-inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor--h-position-left .swiper-slide-inner {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor--h-position-right .swiper-slide-inner {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor--h-position-center .swiper-slide-inner {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

body.rtl .elementor-widget-slides .elementor-swiper-button-next {
  left: 10px;
  right: auto; }

body.rtl .elementor-widget-slides .elementor-swiper-button-prev {
  right: 10px;
  left: auto; }

.elementor-slides-wrapper div:not(.swiper-slide) > .swiper-slide-inner {
  display: none; }

@media (max-width: 767px) {
  .elementor-slides .swiper-slide-inner {
    padding: 30px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-heading {
      font-size: 23px;
      line-height: 1;
      margin-bottom: 15px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-description {
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 15px; } }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn {
  color: var(--e-share-buttons-primary-color, #ea4335);
  border-color: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  background-color: var(--e-share-buttons-primary-color, #ea4335);
  color: var(--e-share-buttons-secondary-color, #fff); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon {
  color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-official .elementor-share-btn:hover {
  -webkit-filter: saturate(1.5) brightness(1.2);
          filter: saturate(1.5) brightness(1.2); }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg {
  color: #005be2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg {
    fill: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email {
  color: #ea4335; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg {
    fill: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print {
  color: #aaaaaa; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg {
    fill: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook {
  color: #3b5998; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg {
    fill: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google {
  color: #dd4b39; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg {
    fill: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket {
  color: #EF3F56; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg {
    fill: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki {
  color: #F4731C; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg {
    fill: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest {
  color: #bd081c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg {
    fill: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit {
  color: #ff4500; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg {
    fill: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype {
  color: #00AFF0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg {
    fill: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat {
  color: #fffc00; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg {
    fill: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon {
  color: #EB4924; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg {
    fill: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix {
  color: #f3782b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg {
    fill: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr {
  color: #35465c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg {
    fill: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch {
  color: #6441A5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg {
    fill: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram {
  color: #2CA5E0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg {
    fill: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter {
  color: #1DA1F2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg {
    fill: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo {
  color: #1ab7ea; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg {
    fill: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk {
  color: #45668e; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg {
    fill: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp {
  color: #25d366; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg {
    fill: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress {
  color: #21759b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg {
    fill: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing {
  color: #026466; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg {
    fill: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon {
  color: var(--e-share-buttons-icon-color, #fff); }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-icon-color, #fff); }

.elementor-share-buttons--skin-framed .elementor-share-btn__icon, .elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  margin-left: -0.2em; }

.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--skin-boxed .elementor-share-btn {
  border-style: solid; }

.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-boxed .elementor-share-btn__text, .elementor-share-buttons--skin-minimal .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  padding-left: 0.9em; }

.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon {
  border-radius: 0.5em; }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon {
  border-radius: 99.9em; }

.elementor-share-buttons--view-text .elementor-share-btn__text {
  padding-left: 1em; }

.elementor-share-buttons--view-text .elementor-share-btn, .elementor-share-buttons--view-icon .elementor-share-btn {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .elementor-share-buttons--view-text .elementor-share-btn__icon, .elementor-share-buttons--view-text .elementor-share-btn__text, .elementor-share-buttons--view-icon .elementor-share-btn__icon, .elementor-share-buttons--view-icon .elementor-share-btn__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-share-buttons--shape-rounded .elementor-share-btn {
  border-radius: 0.5em; }

.elementor-share-buttons--shape-circle .elementor-share-btn {
  border-radius: 99.9em; }

.elementor-share-btn {
  overflow: hidden;
  font-size: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-transition-duration: 0.2s;
       -o-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-property: background-color, border-color, -webkit-filter;
  transition-property: background-color, border-color, -webkit-filter;
  -o-transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color, -webkit-filter;
  height: 4.5em;
  cursor: pointer; }
  .elementor-share-btn__icon, .elementor-share-btn__text {
    -webkit-transition-property: color, background-color;
    -o-transition-property: color, background-color;
    transition-property: color, background-color;
    -webkit-transition-duration: 0.2s;
         -o-transition-duration: 0.2s;
            transition-duration: 0.2s; }
  .elementor-share-btn__icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 4.5em;
    position: relative; }
    .elementor-share-btn__icon i {
      font-size: var(--e-share-buttons-icon-size, 1.7em); }
    .elementor-share-btn__icon svg {
      width: var(--e-share-buttons-icon-size, 1.7em);
      height: var(--e-share-buttons-icon-size, 1.7em); }
  .elementor-share-btn__text {
    font-size: 1.5em;
    padding-right: 1em;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-weight: 100; }
  .elementor-share-btn__title {
    font-weight: bold;
    -ms-flex-negative: 0;
        flex-shrink: 0; }

.elementor-widget-share-buttons {
  text-align: var(--alignment, inherit);
  -moz-text-align-last: var(--alignment, inherit);
       text-align-last: var(--alignment, inherit); }
  .elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container {
    font-size: 0; }

.elementor-skin-carousel .elementor-main-swiper, .elementor-skin-coverflow .elementor-main-swiper {
  height: 230px; }

.elementor-skin-slideshow .elementor-main-swiper {
  height: 450px;
  position: relative; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i {
  font-size: 50px; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide {
  cursor: pointer; }
  .elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.3); }

.elementor-carousel-image {
  background: no-repeat center;
  -webkit-background-size: cover;
          background-size: cover;
  height: 100%;
  position: relative; }

.elementor-carousel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  color: var(--e-carousel-image-overlay-color, #fff);
  background-color: rgba(129, 138, 145, 0.8);
  -webkit-transition: opacity .5s, -webkit-transform .5s;
  transition: opacity .5s, -webkit-transform .5s;
  -o-transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s, -webkit-transform .5s; }
  .elementor-carousel-image-overlay i {
    font-size: var(--e-carousel-image-overlay-icon-size, 21px); }
  .elementor-carousel-image-overlay svg {
    fill: var(--e-carousel-image-overlay-color, #fff);
    width: var(--e-carousel-image-overlay-icon-size, 21px);
    height: var(--e-carousel-image-overlay-icon-size, 21px); }

.elementor-testimonial__image {
  -ms-flex-negative: 0;
      flex-shrink: 0; }
  .elementor-testimonial__image img {
    border-radius: 999px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    -o-object-fit: cover;
       object-fit: cover; }

.elementor-testimonial__footer, .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-testimonial__footer cite, .elementor-testimonial__header cite {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5; }

.elementor-testimonial__name {
  font-weight: bold; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer, .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above .elementor-testimonial__image + cite {
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite {
  margin-right: 20px;
  margin-left: 0; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite {
  margin-right: 0;
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer {
  margin-top: 25px; }

.elementor-testimonial--layout-image_above .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }
  .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
    margin-bottom: 25px; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer {
  margin-top: 25px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__image, .elementor-testimonial--layout-image_stacked .elementor-testimonial cite {
  margin-top: 15px;
  width: 100%; }

.elementor-testimonial--layout-image_left .elementor-testimonial, .elementor-testimonial--layout-image_right .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_right .elementor-testimonial__image + cite {
    margin-top: 15px; }

.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer, .elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-testimonial--layout-image_left .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer {
    padding-right: 20px; }

.elementor-testimonial--layout-image_right .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    padding-left: 20px; }

.elementor-testimonial--align-right .elementor-testimonial {
  text-align: right; }

.elementor-testimonial--align-left .elementor-testimonial {
  text-align: left; }

.elementor-testimonial--align-center .elementor-testimonial {
  text-align: center; }
  .elementor-testimonial--align-center .elementor-testimonial__footer {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite {
  text-align: left; }

.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: 25px; }

.elementor-testimonial--skin-bubble .elementor-testimonial__content {
  background-color: #e6e9ec;
  padding: 20px;
  position: relative; }
  .elementor-testimonial--skin-bubble .elementor-testimonial__content:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-color: #e6e9ec;
    position: absolute;
    -webkit-transform: scaleX(0.75) rotate(45deg);
        -ms-transform: scaleX(0.75) rotate(45deg);
            transform: scaleX(0.75) rotate(45deg);
    border-width: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after {
  bottom: calc( 100% - 7px);
  -webkit-transform: scaleX(0.75) rotate(-135deg);
      -ms-transform: scaleX(0.75) rotate(-135deg);
          transform: scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
          transform: translateX(-50%) scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after {
  top: calc( 100% - 7px); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
          transform: translateX(-50%) scaleX(0.75) rotate(45deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after {
  left: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after {
  right: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(135deg);
      -ms-transform: scaleY(0.75) rotate(135deg);
          transform: scaleY(0.75) rotate(135deg);
  left: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(-45deg);
      -ms-transform: scaleY(0.75) rotate(-45deg);
          transform: scaleY(0.75) rotate(-45deg);
  right: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  top: calc(20px + (50px / 2)); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer {
  padding-top: 20px; }

.elementor-widget-testimonial-carousel .swiper-slide {
  padding: 20px; }

.elementor-widget-testimonial-carousel .elementor-testimonial__text {
  font-size: 1.3em;
  font-style: italic;
  line-height: 1.5; }

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
  width: 50px;
  height: 50px; }

.elementor-widget-reviews .swiper-slide {
  background-color: white;
  border: 1px solid #e1e8ed;
  border-radius: 5px;
  padding: 0; }

.elementor-widget-reviews .elementor-testimonial__text {
  font-size: 14px;
  line-height: 20px; }

.elementor-widget-reviews .elementor-testimonial__name {
  color: #1c2022; }

.elementor-widget-reviews .elementor-testimonial__title {
  color: #697882;
  font-size: 12.5px;
  font-weight: normal;
  font-family: inherit; }

.elementor-widget-reviews .elementor-testimonial__image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-reviews .elementor-testimonial__image img {
    width: 36px;
    height: 36px; }

.elementor-widget-reviews .elementor-testimonial__icon {
  margin-left: auto;
  font-size: 17px; }
  .elementor-widget-reviews .elementor-testimonial__icon .fa + .fa {
    margin-left: 0.15em; }
  .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon {
    color: var(--e-testimonial-icon-color); }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android {
      --e-testimonial-icon-color: #A4C639; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple {
      --e-testimonial-icon-color: #999999; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance {
      --e-testimonial-icon-color: #1769ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket {
      --e-testimonial-icon-color: #205081; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen {
      --e-testimonial-icon-color: #000000; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious {
      --e-testimonial-icon-color: #3399ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg {
      --e-testimonial-icon-color: #005be2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble {
      --e-testimonial-icon-color: #ea4c89; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope {
      --e-testimonial-icon-color: #ea4335; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook {
      --e-testimonial-icon-color: #3b5998; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr {
      --e-testimonial-icon-color: #0063dc; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare {
      --e-testimonial-icon-color: #2d5be3; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github {
      --e-testimonial-icon-color: #333333; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus {
      --e-testimonial-icon-color: #dd4b39; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz {
      --e-testimonial-icon-color: #7ac142; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram {
      --e-testimonial-icon-color: #262626; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle {
      --e-testimonial-icon-color: #487AA2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium {
      --e-testimonial-icon-color: #00ab6b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup {
      --e-testimonial-icon-color: #ec1c40; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud {
      --e-testimonial-icon-color: #273a4b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki {
      --e-testimonial-icon-color: #F4731C; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest {
      --e-testimonial-icon-color: #bd081c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt {
      --e-testimonial-icon-color: #da552f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit {
      --e-testimonial-icon-color: #ff4500; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss {
      --e-testimonial-icon-color: #f26522; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart {
      --e-testimonial-icon-color: #4CAF50; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype {
      --e-testimonial-icon-color: #00AFF0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat {
      --e-testimonial-icon-color: #fffc00; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud {
      --e-testimonial-icon-color: #ff8800; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify {
      --e-testimonial-icon-color: #2ebd59; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow {
      --e-testimonial-icon-color: #fe7a15; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam {
      --e-testimonial-icon-color: #00adee; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon {
      --e-testimonial-icon-color: #EB4924; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram {
      --e-testimonial-icon-color: #2CA5E0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack, .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack {
      --e-testimonial-icon-color: #1aa1d8; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor {
      --e-testimonial-icon-color: #589442; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr {
      --e-testimonial-icon-color: #35465c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch {
      --e-testimonial-icon-color: #6441A5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter {
      --e-testimonial-icon-color: #1DA1F2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo {
      --e-testimonial-icon-color: #1ab7ea; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk {
      --e-testimonial-icon-color: #45668e; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo {
      --e-testimonial-icon-color: #DD2430; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin {
      --e-testimonial-icon-color: #31A918; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp {
      --e-testimonial-icon-color: #25d366; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress {
      --e-testimonial-icon-color: #21759b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing {
      --e-testimonial-icon-color: #026466; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp {
      --e-testimonial-icon-color: #af0606; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube {
      --e-testimonial-icon-color: #cd201f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px {
      --e-testimonial-icon-color: #0099e5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg {
      fill: var(--e-testimonial-icon-color); }

.elementor-widget-reviews .elementor-testimonial__rating {
  background-image: -webkit-gradient(linear, left top, right top, from(#ffc82c), to(#cccccc));
  background-image: -webkit-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: -o-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: linear-gradient(to right, #ffc82c var(--rating), #cccccc var(--rating));
  font-family: eicons; }

.elementor-widget-reviews .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 15px;
  padding-bottom: 6px; }

.elementor-widget-reviews .elementor-testimonial__image + cite {
  margin-left: 9px; }

.elementor-widget-reviews .elementor-testimonial__separator {
  margin: 0 auto;
  border-top: 0 none;
  border-bottom: 1px solid #e1e8ed;
  height: 0; }

.elementor-widget-reviews .elementor-testimonial__content {
  padding-top: 6px;
  padding-bottom: 15px; }

.elementor-widget-reviews .elementor-testimonial__content, .elementor-widget-reviews .elementor-testimonial__header {
  padding-left: 15px;
  padding-right: 15px; }

.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header {
  border-bottom: 1px solid #e1e8ed; }

.swiper-pagination-bullets {
  color: #fff;
  cursor: default; }

.swiper-slide {
  will-change: transform;
  border-style: solid;
  border-width: 0;
  -webkit-transition-duration: .5s;
       -o-transition-duration: .5s;
          transition-duration: .5s;
  -webkit-transition-property: border, background, -webkit-transform;
  transition-property: border, background, -webkit-transform;
  -o-transition-property: border, background, transform;
  transition-property: border, background, transform;
  transition-property: border, background, transform, -webkit-transform;
  overflow: hidden; }
  .swiper-slide:not(:hover) .e-overlay-animation-fade {
    opacity: 0; }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-up {
    -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
            transform: translateY(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-down {
    -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-right {
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-left {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-zoom-in {
    -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0; }
  .swiper-slide a {
    display: inline; }
    .swiper-slide a.elementor-button {
      display: inline-block; }

.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper,
.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper {
  width: calc( 95% - 40px); }

.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper {
  width: 95%; }

.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container, .elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container {
  padding-bottom: 40px; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next,
.elementor-widget-reviews .elementor-swiper-button-prev,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next {
  left: 0;
  right: unset; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-next,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev,
.elementor-widget-reviews .elementor-swiper-button-next,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev {
  right: 0;
  left: unset; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next, .elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev {
  top: calc( 50% - ( 40px / 2 )); }

.elementor-widget-media-carousel .elementor-swiper-button-prev,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next {
  left: 10px;
  right: unset; }

.elementor-widget-media-carousel .elementor-swiper-button-next,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev {
  right: 10px;
  left: unset; }

.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),
.entry-summary blockquote.elementor-blockquote {
  margin-right: 0;
  margin-left: 0; }

.elementor-widget-blockquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  quotes: none;
  border-left: 0 none;
  border-right: 0 none;
  border-top: 0 none;
  border-bottom: 0 none;
  font-style: normal;
  color: #55595c; }
  .elementor-widget-blockquote blockquote:before, .elementor-widget-blockquote blockquote:after,
  .elementor-widget-blockquote blockquote footer:before,
  .elementor-widget-blockquote blockquote footer:after,
  .elementor-widget-blockquote blockquote cite:before,
  .elementor-widget-blockquote blockquote cite:after {
    content: '';
    content: none; }

.elementor-blockquote {
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-blockquote__author, .elementor-blockquote__content {
    margin-bottom: 0;
    font-style: normal; }
  .elementor-blockquote__author {
    font-weight: bold; }
  .elementor-blockquote footer {
    margin-top: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-blockquote__tweet-button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    color: #1DA1F2;
    -ms-flex-item-align: end;
        align-self: flex-end;
    line-height: 1;
    position: relative;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content; }
    .elementor-blockquote__tweet-button:hover {
      color: #0967a0; }
    .elementor-blockquote__tweet-button span {
      font-weight: 600; }
    .elementor-blockquote__tweet-button i, .elementor-blockquote__tweet-button span {
      vertical-align: middle; }
    .elementor-blockquote__tweet-button i + span,
    .elementor-blockquote__tweet-button svg + span {
      margin-left: 0.5em; }
    .elementor-blockquote__tweet-button svg {
      fill: #1DA1F2;
      height: 1em;
      width: 1em; }
  .elementor-blockquote__tweet-label {
    white-space: pre-wrap; }
  .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button {
    padding: 0.7em 1.2em;
    border-radius: 100em;
    background-color: #1DA1F2;
    color: #fff;
    font-size: 15px; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover {
      background-color: #0967a0;
      color: #fff; }
      .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before {
        border-right-color: #0967a0; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg {
      fill: #fff;
      height: 1em;
      width: 1em; }
  .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button {
    padding: 0;
    width: 2em;
    height: 2em; }
    .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i {
      position: absolute;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%); }
  .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before {
    content: '';
    border: solid 0.5em transparent;
    border-right-color: #1DA1F2;
    position: absolute;
    left: -0.8em;
    top: 50%;
    -webkit-transform: translateY(-50%) scale(1, 0.65);
        -ms-transform: translateY(-50%) scale(1, 0.65);
            transform: translateY(-50%) scale(1, 0.65);
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before {
    right: auto;
    left: -0.8em;
    border-right-color: #1DA1F2;
    border-left-color: transparent; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before {
    border-right-color: #0967a0; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before {
    left: auto;
    right: -0.8em;
    border-right-color: transparent;
    border-left-color: #1DA1F2; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before {
    border-left-color: #0967a0; }
  .elementor-blockquote--skin-boxed .elementor-blockquote {
    background-color: #e6e9ec;
    padding: 30px; }
  .elementor-blockquote--skin-border .elementor-blockquote {
    border-color: #e6e9ec;
    border-style: solid;
    border-left-width: 7px;
    padding-left: 20px; }
  .elementor-blockquote--skin-quotation .elementor-blockquote:before {
    content: '“';
    font-size: 100px;
    color: #e6e9ec;
    font-family: "Times New Roman", Times, serif;
    font-weight: 900;
    line-height: 1;
    display: block;
    height: 0.6em; }
  .elementor-blockquote--skin-quotation .elementor-blockquote__content {
    margin-top: 15px; }
  .elementor-blockquote--align-left .elementor-blockquote__content {
    text-align: left; }
  .elementor-blockquote--align-left .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-blockquote--align-right .elementor-blockquote__content {
    text-align: right; }
  .elementor-blockquote--align-right .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-blockquote--align-center .elementor-blockquote {
    text-align: center; }
    .elementor-blockquote--align-center .elementor-blockquote footer {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__author {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__tweet-button {
      margin-right: auto;
      margin-left: auto; }

.elementor-headline {
  font-size: 43px;
  line-height: 1.2;
  display: block; }
  .elementor-headline-dynamic-text {
    color: var(--dynamic-text-color, #aebcb9); }
  .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper {
    text-align: left; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-wrapper {
    overflow: visible;
    text-align: inherit; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-text {
    z-index: 1; }
  .elementor-headline--style-highlight .elementor-headline-plain-text {
    z-index: 1;
    position: relative; }
  .elementor-headline--style-highlight svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc( 100% + 20px);
    height: calc( 100% + 20px);
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    overflow: visible; }
    .elementor-headline--style-highlight svg path {
      stroke: red;
      stroke-width: 9;
      fill: none;
      opacity: 0;
      stroke-dasharray: 0 1500;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-headline.e-animated svg path {
    -webkit-animation: elementor-headline-dash forwards;
            animation: elementor-headline-dash forwards;
    -webkit-animation-duration: var(--animation-duration, 1.2s);
            animation-duration: var(--animation-duration, 1.2s);
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }
    .elementor-headline.e-animated svg path:nth-of-type(2) {
      -webkit-animation-delay: calc(var(--animation-duration, 1.2s) / 2);
              animation-delay: calc(var(--animation-duration, 1.2s) / 2); }
  .elementor-headline.e-hide-highlight svg path {
    opacity: 1;
    stroke-dasharray: 1500 1500;
    -webkit-animation: hide-highlight 0.4s forwards;
            animation: hide-highlight 0.4s forwards;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }

@-webkit-keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@-webkit-keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

@keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

.elementor-headline-text-wrapper {
  vertical-align: bottom; }

.elementor-headline-dynamic-wrapper {
  display: inline-block;
  position: relative; }
  .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0; }
    .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active {
      position: relative; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-text {
  opacity: 0;
  -webkit-transform-origin: 50% 100%;
      -ms-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
  -webkit-transform: rotateX(180deg);
          transform: rotateX(180deg); }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    -webkit-animation: elementor-headline-flip-in 1.2s;
            animation: elementor-headline-flip-in 1.2s; }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    -webkit-animation: elementor-headline-flip-out 1.2s;
            animation: elementor-headline-flip-out 1.2s; }

@-webkit-keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

@keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper {
  vertical-align: top;
  overflow: hidden; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after {
    /* vertical bar */
    content: '';
    position: absolute;
    left: auto;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    height: 90%;
    width: 1px;
    background-color: #0d0d0d; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after {
    -webkit-animation: elementor-headline-pulse 1s infinite;
            animation: elementor-headline-pulse 1s infinite; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected {
    background-color: var(--typing-selected-bg-color, #0d0d0d); }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected::after {
      visibility: hidden; }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text {
      color: var(--typing-selected-color, var(--dynamic-text-color), #aebcb9); }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active) {
  visibility: hidden; }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
  position: absolute;
  visibility: hidden; }

@-webkit-keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

@keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text {
  -webkit-transform: scaleX(1.0005);
      -ms-transform: scaleX(1.0005);
          transform: scaleX(1.0005);
  opacity: 0; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: translateZ(-20px) rotateX(90deg);
          transform: translateZ(-20px) rotateX(90deg);
  opacity: 0; }
  .elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-swirl-in .4s forwards;
            animation: elementor-headline-swirl-in .4s forwards; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-swirl-out .4s forwards;
            animation: elementor-headline-swirl-out .4s forwards; }

@-webkit-keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@-webkit-keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

@keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text {
  opacity: 0;
  top: .2em; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active {
    top: 0;
    opacity: 1;
    -webkit-animation: elementor-headline-slide-down-in .6s;
            animation: elementor-headline-slide-down-in .6s; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-down-out .6s;
            animation: elementor-headline-slide-down-out .6s; }

@-webkit-keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@-webkit-keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

@keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

.elementor-headline-animation-type-clip .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper::after {
    /* line */
    content: '';
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    width: 2px;
    height: 100%;
    background-color: #0d0d0d; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-drop-in-in .8s;
            animation: elementor-headline-drop-in-in .8s; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-drop-in-out .8s;
            animation: elementor-headline-drop-in-out .8s; }

@-webkit-keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@-webkit-keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

@keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-blinds-in .6s forwards;
            animation: elementor-headline-blinds-in .6s forwards; }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-blinds-out .6s forwards;
            animation: elementor-headline-blinds-out .6s forwards; }

@-webkit-keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@-webkit-keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

@keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
  display: inline-block;
  opacity: 0;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0); }
  .elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-wave-up .6s forwards;
            animation: elementor-headline-wave-up .6s forwards; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-wave-down .6s forwards;
            animation: elementor-headline-wave-down .6s forwards; }

@-webkit-keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

@keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-slide .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-slide-in .6s;
            animation: elementor-headline-slide-in .6s; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-out .6s;
            animation: elementor-headline-slide-out .6s; }

@-webkit-keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@-webkit-keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

@keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-transition: width 0.5s;
  -o-transition: width 0.5s;
  transition: width 0.5s; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper {
  overflow: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-text, .elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  white-space: nowrap; }

.elementor-msie .elementor-headline--style-highlight svg {
  top: auto;
  left: auto;
  -webkit-transform: translate(-100%);
      -ms-transform: translate(-100%);
          transform: translate(-100%); }

/* Animations */
@-webkit-keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }
@keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }

@-webkit-keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

@keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

/* Hotspot Wrapper */
.elementor-widget-hotspot {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: var(--background-align);
      -ms-flex-pack: var(--background-align);
          justify-content: var(--background-align); }
  .elementor-widget-hotspot .elementor-widget-container {
    position: relative;
    display: inline-block;
    width: var(--container-width);
    max-width: var(--container-max-width);
    height: var(--container-height); }
    .elementor-widget-hotspot .elementor-widget-container > img {
      display: block;
      width: var(--image-width, auto);
      height: var(--container-height);
      opacity: var(--opacity, 1); }

/* Each Hotspot */
.e-hotspot {
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  /* Hotspot Button Animations */
  /* End: Hotspot Button Animations */ }
  .e-hotspot--position-left.e-hotspot--position-top {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-left.e-hotspot--position-bottom {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y)); }
  .e-hotspot--position-right.e-hotspot--position-top {
    -webkit-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-right.e-hotspot--position-bottom {
    -webkit-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
        -ms-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
            transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y)); }
  .e-hotspot--active {
    z-index: 2; }
  .e-hotspot__outer-circle, .e-hotspot__inner-circle {
    content: "";
    display: inline-block;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    border-radius: 50%; }
  .e-hotspot__inner-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    background-color: var(--hotspot-color);
    padding: calc( var(--hotspot-size, 18px) / 2); }
  .e-hotspot__outer-circle {
    background-color: var(--hotspot-color);
    padding: var(--hotspot-padding, 4px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot--icon .e-hotspot__button {
    line-height: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    font-size: var(--hotspot-size, 18px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot__icon, .e-hotspot__label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .e-hotspot__icon svg, .e-hotspot__label svg {
      width: var(--hotspot-size, 18px);
      height: auto; }
  .e-hotspot__button {
    cursor: pointer;
    position: relative;
    display: grid;
    grid-auto-flow: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: var(--hotspot-color);
    font-size: var(--hotspot-size, 18px);
    min-width: var(--hotspot-button-width);
    min-height: var(--hotspot-button-height); }
    .e-hotspot__button:before {
      z-index: -2;
      content: "";
      width: 100%;
      height: 100%;
      left: -5px;
      top: -5px;
      position: absolute;
      padding: 5px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .e-hotspot__button svg {
      fill: var(--hotspot-color); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button {
    min-width: var(--hotspot-min-width);
    min-height: var(--hotspot-min-height);
    background-color: var(--hotspot-box-color);
    padding: var(--hotspot-padding, 4px);
    border-radius: var(--hotspot-border-radius, 3px); }
    .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before {
      border-radius: var(--hotspot-border-radius, 3px); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    background-color: var(--hotspot-box-color); }
  .e-hotspot--overlay {
    opacity: 0.7;
    -webkit-transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    transition: opacity 0.2s; }
  .e-hotspot--overlay:hover,
  .e-hotspot--active .e-hotspot--overlay {
    opacity: 1; }
  .e-hotspot--soft-beat {
    -webkit-animation: e-hotspot-soft-beat 0.7s infinite alternate;
            animation: e-hotspot-soft-beat 0.7s infinite alternate;
    -webkit-animation-timing-function: ease;
            animation-timing-function: ease; }
  .e-hotspot--expand .e-hotspot__outer-circle {
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    opacity: 0;
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot--sequenced {
    -webkit-animation: fadeIn 0.3s;
            animation: fadeIn 0.3s;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both; }
  .e-hotspot__direction-mask {
    overflow: hidden;
    position: absolute;
    pointer-events: none; }
  .e-hotspot__tooltip {
    white-space: var(--white-space, nowrap);
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-duration: var(--tooltip-transition-duration, 500ms);
         -o-transition-duration: var(--tooltip-transition-duration, 500ms);
            transition-duration: var(--tooltip-transition-duration, 500ms);
    -webkit-transform-origin: center center;
        -ms-transform-origin: center center;
            transform-origin: center center;
    position: absolute;
    pointer-events: none;
    color: var(--tooltip-text-color, #FFF);
    text-align: var(--tooltip-align);
    min-width: var(--tooltip-min-width);
    padding: var(--tooltip-padding, 8px);
    border-radius: var(--tooltip-border-radius);
    background-color: var(--tooltip-color); }
  .e-hotspot__tooltip p:last-of-type {
    margin-bottom: 0; }
  .e-hotspot__direction-mask .e-hotspot__tooltip {
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    position: static; }
  .e-hotspot--active .e-hotspot__tooltip {
    pointer-events: visible; }
  .e-hotspot--fade-in-out {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--fade-in-out {
    opacity: 1; }
  .e-hotspot--fade-grow {
    opacity: 0;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0); }
  .e-hotspot--active .e-hotspot--fade-grow {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .e-hotspot--tooltip-animation-from-top, .e-hotspot--override-tooltip-animation-from-top {
    -webkit-transform: translate(0, calc(-100% - 1px));
        -ms-transform: translate(0, calc(-100% - 1px));
            transform: translate(0, calc(-100% - 1px)); }
  .e-hotspot--tooltip-animation-from-left, .e-hotspot--override-tooltip-animation-from-left {
    -webkit-transform: translate(calc(-100% - 1px), 0);
        -ms-transform: translate(calc(-100% - 1px), 0);
            transform: translate(calc(-100% - 1px), 0); }
  .e-hotspot--tooltip-animation-from-right, .e-hotspot--override-tooltip-animation-from-right {
    -webkit-transform: translate(calc(100% + 1px), 0);
        -ms-transform: translate(calc(100% + 1px), 0);
            transform: translate(calc(100% + 1px), 0); }
  .e-hotspot--tooltip-animation-from-bottom, .e-hotspot--override-tooltip-animation-from-bottom {
    -webkit-transform: translate(0, calc(100% + 1px));
        -ms-transform: translate(0, calc(100% + 1px));
            transform: translate(0, calc(100% + 1px)); }
  .e-hotspot--fade-direction {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--slide-direction,
  .e-hotspot--active .e-hotspot--fade-direction {
    -webkit-transform: translate(0, 0) scale(1);
        -ms-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
    opacity: 1; }
  .e-hotspot--show-tooltip {
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
    opacity: 1;
    pointer-events: visible;
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

.site-main .menu-navigation-container {
  overflow: visible; }

.elementor-item:before, .elementor-item:after {
  display: block;
  position: absolute;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
       -o-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
          transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  opacity: 0; }


.elementor-item:hover:before,
.elementor-item:hover:after,
.elementor-item:focus:before,
.elementor-item:focus:after,
.elementor-item.highlighted:before,
.elementor-item.highlighted:after,
.elementor-item-active:before,
.elementor-item-active:after {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.e--pointer-double-line .elementor-item:before, .e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:before, .e--pointer-underline .elementor-item:after, .e--pointer-overline .elementor-item:before, .e--pointer-overline .elementor-item:after {
  height: 3px;
  width: 100%;
  left: 0;
  background-color: #55595c;
  z-index: 2; }

.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  height: 0;
  width: 0;
  left: 50%; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 10px; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: 10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: -10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: -10px; }

.e--pointer-double-line.e--animation-none,
.e--pointer-double-line.e--animation-none .elementor-item, .e--pointer-underline.e--animation-none,
.e--pointer-underline.e--animation-none .elementor-item, .e--pointer-overline.e--animation-none,
.e--pointer-overline.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-double-line.e--animation-none:before, .e--pointer-double-line.e--animation-none:after, .e--pointer-double-line.e--animation-none:hover, .e--pointer-double-line.e--animation-none:focus,
  .e--pointer-double-line.e--animation-none .elementor-item:before,
  .e--pointer-double-line.e--animation-none .elementor-item:after,
  .e--pointer-double-line.e--animation-none .elementor-item:hover,
  .e--pointer-double-line.e--animation-none .elementor-item:focus, .e--pointer-underline.e--animation-none:before, .e--pointer-underline.e--animation-none:after, .e--pointer-underline.e--animation-none:hover, .e--pointer-underline.e--animation-none:focus,
  .e--pointer-underline.e--animation-none .elementor-item:before,
  .e--pointer-underline.e--animation-none .elementor-item:after,
  .e--pointer-underline.e--animation-none .elementor-item:hover,
  .e--pointer-underline.e--animation-none .elementor-item:focus, .e--pointer-overline.e--animation-none:before, .e--pointer-overline.e--animation-none:after, .e--pointer-overline.e--animation-none:hover, .e--pointer-overline.e--animation-none:focus,
  .e--pointer-overline.e--animation-none .elementor-item:before,
  .e--pointer-overline.e--animation-none .elementor-item:after,
  .e--pointer-overline.e--animation-none .elementor-item:hover,
  .e--pointer-overline.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-double-line .elementor-item:before, .e--pointer-overline .elementor-item:before {
  content: '';
  top: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  width: 10px;
  left: -20px; }

.e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:after {
  content: '';
  bottom: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  width: 10px;
  inset-inline-start: 100%; }

.e--pointer-framed .elementor-item:before, .e--pointer-framed .elementor-item:after {
  background: transparent;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  border: 3px solid #55595c; }

.e--pointer-framed .elementor-item:before {
  content: ''; }

.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(0.75);
      -ms-transform: scale(0.75);
          transform: scale(0.75); }

.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.25);
      -ms-transform: scale(1.25);
          transform: scale(1.25); }

.e--pointer-framed.e--animation-grow .elementor-item:before, .e--pointer-framed.e--animation-shrink .elementor-item:before {
  -webkit-transition: opacity 0.2s, -webkit-transform 0.4s;
  transition: opacity 0.2s, -webkit-transform 0.4s;
  -o-transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-framed.e--animation-draw .elementor-item:before, .e--pointer-framed.e--animation-draw .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-draw .elementor-item:before {
  border-width: 0 0 3px 3px;
  -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  -o-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }

.e--pointer-framed.e--animation-draw .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 3px 3px 0 0;
  -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  -o-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  width: 100%;
  height: 100%; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:before {
  -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  -o-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  -o-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }

.e--pointer-framed.e--animation-corners .elementor-item:before, .e--pointer-framed.e--animation-corners .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:before {
  border-width: 3px 0 0 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 0 3px 3px 0; }


.e--pointer-framed.e--animation-corners .elementor-item:hover:before,
.e--pointer-framed.e--animation-corners .elementor-item:hover:after,
.e--pointer-framed.e--animation-corners .elementor-item:focus:before,
.e--pointer-framed.e--animation-corners .elementor-item:focus:after,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-corners .elementor-item-active:before,
.e--pointer-framed.e--animation-corners .elementor-item-active:after {
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s;
  -o-transition: opacity 0.002s, width 0.4s, height 0.4s;
  transition: opacity 0.002s, width 0.4s, height 0.4s; }

.e--pointer-framed.e--animation-none,
.e--pointer-framed.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-framed.e--animation-none:before, .e--pointer-framed.e--animation-none:after, .e--pointer-framed.e--animation-none:hover, .e--pointer-framed.e--animation-none:focus,
  .e--pointer-framed.e--animation-none .elementor-item:before,
  .e--pointer-framed.e--animation-none .elementor-item:after,
  .e--pointer-framed.e--animation-none .elementor-item:hover,
  .e--pointer-framed.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-background .elementor-item:before, .e--pointer-background .elementor-item:after {
  content: '';
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }

.e--pointer-background .elementor-item:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }


.e--pointer-background .elementor-item:hover,
.e--pointer-background .elementor-item:focus,
.e--pointer-background .elementor-item.highlighted,
.e--pointer-background .elementor-item-active {
  color: #fff; }

.e--pointer-background.e--animation-grow .elementor-item:before {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5); }


.e--pointer-background.e--animation-grow .elementor-item:hover:before,
.e--pointer-background.e--animation-grow .elementor-item:focus:before,
.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,
.e--pointer-background.e--animation-grow .elementor-item-active:before {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }


.e--pointer-background.e--animation-shrink .elementor-item:hover:before,
.e--pointer-background.e--animation-shrink .elementor-item:focus:before,
.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shrink .elementor-item-active:before {
  -webkit-transition: opacity 0.15s, -webkit-transform 0.4s;
  transition: opacity 0.15s, -webkit-transform 0.4s;
  -o-transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  left: 100%; }

.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 100%; }

.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 100%; }

.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 50%;
  top: 50%; }

.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 50%;
  left: 50%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after, .e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before {
  top: 0;
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after {
  top: 100%;
  bottom: 0; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before {
  bottom: 50%; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after {
  top: 50%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before {
  right: 0;
  left: 100%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  right: 100%;
  left: 0; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before {
  left: 50%; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after {
  right: 50%; }

.e--pointer-background.e--animation-none,
.e--pointer-background.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-background.e--animation-none:before, .e--pointer-background.e--animation-none:after, .e--pointer-background.e--animation-none:hover, .e--pointer-background.e--animation-none:focus,
  .e--pointer-background.e--animation-none .elementor-item:before,
  .e--pointer-background.e--animation-none .elementor-item:after,
  .e--pointer-background.e--animation-none .elementor-item:hover,
  .e--pointer-background.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-text.e--animation-skew .elementor-item:hover,
.e--pointer-text.e--animation-skew .elementor-item:focus {
  -webkit-transform: skew(-8deg);
      -ms-transform: skew(-8deg);
          transform: skew(-8deg); }

.e--pointer-text.e--animation-grow .elementor-item:hover,
.e--pointer-text.e--animation-grow .elementor-item:focus {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.e--pointer-text.e--animation-shrink .elementor-item:hover,
.e--pointer-text.e--animation-shrink .elementor-item:focus {
  -webkit-transform: scale(0.8);
      -ms-transform: scale(0.8);
          transform: scale(0.8); }

.e--pointer-text.e--animation-float .elementor-item:hover,
.e--pointer-text.e--animation-float .elementor-item:focus {
  -webkit-transform: translateY(-8px);
      -ms-transform: translateY(-8px);
          transform: translateY(-8px); }

.e--pointer-text.e--animation-sink .elementor-item:hover,
.e--pointer-text.e--animation-sink .elementor-item:focus {
  -webkit-transform: translateY(8px);
      -ms-transform: translateY(8px);
          transform: translateY(8px); }

.e--pointer-text.e--animation-rotate .elementor-item:hover,
.e--pointer-text.e--animation-rotate .elementor-item:focus {
  -webkit-transform: rotate(6deg);
      -ms-transform: rotate(6deg);
          transform: rotate(6deg); }

.e--pointer-text.e--animation-none,
.e--pointer-text.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-text.e--animation-none:before, .e--pointer-text.e--animation-none:after, .e--pointer-text.e--animation-none:hover, .e--pointer-text.e--animation-none:focus,
  .e--pointer-text.e--animation-none .elementor-item:before,
  .e--pointer-text.e--animation-none .elementor-item:after,
  .e--pointer-text.e--animation-none .elementor-item:hover,
  .e--pointer-text.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.elementor-nav-menu--main .elementor-nav-menu a {
  -webkit-transition: 0.4s;
  -o-transition: 0.4s;
  transition: 0.4s; }
  .elementor-nav-menu--main .elementor-nav-menu a, .elementor-nav-menu--main .elementor-nav-menu a:hover, .elementor-nav-menu--main .elementor-nav-menu a:focus, .elementor-nav-menu--main .elementor-nav-menu a.highlighted {
    padding: 13px 20px; }
  .elementor-nav-menu--main .elementor-nav-menu a.current {
    background: #373a3c;
    color: #fff; }
  .elementor-nav-menu--main .elementor-nav-menu a.disabled {
    background: #55595c;
    color: #a1a6a9; }

.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  width: 12em;
  border-width: 0;
  border-style: solid;
  padding: 0; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up,
.elementor-nav-menu--main .elementor-nav-menu span.scroll-down {
  position: absolute;
  display: none;
  visibility: hidden;
  overflow: hidden;
  background: #fff;
  height: 20px; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  position: absolute;
  top: -2px;
  left: 50%;
  margin-left: -8px;
  width: 0;
  height: 0;
  overflow: hidden;
  border-width: 8px;
  border-style: dashed dashed solid dashed;
  border-color: transparent transparent #494c4f transparent; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  top: 6px;
  border-style: solid dashed dashed dashed;
  border-color: #494c4f transparent transparent transparent; }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg); }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg {
  height: 1em;
  width: 1em; }

.elementor-nav-menu--layout-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
      white-space: nowrap;
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > .scroll-down {
        top: 100% !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > a {
        -webkit-margin-start: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-down, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-up {
        left: var(--e-nav-menu-horizontal-menu-item-margin) !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child) > a {
        -webkit-margin-end: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child):after {
        content: var(--e-nav-menu-divider-content, none);
        border-left-width: var(--e-nav-menu-divider-width, 2px);
        border-left-style: var(--e-nav-menu-divider-style, solid);
        height: var(--e-nav-menu-divider-height, 35%);
        border-color: var(--e-nav-menu-divider-color, #000);
        -ms-flex-item-align: center;
            align-self: center; }

.elementor-nav-menu__align-right .elementor-nav-menu {
  margin-left: auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-left .elementor-nav-menu {
  margin-right: auto;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-center .elementor-nav-menu {
  margin-left: auto;
  margin-right: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  width: 100%; }
  .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }

.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle {
  display: none; }

.elementor-widget-nav-menu .elementor-widget-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.elementor-nav-menu {
  position: relative;
  z-index: 2; }
  .elementor-nav-menu:after {
    content: "\00a0";
    display: block;
    height: 0;
    font: 0px/0 serif;
    clear: both;
    visibility: hidden;
    overflow: hidden; }
  .elementor-nav-menu,
  .elementor-nav-menu ul,
  .elementor-nav-menu li {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: normal;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .elementor-nav-menu ul {
    display: none; }
    .elementor-nav-menu ul ul a,
    .elementor-nav-menu ul ul a:hover,
    .elementor-nav-menu ul ul a:focus,
    .elementor-nav-menu ul ul a:active {
      border-left: 16px solid transparent; }
    .elementor-nav-menu ul ul ul a,
    .elementor-nav-menu ul ul ul a:hover,
    .elementor-nav-menu ul ul ul a:focus,
    .elementor-nav-menu ul ul ul a:active {
      border-left: 24px solid transparent; }
    .elementor-nav-menu ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul a:active {
      border-left: 32px solid transparent; }
    .elementor-nav-menu ul ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul ul a:active {
      border-left: 40px solid transparent; }
  .elementor-nav-menu li,
  .elementor-nav-menu a {
    position: relative; }
  .elementor-nav-menu li {
    border-width: 0; }
  .elementor-nav-menu a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu a, .elementor-nav-menu a:hover, .elementor-nav-menu a:focus {
      padding: 10px 20px;
      line-height: 20px; }
    .elementor-nav-menu a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu a.disabled {
      cursor: not-allowed;
      color: #a1a6a9; }
  .elementor-nav-menu .e-plus-icon:before {
    content: '+'; }
  .elementor-nav-menu .sub-arrow {
    line-height: 1;
    padding: 10px 0 10px 10px;
    margin-top: -10px;
    margin-bottom: -10px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu .sub-arrow i {
      pointer-events: none; }
    .elementor-nav-menu .sub-arrow .fa.fa-chevron-down, .elementor-nav-menu .sub-arrow .fas.fa-chevron-down {
      font-size: 0.7em; }
    .elementor-nav-menu .sub-arrow .e-font-icon-svg {
      height: 1em;
      width: 1em; }
      .elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down {
        height: 0.7em;
        width: 0.7em; }

.elementor-nav-menu--dropdown .elementor-item:hover, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor-sub-item:hover,
.elementor-sub-item:focus,
.elementor-sub-item.highlighted,
.elementor-sub-item.elementor-item-active {
  background-color: #55595c;
  color: #fff; }

.elementor-menu-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 22px;
  padding: 0.25em;
  cursor: pointer;
  border: 0 solid;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.05);
  color: #494c4f; }
  .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none; }
  .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close {
    display: none; }
  .elementor-menu-toggle .e-font-icon-svg {
    fill: #494c4f;
    height: 1em;
    width: 1em; }

.elementor-nav-menu--dropdown {
  background-color: #fff;
  font-size: 13px; }
  .elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-none .elementor-menu-toggle {
    display: none; }
  .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    margin-top: 10px;
    -webkit-transition: max-height 0.3s, -webkit-transform 0.3s;
    transition: max-height 0.3s, -webkit-transform 0.3s;
    -o-transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform-origin: top;
        -ms-transform-origin: top;
            transform-origin: top;
    overflow: auto; }
    .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
      font-size: 0.85em; }
  .elementor-nav-menu--dropdown a {
    color: #494c4f; }
    .elementor-nav-menu--dropdown a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu--dropdown a.disabled {
      color: #b3b3b3; }

ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:hover, ul.elementor-nav-menu--dropdown a:focus {
  text-shadow: none;
  border-left: 8px solid transparent; }

.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  -webkit-transform: scaleY(0);
      -ms-transform: scaleY(0);
          transform: scaleY(0);
  max-height: 0; }

.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1);
  max-height: 100vh; }

.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  position: absolute;
  z-index: 9997; }

/**
 * Mobile Hamburger Menu Breakpoint
 */
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main {
    display: none; } }

@media (min-width: 768px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle {
    display: none; } }

/**
 * Mobile Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle {
    display: none; } }

/**
 * Tablet Hamburger Menu Breakpoint
 */
@media (min-width: 1025px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle {
    display: none; } }

@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
    display: none; } }

/**
 * Tablet Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle {
    display: none; } }

.elementor-gallery__container {
  min-height: 1px; }

.elementor-gallery-item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  border: solid var(--image-border-width) var(--image-border-color);
  border-radius: var(--image-border-radius); }
  .elementor-gallery-item__overlay, .elementor-gallery-item__content {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .elementor-gallery-item__overlay {
    mix-blend-mode: var(--overlay-mix-blend-mode);
    -webkit-transition-duration: var(--overlay-transition-duration);
         -o-transition-duration: var(--overlay-transition-duration);
            transition-duration: var(--overlay-transition-duration);
    -webkit-transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    -o-transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color, -webkit-transform; }
  .elementor-gallery-item__image.e-gallery-image {
    -webkit-transition-duration: var(--image-transition-duration);
         -o-transition-duration: var(--image-transition-duration);
            transition-duration: var(--image-transition-duration);
    -webkit-transition-property: -webkit-filter, -webkit-transform;
    transition-property: -webkit-filter, -webkit-transform;
    -o-transition-property: filter, transform;
    transition-property: filter, transform;
    transition-property: filter, transform, -webkit-filter, -webkit-transform; }
  .elementor-gallery-item__content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: var(--content-justify-content, center);
        -ms-flex-pack: var(--content-justify-content, center);
            justify-content: var(--content-justify-content, center);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: var(--content-text-align);
    padding: var(--content-padding); }
    .elementor-gallery-item__content > div {
      -webkit-transition-duration: var(--content-transition-duration);
           -o-transition-duration: var(--content-transition-duration);
              transition-duration: var(--content-transition-duration); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(2) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
              transition-delay: calc( ( var(--content-transition-delay) / 3 )); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(3) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(4) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3); }
  .elementor-gallery-item__description {
    color: var(--description-text-color, #ffffff);
    width: 100%; }
  .elementor-gallery-item__title {
    color: var(--title-text-color, #ffffff);
    font-weight: bold;
    width: 100%; }

.elementor-gallery__titles-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: var(--titles-container-justify-content, center);
      -ms-flex-pack: var(--titles-container-justify-content, center);
          justify-content: var(--titles-container-justify-content, center);
  margin-bottom: 20px; }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:before {
    border-color: var(--galleries-pointer-bg-color-hover);
    border-width: var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:after {
    border-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before {
    border-width: 0 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after {
    border-width: var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0 0; }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before {
    border-width: var(--galleries-pointer-border-width) 0 0 var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after {
    border-width: 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0; }
  .elementor-gallery__titles-container .e--pointer-underline .elementor-item:after,
  .elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after {
    height: var(--galleries-pointer-border-width); }

.elementor-gallery-title {
  --space-between: 10px;
  cursor: pointer;
  color: #6D7882;
  font-weight: 500;
  position: relative;
  padding: 7px 14px;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s; }
  .elementor-gallery-title--active {
    color: #495157; }
  .elementor-gallery-title:not(:last-child) {
    margin-right: var(--space-between); }

.elementor-gallery-item__title + .elementor-gallery-item__description {
  margin-top: var(--description-margin-top); }

.e-gallery-item.elementor-gallery-item {
  -webkit-transition-property: all;
  -o-transition-property: all;
  transition-property: all; }

.e-gallery-item:hover .elementor-gallery__item-overlay-bg {
  opacity: 1; }

.e-gallery-item:hover .elementor-gallery__item-overlay-content {
  opacity: 1; }
  .e-gallery-item:hover .elementor-gallery__item-overlay-content__title, .e-gallery-item:hover .elementor-gallery__item-overlay-content__description {
    opacity: 1; }

.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom {
  opacity: 1; }

a.elementor-item.elementor-gallery-title {
  color: var(--galleries-title-color-normal); }
  a.elementor-item.elementor-gallery-title:hover, a.elementor-item.elementor-gallery-title.elementor-item-active, a.elementor-item.elementor-gallery-title.highlighted, a.elementor-item.elementor-gallery-title:focus {
    color: var(--galleries-title-color-hover); }
  a.elementor-item.elementor-gallery-title.elementor-item-active {
    color: var(--gallery-title-color-active); }

.elementor-widget-table-of-contents .elementor-toc__header-title {
  color: var(--header-color); }

.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse {
  display: none; }

.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand {
  display: none; }

.elementor-widget-table-of-contents .elementor-widget-container {
  min-height: var(--box-min-height);
  border: var(--box-border-width, 1px) solid var(--box-border-color, #a4afb7);
  border-radius: var(--box-border-radius, 3px);
  background-color: var(--box-background-color);
  -webkit-transition: min-height 0.4s;
  -o-transition: min-height 0.4s;
  transition: min-height 0.4s;
  overflow: hidden; }

.elementor-toc__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: var(--box-padding, 20px);
  background-color: var(--header-background-color);
  border-bottom: var(--separator-width, 1px) solid var(--box-border-color, #a4afb7); }
  .elementor-toc__header-title {
    font-size: 18px;
    margin: 0;
    color: var(--header-color); }

.elementor-toc__toggle-button {
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }
  .elementor-toc__toggle-button i {
    color: var(--toggle-button-color); }
  .elementor-toc__toggle-button svg {
    fill: var(--toggle-button-color);
    height: 1em;
    width: 1em;
    fill: var(--toggle-button-color); }

.elementor-toc__spinner-container {
  text-align: center; }

.elementor-toc__spinner {
  font-size: 2em; }
  .elementor-toc__spinner.e-font-icon-svg {
    height: 1em;
    width: 1em; }

.elementor-toc__body {
  padding: var(--box-padding, 20px);
  max-height: var(--toc-body-max-height);
  overflow-y: auto; }
  .elementor-toc__body::-webkit-scrollbar {
    width: 7px; }
  .elementor-toc__body::-webkit-scrollbar-thumb {
    background-color: #c2cbd2;
    border-radius: 10px; }

.elementor-toc__list-wrapper {
  list-style: none;
  padding: 0; }

.elementor-toc__list-item {
  margin-bottom: 0.5em; }
  .elementor-toc__list-item.elementor-item-active {
    font-weight: bold; }
  .elementor-toc__list-item .elementor-toc__list-wrapper {
    margin-top: 0.5em;
    margin-left: var(--nested-list-indent, 1em); }
  .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }
  .elementor-toc__list-item-text-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-toc__list-item-text-wrapper i, .elementor-toc__list-item-text-wrapper:before {
      margin-right: 8px;
      color: var(--marker-color); }
    .elementor-toc__list-item-text-wrapper svg {
      margin-right: 8px;
      fill: var(--marker-color);
      height: var(--marker-size, 0.5em);
      width: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper i {
      font-size: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper:before {
      font-size: var(--marker-size, 1em); }

.elementor-toc--content-ellipsis .elementor-toc__list-item-text {
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-toc__list-items--collapsible > .elementor-toc__list-wrapper > .elementor-toc__list-item > .elementor-toc__list-wrapper {
  display: none; }

.elementor-toc__heading-anchor {
  position: absolute; }

.elementor-toc__body .elementor-toc__list-item-text {
  color: var(--item-text-color);
  -webkit-text-decoration: var(--item-text-decoration);
          text-decoration: var(--item-text-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }

ol.elementor-toc__list-wrapper {
  counter-reset: item; }
  ol.elementor-toc__list-wrapper .elementor-toc__list-item {
    counter-increment: item; }
    ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before {
      content: counters(item, ".") ". "; }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-tablet_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 1024px) {
  .elementor-toc--minimized-on-tablet .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-mobile_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 767px) {
  .elementor-toc--minimized-on-mobile .elementor-toc__body {
    display: none; } }

.e-lottie__container {
  display: inline-block;
  max-width: var(--lottie-container-max-width);
  width: var(--lottie-container-width);
  opacity: var(--lottie-container-opacity); }
  .e-lottie__container:hover {
    opacity: var(--lottie-container-opacity-hover);
    -webkit-transition-duration: var(--lottie-container-transition-duration-hover);
         -o-transition-duration: var(--lottie-container-transition-duration-hover);
            transition-duration: var(--lottie-container-transition-duration-hover); }
  .e-lottie__container svg,
  .e-lottie__container svg * {
    -webkit-transition: none !important;
    -o-transition: none !important;
    transition: none !important; }

.e-lottie__caption {
  color: var(--caption-color);
  margin-top: var(--caption-margin-top);
  text-align: var(--caption-text-align); }

/* Video_Playlist Widget */
.e-tabs-inner-tabs {
  text-align: left;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 16px; }
  .e-tabs-inner-tabs .e-tab-content {
    padding-top: 32px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper :after {
      content: '';
      width: 100%;
      height: var(--inner-tabs-border-height, 1px);
      background-color: var(--inner-tabs-border-color, #d5dadf);
      position: absolute;
      bottom: 0;
      z-index: -1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title {
      font-weight: 700;
      min-width: 140px;
      line-height: 38px;
      height: 38px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a {
        color: #6d7882;
        padding: 0 36px;
        display: block;
        text-align: center; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active {
        border-bottom: 0 solid transparent;
        border-color: #495157;
        border-width: 0 0 1px 0; }
        .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a {
          color: #495157; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
    display: none;
    padding: 20px; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text {
      color: #556068; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons {
      margin-top: 24px;
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button {
        display: none;
        font-weight: 500;
        line-height: 24px;
        text-decoration: underline;
        border: none;
        background: transparent;
        padding: 0; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text {
      overflow: hidden; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button {
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button {
        display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text {
      height: auto; }

@media (max-width: 767px) {
  .e-tabs-inner-tabs > .e-tab-content:first-child {
    padding-top: 24px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper {
    border-width: 1px 1px 0;
    border-style: solid;
    border-color: #d5dadf; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      font-size: 16px;
      font-weight: 700;
      text-align: center;
      height: 38px;
      line-height: 38px;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      padding: 0 10px;
      cursor: pointer;
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      padding: 20px; } }

.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

.elementor-widget-video-playlist {
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; }
  .elementor-widget-video-playlist .e-tabs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-widget-video-playlist .e-tabs-main-area {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    height: 434px; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 33%; }
  .elementor-widget-video-playlist .e-tabs-header {
    background-color: #ffffff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 16px;
    min-height: 56px;
    border-bottom: 1px solid #d5dadf; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -ms-flex-negative: 0;
          flex-shrink: 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-title {
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      font-weight: 700;
      font-size: 16px;
      padding: 10px 0;
      overflow-wrap: anywhere;
      -webkit-hyphens: auto;
          -ms-hyphens: auto;
              hyphens: auto;
      margin: auto 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      font-size: 14px;
      -ms-flex-negative: 0;
          flex-shrink: 0;
      font-weight: 400;
      line-height: 20px;
      -ms-flex-item-align: start;
          align-self: flex-start;
      padding: 18px 0 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: none;
      margin: auto 0 auto 8px;
      cursor: pointer;
      padding: 0 4px; }
      .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg {
        height: 1em;
        width: 1em; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-up {
      -webkit-transform: rotate(-180deg);
          -ms-transform: rotate(-180deg);
              transform: rotate(-180deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-down {
      -webkit-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
              transform: rotate(0deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper {
    background-color: #ffffff;
    overflow: hidden;
    position: relative;
    height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
      overflow: auto;
      height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title {
      border-color: #d5dadf;
      border-width: 1px 0 0 0;
      font-size: 14px;
      height: 36px;
      padding: 0 16px;
      line-height: 36px;
      margin: 0;
      text-align: left;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      border-width: 0;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title {
      background-color: #ffffff;
      border-color: #d5dadf;
      border-width: 0 0 1px 0;
      cursor: pointer;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      font-size: 14px;
      height: 55px;
      line-height: 55px;
      outline: none;
      padding: 0 16px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        font-size: var(--playlist-item-icon-size, 16px); }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        fill: #ffffff;
        width: var(--playlist-item-icon-size, 16px);
        height: var(--playlist-item-icon-size, 16px); }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path {
          fill: #ffffff; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover {
        background-color: #f1f3f5;
        border-color: #d5dadf;
        border-width: 0 0 1px 0; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
          .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path {
            fill: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text {
          font-size: 14px; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail {
        background-color: #d5dadf;
        position: relative;
        margin: auto 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        width: 75px;
        height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img {
          -o-object-fit: fill;
             object-fit: fill;
          width: 75px;
          height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg {
          position: absolute;
          bottom: 4px;
          right: 4px;
          font-weight: 900; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text {
        font-size: 14px;
        margin: auto 8px;
        text-align: left;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        margin: auto 0;
        vertical-align: middle; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration {
        font-size: 14px;
        margin: auto 0; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched {
        display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      display: none;
      height: 98px;
      position: absolute;
      top: 0;
      width: 100%;
      pointer-events: none;
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      display: none;
      height: 98px;
      position: absolute;
      bottom: 0;
      width: 100%;
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
      pointer-events: none; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top {
      display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom {
      display: block; }
  .elementor-widget-video-playlist .e-tabs-content-wrapper {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    height: 100%;
    position: relative; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay {
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      -webkit-background-size: cover;
              background-size: cover;
      background-position: 50%; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title {
      display: none; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content {
      background-color: #000000;
      display: none;
      height: 100%;
      outline: none; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content > div {
        height: 100%; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe {
        height: 100%;
        max-height: 100% !important;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video {
        height: 100%;
        background-color: #000000; }
  .elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content {
    display: none;
    outline: none; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    height: auto; }
    .elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper {
      border: none;
      height: 38%; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    width: auto;
    height: 62%; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
    max-height: 248px; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title {
      border: none; }
  .elementor-widget-video-playlist .e-tabs-header {
    min-height: 48px; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      margin: 0 6px;
      padding: 14px 0 0; }
  .elementor-widget-video-playlist .e-tab-content {
    border: none;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.elementor-payment-button {
  border: none; }

.elementor-scrolling-tracker {
  --scrolling-track-default-progress-color: #61ce70;
  --scrolling-track-default-color: #eeeeee;
  --scrolling-track-precentage-default-color: $black; }

.elementor-scrolling-tracker-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: var(--horizontal-height, 20px);
  padding: var(--tracker-padding);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top-width: var(--horizontal-border-top-width, 2px);
  border-right-width: var(--horizontal-border-right-width, 2px);
  border-bottom-width: var(--horizontal-border-bottom-width, 2px);
  border-left-width: var(--horizontal-border-left-width, 2px);
  border-style: var(--horizontal-border-style);
  border-color: var(--horizontal-border-color);
  border-radius: var(--border-radius);
  background-color: var(--scrolling-track-default-color);
  direction: var(--direction); }
  .elementor-scrolling-tracker-horizontal .current-progress {
    display: none;
    height: 100%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: var(--progress-border-radius);
    border-top-width: var(--horizontal-progress-border-top-width, 2px);
    border-right-width: var(--horizontal-progress-border-right-width, 2px);
    border-bottom-width: var(--horizontal-progress-border-bottom-width, 2px);
    border-left-width: var(--horizontal-progress-border-left-width, 2px);
    border-style: var(--horizontal-progress-border);
    border-color: var(--horizontal-progress-border-color);
    background-color: var(--scrolling-track-default-progress-color); }
    .elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage {
      inset-inline-end: 0.5em;
      inset-inline-start: auto;
      position: absolute;
      direction: var(--text-direction);
      color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }

.elementor-scrolling-tracker-circular {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: var(--circular-width, 100px);
  height: var(--circular-height, 100px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  -webkit-margin-start: 0;
          margin-inline-start: 0;
  -webkit-margin-end: auto;
          margin-inline-end: auto; }
  .elementor-scrolling-tracker-circular .current-progress-percentage {
    position: absolute;
    color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }
  .elementor-scrolling-tracker-circular svg {
    position: absolute; }
  .elementor-scrolling-tracker-circular .current-progress {
    display: none;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transform-origin: 50% 50%;
        -ms-transform-origin: 50% 50%;
            transform-origin: 50% 50%;
    stroke: var(--circular-color, var(--scrolling-track-default-progress-color));
    fill: transparent;
    stroke-width: var(--circular-progress-width, 4px); }
  .elementor-scrolling-tracker-circular .circle {
    stroke: var(--circular-background-color, var(--scrolling-track-default-color));
    fill: transparent;
    stroke-width: var(--circular-background-width, 4px); }

.elementor-scrolling-tracker-alignment-left {
  margin-left: 0;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-center {
  margin-left: auto;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-right {
  margin-left: auto;
  margin-right: 0; }
/*# sourceMappingURL=frontend.css.map */PK!
��&�&assets/css/app-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
:root{--color-box-shadow-color:rgba(0,0,0,0.05)}.eps-theme-dark{--color-box-shadow-color:rgba(0,0,0,0.1)}:root{--eps-meta-icon-color:#c2cbd2}.eps-theme-dark{--eps-meta-icon-color:#b4b5b7}.e-site-template__meta-data{-webkit-margin-start:.625rem;margin-inline-start:.625rem;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.e-site-template__meta-data:last-of-type{-webkit-margin-end:auto;margin-inline-end:auto}.e-site-template__meta-data:first-of-type{-webkit-margin-start:1rem;margin-inline-start:1rem}.e-site-template__meta-data .eps-icon{-webkit-margin-end:.3125rem;margin-inline-end:.3125rem;color:var(--eps-meta-icon-color);font-size:.8125rem}.e-site-template__placeholder .eps-card__image{-webkit-filter:var(--placeholder-filter,none);filter:var(--placeholder-filter,none)}.e-site-template__overlay-preview{padding-top:calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem);position:relative}.e-site-template__overlay-preview-button{font-weight:700;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:1.875rem;width:100%;background-color:var(--card-background-color-hover);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:.625rem;line-height:1.25rem;--button-background-color:var(--card-headline-color)}.e-site-template__overlay-preview-button:before{content:"";position:absolute;display:block;width:100%;top:0;left:0;padding-top:calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem)}.e-site-template__overlay-preview-button>:not(:first-child){-webkit-margin-start:.3125rem;margin-inline-start:.3125rem}.e-site-template__edit-btn{-webkit-margin-end:1.25rem;margin-inline-end:1.25rem}.e-site-template__edit-btn .eps-icon,.e-site-template__instances .eps-icon{-webkit-margin-end:.3125rem;margin-inline-end:.3125rem}.e-site-template__instances .eps-icon{color:var(--eps-meta-icon-color);font-size:.8125rem}.e-site-template__instances-list{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.e-site-template__edit-conditions{-webkit-margin-start:1rem;margin-inline-start:1rem;color:#58d0f5;text-decoration:underline;font-style:italic}.e-site-template--extended .eps-card__figure{overflow:auto}.e-site-template--extended .eps-card__headline{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.e-site-template--wide{--card-image-aspect-ratio:calc(100% * 0.1235)}.eps-add-new__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:1;--card-image-overlay-background-color:transparent}.e-site-editor__templates .page-header{margin-bottom:.625rem}.e-site-editor__templates .eps-separator{margin-bottom:2.75rem}:root{--e-site-editor-conditions-row-controls-background:#fff;--e-site-editor-input-wrapper-border-color:#f1f3f5;--e-site-editor-input-wrapper-select-color:#556068;--e-site-editor-add-button-background-color:#a4afb7;--e-site-editor-add-button-color-hover-background-color:#6d7882;--e-site-editor-input-wrapper-condition-include-background-color:#a4afb7;--e-site-editor-input-wrapper-condition-exclude-background-color:#c2cbd2;--e-site-editor-input-select2-search-field-color:#495157}.eps-theme-dark{--select2-selection-background-color:tints(600);--e-site-editor-conditions-row-controls-background:#404349;--e-site-editor-input-wrapper-border-color:#404349;--e-site-editor-input-wrapper-select-color:#b4b5b7;--e-site-editor-add-button-background-color:#4c4f56;--e-site-editor-add-button-color-hover-background-color:#404349;--e-site-editor-input-wrapper-condition-include-background-color:#404349;--e-site-editor-input-wrapper-condition-exclude-background-color:#404349;--e-site-editor-input-select2-search-field-color:#fff}.e-site-editor-conditions__header{text-align:center}.e-site-editor-conditions__header-image{display:block;margin:0 auto 2.75rem;width:4.375rem}.e-site-editor-conditions__rows{margin:2.75rem auto;max-width:43.75rem}.e-site-editor-conditions__row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:.75rem}.e-site-editor-conditions__remove-condition{color:#c2cbd2;font-size:1.125rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.e-site-editor-conditions__row-controls{overflow:hidden;margin-left:.625rem;background-color:var(--e-site-editor-conditions-row-controls-background);display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-shadow:0 3px 6px var(--color-box-shadow-color);box-shadow:0 3px 6px var(--color-box-shadow-color);border-radius:.1875rem}.e-site-editor-conditions__row-controls--error{border:1px solid #b01b1b}.e-site-editor-conditions__conflict{text-align:center;margin-top:.3125rem;color:#b01b1b}.e-site-editor-conditions__row-controls-inner{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.e-site-editor-conditions__row-controls-inner div{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor-conditions__add-button-container{text-align:center}.e-site-editor-conditions__add-button{margin-top:2.75rem;background-color:var(--e-site-editor-add-button-background-color);color:#fff;text-transform:uppercase}.e-site-editor-conditions__add-button:hover{background-color:var(--e-site-editor-add-button-color-hover-background-color);color:#fff}.e-site-editor-conditions__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:absolute;bottom:0;right:0;left:0;padding:.5rem;border-top:1px solid var(--hr-color)}.e-site-editor-conditions__input-wrapper{position:relative;border-left-color:var(--e-site-editor-input-wrapper-border-color);border-bottom-color:var(--e-site-editor-input-wrapper-border-color);border-right:1px solid;border-right-color:var(--e-site-editor-input-wrapper-border-color);border-top-color:var(--e-site-editor-input-wrapper-border-color)}.e-site-editor-conditions__input-wrapper:first-child{border:none}.e-site-editor-conditions__input-wrapper select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-size:.75rem;height:2.5rem;border-width:0;padding:0 .625rem;width:100%;position:relative;color:var(--e-site-editor-input-wrapper-select-color);outline:none;background:transparent}.e-site-editor-conditions__input-wrapper:after{font-family:eicons;content:"\e8ad";font-size:.75rem;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:.625rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single{border:none;line-height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:2.5rem;font-size:.75rem}.e-site-editor-conditions__input-wrapper .select2-selection{outline:none;background:transparent;height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-selection__arrow{display:none}.e-site-editor-conditions__input-wrapper--condition-type{position:relative}.e-site-editor-conditions__input-wrapper--condition-type:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:.75rem;font-size:.9375rem;color:#fff;pointer-events:none;z-index:1000}.e-site-editor-conditions__input-wrapper--condition-type:after{color:#fff}.e-site-editor-conditions__input-wrapper--condition-type select{text-transform:uppercase;padding-right:2.125rem;width:7.5rem;font-size:.75rem;color:#fff}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include]:before{content:"\e8cc"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include] select{background-color:var(--e-site-editor-input-wrapper-condition-include-background-color)}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude]:before{content:"\e8cd"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude] select{background-color:var(--e-site-editor-input-wrapper-condition-exclude-background-color)}.select2-search__field{background-color:transparent;color:var(--e-site-editor-input-select2-search-field-color)}.eps-back-button{font-size:14px;margin-bottom:1.5rem}.eps-back-button .eps-icon{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}:root{--indicator-bullet-border-color:#fff}.eps-theme-dark{--indicator-bullet-border-color:#4c4f56}.eps-indicator-bullet{display:block;-ms-flex-negative:0;flex-shrink:0;width:.75rem;height:.75rem;-webkit-box-shadow:0 2px 3px 1px var(--color-box-shadow-color);box-shadow:0 2px 3px 1px var(--color-box-shadow-color);background-color:#d5dadf;border:2px solid var(--indicator-bullet-border-color);border-radius:100%;-webkit-margin-end:.625rem;margin-inline-end:.625rem}.eps-indicator-bullet--active{background-color:#39b54a}.site-editor__preview-iframe{height:50vh;position:relative}.site-editor__preview-iframe__iframe{top:0;left:0;position:absolute;border:none;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;height:100%}.site-editor__preview-iframe--footer,.site-editor__preview-iframe--header{height:15vh}.e-site-editor__content_container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.e-site-editor__content_container_main{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor__content_container_secondary{margin:0 auto;padding-top:2.75rem}PK!�i�0�&�&&assets/css/widget-flip-box-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:1024px){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}PK!���QQ"assets/css/widget-payments.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-payment-button{border:none}PK!\�P���(assets/css/widget-blockquote-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-right:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-left-color:#1da1f2;position:absolute;right:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-right:7px #e6e9ec;border-style:solid;padding-right:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}PK!��c�PP assets/css/widget-sticky.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-sticky--active{z-index:99}PK!i�ee$assets/css/widget-social-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}PK!�m6'��#assets/css/widget-countdown.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}PK!fԡ�=�=assets/css/editor.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
#elementor-panel-get-pro-elements{display:none}.elementor-panel .elementor-control .e-control-error{color:#b01b1b}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-title{width:45%}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-raw-html{width:55%}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}#elementor-panel-global-widget{height:100%}#elementor-panel-global-widget>*{background-color:#fff}#elementor-global-widget-locked-header{-webkit-box-shadow:0 0 8px rgba(0,0,0,.1);box-shadow:0 0 8px rgba(0,0,0,.1)}#elementor-global-widget-locked-header.elementor-nerd-box{padding:40px 25px}#elementor-global-widget-locked-header.elementor-nerd-box .elementor-nerd-box-icon{margin-top:20px}#elementor-global-widget-locked-tools{margin-top:15px;padding:0 20px}.elementor-global-widget-locked-tool{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px 0;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-global-widget-locked-tool .elementor-button{text-transform:uppercase;color:#fff;padding:8px 0;width:70px;font-weight:600}.elementor-global-widget-locked-tool-description{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}#elementor-global-widget-locked-unlink{border-top:1px solid #e6e9ec}#elementor-global-templates .elementor-element{position:relative}#elementor-global-templates .elementor-element:before{position:absolute;font-family:eicons;content:"\e91f";top:5px;left:5px;color:#fcb92c;font-size:10px}#elementor-global-widget-loading{position:absolute;top:0;left:0;height:100%;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}#elementor-global-widget-loading:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-global-widget-loading i{color:#d5dadf;font-size:50px}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields{margin:10px 0}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields .elementor-control{padding:0}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields:last-child{margin-bottom:0}.elementor-repeater-row--form-step .elementor-repeater-row-tools:hover{background-color:#c2cbd2}.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable){background-color:#f1f3f5}.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable):hover{background-color:#e6e9ec}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}#elementor-publish{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-publish__modal .dialog-message{padding:0}#elementor-publish__modal .dialog-buttons-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-publish__modal .dialog-publish{-webkit-transition-property:opacity,-webkit-box-shadow;transition-property:opacity,-webkit-box-shadow;-o-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition-property:box-shadow,opacity,-webkit-box-shadow}#elementor-publish__modal .dialog-publish:not(.elementor-button-success){text-decoration:underline;color:#a4afb7;font-weight:400;width:110px;background-color:transparent}#elementor-publish__modal .dialog-publish:not(.elementor-button-success):hover{color:#6d7882}#elementor-publish__tabs{padding-top:50px}@media (max-width:1439px){#elementor-publish__tabs{width:28%}}#elementor-publish__screen{overflow:auto;padding:50px}.elementor-publish__tab{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;height:110px;padding:20px 15px;cursor:pointer}.elementor-publish__tab.elementor-active{background-color:#fff;-webkit-box-shadow:0 6px 20px rgba(0,0,0,.07);box-shadow:0 6px 20px rgba(0,0,0,.07)}.elementor-publish__tab.elementor-active:after{content:"";position:absolute;top:0;left:0;height:100%;width:5px;background-color:#71d7f7}.elementor-publish__tab__image{width:50px;-ms-flex-negative:0;flex-shrink:0}.elementor-publish__tab__image img{width:100%}.elementor-publish__tab__content{text-align:left;padding-left:15px}.elementor-publish__tab__title{font-size:18px;color:#556068;font-weight:700}#elementor-theme-builder-conditions{margin:40px 0 60px}#elementor-theme-builder-conditions-view{overflow:hidden}#elementor-theme-builder-conditions .elementor-control{background-color:transparent;padding:0}#elementor-theme-builder-conditions .elementor-control:before{content:none}#elementor-theme-builder-conditions .elementor-control select{border-width:0;height:40px;padding:0 14px}#elementor-theme-builder-conditions .elementor-control-type-query{width:100px}#elementor-theme-builder-conditions .elementor-control-type-select .elementor-control-input-wrapper:after{right:10px;color:#495157}#elementor-theme-builder-conditions .elementor-control-type{width:120px}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include]{background-color:#a4afb7}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include] .elementor-control-input-wrapper:before{content:"\e8cc"}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude]{background-color:#c2cbd2}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude] .elementor-control-input-wrapper:before{content:"\e8cd"}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude] select,#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include] select{color:#fff;text-transform:uppercase;padding-left:33px}#elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:13px;font-size:15px;color:#fff}#elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:after{color:#fff}#elementor-theme-builder-conditions .elementor-control-type-select{background-color:#fff}#elementor-theme-builder-conditions .elementor-control-type option{color:#495157}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-right:10px;width:70%;-webkit-box-shadow:0 2px 12px rgba(0,0,0,.08);box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden;border-radius:3px}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child){-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:1px}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) select{border-radius:0}#elementor-theme-builder-conditions .elementor-repeater-fields-wrapper{max-width:700px;width:100%;margin:auto}#elementor-theme-builder-conditions .elementor-repeater-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-top:10px}#elementor-theme-builder-conditions .elementor-control-field{display:block}#elementor-theme-builder-conditions .elementor-control-spinner,#elementor-theme-builder-conditions .elementor-control-title{display:none}#elementor-theme-builder-conditions .elementor-control-input-wrapper{width:100%;max-width:none}#elementor-theme-builder-conditions .select2-selection{height:40px;border:none;border-radius:0}#elementor-theme-builder-conditions .select2-selection__rendered{line-height:40px;padding-left:15px;text-align:left}#elementor-theme-builder-conditions .select2-selection__arrow{height:30px}#elementor-theme-builder-conditions .select2-selection__arrow b{border-top-color:#495157;border-width:4px 4px 0;margin-top:2px;margin-left:-7px}#elementor-theme-builder-conditions .elementor-repeater-tool-remove{font-size:18px;cursor:pointer;color:#a4afb7}#elementor-theme-builder-conditions .elementor-button-wrapper{margin-top:50px}#elementor-theme-builder-conditions .elementor-repeater-add{font-size:14px;padding:12px 26px}.elementor-error .elementor-theme-builder-conditions-repeater-row-controls{border:1px solid rgba(176,27,27,.5)}.elementor-conditions-conflict-message{margin-top:10px;font-size:11px;color:#b01b1b;text-align:left;padding-left:90px}.elementor-conditions-conflict-message a{color:#b01b1b}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item{display:inline-block}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item i{margin-right:5px}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item>*{display:inline-block;line-height:40px}.elementor-conditions-select2-dropdown{border:none;border-radius:0}.elementor-conditions-select2-dropdown .select2-results__message{display:none}.elementor-conditions-select2-dropdown .select2-search--dropdown .select2-search__field{border-width:0 0 1px;border-radius:0}#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-message{text-align:center}#elementor-toast.e-theme-builder-save-toaster .dialog-button{border-radius:3px;text-align:center;font-size:12px;color:#fff;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:27px;background-color:#6d7882;margin:0}#elementor-toast.e-theme-builder-save-toaster .dialog-button:hover{background-color:#39b54a}#elementor-toast.e-theme-builder-save-toaster .dialog-button i{margin-right:5px}#elementor-toast.e-theme-builder-save-toaster .dialog-open_site_editor{margin-bottom:10px}.elementor-control.elementor-control-sitemap_items.elementor-control-type-repeater .elementor-repeater-row-tools .elementor-repeater-row-item-title span{text-transform:capitalize}.elementor-editor-popup .elementor-tab-control-settings a:before{content:"\e922"}#elementor-publish .elementor-popup__display-settings .elementor-control-type-slider .elementor-control-input-wrapper{width:150px}#elementor-publish .elementor-popup__display-settings .elementor-control-input-wrapper{width:80px;max-width:100%}.elementor-popup__display-settings{text-align:left}.elementor-popup__display-settings_controls_group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:60px;background-color:#fff;margin-bottom:10px;padding-right:20px;-webkit-box-shadow:0 6px 20px rgba(0,0,0,.07);box-shadow:0 6px 20px rgba(0,0,0,.07);border-radius:3px}.elementor-popup__display-settings_controls_group:not(.elementor-active) .elementor-control:nth-child(2) h3{color:#a4afb7}.elementor-popup__display-settings_controls_group__icon{width:60px;height:60px;border-right:1px solid #e6e9ec;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-popup__display-settings_controls_group__icon img{width:35px}.elementor-popup__display-settings_controls_group .elementor-control{padding:0;margin:0}.elementor-popup__display-settings_controls_group .elementor-control:nth-child(2){width:230px}.elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) h3{font-size:16px;font-weight:400}.elementor-popup__display-settings_controls_group .elementor-control:not(:nth-child(2)) .elementor-control-title:not(:empty){width:75px}.elementor-popup__display-settings_controls_group .elementor-control:not(:last-child){margin-left:25px}.elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-control-input-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-slider-input{width:45%}.elementor-popup__display-settings_controls_group .elementor-control-type-switcher .elementor-control-field{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-popup__display-settings .elementor-control-type-section{display:none}.elementor-popup__display-settings__group-toggle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}#elementor-popup-timing__controls .select2-selection{min-height:27px}#elementor-popup-timing__controls .select2-selection__rendered{line-height:1}#elementor-popup-timing__controls .select2-selection__choice{font-size:10px}#elementor-popup__timing-controls-group--url .elementor-control-url_url .elementor-control-input-wrapper{width:200px}#elementor-popup__timing-controls-group--sources .elementor-control-sources_sources .elementor-control-input-wrapper{width:300px}#elementor-popup__timing-controls-group--devices .elementor-control-devices_devices .elementor-control-input-wrapper{width:200px}#elementor-popup__timing-controls-group--logged_in .elementor-control-logged_in_roles .elementor-control-input-wrapper{width:195px}#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers .elementor-control-input-wrapper{width:100px}#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers_options .elementor-control-input-wrapper{width:200px}#elementor-popup-settings-introduction{position:absolute;z-index:1;background-color:#fff;color:#556068;-webkit-box-shadow:-4px -3px 20px 1px rgba(0,0,0,.07);box-shadow:-4px -3px 20px 1px rgba(0,0,0,.07);height:110px;width:260px;padding:20px 30px;border-radius:3px}#elementor-popup-settings-introduction:before{content:"";position:absolute;border:solid transparent;border-right:solid #fff;border-width:5px 7px;left:-14px;top:83%}#elementor-popup-settings-introduction .dialog-close-button{top:10px;right:10px;font-size:13px}#elementor-popup-settings-introduction .dialog-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;font-weight:500}#elementor-popup-settings-introduction .dialog-header i{color:#39b54a;font-size:23px;margin-right:10px}#elementor-popup-settings-introduction .dialog-message{margin-top:10px}PK!`B,���#assets/css/widget-forms-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}PK!����+assets/css/widget-global-widget-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}PK!�
�Y�Y"assets/css/widget-carousel.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-left:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-right:20px;margin-left:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-right:0;margin-left:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:left}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-left:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-left:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-left:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}PK!�@F��|�|+assets/css/widget-share-buttons-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-right:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(right,rgba(0,0,0,.12),transparent);background-image:linear-gradient(270deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-right:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-right:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-left:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}PK!��c�PP$assets/css/widget-sticky-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-sticky--active{z-index:99}PK!_#�!!%assets/css/widget-hotspot-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}PK!$����%assets/css/widget-gallery-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-left:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}PK!v�f�+�+� assets/css/frontend-lite.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!P �|�
�
$assets/css/widget-slides-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:767px){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}PK!JWKp�,�,(assets/css/widget-call-to-action.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}PK!%�JM�^�^assets/css/frontend-lite.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    -webkit-transform: scale(0.85);
        -ms-transform: scale(0.85);
            transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    -webkit-transform: translateY(600px);
        -ms-transform: translateY(600px);
            transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    -webkit-transform: translateX(30px);
        -ms-transform: translateX(30px);
            transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    -webkit-transform: translateX(-30px);
        -ms-transform: translateX(-30px);
            transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
            transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1.17);
        -ms-transform: scale(1.17);
            transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    -webkit-transform: translateY(500px);
        -ms-transform: translateY(500px);
            transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    -webkit-transform: scale(1.2) translate(var(--translate));
        -ms-transform: scale(1.2) translate(var(--translate));
            transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: -webkit-gradient(linear, left bottom, left top, from(#feb416), to(#fec449));
  background-image: -webkit-linear-gradient(bottom, #feb416, #fec449);
  background-image: -o-linear-gradient(bottom, #feb416, #fec449);
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-right: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-left: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-right: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  -ms-flex-preferred-size: auto;
      flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%; }

@media (max-width: 1024px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

@media (max-width: 767px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    right: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-left: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: 1025px) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: 1024px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, left); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  right: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s;
  transition: background-color 0.4s, -webkit-transform 0s;
  -o-transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s, -webkit-transform 0s;
  text-align: left; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, auto);
  right: var(--side-cart-alignment-right, 0);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  top: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, left); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  -o-transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: var(--side-cart-alignment-transform, translateX(100%));
      -ms-transform: var(--side-cart-alignment-transform, translateX(100%));
          transform: var(--side-cart-alignment-transform, translateX(100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  -ms-flex-item-align: end;
      align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: -webkit-max-content auto;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      -webkit-margin-start: 5px;
              margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    -ms-flex-item-align: var(--price-quantity-position--align-self, end);
        align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-left: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 20px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-right: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: 767px) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    -webkit-transform: translateY(50%);
        -ms-transform: translateY(50%);
            transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      left: 0;
      right: auto;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: background-color 0.4s, -webkit-transform 0s;
      transition: background-color 0.4s, -webkit-transform 0s;
      -o-transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s, -webkit-transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    -o-transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    -webkit-transform: translateY(-10px);
        -ms-transform: translateY(-10px);
            transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      -webkit-box-flex: 75%;
          -ms-flex: 75%;
              flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      -webkit-box-flex: 20%;
          -ms-flex: 20%;
              flex: 20%;
      text-align: right; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: left;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-left: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                  transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-right: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-left: 15px;
            font-size: 12px; }
            @media (max-width: 1024px) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        -webkit-box-align: var(--place-order-title-alignment, stretch);
            -ms-flex-align: var(--place-order-title-alignment, stretch);
                align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: right; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: left; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-left: 1rem;
        padding-right: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                  transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: left; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, left); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: left;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: var(--place-order-title-alignment, stretch);
          -ms-flex-align: var(--place-order-title-alignment, stretch);
              align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-right: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: right;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        -webkit-box-flex: 2;
            -ms-flex: 2;
                flex: 2;
        padding-right: 30px; }
        @media (max-width: 1024px) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-right: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: left;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-right: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-left: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: 768px) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-left: 0;
          padding-right: 0; }
      @media (min-width: 767px) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: 768px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-left: 0;
        padding-right: 0; } }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-left: 0;
          padding-right: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-left: 0;
      padding-right: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-left: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
         -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
            transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      -webkit-padding-start: 0;
              padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: right;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-left: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-left: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-left: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-left: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
              transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: left;
    position: absolute;
    margin-left: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    -webkit-margin-start: 0;
            margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
              transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: var(--tabs-container-justify-content, space-between);
        -ms-flex-pack: var(--tabs-container-justify-content, space-between);
            justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: 767px) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-left: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-right: 0;
        border-right-width: 0; }
      @media (max-width: 767px) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0; }

.e-sticky-right-column--active {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      -webkit-transform: translateY(-5%);
          -ms-transform: translateY(-5%);
              transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: right; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: right; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: right; }

.elementor-search-form {
  display: block;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    color: #55595c;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    -webkit-transition: color 0.2s, background 0.2s;
    -o-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    -ms-flex-negative: 0;
        flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      -webkit-transform: scale(0);
          -ms-transform: scale(0);
              transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-author-box__avatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-right: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      -o-object-fit: cover;
         object-fit: cover; }
  .elementor-author-box__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  -ms-flex-item-align: center;
      align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: none;
  background-color: transparent;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    right: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
       -o-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
          transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  -webkit-transition-duration: 1s;
       -o-transition-duration: 1s;
          transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
      -ms-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
          transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover; }

.elementor-motion-effects-perspective {
  -webkit-perspective: 1200px;
          perspective: 1200px; }
/*# sourceMappingURL=frontend-lite.css.map */PK!.�@��q�q&assets/css/widget-nav-menu-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 3px 3px 0;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:3px 0 0 3px;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 3px 0 0}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;right:auto;left:0;border-width:0 0 3px 3px}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;right:50%;margin-right:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{right:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 10px 10px 0;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b3b3}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-right:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:767px){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:768px){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:1025px){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:1024px){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}PK!΢�Jn.n.assets/css/app-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
:root {
  --color-box-shadow-color: rgba(0, 0, 0, 0.05); }

.eps-theme-dark {
  --color-box-shadow-color: rgba(0, 0, 0, 0.1); }

:root {
  --eps-meta-icon-color: #c2cbd2; }

.eps-theme-dark {
  --eps-meta-icon-color: #b4b5b7; }

.e-site-template__meta-data {
  -webkit-margin-start: 0.625rem;
          margin-inline-start: 0.625rem;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.6875rem; }
  .e-site-template__meta-data:last-of-type {
    -webkit-margin-end: auto;
            margin-inline-end: auto; }
  .e-site-template__meta-data:first-of-type {
    -webkit-margin-start: 1rem;
            margin-inline-start: 1rem; }
  .e-site-template__meta-data .eps-icon {
    -webkit-margin-end: 0.3125rem;
            margin-inline-end: 0.3125rem;
    color: var(--eps-meta-icon-color);
    font-size: 0.8125rem; }

.e-site-template__placeholder .eps-card__image {
  -webkit-filter: var(--placeholder-filter, none);
          filter: var(--placeholder-filter, none); }

.e-site-template__overlay-preview {
  padding-top: calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem);
  position: relative; }
  .e-site-template__overlay-preview-button {
    font-weight: bold;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    height: 1.875rem;
    width: 100%;
    background-color: var(--card-background-color-hover);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 0.625rem;
    line-height: 1.25rem;
    --button-background-color: var(--card-headline-color); }
    .e-site-template__overlay-preview-button::before {
      content: '';
      position: absolute;
      display: block;
      width: 100%;
      top: 0;
      left: 0;
      padding-top: calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem); }
    .e-site-template__overlay-preview-button > :not(:first-child) {
      -webkit-margin-start: 0.3125rem;
              margin-inline-start: 0.3125rem; }

.e-site-template__edit-btn {
  -webkit-margin-end: 1.25rem;
          margin-inline-end: 1.25rem; }
  .e-site-template__edit-btn .eps-icon {
    -webkit-margin-end: 0.3125rem;
            margin-inline-end: 0.3125rem; }

.e-site-template__instances .eps-icon {
  -webkit-margin-end: 0.3125rem;
          margin-inline-end: 0.3125rem;
  color: var(--eps-meta-icon-color);
  font-size: 0.8125rem; }

.e-site-template__instances-list {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap; }

.e-site-template__edit-conditions {
  -webkit-margin-start: 1rem;
          margin-inline-start: 1rem;
  color: #58d0f5;
  text-decoration: underline;
  font-style: italic; }

.e-site-template--extended .eps-card__figure {
  overflow: auto; }

.e-site-template--extended .eps-card__headline {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0; }

.e-site-template--wide {
  --card-image-aspect-ratio: calc(100% * 0.1235); }

.eps-add-new__overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  opacity: 1;
  --card-image-overlay-background-color: transparent; }

.e-site-editor__templates .page-header {
  margin-bottom: 0.625rem; }

.e-site-editor__templates .eps-separator {
  margin-bottom: 2.75rem; }

:root {
  --e-site-editor-conditions-row-controls-background: #fff;
  --e-site-editor-input-wrapper-border-color: #f1f3f5;
  --e-site-editor-input-wrapper-select-color: #556068;
  --e-site-editor-add-button-background-color: #a4afb7;
  --e-site-editor-add-button-color-hover-background-color: #6d7882;
  --e-site-editor-input-wrapper-condition-include-background-color:
	#a4afb7;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
	#c2cbd2;
  --e-site-editor-input-select2-search-field-color: #495157
; }

.eps-theme-dark {
  --select2-selection-background-color: tints(600);
  --e-site-editor-conditions-row-controls-background: #404349;
  --e-site-editor-input-wrapper-border-color: #404349;
  --e-site-editor-input-wrapper-select-color: #b4b5b7;
  --e-site-editor-add-button-background-color: #4c4f56;
  --e-site-editor-add-button-color-hover-background-color: #404349;
  --e-site-editor-input-wrapper-condition-include-background-color:
			#404349;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
			#404349;
  --e-site-editor-input-select2-search-field-color: #fff

; }

.e-site-editor-conditions__header {
  text-align: center; }

.e-site-editor-conditions__header-image {
  display: block;
  margin: 0 auto 2.75rem;
  width: 4.375rem; }

.e-site-editor-conditions__rows {
  margin: 2.75rem auto;
  max-width: 43.75rem; }

.e-site-editor-conditions__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-top: 0.75rem; }

.e-site-editor-conditions__remove-condition {
  color: #c2cbd2;
  font-size: 1.125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.e-site-editor-conditions__row-controls {
  overflow: hidden;
  margin-left: 0.625rem;
  background-color: var(--e-site-editor-conditions-row-controls-background);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-shadow: 0 3px 6px var(--color-box-shadow-color);
          box-shadow: 0 3px 6px var(--color-box-shadow-color);
  border-radius: 0.1875rem; }
  .e-site-editor-conditions__row-controls--error {
    border: 1px solid #b01b1b; }

.e-site-editor-conditions__conflict {
  text-align: center;
  margin-top: 0.3125rem;
  color: #b01b1b; }

.e-site-editor-conditions__row-controls-inner {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .e-site-editor-conditions__row-controls-inner div {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }

.e-site-editor-conditions__add-button-container {
  text-align: center; }

.e-site-editor-conditions__add-button {
  margin-top: 2.75rem;
  background-color: var(--e-site-editor-add-button-background-color);
  color: #fff;
  text-transform: uppercase; }
  .e-site-editor-conditions__add-button:hover {
    background-color: var(--e-site-editor-add-button-color-hover-background-color);
    color: #fff; }

.e-site-editor-conditions__footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--hr-color); }

.e-site-editor-conditions__input-wrapper {
  position: relative;
  border-right: 1px solid;
  border-color: var(--e-site-editor-input-wrapper-border-color); }
  .e-site-editor-conditions__input-wrapper:first-child {
    border: none; }
  .e-site-editor-conditions__input-wrapper select {
    -moz-appearance: none;
         appearance: none;
    -webkit-appearance: none;
    font-size: 0.75rem;
    height: 2.5rem;
    border-width: 0;
    padding: 0 0.625rem;
    width: 100%;
    position: relative;
    color: var(--e-site-editor-input-wrapper-select-color);
    outline: none;
    background: transparent; }
  .e-site-editor-conditions__input-wrapper:after {
    font-family: eicons;
    content: '\e8ad';
    font-size: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 0.625rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single {
    border: none;
    line-height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 2.5rem;
    font-size: 0.75rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection {
    outline: none;
    background: transparent;
    height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection__arrow {
    display: none; }

.e-site-editor-conditions__input-wrapper--condition-type {
  position: relative; }
  .e-site-editor-conditions__input-wrapper--condition-type:before {
    font-family: eicons;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 0.75rem;
    font-size: 0.9375rem;
    color: #fff;
    pointer-events: none;
    z-index: 1000; }
  .e-site-editor-conditions__input-wrapper--condition-type:after {
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type select {
    text-transform: uppercase;
    padding-right: 2.125rem;
    width: 7.5rem;
    font-size: 0.75rem;
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"]:before {
    content: '\e8cc'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-include-background-color); }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"]:before {
    content: '\e8cd'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-exclude-background-color); }

.select2-search__field {
  background-color: transparent;
  color: var(--e-site-editor-input-select2-search-field-color); }

.eps-back-button {
  font-size: 14px;
  margin-bottom: 1.5rem; }
  .eps-back-button .eps-icon {
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg); }

:root {
  --indicator-bullet-border-color: #fff; }

.eps-theme-dark {
  --indicator-bullet-border-color: #4c4f56; }

.eps-indicator-bullet {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.75rem;
  height: 0.75rem;
  -webkit-box-shadow: 0 2px 3px 1px var(--color-box-shadow-color);
          box-shadow: 0 2px 3px 1px var(--color-box-shadow-color);
  background-color: #d5dadf;
  border: 2px solid var(--indicator-bullet-border-color);
  border-radius: 100%;
  -webkit-margin-end: 0.625rem;
          margin-inline-end: 0.625rem; }
  .eps-indicator-bullet--active {
    background-color: #39b54a; }

.site-editor__preview-iframe {
  height: 50vh;
  position: relative; }
  .site-editor__preview-iframe__iframe {
    top: 0;
    left: 0;
    position: absolute;
    border: none;
    -webkit-transform-origin: 0 0;
        -ms-transform-origin: 0 0;
            transform-origin: 0 0;
    height: 100%; }
  .site-editor__preview-iframe--header, .site-editor__preview-iframe--footer {
    height: 15vh; }

.e-site-editor__content_container {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100%;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.e-site-editor__content_container_main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.e-site-editor__content_container_secondary {
  margin: 0 auto;
  padding-top: 2.75rem; }
/*# sourceMappingURL=app-rtl.css.map */PK!��v�
�
.assets/css/widget-progress-tracker-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}PK!�)�B5�5�$assets/css/frontend-lite-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-left:0}.woocommerce div.product.elementor .quantity+.button{margin-right:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;left:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-right:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,right)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-left:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;left:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:right}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,0);right:var(--side-cart-alignment-right,auto);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,right)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(-100%));-ms-transform:var(--side-cart-alignment-transform,translateX(-100%));transform:var(--side-cart-alignment-transform,translateX(-100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-right:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;left:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-left:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;right:0;left:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:right;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,right)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-right:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-left:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-right:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-right:1rem;padding-left:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:right}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,right)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:right;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:left;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-left:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-left:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-left:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:right;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-left:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-right:0;padding-left:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 0 8px 20px}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-right:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:right;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:left;width:75%;padding:0;padding-right:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-right:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-right:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-right:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:right;position:absolute;margin-right:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-right:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-left:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:left}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:left}.elementor-post-navigation .elementor-post-navigation__next a{float:left}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-left:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;left:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!C�W�??#assets/css/widget-posts-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;right:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}PK!�wb�U�U%assets/css/modules/code-highlight.cssnu�[���/* PrismJS 1.23.0
https://prismjs.com/download.html#themes=prism-twilight&prism-tomorrow&prism-solarizedlightt&prism-okaidia&prism-dark&prism-solid&prism-copt-to-clipboard */
/* Replacing pre[class*=language-] { margin:.5em 0 } to: margin: 0 , word wrap */
/* Replacing .prismjs-twilight pre[data-line] {padding:1em 0 1em 3em;} to: {padding:1em;}*/
.prismjs-dark code[class*=language-], .prismjs-dark pre[class*=language-] {
  color: #fff;
  background: 0 0;
  text-shadow: 0 -.1em .2em #000;
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-dark pre[class*=language-] {
  background: #4c3f33; }

.prismjs-dark pre[class*=language-] {
  padding: 1em;
  margin: 0;
  overflow: auto;
  border: .3em solid #7a6651;
  border-radius: .5em;
  box-shadow: 1px 1px .5em #000 inset; }

.prismjs-dark :not(pre) > code[class*=language-] {
  padding: .15em .2em .05em;
  border-radius: .3em;
  border: .13em solid #7a6651;
  box-shadow: 1px 1px .3em -.1em #000 inset;
  white-space: normal; }

.prismjs-dark .token.cdata, .prismjs-dark .token.doctype, .prismjs-dark .token.prolog, .token.comment {
  color: #997f66; }

.prismjs-dark .token.punctuation {
  opacity: .7; }

.prismjs-dark .token.namespace {
  opacity: .7; }

.prismjs-dark .token.boolean, .prismjs-dark .token.constant, .prismjs-dark .token.number, .prismjs-dark .token.property, .prismjs-dark .token.symbol, .prismjs-dark .token.tag {
  color: #d1939e; }

.prismjs-dark .token.attr-name, .prismjs-dark .token.builtin, .prismjs-dark .token.char, .prismjs-dark .token.inserted, .prismjs-dark .token.selector, .prismjs-dark .token.string {
  color: #bce051; }

.prismjs-dark .language-css .token.string, .prismjs-dark .style .token.string, .prismjs-dark .token.entity, .prismjs-dark .token.operator, .prismjs-dark .token.url, .token.variable {
  color: #f4b73d; }

.prismjs-dark .token.atrule, .prismjs-dark .token.attr-value, .prismjs-dark .token.keyword {
  color: #d1939e; }

.prismjs-dark .token.important, .prismjs-dark .token.regex {
  color: #e90; }

.prismjs-dark .token.bold, .prismjs-dark .token.important {
  font-weight: 700; }

.prismjs-dark .token.italic {
  font-style: italic; }

.prismjs-dark .token.entity {
  cursor: help; }

.prismjs-dark .token.deleted {
  color: red; }

.prismjs-default code[class*=language-], .prismjs-default pre[class*=language-] {
  color: #000;
  background: 0 0;
  text-shadow: 0 1px #fff;
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-default code[class*=language-] ::-moz-selection, .prismjs-default code[class*=language-]::-moz-selection, .prismjs-default pre[class*=language-] ::-moz-selection, .prismjs-default pre[class*=language-]::-moz-selection {
  text-shadow: none;
  background: #b3d4fc; }

.prismjs-default code[class*=language-] ::selection, .prismjs-default code[class*=language-]::selection, .prismjs-default pre[class*=language-] ::selection, .prismjs-default pre[class*=language-]::selection {
  text-shadow: none;
  background: #b3d4fc; }

@media print {
  .prismjs-default code[class*=language-], .prismjs-default pre[class*=language-] {
    text-shadow: none; } }

.prismjs-default pre[class*=language-] {
  padding: 1em;
  margin: 0;
  overflow: auto; }

.prismjs-default :not(pre) > code[class*=language-], .prismjs-default pre[class*=language-] {
  background: #f5f2f0; }

.prismjs-default :not(pre) > code[class*=language-] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal; }

.prismjs-default .token.cdata, .prismjs-default .token.comment, .prismjs-default .token.doctype, .prismjs-default .token.prolog {
  color: #708090; }

.prismjs-default .token.punctuation {
  color: #999; }

.prismjs-default .token.namespace {
  opacity: .7; }

.prismjs-default .token.boolean, .prismjs-default .token.constant, .prismjs-default .token.deleted, .prismjs-default .token.number, .prismjs-default .token.property, .prismjs-default .token.symbol, .prismjs-default .token.tag {
  color: #905; }

.prismjs-default .token.attr-name, .prismjs-default .token.builtin, .prismjs-default .token.char, .prismjs-default .token.inserted, .prismjs-default .token.selector, .prismjs-default .token.string {
  color: #690; }

.prismjs-default .language-css .token.string, .prismjs-default .style .token.string, .prismjs-default .token.entity, .prismjs-default .token.operator, .prismjs-default .token.url {
  color: #9a6e3a;
  background: rgba(255, 255, 255, 0.5); }

.prismjs-default .token.atrule, .prismjs-default .token.attr-value, .prismjs-default .token.keyword {
  color: #07a; }

.prismjs-default .token.class-name, .prismjs-default .token.function {
  color: #dd4a68; }

.prismjs-default .token.important, .prismjs-default .token.regex, .prismjs-default .token.variable {
  color: #e90; }

.prismjs-default .token.bold, .prismjs-default .token.important {
  font-weight: 700; }

.prismjs-default .token.italic {
  font-style: italic; }

.prismjs-default .token.entity {
  cursor: help; }

.prismjs-okaidia code[class*=language-], .prismjs-okaidia pre[class*=language-] {
  color: #f8f8f2;
  background: 0 0;
  text-shadow: 0 1px rgba(0, 0, 0, 0.3);
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-okaidia pre[class*=language-] {
  padding: 1em;
  margin: 0;
  overflow: auto;
  border-radius: .3em; }

.prismjs-okaidia :not(pre) > code[class*=language-], .prismjs-okaidia pre[class*=language-] {
  background: #272822; }

.prismjs-okaidia :not(pre) > code[class*=language-] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal; }

.prismjs-okaidia .token.cdata, .prismjs-okaidia .token.comment, .prismjs-okaidia .token.doctype, .prismjs-okaidia .token.prolog {
  color: #8292a2; }

.prismjs-okaidia .token.punctuation {
  color: #f8f8f2; }

.prismjs-okaidia .token.namespace {
  opacity: .7; }

.prismjs-okaidia .token.constant, .prismjs-okaidia .token.deleted, .prismjs-okaidia .token.property, .prismjs-okaidia .token.symbol, .prismjs-okaidia .token.tag {
  color: #f92672; }

.prismjs-okaidia .token.boolean, .prismjs-okaidia .token.number {
  color: #ae81ff; }

.prismjs-okaidia .token.attr-name, .prismjs-okaidia .token.builtin, .prismjs-okaidia .token.char, .prismjs-okaidia .token.inserted, .prismjs-okaidia .token.selector, .prismjs-okaidia .token.string {
  color: #a6e22e; }

.prismjs-okaidia .language-css .token.string, .prismjs-okaidia .style .token.string, .prismjs-okaidia .token.entity, .prismjs-okaidia .token.operator, .prismjs-okaidia .token.url, .prismjs-okaidia .token.variable {
  color: #f8f8f2; }

.prismjs-okaidia .token.atrule, .prismjs-okaidia .token.attr-value, .prismjs-okaidia .token.class-name, .prismjs-okaidia .token.function {
  color: #e6db74; }

.prismjs-okaidia .token.keyword {
  color: #66d9ef; }

.prismjs-okaidia .token.important, .prismjs-okaidia .token.regex {
  color: #fd971f; }

.prismjs-okaidia .token.bold, .prismjs-okaidia .token.important {
  font-weight: 700; }

.prismjs-okaidia .token.italic {
  font-style: italic; }

.prismjs-okaidia .token.entity {
  cursor: help; }

.prismjs-solarizedlight code[class*=language-], .prismjs-solarizedlight pre[class*=language-] {
  color: #657b83;
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-solarizedlight code[class*=language-] ::-moz-selection, .prismjs-solarizedlight code[class*=language-]::-moz-selection, .prismjs-solarizedlight pre[class*=language-] ::-moz-selection, .prismjs-solarizedlight pre[class*=language-]::-moz-selection {
  background: #073642; }

.prismjs-solarizedlight code[class*=language-] ::selection, .prismjs-solarizedlight code[class*=language-]::selection, .prismjs-solarizedlight pre[class*=language-] ::selection, .prismjs-solarizedlight pre[class*=language-]::selection {
  background: #073642; }

.prismjs-solarizedlight pre[class*=language-] {
  padding: 1em;
  margin: 0;
  overflow: auto;
  border-radius: .3em; }

.prismjs-solarizedlight :not(pre) > code[class*=language-], .prismjs-solarizedlight pre[class*=language-] {
  background-color: #fdf6e3; }

.prismjs-solarizedlight :not(pre) > code[class*=language-] {
  padding: .1em;
  border-radius: .3em; }

.prismjs-solarizedlight .token.cdata, .prismjs-solarizedlight .token.comment, .prismjs-solarizedlight .token.doctype, .prismjs-solarizedlight .token.prolog {
  color: #93a1a1; }

.prismjs-solarizedlight .token.punctuation {
  color: #586e75; }

.prismjs-solarizedlight .token.namespace {
  opacity: .7; }

.prismjs-solarizedlight .token.boolean, .prismjs-solarizedlight .token.constant, .prismjs-solarizedlight .token.deleted, .prismjs-solarizedlight .token.number, .prismjs-solarizedlight .token.property, .prismjs-solarizedlight .token.symbol, .token.tag {
  color: #268bd2; }

.prismjs-solarizedlight .token.attr-name, .prismjs-solarizedlight .token.builtin, .prismjs-solarizedlight .token.char, .prismjs-solarizedlight .token.inserted, .prismjs-solarizedlight .token.selector, .prismjs-solarizedlight .token.string, .prismjs-solarizedlight .token.url {
  color: #2aa198; }

.prismjs-solarizedlight .token.entity {
  color: #657b83;
  background: #eee8d5; }

.prismjs-solarizedlight .token.atrule, .prismjs-solarizedlight .token.attr-value, .prismjs-solarizedlight .token.keyword {
  color: #859900; }

.prismjs-solarizedlight .token.class-name, .prismjs-solarizedlight .token.function {
  color: #b58900; }

.prismjs-solarizedlight .token.important, .prismjs-solarizedlight .token.regex, .prismjs-solarizedlight .token.variable {
  color: #cb4b16; }

.prismjs-solarizedlight .token.bold, .prismjs-solarizedlight .token.important {
  font-weight: 700; }

.prismjs-solarizedlight .token.italic {
  font-style: italic; }

.prismjs-solarizedlight .token.entity {
  cursor: help; }

.prismjs-tomorrow code[class*=language-], .prismjs-tomorrow pre[class*=language-] {
  color: #ccc;
  background: 0 0;
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-tomorrow pre[class*=language-] {
  padding: 1em;
  margin: 0;
  overflow: auto; }

.prismjs-tomorrow :not(pre) > code[class*=language-], .prismjs-tomorrow pre[class*=language-] {
  background: #2d2d2d; }

.prismjs-tomorrow :not(pre) > code[class*=language-] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal; }

.prismjs-tomorrow .token.block-comment, .prismjs-tomorrow .token.cdata, .prismjs-tomorrow .token.comment, .prismjs-tomorrow .token.doctype, .prismjs-tomorrow .token.prolog {
  color: #999; }

.prismjs-tomorrow .token.punctuation {
  color: #ccc; }

.prismjs-tomorrow .token.attr-name, .prismjs-tomorrow .token.deleted, .prismjs-tomorrow .token.namespace, .prismjs-tomorrow .token.tag {
  color: #e2777a; }

.prismjs-tomorrow .token.function-name {
  color: #6196cc; }

.prismjs-tomorrow .token.boolean, .prismjs-tomorrow .token.function, .prismjs-tomorrow .token.number {
  color: #f08d49; }

.prismjs-tomorrow .token.class-name, .prismjs-tomorrow .token.constant, .prismjs-tomorrow .token.property, .prismjs-tomorrow .token.symbol {
  color: #f8c555; }

.prismjs-tomorrow .token.atrule, .prismjs-tomorrow .token.builtin, .prismjs-tomorrow .token.important, .prismjs-tomorrow .token.keyword, .prismjs-tomorrow .token.selector {
  color: #cc99cd; }

.prismjs-tomorrow .token.attr-value, .prismjs-tomorrow .token.char, .prismjs-tomorrow .token.regex, .prismjs-tomorrow .token.string, .prismjs-tomorrow .token.variable {
  color: #7ec699; }

.prismjs-tomorrow .token.entity, .prismjs-tomorrow .token.operator, .prismjs-tomorrow .token.url {
  color: #67cdcc; }

.prismjs-tomorrow .token.bold, .prismjs-tomorrow .token.important {
  font-weight: 700; }

.prismjs-tomorrow .token.italic {
  font-style: italic; }

.prismjs-tomorrow .token.entity {
  cursor: help; }

.prismjs-tomorrow .token.inserted {
  color: green; }

.prismjs-twilight code[class*=language-], .prismjs-twilight pre[class*=language-] {
  color: #fff;
  background: 0 0;
  font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;
  font-size: 1em;
  text-align: left;
  text-shadow: 0 -.1em .2em #000;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none; }

.prismjs-twilight :not(pre) > code[class*=language-], .prismjs-twilight pre[class*=language-] {
  background: #141414; }

.prismjs-twilight pre[class*=language-] {
  border-radius: .5em;
  border: .3em solid #545454;
  box-shadow: 1px 1px .5em #000 inset;
  margin: 0;
  overflow: auto;
  padding: 1em; }

.prismjs-twilight pre[class*=language-]::-moz-selection {
  background: #27292a; }

.prismjs-twilight pre[class*=language-]::selection {
  background: #27292a; }

.prismjs-twilight code[class*=language-] ::-moz-selection, .prismjs-twilight code[class*=language-]::-moz-selection, .prismjs-twilight pre[class*=language-] ::-moz-selection, .prismjs-twilight pre[class*=language-]::-moz-selection {
  text-shadow: none;
  background: rgba(237, 237, 237, 0.15); }

.prismjs-twilight code[class*=language-] ::selection, .prismjs-twilight code[class*=language-]::selection, .prismjs-twilight pre[class*=language-] ::selection, .prismjs-twilight pre[class*=language-]::selection {
  text-shadow: none;
  background: rgba(237, 237, 237, 0.15); }

.prismjs-twilight :not(pre) > code[class*=language-] {
  border-radius: .3em;
  border: .13em solid #545454;
  box-shadow: 1px 1px .3em -.1em #000 inset;
  padding: .15em .2em .05em;
  white-space: normal; }

.prismjs-twilight .token.cdata, .prismjs-twilight .token.comment, .prismjs-twilight .token.doctype, .prismjs-twilight .token.prolog {
  color: #777; }

.prismjs-twilight .token.punctuation {
  opacity: .7; }

.prismjs-twilight .token.namespace {
  opacity: .7; }

.prismjs-twilight .token.boolean, .prismjs-twilight .token.deleted, .prismjs-twilight .token.number, .prismjs-twilight .token.tag {
  color: #ce6849; }

.prismjs-twilight .token.builtin, .prismjs-twilight .token.constant, .prismjs-twilight .token.keyword, .prismjs-twilight .token.property, .prismjs-twilight .token.selector, .prismjs-twilight .token.symbol {
  color: #f9ed99; }

.prismjs-twilight .language-css .token.string, .prismjs-twilight .style .token.string, .prismjs-twilight .token.attr-name, .prismjs-twilight .token.attr-value, .prismjs-twilight .token.char, .prismjs-twilight .token.entity, .prismjs-twilight .token.inserted, .prismjs-twilight .token.operator, .prismjs-twilight .token.string, .prismjs-twilight .token.url, .prismjs-twilight .token.variable {
  color: #909e6a; }

.prismjs-twilight .token.atrule {
  color: #7385a5; }

.prismjs-twilight .token.important, .prismjs-twilight .token.regex {
  color: #e8c062; }

.prismjs-twilight .token.bold, .prismjs-twilight .token.important {
  font-weight: 700; }

.prismjs-twilight .token.italic {
  font-style: italic; }

.prismjs-twilight .token.entity {
  cursor: help; }

.prismjs-twilight pre[data-line] {
  padding: 1em;
  position: relative; }

.prismjs-twilight .language-markup .token.attr-name, .prismjs-twilight .language-markup .token.punctuation, .prismjs-twilight .language-markup .token.tag {
  color: #ac885c; }

.prismjs-twilight .token {
  position: relative;
  z-index: 1; }

.prismjs-twilight .line-highlight {
  background: rgba(84, 84, 84, 0.25);
  background: linear-gradient(to right, rgba(84, 84, 84, 0.1) 70%, rgba(84, 84, 84, 0));
  border-bottom: 1px dashed #545454;
  border-top: 1px dashed #545454;
  left: 0;
  line-height: inherit;
  margin-top: .75em;
  padding: inherit 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  white-space: pre;
  z-index: 0; }

.prismjs-twilight .line-highlight:before, .prismjs-twilight .line-highlight[data-end]:after {
  background-color: #8693a6;
  border-radius: 999px;
  box-shadow: 0 1px #fff;
  color: #f4f1ef;
  content: attr(data-start);
  font: bold 65%/1.5 sans-serif;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  position: absolute;
  text-align: center;
  text-shadow: none;
  top: .4em;
  vertical-align: .3em; }

.prismjs-twilight .line-highlight[data-end]:after {
  bottom: .4em;
  content: attr(data-end);
  top: auto; }

.copy-to-clipboard div.code-toolbar {
  position: relative; }

.copy-to-clipboard div.code-toolbar > .toolbar {
  position: absolute;
  top: .3em;
  right: .2em;
  transition: opacity .3s ease-in-out;
  opacity: 0; }

.copy-to-clipboard div.code-toolbar:hover > .toolbar {
  opacity: 1; }

.copy-to-clipboard div.code-toolbar:focus-within > .toolbar {
  opacity: 1; }

.copy-to-clipboard div.code-toolbar > .toolbar .toolbar-item {
  display: inline-block; }

.copy-to-clipboard div.code-toolbar > .toolbar a {
  cursor: pointer; }

.copy-to-clipboard div.code-toolbar > .toolbar button {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  padding: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none; }

.copy-to-clipboard div.code-toolbar > .toolbar a, .copy-to-clipboard div.code-toolbar > .toolbar button, .copy-to-clipboard div.code-toolbar > .toolbar span {
  color: #bbb;
  font-size: .8em;
  padding: 0 .5em;
  background: #f5f2f0;
  background: rgba(224, 224, 224, 0.2);
  box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2);
  border-radius: .5em; }

.copy-to-clipboard div.code-toolbar > .toolbar a:focus, div.code-toolbar > .toolbar a:hover, div.code-toolbar > .toolbar button:focus, div.code-toolbar > .toolbar button:hover, div.code-toolbar > .toolbar span:focus, div.code-toolbar > .toolbar span:hover {
  color: inherit;
  text-decoration: none; }

:not(.copy-to-clipboard) > div.code-toolbar > .toolbar {
  display: none; }

.word-wrap code[class*="language-"],
.word-wrap pre[class*="language-"] {
  white-space: pre-wrap !important; }

.elementor-widget-code-highlight pre {
  direction: ltr; }

/* Overriding padding for pre tag when line-numbers off and highlight-line on*/
.prismjs-twilight pre:not([data-line=""]):not(.line-numbers) {
  padding: 0.8em 0 1em 2em; }

.prismjs-tomorrow pre:not([data-line=""]):not(.line-numbers),
.prismjs-solarizedlight pre:not([data-line=""]):not(.line-numbers),
.prismjs-okaidia pre:not([data-line=""]):not(.line-numbers),
.prismjs-dark pre:not([data-line=""]):not(.line-numbers),
.prismjs-default pre:not([data-line=""]):not(.line-numbers) {
  padding: 1em 0 1em 2em; }

/* PrismJS 1.23.0 */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em; }

.line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: rgba(153, 122, 102, 0.08);
  background: linear-gradient(to right, rgba(153, 122, 102, 0.1) 70%, rgba(153, 122, 102, 0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre; }

@media print {
  .line-highlight {
    -webkit-print-color-adjust: exact;
    color-adjust: exact; } }

.line-highlight:before, .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: rgba(153, 122, 102, 0.4);
  color: #f4f1ef;
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px #fff; }

.line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em; }

.line-numbers .line-highlight:after, .line-numbers .line-highlight:before {
  content: none; }

pre[id].linkable-line-numbers span.line-numbers-rows {
  pointer-events: all; }

pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
  cursor: pointer; }

pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
  background-color: rgba(128, 128, 128, 0.2); }

/* PrismJS 1.23.0 */
pre[class*=language-].line-numbers {
  position: relative;
  padding-left: 3.8em;
  counter-reset: linenumber; }

pre[class*=language-].line-numbers > code {
  position: relative;
  white-space: inherit; }

.line-numbers .line-numbers-rows {
  position: absolute;
  pointer-events: none;
  top: 0;
  font-size: 100%;
  left: -3.8em;
  width: 3em;
  letter-spacing: -1px;
  border-right: 1px solid #999;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.line-numbers-rows > span {
  display: block;
  counter-increment: linenumber; }

.line-numbers-rows > span:before {
  content: counter(linenumber);
  color: #999;
  display: block;
  padding-right: .8em;
  text-align: right; }

/*# sourceMappingURL=code-highlight.css.map */PK!�m��2assets/css/modules/forms/submissions/admin-rtl.cssnu�[���@media screen and (max-width: 782px) {
  .e-form-submissions-list-table {
    /* Don't judge me... (need to override WordPress style). */ }
    .e-form-submissions-list-table.wp-list-table tr:not(.inline-edit-row):not(.no-items) > td.bulk-checkbox-column:not(.check-column) {
      width: 2.2em !important; } }

.e-form-submissions-list-table .bulk-checkbox-column {
  padding: 9px 0 0 3px;
  width: 2.2em; }

.e-form-submissions-list-table .column-actions {
  width: 11%; }
  .e-form-submissions-list-table .column-actions i {
    font-size: 15px; }

.e-form-submissions-list-table .column-id {
  width: 7%; }

.e-form-submissions-list-table .column-page {
  width: 17%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden; }

.e-form-submissions-list-table .column-date {
  width: 17%; }

.e-form-submissions-list-table .column-form {
  width: 20%; }

.e-form-submissions-referer-icon {
  font-size: 18px; }

.e-form-submissions-main .postbox {
  border: none; }

.e-form-submissions-main .postbox-header {
  border: 1px solid #D4D4D4;
  border-bottom: none;
  padding: 8px; }

.e-form-submissions-main__header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center; }

#e-form-submissions .eicon-success {
  color: #5cb85c; }

#e-form-submissions .eicon-error {
  color: #d9534f; }

#e-form-submissions .misc-pub-section {
  line-height: 1.3rem; }

#e-form-submissions .e-form-submissions-item-table {
  border: none;
  border-collapse: collapse; }
  #e-form-submissions .e-form-submissions-item-table td:first-child {
    width: 150px;
    background: #f7f7f7;
    font-weight: 700; }
    @media screen and (max-width: 782px) {
      #e-form-submissions .e-form-submissions-item-table td:first-child {
        /* Must set !important because wordpress set also !important. */
        width: 90px !important; } }
  #e-form-submissions .e-form-submissions-item-table td {
    border: 1px solid #D4D4D4;
    padding: 15px; }
  #e-form-submissions .e-form-submissions-item-table input:not([type=checkbox]):not([type=radio]), #e-form-submissions .e-form-submissions-item-table textarea, #e-form-submissions .e-form-submissions-item-table select {
    width: 100%;
    max-width: 400px; }

#e-form-submissions .e-export-button {
  margin-right: 15px; }
  @media screen and (max-width: 782px) {
    #e-form-submissions .e-export-button {
      display: none; } }

#e-form-submissions .tablenav .actions select {
  width: 10rem; }

#e-form-submissions .tablenav .actions .select2-container {
  float: left;
  margin-right: 6px; }
  #e-form-submissions .tablenav .actions .select2-container .select2-selection__arrow {
    height: 30px; }
  #e-form-submissions .tablenav .actions .select2-container .select2-selection--single {
    height: 30px;
    border: 1px solid #7e8993; }

input[type="search"].select2-search__field {
  line-height: 1; }

.e-form-submissions-search {
  position: relative; }
  .e-form-submissions-search__spinner {
    position: absolute;
    left: 12px;
    font-size: 11px;
    height: 100%;
    display: flex;
    align-items: center;
    color: var(--wp-admin-theme-color-darker-20, #005a87); }
  .e-form-submissions-search:focus-within .e-form-submissions-search__spinner, .e-form-submissions-search:hover .e-form-submissions-search__spinner {
    left: 30px; }

.e-form-submissions-action-log--success .e-form-submissions-action-log__message {
  background: #dff0d8;
  border-color: #5cb85c; }

.e-form-submissions-action-log--error .e-form-submissions-action-log__message {
  background: #f2dede;
  border-color: #d9534f; }

.e-form-submissions-action-log:not(:last-child) {
  border-bottom: 1px solid #D4D4D4; }

.e-form-submissions-action-log__label {
  display: inline-block;
  padding-left: 15px; }

.e-form-submissions-action-log__icon {
  display: inline-block;
  padding-left: 3px; }

.e-form-submissions-action-log__date {
  font-size: 12px;
  color: #818a91; }

.e-form-submissions-action-log__message {
  padding: 10px;
  font-size: 12px;
  color: #373a3c;
  background: #eceeef;
  border-right: 4px solid #818a91; }

.e-form-submissions-value-label:not(:last-child) {
  display: block;
  margin-bottom: 10px; }

/*# sourceMappingURL=admin-rtl.css.map */PK!���ww6assets/css/modules/forms/submissions/admin-rtl.min.cssnu�[���@media screen and (max-width:782px){.e-form-submissions-list-table.wp-list-table tr:not(.inline-edit-row):not(.no-items)>td.bulk-checkbox-column:not(.check-column){width:2.2em!important}}.e-form-submissions-list-table .bulk-checkbox-column{padding:9px 0 0 3px;width:2.2em}.e-form-submissions-list-table .column-actions{width:11%}.e-form-submissions-list-table .column-actions i{font-size:15px}.e-form-submissions-list-table .column-id{width:7%}.e-form-submissions-list-table .column-page{width:17%;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.e-form-submissions-list-table .column-date{width:17%}.e-form-submissions-list-table .column-form{width:20%}.e-form-submissions-referer-icon{font-size:18px}.e-form-submissions-main .postbox{border:none}.e-form-submissions-main .postbox-header{border:1px solid #d4d4d4;border-bottom:none;padding:8px}.e-form-submissions-main__header{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#e-form-submissions .eicon-success{color:#5cb85c}#e-form-submissions .eicon-error{color:#d9534f}#e-form-submissions .misc-pub-section{line-height:1.3rem}#e-form-submissions .e-form-submissions-item-table{border:none;border-collapse:collapse}#e-form-submissions .e-form-submissions-item-table td:first-child{width:150px;background:#f7f7f7;font-weight:700}@media screen and (max-width:782px){#e-form-submissions .e-form-submissions-item-table td:first-child{width:90px!important}}#e-form-submissions .e-form-submissions-item-table td{border:1px solid #d4d4d4;padding:15px}#e-form-submissions .e-form-submissions-item-table input:not([type=checkbox]):not([type=radio]),#e-form-submissions .e-form-submissions-item-table select,#e-form-submissions .e-form-submissions-item-table textarea{width:100%;max-width:400px}#e-form-submissions .e-export-button{margin-right:15px}@media screen and (max-width:782px){#e-form-submissions .e-export-button{display:none}}#e-form-submissions .tablenav .actions select{width:10rem}#e-form-submissions .tablenav .actions .select2-container{float:left;margin-right:6px}#e-form-submissions .tablenav .actions .select2-container .select2-selection__arrow{height:30px}#e-form-submissions .tablenav .actions .select2-container .select2-selection--single{height:30px;border:1px solid #7e8993}input[type=search].select2-search__field{line-height:1}.e-form-submissions-search{position:relative}.e-form-submissions-search__spinner{position:absolute;left:12px;font-size:11px;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--wp-admin-theme-color-darker-20,#005a87)}.e-form-submissions-search:focus-within .e-form-submissions-search__spinner,.e-form-submissions-search:hover .e-form-submissions-search__spinner{left:30px}.e-form-submissions-action-log--success .e-form-submissions-action-log__message{background:#dff0d8;border-color:#5cb85c}.e-form-submissions-action-log--error .e-form-submissions-action-log__message{background:#f2dede;border-color:#d9534f}.e-form-submissions-action-log:not(:last-child){border-bottom:1px solid #d4d4d4}.e-form-submissions-action-log__label{display:inline-block;padding-left:15px}.e-form-submissions-action-log__icon{display:inline-block;padding-left:3px}.e-form-submissions-action-log__date{font-size:12px;color:#818a91}.e-form-submissions-action-log__message{padding:10px;font-size:12px;color:#373a3c;background:#eceeef;border-right:4px solid #818a91}.e-form-submissions-value-label:not(:last-child){display:block;margin-bottom:10px}PK!��s�yy2assets/css/modules/forms/submissions/admin.min.cssnu�[���@media screen and (max-width:782px){.e-form-submissions-list-table.wp-list-table tr:not(.inline-edit-row):not(.no-items)>td.bulk-checkbox-column:not(.check-column){width:2.2em!important}}.e-form-submissions-list-table .bulk-checkbox-column{padding:9px 0 0 3px;width:2.2em}.e-form-submissions-list-table .column-actions{width:11%}.e-form-submissions-list-table .column-actions i{font-size:15px}.e-form-submissions-list-table .column-id{width:7%}.e-form-submissions-list-table .column-page{width:17%;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden}.e-form-submissions-list-table .column-date{width:17%}.e-form-submissions-list-table .column-form{width:20%}.e-form-submissions-referer-icon{font-size:18px}.e-form-submissions-main .postbox{border:none}.e-form-submissions-main .postbox-header{border:1px solid #d4d4d4;border-bottom:none;padding:8px}.e-form-submissions-main__header{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#e-form-submissions .eicon-success{color:#5cb85c}#e-form-submissions .eicon-error{color:#d9534f}#e-form-submissions .misc-pub-section{line-height:1.3rem}#e-form-submissions .e-form-submissions-item-table{border:none;border-collapse:collapse}#e-form-submissions .e-form-submissions-item-table td:first-child{width:150px;background:#f7f7f7;font-weight:700}@media screen and (max-width:782px){#e-form-submissions .e-form-submissions-item-table td:first-child{width:90px!important}}#e-form-submissions .e-form-submissions-item-table td{border:1px solid #d4d4d4;padding:15px}#e-form-submissions .e-form-submissions-item-table input:not([type=checkbox]):not([type=radio]),#e-form-submissions .e-form-submissions-item-table select,#e-form-submissions .e-form-submissions-item-table textarea{width:100%;max-width:400px}#e-form-submissions .e-export-button{margin-left:15px}@media screen and (max-width:782px){#e-form-submissions .e-export-button{display:none}}#e-form-submissions .tablenav .actions select{width:10rem}#e-form-submissions .tablenav .actions .select2-container{float:left;margin-right:6px}#e-form-submissions .tablenav .actions .select2-container .select2-selection__arrow{height:30px}#e-form-submissions .tablenav .actions .select2-container .select2-selection--single{height:30px;border:1px solid #7e8993}input[type=search].select2-search__field{line-height:1}.e-form-submissions-search{position:relative}.e-form-submissions-search__spinner{position:absolute;right:12px;font-size:11px;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--wp-admin-theme-color-darker-20,#005a87)}.e-form-submissions-search:focus-within .e-form-submissions-search__spinner,.e-form-submissions-search:hover .e-form-submissions-search__spinner{right:30px}.e-form-submissions-action-log--success .e-form-submissions-action-log__message{background:#dff0d8;border-color:#5cb85c}.e-form-submissions-action-log--error .e-form-submissions-action-log__message{background:#f2dede;border-color:#d9534f}.e-form-submissions-action-log:not(:last-child){border-bottom:1px solid #d4d4d4}.e-form-submissions-action-log__label{display:inline-block;padding-right:15px}.e-form-submissions-action-log__icon{display:inline-block;padding-right:3px}.e-form-submissions-action-log__date{font-size:12px;color:#818a91}.e-form-submissions-action-log__message{padding:10px;font-size:12px;color:#373a3c;background:#eceeef;border-left:4px solid #818a91}.e-form-submissions-value-label:not(:last-child){display:block;margin-bottom:10px}PK!�mm���.assets/css/modules/forms/submissions/admin.cssnu�[���@media screen and (max-width: 782px) {
  .e-form-submissions-list-table {
    /* Don't judge me... (need to override WordPress style). */ }
    .e-form-submissions-list-table.wp-list-table tr:not(.inline-edit-row):not(.no-items) > td.bulk-checkbox-column:not(.check-column) {
      width: 2.2em !important; } }

.e-form-submissions-list-table .bulk-checkbox-column {
  padding: 9px 0 0 3px;
  width: 2.2em; }

.e-form-submissions-list-table .column-actions {
  width: 11%; }
  .e-form-submissions-list-table .column-actions i {
    font-size: 15px; }

.e-form-submissions-list-table .column-id {
  width: 7%; }

.e-form-submissions-list-table .column-page {
  width: 17%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden; }

.e-form-submissions-list-table .column-date {
  width: 17%; }

.e-form-submissions-list-table .column-form {
  width: 20%; }

.e-form-submissions-referer-icon {
  font-size: 18px; }

.e-form-submissions-main .postbox {
  border: none; }

.e-form-submissions-main .postbox-header {
  border: 1px solid #D4D4D4;
  border-bottom: none;
  padding: 8px; }

.e-form-submissions-main__header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center; }

#e-form-submissions .eicon-success {
  color: #5cb85c; }

#e-form-submissions .eicon-error {
  color: #d9534f; }

#e-form-submissions .misc-pub-section {
  line-height: 1.3rem; }

#e-form-submissions .e-form-submissions-item-table {
  border: none;
  border-collapse: collapse; }
  #e-form-submissions .e-form-submissions-item-table td:first-child {
    width: 150px;
    background: #f7f7f7;
    font-weight: 700; }
    @media screen and (max-width: 782px) {
      #e-form-submissions .e-form-submissions-item-table td:first-child {
        /* Must set !important because wordpress set also !important. */
        width: 90px !important; } }
  #e-form-submissions .e-form-submissions-item-table td {
    border: 1px solid #D4D4D4;
    padding: 15px; }
  #e-form-submissions .e-form-submissions-item-table input:not([type=checkbox]):not([type=radio]), #e-form-submissions .e-form-submissions-item-table textarea, #e-form-submissions .e-form-submissions-item-table select {
    width: 100%;
    max-width: 400px; }

#e-form-submissions .e-export-button {
  margin-left: 15px; }
  @media screen and (max-width: 782px) {
    #e-form-submissions .e-export-button {
      display: none; } }

#e-form-submissions .tablenav .actions select {
  width: 10rem; }

#e-form-submissions .tablenav .actions .select2-container {
  float: left;
  margin-right: 6px; }
  #e-form-submissions .tablenav .actions .select2-container .select2-selection__arrow {
    height: 30px; }
  #e-form-submissions .tablenav .actions .select2-container .select2-selection--single {
    height: 30px;
    border: 1px solid #7e8993; }

input[type="search"].select2-search__field {
  line-height: 1; }

.e-form-submissions-search {
  position: relative; }
  .e-form-submissions-search__spinner {
    position: absolute;
    right: 12px;
    font-size: 11px;
    height: 100%;
    display: flex;
    align-items: center;
    color: var(--wp-admin-theme-color-darker-20, #005a87); }
  .e-form-submissions-search:focus-within .e-form-submissions-search__spinner, .e-form-submissions-search:hover .e-form-submissions-search__spinner {
    right: 30px; }

.e-form-submissions-action-log--success .e-form-submissions-action-log__message {
  background: #dff0d8;
  border-color: #5cb85c; }

.e-form-submissions-action-log--error .e-form-submissions-action-log__message {
  background: #f2dede;
  border-color: #d9534f; }

.e-form-submissions-action-log:not(:last-child) {
  border-bottom: 1px solid #D4D4D4; }

.e-form-submissions-action-log__label {
  display: inline-block;
  padding-right: 15px; }

.e-form-submissions-action-log__icon {
  display: inline-block;
  padding-right: 3px; }

.e-form-submissions-action-log__date {
  font-size: 12px;
  color: #818a91; }

.e-form-submissions-action-log__message {
  padding: 10px;
  font-size: 12px;
  color: #373a3c;
  background: #eceeef;
  border-left: 4px solid #818a91; }

.e-form-submissions-value-label:not(:last-child) {
  display: block;
  margin-bottom: 10px; }

/*# sourceMappingURL=admin.css.map */PK!����*assets/css/modules/custom-code-rtl.min.cssnu�[���@-webkit-keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.wrap.elementor-admin-page-license form.elementor-license-box{max-width:600px;background:#fff;margin:20px 0;padding:20px}.wrap.elementor-admin-page-license form.elementor-license-box h3{border-bottom:1px solid #eee;padding:20px;margin:-20px -20px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wrap.elementor-admin-page-license form.elementor-license-box h3 span{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-right:5px}.wrap.elementor-admin-page-license form.elementor-license-box h3 small{float:left;font-size:13px;font-weight:400}.wrap.elementor-admin-page-license form.elementor-license-box label{display:block;font-size:1.3em;font-weight:600;margin:1em 0}.wrap.elementor-admin-page-license form.elementor-license-box .button{height:30px;margin-right:15px;margin-bottom:0}.wrap.elementor-admin-page-license form.elementor-license-box p.description{margin:10px 0}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom{padding-bottom:15px;border-bottom:1px solid #eee}.wrap.elementor-admin-page-license .elementor-box-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin-top:30px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link{color:#72777c;margin-left:15px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover{color:inherit}.fixed .column-elementor_library_type,.fixed .column-instances{width:10%}.fixed .elementor-shortcode-input{min-width:235px}@media (min-width:768px) and (max-width:1440px){.fixed .column-shortcode{width:25%}.fixed .elementor-shortcode-input{min-width:100%}}#available-widgets [class*=elementor-template] .widget-title:before{content:"\e801";font-family:eicon;font-size:17px}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}.elementor-button-spinner.error:before{content:"\f335";color:red}span.font-variations-count{display:inline-block;vertical-align:top;margin:1px 0 0 5px;padding:0 5px;min-width:7px;height:17px;border-radius:11px;background-color:#d4dffb;color:#4278b2;font-size:9px;line-height:17px;text-align:center;z-index:26}.post-type-elementor_font div#elementor-font-custommetabox{background:none;border:0}.post-type-elementor_font div#elementor-font-custommetabox button.handlediv{display:none}.post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside{margin:0;padding:0}.post-type-elementor_font div#elementor-font-custommetabox h2.hndle{padding:0}.post-type-elementor_font #minor-publishing-actions,.post-type-elementor_font #misc-publishing-actions,.post-type-elementor_font #tagsdiv-elementor_font_type,.post-type-elementor_font div#elementor-font-custommetabox .handle-actions{display:none}.elementor-metabox-content .repeater-block{background:#fff;color:#6d7882;padding:20px;margin-bottom:2px}.elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible{padding-bottom:0;margin-bottom:0}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row{display:inline-block}.elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row{display:none}.elementor-metabox-content .repeater-block .repeater-title{cursor:pointer}.elementor-metabox-content .row-font-label{padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;text-transform:capitalize}.elementor-metabox-content .row-font-label li{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .row-font-label li span.label{font-weight:500;padding-left:10px}.elementor-metabox-content .row-font-label li.row-font-style,.elementor-metabox-content .row-font-label li.row-font-weight{max-width:180px}.elementor-metabox-content .row-font-label li.row-font-actions{max-width:200px;text-align:left}.elementor-metabox-content .repeater-content{margin:0}.elementor-metabox-content .repeater-content .repeater-content-top{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:20px;line-height:28px}.elementor-metabox-content .repeater-content .repeater-content-top>div{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-metabox-content .repeater-content .repeater-content-top p{margin:0;display:inline-block}.elementor-metabox-content .repeater-content .repeater-content-top p label{font-weight:500;padding-left:10px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select{max-width:180px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar{max-width:200px;text-align:left}.elementor-metabox-content .repeater-content .repeater-content-bottom{background-color:#f7f7f7;padding:20px 40px;margin:0 -20px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;padding:10px 20px;margin-bottom:10px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.05);box-shadow:0 3px 5px rgba(0,0,0,.05)}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child{margin-bottom:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label{font-weight:500;max-width:120px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input{padding:5px 8px;margin:0 15px;border-radius:3px;font-size:12px;width:100%;background:none;-webkit-box-shadow:none;box-shadow:none;color:#495157;border:1px solid;outline:none}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus){border-color:#d5dadf}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus{border-color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{max-width:100px;font-size:11px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{background-color:#eceeef;color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover{background-color:#b01b1b;color:#fff}.elementor-metabox-content .elementor-button{background-color:#a4afb7;color:#fff;line-height:1;text-transform:uppercase;height:auto;padding:10px 20px;outline:none;border:none;-webkit-transition-property:background,color,opacity,-webkit-box-shadow;transition-property:background,color,opacity,-webkit-box-shadow;-o-transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity,-webkit-box-shadow;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:hover,.elementor-metabox-content .elementor-button:visited{color:#fff}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:visited{background-color:#a4afb7}.elementor-metabox-content .elementor-button:hover{background-color:#6d7882;-webkit-box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);border:none}.elementor-metabox-content .elementor-button:active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1);box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1)}.elementor-metabox-content .elementor-button:not([disabled]){cursor:pointer}.elementor-metabox-content .elementor-button.elementor-size-xs{font-size:11px;padding:10px 20px;border-radius:2px}.elementor-metabox-content .elementor-button.elementor-size-sm{font-size:13px;padding:12px 24px;border-radius:3px}.elementor-metabox-content .elementor-button.elementor-size-md{font-size:14px;padding:15px 30px;border-radius:4px}.elementor-metabox-content .elementor-button.elementor-size-lg{font-size:15px;padding:20px 40px;border-radius:5px}.elementor-metabox-content .elementor-button.elementor-size-xl{font-size:18px;padding:25px 50px;border-radius:6px}.elementor-metabox-content .elementor-button .elementor-align-icon-right{float:right;margin-left:5px}.elementor-metabox-content .elementor-button .elementor-align-icon-left{float:left;margin-right:5px}.elementor-metabox-content input.button.add-repeater-row{margin-top:18px;border:none;-webkit-box-shadow:none;box-shadow:none}.elementor-metabox-content .elementor-repeater-tool-btn{color:#a4afb7;cursor:pointer;padding:0 20px;font-size:12px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-metabox-content .elementor-repeater-tool-btn i{padding-left:5px}.elementor-metabox-content .elementor-repeater-tool-btn:hover{color:#6d7882}.elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover{color:#b01b1b}.elementor-metabox-content .inline-preview,.elementor-metabox-content .row-font-preview{font-size:16px;text-transform:capitalize}.column-font_preview{width:65%}.widefat td.column-font_preview{font-size:16px}.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]){margin-top:10px}.post-type-elementor_icons div#postbox-container-1{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox{display:none;border:1px solid #eceeef;border-radius:1px;background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .inside{margin-top:10px;margin-bottom:20px}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content{background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:4px 10px 10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:0}}.post-type-elementor_icons div#elementor-custom-icons-metabox h4{color:#556068;font-size:22px;font-weight:500;letter-spacing:.7px;line-height:28px;margin:0 0 4px}.post-type-elementor_icons div#elementor-custom-icons-metabox h5{color:#a4afb7;font-size:16px;font-weight:500;letter-spacing:.5px;line-height:21px;margin:0}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i{font-size:64px;color:#39b54a}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__file,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover{background-color:grey}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__input{padding:180px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone{outline:2px dashed #d5dadf;outline-offset:-3px;background-color:#fff;display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons{background-color:#f7f7f7;border:1px solid #eceeef;border-radius:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content{background-color:#f7f7f7}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox{padding:4px 10px 0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{height:50px;color:#6d7882;background-color:#fff;-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.06);box-shadow:0 2px 6px 0 rgba(0,0,0,.06);padding:0 35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{padding:0 6px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{-webkit-padding-end:10px;padding-inline-end:10px;-webkit-padding-start:10px;padding-inline-start:10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{line-height:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2){border:1px solid #a4afb7;border-top:0;border-bottom:0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{color:#556068;font-size:14px;line-height:1}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-weight:700}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove{margin-right:auto;color:#556068;opacity:.6;cursor:pointer;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i{color:#6d7882}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover{opacity:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer{color:#c2cbd2;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;border-top:1px solid #eceeef;font-size:11px;font-weight:500;line-height:1;text-align:left;padding-top:10px;padding-bottom:10px;-webkit-padding-end:35px;padding-inline-end:35px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));grid-gap:20px;padding:15px 35px 0;overflow-y:auto;max-height:575px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li{position:relative;height:0;padding-bottom:100%;background-color:#fff;-webkit-box-shadow:0 1px 12px rgba(0,0,0,.05);box-shadow:0 1px 12px rgba(0,0,0,.05);border-radius:3px;overflow:hidden}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{color:#c2cbd2;font-size:11px;padding:18px 20px 0;white-space:nowrap;max-width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}@media (max-width:479px){.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{display:none}}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li i{font-size:32px}.post-type-elementor_icons #minor-publishing-actions,.post-type-elementor_icons #misc-publishing-actions,.post-type-elementor_icons #tagsdiv-elementor_icon_type{display:none}.column-icons_prefix{width:65%}:root{--color-box-shadow-color:rgba(0,0,0,0.05)}.eps-theme-dark{--color-box-shadow-color:rgba(0,0,0,0.1)}.eps-grid-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.eps-grid-container--no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.eps-grid-container--wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.eps-grid-container--spacing{--grid-row-gutter:calc(-1 * calc(var(--grid-spacing-gutter) * 0.0625rem));width:var(--grid-spacing-width);margin:var(--grid-row-gutter)}.eps-grid-container--spacing>.eps-grid-item{padding:var(--grid-spacing-gutter)}.eps-grid--direction-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.eps-grid--direction-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.eps-grid--direction-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eps-grid--direction-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.eps-grid--justify-stretch{-webkit-box-pack:stretch;-ms-flex-pack:stretch;justify-content:stretch}.eps-grid--justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.eps-grid--justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eps-grid--justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.eps-grid--justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.eps-grid--justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.eps-grid--justify-space-evenly{-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.eps-grid--align-content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.eps-grid--align-content-start{-ms-flex-line-pack:start;align-content:flex-start}.eps-grid--align-content-center{-ms-flex-line-pack:center;align-content:center}.eps-grid--align-content-end{-ms-flex-line-pack:end;align-content:flex-end}.eps-grid--align-content-space-between{-ms-flex-line-pack:justify;align-content:space-between}.eps-grid--align-items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.eps-grid--align-items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eps-grid--align-items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.eps-grid--align-items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.eps-grid--align-items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.eps-grid-item--zero-min-width{min-width:0}@media screen and (min-width:480px){.eps-grid-item-sm{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:768px){.eps-grid-item-md{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1025px){.eps-grid-item-lg{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1440px){.eps-grid-item-xl{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1600px){.eps-grid-item-xxl{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}.eps-grid-item-xs-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xs-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xs-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xs-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xs-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xs-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xs-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xs-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xs-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xs-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xs-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xs-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}@media screen and (min-width:480px){.eps-grid-item-sm-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-sm-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-sm-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-sm-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-sm-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-sm-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-sm-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-sm-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-sm-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-sm-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-sm-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-sm-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:768px){.eps-grid-item-md-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-md-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-md-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-md-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-md-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-md-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-md-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-md-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-md-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-md-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-md-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-md-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1025px){.eps-grid-item-lg-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-lg-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-lg-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-lg-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-lg-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-lg-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-lg-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-lg-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-lg-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-lg-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-lg-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-lg-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1440px){.eps-grid-item-xl-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xl-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xl-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xl-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xl-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xl-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xl-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xl-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xl-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xl-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xl-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xl-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1600px){.eps-grid-item-xxl-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xxl-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xxl-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xxl-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xxl-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xxl-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xxl-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xxl-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xxl-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xxl-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xxl-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xxl-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}:root{--eps-modal-background-color:#fff;--eps-modal-header-background-color:#58d0f5}.eps-theme-dark{--eps-modal-background-color:#34383c;--eps-modal-header-background-color:#58d0f5}.eps-modal{max-width:43.75rem;background:var(--eps-modal-background-color);border-radius:.1875rem;-webkit-animation:fade-in .4s ease-in both;animation:fade-in .4s ease-in both}.eps-modal__overlay{background:rgba(0,0,0,.5);position:fixed;display:-webkit-box;display:-ms-flexbox;display:flex;top:0;left:0;width:100%;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1030}.eps-modal__header{font-size:.875rem;background:var(--eps-modal-header-background-color);height:2.75rem;padding:.625rem 1rem;border-radius:.1875rem}.eps-modal__header,.eps-modal__header .title{color:#fff}.eps-modal__icon{-webkit-margin-end:.625rem;margin-inline-end:.625rem}.eps-modal__body{padding:1.875rem}.eps-modal .eps-tip,.eps-modal__tip{-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-border-start:3px solid #58d0f5;border-inline-start:3px solid #58d0f5}.eps-modal .eps-tip:not(:last-child),.eps-modal__tip:not(:last-child){margin-bottom:1.875rem}.eps-modal .eps-tip:not(:first-child),.eps-modal__section:not(:first-child),.eps-modal__tip:not(:first-child){margin-top:1.875rem}.eps-modal__close-wrapper{-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-border-start:solid 1px #fff;border-inline-start:solid 1px #fff}.eps-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;--button-line-height:16px;--button-padding-y:0.5em;--button-padding-x:1.5em;--button-primary-background-color:#39b54a;--button-primary-hover-background-color:#33a242;--button-primary-active-background-color:#35a945;--button-primary-color:#fff;--button-secondary-background-color:#a4afb7;--button-secondary-hover-background-color:#96a2ac;--button-secondary-active-background-color:#9ba7b0;--button-secondary-color:#fff;--button-danger-background-color:#b01b1b;--button-danger-hover-background-color:#9a1818;--button-danger-active-background-color:#a31919;--button-danger-color:#fff;--button-cta-background-color:#93003f;--button-cta-hover-background-color:#7a0034;--button-cta-active-background-color:#840038;--button-cta-color:#fff;--button-link-background-color:#58d0f5;--button-link-hover-background-color:#40c9f4;--button-link-active-background-color:#4accf4;--button-link-color:#fff;--button-disabled-background-color:#c2cbd2;--button-disabled-hover-background-color:#b3bec7;--button-disabled-active-background-color:#b9c3cc;--button-disabled-color:#fff;color:var(--button-background-color,currentColor);font-size:var(--button-font-size,inherit);font-weight:500;line-height:var(--button-line-height);cursor:pointer}.eps-button:active{--button-background-color:var(--button-active-background-color,transparent)}.eps-button:hover{--button-background-color:var(--button-hover-background-color)}.eps-theme-dark .eps-button{--button-primary-background-color:#39b54a;--button-primary-color:#fff;--button-primary-hover-background-color:#33a242;--button-primary-active-background-color:#35a945;--button-secondary-background-color:#b4b5b7;--button-secondary-color:#fff;--button-secondary-hover-background-color:#a7a8ab;--button-secondary-active-background-color:#acadb0;--button-cta-background-color:#93003f;--button-cta-hover-background-color:#7a0034;--button-cta-active-background-color:#840038;--button-cta-color:#fff;--button-link-background-color:#58d0f5;--button-link-hover-background-color:#40c9f4;--button-link-active-background-color:#4accf4;--button-link-color:#fff;--button-disabled-background-color:#64666a;--button-disabled-hover-background-color:#58595d;--button-disabled-active-background-color:#5d5e62;--button-disabled-color:#fff}.eps-button--contained{padding:var(--button-padding-y) var(--button-padding-x);background-color:var(--button-background-color,transparent);border:1px solid var(--button-background-color)}.eps-button--contained,.eps-button--contained:hover{color:var(--button-color)}.eps-button--outlined{display:block;padding:var(--button-padding-y) var(--button-padding-x);border:1px solid var(--button-background-color)}.eps-button--contained,.eps-button--outlined{border-radius:.1875rem}.eps-button--underlined{text-decoration:underline}.eps-button--sm{--button-font-size:0.75rem;--button-line-height:14px}.eps-button--lg{--button-font-size:0.9375rem;--button-line-height:18px}.eps-button--primary{--button-color:var(--button-primary-color);--button-background-color:var(--button-primary-background-color);--button-hover-background-color:var(--button-primary-hover-background-color);--button-active-background-color:var(--button-primary-active-background-color)}.eps-button--secondary{--button-color:var(--buton-secondary-color);--button-background-color:var(--button-secondary-background-color);--button-hover-background-color:var(--button-secondary-hover-background-color);--button-active-background-color:var(--button-secondary-active-background-color)}.eps-button--danger{--button-color:var(--buton-danger-color);--button-background-color:var(--button-danger-background-color);--button-hover-background-color:var(--button-danger-hover-background-color);--button-active-background-color:var(--button-danger-active-background-color)}.eps-button--cta{--button-color:var(--button-cta-color);--button-background-color:var(--button-cta-background-color);--button-hover-background-color:var(--button-cta-hover-background-color);--button-active-background-color:var(--button-cta-active-background-color)}.eps-button--link{--button-color:var(--button-link-color);--button-background-color:var(--button-link-background-color);--button-hover-background-color:var(--button-link-hover-background-color);--button-active-background-color:var(--button-link-active-background-color)}.eps-button--disabled,.eps-button[disabled]{--button-color:var(--button-disabled-color);--button-background-color:var(--button-disabled-background-color);--button-hover-background-color:var(--button-disabled-hover-background-color);--button-active-background-color:var(--button-disabled-active-background-color);cursor:default}:root{--e-site-editor-conditions-row-controls-background:#fff;--e-site-editor-input-wrapper-border-color:#f1f3f5;--e-site-editor-input-wrapper-select-color:#556068;--e-site-editor-add-button-background-color:#a4afb7;--e-site-editor-add-button-color-hover-background-color:#6d7882;--e-site-editor-input-wrapper-condition-include-background-color:#a4afb7;--e-site-editor-input-wrapper-condition-exclude-background-color:#c2cbd2;--e-site-editor-input-select2-search-field-color:#495157}.eps-theme-dark{--select2-selection-background-color:tints(600);--e-site-editor-conditions-row-controls-background:#404349;--e-site-editor-input-wrapper-border-color:#404349;--e-site-editor-input-wrapper-select-color:#b4b5b7;--e-site-editor-add-button-background-color:#4c4f56;--e-site-editor-add-button-color-hover-background-color:#404349;--e-site-editor-input-wrapper-condition-include-background-color:#404349;--e-site-editor-input-wrapper-condition-exclude-background-color:#404349;--e-site-editor-input-select2-search-field-color:#fff}.e-site-editor-conditions__header{text-align:center}.e-site-editor-conditions__header-image{display:block;margin:0 auto 2.75rem;width:4.375rem}.e-site-editor-conditions__rows{margin:2.75rem auto;max-width:43.75rem}.e-site-editor-conditions__row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:.75rem}.e-site-editor-conditions__remove-condition{color:#c2cbd2;font-size:1.125rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.e-site-editor-conditions__row-controls{overflow:hidden;margin-left:.625rem;background-color:var(--e-site-editor-conditions-row-controls-background);display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-shadow:0 3px 6px var(--color-box-shadow-color);box-shadow:0 3px 6px var(--color-box-shadow-color);border-radius:.1875rem}.e-site-editor-conditions__row-controls--error{border:1px solid #b01b1b}.e-site-editor-conditions__conflict{text-align:center;margin-top:.3125rem;color:#b01b1b}.e-site-editor-conditions__row-controls-inner{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.e-site-editor-conditions__row-controls-inner div{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor-conditions__add-button-container{text-align:center}.e-site-editor-conditions__add-button{margin-top:2.75rem;background-color:var(--e-site-editor-add-button-background-color);color:#fff;text-transform:uppercase}.e-site-editor-conditions__add-button:hover{background-color:var(--e-site-editor-add-button-color-hover-background-color);color:#fff}.e-site-editor-conditions__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:absolute;bottom:0;right:0;left:0;padding:.5rem;border-top:1px solid var(--hr-color)}.e-site-editor-conditions__input-wrapper{position:relative;border-left-color:var(--e-site-editor-input-wrapper-border-color);border-bottom-color:var(--e-site-editor-input-wrapper-border-color);border-right:1px solid;border-right-color:var(--e-site-editor-input-wrapper-border-color);border-top-color:var(--e-site-editor-input-wrapper-border-color)}.e-site-editor-conditions__input-wrapper:first-child{border:none}.e-site-editor-conditions__input-wrapper select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-size:.75rem;height:2.5rem;border-width:0;padding:0 .625rem;width:100%;position:relative;color:var(--e-site-editor-input-wrapper-select-color);outline:none;background:transparent}.e-site-editor-conditions__input-wrapper:after{font-family:eicons;content:"\e8ad";font-size:.75rem;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:.625rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single{border:none;line-height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:2.5rem;font-size:.75rem}.e-site-editor-conditions__input-wrapper .select2-selection{outline:none;background:transparent;height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-selection__arrow{display:none}.e-site-editor-conditions__input-wrapper--condition-type{position:relative}.e-site-editor-conditions__input-wrapper--condition-type:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:.75rem;font-size:.9375rem;color:#fff;pointer-events:none;z-index:1000}.e-site-editor-conditions__input-wrapper--condition-type:after{color:#fff}.e-site-editor-conditions__input-wrapper--condition-type select{text-transform:uppercase;padding-right:2.125rem;width:7.5rem;font-size:.75rem;color:#fff}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include]:before{content:"\e8cc"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include] select{background-color:var(--e-site-editor-input-wrapper-condition-include-background-color)}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude]:before{content:"\e8cd"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude] select{background-color:var(--e-site-editor-input-wrapper-condition-exclude-background-color)}.select2-search__field{background-color:transparent;color:var(--e-site-editor-input-select2-search-field-color)}.misc-pub-visibility{display:none}.eps-modal__overlay{background:rgba(0,0,0,.8);z-index:9999}.select2-container{z-index:9999}.post-conditions .spinner{margin:0 10px;float:none;visibility:visible}.post-conditions .eps-button--underlined{color:#0073aa}.post-conditions .eps-modal{position:relative;background:#f1f3f5;max-width:1200px;max-height:800px;width:90vw;height:90vh;margin:auto}.post-conditions .eps-modal .eps-modal__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.post-conditions .eps-modal .eps-h1{font-size:30px;font-weight:300}.post-conditions .eps-modal .eps-text{font-size:18px;line-height:150%;margin:1em 0;color:#a4afb7}.post-conditions .eps-modal .eps-grid-container{width:auto}.post-conditions .eps-modal__header{background:#fff;color:#556068;-webkit-box-shadow:0 0 8px rgba(0,0,0,.1);box-shadow:0 0 8px rgba(0,0,0,.1);padding:2px 15px}.post-conditions .eps-modal__header .eps-app__logo{width:1.75rem;height:1.75rem;line-height:1.75rem;text-align:center;font-size:calc(.4 * 1.75rem);border-radius:50%;color:#fff;background-color:#93003f}.post-conditions .eps-modal__header .eps-text{position:relative;top:2px;font-size:.9375rem;font-weight:700;text-transform:uppercase;color:#6d7882}.post-conditions .eps-modal__header .eps-button{font-size:18px}.post-conditions .eps-modal .e-site-editor-conditions__header{padding-top:5vh}.post-conditions .eps-modal .e-site-editor-conditions__rows{overflow-y:auto;max-height:27vh;margin:0 auto}.post-conditions .eps-modal .e-site-editor-conditions__rows:empty{margin-bottom:30px}.post-conditions .eps-modal .e-site-editor-conditions__rows:not(:empty){margin-bottom:20px}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row{margin-top:15px;padding:0 14px}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls{border-radius:0}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select{text-transform:none}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:focus{-webkit-box-shadow:none;box-shadow:none;border:none;color:inherit}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:hover{color:inherit}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:focus,.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:hover{color:#fff}.post-conditions .eps-modal .e-site-editor-conditions__add-button{margin-top:0}.post-conditions .eps-modal .e-site-editor-conditions__footer{z-index:1000;border-top:1px solid #d5dadf}#elementor-custom-code.postbox{border:0}#elementor-custom-code .postbox-header{display:none}#elementor-custom-code .inside{padding:0}#elementor-custom-code .inside .elementor-custom-code-meta-box{margin:0}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel{border:1px solid #eceeef;border-bottom-color:#ccd0d4;background:#fff}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-panel-placement{padding:5px 40px;margin:10px 0;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement{display:none}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement.show,#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel div{display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field i{color:#c2cbd2;font-size:15px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select{height:20px;margin-top:7px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select#location{direction:ltr}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.priority{margin-right:auto}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.location{-webkit-margin-end:10px;margin-inline-end:10px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label{font-weight:500;font-size:14px;line-height:16px;color:#6d7882}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(2n){margin-left:20px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(odd){margin-left:5px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes{padding-top:18px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes .label{position:relative;top:-5px}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder{border:1px solid #eceeef;background:#f7f7f7;padding:40px}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-field-label{margin:0}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror{border:1px solid #ccd0d4;resize:vertical;overflow:auto;max-width:100%}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-scroll,#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror.CodeMirror-wrap,#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .elementor-field-textarea{height:100%}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-sizer{min-height:300px!important;border-right:0}.post-type-elementor_snippet #minor-publishing-actions,.post-type-elementor_snippet #save-action{display:none}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .elementor-field-textarea{width:calc(100% - 8px)}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .CodeMirror-sizer{-webkit-box-sizing:border-box;box-sizing:border-box}@media (max-height:825px),(max-width:850px){.post-conditions .eps-modal{width:100vw;height:90vh}.post-conditions .eps-modal .e-site-editor-conditions__header{padding-top:0}.post-conditions .eps-modal .e-site-editor-conditions__rows{max-height:14vh}.post-conditions .eps-modal .e-site-editor-conditions__header-image{margin:0 auto}}@media (max-height:666px),(max-width:590px){.post-conditions .eps-modal .eps-modal__body{overflow:auto;height:calc(100vh - 200px)}.post-conditions .eps-modal .eps-modal__body .e-site-editor-conditions__footer{background:#f1f3f5}}PK!�O	�	�&assets/css/modules/custom-code-rtl.cssnu�[���@keyframes fade-in {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.wrap.elementor-admin-page-license form.elementor-license-box {
  max-width: 600px;
  background: white;
  margin: 20px 0;
  padding: 20px 20px; }
  .wrap.elementor-admin-page-license form.elementor-license-box h3 {
    border-bottom: 1px solid #eee;
    padding: 20px;
    margin: -20px -20px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 span {
      flex-grow: 1;
      padding-right: 5px; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 small {
      float: left;
      font-size: 13px;
      font-weight: normal; }
  .wrap.elementor-admin-page-license form.elementor-license-box label {
    display: block;
    font-size: 1.3em;
    font-weight: 600;
    margin: 1em 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .button {
    height: 30px;
    margin-right: 15px;
    margin-bottom: 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box p.description {
    margin: 10px 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch {
    display: flex;
    align-items: center;
    justify-content: space-between; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom {
    padding-bottom: 15px;
    border-bottom: 1px solid #eeeeee; }

.wrap.elementor-admin-page-license .elementor-box-action {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  margin-top: 30px; }
  .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link {
    color: #72777c;
    margin-left: 15px; }
    .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover {
      color: inherit; }

.fixed .column-elementor_library_type,
.fixed .column-instances {
  width: 10%; }

.fixed .elementor-shortcode-input {
  min-width: 235px; }

@media (min-width: 768px) and (max-width: 1440px) {
  .fixed .column-shortcode {
    width: 25%; }
  .fixed .elementor-shortcode-input {
    min-width: 100%; } }

#available-widgets [class*="elementor-template"] .widget-title:before {
  content: "\e801";
  font-family: eicon;
  font-size: 17px; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

.elementor-button-spinner.error:before {
  content: "\f335";
  color: #ff0000; }

span.font-variations-count {
  display: inline-block;
  vertical-align: top;
  margin: 1px 0 0 5px;
  padding: 0 5px;
  min-width: 7px;
  height: 17px;
  border-radius: 11px;
  background-color: #d4dffb;
  color: #4278b2;
  font-size: 9px;
  line-height: 17px;
  text-align: center;
  z-index: 26; }

.post-type-elementor_font div#elementor-font-custommetabox {
  background: none;
  border: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox button.handlediv {
    display: none; }
  .post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside {
    margin: 0;
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox h2.hndle {
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox .handle-actions {
    display: none; }

.post-type-elementor_font #tagsdiv-elementor_font_type,
.post-type-elementor_font #minor-publishing-actions,
.post-type-elementor_font #misc-publishing-actions {
  display: none; }

.elementor-metabox-content .repeater-block {
  background: #ffffff;
  color: #6d7882;
  padding: 20px;
  margin-bottom: 2px; }
  .elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block.block-visible {
    padding-bottom: 0;
    margin-bottom: 0; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row {
      display: none; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row {
      display: inline-block; }
  .elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block .repeater-title {
    cursor: pointer; }

.elementor-metabox-content .row-font-label {
  padding: 0;
  margin: 0;
  display: flex;
  text-transform: capitalize; }
  .elementor-metabox-content .row-font-label li {
    box-sizing: border-box;
    flex-grow: 1;
    width: 100%;
    margin: 0; }
    .elementor-metabox-content .row-font-label li span.label {
      font-weight: 500;
      padding-left: 10px; }
    .elementor-metabox-content .row-font-label li.row-font-weight, .elementor-metabox-content .row-font-label li.row-font-style {
      max-width: 180px; }
    .elementor-metabox-content .row-font-label li.row-font-actions {
      max-width: 200px;
      text-align: left; }

.elementor-metabox-content .repeater-content {
  margin: 0; }
  .elementor-metabox-content .repeater-content .repeater-content-top {
    display: flex;
    margin-bottom: 20px;
    line-height: 28px; }
    .elementor-metabox-content .repeater-content .repeater-content-top > div {
      box-sizing: border-box;
      flex-grow: 1; }
    .elementor-metabox-content .repeater-content .repeater-content-top p {
      margin: 0;
      display: inline-block; }
      .elementor-metabox-content .repeater-content .repeater-content-top p label {
        font-weight: 500;
        padding-left: 10px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select {
      max-width: 180px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar {
      max-width: 200px;
      text-align: left; }
  .elementor-metabox-content .repeater-content .repeater-content-bottom {
    background-color: #f7f7f7;
    padding: 20px 40px;
    margin: 0 -20px; }
    .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field {
      display: flex;
      align-items: center;
      background-color: #ffffff;
      padding: 10px 20px;
      margin-bottom: 10px;
      box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05); }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child {
        margin-bottom: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input {
        box-sizing: border-box;
        flex-grow: 1;
        width: 100%;
        margin: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label {
        font-weight: 500;
        max-width: 120px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input {
        padding: 5px 8px;
        margin: 0 15px;
        border-radius: 3px;
        font-size: 12px;
        width: 100%;
        background: none;
        box-shadow: none;
        color: #495157;
        border: 1px solid;
        outline: none; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus) {
          border-color: #d5dadf; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus {
          border-color: #a4afb7; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        max-width: 100px;
        font-size: 11px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        background-color: #eceeef;
        color: #a4afb7; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover {
          background-color: #b01b1b;
          color: white; }

.elementor-metabox-content .elementor-button {
  background-color: #a4afb7;
  color: #fff;
  line-height: 1;
  text-transform: uppercase;
  height: auto;
  padding: 10px 20px;
  outline: none;
  border: none;
  transition-property: background, color, box-shadow, opacity;
  transition-duration: .3s; }
  .elementor-metabox-content .elementor-button:hover, .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    color: #fff; }
  .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    background-color: #a4afb7; }
  .elementor-metabox-content .elementor-button:hover {
    background-color: #6d7882;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
    border: none; }
  .elementor-metabox-content .elementor-button:active {
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); }
  .elementor-metabox-content .elementor-button:not([disabled]) {
    cursor: pointer; }
  .elementor-metabox-content .elementor-button.elementor-size-xs {
    font-size: 11px;
    padding: 10px 20px;
    border-radius: 2px; }
  .elementor-metabox-content .elementor-button.elementor-size-sm {
    font-size: 13px;
    padding: 12px 24px;
    border-radius: 3px; }
  .elementor-metabox-content .elementor-button.elementor-size-md {
    font-size: 14px;
    padding: 15px 30px;
    border-radius: 4px; }
  .elementor-metabox-content .elementor-button.elementor-size-lg {
    font-size: 15px;
    padding: 20px 40px;
    border-radius: 5px; }
  .elementor-metabox-content .elementor-button.elementor-size-xl {
    font-size: 18px;
    padding: 25px 50px;
    border-radius: 6px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-right {
    float: right;
    margin-left: 5px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-left {
    float: left;
    margin-right: 5px; }

.elementor-metabox-content input.button.add-repeater-row {
  margin-top: 18px;
  border: none;
  box-shadow: none; }

.elementor-metabox-content .elementor-repeater-tool-btn {
  color: #a4afb7;
  cursor: pointer;
  padding: 0 20px;
  font-size: 12px;
  transition: all 0.3s; }
  .elementor-metabox-content .elementor-repeater-tool-btn i {
    padding-left: 5px; }
  .elementor-metabox-content .elementor-repeater-tool-btn:hover {
    color: #6d7882; }
  .elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover {
    color: #b01b1b; }

.elementor-metabox-content .row-font-preview,
.elementor-metabox-content .inline-preview {
  font-size: 16px;
  text-transform: capitalize; }

.column-font_preview {
  width: 65%; }

.widefat td.column-font_preview {
  font-size: 16px; }

.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]) {
  margin-top: 10px; }

.post-type-elementor_icons div#postbox-container-1 {
  display: none; }

.post-type-elementor_icons div#elementor-custom-icons-metabox {
  display: none;
  border: 1px solid #eceeef;
  border-radius: 1px;
  background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .inside {
    margin-top: 10px;
    margin-bottom: 20px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content {
    background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
    padding: 4px 10px 10px 10px; }
    @media (max-width: 1025px) {
      .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
        padding: 0; } }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h4 {
    color: #556068;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.7px;
    line-height: 28px;
    margin: 0 0 4px 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h5 {
    color: #a4afb7;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.5px;
    line-height: 21px;
    margin: 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i {
    font-size: 64px;
    color: #39b54a; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__file {
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover {
    background-color: grey; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__input {
    padding: 180px 0;
    display: flex;
    flex-direction: column;
    align-items: center; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone {
    outline: 2px dashed #d5dadf;
    outline-offset: -3px;
    background-color: #fff;
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons {
    background-color: #f7f7f7;
    border: 1px solid #eceeef;
    border-radius: 1px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content {
      background-color: #f7f7f7; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox {
        padding: 4px 10px 0 10px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
      height: 50px;
      color: #6d7882;
      background-color: #fff;
      box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
      padding: 0 35px;
      display: flex;
      align-items: center;
      justify-content: flex-start; }
      @media (max-width: 1025px) {
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
          padding: 0 6px; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
        padding-inline-end: 10px;
        padding-inline-start: 10px; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
            line-height: 1; }
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2) {
          border: 1px solid #a4afb7;
          border-top: 0;
          border-bottom: 0; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
        color: #556068;
        font-size: 14px;
        line-height: 1; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
            font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
          font-weight: bold; }
          @media (max-width: 1025px) {
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove {
          margin-right: auto;
          color: #556068;
          opacity: .6;
          cursor: pointer;
          transition: all 0.3s; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i {
            color: #6d7882; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover {
            opacity: 1; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer {
      color: #c2cbd2;
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      border-top: 1px solid #eceeef;
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      text-align: left;
      padding-top: 10px;
      padding-bottom: 10px;
      padding-inline-end: 35px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr));
    grid-gap: 20px;
    padding: 15px 35px 0 35px;
    overflow-y: auto;
    max-height: 575px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox ul li {
      position: relative;
      height: 0;
      padding-bottom: 100%;
      background-color: #fff;
      box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      overflow: hidden; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        padding: 1px; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
        color: #c2cbd2;
        font-size: 11px;
        padding: 18px 20px 0;
        white-space: nowrap;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis; }
        @media (max-width: 479px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
            display: none; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li i {
        font-size: 32px; }

.post-type-elementor_icons #tagsdiv-elementor_icon_type,
.post-type-elementor_icons #minor-publishing-actions,
.post-type-elementor_icons #misc-publishing-actions {
  display: none; }

.column-icons_prefix {
  width: 65%; }

:root {
  --color-box-shadow-color: rgba(0, 0, 0, 0.05); }

.eps-theme-dark {
  --color-box-shadow-color: rgba(0, 0, 0, 0.1); }

.eps-grid-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%; }
  .eps-grid-container--no-wrap {
    flex-wrap: nowrap; }
  .eps-grid-container--wrap-reverse {
    flex-wrap: wrap-reverse; }
  .eps-grid-container--spacing {
    --grid-row-gutter: calc(-1 * calc( var(--grid-spacing-gutter) * 0.0625rem));
    width: var(--grid-spacing-width);
    margin: var(--grid-row-gutter); }
    .eps-grid-container--spacing > .eps-grid-item {
      padding: var(--grid-spacing-gutter); }

.eps-grid--direction-row {
  flex-direction: row; }
  .eps-grid--direction-row-reverse {
    flex-direction: row-reverse; }

.eps-grid--direction-column {
  flex-direction: column; }
  .eps-grid--direction-column-reverse {
    flex-direction: column-reverse; }

.eps-grid--justify-stretch {
  justify-content: stretch; }

.eps-grid--justify-start {
  justify-content: flex-start; }

.eps-grid--justify-center {
  justify-content: center; }

.eps-grid--justify-end {
  justify-content: flex-end; }

.eps-grid--justify-space-between {
  justify-content: space-between; }

.eps-grid--justify-space-around {
  justify-content: space-around; }

.eps-grid--justify-space-evenly {
  justify-content: space-evenly; }

.eps-grid--align-content-stretch {
  align-content: stretch; }

.eps-grid--align-content-start {
  align-content: flex-start; }

.eps-grid--align-content-center {
  align-content: center; }

.eps-grid--align-content-end {
  align-content: flex-end; }

.eps-grid--align-content-space-between {
  align-content: space-between; }

.eps-grid--align-items-start {
  align-items: flex-start; }

.eps-grid--align-items-center {
  align-items: center; }

.eps-grid--align-items-end {
  align-items: flex-end; }

.eps-grid--align-items-baseline {
  align-items: baseline; }

.eps-grid--align-items-stretch {
  align-items: stretch; }

.eps-grid-item--zero-min-width {
  min-width: 0; }

@media screen and (min-width: 480px) {
  .eps-grid-item-sm {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 768px) {
  .eps-grid-item-md {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1025px) {
  .eps-grid-item-lg {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1440px) {
  .eps-grid-item-xl {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1600px) {
  .eps-grid-item-xxl {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

.eps-grid-item-xs-1 {
  flex-grow: 0;
  max-width: 8.33333%;
  flex-basis: 8.33333%; }

.eps-grid-item-xs-2 {
  flex-grow: 0;
  max-width: 16.66667%;
  flex-basis: 16.66667%; }

.eps-grid-item-xs-3 {
  flex-grow: 0;
  max-width: 25%;
  flex-basis: 25%; }

.eps-grid-item-xs-4 {
  flex-grow: 0;
  max-width: 33.33333%;
  flex-basis: 33.33333%; }

.eps-grid-item-xs-5 {
  flex-grow: 0;
  max-width: 41.66667%;
  flex-basis: 41.66667%; }

.eps-grid-item-xs-6 {
  flex-grow: 0;
  max-width: 50%;
  flex-basis: 50%; }

.eps-grid-item-xs-7 {
  flex-grow: 0;
  max-width: 58.33333%;
  flex-basis: 58.33333%; }

.eps-grid-item-xs-8 {
  flex-grow: 0;
  max-width: 66.66667%;
  flex-basis: 66.66667%; }

.eps-grid-item-xs-9 {
  flex-grow: 0;
  max-width: 75%;
  flex-basis: 75%; }

.eps-grid-item-xs-10 {
  flex-grow: 0;
  max-width: 83.33333%;
  flex-basis: 83.33333%; }

.eps-grid-item-xs-11 {
  flex-grow: 0;
  max-width: 91.66667%;
  flex-basis: 91.66667%; }

.eps-grid-item-xs-12 {
  flex-grow: 0;
  max-width: 100%;
  flex-basis: 100%; }

@media screen and (min-width: 480px) {
  .eps-grid-item-sm-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-sm-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-sm-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-sm-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-sm-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-sm-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-sm-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-sm-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-sm-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-sm-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-sm-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-sm-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 768px) {
  .eps-grid-item-md-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-md-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-md-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-md-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-md-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-md-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-md-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-md-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-md-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-md-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-md-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-md-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1025px) {
  .eps-grid-item-lg-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-lg-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-lg-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-lg-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-lg-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-lg-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-lg-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-lg-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-lg-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-lg-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-lg-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-lg-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1440px) {
  .eps-grid-item-xl-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-xl-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-xl-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-xl-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-xl-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-xl-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-xl-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-xl-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-xl-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-xl-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-xl-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-xl-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1600px) {
  .eps-grid-item-xxl-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-xxl-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-xxl-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-xxl-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-xxl-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-xxl-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-xxl-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-xxl-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-xxl-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-xxl-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-xxl-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-xxl-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

:root {
  --eps-modal-background-color: #fff;
  --eps-modal-header-background-color: #58d0f5; }

.eps-theme-dark {
  --eps-modal-background-color: #34383c;
  --eps-modal-header-background-color: #58d0f5; }

/** ----------------------------------------------------------------
	EPS Modal
---------------------------------------------------------------- */
.eps-modal {
  max-width: 43.75rem;
  background: var(--eps-modal-background-color);
  border-radius: 0.1875rem;
  animation: fade-in 0.4s ease-in both; }
  .eps-modal__overlay {
    background: rgba(0, 0, 0, 0.5);
    position: fixed;
    display: flex;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    z-index: 1030; }
  .eps-modal__header {
    font-size: 0.875rem;
    background: var(--eps-modal-header-background-color);
    height: 2.75rem;
    padding: 0.625rem 1rem;
    border-radius: 0.1875rem; }
    .eps-modal__header,
    .eps-modal__header .title {
      color: #fff; }
  .eps-modal__icon {
    margin-inline-end: 0.625rem; }
  .eps-modal__body {
    padding: 1.875rem; }
  .eps-modal__tip, .eps-modal .eps-tip {
    padding-inline-start: 0.75rem;
    border-inline-start: 3px solid #58d0f5; }
    .eps-modal__tip:not(:last-child), .eps-modal .eps-tip:not(:last-child) {
      margin-bottom: 1.875rem; }
    .eps-modal__tip:not(:first-child), .eps-modal .eps-tip:not(:first-child) {
      margin-top: 1.875rem; }
  .eps-modal__section:not(:first-child) {
    margin-top: 1.875rem; }
  .eps-modal__close-wrapper {
    padding-inline-start: 1rem;
    border-inline-start: solid 1px #fff; }

.eps-button {
  display: inline-flex;
  --button-line-height: 16px;
  --button-padding-y: 0.5em;
  --button-padding-x: 1.5em;
  --button-primary-background-color: #39b54a;
  --button-primary-hover-background-color: #33a242;
  --button-primary-active-background-color: #35a945;
  --button-primary-color: #fff;
  --button-secondary-background-color: #a4afb7;
  --button-secondary-hover-background-color: #96a2ac;
  --button-secondary-active-background-color: #9ba7b0;
  --button-secondary-color: #fff;
  --button-danger-background-color: #b01b1b;
  --button-danger-hover-background-color: #9a1818;
  --button-danger-active-background-color: #a31919;
  --button-danger-color: #fff;
  --button-cta-background-color: #93003F;
  --button-cta-hover-background-color: #7a0034;
  --button-cta-active-background-color: #840038;
  --button-cta-color: #fff;
  --button-link-background-color: #58d0f5;
  --button-link-hover-background-color: #40c9f4;
  --button-link-active-background-color: #4accf4;
  --button-link-color: #fff;
  --button-disabled-background-color: #c2cbd2;
  --button-disabled-hover-background-color: #b3bec7;
  --button-disabled-active-background-color: #b9c3cc;
  --button-disabled-color: #fff;
  color: var(--button-background-color, currentColor);
  font-size: var(--button-font-size, inherit);
  font-weight: 500;
  line-height: var(--button-line-height);
  cursor: pointer; }
  .eps-button:active {
    --button-background-color: var(--button-active-background-color, transparent); }
  .eps-button:hover {
    --button-background-color: var(--button-hover-background-color); }
  .eps-theme-dark .eps-button {
    --button-primary-background-color: #39b54a;
    --button-primary-color: #fff;
    --button-primary-hover-background-color: #33a242;
    --button-primary-active-background-color: #35a945;
    --button-secondary-background-color: #b4b5b7;
    --button-secondary-color: #fff;
    --button-secondary-hover-background-color: #a7a8ab;
    --button-secondary-active-background-color: #acadb0;
    --button-cta-background-color: #93003F;
    --button-cta-hover-background-color: #7a0034;
    --button-cta-active-background-color: #840038;
    --button-cta-color: #fff;
    --button-link-background-color: #58d0f5;
    --button-link-hover-background-color: #40c9f4;
    --button-link-active-background-color: #4accf4;
    --button-link-color: #fff;
    --button-disabled-background-color: #64666a;
    --button-disabled-hover-background-color: #58595d;
    --button-disabled-active-background-color: #5d5e62;
    --button-disabled-color: #fff; }
  .eps-button--contained {
    color: var(--button-color);
    padding: var(--button-padding-y) var(--button-padding-x);
    background-color: var(--button-background-color, transparent);
    border: 1px solid var(--button-background-color); }
    .eps-button--contained:hover {
      color: var(--button-color); }
  .eps-button--outlined {
    display: block;
    padding: var(--button-padding-y) var(--button-padding-x);
    border: 1px solid var(--button-background-color); }
  .eps-button--contained, .eps-button--outlined {
    border-radius: 0.1875rem; }
  .eps-button--underlined {
    text-decoration: underline; }
  .eps-button--sm {
    --button-font-size: 0.75rem;
    --button-line-height: 14px; }
  .eps-button--lg {
    --button-font-size: 0.9375rem;
    --button-line-height: 18px; }
  .eps-button--primary {
    --button-color: var(--button-primary-color);
    --button-background-color: var(--button-primary-background-color);
    --button-hover-background-color: var(--button-primary-hover-background-color);
    --button-active-background-color: var(--button-primary-active-background-color); }
  .eps-button--secondary {
    --button-color: var(--buton-secondary-color);
    --button-background-color: var(--button-secondary-background-color);
    --button-hover-background-color: var(--button-secondary-hover-background-color);
    --button-active-background-color: var(--button-secondary-active-background-color); }
  .eps-button--danger {
    --button-color: var(--buton-danger-color);
    --button-background-color: var(--button-danger-background-color);
    --button-hover-background-color: var(--button-danger-hover-background-color);
    --button-active-background-color: var(--button-danger-active-background-color); }
  .eps-button--cta {
    --button-color: var(--button-cta-color);
    --button-background-color: var(--button-cta-background-color);
    --button-hover-background-color: var(--button-cta-hover-background-color);
    --button-active-background-color: var(--button-cta-active-background-color); }
  .eps-button--link {
    --button-color: var(--button-link-color);
    --button-background-color: var(--button-link-background-color);
    --button-hover-background-color: var(--button-link-hover-background-color);
    --button-active-background-color: var(--button-link-active-background-color); }
  .eps-button--disabled, .eps-button[disabled] {
    --button-color: var(--button-disabled-color);
    --button-background-color: var(--button-disabled-background-color);
    --button-hover-background-color: var(--button-disabled-hover-background-color);
    --button-active-background-color: var(--button-disabled-active-background-color);
    cursor: default; }

:root {
  --e-site-editor-conditions-row-controls-background: #fff;
  --e-site-editor-input-wrapper-border-color: #f1f3f5;
  --e-site-editor-input-wrapper-select-color: #556068;
  --e-site-editor-add-button-background-color: #a4afb7;
  --e-site-editor-add-button-color-hover-background-color: #6d7882;
  --e-site-editor-input-wrapper-condition-include-background-color:
	#a4afb7;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
	#c2cbd2;
  --e-site-editor-input-select2-search-field-color: #495157
; }

.eps-theme-dark {
  --select2-selection-background-color: tints(600);
  --e-site-editor-conditions-row-controls-background: #404349;
  --e-site-editor-input-wrapper-border-color: #404349;
  --e-site-editor-input-wrapper-select-color: #b4b5b7;
  --e-site-editor-add-button-background-color: #4c4f56;
  --e-site-editor-add-button-color-hover-background-color: #404349;
  --e-site-editor-input-wrapper-condition-include-background-color:
			#404349;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
			#404349;
  --e-site-editor-input-select2-search-field-color: #fff

; }

.e-site-editor-conditions__header {
  text-align: center; }

.e-site-editor-conditions__header-image {
  display: block;
  margin: 0 auto 2.75rem;
  width: 4.375rem; }

.e-site-editor-conditions__rows {
  margin: 2.75rem auto;
  max-width: 43.75rem; }

.e-site-editor-conditions__row {
  display: flex;
  flex-grow: 1;
  margin-top: 0.75rem; }

.e-site-editor-conditions__remove-condition {
  color: #c2cbd2;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  justify-content: center; }

.e-site-editor-conditions__row-controls {
  overflow: hidden;
  margin-left: 0.625rem;
  background-color: var(--e-site-editor-conditions-row-controls-background);
  display: flex;
  width: 100%;
  box-shadow: 0 3px 6px var(--color-box-shadow-color);
  border-radius: 0.1875rem; }
  .e-site-editor-conditions__row-controls--error {
    border: 1px solid #b01b1b; }

.e-site-editor-conditions__conflict {
  text-align: center;
  margin-top: 0.3125rem;
  color: #b01b1b; }

.e-site-editor-conditions__row-controls-inner {
  width: 100%;
  display: flex; }
  .e-site-editor-conditions__row-controls-inner div {
    flex: 1; }

.e-site-editor-conditions__add-button-container {
  text-align: center; }

.e-site-editor-conditions__add-button {
  margin-top: 2.75rem;
  background-color: var(--e-site-editor-add-button-background-color);
  color: #fff;
  text-transform: uppercase; }
  .e-site-editor-conditions__add-button:hover {
    background-color: var(--e-site-editor-add-button-color-hover-background-color);
    color: #fff; }

.e-site-editor-conditions__footer {
  display: flex;
  justify-content: flex-end;
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--hr-color); }

.e-site-editor-conditions__input-wrapper {
  position: relative;
  border-right: 1px solid;
  border-color: var(--e-site-editor-input-wrapper-border-color); }
  .e-site-editor-conditions__input-wrapper:first-child {
    border: none; }
  .e-site-editor-conditions__input-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    font-size: 0.75rem;
    height: 2.5rem;
    border-width: 0;
    padding: 0 0.625rem;
    width: 100%;
    position: relative;
    color: var(--e-site-editor-input-wrapper-select-color);
    outline: none;
    background: transparent; }
  .e-site-editor-conditions__input-wrapper:after {
    font-family: eicons;
    content: '\e8ad';
    font-size: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0.625rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single {
    border: none;
    line-height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 2.5rem;
    font-size: 0.75rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection {
    outline: none;
    background: transparent;
    height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection__arrow {
    display: none; }

.e-site-editor-conditions__input-wrapper--condition-type {
  position: relative; }
  .e-site-editor-conditions__input-wrapper--condition-type:before {
    font-family: eicons;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0.75rem;
    font-size: 0.9375rem;
    color: #fff;
    pointer-events: none;
    z-index: 1000; }
  .e-site-editor-conditions__input-wrapper--condition-type:after {
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type select {
    text-transform: uppercase;
    padding-right: 2.125rem;
    width: 7.5rem;
    font-size: 0.75rem;
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"]:before {
    content: '\e8cc'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-include-background-color); }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"]:before {
    content: '\e8cd'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-exclude-background-color); }

.select2-search__field {
  background-color: transparent;
  color: var(--e-site-editor-input-select2-search-field-color); }

.misc-pub-visibility {
  display: none; }

.eps-modal__overlay {
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  /* After '#adminmenuwrap' */ }

.select2-container {
  z-index: 9999;
  /* After 'eps-modal__overlay'. */ }

.post-conditions .spinner {
  margin: 0 10px;
  float: none;
  visibility: visible; }

.post-conditions .eps-button--underlined {
  /* No variable was used since this color comes from wordpress */
  color: #0073aa; }

.post-conditions .eps-modal {
  position: relative;
  background: #f1f3f5;
  max-width: 1200px;
  max-height: 800px;
  width: 90vw;
  height: 90vh;
  margin: auto; }
  .post-conditions .eps-modal .eps-modal__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1; }
  .post-conditions .eps-modal .eps-h1 {
    font-size: 30px;
    font-weight: 300; }
  .post-conditions .eps-modal .eps-text {
    font-size: 18px;
    line-height: 150%;
    margin: 1em 0;
    color: #a4afb7; }
  .post-conditions .eps-modal .eps-grid-container {
    width: auto; }
  .post-conditions .eps-modal__header {
    background: #ffffff;
    color: #556068;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
    padding: 2px 15px; }
    .post-conditions .eps-modal__header .eps-app__logo {
      width: 1.75rem;
      height: 1.75rem;
      line-height: 1.75rem;
      text-align: center;
      font-size: calc(0.4 * 1.75rem);
      border-radius: 50%;
      color: #ffffff;
      background-color: #93003F; }
    .post-conditions .eps-modal__header .eps-text {
      /* Didn't find better solution */
      position: relative;
      top: 2px;
      font-size: 0.9375rem;
      font-weight: 700;
      text-transform: uppercase;
      color: #6d7882; }
    .post-conditions .eps-modal__header .eps-button {
      font-size: 18px; }
  .post-conditions .eps-modal .e-site-editor-conditions__header {
    padding-top: 5vh; }
  .post-conditions .eps-modal .e-site-editor-conditions__rows {
    overflow-y: auto;
    max-height: 27vh;
    margin: 0 auto; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows:empty {
      margin-bottom: 30px; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows:not(:empty) {
      margin-bottom: 20px; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row {
      margin-top: 15px;
      padding: 0 14px; }
      .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls {
        border-radius: 0; }
        .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select {
          text-transform: none; }
          .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:focus {
            box-shadow: none;
            border: none;
            color: inherit; }
          .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:hover {
            color: inherit; }
        .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:hover, .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:focus {
          color: #ffffff; }
  .post-conditions .eps-modal .e-site-editor-conditions__add-button {
    margin-top: 0; }
  .post-conditions .eps-modal .e-site-editor-conditions__footer {
    z-index: 1000;
    border-top: 1px solid #d5dadf; }

#elementor-custom-code.postbox {
  border: 0; }

#elementor-custom-code .postbox-header {
  display: none; }

#elementor-custom-code .inside {
  padding: 0; }
  #elementor-custom-code .inside .elementor-custom-code-meta-box {
    margin: 0; }
    #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel {
      border: 1px solid #eceeef;
      border-bottom: 1px solid #ccd0d4;
      background: #ffffff; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-panel-placement {
        padding: 5px 40px;
        margin: 10px 0;
        flex-wrap: wrap;
        gap: 10px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement {
        display: none; }
        #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement.show {
          display: flex; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel div {
        display: flex; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field i {
        color: #c2cbd2;
        font-size: 15px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select {
        height: 20px;
        margin-top: 7px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select#location {
        direction: ltr; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.priority {
        margin-right: auto; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.location {
        margin-inline-end: 10px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label {
        font-weight: 500;
        font-size: 14px;
        line-height: 16px;
        color: #6d7882; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(even) {
        margin-left: 20px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(odd) {
        margin-left: 5px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes {
        padding-top: 18px; }
        #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes .label {
          position: relative;
          top: -5px; }
  #elementor-custom-code .inside .elementor-custom-code-codemirror-holder {
    border: 1px solid #eceeef;
    background: #f7f7f7;
    padding: 40px; }
    #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-field-label {
      margin: 0; }
    #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror {
      border: 1px solid #ccd0d4;
      resize: vertical;
      overflow: auto;
      max-width: 100%; }
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .elementor-field-textarea,
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror.CodeMirror-wrap,
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-scroll {
        height: 100%; }
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-sizer {
        min-height: 300px !important;
        border-right: 0; }

.post-type-elementor_snippet #minor-publishing-actions,
.post-type-elementor_snippet #save-action {
  display: none; }

.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror {
  background-color: #ffffff;
  display: flex; }
  .e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .elementor-field-textarea {
    width: calc(100% - 8px); }
  .e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .CodeMirror-sizer {
    box-sizing: border-box; }

@media (max-width: 850px), (max-height: 825px) {
  .post-conditions .eps-modal {
    width: 100vw;
    height: 90vh; }
    .post-conditions .eps-modal .e-site-editor-conditions__header {
      padding-top: 0; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows {
      max-height: 14vh; }
    .post-conditions .eps-modal .e-site-editor-conditions__header-image {
      margin: 0 auto; } }

@media (max-width: 590px), (max-height: 666px) {
  .post-conditions .eps-modal .eps-modal__body {
    overflow: auto;
    height: calc(100vh - 200px); }
    .post-conditions .eps-modal .eps-modal__body .e-site-editor-conditions__footer {
      background: #f1f3f5; } }

/*# sourceMappingURL=custom-code-rtl.css.map */PK!`��\�L�L)assets/css/modules/code-highlight.min.cssnu�[���.prismjs-dark code[class*=language-],.prismjs-dark pre[class*=language-]{color:#fff;background:0 0;text-shadow:0 -.1em .2em #000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-dark pre[class*=language-]{background:#4c3f33;padding:1em;margin:0;overflow:auto;border:.3em solid #7a6651;border-radius:.5em;-webkit-box-shadow:1px 1px .5em #000 inset;box-shadow:inset 1px 1px .5em #000}.prismjs-dark :not(pre)>code[class*=language-]{padding:.15em .2em .05em;border-radius:.3em;border:.13em solid #7a6651;-webkit-box-shadow:1px 1px .3em -.1em #000 inset;box-shadow:inset 1px 1px .3em -.1em #000;white-space:normal}.prismjs-dark .token.cdata,.prismjs-dark .token.doctype,.prismjs-dark .token.prolog,.token.comment{color:#997f66}.prismjs-dark .token.namespace,.prismjs-dark .token.punctuation{opacity:.7}.prismjs-dark .token.boolean,.prismjs-dark .token.constant,.prismjs-dark .token.number,.prismjs-dark .token.property,.prismjs-dark .token.symbol,.prismjs-dark .token.tag{color:#d1939e}.prismjs-dark .token.attr-name,.prismjs-dark .token.builtin,.prismjs-dark .token.char,.prismjs-dark .token.inserted,.prismjs-dark .token.selector,.prismjs-dark .token.string{color:#bce051}.prismjs-dark .language-css .token.string,.prismjs-dark .style .token.string,.prismjs-dark .token.entity,.prismjs-dark .token.operator,.prismjs-dark .token.url,.token.variable{color:#f4b73d}.prismjs-dark .token.atrule,.prismjs-dark .token.attr-value,.prismjs-dark .token.keyword{color:#d1939e}.prismjs-dark .token.important,.prismjs-dark .token.regex{color:#e90}.prismjs-dark .token.bold,.prismjs-dark .token.important{font-weight:700}.prismjs-dark .token.italic{font-style:italic}.prismjs-dark .token.entity{cursor:help}.prismjs-dark .token.deleted{color:red}.prismjs-default code[class*=language-],.prismjs-default pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-default code[class*=language-]::-moz-selection,.prismjs-default code[class*=language-] ::-moz-selection,.prismjs-default pre[class*=language-]::-moz-selection,.prismjs-default pre[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}.prismjs-default code[class*=language-]::selection,.prismjs-default code[class*=language-] ::selection,.prismjs-default pre[class*=language-]::selection,.prismjs-default pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{.prismjs-default code[class*=language-],.prismjs-default pre[class*=language-]{text-shadow:none}}.prismjs-default pre[class*=language-]{padding:1em;margin:0;overflow:auto}.prismjs-default :not(pre)>code[class*=language-],.prismjs-default pre[class*=language-]{background:#f5f2f0}.prismjs-default :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.prismjs-default .token.cdata,.prismjs-default .token.comment,.prismjs-default .token.doctype,.prismjs-default .token.prolog{color:#708090}.prismjs-default .token.punctuation{color:#999}.prismjs-default .token.namespace{opacity:.7}.prismjs-default .token.boolean,.prismjs-default .token.constant,.prismjs-default .token.deleted,.prismjs-default .token.number,.prismjs-default .token.property,.prismjs-default .token.symbol,.prismjs-default .token.tag{color:#905}.prismjs-default .token.attr-name,.prismjs-default .token.builtin,.prismjs-default .token.char,.prismjs-default .token.inserted,.prismjs-default .token.selector,.prismjs-default .token.string{color:#690}.prismjs-default .language-css .token.string,.prismjs-default .style .token.string,.prismjs-default .token.entity,.prismjs-default .token.operator,.prismjs-default .token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.prismjs-default .token.atrule,.prismjs-default .token.attr-value,.prismjs-default .token.keyword{color:#07a}.prismjs-default .token.class-name,.prismjs-default .token.function{color:#dd4a68}.prismjs-default .token.important,.prismjs-default .token.regex,.prismjs-default .token.variable{color:#e90}.prismjs-default .token.bold,.prismjs-default .token.important{font-weight:700}.prismjs-default .token.italic{font-style:italic}.prismjs-default .token.entity{cursor:help}.prismjs-okaidia code[class*=language-],.prismjs-okaidia pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-okaidia pre[class*=language-]{padding:1em;margin:0;overflow:auto;border-radius:.3em}.prismjs-okaidia :not(pre)>code[class*=language-],.prismjs-okaidia pre[class*=language-]{background:#272822}.prismjs-okaidia :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.prismjs-okaidia .token.cdata,.prismjs-okaidia .token.comment,.prismjs-okaidia .token.doctype,.prismjs-okaidia .token.prolog{color:#8292a2}.prismjs-okaidia .token.punctuation{color:#f8f8f2}.prismjs-okaidia .token.namespace{opacity:.7}.prismjs-okaidia .token.constant,.prismjs-okaidia .token.deleted,.prismjs-okaidia .token.property,.prismjs-okaidia .token.symbol,.prismjs-okaidia .token.tag{color:#f92672}.prismjs-okaidia .token.boolean,.prismjs-okaidia .token.number{color:#ae81ff}.prismjs-okaidia .token.attr-name,.prismjs-okaidia .token.builtin,.prismjs-okaidia .token.char,.prismjs-okaidia .token.inserted,.prismjs-okaidia .token.selector,.prismjs-okaidia .token.string{color:#a6e22e}.prismjs-okaidia .language-css .token.string,.prismjs-okaidia .style .token.string,.prismjs-okaidia .token.entity,.prismjs-okaidia .token.operator,.prismjs-okaidia .token.url,.prismjs-okaidia .token.variable{color:#f8f8f2}.prismjs-okaidia .token.atrule,.prismjs-okaidia .token.attr-value,.prismjs-okaidia .token.class-name,.prismjs-okaidia .token.function{color:#e6db74}.prismjs-okaidia .token.keyword{color:#66d9ef}.prismjs-okaidia .token.important,.prismjs-okaidia .token.regex{color:#fd971f}.prismjs-okaidia .token.bold,.prismjs-okaidia .token.important{font-weight:700}.prismjs-okaidia .token.italic{font-style:italic}.prismjs-okaidia .token.entity{cursor:help}.prismjs-solarizedlight code[class*=language-],.prismjs-solarizedlight pre[class*=language-]{color:#657b83;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-solarizedlight code[class*=language-]::-moz-selection,.prismjs-solarizedlight code[class*=language-] ::-moz-selection,.prismjs-solarizedlight pre[class*=language-]::-moz-selection,.prismjs-solarizedlight pre[class*=language-] ::-moz-selection{background:#073642}.prismjs-solarizedlight code[class*=language-]::selection,.prismjs-solarizedlight code[class*=language-] ::selection,.prismjs-solarizedlight pre[class*=language-]::selection,.prismjs-solarizedlight pre[class*=language-] ::selection{background:#073642}.prismjs-solarizedlight pre[class*=language-]{padding:1em;margin:0;overflow:auto;border-radius:.3em}.prismjs-solarizedlight :not(pre)>code[class*=language-],.prismjs-solarizedlight pre[class*=language-]{background-color:#fdf6e3}.prismjs-solarizedlight :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.prismjs-solarizedlight .token.cdata,.prismjs-solarizedlight .token.comment,.prismjs-solarizedlight .token.doctype,.prismjs-solarizedlight .token.prolog{color:#93a1a1}.prismjs-solarizedlight .token.punctuation{color:#586e75}.prismjs-solarizedlight .token.namespace{opacity:.7}.prismjs-solarizedlight .token.boolean,.prismjs-solarizedlight .token.constant,.prismjs-solarizedlight .token.deleted,.prismjs-solarizedlight .token.number,.prismjs-solarizedlight .token.property,.prismjs-solarizedlight .token.symbol,.token.tag{color:#268bd2}.prismjs-solarizedlight .token.attr-name,.prismjs-solarizedlight .token.builtin,.prismjs-solarizedlight .token.char,.prismjs-solarizedlight .token.inserted,.prismjs-solarizedlight .token.selector,.prismjs-solarizedlight .token.string,.prismjs-solarizedlight .token.url{color:#2aa198}.prismjs-solarizedlight .token.entity{color:#657b83;background:#eee8d5}.prismjs-solarizedlight .token.atrule,.prismjs-solarizedlight .token.attr-value,.prismjs-solarizedlight .token.keyword{color:#859900}.prismjs-solarizedlight .token.class-name,.prismjs-solarizedlight .token.function{color:#b58900}.prismjs-solarizedlight .token.important,.prismjs-solarizedlight .token.regex,.prismjs-solarizedlight .token.variable{color:#cb4b16}.prismjs-solarizedlight .token.bold,.prismjs-solarizedlight .token.important{font-weight:700}.prismjs-solarizedlight .token.italic{font-style:italic}.prismjs-solarizedlight .token.entity{cursor:help}.prismjs-tomorrow code[class*=language-],.prismjs-tomorrow pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-tomorrow pre[class*=language-]{padding:1em;margin:0;overflow:auto}.prismjs-tomorrow :not(pre)>code[class*=language-],.prismjs-tomorrow pre[class*=language-]{background:#2d2d2d}.prismjs-tomorrow :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.prismjs-tomorrow .token.block-comment,.prismjs-tomorrow .token.cdata,.prismjs-tomorrow .token.comment,.prismjs-tomorrow .token.doctype,.prismjs-tomorrow .token.prolog{color:#999}.prismjs-tomorrow .token.punctuation{color:#ccc}.prismjs-tomorrow .token.attr-name,.prismjs-tomorrow .token.deleted,.prismjs-tomorrow .token.namespace,.prismjs-tomorrow .token.tag{color:#e2777a}.prismjs-tomorrow .token.function-name{color:#6196cc}.prismjs-tomorrow .token.boolean,.prismjs-tomorrow .token.function,.prismjs-tomorrow .token.number{color:#f08d49}.prismjs-tomorrow .token.class-name,.prismjs-tomorrow .token.constant,.prismjs-tomorrow .token.property,.prismjs-tomorrow .token.symbol{color:#f8c555}.prismjs-tomorrow .token.atrule,.prismjs-tomorrow .token.builtin,.prismjs-tomorrow .token.important,.prismjs-tomorrow .token.keyword,.prismjs-tomorrow .token.selector{color:#cc99cd}.prismjs-tomorrow .token.attr-value,.prismjs-tomorrow .token.char,.prismjs-tomorrow .token.regex,.prismjs-tomorrow .token.string,.prismjs-tomorrow .token.variable{color:#7ec699}.prismjs-tomorrow .token.entity,.prismjs-tomorrow .token.operator,.prismjs-tomorrow .token.url{color:#67cdcc}.prismjs-tomorrow .token.bold,.prismjs-tomorrow .token.important{font-weight:700}.prismjs-tomorrow .token.italic{font-style:italic}.prismjs-tomorrow .token.entity{cursor:help}.prismjs-tomorrow .token.inserted{color:green}.prismjs-twilight code[class*=language-],.prismjs-twilight pre[class*=language-]{color:#fff;background:0 0;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;text-shadow:0 -.1em .2em #000;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}.prismjs-twilight :not(pre)>code[class*=language-],.prismjs-twilight pre[class*=language-]{background:#141414}.prismjs-twilight pre[class*=language-]{border-radius:.5em;border:.3em solid #545454;-webkit-box-shadow:1px 1px .5em #000 inset;box-shadow:inset 1px 1px .5em #000;margin:0;overflow:auto;padding:1em}.prismjs-twilight pre[class*=language-]::-moz-selection{background:#27292a}.prismjs-twilight pre[class*=language-]::selection{background:#27292a}.prismjs-twilight code[class*=language-]::-moz-selection,.prismjs-twilight code[class*=language-] ::-moz-selection,.prismjs-twilight pre[class*=language-]::-moz-selection,.prismjs-twilight pre[class*=language-] ::-moz-selection{text-shadow:none;background:hsla(0,0%,92.9%,.15)}.prismjs-twilight code[class*=language-]::selection,.prismjs-twilight code[class*=language-] ::selection,.prismjs-twilight pre[class*=language-]::selection,.prismjs-twilight pre[class*=language-] ::selection{text-shadow:none;background:hsla(0,0%,92.9%,.15)}.prismjs-twilight :not(pre)>code[class*=language-]{border-radius:.3em;border:.13em solid #545454;-webkit-box-shadow:1px 1px .3em -.1em #000 inset;box-shadow:inset 1px 1px .3em -.1em #000;padding:.15em .2em .05em;white-space:normal}.prismjs-twilight .token.cdata,.prismjs-twilight .token.comment,.prismjs-twilight .token.doctype,.prismjs-twilight .token.prolog{color:#777}.prismjs-twilight .token.namespace,.prismjs-twilight .token.punctuation{opacity:.7}.prismjs-twilight .token.boolean,.prismjs-twilight .token.deleted,.prismjs-twilight .token.number,.prismjs-twilight .token.tag{color:#ce6849}.prismjs-twilight .token.builtin,.prismjs-twilight .token.constant,.prismjs-twilight .token.keyword,.prismjs-twilight .token.property,.prismjs-twilight .token.selector,.prismjs-twilight .token.symbol{color:#f9ed99}.prismjs-twilight .language-css .token.string,.prismjs-twilight .style .token.string,.prismjs-twilight .token.attr-name,.prismjs-twilight .token.attr-value,.prismjs-twilight .token.char,.prismjs-twilight .token.entity,.prismjs-twilight .token.inserted,.prismjs-twilight .token.operator,.prismjs-twilight .token.string,.prismjs-twilight .token.url,.prismjs-twilight .token.variable{color:#909e6a}.prismjs-twilight .token.atrule{color:#7385a5}.prismjs-twilight .token.important,.prismjs-twilight .token.regex{color:#e8c062}.prismjs-twilight .token.bold,.prismjs-twilight .token.important{font-weight:700}.prismjs-twilight .token.italic{font-style:italic}.prismjs-twilight .token.entity{cursor:help}.prismjs-twilight pre[data-line]{padding:1em;position:relative}.prismjs-twilight .language-markup .token.attr-name,.prismjs-twilight .language-markup .token.punctuation,.prismjs-twilight .language-markup .token.tag{color:#ac885c}.prismjs-twilight .token{position:relative;z-index:1}.prismjs-twilight .line-highlight{background:rgba(84,84,84,.25);background:-webkit-gradient(linear,left top,right top,color-stop(70%,rgba(84,84,84,.1)),to(rgba(84,84,84,0)));background:-webkit-linear-gradient(left,rgba(84,84,84,.1) 70%,rgba(84,84,84,0));background:-o-linear-gradient(left,rgba(84,84,84,.1) 70%,rgba(84,84,84,0));background:linear-gradient(90deg,rgba(84,84,84,.1) 70%,rgba(84,84,84,0));border-bottom:1px dashed #545454;border-top:1px dashed #545454;left:0;line-height:inherit;margin-top:.75em;padding:inherit 0;pointer-events:none;position:absolute;right:0;white-space:pre;z-index:0}.prismjs-twilight .line-highlight:before,.prismjs-twilight .line-highlight[data-end]:after{background-color:#8693a6;border-radius:999px;-webkit-box-shadow:0 1px #fff;box-shadow:0 1px #fff;color:#f4f1ef;content:attr(data-start);font:700 65%/1.5 sans-serif;left:.6em;min-width:1em;padding:0 .5em;position:absolute;text-align:center;text-shadow:none;top:.4em;vertical-align:.3em}.prismjs-twilight .line-highlight[data-end]:after{bottom:.4em;content:attr(data-end);top:auto}.copy-to-clipboard div.code-toolbar{position:relative}.copy-to-clipboard div.code-toolbar>.toolbar{position:absolute;top:.3em;right:.2em;-webkit-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;opacity:0}.copy-to-clipboard div.code-toolbar:hover>.toolbar{opacity:1}.copy-to-clipboard div.code-toolbar:focus-within>.toolbar{opacity:1}.copy-to-clipboard div.code-toolbar>.toolbar .toolbar-item{display:inline-block}.copy-to-clipboard div.code-toolbar>.toolbar a{cursor:pointer}.copy-to-clipboard div.code-toolbar>.toolbar button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.copy-to-clipboard div.code-toolbar>.toolbar a,.copy-to-clipboard div.code-toolbar>.toolbar button,.copy-to-clipboard div.code-toolbar>.toolbar span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:hsla(0,0%,87.8%,.2);-webkit-box-shadow:0 2px 0 0 rgba(0,0,0,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}.copy-to-clipboard div.code-toolbar>.toolbar a:focus,div.code-toolbar>.toolbar a:hover,div.code-toolbar>.toolbar button:focus,div.code-toolbar>.toolbar button:hover,div.code-toolbar>.toolbar span:focus,div.code-toolbar>.toolbar span:hover{color:inherit;text-decoration:none}:not(.copy-to-clipboard)>div.code-toolbar>.toolbar{display:none}.word-wrap code[class*=language-],.word-wrap pre[class*=language-]{white-space:pre-wrap!important}.elementor-widget-code-highlight pre{direction:ltr}.prismjs-twilight pre:not([data-line=""]):not(.line-numbers){padding:.8em 0 1em 2em}.prismjs-dark pre:not([data-line=""]):not(.line-numbers),.prismjs-default pre:not([data-line=""]):not(.line-numbers),.prismjs-okaidia pre:not([data-line=""]):not(.line-numbers),.prismjs-solarizedlight pre:not([data-line=""]):not(.line-numbers),.prismjs-tomorrow pre:not([data-line=""]):not(.line-numbers){padding:1em 0 1em 2em}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:rgba(153,122,102,.08);background:-webkit-gradient(linear,left top,right top,color-stop(70%,rgba(153,122,102,.1)),to(rgba(153,122,102,0)));background:-webkit-linear-gradient(left,rgba(153,122,102,.1) 70%,rgba(153,122,102,0));background:-o-linear-gradient(left,rgba(153,122,102,.1) 70%,rgba(153,122,102,0));background:linear-gradient(90deg,rgba(153,122,102,.1) 70%,rgba(153,122,102,0));pointer-events:none;line-height:inherit;white-space:pre}@media print{.line-highlight{-webkit-print-color-adjust:exact;color-adjust:exact}}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:rgba(153,122,102,.4);color:#f4f1ef;font:700 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;-webkit-box-shadow:0 1px #fff;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}.line-numbers .line-highlight:after,.line-numbers .line-highlight:before{content:none}pre[id].linkable-line-numbers span.line-numbers-rows{pointer-events:all}pre[id].linkable-line-numbers span.line-numbers-rows>span:before{cursor:pointer}pre[id].linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:hsla(0,0%,50.2%,.2)}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}PK!�?*�
�
�"assets/css/modules/custom-code.cssnu�[���@keyframes fade-in {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

.wrap.elementor-admin-page-license form.elementor-license-box {
  max-width: 600px;
  background: white;
  margin: 20px 0;
  padding: 20px 20px; }
  .wrap.elementor-admin-page-license form.elementor-license-box h3 {
    border-bottom: 1px solid #eee;
    padding: 20px;
    margin: -20px -20px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 span {
      flex-grow: 1;
      padding-left: 5px; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 small {
      float: right;
      font-size: 13px;
      font-weight: normal; }
  .wrap.elementor-admin-page-license form.elementor-license-box label {
    display: block;
    font-size: 1.3em;
    font-weight: 600;
    margin: 1em 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .button {
    height: 30px;
    margin-left: 15px;
    margin-bottom: 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box p.description {
    margin: 10px 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch {
    display: flex;
    align-items: center;
    justify-content: space-between; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom {
    padding-bottom: 15px;
    border-bottom: 1px solid #eeeeee; }

.wrap.elementor-admin-page-license .elementor-box-action {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  margin-top: 30px; }
  .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link {
    color: #72777c;
    margin-right: 15px; }
    .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover {
      color: inherit; }

.fixed .column-elementor_library_type,
.fixed .column-instances {
  width: 10%; }

.fixed .elementor-shortcode-input {
  min-width: 235px; }

@media (min-width: 768px) and (max-width: 1440px) {
  .fixed .column-shortcode {
    width: 25%; }
  .fixed .elementor-shortcode-input {
    min-width: 100%; } }

#available-widgets [class*="elementor-template"] .widget-title:before {
  content: "\e801";
  font-family: eicon;
  font-size: 17px; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

.elementor-button-spinner.error:before {
  content: "\f335";
  color: #ff0000; }

span.font-variations-count {
  display: inline-block;
  vertical-align: top;
  margin: 1px 0 0 5px;
  padding: 0 5px;
  min-width: 7px;
  height: 17px;
  border-radius: 11px;
  background-color: #d4dffb;
  color: #4278b2;
  font-size: 9px;
  line-height: 17px;
  text-align: center;
  z-index: 26; }

.post-type-elementor_font div#elementor-font-custommetabox {
  background: none;
  border: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox button.handlediv {
    display: none; }
  .post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside {
    margin: 0;
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox h2.hndle {
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox .handle-actions {
    display: none; }

.post-type-elementor_font #tagsdiv-elementor_font_type,
.post-type-elementor_font #minor-publishing-actions,
.post-type-elementor_font #misc-publishing-actions {
  display: none; }

.elementor-metabox-content .repeater-block {
  background: #ffffff;
  color: #6d7882;
  padding: 20px;
  margin-bottom: 2px; }
  .elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block.block-visible {
    padding-bottom: 0;
    margin-bottom: 0; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row {
      display: none; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row {
      display: inline-block; }
  .elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block .repeater-title {
    cursor: pointer; }

.elementor-metabox-content .row-font-label {
  padding: 0;
  margin: 0;
  display: flex;
  text-transform: capitalize; }
  .elementor-metabox-content .row-font-label li {
    box-sizing: border-box;
    flex-grow: 1;
    width: 100%;
    margin: 0; }
    .elementor-metabox-content .row-font-label li span.label {
      font-weight: 500;
      padding-right: 10px; }
    .elementor-metabox-content .row-font-label li.row-font-weight, .elementor-metabox-content .row-font-label li.row-font-style {
      max-width: 180px; }
    .elementor-metabox-content .row-font-label li.row-font-actions {
      max-width: 200px;
      text-align: right; }

.elementor-metabox-content .repeater-content {
  margin: 0; }
  .elementor-metabox-content .repeater-content .repeater-content-top {
    display: flex;
    margin-bottom: 20px;
    line-height: 28px; }
    .elementor-metabox-content .repeater-content .repeater-content-top > div {
      box-sizing: border-box;
      flex-grow: 1; }
    .elementor-metabox-content .repeater-content .repeater-content-top p {
      margin: 0;
      display: inline-block; }
      .elementor-metabox-content .repeater-content .repeater-content-top p label {
        font-weight: 500;
        padding-right: 10px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select {
      max-width: 180px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar {
      max-width: 200px;
      text-align: right; }
  .elementor-metabox-content .repeater-content .repeater-content-bottom {
    background-color: #f7f7f7;
    padding: 20px 40px;
    margin: 0 -20px; }
    .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field {
      display: flex;
      align-items: center;
      background-color: #ffffff;
      padding: 10px 20px;
      margin-bottom: 10px;
      box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05); }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child {
        margin-bottom: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input {
        box-sizing: border-box;
        flex-grow: 1;
        width: 100%;
        margin: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label {
        font-weight: 500;
        max-width: 120px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input {
        padding: 5px 8px;
        margin: 0 15px;
        border-radius: 3px;
        font-size: 12px;
        width: 100%;
        background: none;
        box-shadow: none;
        color: #495157;
        border: 1px solid;
        outline: none; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus) {
          border-color: #d5dadf; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus {
          border-color: #a4afb7; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        max-width: 100px;
        font-size: 11px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        background-color: #eceeef;
        color: #a4afb7; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover {
          background-color: #b01b1b;
          color: white; }

.elementor-metabox-content .elementor-button {
  background-color: #a4afb7;
  color: #fff;
  line-height: 1;
  text-transform: uppercase;
  height: auto;
  padding: 10px 20px;
  outline: none;
  border: none;
  transition-property: background, color, box-shadow, opacity;
  transition-duration: .3s; }
  .elementor-metabox-content .elementor-button:hover, .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    color: #fff; }
  .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    background-color: #a4afb7; }
  .elementor-metabox-content .elementor-button:hover {
    background-color: #6d7882;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
    border: none; }
  .elementor-metabox-content .elementor-button:active {
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); }
  .elementor-metabox-content .elementor-button:not([disabled]) {
    cursor: pointer; }
  .elementor-metabox-content .elementor-button.elementor-size-xs {
    font-size: 11px;
    padding: 10px 20px;
    border-radius: 2px; }
  .elementor-metabox-content .elementor-button.elementor-size-sm {
    font-size: 13px;
    padding: 12px 24px;
    border-radius: 3px; }
  .elementor-metabox-content .elementor-button.elementor-size-md {
    font-size: 14px;
    padding: 15px 30px;
    border-radius: 4px; }
  .elementor-metabox-content .elementor-button.elementor-size-lg {
    font-size: 15px;
    padding: 20px 40px;
    border-radius: 5px; }
  .elementor-metabox-content .elementor-button.elementor-size-xl {
    font-size: 18px;
    padding: 25px 50px;
    border-radius: 6px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-right {
    float: right;
    margin-left: 5px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-left {
    float: left;
    margin-right: 5px; }

.elementor-metabox-content input.button.add-repeater-row {
  margin-top: 18px;
  border: none;
  box-shadow: none; }

.elementor-metabox-content .elementor-repeater-tool-btn {
  color: #a4afb7;
  cursor: pointer;
  padding: 0 20px;
  font-size: 12px;
  transition: all 0.3s; }
  .elementor-metabox-content .elementor-repeater-tool-btn i {
    padding-right: 5px; }
  .elementor-metabox-content .elementor-repeater-tool-btn:hover {
    color: #6d7882; }
  .elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover {
    color: #b01b1b; }

.elementor-metabox-content .row-font-preview,
.elementor-metabox-content .inline-preview {
  font-size: 16px;
  text-transform: capitalize; }

.column-font_preview {
  width: 65%; }

.widefat td.column-font_preview {
  font-size: 16px; }

.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]) {
  margin-top: 10px; }

.post-type-elementor_icons div#postbox-container-1 {
  display: none; }

.post-type-elementor_icons div#elementor-custom-icons-metabox {
  display: none;
  border: 1px solid #eceeef;
  border-radius: 1px;
  background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .inside {
    margin-top: 10px;
    margin-bottom: 20px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content {
    background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
    padding: 4px 10px 10px 10px; }
    @media (max-width: 1025px) {
      .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
        padding: 0; } }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h4 {
    color: #556068;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.7px;
    line-height: 28px;
    margin: 0 0 4px 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h5 {
    color: #a4afb7;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.5px;
    line-height: 21px;
    margin: 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i {
    font-size: 64px;
    color: #39b54a; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__file {
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover {
    background-color: grey; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__input {
    padding: 180px 0;
    display: flex;
    flex-direction: column;
    align-items: center; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone {
    outline: 2px dashed #d5dadf;
    outline-offset: -3px;
    background-color: #fff;
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons {
    background-color: #f7f7f7;
    border: 1px solid #eceeef;
    border-radius: 1px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content {
      background-color: #f7f7f7; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox {
        padding: 4px 10px 0 10px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
      height: 50px;
      color: #6d7882;
      background-color: #fff;
      box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
      padding: 0 35px;
      display: flex;
      align-items: center;
      justify-content: flex-start; }
      @media (max-width: 1025px) {
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
          padding: 0 6px; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
        padding-inline-end: 10px;
        padding-inline-start: 10px; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
            line-height: 1; }
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2) {
          border: 1px solid #a4afb7;
          border-top: 0;
          border-bottom: 0; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
        color: #556068;
        font-size: 14px;
        line-height: 1; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
            font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
          font-weight: bold; }
          @media (max-width: 1025px) {
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove {
          margin-left: auto;
          color: #556068;
          opacity: .6;
          cursor: pointer;
          transition: all 0.3s; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i {
            color: #6d7882; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover {
            opacity: 1; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer {
      color: #c2cbd2;
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      border-top: 1px solid #eceeef;
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      text-align: right;
      padding-top: 10px;
      padding-bottom: 10px;
      padding-inline-end: 35px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr));
    grid-gap: 20px;
    padding: 15px 35px 0 35px;
    overflow-y: auto;
    max-height: 575px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox ul li {
      position: relative;
      height: 0;
      padding-bottom: 100%;
      background-color: #fff;
      box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      overflow: hidden; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        padding: 1px; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
        color: #c2cbd2;
        font-size: 11px;
        padding: 18px 20px 0;
        white-space: nowrap;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis; }
        @media (max-width: 479px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
            display: none; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li i {
        font-size: 32px; }

.post-type-elementor_icons #tagsdiv-elementor_icon_type,
.post-type-elementor_icons #minor-publishing-actions,
.post-type-elementor_icons #misc-publishing-actions {
  display: none; }

.column-icons_prefix {
  width: 65%; }

:root {
  --color-box-shadow-color: rgba(0, 0, 0, 0.05); }

.eps-theme-dark {
  --color-box-shadow-color: rgba(0, 0, 0, 0.1); }

.eps-grid-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%; }
  .eps-grid-container--no-wrap {
    flex-wrap: nowrap; }
  .eps-grid-container--wrap-reverse {
    flex-wrap: wrap-reverse; }
  .eps-grid-container--spacing {
    --grid-row-gutter: calc(-1 * calc( var(--grid-spacing-gutter) * 0.0625rem));
    width: var(--grid-spacing-width);
    margin: var(--grid-row-gutter); }
    .eps-grid-container--spacing > .eps-grid-item {
      padding: var(--grid-spacing-gutter); }

.eps-grid--direction-row {
  flex-direction: row; }
  .eps-grid--direction-row-reverse {
    flex-direction: row-reverse; }

.eps-grid--direction-column {
  flex-direction: column; }
  .eps-grid--direction-column-reverse {
    flex-direction: column-reverse; }

.eps-grid--justify-stretch {
  justify-content: stretch; }

.eps-grid--justify-start {
  justify-content: flex-start; }

.eps-grid--justify-center {
  justify-content: center; }

.eps-grid--justify-end {
  justify-content: flex-end; }

.eps-grid--justify-space-between {
  justify-content: space-between; }

.eps-grid--justify-space-around {
  justify-content: space-around; }

.eps-grid--justify-space-evenly {
  justify-content: space-evenly; }

.eps-grid--align-content-stretch {
  align-content: stretch; }

.eps-grid--align-content-start {
  align-content: flex-start; }

.eps-grid--align-content-center {
  align-content: center; }

.eps-grid--align-content-end {
  align-content: flex-end; }

.eps-grid--align-content-space-between {
  align-content: space-between; }

.eps-grid--align-items-start {
  align-items: flex-start; }

.eps-grid--align-items-center {
  align-items: center; }

.eps-grid--align-items-end {
  align-items: flex-end; }

.eps-grid--align-items-baseline {
  align-items: baseline; }

.eps-grid--align-items-stretch {
  align-items: stretch; }

.eps-grid-item--zero-min-width {
  min-width: 0; }

@media screen and (min-width: 480px) {
  .eps-grid-item-sm {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 768px) {
  .eps-grid-item-md {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1025px) {
  .eps-grid-item-lg {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1440px) {
  .eps-grid-item-xl {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

@media screen and (min-width: 1600px) {
  .eps-grid-item-xxl {
    flex-grow: 1;
    max-width: 100%;
    flex-basis: 0; } }

.eps-grid-item-xs-1 {
  flex-grow: 0;
  max-width: 8.33333%;
  flex-basis: 8.33333%; }

.eps-grid-item-xs-2 {
  flex-grow: 0;
  max-width: 16.66667%;
  flex-basis: 16.66667%; }

.eps-grid-item-xs-3 {
  flex-grow: 0;
  max-width: 25%;
  flex-basis: 25%; }

.eps-grid-item-xs-4 {
  flex-grow: 0;
  max-width: 33.33333%;
  flex-basis: 33.33333%; }

.eps-grid-item-xs-5 {
  flex-grow: 0;
  max-width: 41.66667%;
  flex-basis: 41.66667%; }

.eps-grid-item-xs-6 {
  flex-grow: 0;
  max-width: 50%;
  flex-basis: 50%; }

.eps-grid-item-xs-7 {
  flex-grow: 0;
  max-width: 58.33333%;
  flex-basis: 58.33333%; }

.eps-grid-item-xs-8 {
  flex-grow: 0;
  max-width: 66.66667%;
  flex-basis: 66.66667%; }

.eps-grid-item-xs-9 {
  flex-grow: 0;
  max-width: 75%;
  flex-basis: 75%; }

.eps-grid-item-xs-10 {
  flex-grow: 0;
  max-width: 83.33333%;
  flex-basis: 83.33333%; }

.eps-grid-item-xs-11 {
  flex-grow: 0;
  max-width: 91.66667%;
  flex-basis: 91.66667%; }

.eps-grid-item-xs-12 {
  flex-grow: 0;
  max-width: 100%;
  flex-basis: 100%; }

@media screen and (min-width: 480px) {
  .eps-grid-item-sm-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-sm-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-sm-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-sm-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-sm-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-sm-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-sm-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-sm-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-sm-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-sm-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-sm-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-sm-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 768px) {
  .eps-grid-item-md-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-md-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-md-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-md-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-md-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-md-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-md-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-md-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-md-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-md-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-md-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-md-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1025px) {
  .eps-grid-item-lg-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-lg-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-lg-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-lg-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-lg-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-lg-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-lg-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-lg-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-lg-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-lg-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-lg-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-lg-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1440px) {
  .eps-grid-item-xl-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-xl-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-xl-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-xl-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-xl-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-xl-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-xl-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-xl-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-xl-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-xl-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-xl-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-xl-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

@media screen and (min-width: 1600px) {
  .eps-grid-item-xxl-1 {
    flex-grow: 0;
    max-width: 8.33333%;
    flex-basis: 8.33333%; }
  .eps-grid-item-xxl-2 {
    flex-grow: 0;
    max-width: 16.66667%;
    flex-basis: 16.66667%; }
  .eps-grid-item-xxl-3 {
    flex-grow: 0;
    max-width: 25%;
    flex-basis: 25%; }
  .eps-grid-item-xxl-4 {
    flex-grow: 0;
    max-width: 33.33333%;
    flex-basis: 33.33333%; }
  .eps-grid-item-xxl-5 {
    flex-grow: 0;
    max-width: 41.66667%;
    flex-basis: 41.66667%; }
  .eps-grid-item-xxl-6 {
    flex-grow: 0;
    max-width: 50%;
    flex-basis: 50%; }
  .eps-grid-item-xxl-7 {
    flex-grow: 0;
    max-width: 58.33333%;
    flex-basis: 58.33333%; }
  .eps-grid-item-xxl-8 {
    flex-grow: 0;
    max-width: 66.66667%;
    flex-basis: 66.66667%; }
  .eps-grid-item-xxl-9 {
    flex-grow: 0;
    max-width: 75%;
    flex-basis: 75%; }
  .eps-grid-item-xxl-10 {
    flex-grow: 0;
    max-width: 83.33333%;
    flex-basis: 83.33333%; }
  .eps-grid-item-xxl-11 {
    flex-grow: 0;
    max-width: 91.66667%;
    flex-basis: 91.66667%; }
  .eps-grid-item-xxl-12 {
    flex-grow: 0;
    max-width: 100%;
    flex-basis: 100%; } }

:root {
  --eps-modal-background-color: #fff;
  --eps-modal-header-background-color: #58d0f5; }

.eps-theme-dark {
  --eps-modal-background-color: #34383c;
  --eps-modal-header-background-color: #58d0f5; }

/** ----------------------------------------------------------------
	EPS Modal
---------------------------------------------------------------- */
.eps-modal {
  max-width: 43.75rem;
  background: var(--eps-modal-background-color);
  border-radius: 0.1875rem;
  animation: fade-in 0.4s ease-in both; }
  .eps-modal__overlay {
    background: rgba(0, 0, 0, 0.5);
    position: fixed;
    display: flex;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    z-index: 1030; }
  .eps-modal__header {
    font-size: 0.875rem;
    background: var(--eps-modal-header-background-color);
    height: 2.75rem;
    padding: 0.625rem 1rem;
    border-radius: 0.1875rem; }
    .eps-modal__header,
    .eps-modal__header .title {
      color: #fff; }
  .eps-modal__icon {
    margin-inline-end: 0.625rem; }
  .eps-modal__body {
    padding: 1.875rem; }
  .eps-modal__tip, .eps-modal .eps-tip {
    padding-inline-start: 0.75rem;
    border-inline-start: 3px solid #58d0f5; }
    .eps-modal__tip:not(:last-child), .eps-modal .eps-tip:not(:last-child) {
      margin-bottom: 1.875rem; }
    .eps-modal__tip:not(:first-child), .eps-modal .eps-tip:not(:first-child) {
      margin-top: 1.875rem; }
  .eps-modal__section:not(:first-child) {
    margin-top: 1.875rem; }
  .eps-modal__close-wrapper {
    padding-inline-start: 1rem;
    border-inline-start: solid 1px #fff; }

.eps-button {
  display: inline-flex;
  --button-line-height: 16px;
  --button-padding-y: 0.5em;
  --button-padding-x: 1.5em;
  --button-primary-background-color: #39b54a;
  --button-primary-hover-background-color: #33a242;
  --button-primary-active-background-color: #35a945;
  --button-primary-color: #fff;
  --button-secondary-background-color: #a4afb7;
  --button-secondary-hover-background-color: #96a2ac;
  --button-secondary-active-background-color: #9ba7b0;
  --button-secondary-color: #fff;
  --button-danger-background-color: #b01b1b;
  --button-danger-hover-background-color: #9a1818;
  --button-danger-active-background-color: #a31919;
  --button-danger-color: #fff;
  --button-cta-background-color: #93003F;
  --button-cta-hover-background-color: #7a0034;
  --button-cta-active-background-color: #840038;
  --button-cta-color: #fff;
  --button-link-background-color: #58d0f5;
  --button-link-hover-background-color: #40c9f4;
  --button-link-active-background-color: #4accf4;
  --button-link-color: #fff;
  --button-disabled-background-color: #c2cbd2;
  --button-disabled-hover-background-color: #b3bec7;
  --button-disabled-active-background-color: #b9c3cc;
  --button-disabled-color: #fff;
  color: var(--button-background-color, currentColor);
  font-size: var(--button-font-size, inherit);
  font-weight: 500;
  line-height: var(--button-line-height);
  cursor: pointer; }
  .eps-button:active {
    --button-background-color: var(--button-active-background-color, transparent); }
  .eps-button:hover {
    --button-background-color: var(--button-hover-background-color); }
  .eps-theme-dark .eps-button {
    --button-primary-background-color: #39b54a;
    --button-primary-color: #fff;
    --button-primary-hover-background-color: #33a242;
    --button-primary-active-background-color: #35a945;
    --button-secondary-background-color: #b4b5b7;
    --button-secondary-color: #fff;
    --button-secondary-hover-background-color: #a7a8ab;
    --button-secondary-active-background-color: #acadb0;
    --button-cta-background-color: #93003F;
    --button-cta-hover-background-color: #7a0034;
    --button-cta-active-background-color: #840038;
    --button-cta-color: #fff;
    --button-link-background-color: #58d0f5;
    --button-link-hover-background-color: #40c9f4;
    --button-link-active-background-color: #4accf4;
    --button-link-color: #fff;
    --button-disabled-background-color: #64666a;
    --button-disabled-hover-background-color: #58595d;
    --button-disabled-active-background-color: #5d5e62;
    --button-disabled-color: #fff; }
  .eps-button--contained {
    color: var(--button-color);
    padding: var(--button-padding-y) var(--button-padding-x);
    background-color: var(--button-background-color, transparent);
    border: 1px solid var(--button-background-color); }
    .eps-button--contained:hover {
      color: var(--button-color); }
  .eps-button--outlined {
    display: block;
    padding: var(--button-padding-y) var(--button-padding-x);
    border: 1px solid var(--button-background-color); }
  .eps-button--contained, .eps-button--outlined {
    border-radius: 0.1875rem; }
  .eps-button--underlined {
    text-decoration: underline; }
  .eps-button--sm {
    --button-font-size: 0.75rem;
    --button-line-height: 14px; }
  .eps-button--lg {
    --button-font-size: 0.9375rem;
    --button-line-height: 18px; }
  .eps-button--primary {
    --button-color: var(--button-primary-color);
    --button-background-color: var(--button-primary-background-color);
    --button-hover-background-color: var(--button-primary-hover-background-color);
    --button-active-background-color: var(--button-primary-active-background-color); }
  .eps-button--secondary {
    --button-color: var(--buton-secondary-color);
    --button-background-color: var(--button-secondary-background-color);
    --button-hover-background-color: var(--button-secondary-hover-background-color);
    --button-active-background-color: var(--button-secondary-active-background-color); }
  .eps-button--danger {
    --button-color: var(--buton-danger-color);
    --button-background-color: var(--button-danger-background-color);
    --button-hover-background-color: var(--button-danger-hover-background-color);
    --button-active-background-color: var(--button-danger-active-background-color); }
  .eps-button--cta {
    --button-color: var(--button-cta-color);
    --button-background-color: var(--button-cta-background-color);
    --button-hover-background-color: var(--button-cta-hover-background-color);
    --button-active-background-color: var(--button-cta-active-background-color); }
  .eps-button--link {
    --button-color: var(--button-link-color);
    --button-background-color: var(--button-link-background-color);
    --button-hover-background-color: var(--button-link-hover-background-color);
    --button-active-background-color: var(--button-link-active-background-color); }
  .eps-button--disabled, .eps-button[disabled] {
    --button-color: var(--button-disabled-color);
    --button-background-color: var(--button-disabled-background-color);
    --button-hover-background-color: var(--button-disabled-hover-background-color);
    --button-active-background-color: var(--button-disabled-active-background-color);
    cursor: default; }

:root {
  --e-site-editor-conditions-row-controls-background: #fff;
  --e-site-editor-input-wrapper-border-color: #f1f3f5;
  --e-site-editor-input-wrapper-select-color: #556068;
  --e-site-editor-add-button-background-color: #a4afb7;
  --e-site-editor-add-button-color-hover-background-color: #6d7882;
  --e-site-editor-input-wrapper-condition-include-background-color:
	#a4afb7;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
	#c2cbd2;
  --e-site-editor-input-select2-search-field-color: #495157
; }

.eps-theme-dark {
  --select2-selection-background-color: tints(600);
  --e-site-editor-conditions-row-controls-background: #404349;
  --e-site-editor-input-wrapper-border-color: #404349;
  --e-site-editor-input-wrapper-select-color: #b4b5b7;
  --e-site-editor-add-button-background-color: #4c4f56;
  --e-site-editor-add-button-color-hover-background-color: #404349;
  --e-site-editor-input-wrapper-condition-include-background-color:
			#404349;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
			#404349;
  --e-site-editor-input-select2-search-field-color: #fff

; }

.e-site-editor-conditions__header {
  text-align: center; }

.e-site-editor-conditions__header-image {
  display: block;
  margin: 0 auto 2.75rem;
  width: 4.375rem; }

.e-site-editor-conditions__rows {
  margin: 2.75rem auto;
  max-width: 43.75rem; }

.e-site-editor-conditions__row {
  display: flex;
  flex-grow: 1;
  margin-top: 0.75rem; }

.e-site-editor-conditions__remove-condition {
  color: #c2cbd2;
  font-size: 1.125rem;
  display: flex;
  align-items: center;
  justify-content: center; }

.e-site-editor-conditions__row-controls {
  overflow: hidden;
  margin-right: 0.625rem;
  background-color: var(--e-site-editor-conditions-row-controls-background);
  display: flex;
  width: 100%;
  box-shadow: 0 3px 6px var(--color-box-shadow-color);
  border-radius: 0.1875rem; }
  .e-site-editor-conditions__row-controls--error {
    border: 1px solid #b01b1b; }

.e-site-editor-conditions__conflict {
  text-align: center;
  margin-top: 0.3125rem;
  color: #b01b1b; }

.e-site-editor-conditions__row-controls-inner {
  width: 100%;
  display: flex; }
  .e-site-editor-conditions__row-controls-inner div {
    flex: 1; }

.e-site-editor-conditions__add-button-container {
  text-align: center; }

.e-site-editor-conditions__add-button {
  margin-top: 2.75rem;
  background-color: var(--e-site-editor-add-button-background-color);
  color: #fff;
  text-transform: uppercase; }
  .e-site-editor-conditions__add-button:hover {
    background-color: var(--e-site-editor-add-button-color-hover-background-color);
    color: #fff; }

.e-site-editor-conditions__footer {
  display: flex;
  justify-content: flex-end;
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--hr-color); }

.e-site-editor-conditions__input-wrapper {
  position: relative;
  border-left: 1px solid;
  border-color: var(--e-site-editor-input-wrapper-border-color); }
  .e-site-editor-conditions__input-wrapper:first-child {
    border: none; }
  .e-site-editor-conditions__input-wrapper select {
    appearance: none;
    -webkit-appearance: none;
    font-size: 0.75rem;
    height: 2.5rem;
    border-width: 0;
    padding: 0 0.625rem;
    width: 100%;
    position: relative;
    color: var(--e-site-editor-input-wrapper-select-color);
    outline: none;
    background: transparent; }
  .e-site-editor-conditions__input-wrapper:after {
    font-family: eicons;
    content: '\e8ad';
    font-size: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 0.625rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single {
    border: none;
    line-height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 2.5rem;
    font-size: 0.75rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection {
    outline: none;
    background: transparent;
    height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection__arrow {
    display: none; }

.e-site-editor-conditions__input-wrapper--condition-type {
  position: relative; }
  .e-site-editor-conditions__input-wrapper--condition-type:before {
    font-family: eicons;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0.75rem;
    font-size: 0.9375rem;
    color: #fff;
    pointer-events: none;
    z-index: 1000; }
  .e-site-editor-conditions__input-wrapper--condition-type:after {
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type select {
    text-transform: uppercase;
    padding-left: 2.125rem;
    width: 7.5rem;
    font-size: 0.75rem;
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"]:before {
    content: '\e8cc'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-include-background-color); }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"]:before {
    content: '\e8cd'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-exclude-background-color); }

.select2-search__field {
  background-color: transparent;
  color: var(--e-site-editor-input-select2-search-field-color); }

.misc-pub-visibility {
  display: none; }

.eps-modal__overlay {
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  /* After '#adminmenuwrap' */ }

.select2-container {
  z-index: 9999;
  /* After 'eps-modal__overlay'. */ }

.post-conditions .spinner {
  margin: 0 10px;
  float: none;
  visibility: visible; }

.post-conditions .eps-button--underlined {
  /* No variable was used since this color comes from wordpress */
  color: #0073aa; }

.post-conditions .eps-modal {
  position: relative;
  background: #f1f3f5;
  max-width: 1200px;
  max-height: 800px;
  width: 90vw;
  height: 90vh;
  margin: auto; }
  .post-conditions .eps-modal .eps-modal__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1; }
  .post-conditions .eps-modal .eps-h1 {
    font-size: 30px;
    font-weight: 300; }
  .post-conditions .eps-modal .eps-text {
    font-size: 18px;
    line-height: 150%;
    margin: 1em 0;
    color: #a4afb7; }
  .post-conditions .eps-modal .eps-grid-container {
    width: auto; }
  .post-conditions .eps-modal__header {
    background: #ffffff;
    color: #556068;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
    padding: 2px 15px; }
    .post-conditions .eps-modal__header .eps-app__logo {
      width: 1.75rem;
      height: 1.75rem;
      line-height: 1.75rem;
      text-align: center;
      font-size: calc(0.4 * 1.75rem);
      border-radius: 50%;
      color: #ffffff;
      background-color: #93003F; }
    .post-conditions .eps-modal__header .eps-text {
      /* Didn't find better solution */
      position: relative;
      top: 2px;
      font-size: 0.9375rem;
      font-weight: 700;
      text-transform: uppercase;
      color: #6d7882; }
    .post-conditions .eps-modal__header .eps-button {
      font-size: 18px; }
  .post-conditions .eps-modal .e-site-editor-conditions__header {
    padding-top: 5vh; }
  .post-conditions .eps-modal .e-site-editor-conditions__rows {
    overflow-y: auto;
    max-height: 27vh;
    margin: 0 auto; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows:empty {
      margin-bottom: 30px; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows:not(:empty) {
      margin-bottom: 20px; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row {
      margin-top: 15px;
      padding: 0 14px; }
      .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls {
        border-radius: 0; }
        .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select {
          text-transform: none; }
          .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:focus {
            box-shadow: none;
            border: none;
            color: inherit; }
          .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:hover {
            color: inherit; }
        .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:hover, .post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:focus {
          color: #ffffff; }
  .post-conditions .eps-modal .e-site-editor-conditions__add-button {
    margin-top: 0; }
  .post-conditions .eps-modal .e-site-editor-conditions__footer {
    z-index: 1000;
    border-top: 1px solid #d5dadf; }

#elementor-custom-code.postbox {
  border: 0; }

#elementor-custom-code .postbox-header {
  display: none; }

#elementor-custom-code .inside {
  padding: 0; }
  #elementor-custom-code .inside .elementor-custom-code-meta-box {
    margin: 0; }
    #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel {
      border: 1px solid #eceeef;
      border-bottom: 1px solid #ccd0d4;
      background: #ffffff; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-panel-placement {
        padding: 5px 40px;
        margin: 10px 0;
        flex-wrap: wrap;
        gap: 10px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement {
        display: none; }
        #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement.show {
          display: flex; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel div {
        display: flex; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field i {
        color: #c2cbd2;
        font-size: 15px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select {
        height: 20px;
        margin-top: 7px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select#location {
        direction: ltr; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.priority {
        margin-left: auto; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.location {
        margin-inline-end: 10px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label {
        font-weight: 500;
        font-size: 14px;
        line-height: 16px;
        color: #6d7882; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(even) {
        margin-right: 20px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(odd) {
        margin-right: 5px; }
      #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes {
        padding-top: 18px; }
        #elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes .label {
          position: relative;
          top: -5px; }
  #elementor-custom-code .inside .elementor-custom-code-codemirror-holder {
    border: 1px solid #eceeef;
    background: #f7f7f7;
    padding: 40px; }
    #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-field-label {
      margin: 0; }
    #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror {
      border: 1px solid #ccd0d4;
      resize: vertical;
      overflow: auto;
      max-width: 100%; }
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .elementor-field-textarea,
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror.CodeMirror-wrap,
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-scroll {
        height: 100%; }
      #elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-sizer {
        min-height: 300px !important;
        border-right: 0; }

.post-type-elementor_snippet #minor-publishing-actions,
.post-type-elementor_snippet #save-action {
  display: none; }

.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror {
  background-color: #ffffff;
  display: flex; }
  .e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .elementor-field-textarea {
    width: calc(100% - 8px); }
  .e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .CodeMirror-sizer {
    box-sizing: border-box; }

@media (max-width: 850px), (max-height: 825px) {
  .post-conditions .eps-modal {
    width: 100vw;
    height: 90vh; }
    .post-conditions .eps-modal .e-site-editor-conditions__header {
      padding-top: 0; }
    .post-conditions .eps-modal .e-site-editor-conditions__rows {
      max-height: 14vh; }
    .post-conditions .eps-modal .e-site-editor-conditions__header-image {
      margin: 0 auto; } }

@media (max-width: 590px), (max-height: 666px) {
  .post-conditions .eps-modal .eps-modal__body {
    overflow: auto;
    height: calc(100vh - 200px); }
    .post-conditions .eps-modal .eps-modal__body .e-site-editor-conditions__footer {
      background: #f1f3f5; } }

/*# sourceMappingURL=custom-code.css.map */PK!z�R	�	�&assets/css/modules/custom-code.min.cssnu�[���@-webkit-keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.wrap.elementor-admin-page-license form.elementor-license-box{max-width:600px;background:#fff;margin:20px 0;padding:20px}.wrap.elementor-admin-page-license form.elementor-license-box h3{border-bottom:1px solid #eee;padding:20px;margin:-20px -20px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wrap.elementor-admin-page-license form.elementor-license-box h3 span{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-left:5px}.wrap.elementor-admin-page-license form.elementor-license-box h3 small{float:right;font-size:13px;font-weight:400}.wrap.elementor-admin-page-license form.elementor-license-box label{display:block;font-size:1.3em;font-weight:600;margin:1em 0}.wrap.elementor-admin-page-license form.elementor-license-box .button{height:30px;margin-left:15px;margin-bottom:0}.wrap.elementor-admin-page-license form.elementor-license-box p.description{margin:10px 0}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom{padding-bottom:15px;border-bottom:1px solid #eee}.wrap.elementor-admin-page-license .elementor-box-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin-top:30px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link{color:#72777c;margin-right:15px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover{color:inherit}.fixed .column-elementor_library_type,.fixed .column-instances{width:10%}.fixed .elementor-shortcode-input{min-width:235px}@media (min-width:768px) and (max-width:1440px){.fixed .column-shortcode{width:25%}.fixed .elementor-shortcode-input{min-width:100%}}#available-widgets [class*=elementor-template] .widget-title:before{content:"\e801";font-family:eicon;font-size:17px}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}.elementor-button-spinner.error:before{content:"\f335";color:red}span.font-variations-count{display:inline-block;vertical-align:top;margin:1px 0 0 5px;padding:0 5px;min-width:7px;height:17px;border-radius:11px;background-color:#d4dffb;color:#4278b2;font-size:9px;line-height:17px;text-align:center;z-index:26}.post-type-elementor_font div#elementor-font-custommetabox{background:none;border:0}.post-type-elementor_font div#elementor-font-custommetabox button.handlediv{display:none}.post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside{margin:0;padding:0}.post-type-elementor_font div#elementor-font-custommetabox h2.hndle{padding:0}.post-type-elementor_font #minor-publishing-actions,.post-type-elementor_font #misc-publishing-actions,.post-type-elementor_font #tagsdiv-elementor_font_type,.post-type-elementor_font div#elementor-font-custommetabox .handle-actions{display:none}.elementor-metabox-content .repeater-block{background:#fff;color:#6d7882;padding:20px;margin-bottom:2px}.elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible{padding-bottom:0;margin-bottom:0}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row{display:inline-block}.elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row{display:none}.elementor-metabox-content .repeater-block .repeater-title{cursor:pointer}.elementor-metabox-content .row-font-label{padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;text-transform:capitalize}.elementor-metabox-content .row-font-label li{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .row-font-label li span.label{font-weight:500;padding-right:10px}.elementor-metabox-content .row-font-label li.row-font-style,.elementor-metabox-content .row-font-label li.row-font-weight{max-width:180px}.elementor-metabox-content .row-font-label li.row-font-actions{max-width:200px;text-align:right}.elementor-metabox-content .repeater-content{margin:0}.elementor-metabox-content .repeater-content .repeater-content-top{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:20px;line-height:28px}.elementor-metabox-content .repeater-content .repeater-content-top>div{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-metabox-content .repeater-content .repeater-content-top p{margin:0;display:inline-block}.elementor-metabox-content .repeater-content .repeater-content-top p label{font-weight:500;padding-right:10px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select{max-width:180px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar{max-width:200px;text-align:right}.elementor-metabox-content .repeater-content .repeater-content-bottom{background-color:#f7f7f7;padding:20px 40px;margin:0 -20px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;padding:10px 20px;margin-bottom:10px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.05);box-shadow:0 3px 5px rgba(0,0,0,.05)}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child{margin-bottom:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label{font-weight:500;max-width:120px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input{padding:5px 8px;margin:0 15px;border-radius:3px;font-size:12px;width:100%;background:none;-webkit-box-shadow:none;box-shadow:none;color:#495157;border:1px solid;outline:none}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus){border-color:#d5dadf}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus{border-color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{max-width:100px;font-size:11px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{background-color:#eceeef;color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover{background-color:#b01b1b;color:#fff}.elementor-metabox-content .elementor-button{background-color:#a4afb7;color:#fff;line-height:1;text-transform:uppercase;height:auto;padding:10px 20px;outline:none;border:none;-webkit-transition-property:background,color,opacity,-webkit-box-shadow;transition-property:background,color,opacity,-webkit-box-shadow;-o-transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity,-webkit-box-shadow;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:hover,.elementor-metabox-content .elementor-button:visited{color:#fff}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:visited{background-color:#a4afb7}.elementor-metabox-content .elementor-button:hover{background-color:#6d7882;-webkit-box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);border:none}.elementor-metabox-content .elementor-button:active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1);box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1)}.elementor-metabox-content .elementor-button:not([disabled]){cursor:pointer}.elementor-metabox-content .elementor-button.elementor-size-xs{font-size:11px;padding:10px 20px;border-radius:2px}.elementor-metabox-content .elementor-button.elementor-size-sm{font-size:13px;padding:12px 24px;border-radius:3px}.elementor-metabox-content .elementor-button.elementor-size-md{font-size:14px;padding:15px 30px;border-radius:4px}.elementor-metabox-content .elementor-button.elementor-size-lg{font-size:15px;padding:20px 40px;border-radius:5px}.elementor-metabox-content .elementor-button.elementor-size-xl{font-size:18px;padding:25px 50px;border-radius:6px}.elementor-metabox-content .elementor-button .elementor-align-icon-right{float:right;margin-left:5px}.elementor-metabox-content .elementor-button .elementor-align-icon-left{float:left;margin-right:5px}.elementor-metabox-content input.button.add-repeater-row{margin-top:18px;border:none;-webkit-box-shadow:none;box-shadow:none}.elementor-metabox-content .elementor-repeater-tool-btn{color:#a4afb7;cursor:pointer;padding:0 20px;font-size:12px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-metabox-content .elementor-repeater-tool-btn i{padding-right:5px}.elementor-metabox-content .elementor-repeater-tool-btn:hover{color:#6d7882}.elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover{color:#b01b1b}.elementor-metabox-content .inline-preview,.elementor-metabox-content .row-font-preview{font-size:16px;text-transform:capitalize}.column-font_preview{width:65%}.widefat td.column-font_preview{font-size:16px}.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]){margin-top:10px}.post-type-elementor_icons div#postbox-container-1{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox{display:none;border:1px solid #eceeef;border-radius:1px;background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .inside{margin-top:10px;margin-bottom:20px}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content{background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:4px 10px 10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:0}}.post-type-elementor_icons div#elementor-custom-icons-metabox h4{color:#556068;font-size:22px;font-weight:500;letter-spacing:.7px;line-height:28px;margin:0 0 4px}.post-type-elementor_icons div#elementor-custom-icons-metabox h5{color:#a4afb7;font-size:16px;font-weight:500;letter-spacing:.5px;line-height:21px;margin:0}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i{font-size:64px;color:#39b54a}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__file,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover{background-color:grey}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__input{padding:180px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone{outline:2px dashed #d5dadf;outline-offset:-3px;background-color:#fff;display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons{background-color:#f7f7f7;border:1px solid #eceeef;border-radius:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content{background-color:#f7f7f7}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox{padding:4px 10px 0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{height:50px;color:#6d7882;background-color:#fff;-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.06);box-shadow:0 2px 6px 0 rgba(0,0,0,.06);padding:0 35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{padding:0 6px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{-webkit-padding-end:10px;padding-inline-end:10px;-webkit-padding-start:10px;padding-inline-start:10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{line-height:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2){border:1px solid #a4afb7;border-top:0;border-bottom:0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{color:#556068;font-size:14px;line-height:1}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-weight:700}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove{margin-left:auto;color:#556068;opacity:.6;cursor:pointer;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i{color:#6d7882}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover{opacity:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer{color:#c2cbd2;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;border-top:1px solid #eceeef;font-size:11px;font-weight:500;line-height:1;text-align:right;padding-top:10px;padding-bottom:10px;-webkit-padding-end:35px;padding-inline-end:35px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));grid-gap:20px;padding:15px 35px 0;overflow-y:auto;max-height:575px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li{position:relative;height:0;padding-bottom:100%;background-color:#fff;-webkit-box-shadow:0 1px 12px rgba(0,0,0,.05);box-shadow:0 1px 12px rgba(0,0,0,.05);border-radius:3px;overflow:hidden}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{color:#c2cbd2;font-size:11px;padding:18px 20px 0;white-space:nowrap;max-width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}@media (max-width:479px){.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{display:none}}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li i{font-size:32px}.post-type-elementor_icons #minor-publishing-actions,.post-type-elementor_icons #misc-publishing-actions,.post-type-elementor_icons #tagsdiv-elementor_icon_type{display:none}.column-icons_prefix{width:65%}:root{--color-box-shadow-color:rgba(0,0,0,0.05)}.eps-theme-dark{--color-box-shadow-color:rgba(0,0,0,0.1)}.eps-grid-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.eps-grid-container--no-wrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.eps-grid-container--wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.eps-grid-container--spacing{--grid-row-gutter:calc(-1 * calc(var(--grid-spacing-gutter) * 0.0625rem));width:var(--grid-spacing-width);margin:var(--grid-row-gutter)}.eps-grid-container--spacing>.eps-grid-item{padding:var(--grid-spacing-gutter)}.eps-grid--direction-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.eps-grid--direction-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.eps-grid--direction-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.eps-grid--direction-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.eps-grid--justify-stretch{-webkit-box-pack:stretch;-ms-flex-pack:stretch;justify-content:stretch}.eps-grid--justify-start{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.eps-grid--justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eps-grid--justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.eps-grid--justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.eps-grid--justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.eps-grid--justify-space-evenly{-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.eps-grid--align-content-stretch{-ms-flex-line-pack:stretch;align-content:stretch}.eps-grid--align-content-start{-ms-flex-line-pack:start;align-content:flex-start}.eps-grid--align-content-center{-ms-flex-line-pack:center;align-content:center}.eps-grid--align-content-end{-ms-flex-line-pack:end;align-content:flex-end}.eps-grid--align-content-space-between{-ms-flex-line-pack:justify;align-content:space-between}.eps-grid--align-items-start{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.eps-grid--align-items-center{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.eps-grid--align-items-end{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.eps-grid--align-items-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.eps-grid--align-items-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.eps-grid-item--zero-min-width{min-width:0}@media screen and (min-width:480px){.eps-grid-item-sm{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:768px){.eps-grid-item-md{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1025px){.eps-grid-item-lg{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1440px){.eps-grid-item-xl{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}@media screen and (min-width:1600px){.eps-grid-item-xxl{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;-ms-flex-preferred-size:0;flex-basis:0}}.eps-grid-item-xs-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xs-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xs-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xs-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xs-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xs-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xs-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xs-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xs-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xs-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xs-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xs-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}@media screen and (min-width:480px){.eps-grid-item-sm-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-sm-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-sm-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-sm-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-sm-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-sm-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-sm-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-sm-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-sm-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-sm-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-sm-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-sm-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:768px){.eps-grid-item-md-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-md-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-md-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-md-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-md-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-md-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-md-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-md-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-md-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-md-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-md-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-md-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1025px){.eps-grid-item-lg-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-lg-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-lg-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-lg-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-lg-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-lg-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-lg-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-lg-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-lg-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-lg-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-lg-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-lg-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1440px){.eps-grid-item-xl-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xl-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xl-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xl-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xl-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xl-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xl-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xl-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xl-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xl-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xl-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xl-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}@media screen and (min-width:1600px){.eps-grid-item-xxl-1{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:8.33333%;-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%}.eps-grid-item-xxl-2{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:16.66667%;-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%}.eps-grid-item-xxl-3{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:25%;-ms-flex-preferred-size:25%;flex-basis:25%}.eps-grid-item-xxl-4{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:33.33333%;-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%}.eps-grid-item-xxl-5{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:41.66667%;-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%}.eps-grid-item-xxl-6{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:50%;-ms-flex-preferred-size:50%;flex-basis:50%}.eps-grid-item-xxl-7{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:58.33333%;-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%}.eps-grid-item-xxl-8{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:66.66667%;-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%}.eps-grid-item-xxl-9{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:75%;-ms-flex-preferred-size:75%;flex-basis:75%}.eps-grid-item-xxl-10{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:83.33333%;-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%}.eps-grid-item-xxl-11{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:91.66667%;-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%}.eps-grid-item-xxl-12{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}}:root{--eps-modal-background-color:#fff;--eps-modal-header-background-color:#58d0f5}.eps-theme-dark{--eps-modal-background-color:#34383c;--eps-modal-header-background-color:#58d0f5}.eps-modal{max-width:43.75rem;background:var(--eps-modal-background-color);border-radius:.1875rem;-webkit-animation:fade-in .4s ease-in both;animation:fade-in .4s ease-in both}.eps-modal__overlay{background:rgba(0,0,0,.5);position:fixed;display:-webkit-box;display:-ms-flexbox;display:flex;top:0;left:0;width:100%;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;z-index:1030}.eps-modal__header{font-size:.875rem;background:var(--eps-modal-header-background-color);height:2.75rem;padding:.625rem 1rem;border-radius:.1875rem}.eps-modal__header,.eps-modal__header .title{color:#fff}.eps-modal__icon{-webkit-margin-end:.625rem;margin-inline-end:.625rem}.eps-modal__body{padding:1.875rem}.eps-modal .eps-tip,.eps-modal__tip{-webkit-padding-start:.75rem;padding-inline-start:.75rem;-webkit-border-start:3px solid #58d0f5;border-inline-start:3px solid #58d0f5}.eps-modal .eps-tip:not(:last-child),.eps-modal__tip:not(:last-child){margin-bottom:1.875rem}.eps-modal .eps-tip:not(:first-child),.eps-modal__section:not(:first-child),.eps-modal__tip:not(:first-child){margin-top:1.875rem}.eps-modal__close-wrapper{-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-border-start:solid 1px #fff;border-inline-start:solid 1px #fff}.eps-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;--button-line-height:16px;--button-padding-y:0.5em;--button-padding-x:1.5em;--button-primary-background-color:#39b54a;--button-primary-hover-background-color:#33a242;--button-primary-active-background-color:#35a945;--button-primary-color:#fff;--button-secondary-background-color:#a4afb7;--button-secondary-hover-background-color:#96a2ac;--button-secondary-active-background-color:#9ba7b0;--button-secondary-color:#fff;--button-danger-background-color:#b01b1b;--button-danger-hover-background-color:#9a1818;--button-danger-active-background-color:#a31919;--button-danger-color:#fff;--button-cta-background-color:#93003f;--button-cta-hover-background-color:#7a0034;--button-cta-active-background-color:#840038;--button-cta-color:#fff;--button-link-background-color:#58d0f5;--button-link-hover-background-color:#40c9f4;--button-link-active-background-color:#4accf4;--button-link-color:#fff;--button-disabled-background-color:#c2cbd2;--button-disabled-hover-background-color:#b3bec7;--button-disabled-active-background-color:#b9c3cc;--button-disabled-color:#fff;color:var(--button-background-color,currentColor);font-size:var(--button-font-size,inherit);font-weight:500;line-height:var(--button-line-height);cursor:pointer}.eps-button:active{--button-background-color:var(--button-active-background-color,transparent)}.eps-button:hover{--button-background-color:var(--button-hover-background-color)}.eps-theme-dark .eps-button{--button-primary-background-color:#39b54a;--button-primary-color:#fff;--button-primary-hover-background-color:#33a242;--button-primary-active-background-color:#35a945;--button-secondary-background-color:#b4b5b7;--button-secondary-color:#fff;--button-secondary-hover-background-color:#a7a8ab;--button-secondary-active-background-color:#acadb0;--button-cta-background-color:#93003f;--button-cta-hover-background-color:#7a0034;--button-cta-active-background-color:#840038;--button-cta-color:#fff;--button-link-background-color:#58d0f5;--button-link-hover-background-color:#40c9f4;--button-link-active-background-color:#4accf4;--button-link-color:#fff;--button-disabled-background-color:#64666a;--button-disabled-hover-background-color:#58595d;--button-disabled-active-background-color:#5d5e62;--button-disabled-color:#fff}.eps-button--contained{padding:var(--button-padding-y) var(--button-padding-x);background-color:var(--button-background-color,transparent);border:1px solid var(--button-background-color)}.eps-button--contained,.eps-button--contained:hover{color:var(--button-color)}.eps-button--outlined{display:block;padding:var(--button-padding-y) var(--button-padding-x);border:1px solid var(--button-background-color)}.eps-button--contained,.eps-button--outlined{border-radius:.1875rem}.eps-button--underlined{text-decoration:underline}.eps-button--sm{--button-font-size:0.75rem;--button-line-height:14px}.eps-button--lg{--button-font-size:0.9375rem;--button-line-height:18px}.eps-button--primary{--button-color:var(--button-primary-color);--button-background-color:var(--button-primary-background-color);--button-hover-background-color:var(--button-primary-hover-background-color);--button-active-background-color:var(--button-primary-active-background-color)}.eps-button--secondary{--button-color:var(--buton-secondary-color);--button-background-color:var(--button-secondary-background-color);--button-hover-background-color:var(--button-secondary-hover-background-color);--button-active-background-color:var(--button-secondary-active-background-color)}.eps-button--danger{--button-color:var(--buton-danger-color);--button-background-color:var(--button-danger-background-color);--button-hover-background-color:var(--button-danger-hover-background-color);--button-active-background-color:var(--button-danger-active-background-color)}.eps-button--cta{--button-color:var(--button-cta-color);--button-background-color:var(--button-cta-background-color);--button-hover-background-color:var(--button-cta-hover-background-color);--button-active-background-color:var(--button-cta-active-background-color)}.eps-button--link{--button-color:var(--button-link-color);--button-background-color:var(--button-link-background-color);--button-hover-background-color:var(--button-link-hover-background-color);--button-active-background-color:var(--button-link-active-background-color)}.eps-button--disabled,.eps-button[disabled]{--button-color:var(--button-disabled-color);--button-background-color:var(--button-disabled-background-color);--button-hover-background-color:var(--button-disabled-hover-background-color);--button-active-background-color:var(--button-disabled-active-background-color);cursor:default}:root{--e-site-editor-conditions-row-controls-background:#fff;--e-site-editor-input-wrapper-border-color:#f1f3f5;--e-site-editor-input-wrapper-select-color:#556068;--e-site-editor-add-button-background-color:#a4afb7;--e-site-editor-add-button-color-hover-background-color:#6d7882;--e-site-editor-input-wrapper-condition-include-background-color:#a4afb7;--e-site-editor-input-wrapper-condition-exclude-background-color:#c2cbd2;--e-site-editor-input-select2-search-field-color:#495157}.eps-theme-dark{--select2-selection-background-color:tints(600);--e-site-editor-conditions-row-controls-background:#404349;--e-site-editor-input-wrapper-border-color:#404349;--e-site-editor-input-wrapper-select-color:#b4b5b7;--e-site-editor-add-button-background-color:#4c4f56;--e-site-editor-add-button-color-hover-background-color:#404349;--e-site-editor-input-wrapper-condition-include-background-color:#404349;--e-site-editor-input-wrapper-condition-exclude-background-color:#404349;--e-site-editor-input-select2-search-field-color:#fff}.e-site-editor-conditions__header{text-align:center}.e-site-editor-conditions__header-image{display:block;margin:0 auto 2.75rem;width:4.375rem}.e-site-editor-conditions__rows{margin:2.75rem auto;max-width:43.75rem}.e-site-editor-conditions__row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:.75rem}.e-site-editor-conditions__remove-condition{color:#c2cbd2;font-size:1.125rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.e-site-editor-conditions__row-controls{overflow:hidden;margin-right:.625rem;background-color:var(--e-site-editor-conditions-row-controls-background);display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-shadow:0 3px 6px var(--color-box-shadow-color);box-shadow:0 3px 6px var(--color-box-shadow-color);border-radius:.1875rem}.e-site-editor-conditions__row-controls--error{border:1px solid #b01b1b}.e-site-editor-conditions__conflict{text-align:center;margin-top:.3125rem;color:#b01b1b}.e-site-editor-conditions__row-controls-inner{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.e-site-editor-conditions__row-controls-inner div{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor-conditions__add-button-container{text-align:center}.e-site-editor-conditions__add-button{margin-top:2.75rem;background-color:var(--e-site-editor-add-button-background-color);color:#fff;text-transform:uppercase}.e-site-editor-conditions__add-button:hover{background-color:var(--e-site-editor-add-button-color-hover-background-color);color:#fff}.e-site-editor-conditions__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:absolute;bottom:0;right:0;left:0;padding:.5rem;border-top:1px solid var(--hr-color)}.e-site-editor-conditions__input-wrapper{position:relative;border-left:1px solid;border-left-color:var(--e-site-editor-input-wrapper-border-color);border-bottom-color:var(--e-site-editor-input-wrapper-border-color);border-right-color:var(--e-site-editor-input-wrapper-border-color);border-top-color:var(--e-site-editor-input-wrapper-border-color)}.e-site-editor-conditions__input-wrapper:first-child{border:none}.e-site-editor-conditions__input-wrapper select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-size:.75rem;height:2.5rem;border-width:0;padding:0 .625rem;width:100%;position:relative;color:var(--e-site-editor-input-wrapper-select-color);outline:none;background:transparent}.e-site-editor-conditions__input-wrapper:after{font-family:eicons;content:"\e8ad";font-size:.75rem;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:.625rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single{border:none;line-height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:2.5rem;font-size:.75rem}.e-site-editor-conditions__input-wrapper .select2-selection{outline:none;background:transparent;height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-selection__arrow{display:none}.e-site-editor-conditions__input-wrapper--condition-type{position:relative}.e-site-editor-conditions__input-wrapper--condition-type:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:.75rem;font-size:.9375rem;color:#fff;pointer-events:none;z-index:1000}.e-site-editor-conditions__input-wrapper--condition-type:after{color:#fff}.e-site-editor-conditions__input-wrapper--condition-type select{text-transform:uppercase;padding-left:2.125rem;width:7.5rem;font-size:.75rem;color:#fff}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include]:before{content:"\e8cc"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include] select{background-color:var(--e-site-editor-input-wrapper-condition-include-background-color)}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude]:before{content:"\e8cd"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude] select{background-color:var(--e-site-editor-input-wrapper-condition-exclude-background-color)}.select2-search__field{background-color:transparent;color:var(--e-site-editor-input-select2-search-field-color)}.misc-pub-visibility{display:none}.eps-modal__overlay{background:rgba(0,0,0,.8);z-index:9999}.select2-container{z-index:9999}.post-conditions .spinner{margin:0 10px;float:none;visibility:visible}.post-conditions .eps-button--underlined{color:#0073aa}.post-conditions .eps-modal{position:relative;background:#f1f3f5;max-width:1200px;max-height:800px;width:90vw;height:90vh;margin:auto}.post-conditions .eps-modal .eps-modal__body{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.post-conditions .eps-modal .eps-h1{font-size:30px;font-weight:300}.post-conditions .eps-modal .eps-text{font-size:18px;line-height:150%;margin:1em 0;color:#a4afb7}.post-conditions .eps-modal .eps-grid-container{width:auto}.post-conditions .eps-modal__header{background:#fff;color:#556068;-webkit-box-shadow:0 0 8px rgba(0,0,0,.1);box-shadow:0 0 8px rgba(0,0,0,.1);padding:2px 15px}.post-conditions .eps-modal__header .eps-app__logo{width:1.75rem;height:1.75rem;line-height:1.75rem;text-align:center;font-size:calc(.4 * 1.75rem);border-radius:50%;color:#fff;background-color:#93003f}.post-conditions .eps-modal__header .eps-text{position:relative;top:2px;font-size:.9375rem;font-weight:700;text-transform:uppercase;color:#6d7882}.post-conditions .eps-modal__header .eps-button{font-size:18px}.post-conditions .eps-modal .e-site-editor-conditions__header{padding-top:5vh}.post-conditions .eps-modal .e-site-editor-conditions__rows{overflow-y:auto;max-height:27vh;margin:0 auto}.post-conditions .eps-modal .e-site-editor-conditions__rows:empty{margin-bottom:30px}.post-conditions .eps-modal .e-site-editor-conditions__rows:not(:empty){margin-bottom:20px}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row{margin-top:15px;padding:0 14px}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls{border-radius:0}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select{text-transform:none}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:focus{-webkit-box-shadow:none;box-shadow:none;border:none;color:inherit}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls select:hover{color:inherit}.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:focus,.post-conditions .eps-modal .e-site-editor-conditions__rows .e-site-editor-conditions__row-controls .e-site-editor-conditions__input-wrapper--condition-type select:hover{color:#fff}.post-conditions .eps-modal .e-site-editor-conditions__add-button{margin-top:0}.post-conditions .eps-modal .e-site-editor-conditions__footer{z-index:1000;border-top:1px solid #d5dadf}#elementor-custom-code.postbox{border:0}#elementor-custom-code .postbox-header{display:none}#elementor-custom-code .inside{padding:0}#elementor-custom-code .inside .elementor-custom-code-meta-box{margin:0}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel{border:1px solid #eceeef;border-bottom-color:#ccd0d4;background:#fff}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-panel-placement{padding:5px 40px;margin:10px 0;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement{display:none}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-custom-code-options-placement.show,#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel div{display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field i{color:#c2cbd2;font-size:15px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select{height:20px;margin-top:7px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field select#location{direction:ltr}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.priority{margin-left:auto}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field.location{-webkit-margin-end:10px;margin-inline-end:10px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label{font-weight:500;font-size:14px;line-height:16px;color:#6d7882}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(2n){margin-right:20px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-label:nth-child(odd){margin-right:5px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes{padding-top:18px}#elementor-custom-code .inside .elementor-custom-code-meta-box .elementor-custom-code-panel .elementor-field-checkboxes .label{position:relative;top:-5px}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder{border:1px solid #eceeef;background:#f7f7f7;padding:40px}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-field-label{margin:0}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror{border:1px solid #ccd0d4;resize:vertical;overflow:auto;max-width:100%}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-scroll,#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror.CodeMirror-wrap,#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .elementor-field-textarea{height:100%}#elementor-custom-code .inside .elementor-custom-code-codemirror-holder .elementor-custom-code-codemirror .CodeMirror-sizer{min-height:300px!important;border-right:0}.post-type-elementor_snippet #minor-publishing-actions,.post-type-elementor_snippet #save-action{display:none}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .elementor-field-textarea{width:calc(100% - 8px)}.e--ua-safari #elementor-custom-code .elementor-custom-code-codemirror .CodeMirror-sizer{-webkit-box-sizing:border-box;box-sizing:border-box}@media (max-height:825px),(max-width:850px){.post-conditions .eps-modal{width:100vw;height:90vh}.post-conditions .eps-modal .e-site-editor-conditions__header{padding-top:0}.post-conditions .eps-modal .e-site-editor-conditions__rows{max-height:14vh}.post-conditions .eps-modal .e-site-editor-conditions__header-image{margin:0 auto}}@media (max-height:666px),(max-width:590px){.post-conditions .eps-modal .eps-modal__body{overflow:auto;height:calc(100vh - 200px)}.post-conditions .eps-modal .eps-modal__body .e-site-editor-conditions__footer{background:#f1f3f5}}PK!`B,���assets/css/widget-forms.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}PK!h*��assets/css/frontend-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    -webkit-transform: scale(0.85);
        -ms-transform: scale(0.85);
            transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    -webkit-transform: translateY(600px);
        -ms-transform: translateY(600px);
            transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    -webkit-transform: translateX(30px);
        -ms-transform: translateX(30px);
            transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    -webkit-transform: translateX(-30px);
        -ms-transform: translateX(-30px);
            transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
            transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1.17);
        -ms-transform: scale(1.17);
            transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    -webkit-transform: translateY(500px);
        -ms-transform: translateY(500px);
            transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    -webkit-transform: scale(1.2) translate(var(--translate));
        -ms-transform: scale(1.2) translate(var(--translate));
            transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: -webkit-gradient(linear, left bottom, left top, from(#feb416), to(#fec449));
  background-image: -webkit-linear-gradient(bottom, #feb416, #fec449);
  background-image: -o-linear-gradient(bottom, #feb416, #fec449);
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-left: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-right: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-left: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  -ms-flex-preferred-size: auto;
      flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%; }

@media (max-width: 1024px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

@media (max-width: 767px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    left: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-right: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: 1025px) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: 1024px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, right); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-left: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  left: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s;
  transition: background-color 0.4s, -webkit-transform 0s;
  -o-transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s, -webkit-transform 0s;
  text-align: right; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, 0);
  right: var(--side-cart-alignment-right, auto);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  top: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, right); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  -o-transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: var(--side-cart-alignment-transform, translateX(-100%));
      -ms-transform: var(--side-cart-alignment-transform, translateX(-100%));
          transform: var(--side-cart-alignment-transform, translateX(-100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  -ms-flex-item-align: end;
      align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: -webkit-max-content auto;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      -webkit-margin-start: 5px;
              margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    -ms-flex-item-align: var(--price-quantity-position--align-self, end);
        align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-right: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    left: 0;
    bottom: 20px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-left: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: 767px) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    -webkit-transform: translateY(50%);
        -ms-transform: translateY(50%);
            transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      right: 0;
      left: auto;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: background-color 0.4s, -webkit-transform 0s;
      transition: background-color 0.4s, -webkit-transform 0s;
      -o-transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s, -webkit-transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    -o-transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    -webkit-transform: translateY(-10px);
        -ms-transform: translateY(-10px);
            transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      -webkit-box-flex: 75%;
          -ms-flex: 75%;
              flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      -webkit-box-flex: 20%;
          -ms-flex: 20%;
              flex: 20%;
      text-align: left; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: right;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-right: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                  transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-left: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-right: 15px;
            font-size: 12px; }
            @media (max-width: 1024px) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        -webkit-box-align: var(--place-order-title-alignment, stretch);
            -ms-flex-align: var(--place-order-title-alignment, stretch);
                align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: left; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: right; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-right: 1rem;
        padding-left: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                  transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: right; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, right); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: right;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: var(--place-order-title-alignment, stretch);
          -ms-flex-align: var(--place-order-title-alignment, stretch);
              align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-left: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: left;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        -webkit-box-flex: 2;
            -ms-flex: 2;
                flex: 2;
        padding-left: 30px; }
        @media (max-width: 1024px) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-left: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-left: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: right;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-left: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-right: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: 768px) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-right: 0;
          padding-left: 0; }
      @media (min-width: 767px) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: 768px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-right: 0;
        padding-left: 0; } }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-right: 0;
          padding-left: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-right: 0;
      padding-left: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-right: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
         -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
            transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: right;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      -webkit-padding-start: 0;
              padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: left;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-right: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-right: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-right: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
              transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: right;
    position: absolute;
    margin-right: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    -webkit-margin-start: 0;
            margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
              transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: var(--tabs-container-justify-content, space-between);
        -ms-flex-pack: var(--tabs-container-justify-content, space-between);
            justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: 767px) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-right: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-left: 0;
        border-right-width: 0; }
      @media (max-width: 767px) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0; }

.e-sticky-right-column--active {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      -webkit-transform: translateY(-5%);
          -ms-transform: translateY(-5%);
              transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: left; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: left; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: left; }

.elementor-search-form {
  display: block;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    color: #55595c;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    -webkit-transition: color 0.2s, background 0.2s;
    -o-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    -ms-flex-negative: 0;
        flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      -webkit-transform: scale(0);
          -ms-transform: scale(0);
              transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-author-box__avatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-left: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      -o-object-fit: cover;
         object-fit: cover; }
  .elementor-author-box__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  -ms-flex-item-align: center;
      align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: none;
  background-color: transparent;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    left: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
       -o-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
          transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  -webkit-transition-duration: 1s;
       -o-transition-duration: 1s;
          transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
      -ms-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
          transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover; }

.elementor-motion-effects-perspective {
  -webkit-perspective: 1200px;
          perspective: 1200px; }

.elementor-widget-posts:after, .elementor-widget-archive-posts:after {
  display: none; }

.elementor-posts-container.elementor-posts-masonry {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor-posts-container:not(.elementor-posts-masonry) {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-posts-container .elementor-post {
  padding: 0;
  margin: 0; }
  .elementor-posts-container .elementor-post__thumbnail {
    overflow: hidden; }
    .elementor-posts-container .elementor-post__thumbnail img {
      display: block;
      width: 100%;
      max-height: none;
      max-width: none;
      -webkit-transition: -webkit-filter 0.3s;
      transition: -webkit-filter 0.3s;
      -o-transition: filter 0.3s;
      transition: filter 0.3s;
      transition: filter 0.3s, -webkit-filter 0.3s; }
    .elementor-posts-container .elementor-post__thumbnail__link {
      position: relative;
      display: block;
      width: 100%; }

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    height: auto;
    position: absolute;
    top: calc( 50% + 1px);
    left: calc( 50% + 1px);
    -webkit-transform: scale(1.01) translate(-50%, -50%);
        -ms-transform: scale(1.01) translate(-50%, -50%);
            transform: scale(1.01) translate(-50%, -50%); }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
    height: 100%;
    width: auto; }

.elementor-posts .elementor-post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition-property: background, border, -webkit-box-shadow;
  transition-property: background, border, -webkit-box-shadow;
  -o-transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow, -webkit-box-shadow;
  -webkit-transition-duration: 0.25s;
       -o-transition-duration: 0.25s;
          transition-duration: 0.25s; }
  .elementor-posts .elementor-post__title {
    font-size: 18px;
    margin: 0; }
  .elementor-posts .elementor-post__excerpt {
    margin-bottom: 10px; }
    .elementor-posts .elementor-post__excerpt p {
      margin: 0;
      line-height: 1.5em;
      font-size: 14px;
      color: #777; }
  .elementor-posts .elementor-post__meta-data {
    line-height: 1.3em;
    font-size: 12px;
    margin-bottom: 13px;
    color: #adadad; }
  .elementor-posts .elementor-post__read-more {
    font-size: 12px;
    font-weight: bold; }
  .elementor-posts .elementor-post__thumbnail {
    position: relative; }

.elementor-posts--skin-classic {
  display: grid;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-posts--skin-classic:not(.elementor-posts-masonry) {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch; }
  .elementor-posts--skin-classic .elementor-post {
    overflow: hidden; }
    .elementor-posts--skin-classic .elementor-post__text {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }

.elementor-posts--align-left .elementor-post {
  text-align: left; }

.elementor-posts--align-right .elementor-post {
  text-align: right; }

.elementor-posts--align-center .elementor-post {
  text-align: center; }

.elementor-posts--thumbnail-top .elementor-post {
  display: block;
  /*

			 used to be
			 align-self: flex-start;
			 until v2.1

			*/ }
  .elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
    margin-bottom: 20px; }
  .elementor-posts--thumbnail-top .elementor-post__text {
    width: 100%; }

.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link {
  margin-right: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link {
  margin-left: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link {
  margin-right: auto;
  margin-left: auto; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link, .elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 25%; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
  margin-right: 20px; }

.elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 1;
      -ms-flex-order: 0;
          order: 0;
  margin-left: 20px; }

.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link {
  display: none; }

.elementor-posts .elementor-post__card {
  overflow: hidden;
  position: relative;
  background-color: #fff;
  width: 100%;
  min-height: 100%;
  border-radius: 3px;
  border: 0 solid #818a91;
  -webkit-transition: all 0.25s;
  -o-transition: all 0.25s;
  transition: all 0.25s; }
  .elementor-posts .elementor-post__card .elementor-post__thumbnail {
    position: relative;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d; }
    .elementor-posts .elementor-post__card .elementor-post__thumbnail img {
      width: calc( 100% + 1px); }
  .elementor-posts .elementor-post__card .elementor-post__text {
    padding: 0 30px;
    margin-bottom: 0;
    margin-top: 20px; }
  .elementor-posts .elementor-post__card .elementor-post__read-more {
    margin-bottom: 20px;
    display: inline-block; }
  .elementor-posts .elementor-post__card .elementor-post__meta-data {
    padding: 15px 30px;
    margin-bottom: 0;
    border-top: 1px solid #eaeaea; }
    .elementor-posts .elementor-post__card .elementor-post__meta-data span + span:before {
      margin: 0 5px; }
  .elementor-posts .elementor-post__card .elementor-post__title {
    font-size: 21px; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt {
    line-height: 1.7; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt, .elementor-posts .elementor-post__card .elementor-post__title {
    margin-bottom: 25px; }
  .elementor-posts .elementor-post__card .elementor-post__badge, .elementor-posts .elementor-post__card .elementor-post__read-more {
    text-transform: uppercase; }

.elementor-posts .elementor-post__badge {
  position: absolute;
  top: 0;
  background: #818a91;
  color: #fff;
  font-size: 12px;
  padding: 0.6em 1.2em;
  line-height: 1;
  font-weight: 400;
  margin: 20px;
  border-radius: 999px; }

.elementor-posts .elementor-post__avatar {
  position: relative;
  padding: 0 30px;
  width: 100%;
  top: -25px;
  height: 0;
  pointer-events: none; }
  .elementor-posts .elementor-post__avatar img {
    border-radius: 50%;
    width: 60px;
    pointer-events: all;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data {
  margin-top: auto; }

.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar {
  padding-top: 0;
  position: static;
  height: auto; }
  .elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    vertical-align: bottom; }

.elementor-posts--show-avatar .elementor-post__thumbnail__link {
  margin-bottom: 25px; }

.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after {
  display: block;
  content: '';
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.35)), color-stop(75%, rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  opacity: 1;
  -webkit-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out; }

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after {
  opacity: 0.5; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-out .elementor-post__thumbnail img, .elementor-posts__hover-zoom-in .elementor-post__thumbnail img {
  -webkit-transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  -o-transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s; }

.elementor-card-shadow-yes .elementor-post__card {
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
  .elementor-card-shadow-yes .elementor-post__card:hover {
    -webkit-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15); }

.elementor-posts--skin-full_content article {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden; }
  .elementor-posts--skin-full_content article .elementor-post__thumbnail {
    padding-bottom: 0; }

body.elementor-editor-active .elementor-posts--skin-full_content,
body.elementor-editor-active .elementor-posts--skin-archive_full_content {
  pointer-events: none; }
  body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link,
  body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link {
    display: none; }

body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link {
  display: block; }

.elementor-portfolio__filters {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  margin: 0; }

.elementor-portfolio__filter {
  margin: 0;
  cursor: pointer;
  padding: 8px; }

.elementor-portfolio-item {
  -ms-flex-item-align: start;
      align-self: flex-start;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: ease-in-out;
       -o-transition-timing-function: ease-in-out;
          transition-timing-function: ease-in-out;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  overflow: hidden;
  margin: 0; }
  .elementor-portfolio-item__title {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #fff; }
  .elementor-portfolio-item__tags__separator:before {
    content: ', '; }
  .elementor-portfolio-item__overlay {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    -webkit-transition: opacity 1s;
    -o-transition: opacity 1s;
    transition: opacity 1s;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    overflow: hidden;
    background-color: rgba(129, 138, 145, 0.8); }
    .elementor-portfolio-item__overlay:hover {
      opacity: 1;
      -webkit-transition: opacity 0.5s;
      -o-transition: opacity 0.5s;
      transition: opacity 0.5s; }
  .elementor-portfolio-item__img img[src=""] {
    background-color: rgba(0, 0, 0, 0.1);
    height: 100%; }

.elementor-portfolio.elementor-has-item-ratio {
  -webkit-transition: height 0.5s;
  -o-transition: height 0.5s;
  transition: height 0.5s; }
  .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1); }
    .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link {
      padding-bottom: 56.25%; }

.elementor ul li.elementor-portfolio__filter {
  list-style-type: none; }

.elementor-widget-posts.load-more-align-center .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper {
  text-align: center; }

.elementor-widget-posts.load-more-align-start .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper {
  text-align: start; }

.elementor-widget-posts.load-more-align-end .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper {
  text-align: end; }

.elementor-widget-posts.load-more-align-justify .elementor-button, .elementor-widget-archive-posts.load-more-align-justify .elementor-button {
  width: 100%; }

.elementor-widget-posts .e-load-more-spinner, .elementor-widget-archive-posts .e-load-more-spinner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-posts .e-load-more-spinner i,
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner i,
  .elementor-widget-archive-posts .e-load-more-spinner svg {
    margin: 0 auto;
    display: none; }
  .elementor-widget-posts .e-load-more-spinner i, .elementor-widget-archive-posts .e-load-more-spinner i {
    color: var(--load-more-spinner-color); }
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner svg {
    fill: var(--load-more-spinner-color);
    height: 1em;
    width: 1em; }

.elementor-widget-posts .e-load-more-message, .elementor-widget-archive-posts .e-load-more-message {
  color: var(--load-more-message-color);
  text-align: var(--load-more-message-alignment, center);
  display: none;
  margin-top: var(--load-more—spacing, 30px); }

.elementor-widget-posts.e-load-more-pagination-loading, .elementor-widget-archive-posts.e-load-more-pagination-loading {
  cursor: default; }
  .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner {
    margin-top: var(--load-more—spacing, 30px); }
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
  .elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper {
    visibility: hidden; }

.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper {
  display: none; }

.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message, .elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message {
  display: block; }

.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper {
  visibility: visible; }

.elementor-widget-posts .elementor-button-wrapper, .elementor-widget-archive-posts .elementor-button-wrapper {
  margin-top: var(--load-more—spacing, 30px); }
  .elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner, .elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner {
    position: absolute;
    right: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    margin: inherit; }
  .elementor-widget-posts .elementor-button-wrapper .elementor-button, .elementor-widget-archive-posts .elementor-button-wrapper .elementor-button {
    cursor: pointer;
    position: relative; }

/*
Multi Steps Form

Currently manually overwriting  - need to find a better solution,
the source property is coming from element/dev/scss...

*/
/* TODO: check why elementor-hidden class is not working */
.elementor-hidden,
.elementor-button.elementor-hidden {
  display: none; }

.e-form__step {
  width: 100%; }
  .e-form__step:not(.elementor-hidden) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

.e-form__buttons {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .e-form__buttons, .e-form__buttons__wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }

.e-form__indicators {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  font-size: 13px;
  margin-bottom: var(--e-form-steps-indicators-spacing); }
  .e-form__indicators__indicator {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    padding: 0 var(--e-form-steps-divider-gap); }
    .e-form__indicators__indicator__progress {
      width: 100%;
      position: relative;
      background-color: var(--e-form-steps-indicator-progress-background-color);
      border-radius: var(--e-form-steps-indicator-progress-border-radius);
      overflow: hidden; }
      .e-form__indicators__indicator__progress__meter {
        width: var(--e-form-steps-indicator-progress-meter-width, 0);
        height: var(--e-form-steps-indicator-progress-height);
        line-height: var(--e-form-steps-indicator-progress-height);
        padding-right: 15px;
        border-radius: var(--e-form-steps-indicator-progress-border-radius);
        background-color: var(--e-form-steps-indicator-progress-color);
        color: var(--e-form-steps-indicator-progress-meter-color);
        text-align: right;
        -webkit-transition: width 0.1s linear;
        -o-transition: width 0.1s linear;
        transition: width 0.1s linear; }
    .e-form__indicators__indicator:first-child {
      padding-left: 0; }
    .e-form__indicators__indicator:last-child {
      padding-right: 0; }
    .e-form__indicators__indicator--state-inactive {
      color: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
      .e-form__indicators__indicator--state-inactive [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-inactive-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-inactive svg,
      .e-form__indicators__indicator--state-inactive object {
        fill: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
    .e-form__indicators__indicator--state-active {
      color: var(--e-form-steps-indicator-active-primary-color, #39B54A);
      border-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active svg,
      .e-form__indicators__indicator--state-active object {
        fill: var(--e-form-steps-indicator-active-primary-color, #39B54A); }
    .e-form__indicators__indicator--state-completed {
      color: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-completed [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A);
        background-color: initial; }
      .e-form__indicators__indicator--state-completed svg,
      .e-form__indicators__indicator--state-completed object {
        fill: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
    .e-form__indicators__indicator__icon {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      font-size: var(--e-form-steps-indicator-icon-size);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      overflow: hidden;
      margin-bottom: 10px; }
      .e-form__indicators__indicator__icon img,
      .e-form__indicators__indicator__icon svg,
      .e-form__indicators__indicator__icon object {
        width: var(--e-form-steps-indicator-icon-size);
        height: auto; }
      .e-form__indicators__indicator__icon .e-font-icon-svg {
        height: 1em; }
    .e-form__indicators__indicator__number {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-bottom: 10px; }
    .e-form__indicators__indicator--shape-circle {
      border-radius: 50%; }
    .e-form__indicators__indicator--shape-square {
      border-radius: 0; }
    .e-form__indicators__indicator--shape-rounded {
      border-radius: 5px; }
    .e-form__indicators__indicator--shape-none {
      border: 0; }
    .e-form__indicators__indicator__label {
      text-align: center; }
    .e-form__indicators__indicator__separator {
      width: 100%;
      height: var(--e-form-steps-divider-width);
      background-color: #c2cbd2; }
  .e-form__indicators--type-number, .e-form__indicators--type-number_text, .e-form__indicators--type-icon, .e-form__indicators--type-icon_text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .e-form__indicators--type-number .e-form__indicators__indicator__separator, .e-form__indicators--type-number_text .e-form__indicators__indicator__separator, .e-form__indicators--type-icon .e-form__indicators__indicator__separator, .e-form__indicators--type-icon_text .e-form__indicators__indicator__separator {
      margin-top: calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2); }

/* End OF Multi Steps Form */
.elementor-field-type-hidden {
  display: none; }

.elementor-field-type-html {
  display: inline-block; }

.elementor-login .elementor-remember-me,
.elementor-login .elementor-lost-password {
  font-size: 0.85em; }

.elementor-field-type-recaptcha_v3 .elementor-field-label {
  display: none; }

.elementor-field-type-recaptcha_v3 .grecaptcha-badge {
  z-index: 1; }

.elementor-button .elementor-form-spinner {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.elementor-form .elementor-button > span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-form .elementor-button .elementor-button-text {
  white-space: normal;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0; }

.elementor-form .elementor-button svg {
  height: auto; }

.elementor-form .elementor-button .e-font-icon-svg {
  height: 1em; }

.elementor-widget-price-list .elementor-price-list {
  list-style: none;
  padding: 0;
  margin: 0; }
  .elementor-widget-price-list .elementor-price-list li {
    margin: 0; }

.elementor-price-list li:not(:last-child) {
  margin-bottom: 20px; }

.elementor-price-list .elementor-price-list-image {
  max-width: 50%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-left: 25px; }
  .elementor-price-list .elementor-price-list-image img {
    width: 100%; }

.elementor-price-list .elementor-price-list-text,
.elementor-price-list .elementor-price-list-item,
.elementor-price-list .elementor-price-list-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.elementor-price-list .elementor-price-list-item {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 10px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-title {
    max-width: 80%; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-price {
    font-weight: 600; }
  .elementor-price-list .elementor-price-list-item p.elementor-price-list-description {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 14px;
    margin: 0; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-separator {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-left: 10px;
    margin-right: 10px;
    border-bottom-style: dotted;
    border-bottom-width: 2px;
    height: 0; }

.elementor-price-table {
  text-align: center; }
  .elementor-price-table .elementor-price-table__header {
    background: var(--e-price-table-header-background-color, #555);
    padding: 20px 0; }
  .elementor-price-table .elementor-price-table__heading {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 24px;
    font-weight: 600;
    color: #fff; }
  .elementor-price-table .elementor-price-table__subheading {
    font-size: 13px;
    font-weight: 400;
    color: #fff; }
  .elementor-price-table .elementor-price-table__original-price {
    margin-left: 15px;
    text-decoration: line-through;
    font-size: 0.5em;
    line-height: 1;
    font-weight: 400;
    -ms-flex-item-align: center;
        align-self: center; }
    .elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency {
      font-size: 1em;
      margin: 0; }
  .elementor-price-table .elementor-price-table__price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    color: #555;
    font-weight: 800;
    font-size: 65px;
    padding: 40px 0; }
    .elementor-price-table .elementor-price-table__price .elementor-typo-excluded {
      line-height: initial;
      letter-spacing: initial;
      text-transform: initial;
      font-weight: initial;
      font-size: initial;
      font-style: initial; }
  .elementor-price-table .elementor-price-table__after-price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    text-align: right;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-price-table .elementor-price-table__integer-part {
    line-height: 0.8; }
  .elementor-price-table .elementor-price-table__currency, .elementor-price-table .elementor-price-table__fractional-part {
    line-height: 1;
    font-size: 0.3em; }
  .elementor-price-table .elementor-price-table__currency {
    margin-left: 3px; }
  .elementor-price-table .elementor-price-table__period {
    width: 100%;
    font-size: 13px;
    font-weight: 400; }
  .elementor-price-table .elementor-price-table__features-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: var(--e-price-table-features-list-color); }
    .elementor-price-table .elementor-price-table__features-list li {
      font-size: 14px;
      line-height: 1;
      margin: 0;
      padding: 0; }
      .elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
        margin-left: 15px;
        margin-right: 15px; }
      .elementor-price-table .elementor-price-table__features-list li:not(:first-child):before {
        content: '';
        display: block;
        border: 0 solid rgba(122, 122, 122, 0.3);
        margin: 10px 12.5%; }
    .elementor-price-table .elementor-price-table__features-list i {
      margin-left: 10px;
      font-size: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg {
      margin-left: 10px;
      fill: var(--e-price-table-features-list-color);
      height: 1.3em;
      width: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg ~ * {
      vertical-align: text-top; }
  .elementor-price-table .elementor-price-table__footer {
    padding: 30px 0; }
  .elementor-price-table .elementor-price-table__additional_info {
    margin: 0;
    font-size: 13px;
    line-height: 1.4; }
  .elementor-price-table__ribbon {
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
            transform: rotate(0);
    width: 150px;
    overflow: hidden;
    height: 150px; }
    .elementor-price-table__ribbon-inner {
      text-align: center;
      left: 0;
      width: 200%;
      -webkit-transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
          -ms-transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
              transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
      margin-top: 35px;
      font-size: 13px;
      line-height: 2;
      font-weight: 800;
      text-transform: uppercase;
      background: #000; }
    .elementor-price-table__ribbon.elementor-ribbon-left {
      -webkit-transform: rotate(0);
          -ms-transform: rotate(0);
              transform: rotate(0);
      left: 0;
      right: auto; }
    .elementor-price-table__ribbon.elementor-ribbon-right {
      -webkit-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
              transform: rotate(90deg);
      left: auto;
      right: 0; }

.elementor-widget-price-table .elementor-widget-container {
  overflow: hidden;
  background-color: #f7f7f7; }

.elementor-flip-box {
  height: 280px;
  position: relative;
  -webkit-perspective: 1000px;
          perspective: 1000px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  @media (max-device-width: 1024px) {
    .elementor-flip-box {
      cursor: pointer; } }
  .elementor-flip-box__front {
    background-color: #1abc9c; }
  .elementor-flip-box__back {
    background-color: #4054b2;
    display: block; }
  .elementor-flip-box__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-transition: all .6s ease-in-out;
    -o-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out; }
    .elementor-flip-box__layer__overlay {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      width: 100%;
      height: 100%;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      text-align: center;
      padding: 35px;
      color: white; }
    .elementor-flip-box__layer__title {
      font-size: 21px; }
    .elementor-flip-box__layer__description {
      font-size: 14px; }
    .elementor-flip-box__layer__description:not(:last-child), .elementor-flip-box__layer__title:not(:last-child) {
      margin: 0 0 20px 0;
      padding: 0; }
    .elementor-flip-box__layer__title {
      line-height: 1;
      font-weight: 600; }
  .elementor-flip-box,
  .elementor-flip-box .elementor-view-framed,
  .elementor-flip-box .elementor-view-stacked {
    --e-flip-box-view-framed-stacked-icon-color: #fff; }
    .elementor-flip-box .elementor-icon,
    .elementor-flip-box .elementor-view-framed .elementor-icon,
    .elementor-flip-box .elementor-view-stacked .elementor-icon {
      color: var(--e-flip-box-view-framed-stacked-icon-color); }
      .elementor-flip-box .elementor-icon svg,
      .elementor-flip-box .elementor-view-framed .elementor-icon svg,
      .elementor-flip-box .elementor-view-stacked .elementor-icon svg {
        fill: var(--e-flip-box-view-framed-stacked-icon-color); }
  .elementor-flip-box .elementor-view-framed .elementor-icon {
    border-color: #fff; }
  .elementor-flip-box .elementor-view-stacked .elementor-icon {
    background-color: rgba(0, 0, 0, 0.5); }
  .elementor-flip-box__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-flip-box__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-flip-box__image {
    margin: 0 0 20px 0;
    display: inline-block;
    width: 100%; }
    .elementor-flip-box__image img {
      width: 50%; }
  .elementor-flip-box .elementor-icon-wrapper {
    margin-bottom: 20px; }
  .elementor-flip-box--3d .elementor-flip-box__layer__inner {
    -webkit-transform: translateZ(90px) scale(0.91);
            transform: translateZ(90px) scale(0.91); }
  .elementor-flip-box--3d .elementor-flip-box__layer__overlay {
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
    -webkit-transform: translateZ(0.1px);
            transform: translateZ(0.1px); }
  .elementor-flip-box--effect-flip .elementor-flip-box {
    -webkit-perspective: 1000px;
            perspective: 1000px;
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d; }
    .elementor-flip-box--effect-flip .elementor-flip-box__layer {
      -webkit-transform-style: preserve-3d;
              transform-style: preserve-3d;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .elementor-flip-box--effect-flip .elementor-flip-box__front {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      z-index: 1; }
    .elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-push .elementor-flip-box__front {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide .elementor-flip-box, .elementor-flip-box--effect-push .elementor-flip-box {
    overflow: hidden; }
    .elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back, .elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front {
    -webkit-transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    z-index: 1;
    width: 100%; }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front {
    width: 0;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7);
    -webkit-transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    -o-transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s; }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s, -webkit-transform 0.7s;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7); }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s, -webkit-transform 0.7s;
    transition: opacity 0.5s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back {
    opacity: 0; }
  .elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back {
    opacity: 1; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front {
  display: none; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  opacity: 1; }

.elementor-widget-call-to-action .elementor-widget-container {
  overflow: hidden; }

.elementor-cta {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -webkit-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s; }
  .elementor-cta--skin-classic .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--skin-classic .elementor-cta__bg-wrapper {
      position: relative;
      min-height: 200px;
      width: 100%; }
    .elementor-cta--skin-classic .elementor-cta__content {
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%;
      background-color: #f7f7f7; }
    .elementor-cta--skin-classic .elementor-cta__content-item, .elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon {
      color: #55595c;
      border-color: #55595c;
      fill: #55595c; }
    .elementor-cta--skin-classic .elementor-cta__button.elementor-button {
      color: #55595c;
      border-color: #55595c; }
  .elementor-cta--skin-cover .elementor-cta {
    display: block; }
    .elementor-cta--skin-cover .elementor-cta__bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%; }
    .elementor-cta--skin-cover .elementor-cta__content {
      min-height: 280px; }
    .elementor-cta--skin-cover .elementor-cta__content-item, .elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon {
      color: #fff;
      border-color: #fff; }
    .elementor-cta--skin-cover .elementor-cta__button.elementor-button {
      color: white;
      border-color: white; }
  .elementor-cta--layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--layout-image-left .elementor-cta, .elementor-cta--layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--layout-image-left .elementor-cta__content, .elementor-cta--layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta__bg, .elementor-cta__bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    -webkit-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s; }
  .elementor-cta__bg-wrapper {
    z-index: 1;
    overflow: hidden; }
  .elementor-cta__bg {
    -webkit-background-size: cover;
            background-size: cover;
    background-position: center;
    z-index: 1; }
  .elementor-cta__bg-overlay {
    z-index: 2; }
  .elementor-cta__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-cta__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-cta__title {
    font-size: 23px; }
  .elementor-cta__content {
    z-index: 1;
    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 35px;
    width: 100%; }
    .elementor-cta__content, .elementor-cta__content-item {
      position: relative;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s;
      color: #fff; }
    .elementor-cta__content-item {
      width: 100%;
      margin: 0; }
      .elementor-cta__content-item:not(:last-child) {
        margin-bottom: 15px; }
      .elementor-cta__content-item .elementor-icon {
        color: #fff; }
  .elementor-cta--valign-top .elementor-cta__content {
    -ms-flex-line-pack: start;
        align-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
  .elementor-cta--valign-middle .elementor-cta__content {
    -ms-flex-line-pack: center;
        align-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .elementor-cta--valign-bottom .elementor-cta__content {
    -ms-flex-line-pack: end;
        align-content: flex-end;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .elementor-cta:hover .elementor-cta__bg-overlay {
    background-color: rgba(0, 0, 0, 0.3); }

@media (max-device-width: 1024px) {
  .elementor-cta {
    cursor: pointer; } }

@media (min-width: -1px) {
  .elementor-cta--widescreen-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta, .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__content, .elementor-cta--widescreen-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

@media (max-width: -1px) {
  .elementor-cta--laptop-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--laptop-layout-image-left .elementor-cta, .elementor-cta--laptop-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__content, .elementor-cta--laptop-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--laptop-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--laptop-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

@media (max-width: -1px) {
  .elementor-cta--tablet_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta, .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__content, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

@media (max-width: 1024px) {
  .elementor-cta--tablet-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet-layout-image-left .elementor-cta, .elementor-cta--tablet-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__content, .elementor-cta--tablet-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--tablet-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

@media (max-width: -1px) {
  .elementor-cta--mobile_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta, .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__content, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

@media (max-width: 767px) {
  .elementor-cta--mobile-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile-layout-image-left .elementor-cta, .elementor-cta--mobile-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__content, .elementor-cta--mobile-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta--mobile-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; } }

.elementor-ribbon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  right: auto;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  width: 150px;
  overflow: hidden;
  height: 150px; }
  .elementor-ribbon-inner {
    text-align: center;
    left: 0;
    width: 200%;
    -webkit-transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
        -ms-transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
            transform: translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);
    margin-top: 35px;
    font-size: 13px;
    line-height: 2;
    font-weight: 800;
    text-transform: uppercase;
    background: #000;
    color: #fff; }
  .elementor-ribbon.elementor-ribbon-left {
    -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
            transform: rotate(0);
    left: 0;
    right: auto; }
  .elementor-ribbon.elementor-ribbon-right {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    left: auto;
    right: 0; }

.elementor-widget-countdown .elementor-countdown-expire--message {
  display: none;
  padding: 20px;
  text-align: center; }

.elementor-widget-countdown .elementor-countdown-wrapper {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.elementor-widget-countdown .elementor-countdown-item {
  padding: 20px 0;
  text-align: center;
  color: #ffffff; }

.elementor-widget-countdown .elementor-countdown-digits,
.elementor-widget-countdown .elementor-countdown-label {
  line-height: 1; }

.elementor-widget-countdown .elementor-countdown-digits {
  font-size: 69px; }

.elementor-widget-countdown .elementor-countdown-label {
  font-size: 19px; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-right: auto;
  margin-left: auto; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,
.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label {
  display: block; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.elementor-widget-countdown.elementor-countdown--label-inline {
  text-align: center; }
  .elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px; }

/* Slides Widget */
.elementor-slides .swiper-slide-bg {
  -webkit-background-size: cover;
          background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-width: 100%;
  min-height: 100%; }

.elementor-slides .swiper-slide-inner {
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 50px;
  margin: auto; }
  .elementor-slides .swiper-slide-inner, .elementor-slides .swiper-slide-inner:hover {
    color: white;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-slides .swiper-slide-inner .elementor-background-overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }
  .elementor-slides .swiper-slide-inner .elementor-slide-content {
    position: relative;
    z-index: 1;
    width: 100%; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading {
    font-size: 35px;
    font-weight: bold;
    line-height: 1; }
  .elementor-slides .swiper-slide-inner .elementor-slide-description {
    font-size: 17px;
    line-height: 1.4; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child) {
    margin-bottom: 30px; }
  .elementor-slides .swiper-slide-inner .elementor-slide-button {
    border: solid 2px white;
    color: white;
    background: transparent;
    display: inline-block; }
    .elementor-slides .swiper-slide-inner .elementor-slide-button, .elementor-slides .swiper-slide-inner .elementor-slide-button:hover {
      background: transparent;
      color: inherit;
      text-decoration: none; }

.elementor--v-position-top .swiper-slide-inner {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor--v-position-bottom .swiper-slide-inner {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

.elementor--v-position-middle .swiper-slide-inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor--h-position-left .swiper-slide-inner {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor--h-position-right .swiper-slide-inner {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor--h-position-center .swiper-slide-inner {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

body.rtl .elementor-widget-slides .elementor-swiper-button-next {
  left: 10px;
  right: auto; }

body.rtl .elementor-widget-slides .elementor-swiper-button-prev {
  right: 10px;
  left: auto; }

.elementor-slides-wrapper div:not(.swiper-slide) > .swiper-slide-inner {
  display: none; }

@media (max-width: 767px) {
  .elementor-slides .swiper-slide-inner {
    padding: 30px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-heading {
      font-size: 23px;
      line-height: 1;
      margin-bottom: 15px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-description {
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 15px; } }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn {
  color: var(--e-share-buttons-primary-color, #ea4335);
  border-color: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  background-color: var(--e-share-buttons-primary-color, #ea4335);
  color: var(--e-share-buttons-secondary-color, #fff); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon {
  color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-official .elementor-share-btn:hover {
  -webkit-filter: saturate(1.5) brightness(1.2);
          filter: saturate(1.5) brightness(1.2); }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg {
  color: #005be2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg {
    fill: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email {
  color: #ea4335; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg {
    fill: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print {
  color: #aaaaaa; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg {
    fill: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook {
  color: #3b5998; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg {
    fill: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google {
  color: #dd4b39; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg {
    fill: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket {
  color: #EF3F56; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg {
    fill: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki {
  color: #F4731C; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg {
    fill: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest {
  color: #bd081c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg {
    fill: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit {
  color: #ff4500; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg {
    fill: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype {
  color: #00AFF0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg {
    fill: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat {
  color: #fffc00; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg {
    fill: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon {
  color: #EB4924; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg {
    fill: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix {
  color: #f3782b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg {
    fill: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr {
  color: #35465c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg {
    fill: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch {
  color: #6441A5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg {
    fill: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram {
  color: #2CA5E0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg {
    fill: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter {
  color: #1DA1F2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg {
    fill: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo {
  color: #1ab7ea; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg {
    fill: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk {
  color: #45668e; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg {
    fill: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp {
  color: #25d366; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg {
    fill: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress {
  color: #21759b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg {
    fill: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing {
  color: #026466; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg {
    fill: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon {
  color: var(--e-share-buttons-icon-color, #fff); }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-icon-color, #fff); }

.elementor-share-buttons--skin-framed .elementor-share-btn__icon, .elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  margin-right: -0.2em; }

.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--skin-boxed .elementor-share-btn {
  border-style: solid; }

.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-boxed .elementor-share-btn__text, .elementor-share-buttons--skin-minimal .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  padding-right: 0.9em; }

.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon {
  border-radius: 0.5em; }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon {
  border-radius: 99.9em; }

.elementor-share-buttons--view-text .elementor-share-btn__text {
  padding-right: 1em; }

.elementor-share-buttons--view-text .elementor-share-btn, .elementor-share-buttons--view-icon .elementor-share-btn {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .elementor-share-buttons--view-text .elementor-share-btn__icon, .elementor-share-buttons--view-text .elementor-share-btn__text, .elementor-share-buttons--view-icon .elementor-share-btn__icon, .elementor-share-buttons--view-icon .elementor-share-btn__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-share-buttons--shape-rounded .elementor-share-btn {
  border-radius: 0.5em; }

.elementor-share-buttons--shape-circle .elementor-share-btn {
  border-radius: 99.9em; }

.elementor-share-btn {
  overflow: hidden;
  font-size: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-transition-duration: 0.2s;
       -o-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-property: background-color, border-color, -webkit-filter;
  transition-property: background-color, border-color, -webkit-filter;
  -o-transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color, -webkit-filter;
  height: 4.5em;
  cursor: pointer; }
  .elementor-share-btn__icon, .elementor-share-btn__text {
    -webkit-transition-property: color, background-color;
    -o-transition-property: color, background-color;
    transition-property: color, background-color;
    -webkit-transition-duration: 0.2s;
         -o-transition-duration: 0.2s;
            transition-duration: 0.2s; }
  .elementor-share-btn__icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 4.5em;
    position: relative; }
    .elementor-share-btn__icon i {
      font-size: var(--e-share-buttons-icon-size, 1.7em); }
    .elementor-share-btn__icon svg {
      width: var(--e-share-buttons-icon-size, 1.7em);
      height: var(--e-share-buttons-icon-size, 1.7em); }
  .elementor-share-btn__text {
    font-size: 1.5em;
    padding-left: 1em;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-weight: 100; }
  .elementor-share-btn__title {
    font-weight: bold;
    -ms-flex-negative: 0;
        flex-shrink: 0; }

.elementor-widget-share-buttons {
  text-align: var(--alignment, inherit);
  -moz-text-align-last: var(--alignment, inherit);
       text-align-last: var(--alignment, inherit); }
  .elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container {
    font-size: 0; }

.elementor-skin-carousel .elementor-main-swiper, .elementor-skin-coverflow .elementor-main-swiper {
  height: 230px; }

.elementor-skin-slideshow .elementor-main-swiper {
  height: 450px;
  position: relative; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i {
  font-size: 50px; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide {
  cursor: pointer; }
  .elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.3); }

.elementor-carousel-image {
  background: no-repeat center;
  -webkit-background-size: cover;
          background-size: cover;
  height: 100%;
  position: relative; }

.elementor-carousel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  color: var(--e-carousel-image-overlay-color, #fff);
  background-color: rgba(129, 138, 145, 0.8);
  -webkit-transition: opacity .5s, -webkit-transform .5s;
  transition: opacity .5s, -webkit-transform .5s;
  -o-transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s, -webkit-transform .5s; }
  .elementor-carousel-image-overlay i {
    font-size: var(--e-carousel-image-overlay-icon-size, 21px); }
  .elementor-carousel-image-overlay svg {
    fill: var(--e-carousel-image-overlay-color, #fff);
    width: var(--e-carousel-image-overlay-icon-size, 21px);
    height: var(--e-carousel-image-overlay-icon-size, 21px); }

.elementor-testimonial__image {
  -ms-flex-negative: 0;
      flex-shrink: 0; }
  .elementor-testimonial__image img {
    border-radius: 999px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    -o-object-fit: cover;
       object-fit: cover; }

.elementor-testimonial__footer, .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-testimonial__footer cite, .elementor-testimonial__header cite {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5; }

.elementor-testimonial__name {
  font-weight: bold; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer, .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above .elementor-testimonial__image + cite {
  margin-right: 20px; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite {
  margin-left: 20px;
  margin-right: 0; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite {
  margin-left: 0;
  margin-right: 20px; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer {
  margin-top: 25px; }

.elementor-testimonial--layout-image_above .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }
  .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
    margin-bottom: 25px; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer {
  margin-top: 25px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__image, .elementor-testimonial--layout-image_stacked .elementor-testimonial cite {
  margin-top: 15px;
  width: 100%; }

.elementor-testimonial--layout-image_left .elementor-testimonial, .elementor-testimonial--layout-image_right .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_right .elementor-testimonial__image + cite {
    margin-top: 15px; }

.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer, .elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-testimonial--layout-image_left .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer {
    padding-left: 20px; }

.elementor-testimonial--layout-image_right .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }
  .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    padding-right: 20px; }

.elementor-testimonial--align-right .elementor-testimonial {
  text-align: right; }

.elementor-testimonial--align-left .elementor-testimonial {
  text-align: left; }

.elementor-testimonial--align-center .elementor-testimonial {
  text-align: center; }
  .elementor-testimonial--align-center .elementor-testimonial__footer {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite {
  text-align: right; }

.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: 25px; }

.elementor-testimonial--skin-bubble .elementor-testimonial__content {
  background-color: #e6e9ec;
  padding: 20px;
  position: relative; }
  .elementor-testimonial--skin-bubble .elementor-testimonial__content:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-color: #e6e9ec;
    position: absolute;
    -webkit-transform: scaleX(0.75) rotate(45deg);
        -ms-transform: scaleX(0.75) rotate(45deg);
            transform: scaleX(0.75) rotate(45deg);
    border-width: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after {
  bottom: calc( 100% - 7px);
  -webkit-transform: scaleX(0.75) rotate(-135deg);
      -ms-transform: scaleX(0.75) rotate(-135deg);
          transform: scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
          transform: translateX(-50%) scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after {
  top: calc( 100% - 7px); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
          transform: translateX(-50%) scaleX(0.75) rotate(45deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after {
  left: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after {
  right: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(135deg);
      -ms-transform: scaleY(0.75) rotate(135deg);
          transform: scaleY(0.75) rotate(135deg);
  left: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(-45deg);
      -ms-transform: scaleY(0.75) rotate(-45deg);
          transform: scaleY(0.75) rotate(-45deg);
  right: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  top: calc(20px + (50px / 2)); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer {
  padding-top: 20px; }

.elementor-widget-testimonial-carousel .swiper-slide {
  padding: 20px; }

.elementor-widget-testimonial-carousel .elementor-testimonial__text {
  font-size: 1.3em;
  font-style: italic;
  line-height: 1.5; }

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
  width: 50px;
  height: 50px; }

.elementor-widget-reviews .swiper-slide {
  background-color: white;
  border: 1px solid #e1e8ed;
  border-radius: 5px;
  padding: 0; }

.elementor-widget-reviews .elementor-testimonial__text {
  font-size: 14px;
  line-height: 20px; }

.elementor-widget-reviews .elementor-testimonial__name {
  color: #1c2022; }

.elementor-widget-reviews .elementor-testimonial__title {
  color: #697882;
  font-size: 12.5px;
  font-weight: normal;
  font-family: inherit; }

.elementor-widget-reviews .elementor-testimonial__image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-reviews .elementor-testimonial__image img {
    width: 36px;
    height: 36px; }

.elementor-widget-reviews .elementor-testimonial__icon {
  margin-right: auto;
  font-size: 17px; }
  .elementor-widget-reviews .elementor-testimonial__icon .fa + .fa {
    margin-right: 0.15em; }
  .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon {
    color: var(--e-testimonial-icon-color); }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android {
      --e-testimonial-icon-color: #A4C639; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple {
      --e-testimonial-icon-color: #999999; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance {
      --e-testimonial-icon-color: #1769ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket {
      --e-testimonial-icon-color: #205081; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen {
      --e-testimonial-icon-color: #000000; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious {
      --e-testimonial-icon-color: #3399ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg {
      --e-testimonial-icon-color: #005be2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble {
      --e-testimonial-icon-color: #ea4c89; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope {
      --e-testimonial-icon-color: #ea4335; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook {
      --e-testimonial-icon-color: #3b5998; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr {
      --e-testimonial-icon-color: #0063dc; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare {
      --e-testimonial-icon-color: #2d5be3; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github {
      --e-testimonial-icon-color: #333333; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus {
      --e-testimonial-icon-color: #dd4b39; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz {
      --e-testimonial-icon-color: #7ac142; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram {
      --e-testimonial-icon-color: #262626; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle {
      --e-testimonial-icon-color: #487AA2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium {
      --e-testimonial-icon-color: #00ab6b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup {
      --e-testimonial-icon-color: #ec1c40; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud {
      --e-testimonial-icon-color: #273a4b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki {
      --e-testimonial-icon-color: #F4731C; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest {
      --e-testimonial-icon-color: #bd081c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt {
      --e-testimonial-icon-color: #da552f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit {
      --e-testimonial-icon-color: #ff4500; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss {
      --e-testimonial-icon-color: #f26522; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart {
      --e-testimonial-icon-color: #4CAF50; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype {
      --e-testimonial-icon-color: #00AFF0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat {
      --e-testimonial-icon-color: #fffc00; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud {
      --e-testimonial-icon-color: #ff8800; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify {
      --e-testimonial-icon-color: #2ebd59; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow {
      --e-testimonial-icon-color: #fe7a15; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam {
      --e-testimonial-icon-color: #00adee; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon {
      --e-testimonial-icon-color: #EB4924; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram {
      --e-testimonial-icon-color: #2CA5E0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack, .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack {
      --e-testimonial-icon-color: #1aa1d8; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor {
      --e-testimonial-icon-color: #589442; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr {
      --e-testimonial-icon-color: #35465c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch {
      --e-testimonial-icon-color: #6441A5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter {
      --e-testimonial-icon-color: #1DA1F2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo {
      --e-testimonial-icon-color: #1ab7ea; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk {
      --e-testimonial-icon-color: #45668e; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo {
      --e-testimonial-icon-color: #DD2430; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin {
      --e-testimonial-icon-color: #31A918; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp {
      --e-testimonial-icon-color: #25d366; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress {
      --e-testimonial-icon-color: #21759b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing {
      --e-testimonial-icon-color: #026466; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp {
      --e-testimonial-icon-color: #af0606; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube {
      --e-testimonial-icon-color: #cd201f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px {
      --e-testimonial-icon-color: #0099e5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg {
      fill: var(--e-testimonial-icon-color); }

.elementor-widget-reviews .elementor-testimonial__rating {
  background-image: -webkit-gradient(linear, left top, right top, from(#ffc82c), to(#cccccc));
  background-image: -webkit-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: -o-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: linear-gradient(to right, #ffc82c var(--rating), #cccccc var(--rating));
  font-family: eicons; }

.elementor-widget-reviews .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 15px;
  padding-bottom: 6px; }

.elementor-widget-reviews .elementor-testimonial__image + cite {
  margin-right: 9px; }

.elementor-widget-reviews .elementor-testimonial__separator {
  margin: 0 auto;
  border-top: 0 none;
  border-bottom: 1px solid #e1e8ed;
  height: 0; }

.elementor-widget-reviews .elementor-testimonial__content {
  padding-top: 6px;
  padding-bottom: 15px; }

.elementor-widget-reviews .elementor-testimonial__content, .elementor-widget-reviews .elementor-testimonial__header {
  padding-left: 15px;
  padding-right: 15px; }

.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header {
  border-bottom: 1px solid #e1e8ed; }

.swiper-pagination-bullets {
  color: #fff;
  cursor: default; }

.swiper-slide {
  will-change: transform;
  border-style: solid;
  border-width: 0;
  -webkit-transition-duration: .5s;
       -o-transition-duration: .5s;
          transition-duration: .5s;
  -webkit-transition-property: border, background, -webkit-transform;
  transition-property: border, background, -webkit-transform;
  -o-transition-property: border, background, transform;
  transition-property: border, background, transform;
  transition-property: border, background, transform, -webkit-transform;
  overflow: hidden; }
  .swiper-slide:not(:hover) .e-overlay-animation-fade {
    opacity: 0; }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-up {
    -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
            transform: translateY(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-down {
    -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-right {
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-left {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-zoom-in {
    -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0; }
  .swiper-slide a {
    display: inline; }
    .swiper-slide a.elementor-button {
      display: inline-block; }

.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper,
.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper {
  width: calc( 95% - 40px); }

.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper {
  width: 95%; }

.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container, .elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container {
  padding-bottom: 40px; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next,
.elementor-widget-reviews .elementor-swiper-button-prev,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next {
  left: 0;
  right: unset; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-next,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev,
.elementor-widget-reviews .elementor-swiper-button-next,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev {
  right: 0;
  left: unset; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next, .elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev {
  top: calc( 50% - ( 40px / 2 )); }

.elementor-widget-media-carousel .elementor-swiper-button-prev,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next {
  left: 10px;
  right: unset; }

.elementor-widget-media-carousel .elementor-swiper-button-next,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev {
  right: 10px;
  left: unset; }

.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),
.entry-summary blockquote.elementor-blockquote {
  margin-right: 0;
  margin-left: 0; }

.elementor-widget-blockquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  quotes: none;
  border-left: 0 none;
  border-right: 0 none;
  border-top: 0 none;
  border-bottom: 0 none;
  font-style: normal;
  color: #55595c; }
  .elementor-widget-blockquote blockquote:before, .elementor-widget-blockquote blockquote:after,
  .elementor-widget-blockquote blockquote footer:before,
  .elementor-widget-blockquote blockquote footer:after,
  .elementor-widget-blockquote blockquote cite:before,
  .elementor-widget-blockquote blockquote cite:after {
    content: '';
    content: none; }

.elementor-blockquote {
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-blockquote__author, .elementor-blockquote__content {
    margin-bottom: 0;
    font-style: normal; }
  .elementor-blockquote__author {
    font-weight: bold; }
  .elementor-blockquote footer {
    margin-top: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-blockquote__tweet-button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    color: #1DA1F2;
    -ms-flex-item-align: end;
        align-self: flex-end;
    line-height: 1;
    position: relative;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content; }
    .elementor-blockquote__tweet-button:hover {
      color: #0967a0; }
    .elementor-blockquote__tweet-button span {
      font-weight: 600; }
    .elementor-blockquote__tweet-button i, .elementor-blockquote__tweet-button span {
      vertical-align: middle; }
    .elementor-blockquote__tweet-button i + span,
    .elementor-blockquote__tweet-button svg + span {
      margin-right: 0.5em; }
    .elementor-blockquote__tweet-button svg {
      fill: #1DA1F2;
      height: 1em;
      width: 1em; }
  .elementor-blockquote__tweet-label {
    white-space: pre-wrap; }
  .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button {
    padding: 0.7em 1.2em;
    border-radius: 100em;
    background-color: #1DA1F2;
    color: #fff;
    font-size: 15px; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover {
      background-color: #0967a0;
      color: #fff; }
      .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before {
        border-left-color: #0967a0; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg {
      fill: #fff;
      height: 1em;
      width: 1em; }
  .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button {
    padding: 0;
    width: 2em;
    height: 2em; }
    .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i {
      position: absolute;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%); }
  .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before {
    content: '';
    border: solid 0.5em transparent;
    border-left-color: #1DA1F2;
    position: absolute;
    right: -0.8em;
    top: 50%;
    -webkit-transform: translateY(-50%) scale(1, 0.65);
        -ms-transform: translateY(-50%) scale(1, 0.65);
            transform: translateY(-50%) scale(1, 0.65);
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before {
    right: auto;
    left: -0.8em;
    border-right-color: #1DA1F2;
    border-left-color: transparent; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before {
    border-right-color: #0967a0; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before {
    left: auto;
    right: -0.8em;
    border-right-color: transparent;
    border-left-color: #1DA1F2; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before {
    border-left-color: #0967a0; }
  .elementor-blockquote--skin-boxed .elementor-blockquote {
    background-color: #e6e9ec;
    padding: 30px; }
  .elementor-blockquote--skin-border .elementor-blockquote {
    border-color: #e6e9ec;
    border-style: solid;
    border-right-width: 7px;
    padding-right: 20px; }
  .elementor-blockquote--skin-quotation .elementor-blockquote:before {
    content: '“';
    font-size: 100px;
    color: #e6e9ec;
    font-family: "Times New Roman", Times, serif;
    font-weight: 900;
    line-height: 1;
    display: block;
    height: 0.6em; }
  .elementor-blockquote--skin-quotation .elementor-blockquote__content {
    margin-top: 15px; }
  .elementor-blockquote--align-left .elementor-blockquote__content {
    text-align: left; }
  .elementor-blockquote--align-left .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-blockquote--align-right .elementor-blockquote__content {
    text-align: right; }
  .elementor-blockquote--align-right .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-blockquote--align-center .elementor-blockquote {
    text-align: center; }
    .elementor-blockquote--align-center .elementor-blockquote footer {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__author {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__tweet-button {
      margin-right: auto;
      margin-left: auto; }

.elementor-headline {
  font-size: 43px;
  line-height: 1.2;
  display: block; }
  .elementor-headline-dynamic-text {
    color: var(--dynamic-text-color, #aebcb9); }
  .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper {
    text-align: right; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-wrapper {
    overflow: visible;
    text-align: inherit; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-text {
    z-index: 1; }
  .elementor-headline--style-highlight .elementor-headline-plain-text {
    z-index: 1;
    position: relative; }
  .elementor-headline--style-highlight svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc( 100% + 20px);
    height: calc( 100% + 20px);
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    overflow: visible; }
    .elementor-headline--style-highlight svg path {
      stroke: red;
      stroke-width: 9;
      fill: none;
      opacity: 0;
      stroke-dasharray: 0 1500;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-headline.e-animated svg path {
    -webkit-animation: elementor-headline-dash forwards;
            animation: elementor-headline-dash forwards;
    -webkit-animation-duration: var(--animation-duration, 1.2s);
            animation-duration: var(--animation-duration, 1.2s);
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }
    .elementor-headline.e-animated svg path:nth-of-type(2) {
      -webkit-animation-delay: calc(var(--animation-duration, 1.2s) / 2);
              animation-delay: calc(var(--animation-duration, 1.2s) / 2); }
  .elementor-headline.e-hide-highlight svg path {
    opacity: 1;
    stroke-dasharray: 1500 1500;
    -webkit-animation: hide-highlight 0.4s forwards;
            animation: hide-highlight 0.4s forwards;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }

@-webkit-keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@-webkit-keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

@keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

.elementor-headline-text-wrapper {
  vertical-align: bottom; }

.elementor-headline-dynamic-wrapper {
  display: inline-block;
  position: relative; }
  .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0; }
    .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active {
      position: relative; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-text {
  opacity: 0;
  -webkit-transform-origin: 50% 100%;
      -ms-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
  -webkit-transform: rotateX(180deg);
          transform: rotateX(180deg); }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    -webkit-animation: elementor-headline-flip-in 1.2s;
            animation: elementor-headline-flip-in 1.2s; }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    -webkit-animation: elementor-headline-flip-out 1.2s;
            animation: elementor-headline-flip-out 1.2s; }

@-webkit-keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

@keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper {
  vertical-align: top;
  overflow: hidden; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after {
    /* vertical bar */
    content: '';
    position: absolute;
    left: 0;
    right: auto;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    height: 90%;
    width: 1px;
    background-color: #0d0d0d; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after {
    -webkit-animation: elementor-headline-pulse 1s infinite;
            animation: elementor-headline-pulse 1s infinite; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected {
    background-color: var(--typing-selected-bg-color, #0d0d0d); }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected::after {
      visibility: hidden; }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text {
      color: var(--typing-selected-color, var(--dynamic-text-color), #aebcb9); }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active) {
  visibility: hidden; }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
  position: absolute;
  visibility: hidden; }

@-webkit-keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

@keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text {
  -webkit-transform: scaleX(1.0005);
      -ms-transform: scaleX(1.0005);
          transform: scaleX(1.0005);
  opacity: 0; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: translateZ(-20px) rotateX(90deg);
          transform: translateZ(-20px) rotateX(90deg);
  opacity: 0; }
  .elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-swirl-in .4s forwards;
            animation: elementor-headline-swirl-in .4s forwards; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-swirl-out .4s forwards;
            animation: elementor-headline-swirl-out .4s forwards; }

@-webkit-keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@-webkit-keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

@keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text {
  opacity: 0;
  top: .2em; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active {
    top: 0;
    opacity: 1;
    -webkit-animation: elementor-headline-slide-down-in .6s;
            animation: elementor-headline-slide-down-in .6s; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-down-out .6s;
            animation: elementor-headline-slide-down-out .6s; }

@-webkit-keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@-webkit-keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

@keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

.elementor-headline-animation-type-clip .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper::after {
    /* line */
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: 2px;
    height: 100%;
    background-color: #0d0d0d; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-drop-in-in .8s;
            animation: elementor-headline-drop-in-in .8s; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-drop-in-out .8s;
            animation: elementor-headline-drop-in-out .8s; }

@-webkit-keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@-webkit-keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

@keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-blinds-in .6s forwards;
            animation: elementor-headline-blinds-in .6s forwards; }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-blinds-out .6s forwards;
            animation: elementor-headline-blinds-out .6s forwards; }

@-webkit-keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@-webkit-keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

@keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
  display: inline-block;
  opacity: 0;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0); }
  .elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-wave-up .6s forwards;
            animation: elementor-headline-wave-up .6s forwards; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-wave-down .6s forwards;
            animation: elementor-headline-wave-down .6s forwards; }

@-webkit-keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

@keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-slide .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-slide-in .6s;
            animation: elementor-headline-slide-in .6s; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-out .6s;
            animation: elementor-headline-slide-out .6s; }

@-webkit-keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@-webkit-keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

@keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-transition: width 0.5s;
  -o-transition: width 0.5s;
  transition: width 0.5s; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper {
  overflow: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-text, .elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  white-space: nowrap; }

.elementor-msie .elementor-headline--style-highlight svg {
  top: auto;
  left: auto;
  -webkit-transform: translate(-100%);
      -ms-transform: translate(-100%);
          transform: translate(-100%); }

/* Animations */
@-webkit-keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }
@keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }

@-webkit-keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

@keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

/* Hotspot Wrapper */
.elementor-widget-hotspot {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: var(--background-align);
      -ms-flex-pack: var(--background-align);
          justify-content: var(--background-align); }
  .elementor-widget-hotspot .elementor-widget-container {
    position: relative;
    display: inline-block;
    width: var(--container-width);
    max-width: var(--container-max-width);
    height: var(--container-height); }
    .elementor-widget-hotspot .elementor-widget-container > img {
      display: block;
      width: var(--image-width, auto);
      height: var(--container-height);
      opacity: var(--opacity, 1); }

/* Each Hotspot */
.e-hotspot {
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  /* Hotspot Button Animations */
  /* End: Hotspot Button Animations */ }
  .e-hotspot--position-left.e-hotspot--position-top {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-left.e-hotspot--position-bottom {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y)); }
  .e-hotspot--position-right.e-hotspot--position-top {
    -webkit-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-right.e-hotspot--position-bottom {
    -webkit-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
        -ms-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
            transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y)); }
  .e-hotspot--active {
    z-index: 2; }
  .e-hotspot__outer-circle, .e-hotspot__inner-circle {
    content: "";
    display: inline-block;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    border-radius: 50%; }
  .e-hotspot__inner-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    background-color: var(--hotspot-color);
    padding: calc( var(--hotspot-size, 18px) / 2); }
  .e-hotspot__outer-circle {
    background-color: var(--hotspot-color);
    padding: var(--hotspot-padding, 4px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot--icon .e-hotspot__button {
    line-height: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    font-size: var(--hotspot-size, 18px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot__icon, .e-hotspot__label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .e-hotspot__icon svg, .e-hotspot__label svg {
      width: var(--hotspot-size, 18px);
      height: auto; }
  .e-hotspot__button {
    cursor: pointer;
    position: relative;
    display: grid;
    grid-auto-flow: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: var(--hotspot-color);
    font-size: var(--hotspot-size, 18px);
    min-width: var(--hotspot-button-width);
    min-height: var(--hotspot-button-height); }
    .e-hotspot__button:before {
      z-index: -2;
      content: "";
      width: 100%;
      height: 100%;
      left: -5px;
      top: -5px;
      position: absolute;
      padding: 5px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .e-hotspot__button svg {
      fill: var(--hotspot-color); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button {
    min-width: var(--hotspot-min-width);
    min-height: var(--hotspot-min-height);
    background-color: var(--hotspot-box-color);
    padding: var(--hotspot-padding, 4px);
    border-radius: var(--hotspot-border-radius, 3px); }
    .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before {
      border-radius: var(--hotspot-border-radius, 3px); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    background-color: var(--hotspot-box-color); }
  .e-hotspot--overlay {
    opacity: 0.7;
    -webkit-transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    transition: opacity 0.2s; }
  .e-hotspot--overlay:hover,
  .e-hotspot--active .e-hotspot--overlay {
    opacity: 1; }
  .e-hotspot--soft-beat {
    -webkit-animation: e-hotspot-soft-beat 0.7s infinite alternate;
            animation: e-hotspot-soft-beat 0.7s infinite alternate;
    -webkit-animation-timing-function: ease;
            animation-timing-function: ease; }
  .e-hotspot--expand .e-hotspot__outer-circle {
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    opacity: 0;
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot--sequenced {
    -webkit-animation: fadeIn 0.3s;
            animation: fadeIn 0.3s;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both; }
  .e-hotspot__direction-mask {
    overflow: hidden;
    position: absolute;
    pointer-events: none; }
  .e-hotspot__tooltip {
    white-space: var(--white-space, nowrap);
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-duration: var(--tooltip-transition-duration, 500ms);
         -o-transition-duration: var(--tooltip-transition-duration, 500ms);
            transition-duration: var(--tooltip-transition-duration, 500ms);
    -webkit-transform-origin: center center;
        -ms-transform-origin: center center;
            transform-origin: center center;
    position: absolute;
    pointer-events: none;
    color: var(--tooltip-text-color, #FFF);
    text-align: var(--tooltip-align);
    min-width: var(--tooltip-min-width);
    padding: var(--tooltip-padding, 8px);
    border-radius: var(--tooltip-border-radius);
    background-color: var(--tooltip-color); }
  .e-hotspot__tooltip p:last-of-type {
    margin-bottom: 0; }
  .e-hotspot__direction-mask .e-hotspot__tooltip {
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    position: static; }
  .e-hotspot--active .e-hotspot__tooltip {
    pointer-events: visible; }
  .e-hotspot--fade-in-out {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--fade-in-out {
    opacity: 1; }
  .e-hotspot--fade-grow {
    opacity: 0;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0); }
  .e-hotspot--active .e-hotspot--fade-grow {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .e-hotspot--tooltip-animation-from-top, .e-hotspot--override-tooltip-animation-from-top {
    -webkit-transform: translate(0, calc(-100% - 1px));
        -ms-transform: translate(0, calc(-100% - 1px));
            transform: translate(0, calc(-100% - 1px)); }
  .e-hotspot--tooltip-animation-from-left, .e-hotspot--override-tooltip-animation-from-left {
    -webkit-transform: translate(calc(-100% - 1px), 0);
        -ms-transform: translate(calc(-100% - 1px), 0);
            transform: translate(calc(-100% - 1px), 0); }
  .e-hotspot--tooltip-animation-from-right, .e-hotspot--override-tooltip-animation-from-right {
    -webkit-transform: translate(calc(100% + 1px), 0);
        -ms-transform: translate(calc(100% + 1px), 0);
            transform: translate(calc(100% + 1px), 0); }
  .e-hotspot--tooltip-animation-from-bottom, .e-hotspot--override-tooltip-animation-from-bottom {
    -webkit-transform: translate(0, calc(100% + 1px));
        -ms-transform: translate(0, calc(100% + 1px));
            transform: translate(0, calc(100% + 1px)); }
  .e-hotspot--fade-direction {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--slide-direction,
  .e-hotspot--active .e-hotspot--fade-direction {
    -webkit-transform: translate(0, 0) scale(1);
        -ms-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
    opacity: 1; }
  .e-hotspot--show-tooltip {
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
    opacity: 1;
    pointer-events: visible;
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

.site-main .menu-navigation-container {
  overflow: visible; }

.elementor-item:before, .elementor-item:after {
  display: block;
  position: absolute;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
       -o-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
          transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  opacity: 0; }


.elementor-item:hover:before,
.elementor-item:hover:after,
.elementor-item:focus:before,
.elementor-item:focus:after,
.elementor-item.highlighted:before,
.elementor-item.highlighted:after,
.elementor-item-active:before,
.elementor-item-active:after {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.e--pointer-double-line .elementor-item:before, .e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:before, .e--pointer-underline .elementor-item:after, .e--pointer-overline .elementor-item:before, .e--pointer-overline .elementor-item:after {
  height: 3px;
  width: 100%;
  left: 0;
  background-color: #55595c;
  z-index: 2; }

.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  height: 0;
  width: 0;
  left: 50%; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 10px; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: 10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: -10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: -10px; }

.e--pointer-double-line.e--animation-none,
.e--pointer-double-line.e--animation-none .elementor-item, .e--pointer-underline.e--animation-none,
.e--pointer-underline.e--animation-none .elementor-item, .e--pointer-overline.e--animation-none,
.e--pointer-overline.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-double-line.e--animation-none:before, .e--pointer-double-line.e--animation-none:after, .e--pointer-double-line.e--animation-none:hover, .e--pointer-double-line.e--animation-none:focus,
  .e--pointer-double-line.e--animation-none .elementor-item:before,
  .e--pointer-double-line.e--animation-none .elementor-item:after,
  .e--pointer-double-line.e--animation-none .elementor-item:hover,
  .e--pointer-double-line.e--animation-none .elementor-item:focus, .e--pointer-underline.e--animation-none:before, .e--pointer-underline.e--animation-none:after, .e--pointer-underline.e--animation-none:hover, .e--pointer-underline.e--animation-none:focus,
  .e--pointer-underline.e--animation-none .elementor-item:before,
  .e--pointer-underline.e--animation-none .elementor-item:after,
  .e--pointer-underline.e--animation-none .elementor-item:hover,
  .e--pointer-underline.e--animation-none .elementor-item:focus, .e--pointer-overline.e--animation-none:before, .e--pointer-overline.e--animation-none:after, .e--pointer-overline.e--animation-none:hover, .e--pointer-overline.e--animation-none:focus,
  .e--pointer-overline.e--animation-none .elementor-item:before,
  .e--pointer-overline.e--animation-none .elementor-item:after,
  .e--pointer-overline.e--animation-none .elementor-item:hover,
  .e--pointer-overline.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-double-line .elementor-item:before, .e--pointer-overline .elementor-item:before {
  content: '';
  top: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  width: 10px;
  left: -20px; }

.e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:after {
  content: '';
  bottom: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  width: 10px;
  inset-inline-start: 100%; }

.e--pointer-framed .elementor-item:before, .e--pointer-framed .elementor-item:after {
  background: transparent;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  border: 3px solid #55595c; }

.e--pointer-framed .elementor-item:before {
  content: ''; }

.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(0.75);
      -ms-transform: scale(0.75);
          transform: scale(0.75); }

.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.25);
      -ms-transform: scale(1.25);
          transform: scale(1.25); }

.e--pointer-framed.e--animation-grow .elementor-item:before, .e--pointer-framed.e--animation-shrink .elementor-item:before {
  -webkit-transition: opacity 0.2s, -webkit-transform 0.4s;
  transition: opacity 0.2s, -webkit-transform 0.4s;
  -o-transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-framed.e--animation-draw .elementor-item:before, .e--pointer-framed.e--animation-draw .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-draw .elementor-item:before {
  border-width: 0 3px 3px 0;
  -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  -o-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }

.e--pointer-framed.e--animation-draw .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  right: initial;
  left: 0;
  border-width: 3px 0 0 3px;
  -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  -o-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  width: 100%;
  height: 100%; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:before {
  -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  -o-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  -o-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }

.e--pointer-framed.e--animation-corners .elementor-item:before, .e--pointer-framed.e--animation-corners .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:before {
  border-width: 3px 3px 0 0; }

.e--pointer-framed.e--animation-corners .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  right: initial;
  left: 0;
  border-width: 0 0 3px 3px; }


.e--pointer-framed.e--animation-corners .elementor-item:hover:before,
.e--pointer-framed.e--animation-corners .elementor-item:hover:after,
.e--pointer-framed.e--animation-corners .elementor-item:focus:before,
.e--pointer-framed.e--animation-corners .elementor-item:focus:after,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-corners .elementor-item-active:before,
.e--pointer-framed.e--animation-corners .elementor-item-active:after {
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s;
  -o-transition: opacity 0.002s, width 0.4s, height 0.4s;
  transition: opacity 0.002s, width 0.4s, height 0.4s; }

.e--pointer-framed.e--animation-none,
.e--pointer-framed.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-framed.e--animation-none:before, .e--pointer-framed.e--animation-none:after, .e--pointer-framed.e--animation-none:hover, .e--pointer-framed.e--animation-none:focus,
  .e--pointer-framed.e--animation-none .elementor-item:before,
  .e--pointer-framed.e--animation-none .elementor-item:after,
  .e--pointer-framed.e--animation-none .elementor-item:hover,
  .e--pointer-framed.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-background .elementor-item:before, .e--pointer-background .elementor-item:after {
  content: '';
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }

.e--pointer-background .elementor-item:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }


.e--pointer-background .elementor-item:hover,
.e--pointer-background .elementor-item:focus,
.e--pointer-background .elementor-item.highlighted,
.e--pointer-background .elementor-item-active {
  color: #fff; }

.e--pointer-background.e--animation-grow .elementor-item:before {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5); }


.e--pointer-background.e--animation-grow .elementor-item:hover:before,
.e--pointer-background.e--animation-grow .elementor-item:focus:before,
.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,
.e--pointer-background.e--animation-grow .elementor-item-active:before {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }


.e--pointer-background.e--animation-shrink .elementor-item:hover:before,
.e--pointer-background.e--animation-shrink .elementor-item:focus:before,
.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shrink .elementor-item-active:before {
  -webkit-transition: opacity 0.15s, -webkit-transform 0.4s;
  transition: opacity 0.15s, -webkit-transform 0.4s;
  -o-transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  left: 100%; }

.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 100%; }

.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 100%; }

.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 50%;
  top: 50%; }

.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 50%;
  left: 50%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after, .e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before {
  top: 0;
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after {
  top: 100%;
  bottom: 0; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before {
  bottom: 50%; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after {
  top: 50%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before {
  right: 0;
  left: 100%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  right: 100%;
  left: 0; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before {
  left: 50%; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after {
  right: 50%; }

.e--pointer-background.e--animation-none,
.e--pointer-background.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-background.e--animation-none:before, .e--pointer-background.e--animation-none:after, .e--pointer-background.e--animation-none:hover, .e--pointer-background.e--animation-none:focus,
  .e--pointer-background.e--animation-none .elementor-item:before,
  .e--pointer-background.e--animation-none .elementor-item:after,
  .e--pointer-background.e--animation-none .elementor-item:hover,
  .e--pointer-background.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-text.e--animation-skew .elementor-item:hover,
.e--pointer-text.e--animation-skew .elementor-item:focus {
  -webkit-transform: skew(-8deg);
      -ms-transform: skew(-8deg);
          transform: skew(-8deg); }

.e--pointer-text.e--animation-grow .elementor-item:hover,
.e--pointer-text.e--animation-grow .elementor-item:focus {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.e--pointer-text.e--animation-shrink .elementor-item:hover,
.e--pointer-text.e--animation-shrink .elementor-item:focus {
  -webkit-transform: scale(0.8);
      -ms-transform: scale(0.8);
          transform: scale(0.8); }

.e--pointer-text.e--animation-float .elementor-item:hover,
.e--pointer-text.e--animation-float .elementor-item:focus {
  -webkit-transform: translateY(-8px);
      -ms-transform: translateY(-8px);
          transform: translateY(-8px); }

.e--pointer-text.e--animation-sink .elementor-item:hover,
.e--pointer-text.e--animation-sink .elementor-item:focus {
  -webkit-transform: translateY(8px);
      -ms-transform: translateY(8px);
          transform: translateY(8px); }

.e--pointer-text.e--animation-rotate .elementor-item:hover,
.e--pointer-text.e--animation-rotate .elementor-item:focus {
  -webkit-transform: rotate(6deg);
      -ms-transform: rotate(6deg);
          transform: rotate(6deg); }

.e--pointer-text.e--animation-none,
.e--pointer-text.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-text.e--animation-none:before, .e--pointer-text.e--animation-none:after, .e--pointer-text.e--animation-none:hover, .e--pointer-text.e--animation-none:focus,
  .e--pointer-text.e--animation-none .elementor-item:before,
  .e--pointer-text.e--animation-none .elementor-item:after,
  .e--pointer-text.e--animation-none .elementor-item:hover,
  .e--pointer-text.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.elementor-nav-menu--main .elementor-nav-menu a {
  -webkit-transition: 0.4s;
  -o-transition: 0.4s;
  transition: 0.4s; }
  .elementor-nav-menu--main .elementor-nav-menu a, .elementor-nav-menu--main .elementor-nav-menu a:hover, .elementor-nav-menu--main .elementor-nav-menu a:focus, .elementor-nav-menu--main .elementor-nav-menu a.highlighted {
    padding: 13px 20px; }
  .elementor-nav-menu--main .elementor-nav-menu a.current {
    background: #373a3c;
    color: #fff; }
  .elementor-nav-menu--main .elementor-nav-menu a.disabled {
    background: #55595c;
    color: #a1a6a9; }

.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  width: 12em;
  border-width: 0;
  border-style: solid;
  padding: 0; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up,
.elementor-nav-menu--main .elementor-nav-menu span.scroll-down {
  position: absolute;
  display: none;
  visibility: hidden;
  overflow: hidden;
  background: #fff;
  height: 20px; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  position: absolute;
  top: -2px;
  right: 50%;
  margin-right: -8px;
  width: 0;
  height: 0;
  overflow: hidden;
  border-width: 8px;
  border-style: dashed dashed solid dashed;
  border-color: transparent transparent #494c4f transparent; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  top: 6px;
  border-style: solid dashed dashed dashed;
  border-color: #494c4f transparent transparent transparent; }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg); }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg {
  height: 1em;
  width: 1em; }

.elementor-nav-menu--layout-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
      white-space: nowrap;
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > .scroll-down {
        top: 100% !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > a {
        -webkit-margin-start: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-down, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-up {
        right: var(--e-nav-menu-horizontal-menu-item-margin) !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child) > a {
        -webkit-margin-end: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child):after {
        content: var(--e-nav-menu-divider-content, none);
        border-left-width: var(--e-nav-menu-divider-width, 2px);
        border-left-style: var(--e-nav-menu-divider-style, solid);
        height: var(--e-nav-menu-divider-height, 35%);
        border-color: var(--e-nav-menu-divider-color, #000);
        -ms-flex-item-align: center;
            align-self: center; }

.elementor-nav-menu__align-right .elementor-nav-menu {
  margin-left: auto;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-left .elementor-nav-menu {
  margin-right: auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-center .elementor-nav-menu {
  margin-left: auto;
  margin-right: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  width: 100%; }
  .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }

.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle {
  display: none; }

.elementor-widget-nav-menu .elementor-widget-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.elementor-nav-menu {
  position: relative;
  z-index: 2; }
  .elementor-nav-menu:after {
    content: "\00a0";
    display: block;
    height: 0;
    font: 0px/0 serif;
    clear: both;
    visibility: hidden;
    overflow: hidden; }
  .elementor-nav-menu,
  .elementor-nav-menu ul,
  .elementor-nav-menu li {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: normal;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .elementor-nav-menu ul {
    display: none; }
    .elementor-nav-menu ul ul a,
    .elementor-nav-menu ul ul a:hover,
    .elementor-nav-menu ul ul a:focus,
    .elementor-nav-menu ul ul a:active {
      border-left: 16px solid transparent; }
    .elementor-nav-menu ul ul ul a,
    .elementor-nav-menu ul ul ul a:hover,
    .elementor-nav-menu ul ul ul a:focus,
    .elementor-nav-menu ul ul ul a:active {
      border-left: 24px solid transparent; }
    .elementor-nav-menu ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul a:active {
      border-left: 32px solid transparent; }
    .elementor-nav-menu ul ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul ul a:active {
      border-left: 40px solid transparent; }
  .elementor-nav-menu li,
  .elementor-nav-menu a {
    position: relative; }
  .elementor-nav-menu li {
    border-width: 0; }
  .elementor-nav-menu a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu a, .elementor-nav-menu a:hover, .elementor-nav-menu a:focus {
      padding: 10px 20px;
      line-height: 20px; }
    .elementor-nav-menu a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu a.disabled {
      cursor: not-allowed;
      color: #a1a6a9; }
  .elementor-nav-menu .e-plus-icon:before {
    content: '+'; }
  .elementor-nav-menu .sub-arrow {
    line-height: 1;
    padding: 10px 10px 10px 0;
    margin-top: -10px;
    margin-bottom: -10px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu .sub-arrow i {
      pointer-events: none; }
    .elementor-nav-menu .sub-arrow .fa.fa-chevron-down, .elementor-nav-menu .sub-arrow .fas.fa-chevron-down {
      font-size: 0.7em; }
    .elementor-nav-menu .sub-arrow .e-font-icon-svg {
      height: 1em;
      width: 1em; }
      .elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down {
        height: 0.7em;
        width: 0.7em; }

.elementor-nav-menu--dropdown .elementor-item:hover, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor-sub-item:hover,
.elementor-sub-item:focus,
.elementor-sub-item.highlighted,
.elementor-sub-item.elementor-item-active {
  background-color: #55595c;
  color: #fff; }

.elementor-menu-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 22px;
  padding: 0.25em;
  cursor: pointer;
  border: 0 solid;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.05);
  color: #494c4f; }
  .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none; }
  .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close {
    display: none; }
  .elementor-menu-toggle .e-font-icon-svg {
    fill: #494c4f;
    height: 1em;
    width: 1em; }

.elementor-nav-menu--dropdown {
  background-color: #fff;
  font-size: 13px; }
  .elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-none .elementor-menu-toggle {
    display: none; }
  .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    margin-top: 10px;
    -webkit-transition: max-height 0.3s, -webkit-transform 0.3s;
    transition: max-height 0.3s, -webkit-transform 0.3s;
    -o-transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform-origin: top;
        -ms-transform-origin: top;
            transform-origin: top;
    overflow: auto; }
    .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
      font-size: 0.85em; }
  .elementor-nav-menu--dropdown a {
    color: #494c4f; }
    .elementor-nav-menu--dropdown a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu--dropdown a.disabled {
      color: #b3b3b3; }

ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:hover, ul.elementor-nav-menu--dropdown a:focus {
  text-shadow: none;
  border-right: 8px solid transparent; }

.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  -webkit-transform: scaleY(0);
      -ms-transform: scaleY(0);
          transform: scaleY(0);
  max-height: 0; }

.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1);
  max-height: 100vh; }

.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  position: absolute;
  z-index: 9997; }

/**
 * Mobile Hamburger Menu Breakpoint
 */
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main {
    display: none; } }

@media (min-width: 768px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle {
    display: none; } }

/**
 * Mobile Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle {
    display: none; } }

/**
 * Tablet Hamburger Menu Breakpoint
 */
@media (min-width: 1025px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle {
    display: none; } }

@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
    display: none; } }

/**
 * Tablet Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle {
    display: none; } }

.elementor-gallery__container {
  min-height: 1px; }

.elementor-gallery-item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  border: solid var(--image-border-width) var(--image-border-color);
  border-radius: var(--image-border-radius); }
  .elementor-gallery-item__overlay, .elementor-gallery-item__content {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .elementor-gallery-item__overlay {
    mix-blend-mode: var(--overlay-mix-blend-mode);
    -webkit-transition-duration: var(--overlay-transition-duration);
         -o-transition-duration: var(--overlay-transition-duration);
            transition-duration: var(--overlay-transition-duration);
    -webkit-transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    -o-transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color, -webkit-transform; }
  .elementor-gallery-item__image.e-gallery-image {
    -webkit-transition-duration: var(--image-transition-duration);
         -o-transition-duration: var(--image-transition-duration);
            transition-duration: var(--image-transition-duration);
    -webkit-transition-property: -webkit-filter, -webkit-transform;
    transition-property: -webkit-filter, -webkit-transform;
    -o-transition-property: filter, transform;
    transition-property: filter, transform;
    transition-property: filter, transform, -webkit-filter, -webkit-transform; }
  .elementor-gallery-item__content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: var(--content-justify-content, center);
        -ms-flex-pack: var(--content-justify-content, center);
            justify-content: var(--content-justify-content, center);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: var(--content-text-align);
    padding: var(--content-padding); }
    .elementor-gallery-item__content > div {
      -webkit-transition-duration: var(--content-transition-duration);
           -o-transition-duration: var(--content-transition-duration);
              transition-duration: var(--content-transition-duration); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(2) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
              transition-delay: calc( ( var(--content-transition-delay) / 3 )); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(3) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(4) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3); }
  .elementor-gallery-item__description {
    color: var(--description-text-color, #ffffff);
    width: 100%; }
  .elementor-gallery-item__title {
    color: var(--title-text-color, #ffffff);
    font-weight: bold;
    width: 100%; }

.elementor-gallery__titles-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: var(--titles-container-justify-content, center);
      -ms-flex-pack: var(--titles-container-justify-content, center);
          justify-content: var(--titles-container-justify-content, center);
  margin-bottom: 20px; }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:before {
    border-color: var(--galleries-pointer-bg-color-hover);
    border-width: var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:after {
    border-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before {
    border-width: 0 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after {
    border-width: var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0 0; }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before {
    border-width: var(--galleries-pointer-border-width) 0 0 var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after {
    border-width: 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0; }
  .elementor-gallery__titles-container .e--pointer-underline .elementor-item:after,
  .elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after {
    height: var(--galleries-pointer-border-width); }

.elementor-gallery-title {
  --space-between: 10px;
  cursor: pointer;
  color: #6D7882;
  font-weight: 500;
  position: relative;
  padding: 7px 14px;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s; }
  .elementor-gallery-title--active {
    color: #495157; }
  .elementor-gallery-title:not(:last-child) {
    margin-left: var(--space-between); }

.elementor-gallery-item__title + .elementor-gallery-item__description {
  margin-top: var(--description-margin-top); }

.e-gallery-item.elementor-gallery-item {
  -webkit-transition-property: all;
  -o-transition-property: all;
  transition-property: all; }

.e-gallery-item:hover .elementor-gallery__item-overlay-bg {
  opacity: 1; }

.e-gallery-item:hover .elementor-gallery__item-overlay-content {
  opacity: 1; }
  .e-gallery-item:hover .elementor-gallery__item-overlay-content__title, .e-gallery-item:hover .elementor-gallery__item-overlay-content__description {
    opacity: 1; }

.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom {
  opacity: 1; }

a.elementor-item.elementor-gallery-title {
  color: var(--galleries-title-color-normal); }
  a.elementor-item.elementor-gallery-title:hover, a.elementor-item.elementor-gallery-title.elementor-item-active, a.elementor-item.elementor-gallery-title.highlighted, a.elementor-item.elementor-gallery-title:focus {
    color: var(--galleries-title-color-hover); }
  a.elementor-item.elementor-gallery-title.elementor-item-active {
    color: var(--gallery-title-color-active); }

.elementor-widget-table-of-contents .elementor-toc__header-title {
  color: var(--header-color); }

.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse {
  display: none; }

.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand {
  display: none; }

.elementor-widget-table-of-contents .elementor-widget-container {
  min-height: var(--box-min-height);
  border: var(--box-border-width, 1px) solid var(--box-border-color, #a4afb7);
  border-radius: var(--box-border-radius, 3px);
  background-color: var(--box-background-color);
  -webkit-transition: min-height 0.4s;
  -o-transition: min-height 0.4s;
  transition: min-height 0.4s;
  overflow: hidden; }

.elementor-toc__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: var(--box-padding, 20px);
  background-color: var(--header-background-color);
  border-bottom: var(--separator-width, 1px) solid var(--box-border-color, #a4afb7); }
  .elementor-toc__header-title {
    font-size: 18px;
    margin: 0;
    color: var(--header-color); }

.elementor-toc__toggle-button {
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }
  .elementor-toc__toggle-button i {
    color: var(--toggle-button-color); }
  .elementor-toc__toggle-button svg {
    fill: var(--toggle-button-color);
    height: 1em;
    width: 1em;
    fill: var(--toggle-button-color); }

.elementor-toc__spinner-container {
  text-align: center; }

.elementor-toc__spinner {
  font-size: 2em; }
  .elementor-toc__spinner.e-font-icon-svg {
    height: 1em;
    width: 1em; }

.elementor-toc__body {
  padding: var(--box-padding, 20px);
  max-height: var(--toc-body-max-height);
  overflow-y: auto; }
  .elementor-toc__body::-webkit-scrollbar {
    width: 7px; }
  .elementor-toc__body::-webkit-scrollbar-thumb {
    background-color: #c2cbd2;
    border-radius: 10px; }

.elementor-toc__list-wrapper {
  list-style: none;
  padding: 0; }

.elementor-toc__list-item {
  margin-bottom: 0.5em; }
  .elementor-toc__list-item.elementor-item-active {
    font-weight: bold; }
  .elementor-toc__list-item .elementor-toc__list-wrapper {
    margin-top: 0.5em;
    margin-right: var(--nested-list-indent, 1em); }
  .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }
  .elementor-toc__list-item-text-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-toc__list-item-text-wrapper i, .elementor-toc__list-item-text-wrapper:before {
      margin-left: 8px;
      color: var(--marker-color); }
    .elementor-toc__list-item-text-wrapper svg {
      margin-left: 8px;
      fill: var(--marker-color);
      height: var(--marker-size, 0.5em);
      width: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper i {
      font-size: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper:before {
      font-size: var(--marker-size, 1em); }

.elementor-toc--content-ellipsis .elementor-toc__list-item-text {
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-toc__list-items--collapsible > .elementor-toc__list-wrapper > .elementor-toc__list-item > .elementor-toc__list-wrapper {
  display: none; }

.elementor-toc__heading-anchor {
  position: absolute; }

.elementor-toc__body .elementor-toc__list-item-text {
  color: var(--item-text-color);
  -webkit-text-decoration: var(--item-text-decoration);
          text-decoration: var(--item-text-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }

ol.elementor-toc__list-wrapper {
  counter-reset: item; }
  ol.elementor-toc__list-wrapper .elementor-toc__list-item {
    counter-increment: item; }
    ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before {
      content: counters(item, ".") ". "; }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-tablet_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 1024px) {
  .elementor-toc--minimized-on-tablet .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-mobile_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 767px) {
  .elementor-toc--minimized-on-mobile .elementor-toc__body {
    display: none; } }

.e-lottie__container {
  display: inline-block;
  max-width: var(--lottie-container-max-width);
  width: var(--lottie-container-width);
  opacity: var(--lottie-container-opacity); }
  .e-lottie__container:hover {
    opacity: var(--lottie-container-opacity-hover);
    -webkit-transition-duration: var(--lottie-container-transition-duration-hover);
         -o-transition-duration: var(--lottie-container-transition-duration-hover);
            transition-duration: var(--lottie-container-transition-duration-hover); }
  .e-lottie__container svg,
  .e-lottie__container svg * {
    -webkit-transition: none !important;
    -o-transition: none !important;
    transition: none !important; }

.e-lottie__caption {
  color: var(--caption-color);
  margin-top: var(--caption-margin-top);
  text-align: var(--caption-text-align); }

/* Video_Playlist Widget */
.e-tabs-inner-tabs {
  text-align: right;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 16px; }
  .e-tabs-inner-tabs .e-tab-content {
    padding-top: 32px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper :after {
      content: '';
      width: 100%;
      height: var(--inner-tabs-border-height, 1px);
      background-color: var(--inner-tabs-border-color, #d5dadf);
      position: absolute;
      bottom: 0;
      z-index: -1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title {
      font-weight: 700;
      min-width: 140px;
      line-height: 38px;
      height: 38px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a {
        color: #6d7882;
        padding: 0 36px;
        display: block;
        text-align: center; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active {
        border-bottom: 0 solid transparent;
        border-color: #495157;
        border-width: 0 0 1px 0; }
        .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a {
          color: #495157; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
    display: none;
    padding: 20px; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text {
      color: #556068; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons {
      margin-top: 24px;
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button {
        display: none;
        font-weight: 500;
        line-height: 24px;
        text-decoration: underline;
        border: none;
        background: transparent;
        padding: 0; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text {
      overflow: hidden; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button {
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button {
        display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text {
      height: auto; }

@media (max-width: 767px) {
  .e-tabs-inner-tabs > .e-tab-content:first-child {
    padding-top: 24px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper {
    border-width: 1px 1px 0;
    border-style: solid;
    border-color: #d5dadf; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      font-size: 16px;
      font-weight: 700;
      text-align: center;
      height: 38px;
      line-height: 38px;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      padding: 0 10px;
      cursor: pointer;
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      padding: 20px; } }

.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

.elementor-widget-video-playlist {
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; }
  .elementor-widget-video-playlist .e-tabs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-widget-video-playlist .e-tabs-main-area {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    height: 434px; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 33%; }
  .elementor-widget-video-playlist .e-tabs-header {
    background-color: #ffffff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 16px;
    min-height: 56px;
    border-bottom: 1px solid #d5dadf; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -ms-flex-negative: 0;
          flex-shrink: 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-title {
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      font-weight: 700;
      font-size: 16px;
      padding: 10px 0;
      overflow-wrap: anywhere;
      -webkit-hyphens: auto;
          -ms-hyphens: auto;
              hyphens: auto;
      margin: auto 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      font-size: 14px;
      -ms-flex-negative: 0;
          flex-shrink: 0;
      font-weight: 400;
      line-height: 20px;
      -ms-flex-item-align: start;
          align-self: flex-start;
      padding: 18px 0 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: none;
      margin: auto 0 auto 8px;
      cursor: pointer;
      padding: 0 4px; }
      .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg {
        height: 1em;
        width: 1em; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-up {
      -webkit-transform: rotate(-180deg);
          -ms-transform: rotate(-180deg);
              transform: rotate(-180deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-down {
      -webkit-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
              transform: rotate(0deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper {
    background-color: #ffffff;
    overflow: hidden;
    position: relative;
    height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
      overflow: auto;
      height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title {
      border-color: #d5dadf;
      border-width: 1px 0 0 0;
      font-size: 14px;
      height: 36px;
      padding: 0 16px;
      line-height: 36px;
      margin: 0;
      text-align: right;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      border-width: 0;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title {
      background-color: #ffffff;
      border-color: #d5dadf;
      border-width: 0 0 1px 0;
      cursor: pointer;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      font-size: 14px;
      height: 55px;
      line-height: 55px;
      outline: none;
      padding: 0 16px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        font-size: var(--playlist-item-icon-size, 16px); }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        fill: #ffffff;
        width: var(--playlist-item-icon-size, 16px);
        height: var(--playlist-item-icon-size, 16px); }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path {
          fill: #ffffff; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover {
        background-color: #f1f3f5;
        border-color: #d5dadf;
        border-width: 0 0 1px 0; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
          .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path {
            fill: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text {
          font-size: 14px; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail {
        background-color: #d5dadf;
        position: relative;
        margin: auto 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        width: 75px;
        height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img {
          -o-object-fit: fill;
             object-fit: fill;
          width: 75px;
          height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg {
          position: absolute;
          bottom: 4px;
          right: 4px;
          font-weight: 900; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text {
        font-size: 14px;
        margin: auto 8px;
        text-align: right;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        margin: auto 0;
        vertical-align: middle; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration {
        font-size: 14px;
        margin: auto 0; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched {
        display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      display: none;
      height: 98px;
      position: absolute;
      top: 0;
      width: 100%;
      pointer-events: none;
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      display: none;
      height: 98px;
      position: absolute;
      bottom: 0;
      width: 100%;
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
      pointer-events: none; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top {
      display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom {
      display: block; }
  .elementor-widget-video-playlist .e-tabs-content-wrapper {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    height: 100%;
    position: relative; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay {
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      -webkit-background-size: cover;
              background-size: cover;
      background-position: 50%; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title {
      display: none; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content {
      background-color: #000000;
      display: none;
      height: 100%;
      outline: none; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content > div {
        height: 100%; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe {
        height: 100%;
        max-height: 100% !important;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video {
        height: 100%;
        background-color: #000000; }
  .elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content {
    display: none;
    outline: none; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    height: auto; }
    .elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper {
      border: none;
      height: 38%; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    width: auto;
    height: 62%; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
    max-height: 248px; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title {
      border: none; }
  .elementor-widget-video-playlist .e-tabs-header {
    min-height: 48px; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      margin: 0 6px;
      padding: 14px 0 0; }
  .elementor-widget-video-playlist .e-tab-content {
    border: none;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.elementor-payment-button {
  border: none; }

.elementor-scrolling-tracker {
  --scrolling-track-default-progress-color: #61ce70;
  --scrolling-track-default-color: #eeeeee;
  --scrolling-track-precentage-default-color: $black; }

.elementor-scrolling-tracker-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: var(--horizontal-height, 20px);
  padding: var(--tracker-padding);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top-width: var(--horizontal-border-top-width, 2px);
  border-right-width: var(--horizontal-border-right-width, 2px);
  border-bottom-width: var(--horizontal-border-bottom-width, 2px);
  border-left-width: var(--horizontal-border-left-width, 2px);
  border-style: var(--horizontal-border-style);
  border-color: var(--horizontal-border-color);
  border-radius: var(--border-radius);
  background-color: var(--scrolling-track-default-color);
  direction: var(--direction); }
  .elementor-scrolling-tracker-horizontal .current-progress {
    display: none;
    height: 100%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: var(--progress-border-radius);
    border-top-width: var(--horizontal-progress-border-top-width, 2px);
    border-right-width: var(--horizontal-progress-border-right-width, 2px);
    border-bottom-width: var(--horizontal-progress-border-bottom-width, 2px);
    border-left-width: var(--horizontal-progress-border-left-width, 2px);
    border-style: var(--horizontal-progress-border);
    border-color: var(--horizontal-progress-border-color);
    background-color: var(--scrolling-track-default-progress-color); }
    .elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage {
      inset-inline-end: 0.5em;
      inset-inline-start: auto;
      position: absolute;
      direction: var(--text-direction);
      color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }

.elementor-scrolling-tracker-circular {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: var(--circular-width, 100px);
  height: var(--circular-height, 100px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  -webkit-margin-start: 0;
          margin-inline-start: 0;
  -webkit-margin-end: auto;
          margin-inline-end: auto; }
  .elementor-scrolling-tracker-circular .current-progress-percentage {
    position: absolute;
    color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }
  .elementor-scrolling-tracker-circular svg {
    position: absolute; }
  .elementor-scrolling-tracker-circular .current-progress {
    display: none;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transform-origin: 50% 50%;
        -ms-transform-origin: 50% 50%;
            transform-origin: 50% 50%;
    stroke: var(--circular-color, var(--scrolling-track-default-progress-color));
    fill: transparent;
    stroke-width: var(--circular-progress-width, 4px); }
  .elementor-scrolling-tracker-circular .circle {
    stroke: var(--circular-background-color, var(--scrolling-track-default-color));
    fill: transparent;
    stroke-width: var(--circular-background-width, 4px); }

.elementor-scrolling-tracker-alignment-left {
  margin-left: 0;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-center {
  margin-left: auto;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-right {
  margin-left: auto;
  margin-right: 0; }
/*# sourceMappingURL=frontend-rtl.css.map */PK!re^���!assets/css/widget-pricing.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-right:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-right:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:left;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-right:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-right:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-right:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}PK!��l��#assets/css/widget-motion-fx.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}PK!/q�T��!assets/css/widget-gallery.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-right:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}PK!5֜�nEnEassets/css/admin-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.wrap.elementor-admin-page-license form.elementor-license-box{max-width:600px;background:#fff;margin:20px 0;padding:20px}.wrap.elementor-admin-page-license form.elementor-license-box h3{border-bottom:1px solid #eee;padding:20px;margin:-20px -20px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.wrap.elementor-admin-page-license form.elementor-license-box h3 span{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-right:5px}.wrap.elementor-admin-page-license form.elementor-license-box h3 small{float:left;font-size:13px;font-weight:400}.wrap.elementor-admin-page-license form.elementor-license-box label{display:block;font-size:1.3em;font-weight:600;margin:1em 0}.wrap.elementor-admin-page-license form.elementor-license-box .button{height:30px;margin-right:15px;margin-bottom:0}.wrap.elementor-admin-page-license form.elementor-license-box p.description{margin:10px 0}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom{padding-bottom:15px;border-bottom:1px solid #eee}.wrap.elementor-admin-page-license .elementor-box-action{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;margin-top:30px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link{color:#72777c;margin-left:15px}.wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover{color:inherit}.fixed .column-elementor_library_type,.fixed .column-instances{width:10%}.fixed .elementor-shortcode-input{min-width:235px}@media (min-width:768px) and (max-width:1440px){.fixed .column-shortcode{width:25%}.fixed .elementor-shortcode-input{min-width:100%}}#available-widgets [class*=elementor-template] .widget-title:before{content:"\e801";font-family:eicon;font-size:17px}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}.elementor-button-spinner.error:before{content:"\f335";color:red}span.font-variations-count{display:inline-block;vertical-align:top;margin:1px 0 0 5px;padding:0 5px;min-width:7px;height:17px;border-radius:11px;background-color:#d4dffb;color:#4278b2;font-size:9px;line-height:17px;text-align:center;z-index:26}.post-type-elementor_font div#elementor-font-custommetabox{background:none;border:0}.post-type-elementor_font div#elementor-font-custommetabox button.handlediv{display:none}.post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside{margin:0;padding:0}.post-type-elementor_font div#elementor-font-custommetabox h2.hndle{padding:0}.post-type-elementor_font #minor-publishing-actions,.post-type-elementor_font #misc-publishing-actions,.post-type-elementor_font #tagsdiv-elementor_font_type,.post-type-elementor_font div#elementor-font-custommetabox .handle-actions{display:none}.elementor-metabox-content .repeater-block{background:#fff;color:#6d7882;padding:20px;margin-bottom:2px}.elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible{padding-bottom:0;margin-bottom:0}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row{display:none}.elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row{display:inline-block}.elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row{display:none}.elementor-metabox-content .repeater-block .repeater-title{cursor:pointer}.elementor-metabox-content .row-font-label{padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;text-transform:capitalize}.elementor-metabox-content .row-font-label li{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .row-font-label li span.label{font-weight:500;padding-left:10px}.elementor-metabox-content .row-font-label li.row-font-style,.elementor-metabox-content .row-font-label li.row-font-weight{max-width:180px}.elementor-metabox-content .row-font-label li.row-font-actions{max-width:200px;text-align:left}.elementor-metabox-content .repeater-content{margin:0}.elementor-metabox-content .repeater-content .repeater-content-top{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:20px;line-height:28px}.elementor-metabox-content .repeater-content .repeater-content-top>div{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-metabox-content .repeater-content .repeater-content-top p{margin:0;display:inline-block}.elementor-metabox-content .repeater-content .repeater-content-top p label{font-weight:500;padding-left:10px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select{max-width:180px}.elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar{max-width:200px;text-align:left}.elementor-metabox-content .repeater-content .repeater-content-bottom{background-color:#f7f7f7;padding:20px 40px;margin:0 -20px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;padding:10px 20px;margin-bottom:10px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.05);box-shadow:0 3px 5px rgba(0,0,0,.05)}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child{margin-bottom:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;width:100%;margin:0}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label{font-weight:500;max-width:120px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input{padding:5px 8px;margin:0 15px;border-radius:3px;font-size:12px;width:100%;background:none;-webkit-box-shadow:none;box-shadow:none;color:#495157;border:1px solid;outline:none}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus){border-color:#d5dadf}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus{border-color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{max-width:100px;font-size:11px}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn{background-color:#eceeef;color:#a4afb7}.elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover{background-color:#b01b1b;color:#fff}.elementor-metabox-content .elementor-button{background-color:#a4afb7;color:#fff;line-height:1;text-transform:uppercase;height:auto;padding:10px 20px;outline:none;border:none;-webkit-transition-property:background,color,opacity,-webkit-box-shadow;transition-property:background,color,opacity,-webkit-box-shadow;-o-transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity;transition-property:background,color,box-shadow,opacity,-webkit-box-shadow;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:hover,.elementor-metabox-content .elementor-button:visited{color:#fff}.elementor-metabox-content .elementor-button:focus,.elementor-metabox-content .elementor-button:visited{background-color:#a4afb7}.elementor-metabox-content .elementor-button:hover{background-color:#6d7882;-webkit-box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 2px rgba(0,0,0,.2);border:none}.elementor-metabox-content .elementor-button:active{-webkit-box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1);box-shadow:0 5px 10px rgba(0,0,0,.19),0 3px 3px rgba(0,0,0,.1)}.elementor-metabox-content .elementor-button:not([disabled]){cursor:pointer}.elementor-metabox-content .elementor-button.elementor-size-xs{font-size:11px;padding:10px 20px;border-radius:2px}.elementor-metabox-content .elementor-button.elementor-size-sm{font-size:13px;padding:12px 24px;border-radius:3px}.elementor-metabox-content .elementor-button.elementor-size-md{font-size:14px;padding:15px 30px;border-radius:4px}.elementor-metabox-content .elementor-button.elementor-size-lg{font-size:15px;padding:20px 40px;border-radius:5px}.elementor-metabox-content .elementor-button.elementor-size-xl{font-size:18px;padding:25px 50px;border-radius:6px}.elementor-metabox-content .elementor-button .elementor-align-icon-right{float:right;margin-left:5px}.elementor-metabox-content .elementor-button .elementor-align-icon-left{float:left;margin-right:5px}.elementor-metabox-content input.button.add-repeater-row{margin-top:18px;border:none;-webkit-box-shadow:none;box-shadow:none}.elementor-metabox-content .elementor-repeater-tool-btn{color:#a4afb7;cursor:pointer;padding:0 20px;font-size:12px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-metabox-content .elementor-repeater-tool-btn i{padding-left:5px}.elementor-metabox-content .elementor-repeater-tool-btn:hover{color:#6d7882}.elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover{color:#b01b1b}.elementor-metabox-content .inline-preview,.elementor-metabox-content .row-font-preview{font-size:16px;text-transform:capitalize}.column-font_preview{width:65%}.widefat td.column-font_preview{font-size:16px}.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]){margin-top:10px}.post-type-elementor_icons div#postbox-container-1{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox{display:none;border:1px solid #eceeef;border-radius:1px;background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .inside{margin-top:10px;margin-bottom:20px}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content{background-color:#fff}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:4px 10px 10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox{padding:0}}.post-type-elementor_icons div#elementor-custom-icons-metabox h4{color:#556068;font-size:22px;font-weight:500;letter-spacing:.7px;line-height:28px;margin:0 0 4px}.post-type-elementor_icons div#elementor-custom-icons-metabox h5{color:#a4afb7;font-size:16px;font-weight:500;letter-spacing:.5px;line-height:21px;margin:0}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i{font-size:64px;color:#39b54a}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__file,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,.post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading{display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover{background-color:grey}.post-type-elementor_icons div#elementor-custom-icons-metabox .box__input{padding:180px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone{outline:2px dashed #d5dadf;outline-offset:-3px;background-color:#fff;display:none}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons{background-color:#f7f7f7;border:1px solid #eceeef;border-radius:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content{background-color:#f7f7f7}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox{padding:4px 10px 0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{height:50px;color:#6d7882;background-color:#fff;-webkit-box-shadow:0 2px 6px 0 rgba(0,0,0,.06);box-shadow:0 2px 6px 0 rgba(0,0,0,.06);padding:0 35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header{padding:0 6px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{-webkit-padding-end:10px;padding-inline-end:10px;-webkit-padding-start:10px;padding-inline-start:10px}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div{line-height:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2){border:1px solid #a4afb7;border-top:0;border-bottom:0}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{color:#556068;font-size:14px;line-height:1}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-weight:700}@media (max-width:1025px){.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value{font-size:10px}}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove{margin-right:auto;color:#556068;opacity:.6;cursor:pointer;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i{color:#6d7882}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover{opacity:1}.post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer{color:#c2cbd2;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;border-top:1px solid #eceeef;font-size:11px;font-weight:500;line-height:1;text-align:left;padding-top:10px;padding-bottom:10px;-webkit-padding-end:35px;padding-inline-end:35px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));grid-gap:20px;padding:15px 35px 0;overflow-y:auto;max-height:575px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li{position:relative;height:0;padding-bottom:100%;background-color:#fff;-webkit-box-shadow:0 1px 12px rgba(0,0,0,.05);box-shadow:0 1px 12px rgba(0,0,0,.05);border-radius:3px;overflow:hidden}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:1px}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{color:#c2cbd2;font-size:11px;padding:18px 20px 0;white-space:nowrap;max-width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}@media (max-width:479px){.post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name{display:none}}.post-type-elementor_icons div#elementor-custom-icons-metabox ul li i{font-size:32px}.post-type-elementor_icons #minor-publishing-actions,.post-type-elementor_icons #misc-publishing-actions,.post-type-elementor_icons #tagsdiv-elementor_icon_type{display:none}.column-icons_prefix{width:65%}PK!w�wϺ�%assets/css/widget-pricing-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-left:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-left:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:right;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-left:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-left:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-left:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}PK!����'assets/css/widget-global-widget.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}PK!mb�=�=assets/css/editor-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
#elementor-panel-get-pro-elements{display:none}.elementor-panel .elementor-control .e-control-error{color:#b01b1b}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row;flex-flow:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-title{width:45%}.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-raw-html{width:55%}#elementor-widget-template-empty-templates{margin-top:15px;text-align:center}.elementor-widget-template-empty-templates-title{padding:25px 0 30px}.elementor-widget-template-empty-templates-icon{font-size:96px;color:#d5dadf}.elementor-widget-template-empty-templates-footer{color:#a4afb7;font-size:13px;font-style:italic;margin-bottom:15px}.elementor-widget-template-empty-templates-footer a{color:#a4afb7}#elementor-panel-global-widget{height:100%}#elementor-panel-global-widget>*{background-color:#fff}#elementor-global-widget-locked-header{-webkit-box-shadow:0 0 8px rgba(0,0,0,.1);box-shadow:0 0 8px rgba(0,0,0,.1)}#elementor-global-widget-locked-header.elementor-nerd-box{padding:40px 25px}#elementor-global-widget-locked-header.elementor-nerd-box .elementor-nerd-box-icon{margin-top:20px}#elementor-global-widget-locked-tools{margin-top:15px;padding:0 20px}.elementor-global-widget-locked-tool{display:-webkit-box;display:-ms-flexbox;display:flex;padding:20px 0;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-global-widget-locked-tool .elementor-button{text-transform:uppercase;color:#fff;padding:8px 0;width:70px;font-weight:600}.elementor-global-widget-locked-tool-description{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}#elementor-global-widget-locked-unlink{border-top:1px solid #e6e9ec}#elementor-global-templates .elementor-element{position:relative}#elementor-global-templates .elementor-element:before{position:absolute;font-family:eicons;content:"\e91f";top:5px;left:5px;color:#fcb92c;font-size:10px}#elementor-global-widget-loading{position:absolute;top:0;left:0;height:100%;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}#elementor-global-widget-loading:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-global-widget-loading i{color:#d5dadf;font-size:50px}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields{margin:10px 0}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields .elementor-control{padding:0}.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields:last-child{margin-bottom:0}.elementor-repeater-row--form-step .elementor-repeater-row-tools:hover{background-color:#c2cbd2}.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable){background-color:#f1f3f5}.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable):hover{background-color:#e6e9ec}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}#elementor-publish{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-publish__modal .dialog-message{padding:0}#elementor-publish__modal .dialog-buttons-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}#elementor-publish__modal .dialog-publish{-webkit-transition-property:opacity,-webkit-box-shadow;transition-property:opacity,-webkit-box-shadow;-o-transition-property:box-shadow,opacity;transition-property:box-shadow,opacity;transition-property:box-shadow,opacity,-webkit-box-shadow}#elementor-publish__modal .dialog-publish:not(.elementor-button-success){text-decoration:underline;color:#a4afb7;font-weight:400;width:110px;background-color:transparent}#elementor-publish__modal .dialog-publish:not(.elementor-button-success):hover{color:#6d7882}#elementor-publish__tabs{padding-top:50px}@media (max-width:1439px){#elementor-publish__tabs{width:28%}}#elementor-publish__screen{overflow:auto;padding:50px}.elementor-publish__tab{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;height:110px;padding:20px 15px;cursor:pointer}.elementor-publish__tab.elementor-active{background-color:#fff;-webkit-box-shadow:0 6px 20px rgba(0,0,0,.07);box-shadow:0 6px 20px rgba(0,0,0,.07)}.elementor-publish__tab.elementor-active:after{content:"";position:absolute;top:0;right:0;height:100%;width:5px;background-color:#71d7f7}.elementor-publish__tab__image{width:50px;-ms-flex-negative:0;flex-shrink:0}.elementor-publish__tab__image img{width:100%}.elementor-publish__tab__content{text-align:right;padding-right:15px}.elementor-publish__tab__title{font-size:18px;color:#556068;font-weight:700}#elementor-theme-builder-conditions{margin:40px 0 60px}#elementor-theme-builder-conditions-view{overflow:hidden}#elementor-theme-builder-conditions .elementor-control{background-color:transparent;padding:0}#elementor-theme-builder-conditions .elementor-control:before{content:none}#elementor-theme-builder-conditions .elementor-control select{border-width:0;height:40px;padding:0 14px}#elementor-theme-builder-conditions .elementor-control-type-query{width:100px}#elementor-theme-builder-conditions .elementor-control-type-select .elementor-control-input-wrapper:after{left:10px;color:#495157}#elementor-theme-builder-conditions .elementor-control-type{width:120px}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include]{background-color:#a4afb7}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include] .elementor-control-input-wrapper:before{content:"\e8cc"}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude]{background-color:#c2cbd2}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude] .elementor-control-input-wrapper:before{content:"\e8cd"}#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=exclude] select,#elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type=include] select{color:#fff;text-transform:uppercase;padding-right:33px}#elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:13px;font-size:15px;color:#fff}#elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:after{color:#fff}#elementor-theme-builder-conditions .elementor-control-type-select{background-color:#fff}#elementor-theme-builder-conditions .elementor-control-type option{color:#495157}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;width:70%;-webkit-box-shadow:0 2px 12px rgba(0,0,0,.08);box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden;border-radius:3px}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child){-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-right:1px}#elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) select{border-radius:0}#elementor-theme-builder-conditions .elementor-repeater-fields-wrapper{max-width:700px;width:100%;margin:auto}#elementor-theme-builder-conditions .elementor-repeater-fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-top:10px}#elementor-theme-builder-conditions .elementor-control-field{display:block}#elementor-theme-builder-conditions .elementor-control-spinner,#elementor-theme-builder-conditions .elementor-control-title{display:none}#elementor-theme-builder-conditions .elementor-control-input-wrapper{width:100%;max-width:none}#elementor-theme-builder-conditions .select2-selection{height:40px;border:none;border-radius:0}#elementor-theme-builder-conditions .select2-selection__rendered{line-height:40px;padding-right:15px;text-align:right}#elementor-theme-builder-conditions .select2-selection__arrow{height:30px}#elementor-theme-builder-conditions .select2-selection__arrow b{border-top-color:#495157;border-width:4px 4px 0;margin-top:2px;margin-right:-7px}#elementor-theme-builder-conditions .elementor-repeater-tool-remove{font-size:18px;cursor:pointer;color:#a4afb7}#elementor-theme-builder-conditions .elementor-button-wrapper{margin-top:50px}#elementor-theme-builder-conditions .elementor-repeater-add{font-size:14px;padding:12px 26px}.elementor-error .elementor-theme-builder-conditions-repeater-row-controls{border:1px solid rgba(176,27,27,.5)}.elementor-conditions-conflict-message{margin-top:10px;font-size:11px;color:#b01b1b;text-align:right;padding-right:90px}.elementor-conditions-conflict-message a{color:#b01b1b}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item{display:inline-block}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item i{margin-left:5px}.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item>*{display:inline-block;line-height:40px}.elementor-conditions-select2-dropdown{border:none;border-radius:0}.elementor-conditions-select2-dropdown .select2-results__message{display:none}.elementor-conditions-select2-dropdown .select2-search--dropdown .select2-search__field{border-width:0 0 1px;border-radius:0}#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-message{text-align:center}#elementor-toast.e-theme-builder-save-toaster .dialog-button{border-radius:3px;text-align:center;font-size:12px;color:#fff;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:27px;background-color:#6d7882;margin:0}#elementor-toast.e-theme-builder-save-toaster .dialog-button:hover{background-color:#39b54a}#elementor-toast.e-theme-builder-save-toaster .dialog-button i{margin-left:5px}#elementor-toast.e-theme-builder-save-toaster .dialog-open_site_editor{margin-bottom:10px}.elementor-control.elementor-control-sitemap_items.elementor-control-type-repeater .elementor-repeater-row-tools .elementor-repeater-row-item-title span{text-transform:capitalize}.elementor-editor-popup .elementor-tab-control-settings a:before{content:"\e922"}#elementor-publish .elementor-popup__display-settings .elementor-control-type-slider .elementor-control-input-wrapper{width:150px}#elementor-publish .elementor-popup__display-settings .elementor-control-input-wrapper{width:80px;max-width:100%}.elementor-popup__display-settings{text-align:right}.elementor-popup__display-settings_controls_group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:60px;background-color:#fff;margin-bottom:10px;padding-left:20px;-webkit-box-shadow:0 6px 20px rgba(0,0,0,.07);box-shadow:0 6px 20px rgba(0,0,0,.07);border-radius:3px}.elementor-popup__display-settings_controls_group:not(.elementor-active) .elementor-control:nth-child(2) h3{color:#a4afb7}.elementor-popup__display-settings_controls_group__icon{width:60px;height:60px;border-left:1px solid #e6e9ec;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-popup__display-settings_controls_group__icon img{width:35px}.elementor-popup__display-settings_controls_group .elementor-control{padding:0;margin:0}.elementor-popup__display-settings_controls_group .elementor-control:nth-child(2){width:230px}.elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) h3{font-size:16px;font-weight:400}.elementor-popup__display-settings_controls_group .elementor-control:not(:nth-child(2)) .elementor-control-title:not(:empty){width:75px}.elementor-popup__display-settings_controls_group .elementor-control:not(:last-child){margin-right:25px}.elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-control-input-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-slider-input{width:45%}.elementor-popup__display-settings_controls_group .elementor-control-type-switcher .elementor-control-field{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-popup__display-settings .elementor-control-type-section{display:none}.elementor-popup__display-settings__group-toggle{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}#elementor-popup-timing__controls .select2-selection{min-height:27px}#elementor-popup-timing__controls .select2-selection__rendered{line-height:1}#elementor-popup-timing__controls .select2-selection__choice{font-size:10px}#elementor-popup__timing-controls-group--url .elementor-control-url_url .elementor-control-input-wrapper{width:200px}#elementor-popup__timing-controls-group--sources .elementor-control-sources_sources .elementor-control-input-wrapper{width:300px}#elementor-popup__timing-controls-group--devices .elementor-control-devices_devices .elementor-control-input-wrapper{width:200px}#elementor-popup__timing-controls-group--logged_in .elementor-control-logged_in_roles .elementor-control-input-wrapper{width:195px}#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers .elementor-control-input-wrapper{width:100px}#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers_options .elementor-control-input-wrapper{width:200px}#elementor-popup-settings-introduction{position:absolute;z-index:1;background-color:#fff;color:#556068;-webkit-box-shadow:-4px -3px 20px 1px rgba(0,0,0,.07);box-shadow:-4px -3px 20px 1px rgba(0,0,0,.07);height:110px;width:260px;padding:20px 30px;border-radius:3px}#elementor-popup-settings-introduction:before{content:"";position:absolute;border:solid transparent;border-left:solid #fff;border-width:5px 7px;right:-14px;top:83%}#elementor-popup-settings-introduction .dialog-close-button{top:10px;left:10px;font-size:13px}#elementor-popup-settings-introduction .dialog-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;font-weight:500}#elementor-popup-settings-introduction .dialog-header i{color:#39b54a;font-size:23px;margin-left:10px}#elementor-popup-settings-introduction .dialog-message{margin-top:10px}PK!��"2�U�Uassets/css/admin-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.wrap.elementor-admin-page-license form.elementor-license-box {
  max-width: 600px;
  background: white;
  margin: 20px 0;
  padding: 20px 20px; }
  .wrap.elementor-admin-page-license form.elementor-license-box h3 {
    border-bottom: 1px solid #eee;
    padding: 20px;
    margin: -20px -20px 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 span {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      padding-right: 5px; }
    .wrap.elementor-admin-page-license form.elementor-license-box h3 small {
      float: left;
      font-size: 13px;
      font-weight: normal; }
  .wrap.elementor-admin-page-license form.elementor-license-box label {
    display: block;
    font-size: 1.3em;
    font-weight: 600;
    margin: 1em 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .button {
    height: 30px;
    margin-right: 15px;
    margin-bottom: 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box p.description {
    margin: 10px 0; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-stretch {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .wrap.elementor-admin-page-license form.elementor-license-box .e-row-divider-bottom {
    padding-bottom: 15px;
    border-bottom: 1px solid #eeeeee; }

.wrap.elementor-admin-page-license .elementor-box-action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  margin-top: 30px; }
  .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link {
    color: #72777c;
    margin-left: 15px; }
    .wrap.elementor-admin-page-license .elementor-box-action .elementor-manually-link:hover {
      color: inherit; }

.fixed .column-elementor_library_type,
.fixed .column-instances {
  width: 10%; }

.fixed .elementor-shortcode-input {
  min-width: 235px; }

@media (min-width: 768px) and (max-width: 1440px) {
  .fixed .column-shortcode {
    width: 25%; }
  .fixed .elementor-shortcode-input {
    min-width: 100%; } }

#available-widgets [class*="elementor-template"] .widget-title:before {
  content: "\e801";
  font-family: eicon;
  font-size: 17px; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

.elementor-button-spinner.error:before {
  content: "\f335";
  color: #ff0000; }

span.font-variations-count {
  display: inline-block;
  vertical-align: top;
  margin: 1px 0 0 5px;
  padding: 0 5px;
  min-width: 7px;
  height: 17px;
  border-radius: 11px;
  background-color: #d4dffb;
  color: #4278b2;
  font-size: 9px;
  line-height: 17px;
  text-align: center;
  z-index: 26; }

.post-type-elementor_font div#elementor-font-custommetabox {
  background: none;
  border: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox button.handlediv {
    display: none; }
  .post-type-elementor_font div#elementor-font-custommetabox #poststuff .inside {
    margin: 0;
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox h2.hndle {
    padding: 0; }
  .post-type-elementor_font div#elementor-font-custommetabox .handle-actions {
    display: none; }

.post-type-elementor_font #tagsdiv-elementor_font_type,
.post-type-elementor_font #minor-publishing-actions,
.post-type-elementor_font #misc-publishing-actions {
  display: none; }

.elementor-metabox-content .repeater-block {
  background: #ffffff;
  color: #6d7882;
  padding: 20px;
  margin-bottom: 2px; }
  .elementor-metabox-content .repeater-block span.elementor-repeater-tool-btn.close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block.block-visible {
    padding-bottom: 0;
    margin-bottom: 0; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.toggle-repeater-row {
      display: none; }
    .elementor-metabox-content .repeater-block.block-visible span.elementor-repeater-tool-btn.close-repeater-row {
      display: inline-block; }
  .elementor-metabox-content .repeater-block:not(.block-visible) .close-repeater-row {
    display: none; }
  .elementor-metabox-content .repeater-block .repeater-title {
    cursor: pointer; }

.elementor-metabox-content .row-font-label {
  padding: 0;
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-transform: capitalize; }
  .elementor-metabox-content .row-font-label li {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    width: 100%;
    margin: 0; }
    .elementor-metabox-content .row-font-label li span.label {
      font-weight: 500;
      padding-left: 10px; }
    .elementor-metabox-content .row-font-label li.row-font-weight, .elementor-metabox-content .row-font-label li.row-font-style {
      max-width: 180px; }
    .elementor-metabox-content .row-font-label li.row-font-actions {
      max-width: 200px;
      text-align: left; }

.elementor-metabox-content .repeater-content {
  margin: 0; }
  .elementor-metabox-content .repeater-content .repeater-content-top {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 20px;
    line-height: 28px; }
    .elementor-metabox-content .repeater-content .repeater-content-top > div {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .elementor-metabox-content .repeater-content .repeater-content-top p {
      margin: 0;
      display: inline-block; }
      .elementor-metabox-content .repeater-content .repeater-content-top p label {
        font-weight: 500;
        padding-left: 10px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-select {
      max-width: 180px; }
    .elementor-metabox-content .repeater-content .repeater-content-top .elementor-field-toolbar {
      max-width: 200px;
      text-align: left; }
  .elementor-metabox-content .repeater-content .repeater-content-bottom {
    background-color: #f7f7f7;
    padding: 20px 40px;
    margin: 0 -20px; }
    .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background-color: #ffffff;
      padding: 10px 20px;
      margin-bottom: 10px;
      -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05);
              box-shadow: 0 3px 5px rgba(0, 0, 0, 0.05); }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field:last-child {
        margin-bottom: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field input {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        width: 100%;
        margin: 0; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field p.elementor-field-label {
        font-weight: 500;
        max-width: 120px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input {
        padding: 5px 8px;
        margin: 0 15px;
        border-radius: 3px;
        font-size: 12px;
        width: 100%;
        background: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        color: #495157;
        border: 1px solid;
        outline: none; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:not(:focus) {
          border-color: #d5dadf; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-field-input:focus {
          border-color: #a4afb7; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-btn,
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        max-width: 100px;
        font-size: 11px; }
      .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn {
        background-color: #eceeef;
        color: #a4afb7; }
        .elementor-metabox-content .repeater-content .repeater-content-bottom .elementor-field .elementor-upload-clear-btn:hover {
          background-color: #b01b1b;
          color: white; }

.elementor-metabox-content .elementor-button {
  background-color: #a4afb7;
  color: #fff;
  line-height: 1;
  text-transform: uppercase;
  height: auto;
  padding: 10px 20px;
  outline: none;
  border: none;
  -webkit-transition-property: background, color, opacity, -webkit-box-shadow;
  transition-property: background, color, opacity, -webkit-box-shadow;
  -o-transition-property: background, color, box-shadow, opacity;
  transition-property: background, color, box-shadow, opacity;
  transition-property: background, color, box-shadow, opacity, -webkit-box-shadow;
  -webkit-transition-duration: .3s;
       -o-transition-duration: .3s;
          transition-duration: .3s; }
  .elementor-metabox-content .elementor-button:hover, .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    color: #fff; }
  .elementor-metabox-content .elementor-button:focus, .elementor-metabox-content .elementor-button:visited {
    background-color: #a4afb7; }
  .elementor-metabox-content .elementor-button:hover {
    background-color: #6d7882;
    -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
            box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
    border: none; }
  .elementor-metabox-content .elementor-button:active {
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1); }
  .elementor-metabox-content .elementor-button:not([disabled]) {
    cursor: pointer; }
  .elementor-metabox-content .elementor-button.elementor-size-xs {
    font-size: 11px;
    padding: 10px 20px;
    border-radius: 2px; }
  .elementor-metabox-content .elementor-button.elementor-size-sm {
    font-size: 13px;
    padding: 12px 24px;
    border-radius: 3px; }
  .elementor-metabox-content .elementor-button.elementor-size-md {
    font-size: 14px;
    padding: 15px 30px;
    border-radius: 4px; }
  .elementor-metabox-content .elementor-button.elementor-size-lg {
    font-size: 15px;
    padding: 20px 40px;
    border-radius: 5px; }
  .elementor-metabox-content .elementor-button.elementor-size-xl {
    font-size: 18px;
    padding: 25px 50px;
    border-radius: 6px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-right {
    float: right;
    margin-left: 5px; }
  .elementor-metabox-content .elementor-button .elementor-align-icon-left {
    float: left;
    margin-right: 5px; }

.elementor-metabox-content input.button.add-repeater-row {
  margin-top: 18px;
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none; }

.elementor-metabox-content .elementor-repeater-tool-btn {
  color: #a4afb7;
  cursor: pointer;
  padding: 0 20px;
  font-size: 12px;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s; }
  .elementor-metabox-content .elementor-repeater-tool-btn i {
    padding-left: 5px; }
  .elementor-metabox-content .elementor-repeater-tool-btn:hover {
    color: #6d7882; }
  .elementor-metabox-content .elementor-repeater-tool-btn.remove-repeater-row:hover {
    color: #b01b1b; }

.elementor-metabox-content .row-font-preview,
.elementor-metabox-content .inline-preview {
  font-size: 16px;
  text-transform: capitalize; }

.column-font_preview {
  width: 65%; }

.widefat td.column-font_preview {
  font-size: 16px; }

.post-type-elementor_icons .elementor-metabox-content .elementor-button:not([disabled]) {
  margin-top: 10px; }

.post-type-elementor_icons div#postbox-container-1 {
  display: none; }

.post-type-elementor_icons div#elementor-custom-icons-metabox {
  display: none;
  border: 1px solid #eceeef;
  border-radius: 1px;
  background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .inside {
    margin-top: 10px;
    margin-bottom: 20px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-metabox-content {
    background-color: #fff; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
    padding: 4px 10px 10px 10px; }
    @media (max-width: 1025px) {
      .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-custom-icons-metabox {
        padding: 0; } }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h4 {
    color: #556068;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: 0.7px;
    line-height: 28px;
    margin: 0 0 4px 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox h5 {
    color: #a4afb7;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.5px;
    line-height: 21px;
    margin: 0; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor--dropzone--upload__icon i {
    font-size: 64px;
    color: #39b54a; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__uploading,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__success,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__error,
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__file {
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .is-dragover {
    background-color: grey; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .box__input {
    padding: 180px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox .elementor-field-dropzone {
    outline: 2px dashed #d5dadf;
    outline-offset: -3px;
    background-color: #fff;
    display: none; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons {
    background-color: #f7f7f7;
    border: 1px solid #eceeef;
    border-radius: 1px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content {
      background-color: #f7f7f7; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-metabox-content .elementor-custom-icons-metabox {
        padding: 4px 10px 0 10px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
      height: 50px;
      color: #6d7882;
      background-color: #fff;
      -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
              box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.06);
      padding: 0 35px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
      @media (max-width: 1025px) {
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header {
          padding: 0 6px; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
        -webkit-padding-end: 10px;
                padding-inline-end: 10px;
        -webkit-padding-start: 10px;
                padding-inline-start: 10px; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div {
            line-height: 1; }
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div.remove {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header div:nth-of-type(2) {
          border: 1px solid #a4afb7;
          border-top: 0;
          border-bottom: 0; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
        color: #556068;
        font-size: 14px;
        line-height: 1; }
        @media (max-width: 1025px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta {
            font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
          font-weight: bold; }
          @media (max-width: 1025px) {
            .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-value {
              font-size: 10px; } }
        .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove {
          margin-right: auto;
          color: #556068;
          opacity: .6;
          cursor: pointer;
          -webkit-transition: all 0.3s;
          -o-transition: all 0.3s;
          transition: all 0.3s; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove i {
            color: #6d7882; }
          .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-header-meta-remove:hover {
            opacity: 1; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox.elementor--has-icons .elementor-icon-set-footer {
      color: #c2cbd2;
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      border-top: 1px solid #eceeef;
      font-size: 11px;
      font-weight: 500;
      line-height: 1;
      text-align: left;
      padding-top: 10px;
      padding-bottom: 10px;
      -webkit-padding-end: 35px;
              padding-inline-end: 35px; }
  .post-type-elementor_icons div#elementor-custom-icons-metabox ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(105px, 1fr));
    grid-gap: 20px;
    padding: 15px 35px 0 35px;
    overflow-y: auto;
    max-height: 575px; }
    .post-type-elementor_icons div#elementor-custom-icons-metabox ul li {
      position: relative;
      height: 0;
      padding-bottom: 100%;
      background-color: #fff;
      -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
              box-shadow: 0 1px 12px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      overflow: hidden; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        padding: 1px; }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
        color: #c2cbd2;
        font-size: 11px;
        padding: 18px 20px 0;
        white-space: nowrap;
        max-width: 100%;
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis; }
        @media (max-width: 479px) {
          .post-type-elementor_icons div#elementor-custom-icons-metabox ul li div.icon-name {
            display: none; } }
      .post-type-elementor_icons div#elementor-custom-icons-metabox ul li i {
        font-size: 32px; }

.post-type-elementor_icons #tagsdiv-elementor_icon_type,
.post-type-elementor_icons #minor-publishing-actions,
.post-type-elementor_icons #misc-publishing-actions {
  display: none; }

.column-icons_prefix {
  width: 65%; }
/*# sourceMappingURL=admin-rtl.css.map */PK!�,�'''+assets/css/widget-theme-builder-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}PK!I]18RKRK+assets/css/widget-animated-headline.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:left}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;left:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:auto;right:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:auto;right:0;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}PK!���QQ&assets/css/widget-payments-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-payment-button{border:none}PK!����Y�Y&assets/css/widget-carousel-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-right:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-left:20px;margin-right:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-left:0;margin-right:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:right}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-right:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-right:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-right:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}PK!d�7'c.c.assets/css/app.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
:root {
  --color-box-shadow-color: rgba(0, 0, 0, 0.05); }

.eps-theme-dark {
  --color-box-shadow-color: rgba(0, 0, 0, 0.1); }

:root {
  --eps-meta-icon-color: #c2cbd2; }

.eps-theme-dark {
  --eps-meta-icon-color: #b4b5b7; }

.e-site-template__meta-data {
  -webkit-margin-start: 0.625rem;
          margin-inline-start: 0.625rem;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.6875rem; }
  .e-site-template__meta-data:last-of-type {
    -webkit-margin-end: auto;
            margin-inline-end: auto; }
  .e-site-template__meta-data:first-of-type {
    -webkit-margin-start: 1rem;
            margin-inline-start: 1rem; }
  .e-site-template__meta-data .eps-icon {
    -webkit-margin-end: 0.3125rem;
            margin-inline-end: 0.3125rem;
    color: var(--eps-meta-icon-color);
    font-size: 0.8125rem; }

.e-site-template__placeholder .eps-card__image {
  -webkit-filter: var(--placeholder-filter, none);
          filter: var(--placeholder-filter, none); }

.e-site-template__overlay-preview {
  padding-top: calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem);
  position: relative; }
  .e-site-template__overlay-preview-button {
    font-weight: bold;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    height: 1.875rem;
    width: 100%;
    background-color: var(--card-background-color-hover);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 0.625rem;
    line-height: 1.25rem;
    --button-background-color: var(--card-headline-color); }
    .e-site-template__overlay-preview-button::before {
      content: '';
      position: absolute;
      display: block;
      width: 100%;
      top: 0;
      left: 0;
      padding-top: calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem); }
    .e-site-template__overlay-preview-button > :not(:first-child) {
      -webkit-margin-start: 0.3125rem;
              margin-inline-start: 0.3125rem; }

.e-site-template__edit-btn {
  -webkit-margin-end: 1.25rem;
          margin-inline-end: 1.25rem; }
  .e-site-template__edit-btn .eps-icon {
    -webkit-margin-end: 0.3125rem;
            margin-inline-end: 0.3125rem; }

.e-site-template__instances .eps-icon {
  -webkit-margin-end: 0.3125rem;
          margin-inline-end: 0.3125rem;
  color: var(--eps-meta-icon-color);
  font-size: 0.8125rem; }

.e-site-template__instances-list {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap; }

.e-site-template__edit-conditions {
  -webkit-margin-start: 1rem;
          margin-inline-start: 1rem;
  color: #58d0f5;
  text-decoration: underline;
  font-style: italic; }

.e-site-template--extended .eps-card__figure {
  overflow: auto; }

.e-site-template--extended .eps-card__headline {
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0; }

.e-site-template--wide {
  --card-image-aspect-ratio: calc(100% * 0.1235); }

.eps-add-new__overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  opacity: 1;
  --card-image-overlay-background-color: transparent; }

.e-site-editor__templates .page-header {
  margin-bottom: 0.625rem; }

.e-site-editor__templates .eps-separator {
  margin-bottom: 2.75rem; }

:root {
  --e-site-editor-conditions-row-controls-background: #fff;
  --e-site-editor-input-wrapper-border-color: #f1f3f5;
  --e-site-editor-input-wrapper-select-color: #556068;
  --e-site-editor-add-button-background-color: #a4afb7;
  --e-site-editor-add-button-color-hover-background-color: #6d7882;
  --e-site-editor-input-wrapper-condition-include-background-color:
	#a4afb7;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
	#c2cbd2;
  --e-site-editor-input-select2-search-field-color: #495157
; }

.eps-theme-dark {
  --select2-selection-background-color: tints(600);
  --e-site-editor-conditions-row-controls-background: #404349;
  --e-site-editor-input-wrapper-border-color: #404349;
  --e-site-editor-input-wrapper-select-color: #b4b5b7;
  --e-site-editor-add-button-background-color: #4c4f56;
  --e-site-editor-add-button-color-hover-background-color: #404349;
  --e-site-editor-input-wrapper-condition-include-background-color:
			#404349;
  --e-site-editor-input-wrapper-condition-exclude-background-color:
			#404349;
  --e-site-editor-input-select2-search-field-color: #fff

; }

.e-site-editor-conditions__header {
  text-align: center; }

.e-site-editor-conditions__header-image {
  display: block;
  margin: 0 auto 2.75rem;
  width: 4.375rem; }

.e-site-editor-conditions__rows {
  margin: 2.75rem auto;
  max-width: 43.75rem; }

.e-site-editor-conditions__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-top: 0.75rem; }

.e-site-editor-conditions__remove-condition {
  color: #c2cbd2;
  font-size: 1.125rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.e-site-editor-conditions__row-controls {
  overflow: hidden;
  margin-right: 0.625rem;
  background-color: var(--e-site-editor-conditions-row-controls-background);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  -webkit-box-shadow: 0 3px 6px var(--color-box-shadow-color);
          box-shadow: 0 3px 6px var(--color-box-shadow-color);
  border-radius: 0.1875rem; }
  .e-site-editor-conditions__row-controls--error {
    border: 1px solid #b01b1b; }

.e-site-editor-conditions__conflict {
  text-align: center;
  margin-top: 0.3125rem;
  color: #b01b1b; }

.e-site-editor-conditions__row-controls-inner {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .e-site-editor-conditions__row-controls-inner div {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }

.e-site-editor-conditions__add-button-container {
  text-align: center; }

.e-site-editor-conditions__add-button {
  margin-top: 2.75rem;
  background-color: var(--e-site-editor-add-button-background-color);
  color: #fff;
  text-transform: uppercase; }
  .e-site-editor-conditions__add-button:hover {
    background-color: var(--e-site-editor-add-button-color-hover-background-color);
    color: #fff; }

.e-site-editor-conditions__footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  padding: 0.5rem;
  border-top: 1px solid var(--hr-color); }

.e-site-editor-conditions__input-wrapper {
  position: relative;
  border-left: 1px solid;
  border-color: var(--e-site-editor-input-wrapper-border-color); }
  .e-site-editor-conditions__input-wrapper:first-child {
    border: none; }
  .e-site-editor-conditions__input-wrapper select {
    -moz-appearance: none;
         appearance: none;
    -webkit-appearance: none;
    font-size: 0.75rem;
    height: 2.5rem;
    border-width: 0;
    padding: 0 0.625rem;
    width: 100%;
    position: relative;
    color: var(--e-site-editor-input-wrapper-select-color);
    outline: none;
    background: transparent; }
  .e-site-editor-conditions__input-wrapper:after {
    font-family: eicons;
    content: '\e8ad';
    font-size: 0.75rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 0.625rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single {
    border: none;
    line-height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 2.5rem;
    font-size: 0.75rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection {
    outline: none;
    background: transparent;
    height: 2.5rem; }
  .e-site-editor-conditions__input-wrapper .select2-selection__arrow {
    display: none; }

.e-site-editor-conditions__input-wrapper--condition-type {
  position: relative; }
  .e-site-editor-conditions__input-wrapper--condition-type:before {
    font-family: eicons;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    left: 0.75rem;
    font-size: 0.9375rem;
    color: #fff;
    pointer-events: none;
    z-index: 1000; }
  .e-site-editor-conditions__input-wrapper--condition-type:after {
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type select {
    text-transform: uppercase;
    padding-left: 2.125rem;
    width: 7.5rem;
    font-size: 0.75rem;
    color: #fff; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"]:before {
    content: '\e8cc'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="include"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-include-background-color); }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"]:before {
    content: '\e8cd'; }
  .e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type="exclude"] select {
    background-color: var(--e-site-editor-input-wrapper-condition-exclude-background-color); }

.select2-search__field {
  background-color: transparent;
  color: var(--e-site-editor-input-select2-search-field-color); }

.eps-back-button {
  font-size: 14px;
  margin-bottom: 1.5rem; }
  .eps-back-button .eps-icon {
    -webkit-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
            transform: rotate(0deg); }

:root {
  --indicator-bullet-border-color: #fff; }

.eps-theme-dark {
  --indicator-bullet-border-color: #4c4f56; }

.eps-indicator-bullet {
  display: block;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 0.75rem;
  height: 0.75rem;
  -webkit-box-shadow: 0 2px 3px 1px var(--color-box-shadow-color);
          box-shadow: 0 2px 3px 1px var(--color-box-shadow-color);
  background-color: #d5dadf;
  border: 2px solid var(--indicator-bullet-border-color);
  border-radius: 100%;
  -webkit-margin-end: 0.625rem;
          margin-inline-end: 0.625rem; }
  .eps-indicator-bullet--active {
    background-color: #39b54a; }

.site-editor__preview-iframe {
  height: 50vh;
  position: relative; }
  .site-editor__preview-iframe__iframe {
    top: 0;
    left: 0;
    position: absolute;
    border: none;
    -webkit-transform-origin: 0 0;
        -ms-transform-origin: 0 0;
            transform-origin: 0 0;
    height: 100%; }
  .site-editor__preview-iframe--header, .site-editor__preview-iframe--footer {
    height: 15vh; }

.e-site-editor__content_container {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100%;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.e-site-editor__content_container_main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }

.e-site-editor__content_container_secondary {
  margin: 0 auto;
  padding-top: 2.75rem; }
/*# sourceMappingURL=app.css.map */PK!m�
g		assets/css/preview.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-document-handle {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  z-index: 100;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  background-color: #fcb92c;
  padding: 5px 10px;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 11px;
  color: #fff;
  border-radius: 0 0 3px 3px;
  cursor: pointer; }
  .elementor-document-handle:before, .elementor-document-handle:after {
    content: '';
    position: absolute;
    border: solid transparent; }
  .elementor-document-handle:before {
    right: calc(100% - 1px);
    border-right-color: #fcb92c;
    border-width: 0 14px 23px 0; }
  .elementor-document-handle:after {
    left: calc(100% - 1px);
    border-left-color: #fcb92c;
    border-width: 0 0 23px 14px; }
  .elementor-document-handle .eicon-edit {
    margin-right: 5px; }

.elementor-editor-active .elementor {
  position: relative; }
  .elementor-editor-active .elementor:not(.elementor-edit-mode):hover {
    -webkit-box-shadow: 0 0 0 1px #fcb92c;
            box-shadow: 0 0 0 1px #fcb92c; }
    .elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      line-height: initial; }
  .elementor-editor-active .elementor.loading {
    opacity: 0.5; }
  .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle {
    -webkit-transform: translateX(-50%) translateY(-100%);
        -ms-transform: translateX(-50%) translateY(-100%);
            transform: translateX(-50%) translateY(-100%);
    border-radius: 3px 3px 0 0; }
    .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:before {
      border-width: 23px 14px 0 0; }
    .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:after {
      border-width: 23px 0 0 14px; }

.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }
/*# sourceMappingURL=preview.css.map */PK!���z�2�2(assets/css/widget-video-playlist.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.e-tabs-inner-tabs{text-align:left;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:767px){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:767px){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:767px){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}PK!��mTKTK/assets/css/widget-animated-headline-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:right}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;right:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:0;right:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:0;right:auto;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}PK!q�Rl		assets/css/preview-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-document-handle {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  z-index: 100;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  background-color: #fcb92c;
  padding: 5px 10px;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 11px;
  color: #fff;
  border-radius: 0 0 3px 3px;
  cursor: pointer; }
  .elementor-document-handle:before, .elementor-document-handle:after {
    content: '';
    position: absolute;
    border: solid transparent; }
  .elementor-document-handle:before {
    right: calc(100% - 1px);
    border-right-color: #fcb92c;
    border-width: 0 14px 23px 0; }
  .elementor-document-handle:after {
    left: calc(100% - 1px);
    border-left-color: #fcb92c;
    border-width: 0 0 23px 14px; }
  .elementor-document-handle .eicon-edit {
    margin-left: 5px; }

.elementor-editor-active .elementor {
  position: relative; }
  .elementor-editor-active .elementor:not(.elementor-edit-mode):hover {
    -webkit-box-shadow: 0 0 0 1px #fcb92c;
            box-shadow: 0 0 0 1px #fcb92c; }
    .elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      line-height: initial; }
  .elementor-editor-active .elementor.loading {
    opacity: 0.5; }
  .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle {
    -webkit-transform: translateX(-50%) translateY(-100%);
        -ms-transform: translateX(-50%) translateY(-100%);
            transform: translateX(-50%) translateY(-100%);
    border-radius: 3px 3px 0 0; }
    .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:before {
      border-width: 23px 14px 0 0; }
    .elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:after {
      border-width: 23px 0 0 14px; }

.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }
/*# sourceMappingURL=preview-rtl.css.map */PK!XDv22 assets/css/frontend-msie.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";.elementor-bg-transform .elementor-bg{will-change:transform}.elementor-bg-transform-zoom-in:hover .elementor-bg,.elementor-bg-transform-zoom-out .elementor-bg{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.elementor-bg-transform-zoom-out:hover .elementor-bg{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-bg-transform-move-left .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-left:hover .elementor-bg,.elementor-bg-transform-move-right .elementor-bg{-webkit-transform:scale(1.2) translateX(-8%);-ms-transform:scale(1.2) translateX(-8%);transform:scale(1.2) translateX(-8%)}.elementor-bg-transform-move-right:hover .elementor-bg{-webkit-transform:scale(1.2) translateX(8%);-ms-transform:scale(1.2) translateX(8%);transform:scale(1.2) translateX(8%)}.elementor-bg-transform-move-up .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-bg-transform-move-down .elementor-bg,.elementor-bg-transform-move-up:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(-8%);-ms-transform:scale(1.2) translateY(-8%);transform:scale(1.2) translateY(-8%)}.elementor-bg-transform-move-down:hover .elementor-bg{-webkit-transform:scale(1.2) translateY(8%);-ms-transform:scale(1.2) translateY(8%);transform:scale(1.2) translateY(8%)}.elementor-animated-content{--translate:0,0}.elementor-animated-content:hover .elementor-animated-item--grow{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}.elementor-animated-content:hover .elementor-animated-item--shrink{-webkit-transform:scale(.85);-ms-transform:scale(.85);transform:scale(.85)}.elementor-animated-content:hover .elementor-animated-item--shrink-contained{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content:hover .elementor-animated-item--enter-zoom-in,.elementor-animated-content:hover .elementor-animated-item--enter-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-in{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in,.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out,.elementor-animated-content:hover .elementor-animated-item--fade-out{opacity:0}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-out{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content:hover .elementor-animated-item--exit-zoom-in{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content:hover .elementor-animated-item--enter-from-bottom,.elementor-animated-content:hover .elementor-animated-item--enter-from-left,.elementor-animated-content:hover .elementor-animated-item--enter-from-right,.elementor-animated-content:hover .elementor-animated-item--enter-from-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content:hover .elementor-animated-item--exit-to-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom{-webkit-transform:translateY(600px);-ms-transform:translateY(600px);transform:translateY(600px)}.elementor-animated-content:hover .elementor-animated-item--exit-to-bottom,.elementor-animated-content:hover .elementor-animated-item--exit-to-left,.elementor-animated-content:hover .elementor-animated-item--exit-to-right,.elementor-animated-content:hover .elementor-animated-item--exit-to-top{opacity:0}.elementor-animated-content:hover .elementor-animated-item--move-right{-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}.elementor-animated-content:hover .elementor-animated-item--move-left{-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-up{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}.elementor-animated-content:hover .elementor-animated-item--move-down{-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}.elementor-animated-content:hover .elementor-animated-item--move-contained-right{--translate:8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-left{--translate:-8%,0}.elementor-animated-content:hover .elementor-animated-item--move-contained-top{--translate:0,-8%}.elementor-animated-content:hover .elementor-animated-item--move-contained-bottom{--translate:0,8%}.elementor-animated-content [class^=elementor-animated-item]{will-change:transform,opacity}.elementor-animated-content .elementor-animated-item--shrink-contained{-webkit-transform:scale(1.17);-ms-transform:scale(1.17);transform:scale(1.17)}.elementor-animated-content .elementor-animated-item--enter-zoom-in{-webkit-transform:scale(.2);-ms-transform:scale(.2);transform:scale(.2)}.elementor-animated-content .elementor-animated-item--enter-zoom-out{-webkit-transform:scale(2);-ms-transform:scale(2);transform:scale(2)}.elementor-animated-content .elementor-animated-item--enter-zoom-in,.elementor-animated-content .elementor-animated-item--enter-zoom-out,.elementor-animated-content .elementor-animated-item--fade-in{opacity:0}.elementor-animated-content .elementor-animated-item--exit-zoom-in,.elementor-animated-content .elementor-animated-item--exit-zoom-out,.elementor-animated-content .elementor-animated-item--fade-out{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-animated-content .elementor-animated-item--enter-from-right{-webkit-transform:translateX(1000px);-ms-transform:translateX(1000px);transform:translateX(1000px)}.elementor-animated-content .elementor-animated-item--enter-from-left{-webkit-transform:translateX(-1000px);-ms-transform:translateX(-1000px);transform:translateX(-1000px)}.elementor-animated-content .elementor-animated-item--enter-from-top{-webkit-transform:translateY(-600px);-ms-transform:translateY(-600px);transform:translateY(-600px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom{-webkit-transform:translateY(500px);-ms-transform:translateY(500px);transform:translateY(500px)}.elementor-animated-content .elementor-animated-item--enter-from-bottom,.elementor-animated-content .elementor-animated-item--enter-from-left,.elementor-animated-content .elementor-animated-item--enter-from-right,.elementor-animated-content .elementor-animated-item--enter-from-top{opacity:0}.elementor-animated-content .elementor-animated-item--exit-to-bottom,.elementor-animated-content .elementor-animated-item--exit-to-left,.elementor-animated-content .elementor-animated-item--exit-to-right,.elementor-animated-content .elementor-animated-item--exit-to-top{opacity:1;-webkit-transform:translateY(0) translateX(0);-ms-transform:translateY(0) translateX(0);transform:translateY(0) translateX(0)}.elementor-animated-content .elementor-animated-item--move-contained-bottom,.elementor-animated-content .elementor-animated-item--move-contained-left,.elementor-animated-content .elementor-animated-item--move-contained-right,.elementor-animated-content .elementor-animated-item--move-contained-top{-webkit-transform:scale(1.2) translate(var(--translate));-ms-transform:scale(1.2) translate(var(--translate));transform:scale(1.2) translate(var(--translate))}.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover{outline:1px solid #fec449}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings{background-image:-webkit-gradient(linear,left bottom,left top,from(#feb416),to(#fec449));background-image:-webkit-linear-gradient(bottom,#feb416,#fec449);background-image:-o-linear-gradient(bottom,#feb416,#fec449);background-image:linear-gradient(0deg,#feb416,#fec449)}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover{background-color:#feb416}.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save{display:none}body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-right:0}.woocommerce div.product.elementor .quantity+.button{margin-left:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-right:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;right:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-left:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,left)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-right:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;right:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:left}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,auto);right:var(--side-cart-alignment-right,0);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,left)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(100%));-ms-transform:var(--side-cart-alignment-transform,translateX(100%));transform:var(--side-cart-alignment-transform,translateX(100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-left:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;right:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-right:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;left:0;right:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:left;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,left)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-left:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-right:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,left)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-left:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:left}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,left)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:left;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:right;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-right:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-right:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-right:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:left;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-right:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-left:0;padding-right:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-left:0;padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 20px 8px 0}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-left:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:left;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:right;width:75%;padding:0;padding-left:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-left:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-left:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-left:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:left;position:absolute;margin-left:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-left:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-right:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid{color:#d4d4d4;border:1px solid;border-right:none;border-left:none;padding-top:10px;padding-bottom:10px}.elementor-post-navigation-borders-yes .elementor-post-navigation__separator{height:100%;width:1px;margin:0 auto;background-color:#d4d4d4}.elementor-post-navigation{overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-post-navigation .post-navigation__arrow-wrapper{color:#d4d4d4}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev{font-size:30px;padding-right:15px}.elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next{font-size:30px;padding-left:15px}.elementor-post-navigation .post-navigation__arrow-wrapper i{-webkit-transform:translateY(-5%);-ms-transform:translateY(-5%);transform:translateY(-5%)}.elementor-post-navigation .elementor-post-navigation__link__next,.elementor-post-navigation .elementor-post-navigation__link__prev{overflow:hidden}.elementor-post-navigation .elementor-post-navigation__link a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__prev--label{text-transform:uppercase;font-size:.8em}.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--title{font-size:.7em}.elementor-post-navigation .post-navigation__next--label,.elementor-post-navigation .post-navigation__next--title,.elementor-post-navigation .post-navigation__prev--label,.elementor-post-navigation .post-navigation__prev--title{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation span.elementor-post-navigation__link__next{text-align:right}.elementor-post-navigation span.elementor-post-navigation__link__next,.elementor-post-navigation span.elementor-post-navigation__link__prev{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-post-navigation .elementor-grid{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-post-navigation .elementor-post-navigation__link{width:calc(50% - (1px / 2));white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-post-navigation .elementor-post-navigation__separator-wrapper{text-align:center}.elementor-post-navigation .elementor-post-navigation__next{text-align:right}.elementor-post-navigation .elementor-post-navigation__next a{float:right}.elementor-search-form{display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s}.elementor-search-form .e-font-icon-svg-container{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-search-form button,.elementor-search-form input[type=search]{margin:0;border:0;padding:0;display:inline-block;vertical-align:middle;white-space:normal;background:none;line-height:1;min-width:0;font-size:15px;-webkit-appearance:none;-moz-appearance:none}.elementor-search-form button:focus,.elementor-search-form input[type=search]:focus{outline:0;color:inherit}.elementor-search-form button{background-color:#818a91;font-size:var(--e-search-form-submit-icon-size,16px);color:#fff;border-radius:0}.elementor-search-form__container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;overflow:hidden;border:0 solid transparent;min-height:50px}.elementor-search-form__container:not(.elementor-search-form--full-screen){background:#eceeef}.elementor-search-form__input{-ms-flex-preferred-size:100%;flex-basis:100%;color:#55595c;-webkit-transition:color .2s;-o-transition:color .2s;transition:color .2s}.elementor-search-form__input::-webkit-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input:-moz-placeholder,.elementor-search-form__input::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::-ms-input-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__input::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-search-form__submit{-webkit-transition:color .2s,background .2s;-o-transition:color .2s,background .2s;transition:color .2s,background .2s;font-size:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form__submit svg{fill:var(--e-search-form-submit-text-color,#fff);width:var(--e-search-form-submit-icon-size,16px);height:var(--e-search-form-submit-icon-size,16px)}.elementor-search-form .elementor-search-form__submit,.elementor-search-form .elementor-search-form__submit:hover{color:var(--e-search-form-submit-text-color,#fff);border:none;border-radius:0}.elementor-search-form--button-type-text .elementor-search-form__submit{-ms-flex-negative:0;flex-shrink:0}.elementor-search-form--skin-minimal .elementor-search-form__icon{opacity:.6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;color:#55595c;fill:#55595c;font-size:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-minimal .elementor-search-form__icon svg{width:var(--e-search-form-icon-size-minimal,15px);height:var(--e-search-form-icon-size-minimal,15px)}.elementor-search-form--skin-full_screen .elementor-search-form input[type=search].elementor-search-form__input{font-size:50px;text-align:center;border:solid #fff;border-width:0 0 1px;line-height:1.5;color:#fff}.elementor-search-form--skin-full_screen .elementor-search-form__toggle{display:inline-block;cursor:pointer;vertical-align:middle;color:var(--e-search-form-toggle-color,#494c4f);font-size:var(--e-search-form-toggle-size,33px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i{position:relative;display:block;-webkit-transition:.2s;-o-transition:.2s;transition:.2s;width:var(--e-search-form-toggle-size,33px);height:var(--e-search-form-toggle-size,33px);background-color:var(--e-search-form-toggle-background-color,rgba(0,0,0,.05));border:var(--e-search-form-toggle-border-width,0) solid var(--e-search-form-toggle-color,#494c4f);border-radius:var(--e-search-form-toggle-border-radius,3px)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before{font-size:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg,.elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg{fill:var(--e-search-form-toggle-color,#494c4f);width:var(--e-search-form-toggle-icon-size,.55em);height:var(--e-search-form-toggle-icon-size,.55em)}.elementor-search-form--skin-full_screen .elementor-search-form__container{-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:fixed;z-index:9998;top:0;left:0;right:0;bottom:0;height:100vh;padding:0 15%;background-color:rgba(0,0,0,.8)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen){overflow:hidden;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button{display:none}.elementor-author-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-author-box__avatar{-ms-flex-negative:0;flex-shrink:0;margin-right:25px}.elementor-author-box__avatar img{width:100px;border-radius:500px;-o-object-fit:cover;object-fit:cover}.elementor-author-box__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;font-size:17px}.elementor-author-box__name{font-size:24px;margin-bottom:5px}.elementor-author-box__bio,.elementor-author-box__bio p{margin-bottom:.8em}.elementor-author-box__bio p:last-of-type{margin-bottom:0}.elementor-author-box--layout-image-left .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-author-box--layout-image-left .elementor-author-box__avatar{margin-left:0;margin-right:25px}.elementor-author-box--layout-image-right .elementor-author-box{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-author-box--layout-image-right .elementor-author-box__avatar{margin-right:0;margin-left:25px}.elementor-author-box--layout-image-above .elementor-author-box{display:block}.elementor-author-box--layout-image-above .elementor-author-box__avatar{margin:0 auto 15px;display:inline-block}.elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar{margin-left:0}.elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar{margin-right:0}.elementor-author-box--align-left .elementor-author-box{text-align:left}.elementor-author-box--align-right .elementor-author-box{text-align:right}.elementor-author-box--align-center .elementor-author-box{text-align:center}.elementor-button.elementor-author-box__button{border:2px solid #55595c;font-size:15px;font-weight:100;padding:10px 18px}.elementor-button.elementor-author-box__button,.elementor-button.elementor-author-box__button:hover{background:transparent;color:#55595c}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar,.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar{-ms-flex-item-align:start;align-self:flex-start}.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar{-ms-flex-item-align:center;align-self:center}.elementor-post-info__terms-list{display:inline-block}.elementor-post-info .elementor-icon-list-icon .elementor-avatar{border-radius:100%}.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after{margin:initial}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text{display:inline-block}.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a,.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span{display:inline}.elementor-widget-breadcrumbs{font-size:.85em}.elementor-widget-breadcrumbs p{margin-bottom:0}.elementor-sitemap-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.elementor-sticky--active{z-index:99}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}.elementor-motion-effects-element,.elementor-motion-effects-layer{-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,.33,.07,1.03);-o-transition-timing-function:cubic-bezier(0,.33,.07,1.03);transition-timing-function:cubic-bezier(0,.33,.07,1.03);-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.elementor-motion-effects-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;-webkit-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);-ms-transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x);transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.elementor-motion-effects-layer{position:absolute;top:0;left:0;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover}.elementor-motion-effects-perspective{-webkit-perspective:1200px;perspective:1200px}.elementor-widget-archive-posts:after,.elementor-widget-posts:after{display:none}.elementor-posts-container.elementor-posts-masonry{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-posts-container:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts-container .elementor-post{padding:0;margin:0}.elementor-posts-container .elementor-post__thumbnail{overflow:hidden}.elementor-posts-container .elementor-post__thumbnail img{display:block;width:100%;max-height:none;max-width:none;-webkit-transition:-webkit-filter .3s;transition:-webkit-filter .3s;-o-transition:filter .3s;transition:filter .3s;transition:filter .3s,-webkit-filter .3s}.elementor-posts-container .elementor-post__thumbnail__link{position:relative;display:block;width:100%}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail{top:0;left:0;right:0;bottom:0}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img{height:auto;position:absolute;top:calc(50% + 1px);left:calc(50% + 1px);-webkit-transform:scale(1.01) translate(-50%,-50%);-ms-transform:scale(1.01) translate(-50%,-50%);transform:scale(1.01) translate(-50%,-50%)}.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img{height:100%;width:auto}.elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition-property:background,border,-webkit-box-shadow;transition-property:background,border,-webkit-box-shadow;-o-transition-property:background,border,box-shadow;transition-property:background,border,box-shadow;transition-property:background,border,box-shadow,-webkit-box-shadow;-webkit-transition-duration:.25s;-o-transition-duration:.25s;transition-duration:.25s}.elementor-posts .elementor-post__title{font-size:18px;margin:0}.elementor-posts .elementor-post__excerpt{margin-bottom:10px}.elementor-posts .elementor-post__excerpt p{margin:0;line-height:1.5em;font-size:14px;color:#777}.elementor-posts .elementor-post__meta-data{line-height:1.3em;font-size:12px;margin-bottom:13px;color:#adadad}.elementor-posts .elementor-post__read-more{font-size:12px;font-weight:700}.elementor-posts .elementor-post__thumbnail{position:relative}.elementor-posts--skin-classic{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-posts--skin-classic:not(.elementor-posts-masonry){-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-posts--skin-classic .elementor-post{overflow:hidden}.elementor-posts--skin-classic .elementor-post__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-posts--align-left .elementor-post{text-align:left}.elementor-posts--align-right .elementor-post{text-align:right}.elementor-posts--align-center .elementor-post{text-align:center}.elementor-posts--thumbnail-top .elementor-post{display:block}.elementor-posts--thumbnail-top .elementor-post__thumbnail__link{margin-bottom:20px}.elementor-posts--thumbnail-top .elementor-post__text{width:100%}.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link{margin-right:auto}.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link{margin-left:auto}.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link{margin-right:auto;margin-left:auto}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link,.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-ms-flex-negative:0;flex-shrink:0;width:25%}.elementor-posts--thumbnail-left .elementor-post__thumbnail__link{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0;margin-right:20px}.elementor-posts--thumbnail-right .elementor-post__thumbnail__link{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5;margin-left:20px}.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link{display:none}.elementor-posts .elementor-post__card{overflow:hidden;position:relative;background-color:#fff;width:100%;min-height:100%;border-radius:3px;border:0 solid #818a91;-webkit-transition:all .25s;-o-transition:all .25s;transition:all .25s}.elementor-posts .elementor-post__card .elementor-post__thumbnail{position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.elementor-posts .elementor-post__card .elementor-post__thumbnail img{width:calc(100% + 1px)}.elementor-posts .elementor-post__card .elementor-post__text{padding:0 30px;margin-bottom:0;margin-top:20px}.elementor-posts .elementor-post__card .elementor-post__read-more{margin-bottom:20px;display:inline-block}.elementor-posts .elementor-post__card .elementor-post__meta-data{padding:15px 30px;margin-bottom:0;border-top:1px solid #eaeaea}.elementor-posts .elementor-post__card .elementor-post__meta-data span+span:before{margin:0 5px}.elementor-posts .elementor-post__card .elementor-post__title{font-size:21px}.elementor-posts .elementor-post__card .elementor-post__excerpt{line-height:1.7}.elementor-posts .elementor-post__card .elementor-post__excerpt,.elementor-posts .elementor-post__card .elementor-post__title{margin-bottom:25px}.elementor-posts .elementor-post__card .elementor-post__badge,.elementor-posts .elementor-post__card .elementor-post__read-more{text-transform:uppercase}.elementor-posts .elementor-post__badge{position:absolute;top:0;background:#818a91;color:#fff;font-size:12px;padding:.6em 1.2em;line-height:1;font-weight:400;margin:20px;border-radius:999px}.elementor-posts .elementor-post__avatar{position:relative;padding:0 30px;width:100%;top:-25px;height:0;pointer-events:none}.elementor-posts .elementor-post__avatar img{border-radius:50%;width:60px;pointer-events:all;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data,.elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data{margin-top:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar{padding-top:0;position:static;height:auto}.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);vertical-align:bottom}.elementor-posts--show-avatar .elementor-post__thumbnail__link{margin-bottom:25px}.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after{display:block;content:"";background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.35)),color-stop(75%,transparent));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.35),transparent 75%);background-image:-o-linear-gradient(bottom,rgba(0,0,0,.35) 0,transparent 75%);background-image:linear-gradient(0deg,rgba(0,0,0,.35),transparent 75%);background-repeat:no-repeat;height:100%;width:100%;position:absolute;bottom:0;opacity:1;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after{opacity:.5}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img{height:115%}.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img{width:115%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img{height:100%}.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img{width:calc(100% + 1px)}.elementor-posts__hover-zoom-in .elementor-post__thumbnail img,.elementor-posts__hover-zoom-out .elementor-post__thumbnail img{-webkit-transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;transition:height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s;-o-transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1);transition:filter .3s,height 1s cubic-bezier(0,.25,.07,1),width 1s cubic-bezier(0,.25,.07,1),-webkit-filter .3s}.elementor-card-shadow-yes .elementor-post__card{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.15)}.elementor-card-shadow-yes .elementor-post__card:hover{-webkit-box-shadow:0 0 30px 0 rgba(0,0,0,.15);box-shadow:0 0 30px 0 rgba(0,0,0,.15)}.elementor-posts--skin-full_content article{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.elementor-posts--skin-full_content article .elementor-post__thumbnail{padding-bottom:0}body.elementor-editor-active .elementor-posts--skin-archive_full_content,body.elementor-editor-active .elementor-posts--skin-full_content{pointer-events:none}body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link,body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link{display:none}body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link{display:block}.elementor-portfolio__filters{list-style:none;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:0}.elementor-portfolio__filter{margin:0;cursor:pointer;padding:8px}.elementor-portfolio-item{-ms-flex-item-align:start;align-self:flex-start;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-timing-function:ease-in-out;-o-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;overflow:hidden;margin:0}.elementor-portfolio-item__title{margin:0;padding:0;line-height:1;font-size:18px;color:#fff}.elementor-portfolio-item__tags__separator:before{content:", "}.elementor-portfolio-item__overlay{opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;padding:15px;-webkit-transition:opacity 1s;-o-transition:opacity 1s;transition:opacity 1s;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;overflow:hidden;background-color:rgba(129,138,145,.8)}.elementor-portfolio-item__overlay:hover{opacity:1;-webkit-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.elementor-portfolio-item__img img[src=""]{background-color:rgba(0,0,0,.1);height:100%}.elementor-portfolio.elementor-has-item-ratio{-webkit-transition:height .5s;-o-transition:height .5s;transition:height .5s}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail{position:absolute;background-color:rgba(0,0,0,.1)}.elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link{padding-bottom:56.25%}.elementor ul li.elementor-portfolio__filter{list-style-type:none}.elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper,.elementor-widget-posts.load-more-align-center .elementor-button-wrapper{text-align:center}.elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper,.elementor-widget-posts.load-more-align-start .elementor-button-wrapper{text-align:start}.elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper,.elementor-widget-posts.load-more-align-end .elementor-button-wrapper{text-align:end}.elementor-widget-archive-posts.load-more-align-justify .elementor-button,.elementor-widget-posts.load-more-align-justify .elementor-button{width:100%}.elementor-widget-archive-posts .e-load-more-spinner,.elementor-widget-posts .e-load-more-spinner{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner svg{margin:0 auto;display:none}.elementor-widget-archive-posts .e-load-more-spinner i,.elementor-widget-posts .e-load-more-spinner i{color:var(--load-more-spinner-color)}.elementor-widget-archive-posts .e-load-more-spinner svg,.elementor-widget-posts .e-load-more-spinner svg{fill:var(--load-more-spinner-color);height:1em;width:1em}.elementor-widget-archive-posts .e-load-more-message,.elementor-widget-posts .e-load-more-message{color:var(--load-more-message-color);text-align:var(--load-more-message-alignment,center);display:none;margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading,.elementor-widget-posts.e-load-more-pagination-loading{cursor:default}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,.elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper{visibility:hidden}.elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper,.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper{display:none}.elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message,.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message{display:block}.elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper,.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper{visibility:visible}.elementor-widget-archive-posts .elementor-button-wrapper,.elementor-widget-posts .elementor-button-wrapper{margin-top:var(--load-more—spacing,30px)}.elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner,.elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:inherit}.elementor-widget-archive-posts .elementor-button-wrapper .elementor-button,.elementor-widget-posts .elementor-button-wrapper .elementor-button{cursor:pointer;position:relative}.elementor-button.elementor-hidden,.elementor-hidden{display:none}.e-form__step{width:100%}.e-form__step:not(.elementor-hidden){display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons{-ms-flex-wrap:wrap;flex-wrap:wrap}.e-form__buttons,.e-form__buttons__wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.e-form__indicators{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:nowrap;flex-wrap:nowrap;font-size:13px;margin-bottom:var(--e-form-steps-indicators-spacing)}.e-form__indicators,.e-form__indicators__indicator{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-form__indicators__indicator{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-ms-flex-preferred-size:0;flex-basis:0;padding:0 var(--e-form-steps-divider-gap)}.e-form__indicators__indicator__progress{width:100%;position:relative;background-color:var(--e-form-steps-indicator-progress-background-color);border-radius:var(--e-form-steps-indicator-progress-border-radius);overflow:hidden}.e-form__indicators__indicator__progress__meter{width:var(--e-form-steps-indicator-progress-meter-width,0);height:var(--e-form-steps-indicator-progress-height);line-height:var(--e-form-steps-indicator-progress-height);padding-right:15px;border-radius:var(--e-form-steps-indicator-progress-border-radius);background-color:var(--e-form-steps-indicator-progress-color);color:var(--e-form-steps-indicator-progress-meter-color);text-align:right;-webkit-transition:width .1s linear;-o-transition:width .1s linear;transition:width .1s linear}.e-form__indicators__indicator:first-child{padding-left:0}.e-form__indicators__indicator:last-child{padding-right:0}.e-form__indicators__indicator--state-inactive{color:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-inactive [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-inactive-secondary-color,#fff)}.e-form__indicators__indicator--state-inactive object,.e-form__indicators__indicator--state-inactive svg{fill:var(--e-form-steps-indicator-inactive-primary-color,#c2cbd2)}.e-form__indicators__indicator--state-active{color:var(--e-form-steps-indicator-active-primary-color,#39b54a);border-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-active-secondary-color,#fff)}.e-form__indicators__indicator--state-active object,.e-form__indicators__indicator--state-active svg{fill:var(--e-form-steps-indicator-active-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed{color:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator--state-completed [class*=indicator--shape-]:not(.e-form__indicators__indicator--shape-none){background-color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a)}.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none{color:var(--e-form-steps-indicator-completed-primary-color,#39b54a);background-color:initial}.e-form__indicators__indicator--state-completed object,.e-form__indicators__indicator--state-completed svg{fill:var(--e-form-steps-indicator-completed-secondary-color,#fff)}.e-form__indicators__indicator__icon{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);font-size:var(--e-form-steps-indicator-icon-size);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-bottom:10px}.e-form__indicators__indicator__icon img,.e-form__indicators__indicator__icon object,.e-form__indicators__indicator__icon svg{width:var(--e-form-steps-indicator-icon-size);height:auto}.e-form__indicators__indicator__icon .e-font-icon-svg{height:1em}.e-form__indicators__indicator__number{width:var(--e-form-steps-indicator-padding,30px);height:var(--e-form-steps-indicator-padding,30px);border-width:1px;border-style:solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px}.e-form__indicators__indicator--shape-circle{border-radius:50%}.e-form__indicators__indicator--shape-square{border-radius:0}.e-form__indicators__indicator--shape-rounded{border-radius:5px}.e-form__indicators__indicator--shape-none{border:0}.e-form__indicators__indicator__label{text-align:center}.e-form__indicators__indicator__separator{width:100%;height:var(--e-form-steps-divider-width);background-color:#c2cbd2}.e-form__indicators--type-icon,.e-form__indicators--type-icon_text,.e-form__indicators--type-number,.e-form__indicators--type-number_text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.e-form__indicators--type-icon .e-form__indicators__indicator__separator,.e-form__indicators--type-icon_text .e-form__indicators__indicator__separator,.e-form__indicators--type-number .e-form__indicators__indicator__separator,.e-form__indicators--type-number_text .e-form__indicators__indicator__separator{margin-top:calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2)}.elementor-field-type-hidden{display:none}.elementor-field-type-html{display:inline-block}.elementor-login .elementor-lost-password,.elementor-login .elementor-remember-me{font-size:.85em}.elementor-field-type-recaptcha_v3 .elementor-field-label{display:none}.elementor-field-type-recaptcha_v3 .grecaptcha-badge{z-index:1}.elementor-button .elementor-form-spinner{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.elementor-form .elementor-button>span{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-form .elementor-button .elementor-button-text{white-space:normal;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.elementor-form .elementor-button svg{height:auto}.elementor-form .elementor-button .e-font-icon-svg{height:1em}.elementor-widget-price-list .elementor-price-list{list-style:none;padding:0;margin:0}.elementor-widget-price-list .elementor-price-list li{margin:0}.elementor-price-list li:not(:last-child){margin-bottom:20px}.elementor-price-list .elementor-price-list-image{max-width:50%;-ms-flex-negative:0;flex-shrink:0;padding-right:25px}.elementor-price-list .elementor-price-list-image img{width:100%}.elementor-price-list .elementor-price-list-header,.elementor-price-list .elementor-price-list-item,.elementor-price-list .elementor-price-list-text{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-price-list .elementor-price-list-item{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-price-list .elementor-price-list-item .elementor-price-list-text{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-price-list .elementor-price-list-item .elementor-price-list-header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:100%;flex-basis:100%;font-size:19px;font-weight:600;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-price-list .elementor-price-list-item .elementor-price-list-title{max-width:80%}.elementor-price-list .elementor-price-list-item .elementor-price-list-price{font-weight:600}.elementor-price-list .elementor-price-list-item p.elementor-price-list-description{-ms-flex-preferred-size:100%;flex-basis:100%;font-size:14px;margin:0}.elementor-price-list .elementor-price-list-item .elementor-price-list-separator{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-left:10px;margin-right:10px;border-bottom-style:dotted;border-bottom-width:2px;height:0}.elementor-price-table{text-align:center}.elementor-price-table .elementor-price-table__header{background:var(--e-price-table-header-background-color,#555);padding:20px 0}.elementor-price-table .elementor-price-table__heading{margin:0;padding:0;line-height:1.2;font-size:24px;font-weight:600;color:#fff}.elementor-price-table .elementor-price-table__subheading{font-size:13px;font-weight:400;color:#fff}.elementor-price-table .elementor-price-table__original-price{margin-right:15px;text-decoration:line-through;font-size:.5em;line-height:1;font-weight:400;-ms-flex-item-align:center;align-self:center}.elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency{font-size:1em;margin:0}.elementor-price-table .elementor-price-table__price{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;color:#555;font-weight:800;font-size:65px;padding:40px 0}.elementor-price-table .elementor-price-table__price .elementor-typo-excluded{line-height:normal;letter-spacing:normal;text-transform:none;font-weight:400;font-size:medium;font-style:normal}.elementor-price-table .elementor-price-table__after-price{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;text-align:left;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-price-table .elementor-price-table__integer-part{line-height:.8}.elementor-price-table .elementor-price-table__currency,.elementor-price-table .elementor-price-table__fractional-part{line-height:1;font-size:.3em}.elementor-price-table .elementor-price-table__currency{margin-right:3px}.elementor-price-table .elementor-price-table__period{width:100%;font-size:13px;font-weight:400}.elementor-price-table .elementor-price-table__features-list{list-style-type:none;margin:0;padding:0;line-height:1;color:var(--e-price-table-features-list-color)}.elementor-price-table .elementor-price-table__features-list li{font-size:14px;line-height:1;margin:0;padding:0}.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner{margin-left:15px;margin-right:15px}.elementor-price-table .elementor-price-table__features-list li:not(:first-child):before{content:"";display:block;border:0 solid hsla(0,0%,47.8%,.3);margin:10px 12.5%}.elementor-price-table .elementor-price-table__features-list i{margin-right:10px;font-size:1.3em}.elementor-price-table .elementor-price-table__features-list svg{margin-right:10px;fill:var(--e-price-table-features-list-color);height:1.3em;width:1.3em}.elementor-price-table .elementor-price-table__features-list svg~*{vertical-align:text-top}.elementor-price-table .elementor-price-table__footer{padding:30px 0}.elementor-price-table .elementor-price-table__additional_info{margin:0;font-size:13px;line-height:1.4}.elementor-price-table__ribbon{position:absolute;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-price-table__ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000}.elementor-price-table__ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-price-table__ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-price-table .elementor-widget-container{overflow:hidden;background-color:#f7f7f7}.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:1024px){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}.elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:auto;right:0;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0}.elementor-widget-countdown .elementor-countdown-expire--message{display:none;padding:20px;text-align:center}.elementor-widget-countdown .elementor-countdown-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-widget-countdown .elementor-countdown-item{padding:20px 0;text-align:center;color:#fff}.elementor-widget-countdown .elementor-countdown-digits,.elementor-widget-countdown .elementor-countdown-label{line-height:1}.elementor-widget-countdown .elementor-countdown-digits{font-size:69px}.elementor-widget-countdown .elementor-countdown-label{font-size:19px}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-right:auto;margin-left:auto}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label{display:block}.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-countdown.elementor-countdown--label-inline{text-align:center}.elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item{display:inline-block;padding-left:5px;padding-right:5px}.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:767px){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn{color:var(--e-share-buttons-primary-color,#ea4335);border-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon{background-color:var(--e-share-buttons-primary-color,#ea4335);color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg,.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon{color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg{fill:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--color-official .elementor-share-btn:hover{-webkit-filter:saturate(1.5) brightness(1.2);filter:saturate(1.5) brightness(1.2)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg{color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg{fill:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email{color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg{fill:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print{color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg{fill:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook{color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg{fill:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google{color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg{fill:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket{color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg{fill:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki{color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg{fill:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest{color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg{fill:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit{color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg{fill:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype{color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg{fill:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare{color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg{fill:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat{color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg{fill:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon{color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg{fill:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix{color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg{fill:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr{color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg{fill:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch{color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg{fill:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram{color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg{fill:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter{color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg{fill:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo{color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg{fill:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk{color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg{fill:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp{color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg{fill:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress{color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg{fill:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing{color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg{fill:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon{background-color:#005be2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon{background-color:#ea4335}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon{background-color:#aaa}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon{background-color:#3b5998}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon{background-color:#dd4b39}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon{background-color:#ef3f56}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon{background-color:#f4731c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon{background-color:#bd081c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon{background-color:#ff4500}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon{background-color:#00aff0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon{background-color:#0077b5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon{background-color:#fffc00}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon{background-color:#eb4924}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon{background-color:#f3782b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon{background-color:#35465c}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon{background-color:#6441a5}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon{background-color:#2ca5e0}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon{background-color:#1da1f2}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon{background-color:#1ab7ea}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon{background-color:#45668e}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon{background-color:#25d366}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon{background-color:#21759b}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon{background-color:#026466}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon{color:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg,.elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg{fill:var(--e-share-buttons-icon-color,#fff)}.elementor-share-buttons--skin-boxed .elementor-share-btn__icon,.elementor-share-buttons--skin-framed .elementor-share-btn__icon{margin-left:-.2em}.elementor-share-buttons--skin-boxed .elementor-share-btn,.elementor-share-buttons--skin-framed .elementor-share-btn{border-style:solid}.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.12)),to(transparent));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:-o-linear-gradient(left,rgba(0,0,0,.12),transparent);background-image:linear-gradient(90deg,rgba(0,0,0,.12),transparent)}.elementor-share-buttons--skin-boxed .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__text,.elementor-share-buttons--skin-minimal .elementor-share-btn__text{padding-left:.9em}.elementor-share-buttons--skin-flat .elementor-share-btn,.elementor-share-buttons--skin-gradient .elementor-share-btn{background-color:var(--e-share-buttons-primary-color,#ea4335)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon,.elementor-share-buttons--skin-flat .elementor-share-btn__text,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon,.elementor-share-buttons--skin-gradient .elementor-share-btn__text{color:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg,.elementor-share-buttons--skin-flat .elementor-share-btn__text svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg,.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg{fill:var(--e-share-buttons-secondary-color,#fff)}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon{border-radius:.5em}.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon{border-radius:99.9em}.elementor-share-buttons--view-text .elementor-share-btn__text{padding-left:1em}.elementor-share-buttons--view-icon .elementor-share-btn,.elementor-share-buttons--view-text .elementor-share-btn{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--view-icon .elementor-share-btn__icon,.elementor-share-buttons--view-icon .elementor-share-btn__text,.elementor-share-buttons--view-text .elementor-share-btn__icon,.elementor-share-buttons--view-text .elementor-share-btn__text{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-share-buttons--shape-rounded .elementor-share-btn{border-radius:.5em}.elementor-share-buttons--shape-circle .elementor-share-btn{border-radius:99.9em}.elementor-share-btn{overflow:hidden;font-size:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-transition-property:background-color,border-color,-webkit-filter;transition-property:background-color,border-color,-webkit-filter;-o-transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color;transition-property:filter,background-color,border-color,-webkit-filter;height:4.5em;cursor:pointer}.elementor-share-btn,.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.elementor-share-btn__icon,.elementor-share-btn__text{-webkit-transition-property:color,background-color;-o-transition-property:color,background-color;transition-property:color,background-color}.elementor-share-btn__icon{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:4.5em;position:relative}.elementor-share-btn__icon i{font-size:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__icon svg{width:var(--e-share-buttons-icon-size,1.7em);height:var(--e-share-buttons-icon-size,1.7em)}.elementor-share-btn__text{font-size:1.5em;padding-right:1em;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;font-weight:100}.elementor-share-btn__title{font-weight:700;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-share-buttons{text-align:var(--alignment,inherit);-moz-text-align-last:var(--alignment,inherit);text-align-last:var(--alignment,inherit)}.elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container{font-size:0}.elementor-skin-carousel .elementor-main-swiper,.elementor-skin-coverflow .elementor-main-swiper{height:230px}.elementor-skin-slideshow .elementor-main-swiper{height:450px;position:relative}.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i{font-size:50px}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide{cursor:pointer}.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.elementor-carousel-image{background:no-repeat 50%;-webkit-background-size:cover;background-size:cover;height:100%;position:relative}.elementor-carousel-image-overlay{position:absolute;top:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center;width:100%;height:100%;padding:20px;color:var(--e-carousel-image-overlay-color,#fff);background-color:rgba(129,138,145,.8);-webkit-transition:opacity .5s,-webkit-transform .5s;transition:opacity .5s,-webkit-transform .5s;-o-transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s;transition:transform .5s,opacity .5s,-webkit-transform .5s}.elementor-carousel-image-overlay i{font-size:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-carousel-image-overlay svg{fill:var(--e-carousel-image-overlay-color,#fff);width:var(--e-carousel-image-overlay-icon-size,21px);height:var(--e-carousel-image-overlay-icon-size,21px)}.elementor-testimonial__image{-ms-flex-negative:0;flex-shrink:0}.elementor-testimonial__image img{border-radius:999px;-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:cover;object-fit:cover}.elementor-testimonial__footer,.elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-testimonial__footer cite,.elementor-testimonial__header cite{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-style:normal;font-size:14px;line-height:1.5}.elementor-testimonial__name{font-weight:700}.elementor-testimonial--layout-image_above .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-testimonial--layout-image_above .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{margin-left:20px}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image+cite{margin-right:20px;margin-left:0}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image+cite{margin-right:0;margin-left:20px}.elementor-testimonial--layout-image_inline .elementor-testimonial__footer{margin-top:25px}.elementor-testimonial--layout-image_above .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.elementor-testimonial--layout-image_above .elementor-testimonial__footer{margin-bottom:25px}.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer{margin-top:25px;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-testimonial--layout-image_stacked .elementor-testimonial__image,.elementor-testimonial--layout-image_stacked .elementor-testimonial cite{margin-top:15px;width:100%}.elementor-testimonial--layout-image_left .elementor-testimonial,.elementor-testimonial--layout-image_right .elementor-testimonial{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--layout-image_right .elementor-testimonial__footer{-ms-flex-negative:0;flex-shrink:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:center}.elementor-testimonial--layout-image_left .elementor-testimonial__image+cite,.elementor-testimonial--layout-image_right .elementor-testimonial__image+cite{margin-top:15px}.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer,.elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-testimonial--layout-image_left .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-testimonial--layout-image_left .elementor-testimonial__footer{padding-right:20px}.elementor-testimonial--layout-image_right .elementor-testimonial{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-left:20px}.elementor-testimonial--align-right .elementor-testimonial{text-align:right}.elementor-testimonial--align-left .elementor-testimonial{text-align:left}.elementor-testimonial--align-center .elementor-testimonial{text-align:center}.elementor-testimonial--align-center .elementor-testimonial__footer{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image+cite{text-align:left}.elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite,.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-top:25px}.elementor-testimonial--skin-bubble .elementor-testimonial__content{background-color:#e6e9ec;padding:20px;position:relative}.elementor-testimonial--skin-bubble .elementor-testimonial__content:after{content:"";display:block;width:14px;height:14px;background-color:#e6e9ec;position:absolute;-webkit-transform:scaleX(.75) rotate(45deg);-ms-transform:scaleX(.75) rotate(45deg);transform:scaleX(.75) rotate(45deg);border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after{bottom:calc(100% - 7px);-webkit-transform:scaleX(.75) rotate(-135deg);-ms-transform:scaleX(.75) rotate(-135deg);transform:scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(-135deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(-135deg);transform:translateX(-50%) scaleX(.75) rotate(-135deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after{top:calc(100% - 7px)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) scaleX(.75) rotate(45deg);-ms-transform:translateX(-50%) scaleX(.75) rotate(45deg);transform:translateX(-50%) scaleX(.75) rotate(45deg)}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after{left:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after{right:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(135deg);-ms-transform:scaleY(.75) rotate(135deg);transform:scaleY(.75) rotate(135deg);left:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{-webkit-transform:scaleY(.75) rotate(-45deg);-ms-transform:scaleY(.75) rotate(-45deg);transform:scaleY(.75) rotate(-45deg);right:-8px}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after{top:calc(20px + (50px / 2))}.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer,.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer{padding-top:20px}.elementor-widget-testimonial-carousel .swiper-slide{padding:20px}.elementor-widget-testimonial-carousel .elementor-testimonial__text{font-size:1.3em;font-style:italic;line-height:1.5}.elementor-widget-testimonial-carousel .elementor-testimonial__image img{width:50px;height:50px}.elementor-widget-reviews .swiper-slide{background-color:#fff;border:1px solid #e1e8ed;border-radius:5px;padding:0}.elementor-widget-reviews .elementor-testimonial__text{font-size:14px;line-height:20px}.elementor-widget-reviews .elementor-testimonial__name{color:#1c2022}.elementor-widget-reviews .elementor-testimonial__title{color:#697882;font-size:12.5px;font-weight:400;font-family:inherit}.elementor-widget-reviews .elementor-testimonial__image{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-reviews .elementor-testimonial__image img{width:36px;height:36px}.elementor-widget-reviews .elementor-testimonial__icon{margin-left:auto;font-size:17px}.elementor-widget-reviews .elementor-testimonial__icon .fa+.fa{margin-left:.15em}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon{color:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android{--e-testimonial-icon-color:#a4c639}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple{--e-testimonial-icon-color:#999}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance{--e-testimonial-icon-color:#1769ff}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket{--e-testimonial-icon-color:#205081}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen{--e-testimonial-icon-color:#000}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious{--e-testimonial-icon-color:#39f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg{--e-testimonial-icon-color:#005be2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble{--e-testimonial-icon-color:#ea4c89}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope{--e-testimonial-icon-color:#ea4335}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook{--e-testimonial-icon-color:#3b5998}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr{--e-testimonial-icon-color:#0063dc}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare{--e-testimonial-icon-color:#2d5be3}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github{--e-testimonial-icon-color:#333}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus{--e-testimonial-icon-color:#dd4b39}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz{--e-testimonial-icon-color:#7ac142}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram{--e-testimonial-icon-color:#262626}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle{--e-testimonial-icon-color:#487aa2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium{--e-testimonial-icon-color:#00ab6b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup{--e-testimonial-icon-color:#ec1c40}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud{--e-testimonial-icon-color:#273a4b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki{--e-testimonial-icon-color:#f4731c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest{--e-testimonial-icon-color:#bd081c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt{--e-testimonial-icon-color:#da552f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit{--e-testimonial-icon-color:#ff4500}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss{--e-testimonial-icon-color:#f26522}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart{--e-testimonial-icon-color:#4caf50}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype{--e-testimonial-icon-color:#00aff0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare{--e-testimonial-icon-color:#0077b5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat{--e-testimonial-icon-color:#fffc00}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud{--e-testimonial-icon-color:#f80}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify{--e-testimonial-icon-color:#2ebd59}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow{--e-testimonial-icon-color:#fe7a15}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam{--e-testimonial-icon-color:#00adee}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon{--e-testimonial-icon-color:#eb4924}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram{--e-testimonial-icon-color:#2ca5e0}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack,.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack{--e-testimonial-icon-color:#1aa1d8}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor{--e-testimonial-icon-color:#589442}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr{--e-testimonial-icon-color:#35465c}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch{--e-testimonial-icon-color:#6441a5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter{--e-testimonial-icon-color:#1da1f2}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo{--e-testimonial-icon-color:#1ab7ea}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk{--e-testimonial-icon-color:#45668e}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo{--e-testimonial-icon-color:#dd2430}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin{--e-testimonial-icon-color:#31a918}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp{--e-testimonial-icon-color:#25d366}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress{--e-testimonial-icon-color:#21759b}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing{--e-testimonial-icon-color:#026466}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp{--e-testimonial-icon-color:#af0606}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube{--e-testimonial-icon-color:#cd201f}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px{--e-testimonial-icon-color:#0099e5}.elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg{fill:var(--e-testimonial-icon-color)}.elementor-widget-reviews .elementor-testimonial__rating{background-image:-webkit-gradient(linear,left top,right top,from(#ffc82c),to(#ccc));background-image:-webkit-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:-o-linear-gradient(left,#ffc82c var(--rating),#ccc var(--rating));background-image:linear-gradient(90deg,#ffc82c var(--rating),#ccc var(--rating));font-family:eicons}.elementor-widget-reviews .elementor-testimonial__header{display:-webkit-box;display:-ms-flexbox;display:flex;padding-top:15px;padding-bottom:6px}.elementor-widget-reviews .elementor-testimonial__image+cite{margin-left:9px}.elementor-widget-reviews .elementor-testimonial__separator{margin:0 auto;border-top:0;border-bottom:1px solid #e1e8ed;height:0}.elementor-widget-reviews .elementor-testimonial__content{padding-top:6px;padding-bottom:15px}.elementor-widget-reviews .elementor-testimonial__content,.elementor-widget-reviews .elementor-testimonial__header{padding-left:15px;padding-right:15px}.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header{border-bottom:1px solid #e1e8ed}.swiper-pagination-bullets{color:#fff;cursor:default}.swiper-slide{will-change:transform;border-style:solid;border-width:0;-webkit-transition-duration:.5s;-o-transition-duration:.5s;transition-duration:.5s;-webkit-transition-property:border,background,-webkit-transform;transition-property:border,background,-webkit-transform;-o-transition-property:border,background,transform;transition-property:border,background,transform;transition-property:border,background,transform,-webkit-transform;overflow:hidden}.swiper-slide:not(:hover) .e-overlay-animation-fade{opacity:0}.swiper-slide:not(:hover) .e-overlay-animation-slide-up{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-down{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-right{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.swiper-slide:not(:hover) .e-overlay-animation-slide-left{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.swiper-slide:not(:hover) .e-overlay-animation-zoom-in{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.swiper-slide a{display:inline}.swiper-slide a.elementor-button{display:inline-block}.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper{width:calc(95% - 40px)}.elementor-widget-reviews .elementor-main-swiper,.elementor-widget-testimonial-carousel .elementor-main-swiper{width:95%}.elementor-widget-reviews .swiper-wrapper,.elementor-widget-testimonial-carousel .swiper-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.elementor-widget-reviews .swiper-slide,.elementor-widget-testimonial-carousel .swiper-slide{height:auto}.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container,.elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container{padding-bottom:40px}.elementor-widget-reviews .elementor-swiper-button-prev,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next{left:0;right:unset}.elementor-widget-reviews .elementor-swiper-button-next,.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel .elementor-swiper-button-next,.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:0;left:unset}.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next,.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev{top:calc(50% - (40px / 2))}.elementor-widget-media-carousel .elementor-swiper-button-prev,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next{left:10px;right:unset}.elementor-widget-media-carousel .elementor-swiper-button-next,.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev{right:10px;left:unset}.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),.entry-summary blockquote.elementor-blockquote{margin-right:0;margin-left:0}.elementor-widget-blockquote blockquote{margin:0;padding:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;quotes:none;border:0;font-style:normal;color:#55595c}.elementor-widget-blockquote blockquote:after,.elementor-widget-blockquote blockquote:before,.elementor-widget-blockquote blockquote cite:after,.elementor-widget-blockquote blockquote cite:before,.elementor-widget-blockquote blockquote footer:after,.elementor-widget-blockquote blockquote footer:before{content:"";content:none}.elementor-blockquote{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote__author,.elementor-blockquote__content{margin-bottom:0;font-style:normal}.elementor-blockquote__author{font-weight:700}.elementor-blockquote footer{margin-top:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.elementor-blockquote__tweet-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;color:#1da1f2;-ms-flex-item-align:end;align-self:flex-end;line-height:1;position:relative;width:-webkit-max-content;width:-moz-max-content;width:max-content}.elementor-blockquote__tweet-button:hover{color:#0967a0}.elementor-blockquote__tweet-button span{font-weight:600}.elementor-blockquote__tweet-button i,.elementor-blockquote__tweet-button span{vertical-align:middle}.elementor-blockquote__tweet-button i+span,.elementor-blockquote__tweet-button svg+span{margin-left:.5em}.elementor-blockquote__tweet-button svg{fill:#1da1f2;height:1em;width:1em}.elementor-blockquote__tweet-label{white-space:pre-wrap}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button{padding:.7em 1.2em;border-radius:100em;background-color:#1da1f2;color:#fff;font-size:15px}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover{background-color:#0967a0;color:#fff}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg,.elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg{fill:#fff;height:1em;width:1em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button{padding:0;width:2em;height:2em}.elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i,.elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before{content:"";border:.5em solid transparent;border-right-color:#1da1f2;position:absolute;left:-.8em;top:50%;-webkit-transform:translateY(-50%) scaleY(.65);-ms-transform:translateY(-50%) scaleY(.65);transform:translateY(-50%) scaleY(.65);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before{right:auto;left:-.8em;border-right-color:#1da1f2;border-left-color:transparent}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before{border-right-color:#0967a0}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before{left:auto;right:-.8em;border-right-color:transparent;border-left-color:#1da1f2}.elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before{border-left-color:#0967a0}.elementor-blockquote--skin-boxed .elementor-blockquote{background-color:#e6e9ec;padding:30px}.elementor-blockquote--skin-border .elementor-blockquote{border-color:#e6e9ec;border-left:7px #e6e9ec;border-style:solid;padding-left:20px}.elementor-blockquote--skin-quotation .elementor-blockquote:before{content:"“";font-size:100px;color:#e6e9ec;font-family:Times New Roman,Times,serif;font-weight:900;line-height:1;display:block;height:.6em}.elementor-blockquote--skin-quotation .elementor-blockquote__content{margin-top:15px}.elementor-blockquote--align-left .elementor-blockquote__content{text-align:left}.elementor-blockquote--align-left .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-blockquote--align-right .elementor-blockquote__content{text-align:right}.elementor-blockquote--align-right .elementor-blockquote footer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-blockquote--align-center .elementor-blockquote{text-align:center}.elementor-blockquote--align-center .elementor-blockquote__author,.elementor-blockquote--align-center .elementor-blockquote footer{display:block}.elementor-blockquote--align-center .elementor-blockquote__tweet-button{margin-right:auto;margin-left:auto}.elementor-headline{font-size:43px;line-height:1.2;display:block}.elementor-headline-dynamic-text{color:var(--dynamic-text-color,#aebcb9)}.elementor-headline--style-rotate .elementor-headline-dynamic-wrapper{text-align:left}.elementor-headline--style-highlight .elementor-headline-dynamic-wrapper{overflow:visible;text-align:inherit}.elementor-headline--style-highlight .elementor-headline-dynamic-text{z-index:1}.elementor-headline--style-highlight .elementor-headline-plain-text{z-index:1;position:relative}.elementor-headline--style-highlight svg{position:absolute;top:50%;left:50%;width:calc(100% + 20px);height:calc(100% + 20px);-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);overflow:visible}.elementor-headline--style-highlight svg path{stroke:red;stroke-width:9;fill:none;opacity:0;stroke-dasharray:0 1500;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-headline.e-animated svg path{-webkit-animation:elementor-headline-dash forwards;animation:elementor-headline-dash forwards;-webkit-animation-duration:var(--animation-duration,1.2s);animation-duration:var(--animation-duration,1.2s);-webkit-animation-iteration-count:1;animation-iteration-count:1}.elementor-headline.e-animated svg path:nth-of-type(2){-webkit-animation-delay:calc(var(--animation-duration, 1.2s) / 2);animation-delay:calc(var(--animation-duration, 1.2s) / 2)}.elementor-headline.e-hide-highlight svg path{opacity:1;stroke-dasharray:1500 1500;-webkit-animation:hide-highlight .4s forwards;animation:hide-highlight .4s forwards;-webkit-animation-iteration-count:1;animation-iteration-count:1}@-webkit-keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@keyframes elementor-headline-dash{0%{stroke-dasharray:0 1500;opacity:1}to{stroke-dasharray:1500 1500;opacity:1}}@-webkit-keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}@keyframes hide-highlight{0%{opacity:1;stroke-dasharray:1500 1500}to{opacity:0;-webkit-filter:blur(10px);filter:blur(10px)}}.elementor-headline-text-wrapper{vertical-align:bottom}.elementor-headline-dynamic-wrapper{display:inline-block;position:relative}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text{display:inline-block;position:absolute;top:0;left:0}.elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active{position:relative}.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text{opacity:0;-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-transform:rotateX(0deg);transform:rotateX(0deg);-webkit-animation:elementor-headline-flip-in 1.2s;animation:elementor-headline-flip-in 1.2s}.elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);-webkit-animation:elementor-headline-flip-out 1.2s;animation:elementor-headline-flip-out 1.2s}@-webkit-keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@keyframes elementor-headline-flip-in{0%{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}35%{-webkit-transform:rotateX(120deg);transform:rotateX(120deg);opacity:0}65%{opacity:0}to{-webkit-transform:rotateX(1turn);transform:rotateX(1turn);opacity:1}}@-webkit-keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}@keyframes elementor-headline-flip-out{0%{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}35%{-webkit-transform:rotateX(-40deg);transform:rotateX(-40deg);opacity:1}65%{opacity:0}to{-webkit-transform:rotateX(180deg);transform:rotateX(180deg);opacity:0}}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper{vertical-align:top;overflow:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;left:auto;right:0;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:90%;width:1px;background-color:#0d0d0d}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after{-webkit-animation:elementor-headline-pulse 1s infinite;animation:elementor-headline-pulse 1s infinite}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected{background-color:var(--typing-selected-bg-color,#0d0d0d)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected:after{visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text{color:var(--typing-selected-color,var(--dynamic-text-color),#aebcb9)}.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active){visibility:hidden}.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){position:absolute;visibility:hidden}@-webkit-keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}@keyframes elementor-headline-pulse{0%{-webkit-transform:translateY(-50%) scale(1);transform:translateY(-50%) scale(1);opacity:1}40%{-webkit-transform:translateY(-50%) scale(.9);transform:translateY(-50%) scale(.9);opacity:0}to{-webkit-transform:translateY(-50%) scale(0);transform:translateY(-50%) scale(0);opacity:0}}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text{-webkit-transform:scaleX(1.0005);-ms-transform:scaleX(1.0005);transform:scaleX(1.0005);opacity:0}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg);opacity:0}.elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-swirl-in .4s forwards;animation:elementor-headline-swirl-in .4s forwards}.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-swirl-out .4s forwards;animation:elementor-headline-swirl-out .4s forwards}@-webkit-keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@keyframes elementor-headline-swirl-in{0%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(90deg);transform:translateZ(-20px) rotateX(90deg)}60%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(-10deg);transform:translateZ(-20px) rotateX(-10deg)}to{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0deg);transform:translateZ(-20px) rotateX(0deg)}}@-webkit-keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}@keyframes elementor-headline-swirl-out{0%{opacity:1;-webkit-transform:translateZ(-20px) rotateX(0);transform:translateZ(-20px) rotateX(0)}60%{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-100deg);transform:translateZ(-20px) rotateX(-100deg)}to{opacity:0;-webkit-transform:translateZ(-20px) rotateX(-90deg);transform:translateZ(-20px) rotateX(-90deg)}}.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text{opacity:0;top:.2em}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active{top:0;opacity:1;-webkit-animation:elementor-headline-slide-down-in .6s;animation:elementor-headline-slide-down-in .6s}.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-down-out .6s;animation:elementor-headline-slide-down-out .6s}@-webkit-keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes elementor-headline-slide-down-in{0%{opacity:0;-webkit-transform:translateY(-100%);transform:translateY(-100%)}60%{opacity:1;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes elementor-headline-slide-down-out{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}60%{opacity:0;-webkit-transform:translateY(120%);transform:translateY(120%)}to{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}}.elementor-headline-animation-type-clip .elementor-headline-text-wrapper{display:inline-block;padding:.2em 0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper{overflow:hidden;vertical-align:top}.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper:after{content:"";position:absolute;top:0;left:auto;right:0;width:2px;height:100%;background-color:#0d0d0d}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-drop-in-in .8s;animation:elementor-headline-drop-in-in .8s}.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-drop-in-out .8s;animation:elementor-headline-drop-in-out .8s}@-webkit-keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes elementor-headline-drop-in-in{0%{opacity:0;-webkit-transform:translateZ(100px);transform:translateZ(100px)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}@keyframes elementor-headline-drop-in-out{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translateZ(-100px);transform:translateZ(-100px)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper{-webkit-perspective:300px;perspective:300px}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{display:inline-block;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-blinds-in .6s forwards;animation:elementor-headline-blinds-in .6s forwards}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-blinds-out .6s forwards;animation:elementor-headline-blinds-out .6s forwards}@-webkit-keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@keyframes elementor-headline-blinds-in{0%{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}to{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}}@-webkit-keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}@keyframes elementor-headline-blinds-out{0%{-webkit-transform:rotateY(0);transform:rotateY(0)}to{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}}.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{display:inline-block;opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter{opacity:1}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in{-webkit-animation:elementor-headline-wave-up .6s forwards;animation:elementor-headline-wave-up .6s forwards}.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in){-webkit-animation:elementor-headline-wave-down .6s forwards;animation:elementor-headline-wave-down .6s forwards}@-webkit-keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes elementor-headline-wave-up{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}60%{-webkit-transform:scale(1.2);transform:scale(1.2);opacity:1}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes elementor-headline-wave-down{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}60%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text{opacity:0}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active{opacity:1;-webkit-animation:elementor-headline-slide-in .6s;animation:elementor-headline-slide-in .6s}.elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive{-webkit-animation:elementor-headline-slide-out .6s;animation:elementor-headline-slide-out .6s}@-webkit-keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes elementor-headline-slide-in{0%{opacity:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}60%{opacity:1;-webkit-transform:translateX(10%);transform:translateX(10%)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes elementor-headline-slide-out{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}60%{opacity:0;-webkit-transform:translateX(110%);transform:translateX(110%)}to{opacity:0;-webkit-transform:translateX(100%);transform:translateX(100%)}}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper,.elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper{overflow:hidden}.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text,.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text,.elementor-headline-animation-type-wave .elementor-headline-dynamic-text{white-space:nowrap}.elementor-msie .elementor-headline--style-highlight svg{top:auto;left:auto;-webkit-transform:translate(-100%);-ms-transform:translate(-100%);transform:translate(-100%)}@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 0 3px 3px;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:3px 3px 0 0;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 0 0 3px}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:0 3px 3px 0}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;left:50%;margin-left:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{left:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 0 10px 10px;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b3b3}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-left:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:767px){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:768px){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:1025px){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:1024px){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}.elementor-gallery__container{min-height:1px}.elementor-gallery-item{position:relative;overflow:hidden;display:block;text-decoration:none;border:solid var(--image-border-width) var(--image-border-color);border-radius:var(--image-border-radius)}.elementor-gallery-item__content,.elementor-gallery-item__overlay{height:100%;width:100%;position:absolute;top:0;left:0}.elementor-gallery-item__overlay{mix-blend-mode:var(--overlay-mix-blend-mode);-webkit-transition-duration:var(--overlay-transition-duration);-o-transition-duration:var(--overlay-transition-duration);transition-duration:var(--overlay-transition-duration);-webkit-transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;transition-property:mix-blend-mode,opacity,background-color,-webkit-transform;-o-transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color;transition-property:mix-blend-mode,transform,opacity,background-color,-webkit-transform}.elementor-gallery-item__image.e-gallery-image{-webkit-transition-duration:var(--image-transition-duration);-o-transition-duration:var(--image-transition-duration);transition-duration:var(--image-transition-duration);-webkit-transition-property:-webkit-filter,-webkit-transform;transition-property:-webkit-filter,-webkit-transform;-o-transition-property:filter,transform;transition-property:filter,transform;transition-property:filter,transform,-webkit-filter,-webkit-transform}.elementor-gallery-item__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:var(--content-justify-content,center);-ms-flex-pack:var(--content-justify-content,center);justify-content:var(--content-justify-content,center);-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:var(--content-text-align);padding:var(--content-padding)}.elementor-gallery-item__content>div{-webkit-transition-duration:var(--content-transition-duration);-o-transition-duration:var(--content-transition-duration);transition-duration:var(--content-transition-duration)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(2){-webkit-transition-delay:calc((var(--content-transition-delay) / 3));-o-transition-delay:calc((var(--content-transition-delay) / 3));transition-delay:calc((var(--content-transition-delay) / 3))}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(3){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 2);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 2);transition-delay:calc((var(--content-transition-delay) / 3) * 2)}.elementor-gallery-item__content.elementor-gallery--sequenced-animation>div:nth-child(4){-webkit-transition-delay:calc((var(--content-transition-delay) / 3) * 3);-o-transition-delay:calc((var(--content-transition-delay) / 3) * 3);transition-delay:calc((var(--content-transition-delay) / 3) * 3)}.elementor-gallery-item__description{color:var(--description-text-color,#fff);width:100%}.elementor-gallery-item__title{color:var(--title-text-color,#fff);font-weight:700;width:100%}.elementor-gallery__titles-container{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:var(--titles-container-justify-content,center);-ms-flex-pack:var(--titles-container-justify-content,center);justify-content:var(--titles-container-justify-content,center);margin-bottom:20px}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before{background-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before{background-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:before{border-color:var(--galleries-pointer-bg-color-hover);border-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item:after{border-color:var(--galleries-pointer-bg-color-hover)}.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after,.elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before{border-color:var(--galleries-pointer-bg-color-active)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:var(--galleries-pointer-border-width);border-right-width:0;border-top-width:0}.elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after{border-left-width:0;border-bottom-width:0;border-right-width:var(--galleries-pointer-border-width);border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before{border-left-width:var(--galleries-pointer-border-width);border-bottom-width:0;border-right-width:0;border-top-width:var(--galleries-pointer-border-width)}.elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after{border-left-width:0;border-bottom-width:var(--galleries-pointer-border-width);border-right-width:var(--galleries-pointer-border-width);border-top-width:0}.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after,.elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,.elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,.elementor-gallery__titles-container .e--pointer-underline .elementor-item:after{height:var(--galleries-pointer-border-width)}.elementor-gallery-title{--space-between:10px;cursor:pointer;color:#6d7882;font-weight:500;position:relative;padding:7px 14px;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s}.elementor-gallery-title--active{color:#495157}.elementor-gallery-title:not(:last-child){margin-right:var(--space-between)}.elementor-gallery-item__title+.elementor-gallery-item__description{margin-top:var(--description-margin-top)}.e-gallery-item.elementor-gallery-item{-webkit-transition-property:all;-o-transition-property:all;transition-property:all}.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right,.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top,.e-gallery-item:hover .elementor-gallery__item-overlay-bg,.e-gallery-item:hover .elementor-gallery__item-overlay-content,.e-gallery-item:hover .elementor-gallery__item-overlay-content__description,.e-gallery-item:hover .elementor-gallery__item-overlay-content__title{opacity:1}a.elementor-item.elementor-gallery-title{color:var(--galleries-title-color-normal)}a.elementor-item.elementor-gallery-title.elementor-item-active,a.elementor-item.elementor-gallery-title.highlighted,a.elementor-item.elementor-gallery-title:focus,a.elementor-item.elementor-gallery-title:hover{color:var(--galleries-title-color-hover)}a.elementor-item.elementor-gallery-title.elementor-item-active{color:var(--gallery-title-color-active)}.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-left:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-right:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-right:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:1024px){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:767px){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}.e-tabs-inner-tabs{text-align:left;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:767px){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:767px){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:767px){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}.elementor-payment-button{border:none}.elementor-scrolling-tracker{--scrolling-track-default-progress-color:#61ce70;--scrolling-track-default-color:#eee;--scrolling-track-precentage-default-color:$black}.elementor-scrolling-tracker-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:var(--horizontal-height,20px);padding:var(--tracker-padding);-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-left:var(--horizontal-border-left-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-bottom:var(--horizontal-border-bottom-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-right:var(--horizontal-border-right-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-top:var(--horizontal-border-top-width,2px) var(--horizontal-border-style) var(--horizontal-border-color);border-radius:var(--border-radius);background-color:var(--scrolling-track-default-color);direction:var(--direction)}.elementor-scrolling-tracker-horizontal .current-progress{display:none;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;border-radius:var(--progress-border-radius);border-left:var(--horizontal-progress-border-left-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-bottom:var(--horizontal-progress-border-bottom-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-right:var(--horizontal-progress-border-right-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);border-top:var(--horizontal-progress-border-top-width,2px) var(--horizontal-progress-border) var(--horizontal-progress-border-color);background-color:var(--scrolling-track-default-progress-color)}.elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage{inset-inline-end:.5em;inset-inline-start:auto;position:absolute;direction:var(--text-direction);color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular{display:-webkit-box;display:-ms-flexbox;display:flex;width:var(--circular-width,100px);height:var(--circular-height,100px);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:auto;margin-inline-end:auto}.elementor-scrolling-tracker-circular .current-progress-percentage{position:absolute;color:var(--percentage-color,var(--scrolling-track-precentage-default-color))}.elementor-scrolling-tracker-circular svg{position:absolute}.elementor-scrolling-tracker-circular .current-progress{display:none;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;stroke:var(--circular-color,var(--scrolling-track-default-progress-color));fill:transparent;stroke-width:var(--circular-progress-width,4px)}.elementor-scrolling-tracker-circular .circle{stroke:var(--circular-background-color,var(--scrolling-track-default-color));fill:transparent;stroke-width:var(--circular-background-width,4px)}.elementor-scrolling-tracker-alignment-left{margin-left:0;margin-right:auto}.elementor-scrolling-tracker-alignment-center{margin-left:auto;margin-right:auto}.elementor-scrolling-tracker-alignment-right{margin-left:auto;margin-right:0}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-1 ul.products li.product{width:100%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-2 ul.products li.product{width:50%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-3 ul.products li.product{width:33.33333%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-4 ul.products li.product{width:25%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-5 ul.products li.product{width:20%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-6 ul.products li.product{width:16.66667%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-7 ul.products li.product{width:14.28571%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-8 ul.products li.product{width:12.5%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-9 ul.products li.product{width:11.11111%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-10 ul.products li.product{width:10%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-11 ul.products li.product{width:9.09091%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-12 ul.products li.product{width:8.33333%}@media (max-width:1024px){.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-1 ul.products li.product{width:100%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-2 ul.products li.product{width:50%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-3 ul.products li.product{width:33.33333%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-4 ul.products li.product{width:25%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-5 ul.products li.product{width:20%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-6 ul.products li.product{width:16.66667%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-7 ul.products li.product{width:14.28571%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-8 ul.products li.product{width:12.5%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-9 ul.products li.product{width:11.11111%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-10 ul.products li.product{width:10%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-11 ul.products li.product{width:9.09091%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-12 ul.products li.product{width:8.33333%}}@media (max-width:767px){.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-1 ul.products li.product{width:100%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-2 ul.products li.product{width:50%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-3 ul.products li.product{width:33.33333%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-4 ul.products li.product{width:25%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-5 ul.products li.product{width:20%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-6 ul.products li.product{width:16.66667%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-7 ul.products li.product{width:14.28571%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-8 ul.products li.product{width:12.5%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-9 ul.products li.product{width:11.11111%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-10 ul.products li.product{width:10%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-11 ul.products li.product{width:9.09091%}.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-12 ul.products li.product{width:8.33333%}}.elementor-msie .elementor-element.elementor-wc-products ul.products,.elementor-msie .elementor-posts{margin-right:-10px;margin-left:-10px}.elementor-msie .elementor-element.elementor-wc-products ul.products .elementor-post,.elementor-msie .elementor-element.elementor-wc-products ul.products li.product,.elementor-msie .elementor-posts .elementor-post,.elementor-msie .elementor-posts li.product{padding-right:10px;padding-left:10px;margin-bottom:20px}.elementor-msie .elementor-element.elementor-wc-products ul.products .elementor-post,.elementor-msie .elementor-posts .elementor-post{display:-webkit-box;display:-ms-flexbox;display:flex}PK!޷�j�&�&assets/css/app.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
:root{--color-box-shadow-color:rgba(0,0,0,0.05)}.eps-theme-dark{--color-box-shadow-color:rgba(0,0,0,0.1)}:root{--eps-meta-icon-color:#c2cbd2}.eps-theme-dark{--eps-meta-icon-color:#b4b5b7}.e-site-template__meta-data{-webkit-margin-start:.625rem;margin-inline-start:.625rem;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.e-site-template__meta-data:last-of-type{-webkit-margin-end:auto;margin-inline-end:auto}.e-site-template__meta-data:first-of-type{-webkit-margin-start:1rem;margin-inline-start:1rem}.e-site-template__meta-data .eps-icon{-webkit-margin-end:.3125rem;margin-inline-end:.3125rem;color:var(--eps-meta-icon-color);font-size:.8125rem}.e-site-template__placeholder .eps-card__image{-webkit-filter:var(--placeholder-filter,none);filter:var(--placeholder-filter,none)}.e-site-template__overlay-preview{padding-top:calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem);position:relative}.e-site-template__overlay-preview-button{font-weight:700;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;height:1.875rem;width:100%;background-color:var(--card-background-color-hover);-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:.625rem;line-height:1.25rem;--button-background-color:var(--card-headline-color)}.e-site-template__overlay-preview-button:before{content:"";position:absolute;display:block;width:100%;top:0;left:0;padding-top:calc(var(--card-image-aspect-ratio, 95.6%) - 1.875rem)}.e-site-template__overlay-preview-button>:not(:first-child){-webkit-margin-start:.3125rem;margin-inline-start:.3125rem}.e-site-template__edit-btn{-webkit-margin-end:1.25rem;margin-inline-end:1.25rem}.e-site-template__edit-btn .eps-icon,.e-site-template__instances .eps-icon{-webkit-margin-end:.3125rem;margin-inline-end:.3125rem}.e-site-template__instances .eps-icon{color:var(--eps-meta-icon-color);font-size:.8125rem}.e-site-template__instances-list{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.e-site-template__edit-conditions{-webkit-margin-start:1rem;margin-inline-start:1rem;color:#58d0f5;text-decoration:underline;font-style:italic}.e-site-template--extended .eps-card__figure{overflow:auto}.e-site-template--extended .eps-card__headline{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.e-site-template--wide{--card-image-aspect-ratio:calc(100% * 0.1235)}.eps-add-new__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:1;--card-image-overlay-background-color:transparent}.e-site-editor__templates .page-header{margin-bottom:.625rem}.e-site-editor__templates .eps-separator{margin-bottom:2.75rem}:root{--e-site-editor-conditions-row-controls-background:#fff;--e-site-editor-input-wrapper-border-color:#f1f3f5;--e-site-editor-input-wrapper-select-color:#556068;--e-site-editor-add-button-background-color:#a4afb7;--e-site-editor-add-button-color-hover-background-color:#6d7882;--e-site-editor-input-wrapper-condition-include-background-color:#a4afb7;--e-site-editor-input-wrapper-condition-exclude-background-color:#c2cbd2;--e-site-editor-input-select2-search-field-color:#495157}.eps-theme-dark{--select2-selection-background-color:tints(600);--e-site-editor-conditions-row-controls-background:#404349;--e-site-editor-input-wrapper-border-color:#404349;--e-site-editor-input-wrapper-select-color:#b4b5b7;--e-site-editor-add-button-background-color:#4c4f56;--e-site-editor-add-button-color-hover-background-color:#404349;--e-site-editor-input-wrapper-condition-include-background-color:#404349;--e-site-editor-input-wrapper-condition-exclude-background-color:#404349;--e-site-editor-input-select2-search-field-color:#fff}.e-site-editor-conditions__header{text-align:center}.e-site-editor-conditions__header-image{display:block;margin:0 auto 2.75rem;width:4.375rem}.e-site-editor-conditions__rows{margin:2.75rem auto;max-width:43.75rem}.e-site-editor-conditions__row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin-top:.75rem}.e-site-editor-conditions__remove-condition{color:#c2cbd2;font-size:1.125rem;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.e-site-editor-conditions__row-controls{overflow:hidden;margin-right:.625rem;background-color:var(--e-site-editor-conditions-row-controls-background);display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-shadow:0 3px 6px var(--color-box-shadow-color);box-shadow:0 3px 6px var(--color-box-shadow-color);border-radius:.1875rem}.e-site-editor-conditions__row-controls--error{border:1px solid #b01b1b}.e-site-editor-conditions__conflict{text-align:center;margin-top:.3125rem;color:#b01b1b}.e-site-editor-conditions__row-controls-inner{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.e-site-editor-conditions__row-controls-inner div{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor-conditions__add-button-container{text-align:center}.e-site-editor-conditions__add-button{margin-top:2.75rem;background-color:var(--e-site-editor-add-button-background-color);color:#fff;text-transform:uppercase}.e-site-editor-conditions__add-button:hover{background-color:var(--e-site-editor-add-button-color-hover-background-color);color:#fff}.e-site-editor-conditions__footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;position:absolute;bottom:0;right:0;left:0;padding:.5rem;border-top:1px solid var(--hr-color)}.e-site-editor-conditions__input-wrapper{position:relative;border-left:1px solid;border-left-color:var(--e-site-editor-input-wrapper-border-color);border-bottom-color:var(--e-site-editor-input-wrapper-border-color);border-right-color:var(--e-site-editor-input-wrapper-border-color);border-top-color:var(--e-site-editor-input-wrapper-border-color)}.e-site-editor-conditions__input-wrapper:first-child{border:none}.e-site-editor-conditions__input-wrapper select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-size:.75rem;height:2.5rem;border-width:0;padding:0 .625rem;width:100%;position:relative;color:var(--e-site-editor-input-wrapper-select-color);outline:none;background:transparent}.e-site-editor-conditions__input-wrapper:after{font-family:eicons;content:"\e8ad";font-size:.75rem;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:.625rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single{border:none;line-height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:2.5rem;font-size:.75rem}.e-site-editor-conditions__input-wrapper .select2-selection{outline:none;background:transparent;height:2.5rem}.e-site-editor-conditions__input-wrapper .select2-selection__arrow{display:none}.e-site-editor-conditions__input-wrapper--condition-type{position:relative}.e-site-editor-conditions__input-wrapper--condition-type:before{font-family:eicons;position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:.75rem;font-size:.9375rem;color:#fff;pointer-events:none;z-index:1000}.e-site-editor-conditions__input-wrapper--condition-type:after{color:#fff}.e-site-editor-conditions__input-wrapper--condition-type select{text-transform:uppercase;padding-left:2.125rem;width:7.5rem;font-size:.75rem;color:#fff}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include]:before{content:"\e8cc"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=include] select{background-color:var(--e-site-editor-input-wrapper-condition-include-background-color)}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude]:before{content:"\e8cd"}.e-site-editor-conditions__input-wrapper--condition-type[data-elementor-condition-type=exclude] select{background-color:var(--e-site-editor-input-wrapper-condition-exclude-background-color)}.select2-search__field{background-color:transparent;color:var(--e-site-editor-input-select2-search-field-color)}.eps-back-button{font-size:14px;margin-bottom:1.5rem}.eps-back-button .eps-icon{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}:root{--indicator-bullet-border-color:#fff}.eps-theme-dark{--indicator-bullet-border-color:#4c4f56}.eps-indicator-bullet{display:block;-ms-flex-negative:0;flex-shrink:0;width:.75rem;height:.75rem;-webkit-box-shadow:0 2px 3px 1px var(--color-box-shadow-color);box-shadow:0 2px 3px 1px var(--color-box-shadow-color);background-color:#d5dadf;border:2px solid var(--indicator-bullet-border-color);border-radius:100%;-webkit-margin-end:.625rem;margin-inline-end:.625rem}.eps-indicator-bullet--active{background-color:#39b54a}.site-editor__preview-iframe{height:50vh;position:relative}.site-editor__preview-iframe__iframe{top:0;left:0;position:absolute;border:none;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;height:100%}.site-editor__preview-iframe--footer,.site-editor__preview-iframe--header{height:15vh}.e-site-editor__content_container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.e-site-editor__content_container_main{-webkit-box-flex:1;-ms-flex:1;flex:1}.e-site-editor__content_container_secondary{margin:0 auto;padding-top:2.75rem}PK!cQtll+assets/css/widget-table-of-contents.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-widget-table-of-contents .elementor-toc__header-title{color:var(--header-color)}.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse,.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand{display:none}.elementor-widget-table-of-contents .elementor-widget-container{min-height:var(--box-min-height);border:var(--box-border-width,1px) solid var(--box-border-color,#a4afb7);border-radius:var(--box-border-radius,3px);background-color:var(--box-background-color);-webkit-transition:min-height .4s;-o-transition:min-height .4s;transition:min-height .4s;overflow:hidden}.elementor-toc__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:var(--box-padding,20px);background-color:var(--header-background-color);border-bottom:var(--separator-width,1px) solid var(--box-border-color,#a4afb7)}.elementor-toc__header-title{font-size:18px;margin:0;color:var(--header-color)}.elementor-toc__toggle-button{cursor:pointer;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-toc__toggle-button i{color:var(--toggle-button-color)}.elementor-toc__toggle-button svg{height:1em;width:1em;fill:var(--toggle-button-color)}.elementor-toc__spinner-container{text-align:center}.elementor-toc__spinner{font-size:2em}.elementor-toc__spinner.e-font-icon-svg{height:1em;width:1em}.elementor-toc__body{padding:var(--box-padding,20px);max-height:var(--toc-body-max-height);overflow-y:auto}.elementor-toc__body::-webkit-scrollbar{width:7px}.elementor-toc__body::-webkit-scrollbar-thumb{background-color:#c2cbd2;border-radius:10px}.elementor-toc__list-wrapper{list-style:none;padding:0}.elementor-toc__list-item{margin-bottom:.5em}.elementor-toc__list-item.elementor-item-active{font-weight:700}.elementor-toc__list-item .elementor-toc__list-wrapper{margin-top:.5em;margin-left:var(--nested-list-indent,1em)}.elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}.elementor-toc__list-item-text-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-toc__list-item-text-wrapper:before,.elementor-toc__list-item-text-wrapper i{margin-right:8px;color:var(--marker-color)}.elementor-toc__list-item-text-wrapper svg{margin-right:8px;fill:var(--marker-color);height:var(--marker-size,.5em);width:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper i{font-size:var(--marker-size,.5em)}.elementor-toc__list-item-text-wrapper:before{font-size:var(--marker-size,1em)}.elementor-toc--content-ellipsis .elementor-toc__list-item-text{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.elementor-toc__list-items--collapsible>.elementor-toc__list-wrapper>.elementor-toc__list-item>.elementor-toc__list-wrapper{display:none}.elementor-toc__heading-anchor{position:absolute}.elementor-toc__body .elementor-toc__list-item-text{color:var(--item-text-color);-webkit-text-decoration:var(--item-text-decoration);text-decoration:var(--item-text-decoration)}.elementor-toc__body .elementor-toc__list-item-text:hover{color:var(--item-text-hover-color);-webkit-text-decoration:var(--item-text-hover-decoration);text-decoration:var(--item-text-hover-decoration)}.elementor-toc__body .elementor-toc__list-item-text.elementor-item-active{color:var(--item-text-active-color);-webkit-text-decoration:var(--item-text-active-decoration);text-decoration:var(--item-text-active-decoration)}ol.elementor-toc__list-wrapper{counter-reset:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item{counter-increment:item}ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before{content:counters(item,".") ". "}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-tablet_extra .elementor-toc__body{display:none}}@media only screen and (max-width:1024px){.elementor-toc--minimized-on-tablet .elementor-toc__body{display:none}}@media only screen and (max-width:-1px){.elementor-toc--minimized-on-mobile_extra .elementor-toc__body{display:none}}@media only screen and (max-width:767px){.elementor-toc--minimized-on-mobile .elementor-toc__body{display:none}}PK!_#�!!!assets/css/widget-hotspot.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@-webkit-keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes e-hotspot-soft-beat{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.1);transform:scale(1.1)}}@-webkit-keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}@keyframes e-hotspot-expand{0%{-webkit-transform:scale(.5);transform:scale(.5);opacity:1}to{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}}.elementor-widget-hotspot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--background-align);-ms-flex-pack:var(--background-align);justify-content:var(--background-align)}.elementor-widget-hotspot .elementor-widget-container{position:relative;display:inline-block;width:var(--container-width);max-width:var(--container-max-width);height:var(--container-height)}.elementor-widget-hotspot .elementor-widget-container>img{display:block;width:var(--image-width,auto);height:var(--container-height);opacity:var(--opacity,1)}.e-hotspot{z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.e-hotspot--position-left.e-hotspot--position-top{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)));transform:translate(calc(-1 * var(--hotspot-translate-x)),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-left.e-hotspot--position-bottom{-webkit-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));-ms-transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y));transform:translate(calc(-1 * var(--hotspot-translate-x)),var(--hotspot-translate-y))}.e-hotspot--position-right.e-hotspot--position-top{-webkit-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));-ms-transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)));transform:translate(var(--hotspot-translate-x),calc(-1 * var(--hotspot-translate-y)))}.e-hotspot--position-right.e-hotspot--position-bottom{-webkit-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));-ms-transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y));transform:translate(var(--hotspot-translate-x),var(--hotspot-translate-y))}.e-hotspot--active{z-index:2}.e-hotspot__inner-circle,.e-hotspot__outer-circle{content:"";display:inline-block;-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:50%}.e-hotspot__inner-circle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:var(--hotspot-color);padding:calc(var(--hotspot-size, 18px) / 2)}.e-hotspot__outer-circle{background-color:var(--hotspot-color);padding:var(--hotspot-padding,4px)}.e-hotspot--icon .e-hotspot__button,.e-hotspot__outer-circle{width:var(--hotspot-size,18px);height:var(--hotspot-size,18px)}.e-hotspot--icon .e-hotspot__button{line-height:0;-webkit-box-sizing:content-box;box-sizing:content-box;font-size:var(--hotspot-size,18px)}.e-hotspot__icon,.e-hotspot__label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.e-hotspot__icon svg,.e-hotspot__label svg{width:var(--hotspot-size,18px);height:auto}.e-hotspot__button{cursor:pointer;position:relative;display:grid;grid-auto-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:var(--hotspot-color);font-size:var(--hotspot-size,18px);min-width:var(--hotspot-button-width);min-height:var(--hotspot-button-height)}.e-hotspot__button:before{z-index:-2;content:"";width:100%;height:100%;left:-5px;top:-5px;position:absolute;padding:5px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-hotspot__button svg{fill:var(--hotspot-color)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button{min-width:var(--hotspot-min-width);min-height:var(--hotspot-min-height);background-color:var(--hotspot-box-color);padding:var(--hotspot-padding,4px);border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before{border-radius:var(--hotspot-border-radius,3px)}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{background-color:var(--hotspot-box-color)}.e-hotspot--overlay{opacity:.7;-webkit-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.e-hotspot--active .e-hotspot--overlay,.e-hotspot--overlay:hover{opacity:1}.e-hotspot--soft-beat{-webkit-animation:e-hotspot-soft-beat .7s infinite alternate;animation:e-hotspot-soft-beat .7s infinite alternate;-webkit-animation-timing-function:ease;animation-timing-function:ease}.e-hotspot--expand .e-hotspot__outer-circle,.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{-webkit-animation:e-hotspot-expand 2s infinite;animation:e-hotspot-expand 2s infinite}.e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand:before{content:"";width:100%;height:100%;position:absolute;z-index:-1;opacity:0}.e-hotspot--sequenced{-webkit-animation:fadeIn .3s;animation:fadeIn .3s;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-fill-mode:both;animation-fill-mode:both}.e-hotspot__direction-mask{overflow:hidden;position:absolute;pointer-events:none}.e-hotspot__tooltip{white-space:var(--white-space,nowrap);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;-o-transition-property:transform,opacity;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-transition-duration:var(--tooltip-transition-duration,.5s);-o-transition-duration:var(--tooltip-transition-duration,.5s);transition-duration:var(--tooltip-transition-duration,.5s);-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;position:absolute;pointer-events:none;color:var(--tooltip-text-color,#fff);text-align:var(--tooltip-align);min-width:var(--tooltip-min-width);padding:var(--tooltip-padding,8px);border-radius:var(--tooltip-border-radius);background-color:var(--tooltip-color)}.e-hotspot__tooltip p:last-of-type{margin-bottom:0}.e-hotspot__direction-mask .e-hotspot__tooltip{-webkit-box-shadow:none!important;box-shadow:none!important;position:static}.e-hotspot--active .e-hotspot__tooltip{pointer-events:visible}.e-hotspot--fade-in-out{opacity:0}.e-hotspot--active .e-hotspot--fade-in-out{opacity:1}.e-hotspot--fade-grow{opacity:0;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.e-hotspot--active .e-hotspot--fade-grow{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e-hotspot--override-tooltip-animation-from-top,.e-hotspot--tooltip-animation-from-top{-webkit-transform:translateY(calc(-100% - 1px));-ms-transform:translateY(calc(-100% - 1px));transform:translateY(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-left,.e-hotspot--tooltip-animation-from-left{-webkit-transform:translate(calc(-100% - 1px));-ms-transform:translate(calc(-100% - 1px));transform:translate(calc(-100% - 1px))}.e-hotspot--override-tooltip-animation-from-right,.e-hotspot--tooltip-animation-from-right{-webkit-transform:translate(calc(100% + 1px));-ms-transform:translate(calc(100% + 1px));transform:translate(calc(100% + 1px))}.e-hotspot--override-tooltip-animation-from-bottom,.e-hotspot--tooltip-animation-from-bottom{-webkit-transform:translateY(calc(100% + 1px));-ms-transform:translateY(calc(100% + 1px));transform:translateY(calc(100% + 1px))}.e-hotspot--fade-direction{opacity:0}.e-hotspot--active .e-hotspot--fade-direction,.e-hotspot--active .e-hotspot--slide-direction{-webkit-transform:translate(0) scale(1);-ms-transform:translate(0) scale(1);transform:translate(0) scale(1);opacity:1}.e-hotspot--show-tooltip{-webkit-transition:none;-o-transition:none;transition:none;opacity:1;pointer-events:visible;-webkit-transform:translate(0);-ms-transform:translate(0);transform:translate(0)}PK!0rF�q�q"assets/css/widget-nav-menu.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.site-main .menu-navigation-container{overflow:visible}.elementor-item:after,.elementor-item:before{display:block;position:absolute;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transition-timing-function:cubic-bezier(.58,.3,.005,1);-o-transition-timing-function:cubic-bezier(.58,.3,.005,1);transition-timing-function:cubic-bezier(.58,.3,.005,1)}.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{opacity:0}.elementor-item-active:after,.elementor-item-active:before,.elementor-item.highlighted:after,.elementor-item.highlighted:before,.elementor-item:focus:after,.elementor-item:focus:before,.elementor-item:hover:after,.elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.e--pointer-double-line .elementor-item:after,.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:after,.e--pointer-overline .elementor-item:before,.e--pointer-underline .elementor-item:after,.e--pointer-underline .elementor-item:before{height:3px;width:100%;left:0;background-color:#55595c;z-index:2}.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{height:0;width:0;left:50%}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:10px}.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:-10px}.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{bottom:-10px}.e--pointer-double-line.e--animation-none,.e--pointer-double-line.e--animation-none .elementor-item,.e--pointer-double-line.e--animation-none .elementor-item:after,.e--pointer-double-line.e--animation-none .elementor-item:before,.e--pointer-double-line.e--animation-none .elementor-item:focus,.e--pointer-double-line.e--animation-none .elementor-item:hover,.e--pointer-double-line.e--animation-none:after,.e--pointer-double-line.e--animation-none:before,.e--pointer-double-line.e--animation-none:focus,.e--pointer-double-line.e--animation-none:hover,.e--pointer-overline.e--animation-none,.e--pointer-overline.e--animation-none .elementor-item,.e--pointer-overline.e--animation-none .elementor-item:after,.e--pointer-overline.e--animation-none .elementor-item:before,.e--pointer-overline.e--animation-none .elementor-item:focus,.e--pointer-overline.e--animation-none .elementor-item:hover,.e--pointer-overline.e--animation-none:after,.e--pointer-overline.e--animation-none:before,.e--pointer-overline.e--animation-none:focus,.e--pointer-overline.e--animation-none:hover,.e--pointer-underline.e--animation-none,.e--pointer-underline.e--animation-none .elementor-item,.e--pointer-underline.e--animation-none .elementor-item:after,.e--pointer-underline.e--animation-none .elementor-item:before,.e--pointer-underline.e--animation-none .elementor-item:focus,.e--pointer-underline.e--animation-none .elementor-item:hover,.e--pointer-underline.e--animation-none:after,.e--pointer-underline.e--animation-none:before,.e--pointer-underline.e--animation-none:focus,.e--pointer-underline.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-double-line .elementor-item:before,.e--pointer-overline .elementor-item:before{content:"";top:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before,.e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{width:10px;left:-20px}.e--pointer-double-line .elementor-item:after,.e--pointer-underline .elementor-item:after{content:"";bottom:0}.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after,.e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after{width:10px;inset-inline-start:100%}.e--pointer-framed .elementor-item:after,.e--pointer-framed .elementor-item:before{background:transparent;left:0;top:0;bottom:0;right:0;border:3px solid #55595c}.e--pointer-framed .elementor-item:before{content:""}.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.25);-ms-transform:scale(1.25);transform:scale(1.25)}.e--pointer-framed.e--animation-grow .elementor-item:before,.e--pointer-framed.e--animation-shrink .elementor-item:before{-webkit-transition:opacity .2s,-webkit-transform .4s;transition:opacity .2s,-webkit-transform .4s;-o-transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s;transition:opacity .2s,transform .4s,-webkit-transform .4s}.e--pointer-framed.e--animation-draw .elementor-item:after,.e--pointer-framed.e--animation-draw .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-draw .elementor-item:before{border-width:0 0 3px 3px;-webkit-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;-o-transition:width .1s .2s,height .1s .3s,opacity .12s .22s;transition:width .1s .2s,height .1s .3s,opacity .12s .22s}.e--pointer-framed.e--animation-draw .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:3px 3px 0 0;-webkit-transition:width .1s,height .1s .1s,opacity .02s .18s;-o-transition:width .1s,height .1s .1s,opacity .02s .18s;transition:width .1s,height .1s .1s,opacity .02s .18s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{width:100%;height:100%}.e--pointer-framed.e--animation-draw .elementor-item-active:before,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,.e--pointer-framed.e--animation-draw .elementor-item:focus:before,.e--pointer-framed.e--animation-draw .elementor-item:hover:before{-webkit-transition:opacity .02s,height .1s,width .1s .1s;-o-transition:opacity .02s,height .1s,width .1s .1s;transition:opacity .02s,height .1s,width .1s .1s}.e--pointer-framed.e--animation-draw .elementor-item-active:after,.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,.e--pointer-framed.e--animation-draw .elementor-item:focus:after,.e--pointer-framed.e--animation-draw .elementor-item:hover:after{-webkit-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;-o-transition:opacity .02s .2s,height .1s .2s,width .1s .3s;transition:opacity .02s .2s,height .1s .2s,width .1s .3s}.e--pointer-framed.e--animation-corners .elementor-item:after,.e--pointer-framed.e--animation-corners .elementor-item:before{width:3px;height:3px}.e--pointer-framed.e--animation-corners .elementor-item:before{border-width:3px 0 0 3px}.e--pointer-framed.e--animation-corners .elementor-item:after{content:"";top:auto;bottom:0;left:auto;right:0;border-width:0 3px 3px 0}.e--pointer-framed.e--animation-corners .elementor-item-active:after,.e--pointer-framed.e--animation-corners .elementor-item-active:before,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,.e--pointer-framed.e--animation-corners .elementor-item:focus:after,.e--pointer-framed.e--animation-corners .elementor-item:focus:before,.e--pointer-framed.e--animation-corners .elementor-item:hover:after,.e--pointer-framed.e--animation-corners .elementor-item:hover:before{width:100%;height:100%;-webkit-transition:opacity 2ms,width .4s,height .4s;-o-transition:opacity 2ms,width .4s,height .4s;transition:opacity 2ms,width .4s,height .4s}.e--pointer-framed.e--animation-none,.e--pointer-framed.e--animation-none .elementor-item,.e--pointer-framed.e--animation-none .elementor-item:after,.e--pointer-framed.e--animation-none .elementor-item:before,.e--pointer-framed.e--animation-none .elementor-item:focus,.e--pointer-framed.e--animation-none .elementor-item:hover,.e--pointer-framed.e--animation-none:after,.e--pointer-framed.e--animation-none:before,.e--pointer-framed.e--animation-none:focus,.e--pointer-framed.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-background .elementor-item:after,.e--pointer-background .elementor-item:before{content:"";-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background .elementor-item:before{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background .elementor-item-active,.e--pointer-background .elementor-item.highlighted,.e--pointer-background .elementor-item:focus,.e--pointer-background .elementor-item:hover{color:#fff}.e--pointer-background.e--animation-grow .elementor-item:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}.e--pointer-background.e--animation-grow .elementor-item-active:before,.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,.e--pointer-background.e--animation-grow .elementor-item:focus:before,.e--pointer-background.e--animation-grow .elementor-item:hover:before{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.e--pointer-background.e--animation-shrink .elementor-item-active:before,.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,.e--pointer-background.e--animation-shrink .elementor-item:focus:before,.e--pointer-background.e--animation-shrink .elementor-item:hover:before{-webkit-transition:opacity .15s,-webkit-transform .4s;transition:opacity .15s,-webkit-transform .4s;-o-transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s;transition:opacity .15s,transform .4s,-webkit-transform .4s}.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{left:100%}.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:100%}.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{top:100%}.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:100%}.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{bottom:50%;top:50%}.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before{right:50%;left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:0;left:0;right:0;bottom:0;background:#55595c;z-index:-1}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before{top:0;bottom:100%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after{top:100%;bottom:0}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before{bottom:50%}.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after{top:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before{right:0;left:100%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after{right:100%;left:0}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before{left:50%}.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after{right:50%}.e--pointer-background.e--animation-none,.e--pointer-background.e--animation-none .elementor-item,.e--pointer-background.e--animation-none .elementor-item:after,.e--pointer-background.e--animation-none .elementor-item:before,.e--pointer-background.e--animation-none .elementor-item:focus,.e--pointer-background.e--animation-none .elementor-item:hover,.e--pointer-background.e--animation-none:after,.e--pointer-background.e--animation-none:before,.e--pointer-background.e--animation-none:focus,.e--pointer-background.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.e--pointer-text.e--animation-skew .elementor-item:focus,.e--pointer-text.e--animation-skew .elementor-item:hover{-webkit-transform:skew(-8deg);-ms-transform:skew(-8deg);transform:skew(-8deg)}.e--pointer-text.e--animation-grow .elementor-item:focus,.e--pointer-text.e--animation-grow .elementor-item:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);transform:scale(1.2)}.e--pointer-text.e--animation-shrink .elementor-item:focus,.e--pointer-text.e--animation-shrink .elementor-item:hover{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}.e--pointer-text.e--animation-float .elementor-item:focus,.e--pointer-text.e--animation-float .elementor-item:hover{-webkit-transform:translateY(-8px);-ms-transform:translateY(-8px);transform:translateY(-8px)}.e--pointer-text.e--animation-sink .elementor-item:focus,.e--pointer-text.e--animation-sink .elementor-item:hover{-webkit-transform:translateY(8px);-ms-transform:translateY(8px);transform:translateY(8px)}.e--pointer-text.e--animation-rotate .elementor-item:focus,.e--pointer-text.e--animation-rotate .elementor-item:hover{-webkit-transform:rotate(6deg);-ms-transform:rotate(6deg);transform:rotate(6deg)}.e--pointer-text.e--animation-none,.e--pointer-text.e--animation-none .elementor-item,.e--pointer-text.e--animation-none .elementor-item:after,.e--pointer-text.e--animation-none .elementor-item:before,.e--pointer-text.e--animation-none .elementor-item:focus,.e--pointer-text.e--animation-none .elementor-item:hover,.e--pointer-text.e--animation-none:after,.e--pointer-text.e--animation-none:before,.e--pointer-text.e--animation-none:focus,.e--pointer-text.e--animation-none:hover{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.elementor-nav-menu--main .elementor-nav-menu a{-webkit-transition:.4s;-o-transition:.4s;transition:.4s}.elementor-nav-menu--main .elementor-nav-menu a,.elementor-nav-menu--main .elementor-nav-menu a.highlighted,.elementor-nav-menu--main .elementor-nav-menu a:focus,.elementor-nav-menu--main .elementor-nav-menu a:hover{padding:13px 20px}.elementor-nav-menu--main .elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu--main .elementor-nav-menu a.disabled{background:#55595c;color:#a1a6a9}.elementor-nav-menu--main .elementor-nav-menu ul{position:absolute;width:12em;border-width:0;border-style:solid;padding:0}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:20px}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow,.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow{position:absolute;top:-2px;left:50%;margin-left:-8px;width:0;height:0;overflow:hidden;border:8px dashed transparent;border-bottom:8px solid #494c4f}.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow{top:6px;border-style:solid dashed dashed;border-color:#494c4f transparent transparent}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu--layout-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-nav-menu--layout-horizontal .elementor-nav-menu a{white-space:nowrap;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li ul{top:100%!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>a{-webkit-margin-start:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-start:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-down,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>.scroll-up,.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:first-child)>ul{left:var(--e-nav-menu-horizontal-menu-item-margin)!important}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child)>a{-webkit-margin-end:var(--e-nav-menu-horizontal-menu-item-margin);margin-inline-end:var(--e-nav-menu-horizontal-menu-item-margin)}.elementor-nav-menu--layout-horizontal .elementor-nav-menu>li:not(:last-child):after{content:var(--e-nav-menu-divider-content,none);height:var(--e-nav-menu-divider-height,35%);border-left:var(--e-nav-menu-divider-width,2px) var(--e-nav-menu-divider-style,solid) var(--e-nav-menu-divider-color,#000);border-bottom-color:var(--e-nav-menu-divider-color,#000);border-right-color:var(--e-nav-menu-divider-color,#000);border-top-color:var(--e-nav-menu-divider-color,#000);-ms-flex-item-align:center;align-self:center}.elementor-nav-menu__align-right .elementor-nav-menu{margin-left:auto}.elementor-nav-menu__align-right .elementor-nav-menu,.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-nav-menu__align-left .elementor-nav-menu{margin-right:auto}.elementor-nav-menu__align-left .elementor-nav-menu,.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-nav-menu__align-center .elementor-nav-menu{margin-left:auto;margin-right:auto}.elementor-nav-menu__align-center .elementor-nav-menu,.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical>ul>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu{width:100%}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu>li>a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle{display:none}.elementor-widget-nav-menu .elementor-widget-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-nav-menu{position:relative;z-index:2}.elementor-nav-menu:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.elementor-nav-menu,.elementor-nav-menu li,.elementor-nav-menu ul{display:block;list-style:none;margin:0;padding:0;line-height:normal;-webkit-tap-highlight-color:rgba(0,0,0,0)}.elementor-nav-menu ul{display:none}.elementor-nav-menu ul ul a,.elementor-nav-menu ul ul a:active,.elementor-nav-menu ul ul a:focus,.elementor-nav-menu ul ul a:hover{border-left:16px solid transparent}.elementor-nav-menu ul ul ul a,.elementor-nav-menu ul ul ul a:active,.elementor-nav-menu ul ul ul a:focus,.elementor-nav-menu ul ul ul a:hover{border-left:24px solid transparent}.elementor-nav-menu ul ul ul ul a,.elementor-nav-menu ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul a:hover{border-left:32px solid transparent}.elementor-nav-menu ul ul ul ul ul a,.elementor-nav-menu ul ul ul ul ul a:active,.elementor-nav-menu ul ul ul ul ul a:focus,.elementor-nav-menu ul ul ul ul ul a:hover{border-left:40px solid transparent}.elementor-nav-menu a,.elementor-nav-menu li{position:relative}.elementor-nav-menu li{border-width:0}.elementor-nav-menu a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu a,.elementor-nav-menu a:focus,.elementor-nav-menu a:hover{padding:10px 20px;line-height:20px}.elementor-nav-menu a.current{background:#373a3c;color:#fff}.elementor-nav-menu a.disabled{cursor:not-allowed;color:#a1a6a9}.elementor-nav-menu .e-plus-icon:before{content:"+"}.elementor-nav-menu .sub-arrow{line-height:1;padding:10px 0 10px 10px;margin-top:-10px;margin-bottom:-10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-nav-menu .sub-arrow i{pointer-events:none}.elementor-nav-menu .sub-arrow .fa.fa-chevron-down,.elementor-nav-menu .sub-arrow .fas.fa-chevron-down{font-size:.7em}.elementor-nav-menu .sub-arrow .e-font-icon-svg{height:1em;width:1em}.elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down{height:.7em;width:.7em}.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,.elementor-nav-menu--dropdown .elementor-item.highlighted,.elementor-nav-menu--dropdown .elementor-item:focus,.elementor-nav-menu--dropdown .elementor-item:hover,.elementor-sub-item.elementor-item-active,.elementor-sub-item.highlighted,.elementor-sub-item:focus,.elementor-sub-item:hover{background-color:#55595c;color:#fff}.elementor-menu-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:22px;padding:.25em;cursor:pointer;border:0 solid;border-radius:3px;background-color:rgba(0,0,0,.05);color:#494c4f}.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open,.elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close{display:none}.elementor-menu-toggle .e-font-icon-svg{fill:#494c4f;height:1em;width:1em}.elementor-nav-menu--dropdown{background-color:#fff;font-size:13px}.elementor-nav-menu--dropdown-none .elementor-menu-toggle,.elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown{display:none}.elementor-nav-menu--dropdown.elementor-nav-menu__container{margin-top:10px;-webkit-transition:max-height .3s,-webkit-transform .3s;transition:max-height .3s,-webkit-transform .3s;-o-transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s;transition:max-height .3s,transform .3s,-webkit-transform .3s;-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;overflow:auto}.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item{font-size:.85em}.elementor-nav-menu--dropdown a{color:#494c4f}.elementor-nav-menu--dropdown a.current{background:#373a3c;color:#fff}.elementor-nav-menu--dropdown a.disabled{color:#b3b3b3}ul.elementor-nav-menu--dropdown a,ul.elementor-nav-menu--dropdown a:focus,ul.elementor-nav-menu--dropdown a:hover{text-shadow:none;border-left:8px solid transparent}.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active)+.elementor-nav-menu__container{-webkit-transform:scaleY(0);-ms-transform:scaleY(0);transform:scaleY(0);max-height:0}.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active+.elementor-nav-menu__container{-webkit-transform:scaleY(1);-ms-transform:scaleY(1);transform:scaleY(1);max-height:100vh}.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown{position:absolute;z-index:9997}@media (max-width:767px){.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main{display:none}}@media (min-width:768px){.elementor-nav-menu--dropdown-mobile .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown{display:none}}@media (min-width:1025px){.elementor-nav-menu--dropdown-tablet .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown{display:none}}@media (max-width:1024px){.elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main{display:none}}@media (max-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main{display:none}}@media (min-width:-1px){.elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle,.elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown{display:none}}PK!�i�0�&�&"assets/css/widget-flip-box.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-flip-box{height:280px;position:relative;-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@media (max-device-width:1024px){.elementor-flip-box{cursor:pointer}}.elementor-flip-box__front{background-color:#1abc9c}.elementor-flip-box__back{background-color:#4054b2;display:block}.elementor-flip-box__layer{position:absolute;width:100%;height:100%;-webkit-transition:all .6s ease-in-out;-o-transition:all .6s ease-in-out;transition:all .6s ease-in-out}.elementor-flip-box__layer__overlay{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;text-align:center;padding:35px;color:#fff}.elementor-flip-box__layer__title{font-size:21px}.elementor-flip-box__layer__description{font-size:14px}.elementor-flip-box__layer__description:not(:last-child),.elementor-flip-box__layer__title:not(:last-child){margin:0 0 20px;padding:0}.elementor-flip-box__layer__title{line-height:1;font-weight:600}.elementor-flip-box,.elementor-flip-box .elementor-view-framed,.elementor-flip-box .elementor-view-stacked{--e-flip-box-view-framed-stacked-icon-color:#fff}.elementor-flip-box .elementor-icon,.elementor-flip-box .elementor-view-framed .elementor-icon,.elementor-flip-box .elementor-view-stacked .elementor-icon{color:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-icon svg,.elementor-flip-box .elementor-view-framed .elementor-icon svg,.elementor-flip-box .elementor-view-stacked .elementor-icon svg{fill:var(--e-flip-box-view-framed-stacked-icon-color)}.elementor-flip-box .elementor-view-framed .elementor-icon{border-color:#fff}.elementor-flip-box .elementor-view-stacked .elementor-icon{background-color:rgba(0,0,0,.5)}.elementor-flip-box__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-flip-box__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-flip-box__image{margin:0 0 20px;display:inline-block;width:100%}.elementor-flip-box__image img{width:50%}.elementor-flip-box .elementor-icon-wrapper{margin-bottom:20px}.elementor-flip-box--3d .elementor-flip-box__layer__inner{-webkit-transform:translateZ(90px) scale(.91);transform:translateZ(90px) scale(.91)}.elementor-flip-box--3d .elementor-flip-box__layer__overlay{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:translateZ(.1px);transform:translateZ(.1px)}.elementor-flip-box--effect-flip .elementor-flip-box{-webkit-perspective:1000px;perspective:1000px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.elementor-flip-box--effect-flip .elementor-flip-box__layer{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden}.elementor-flip-box--effect-flip .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none;z-index:1}.elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(180deg);transform:rotateX(0) rotateY(180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(0) rotateY(-180deg);transform:rotateX(0) rotateY(-180deg)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(180deg) rotateY(0);transform:rotateX(180deg) rotateY(0)}.elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:rotateX(-180deg) rotateY(0);transform:rotateX(-180deg) rotateY(0)}.elementor-flip-box--effect-push .elementor-flip-box__front{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push .elementor-flip-box,.elementor-flip-box--effect-slide .elementor-flip-box{overflow:hidden}.elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back,.elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none}.elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back{-webkit-transform:translateX(-100%) translateY(0);-ms-transform:translateX(-100%) translateY(0);transform:translateX(-100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back{-webkit-transform:translateX(100%) translateY(0);-ms-transform:translateX(100%) translateY(0);transform:translateX(100%) translateY(0)}.elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(100%);-ms-transform:translateX(0) translateY(100%);transform:translateX(0) translateY(100%)}.elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back,.elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back{-webkit-transform:translateX(0) translateY(-100%);-ms-transform:translateX(0) translateY(-100%);transform:translateX(0) translateY(-100%)}.elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front{-webkit-transition:opacity .35s,width .1ms,-webkit-transform .7s;transition:opacity .35s,width .1ms,-webkit-transform .7s;-o-transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms;transition:transform .7s,opacity .35s,width .1ms,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);z-index:1;width:100%}.elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front{width:0;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);-webkit-transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;transition:opacity .7s .1s,width .1ms .7s,-webkit-transform .8s;-o-transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s;transition:transform .8s,opacity .7s .1s,width .1ms .7s,-webkit-transform .8s}.elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back{-webkit-transition:opacity .5s .2s,-webkit-transform .7s;transition:opacity .5s .2s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s;transition:transform .7s,opacity .5s .2s,-webkit-transform .7s;opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}.elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back{-webkit-transition:opacity .5s,-webkit-transform .7s;transition:opacity .5s,-webkit-transform .7s;-o-transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s;transition:transform .7s,opacity .5s,-webkit-transform .7s;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back{opacity:0}.elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back{opacity:1}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front{display:none}.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back{-webkit-transform:none;-ms-transform:none;transform:none;opacity:1}PK!��3
_
_ assets/css/frontend-lite-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    -webkit-transform: scale(0.85);
        -ms-transform: scale(0.85);
            transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    -webkit-transform: translateY(600px);
        -ms-transform: translateY(600px);
            transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    -webkit-transform: translateX(30px);
        -ms-transform: translateX(30px);
            transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    -webkit-transform: translateX(-30px);
        -ms-transform: translateX(-30px);
            transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
            transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1.17);
        -ms-transform: scale(1.17);
            transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    -webkit-transform: translateY(500px);
        -ms-transform: translateY(500px);
            transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    -webkit-transform: scale(1.2) translate(var(--translate));
        -ms-transform: scale(1.2) translate(var(--translate));
            transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: -webkit-gradient(linear, left bottom, left top, from(#feb416), to(#fec449));
  background-image: -webkit-linear-gradient(bottom, #feb416, #fec449);
  background-image: -o-linear-gradient(bottom, #feb416, #fec449);
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-left: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-right: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-left: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  -ms-flex-preferred-size: auto;
      flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%; }

@media (max-width: 1024px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

@media (max-width: 767px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-left: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-left: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    left: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-right: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: 1025px) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: 1024px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, right); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-left: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  left: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s;
  transition: background-color 0.4s, -webkit-transform 0s;
  -o-transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s, -webkit-transform 0s;
  text-align: right; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, 0);
  right: var(--side-cart-alignment-right, auto);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  top: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, right); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  -o-transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: var(--side-cart-alignment-transform, translateX(-100%));
      -ms-transform: var(--side-cart-alignment-transform, translateX(-100%));
          transform: var(--side-cart-alignment-transform, translateX(-100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  -ms-flex-item-align: end;
      align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: -webkit-max-content auto;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      -webkit-margin-start: 5px;
              margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    -ms-flex-item-align: var(--price-quantity-position--align-self, end);
        align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-right: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    left: 0;
    bottom: 20px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-left: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: 767px) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    -webkit-transform: translateY(50%);
        -ms-transform: translateY(50%);
            transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      right: 0;
      left: auto;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: background-color 0.4s, -webkit-transform 0s;
      transition: background-color 0.4s, -webkit-transform 0s;
      -o-transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s, -webkit-transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    -o-transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    -webkit-transform: translateY(-10px);
        -ms-transform: translateY(-10px);
            transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      -webkit-box-flex: 75%;
          -ms-flex: 75%;
              flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      -webkit-box-flex: 20%;
          -ms-flex: 20%;
              flex: 20%;
      text-align: left; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: right;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, right); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-right: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                  transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-left: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, right); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-right: 15px;
            font-size: 12px; }
            @media (max-width: 1024px) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        -webkit-box-align: var(--place-order-title-alignment, stretch);
            -ms-flex-align: var(--place-order-title-alignment, stretch);
                align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: left; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: right; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-right: 1rem;
        padding-left: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                  transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: right; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, right); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: right;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: var(--place-order-title-alignment, stretch);
          -ms-flex-align: var(--place-order-title-alignment, stretch);
              align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-left: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: left;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        -webkit-box-flex: 2;
            -ms-flex: 2;
                flex: 2;
        padding-left: 30px; }
        @media (max-width: 1024px) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-left: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-left: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: right;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-left: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-right: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: 768px) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-right: 0;
          padding-left: 0; }
      @media (min-width: 767px) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: 768px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-right: 0;
        padding-left: 0; } }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-right: 0;
          padding-left: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-right: 0;
      padding-left: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-right: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
         -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
            transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: right;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      -webkit-padding-start: 0;
              padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: left;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-right: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-right: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-right: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
              transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: right;
    position: absolute;
    margin-right: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    -webkit-margin-start: 0;
            margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
              transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: var(--tabs-container-justify-content, space-between);
        -ms-flex-pack: var(--tabs-container-justify-content, space-between);
            justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: 767px) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-right: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-left: 0;
        border-right-width: 0; }
      @media (max-width: 767px) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0; }

.e-sticky-right-column--active {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      -webkit-transform: translateY(-5%);
          -ms-transform: translateY(-5%);
              transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: left; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: left; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: left; }

.elementor-search-form {
  display: block;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    color: #55595c;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    -webkit-transition: color 0.2s, background 0.2s;
    -o-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    -ms-flex-negative: 0;
        flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      -webkit-transform: scale(0);
          -ms-transform: scale(0);
              transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-author-box__avatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-left: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      -o-object-fit: cover;
         object-fit: cover; }
  .elementor-author-box__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  -ms-flex-item-align: center;
      align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: none;
  background-color: transparent;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    left: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
       -o-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
          transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  -webkit-transition-duration: 1s;
       -o-transition-duration: 1s;
          transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
      -ms-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
          transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover; }

.elementor-motion-effects-perspective {
  -webkit-perspective: 1200px;
          perspective: 1200px; }
/*# sourceMappingURL=frontend-lite-rtl.css.map */PK!��0�iiassets/css/preview-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-document-handle{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;z-index:100;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);background-color:#fcb92c;padding:5px 10px;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:11px;color:#fff;border-radius:0 0 3px 3px;cursor:pointer}.elementor-document-handle:after,.elementor-document-handle:before{content:"";position:absolute;border:solid transparent}.elementor-document-handle:before{right:calc(100% - 1px);border-right-color:#fcb92c;border-width:0 14px 23px 0}.elementor-document-handle:after{left:calc(100% - 1px);border-left-color:#fcb92c;border-width:0 0 23px 14px}.elementor-document-handle .eicon-edit{margin-left:5px}.elementor-editor-active .elementor{position:relative}.elementor-editor-active .elementor:not(.elementor-edit-mode):hover{-webkit-box-shadow:0 0 0 1px #fcb92c;box-shadow:0 0 0 1px #fcb92c}.elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:normal}.elementor-editor-active .elementor.loading{opacity:.5}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle{-webkit-transform:translateX(-50%) translateY(-100%);-ms-transform:translateX(-50%) translateY(-100%);transform:translateX(-50%) translateY(-100%);border-radius:3px 3px 0 0}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle:before{border-width:23px 14px 0 0}.elementor-editor-active .elementor[data-elementor-type=single]>.elementor-document-handle:after{border-width:23px 0 0 14px}.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty)+#elementor-add-new-section{display:none}PK!��.����)assets/css/widget-woocommerce-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;width:100%;padding:0}body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images,body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images{float:none;padding:0}.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form){margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .quantity .qty{vertical-align:top;margin-left:0}.woocommerce div.product.elementor .quantity+.button{margin-right:10px}.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input{height:100%}.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}@media (max-width:1024px){.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-width:767px){.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form){-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:0}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:auto;flex-basis:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity{margin-left:auto}.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button,.woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button{-ms-flex-preferred-size:100%;flex-basis:100%}}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button{background-color:#5bc0de}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button{background-color:#5cb85c}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button{background-color:#f0ad4e}.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button{background-color:#d9534f}.elementor-widget-wc-add-to-cart .quantity{display:inline-block}.elementor-widget-wc-add-to-cart.elementor-align-center form.cart{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-widget-wc-add-to-cart.elementor-align-left form.cart,.elementor-widget-wc-add-to-cart.elementor-align-right form.cart{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.woocommerce div.product.elementor ul.tabs:before{position:static;content:none;width:auto;bottom:auto;left:auto;border-bottom:0;z-index:auto}.woocommerce div.product.elementor ul.tabs{margin:0}.woocommerce div.product.elementor ul.tabs li{padding:0}.woocommerce div.product.elementor ul.tabs li a{padding:.8em 1.2em;line-height:1}.woocommerce div.product.elementor ul.tabs li:after,.woocommerce div.product.elementor ul.tabs li:before{border:0;position:static;bottom:auto;width:auto;height:auto;content:none;-webkit-box-sizing:border-box;box-sizing:border-box}.woocommerce div.product.elementor .woocommerce-tabs .panel{padding:20px;border-radius:0;border-width:0;border-top:1px solid #d3ced2;-webkit-box-shadow:none;box-shadow:none;margin:-1px 0 0}.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins{display:block}.elementor-widget-woocommerce-product-meta .detail-container{position:relative}.elementor-widget-woocommerce-product-meta .detail-container:after{position:absolute;bottom:0;left:0;width:100%}.elementor-widget-woocommerce-product-meta .detail-label{font-weight:700}.elementor-woo-meta--view-inline .product_meta{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-woo-meta--view-inline .product_meta .detail-container:after{width:auto;left:auto;right:auto;position:absolute;height:100%;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border-top:0;border-bottom:0;border-right:0;border-left-width:1px;border-style:solid;left:-8px}.elementor-woo-meta--view-table .product_meta{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-woo-meta--view-table .product_meta,.elementor-woo-meta--view-table .product_meta .detail-container{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-woo-meta--view-table .product_meta .detail-label{min-width:108px}.elementor-woo-meta--view-stacked .product_meta .detail-container{display:block}.woocommerce div.product.elementor .woocommerce-product-rating{margin-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.woocommerce div.product.elementor .star-rating{margin-top:0}.elementor-product-rating--align-left .woocommerce-product-rating{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor-product-rating--align-right .woocommerce-product-rating{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor-product-rating--align-center .woocommerce-product-rating{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link{margin-right:auto}.elementor-products-grid ul.products.elementor-grid{display:grid;margin:0;grid-column-gap:20px;grid-row-gap:40px}.elementor-products-grid ul.products.elementor-grid:after,.elementor-products-grid ul.products.elementor-grid:before{content:none;display:none}.elementor-products-grid ul.products.elementor-grid li.product{width:auto;padding:0;margin:0;float:none}.elementor-products-grid ul.products.elementor-grid li.product .onsale{padding:0;display:none}.elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link{display:block;position:relative}.elementor-products-grid:not(.show-heading-yes) .products>h2{display:none}.elementor-products-grid nav.woocommerce-pagination{margin-top:40px}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul{border:0}.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li{border-right:0;border-left:0}.elementor-product-loop-item--align-left ul.products li.product .star-rating{margin-right:auto}.elementor-product-loop-item--align-right ul.products li.product .star-rating{margin-left:auto}.elementor-product-loop-item--align-center ul.products li.product .star-rating{margin-right:auto;margin-left:auto}.woocommerce .elementor-element.elementor-products-grid ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product{width:auto}@media (min-width:1025px){.elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products{grid-template-columns:repeat(2,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products{grid-template-columns:repeat(3,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products{grid-template-columns:repeat(4,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products{grid-template-columns:repeat(5,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products{grid-template-columns:repeat(6,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products{grid-template-columns:repeat(7,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products{grid-template-columns:repeat(8,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products{grid-template-columns:repeat(9,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products{grid-template-columns:repeat(10,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products{grid-template-columns:repeat(11,1fr)}.elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.elementor-widget-wc-archive-products .products{grid-template-columns:repeat(2,1fr)}}.elementor.product .woocommerce-product-gallery__trigger+.woocommerce-product-gallery__wrapper{overflow:hidden}.woocommerce .elementor-widget-woocommerce-product-images span.onsale{padding:0}.elementor-menu-cart__wrapper{text-align:var(--main-alignment,right)}.elementor-menu-cart__toggle_wrapper{display:inline-block;position:relative}.elementor-menu-cart__toggle{display:inline-block}.elementor-menu-cart__toggle .elementor-button{background-color:var(--toggle-button-background-color,transparent);color:var(--toggle-button-text-color,#818a91);border:var(--toggle-button-border-width,1px) var(--toggle-button-border-type,solid) var(--toggle-button-border-color,#818a91);border-radius:var(--toggle-button-border-radius,0);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:var(--toggle-icon-padding,12px 24px)}.elementor-menu-cart__toggle .elementor-button:hover{color:var(--toggle-button-hover-text-color,#818a91);background-color:var(--toggle-button-hover-background-color,transparent);border-color:var(--toggle-button-hover-border-color,#818a91)}.elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon{color:var(--toggle-button-icon-hover-color,#818a91)}.elementor-menu-cart__toggle .elementor-button-text{margin-left:.3em}.elementor-menu-cart__toggle .elementor-button-icon{position:relative;-webkit-transition:color .1s;-o-transition:color .1s;transition:color .1s;color:var(--toggle-button-icon-color,#818a91);font-size:var(--toggle-icon-size,inherit)}.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:block;position:absolute;min-width:1.6em;height:1.6em;line-height:1.5em;top:-.7em;left:-.7em;border-radius:100%;color:var(--items-indicator-text-color,#fff);background-color:var(--items-indicator-background-color,#d9534f);text-align:center;font-size:10px}.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before{content:attr(data-counter);display:inline-block;font-weight:400}.elementor-menu-cart__container{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);overflow:hidden;position:fixed;z-index:9998;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s;text-align:right}.elementor-menu-cart__main{position:fixed;left:var(--side-cart-alignment-left,0);right:var(--side-cart-alignment-right,auto);-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:0;bottom:0;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;font-size:14px;min-height:200px;width:350px;max-width:100%;-webkit-transition:.3s;-o-transition:.3s;transition:.3s;padding:var(--cart-padding,20px 30px);background-color:var(--cart-background-color,#fff);-webkit-box-shadow:0 0 20px rgba(0,0,0,.2);box-shadow:0 0 20px rgba(0,0,0,.2);border-style:var(--cart-border-style,none);border-color:var(--cart-border-color,initial);border-radius:var(--cart-border-radius,0);margin-top:var(--mini-cart-spacing,0)}.elementor-menu-cart__main,.elementor-menu-cart__main .widget_shopping_cart_content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-menu-cart__main .widget_shopping_cart_content{height:100%}.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message{color:var(--empty-message-color,inherit);text-align:var(--empty-message-alignment,right)}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{background-color:transparent;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button{display:none}body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{overflow:hidden;opacity:0;-webkit-transform:var(--side-cart-alignment-transform,translateX(-100%));-ms-transform:var(--side-cart-alignment-transform,translateX(-100%));transform:var(--side-cart-alignment-transform,translateX(-100%))}.elementor-menu-cart__close-button{width:var(--cart-close-icon-size,25px);height:var(--cart-close-icon-size,25px);position:relative;margin:0 0 20px;-ms-flex-item-align:end;align-self:flex-end;cursor:pointer;display:inline-block;font-family:eicons;font-size:20px;line-height:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:after,.elementor-menu-cart__close-button:before{content:"";position:absolute;height:3px;width:100%;top:50%;left:0;margin-top:-1px;background:var(--cart-close-button-color,#818a91);border-radius:1px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__close-button:hover:after,.elementor-menu-cart__close-button:hover:before{background:var(--cart-close-button-hover-color,#818a91)}.elementor-menu-cart__close-button:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__close-button:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__products{max-height:calc(100vh - 250px);overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.elementor-menu-cart__product{display:grid;grid-template-columns:28% auto;grid-template-rows:var(--price-quantity-position--grid-template-rows,auto auto);position:relative;border-width:0;border-bottom:var(--divider-width,1px) var(--divider-style,solid) var(--divider-color,#d4d4d4)}.elementor-menu-cart__product .variation{display:grid;grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto;margin:10px 0}.elementor-menu-cart__product .variation dt{grid-column-start:1}.elementor-menu-cart__product .variation dd{grid-column-start:2;-webkit-margin-start:5px;margin-inline-start:5px}.elementor-menu-cart__product .variation dd p{margin-bottom:0}.elementor-menu-cart__product-image{grid-row-start:1;grid-row-end:3;width:100%}.elementor-menu-cart__product-image a,.elementor-menu-cart__product-image img{display:block}.elementor-menu-cart__product-name{grid-column-start:2;grid-column-end:3;margin:0}.elementor-menu-cart__product-name a{-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-price{grid-column-start:2;grid-column-end:3;-ms-flex-item-align:var(--price-quantity-position--align-self,end);align-self:var(--price-quantity-position--align-self,end);font-weight:300;color:var(--product-price-color,#d4d4d4)}.elementor-menu-cart__product-name,.elementor-menu-cart__product-price{font-size:14px;padding-right:20px}.elementor-menu-cart__product-remove{color:#818a91;width:var(--remove-item-button-size,22px);height:var(--remove-item-button-size,22px);border-radius:var(--remove-item-button-size,22px);border:1px solid var(--remove-item-button-color,#d4d4d4);text-align:center;overflow:hidden;position:absolute;left:0;bottom:20px;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:hover{border:1px solid var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:hover:after,.elementor-menu-cart__product-remove:hover:before{background:var(--remove-item-button-hover-color,#d4d4d4)}.elementor-menu-cart__product-remove:after,.elementor-menu-cart__product-remove:before{content:"";position:absolute;height:1px;width:50%;top:50%;left:25%;margin-top:-1px;background:var(--remove-item-button-color,#d4d4d4);z-index:1;-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-menu-cart__product-remove:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.elementor-menu-cart__product-remove:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.elementor-menu-cart__product-remove>a{display:block;z-index:2;width:100%;height:100%;overflow:hidden;opacity:0;position:absolute}.elementor-menu-cart__product-remove>a.remove_from_cart_button{display:var(--remove-from-cart-button,block)}.elementor-menu-cart__product-remove>a.elementor_remove_from_cart_button{display:var(--elementor-remove-from-cart-button,none)}.elementor-menu-cart__product:last-child{border:none}.elementor-menu-cart__footer-buttons,.elementor-menu-cart__product:not(:first-of-type),.elementor-menu-cart__subtotal{padding-top:var(--product-divider-gap,20px)}.elementor-menu-cart__product{padding-left:30px}.elementor-menu-cart__product,.elementor-menu-cart__subtotal{padding-bottom:var(--product-divider-gap,20px)}.elementor-menu-cart__subtotal{font-size:20px;text-align:var(--menu-cart-subtotal-text-align,center);font-weight:600;color:var(--menu-cart-subtotal-color,inherit);border-left:var(--subtotal-divider-left-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-bottom:var(--subtotal-divider-bottom-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-right:var(--subtotal-divider-right-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4);border-top:var(--subtotal-divider-top-width,1px) var(--subtotal-divider-style,solid) var(--subtotal-divider-color,#d4d4d4)}.elementor-menu-cart__footer-buttons{font-size:20px;text-align:var(--cart-footer-buttons-alignment-text-align,center);display:var(--cart-footer-buttons-alignment-display,grid);grid-template-columns:var(--cart-footer-layout,1fr 1fr);margin-top:var(--cart-buttons-position-margin,0);grid-column-gap:var(--space-between-buttons,10px);grid-row-gap:var(--space-between-buttons,10px)}.elementor-menu-cart__footer-buttons .elementor-button{display:inline-block;border-radius:var(--cart-footer-buttons-border-radius,0);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:var(--view-cart-button-display,inline-block);color:var(--view-cart-button-text-color,#fff);padding:var(--view-cart-button-padding,15px);background-color:var(--view-cart-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover{color:var(--view-cart-button-hover-text-color,#fff);background-color:var(--view-cart-button-hover-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout{display:var(--checkout-button-display,inline-block);color:var(--checkout-button-text-color,#fff);padding:var(--checkout-button-padding,15px);background-color:var(--checkout-button-background-color,#818a91)}.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:var(--checkout-button-hover-background-color,#818a91)}@media (max-width:767px){.elementor-menu-cart__footer-buttons .elementor-button{padding-left:10px;padding-right:10px}}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text{display:none}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before{content:none}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e3"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e4"}.elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e5"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e6"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e7"}.elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e8"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8e9"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8ea"}.elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before{content:"\e8eb"}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product{padding-left:0;padding-right:0;grid-template-columns:25% auto}.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove{display:none}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove{top:0;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove{top:20px;bottom:auto}.elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove{-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);bottom:50%}.elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove{top:auto;bottom:20px}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{position:absolute;z-index:89;width:auto;height:auto;overflow:visible;top:100%;bottom:auto;background:none;min-width:330px;right:0;left:auto;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition:background-color .4s,-webkit-transform 0s;transition:background-color .4s,-webkit-transform 0s;-o-transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s;transition:background-color .4s,transform 0s,-webkit-transform 0s}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main{width:auto;height:auto;position:relative;top:auto;bottom:auto;right:auto;left:auto;overflow:visible;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}@media (max-width:767px){.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container{min-width:300px}}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transition:background-color .4s,-webkit-transform 0s .4s;transition:background-color .4s,-webkit-transform 0s .4s;-o-transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s;transition:background-color .4s,transform 0s .4s,-webkit-transform 0s .4s}body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main{opacity:0;-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown{opacity:1}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container{z-index:9998}.elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart{z-index:89}.elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container{display:none}.elementor-widget-woocommerce-checkout-page{background-color:transparent;font-family:Roboto,sans-serif;font-size:14px;line-height:21px;color:#818a91}.elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container{grid-template-columns:auto}.elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-checkout-page table tbody tr:hover>td,.elementor-widget-woocommerce-checkout-page table tbody tr:hover>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .e-description{color:var(--sections-descriptions-color,#818a91);padding-bottom:var(--sections-descriptions-spacing,0);font-size:14px;font-weight:400}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section{margin-bottom:24px}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title{text-align:var(--login-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge{margin-top:var(--sections-secondary-title-spacing,24px);margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor{margin-top:var(--sections-secondary-title-spacing,24px)}.elementor-widget-woocommerce-checkout-page .e-coupon-box{margin-top:24px}.elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .e-login-wrap-start{-webkit-box-flex:75%;-ms-flex:75%;flex:75%}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{-webkit-box-flex:20%;-ms-flex:20%;flex:20%;text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-wrap{display:block}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end{text-align:right;margin-top:15px}.elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label{display:none}}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:6px}.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{margin-bottom:0;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password{font-size:11px}}.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:90%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-apply-coupon{width:auto}}.elementor-widget-woocommerce-checkout-page .e-checkout__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:56% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,24px);grid-row-gap:var(--sections-margin,24px)}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .e-checkout__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title{color:var(--sections-secondary-title-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge{text-align:var(--coupon-title-alignment,right)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address{margin-top:13px;padding-right:var(--shipping-heading-padding-start,30px)}.elementor-widget-woocommerce-checkout-page #ship-to-different-address span{font-weight:400}.elementor-widget-woocommerce-checkout-page a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row{padding-left:var(--forms-columns-gap-padding,0);padding-right:var(--forms-columns-gap-padding,0);margin-left:var(--forms-columns-gap-margin,0);margin-right:var(--forms-columns-gap-margin,0)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);font-size:14px;border:none;font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-checkout-page .woocommerce .create-account,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row{margin-bottom:0!important}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input,.elementor-widget-woocommerce-checkout-page .woocommerce .input-radio{vertical-align:middle}.elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span{position:relative;top:2px;color:var(--sections-checkboxes-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label,.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label{display:inline}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#6f6f6f);border-radius:var(--forms-buttons-border-radius,3px);padding:1rem;border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover{color:var(--forms-buttons-hover-text-color,#6f6f6f);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{margin-right:1%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code{width:100%;margin-right:0;margin-bottom:15px}}.elementor-widget-woocommerce-checkout-page .woocommerce-info{border-top-color:transparent;background-color:transparent;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p{font-weight:400;font-size:12px}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info{font-weight:400;margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,.elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment{background:var(--sections-background-color,#fff);border-radius:var(--sections-border-radius,3px);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 24px 0);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{display:var(--additional-information-display,none)}@media (min-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text{color:var(--sections-messages-color,#818a91);font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p{margin-top:25px}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1{margin-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2{padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading{text-align:var(--order-review-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table{margin-bottom:0;border:0;font-size:14px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th{padding-top:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td{color:#000}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity{font-weight:400}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th{color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr{border:0;padding-left:0;padding-bottom:15px;padding-top:15px}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr{padding-bottom:0}.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td{font-weight:400;color:var(--order-summary-items-color,#000);border-bottom:var(--order-summary-items-divider-weight,0) solid var(--order-summary-items-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name{padding-left:40px;max-width:150px}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total{vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th{padding-top:var(--order-summary-rows-gap-top,15px);padding-bottom:var(--order-summary-rows-gap-bottom,15px)}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th{color:var(--order-summary-totals-color,#818a91);vertical-align:top}.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th{border-top:var(--order-summary-totals-divider-weight,0) solid var(--order-summary-totals-divider-color,#818a91)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td{max-width:70px}.elementor-widget-woocommerce-checkout-page .woocommerce h3{font-size:14px;font-weight:700;margin-top:0;margin-bottom:var(--sections-title-spacing,30px);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row>span{font-weight:400;font-size:14px;margin-bottom:3px;color:#818a91}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:48%}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox{vertical-align:middle;margin:0 5px 0 0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3{text-align:var(--billing-details-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row{margin-bottom:var(--forms-rows-gap,5px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child{margin-bottom:15px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login{margin-top:-8px;z-index:999;background:#fff;border-top-width:0;position:relative;margin-bottom:0;color:#818a91}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last{width:100%}}.elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:85%}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit{width:35%}}.elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3{background:var(--additional-fields-title-alignment,right)}.elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address{margin-bottom:var(--sections-margin,20px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment{margin-top:24px;padding:15px 25px 25px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods{border-bottom:none;padding:0}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box{background-color:#f7f7f7}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li{line-height:21px}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{padding-right:15px;font-size:12px}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a{float:none;font-size:11px;padding-left:10px}}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img{width:55px}}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0;margin-bottom:0;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order{background-color:#5bc0de;width:var(--purchase-button-width,auto);float:none;color:var(--purchase-button-normal-text-color,#fff);min-height:auto;padding:var(--purchase-button-padding,1em 1em);border-radius:var(--purchase-button-border-radius,3px)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover{background-color:#5bc0de;color:var(--purchase-button-hover-text-color,#fff);border-color:var(--purchase-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--purchase-button-hover-transition-duration,.3s);-o-transition-duration:var(--purchase-button-hover-transition-duration,.3s);transition-duration:var(--purchase-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before{display:none}.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,.elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2{width:auto;float:none}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:grid;grid-template-columns:auto auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:left}@media (max-width:1024px){.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid{display:block}.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2{text-align:right}}.elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field{margin-bottom:10px}.elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000);font-size:14px;font-style:normal;text-transform:none;letter-spacing:normal;text-decoration:none;line-height:21px}.e-woo-select2-wrapper .select2-results__option,.e-woo-select2-wrapper .select2-results__option:focus{color:#818a91}.elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart table tbody tr:hover>td,.elementor-widget-woocommerce-cart table tbody tr:hover>th{background-color:inherit}.elementor-widget-woocommerce-cart .e-clear{overflow:hidden;height:0;width:0}.elementor-widget-woocommerce-cart .e-cart-section{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);margin:var(--sections-margin,0 0 30px 0);border-radius:var(--sections-border-radius,3px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4)}@media (min-width:1024px){.elementor-widget-woocommerce-cart .e-cart-section:last-child{margin:var(--sections-margin,0)}}.elementor-widget-woocommerce-cart .e-cart-content{color:var(--sections-descriptions-color,#818a91);font-size:15px;font-weight:400;line-height:23px;letter-spacing:0}.elementor-widget-woocommerce-cart .e-cart__container{display:grid;-ms-flex-wrap:wrap;flex-wrap:wrap;grid-template-columns:59% auto;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;grid-column-gap:var(--sections-margin,30px);grid-row-gap:var(--sections-margin,30px)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .e-cart__container{grid-template-columns:repeat(1,1fr)}}.elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container{grid-template-columns:auto}.elementor-widget-woocommerce-cart .select2-container{margin-bottom:4px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-right:1rem;padding-left:1rem}.elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below{background-color:#f7f7f7}.elementor-widget-woocommerce-cart .woocommerce{font-family:Roboto,sans-serif}.elementor-widget-woocommerce-cart .woocommerce button.button{background-color:#fff;color:var(--forms-buttons-normal-text-color,#818a91);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,.88rem 2rem);width:var(--forms-buttons-width,auto);border:2px var(--forms-buttons-border-type,solid) var(--forms-buttons-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button:hover{color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]{padding:var(--forms-buttons-padding,.88rem 2rem);color:var(--forms-buttons-normal-text-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover,.elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover{background-color:var(--forms-buttons-hover-background-color,#fff);color:var(--forms-buttons-hover-text-color,#818a91);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s);border-color:var(--forms-buttons-hover-border-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li label{color:var(--sections-radio-buttons-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce #shipping_method li input{vertical-align:middle}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form{margin-top:var(--sections-descriptions-spacing,15px)}.elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination{color:var(--sections-descriptions-color,#818a91);margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th{display:none}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td{text-align:right!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td:before{width:100%;margin-bottom:10px}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td{text-align:left!important}.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td:before,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td:before{content:attr(data-title);font-weight:700;float:right}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{text-align:var(--totals-title-alignment,right)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td{padding-top:var(--totals-rows-gap-top,12px);padding-bottom:var(--totals-rows-gap-bottom,9px)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount,.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before{color:var(--totals-color,#818a91);font-weight:700}.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td{border-top-color:var(--totals-divider-color,#818a91);border-top-width:var(--totals-divider-weight,0)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row{margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-cart .woocommerce .product-name a{color:var(--product-link-normal-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover{color:var(--product-link-hover-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .form-row{padding:3px 0;margin:0}.elementor-widget-woocommerce-cart .woocommerce .input-text,.elementor-widget-woocommerce-cart .woocommerce select{color:var(--forms-fields-normal-color,#818a91);background-color:#f7f7f7;border-radius:var(--forms-fields-border-radius,3px);border:none;padding:var(--forms-fields-padding,16px);font-size:14px}.elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,.elementor-widget-woocommerce-cart .woocommerce select::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus,.elementor-widget-woocommerce-cart .woocommerce select:focus{color:var(--forms-fields-focus-color,#818a91);background-color:#f7f7f7;border-color:var(--forms-fields-focus-border-color,transparent);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,.elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder{color:var(--forms-fields-focus-color,#818a91)}.elementor-widget-woocommerce-cart .woocommerce .input-text.qty{background-color:transparent;color:var(--order-summary-color,#000);border:var(--order-summary-quantity-border-weight,1px) solid var(--order-summary-quantity-border-color,#d4d4d4);border-radius:3px;padding:1px 2px;text-align:right;font-size:14px;min-height:28px;max-height:28px}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout{padding-bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:var(--place-order-title-alignment,stretch);-ms-flex-align:var(--place-order-title-alignment,stretch);align-items:var(--place-order-title-alignment,stretch)}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button{padding:var(--checkout-button-padding,15px 1em);width:var(--checkout-button-width,auto);font-size:15px;text-align:center;color:var(--checkout-button-normal-text-color,#fff);background-color:#5bc0de;border-radius:var(--checkout-button-border-radius,3px);min-height:auto;margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover{color:var(--checkout-button-hover-text-color,#fff);background-color:#5bc0de;border-color:var(--checkout-button-hover-border-color,#5bc0de);-webkit-transition-duration:var(--checkout-button-hover-transition-duration,.3s);-o-transition-duration:var(--checkout-button-hover-transition-duration,.3s);transition-duration:var(--checkout-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-cart .woocommerce .remove{background:transparent;color:var(--order-summary-remove-icon-normal-color,#000)!important;width:auto}.elementor-widget-woocommerce-cart .woocommerce .remove:hover{background:transparent;color:var(--order-summary-remove-icon-hover-color,#5bc0de)!important}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals{float:none;width:100%}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td{padding-right:0}.elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{float:left;width:100%}.elementor-widget-woocommerce-cart .woocommerce .coupon .form-row{padding:0}.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{-webkit-box-flex:2;-ms-flex:2;flex:2;padding-left:30px}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start{padding-left:0}}.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end{-webkit-box-flex:1;-ms-flex:1;flex:1}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon-col{display:block}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce .coupon{margin:var(--sections-margin,0)}.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code{width:100%;margin-left:0;margin-bottom:15px}.elementor-widget-woocommerce-cart .woocommerce .coupon .button{width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:right;font-size:14px;font-weight:700}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.shop_table .button{float:none;width:100%}}.elementor-widget-woocommerce-cart .woocommerce table.shop_table td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table th,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr{border:0 solid}.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd)>th{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions{padding:16px 0 0}.elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a{display:inline-block}.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child{display:var(--update-cart-automatically-display,table-row)}.elementor-widget-woocommerce-cart .woocommerce table.cart{margin-bottom:0}.elementor-widget-woocommerce-cart .woocommerce table.cart img{width:55px;height:auto;display:block}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-top:var(--order-summary-rows-gap-top,20px);padding-left:20px;padding-bottom:var(--order-summary-rows-gap-bottom,20px);padding-right:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td span{color:var(--order-summary-color,#000);font-size:14px;font-weight:400}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top:var(--order-summary-items-divider-weight,1px) solid var(--order-summary-items-divider-color,#d4d4d4)}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal,.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail{border-top-width:0}}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove{padding-right:0;padding-left:0}@media (min-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td{border-top:none}}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove{position:relative}.elementor-widget-woocommerce-cart .woocommerce table.cart.product-name{padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{border-top-width:var(--order-summary-items-divider-weight,1px);border-top-color:var(--order-summary-items-divider-color,#d4d4d4)}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}}@media (max-width:768px){.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}}@media (max-width:767px){.elementor-widget-woocommerce-cart .woocommerce table.cart{padding:0}.elementor-widget-woocommerce-cart .woocommerce table.cart tr{padding:16px 28px}.elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td{padding-right:0;padding-left:0}.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name,.elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child{border-top:none}.elementor-widget-woocommerce-cart .woocommerce table.cart td.actions{padding:0}}.elementor-widget-woocommerce-cart .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,.elementor-widget-woocommerce-cart .woocommerce .cart th{font-size:14px;font-weight:700;margin-top:0;padding:0 0 8px 20px}.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2{margin-bottom:var(--sections-title-spacing,1rem);color:var(--sections-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart th{padding-bottom:var(--order-summary-title-spacing,8px);color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .cart td:before{color:var(--order-summary-title-color,#000)}.elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button:after{display:none}.elementor-widget-woocommerce-cart .woocommerce .product-name .variation{color:var(--order-summary-variations-color,#000)}@media (max-width:1024px){.elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td,.elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td{background-color:transparent}.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td{padding-right:0}}.e-woo-select2-wrapper .select2-results__option{font-family:Roboto,sans-serif;font-size:14px;color:var(--forms-fields-normal-color,#818a91)}.e-woo-select2-wrapper .select2-results__option:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account{font-family:Roboto,sans-serif;color:#818a91}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table{border:none;margin-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{background-color:var(--sections-background-color,#fff)}.elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper{padding:var(--sections-padding,16px 30px 3px 30px)}.elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,.elementor-widget-woocommerce-my-account .e-my-account-tab address{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content{border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper{padding:0;border:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details{margin-bottom:40px}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details,.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px 3px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content>div>p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single{color:var(--forms-fields-normal-color,#818a91);background-color:var(--forms-fields-normal-background-color,#f7f7f7);border-radius:var(--forms-fields-border-radius,0);border:none;height:45px}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus{color:var(--forms-fields-focus-color,#818a91);background-color:var(--forms-fields-focus-background-color,#f7f7f7);border-color:var(--forms-fields-focus-border-color,initial);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--forms-fields-normal-color,#818a91)}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--forms-fields-normal-color,#818a91);line-height:45px;padding-left:1rem;padding-right:1rem}.elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow{height:45px}.elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below{background-color:var(--forms-fields-normal-background-color,#f7f7f7)}.elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce ::placeholder{color:var(--forms-fields-normal-color,inherit);font-family:inherit;opacity:.6}.elementor-widget-woocommerce-my-account .woocommerce-message{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce address{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce a{color:var(--links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a:hover{color:var(--links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover,.elementor-widget-woocommerce-my-account .woocommerce a.button:hover{background-color:initial}.elementor-widget-woocommerce-my-account .woocommerce em{font-size:12px;color:var(--login-messages-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .form-row{padding-left:var(--forms-columns-gap-padding-left,0);padding-right:var(--forms-columns-gap-padding-right,0);margin-left:var(--forms-columns-gap-margin-left,0);margin-right:var(--forms-columns-gap-margin-right,0);margin-bottom:var(--forms-rows-gap,6px)}.elementor-widget-woocommerce-my-account .woocommerce .form-row label{color:var(--forms-labels-color,#818a91);margin-bottom:var(--forms-label-spacing,0)}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,.elementor-widget-woocommerce-my-account .woocommerce .form-row select{color:var(--forms-fields-normal-color,#818a91);border-radius:var(--forms-fields-border-radius,0);padding:var(--forms-fields-padding,16px);background:#f7f7f7;border:none;font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,.elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus{color:var(--forms-fields-focus-color,#818a91);border-color:var(--forms-fields-focus-border-color,#818a91);-webkit-transition-duration:var(--forms-fields-focus-transition-duration,.3s);-o-transition-duration:var(--forms-fields-focus-transition-duration,.3s);transition-duration:var(--forms-fields-focus-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field{margin-bottom:5px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text{margin-bottom:15px;color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){color:var(--login-messages-color,#818a91);font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,.elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword{font-size:12px;margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:50%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first{width:100%}.elementor-widget-woocommerce-my-account .woocommerce .login,.elementor-widget-woocommerce-my-account .woocommerce .register,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword{background-color:var(--sections-background-color,#fff);padding:var(--sections-padding,16px 30px);border:1px var(--sections-border-type,solid) var(--sections-border-color,#d4d4d4);border-radius:var(--sections-border-radius,3px);font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .login .button,.elementor-widget-woocommerce-my-account .woocommerce .register .button,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3){margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2){margin-top:10px;font-size:12px}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox{vertical-align:middle}.elementor-widget-woocommerce-my-account .woocommerce p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span{color:var(--checkboxes-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce td,.elementor-widget-woocommerce-my-account .woocommerce th,.elementor-widget-woocommerce-my-account .woocommerce tr{border:none}.elementor-widget-woocommerce-my-account .woocommerce h2,.elementor-widget-woocommerce-my-account .woocommerce h3{color:var(--typography-section-titles-color,#000);margin-top:0;margin-bottom:var(--section-title-spacing,45px);font-weight:400}.elementor-widget-woocommerce-my-account .woocommerce strong{color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta,.elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label{color:var(--variations-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .product-quantity{font-weight:400;color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{float:right;width:25%}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation{width:100%}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul{-webkit-padding-start:0;padding-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li{list-style-type:none;margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li:after{content:"";display:block;width:100%;background-color:var(--tabs-divider-color,#818a91);height:var(--tabs-divider-weight,0);position:relative;top:calc(var(--tabs-spacing, 2px) / 2)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a{color:var(--tabs-active-color,#5bc0de);background:#eceeef;border-color:var(--tabs-active-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{font-style:normal;font-weight:700;font-size:14px;color:var(--tabs-normal-color,#818a91);display:block;padding:var(--tabs-padding,12px 20px);text-align:var(--tabs-alignment,start);background:#f7f7f7;border-radius:var(--tabs-border-radius,0);border:0 var(--tabs-border-type,solid) var(--tabs-border-color,transparent)}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover{color:var(--tabs-hover-color,#5bc0de);border-color:var(--tabs-hover-border-color,transparent)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a{padding:var(--tabs-padding,10px)}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard{margin-top:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout:after{display:none}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{float:left;width:75%;padding:0;padding-right:var(--tab-content-spacing,6%)}@media (max-width:1024px){.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content{width:100%;padding:var(--tab-content-spacing,6%) 0 0 0}}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type{margin-bottom:0}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type{margin-top:30px}.elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark{background-color:transparent;font-weight:700;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce caption+thead tr:first-child th,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce colgroup+thead tr:first-child th{border-top:0}.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,.elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th{border-top:0;padding-right:0;padding-top:0;padding-bottom:var(--tables-titles-spacing,9px)}.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(2n)>th,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>td,.elementor-widget-woocommerce-my-account .woocommerce tbody>tr:nth-child(odd)>th{background-color:transparent;padding-right:0;padding-top:var(--order-summary-rows-gap-top,9px);padding-bottom:var(--order-summary-rows-gap-bottom,9px);color:var(--tables-items-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number>a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table{font-size:14px}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table td,.elementor-widget-woocommerce-my-account .woocommerce .shop_table th{border-top:var(--tables-divider-border-width,1px) var(--tables-divider-border-type,solid) var(--tables-divider-border-color,#d4d4d4)}.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th,.elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span{color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td,.elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th{padding-right:0;color:var(--tables-title-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a{color:var(--tables-links-normal-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover{color:var(--tables-links-hover-color,#5bc0de)}.elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td{border-top:none;padding-top:0}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button{background:transparent;border:2px solid #5bc0de;border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);border-radius:var(--tables-button-border-radius,3px);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);margin-top:0;margin-bottom:0;padding:var(--tables-button-padding,12px 32px)}.elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-Address .title h3,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3{float:none}.elementor-widget-woocommerce-my-account .woocommerce-Address address,.elementor-widget-woocommerce-my-account .woocommerce-Addresses address{padding:var(--sections-padding,45px 30px 16px 30px)}.elementor-widget-woocommerce-my-account .woocommerce-Address .edit,.elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit{float:right;position:absolute;margin-right:var(--edit-link-margin-start,30px);margin-top:var(--edit-link-margin-top,10px)}.elementor-widget-woocommerce-my-account .woocommerce .u-columns{margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset{border:none;padding:0;-webkit-margin-start:0;margin-inline-start:0}.elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend{font-weight:700;padding:20px 0;color:var(--general-text-color,#000)}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button{background:#5bc0de;border:none;color:var(--forms-buttons-normal-text-color,#fff);border-radius:var(--forms-buttons-border-radius,3px);padding:var(--forms-buttons-padding,12px 32px);margin-top:20px}.elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover,.elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover{color:var(--forms-buttons-hover-text-color,#fff);-webkit-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);-o-transition-duration:var(--forms-buttons-hover-transition-duration,.3s);transition-duration:var(--forms-buttons-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-pagination{padding:16px 0}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button{background:transparent;border-radius:var(--tables-button-border-radius,3px);border:2px var(--tables-buttons-border-type,solid) var(--tables-buttons-border-color,#5bc0de);vertical-align:middle;color:var(--tables-button-normal-text-color,#818a91);padding:var(--tables-button-padding,5px 10px)}.elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover{color:var(--tables-button-hover-text-color,#818a91);-webkit-transition-duration:var(--tables-button-hover-transition-duration,.3s);-o-transition-duration:var(--tables-button-hover-transition-duration,.3s);transition-duration:var(--tables-button-hover-transition-duration,.3s)}.elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates{color:var(--general-text-color,#818a91)}.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below,.elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below{padding-bottom:0}.elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td{vertical-align:top;line-height:unset}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{float:none;width:100%}.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block}.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation,.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation{display:block}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:var(--tabs-container-justify-content,space-between);-ms-flex-pack:var(--tabs-container-justify-content,space-between);justify-content:var(--tabs-container-justify-content,space-between)}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul{display:block}}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{display:inline-block;width:var(--tab-width,100%);padding:0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);margin:0;border-right:var(--tabs-divider-weight,0) solid var(--tabs-divider-color,#818a91)}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:after{display:none}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type{padding-right:0}.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type{padding-left:0;border-right-width:0}@media (max-width:767px){.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li{margin:calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;display:inline-block;width:100%}}.e-my-account-tabs-horizontal .woocommerce-MyAccount-content{float:none;width:100%;padding:var(--tab-content-spacing,50px) 0 0 0}.elementor-editor-active .elementor-widget-container,.elementor-editor-preview .elementor-widget-container{min-height:1px}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a{pointer-events:none}.elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,.elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button{pointer-events:none;opacity:.3}.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type){display:none}.product .count{background-color:inherit}.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2{display:none}.woocommerce div.product.elementor form.cart div.product-addon{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-negative:0;flex-shrink:0}.e-sticky-right-column--active{position:-webkit-sticky;position:sticky;top:0}PK!i���2�2,assets/css/widget-video-playlist-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.e-tabs-inner-tabs{text-align:right;font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;font-size:16px}.e-tabs-inner-tabs .e-tab-content{padding-top:32px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;z-index:1}.e-tabs-inner-tabs .e-inner-tabs-wrapper :after{content:"";width:100%;height:var(--inner-tabs-border-height,1px);background-color:var(--inner-tabs-border-color,#d5dadf);position:absolute;bottom:0;z-index:-1}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title{font-weight:700;min-width:140px;line-height:38px;height:38px;-webkit-box-sizing:content-box;box-sizing:content-box}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a{color:#6d7882;padding:0 36px;display:block;text-align:center}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active{border-color:#495157 #495157 transparent;border-left-width:0;border-bottom:1px solid #495157;border-right-width:0;border-top-width:0}.e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a{color:#495157}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{display:none;padding:20px}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text{color:#556068}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons{margin-top:24px;display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button{display:none;font-weight:500;line-height:24px;text-decoration:underline;border:none;background:transparent;padding:0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text{overflow:hidden}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons,.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button{display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text{height:auto}@media (max-width:767px){.e-tabs-inner-tabs>.e-tab-content:first-child{padding-top:24px}.e-tabs-inner-tabs .e-inner-tabs-wrapper{display:none}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper{border:solid #d5dadf;border-width:1px 1px 0}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title{border:solid #d5dadf;border-width:0 0 1px;font-size:16px;font-weight:700;text-align:center;height:38px;line-height:38px;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 10px;cursor:pointer;display:block}.e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content{border:solid #d5dadf;border-width:0 0 1px;padding:20px}}.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}@media (max-width:767px){.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.elementor-widget-video-playlist{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif}.elementor-widget-video-playlist .e-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.elementor-widget-video-playlist .e-tabs-main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:434px}.elementor-widget-video-playlist .e-tabs-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:33%}.elementor-widget-video-playlist .e-tabs-header{background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 16px;min-height:56px;border-bottom:1px solid #d5dadf}.elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-negative:0;flex-shrink:0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-title{font-family:Roboto,Arial,Helvetica,Verdana,sans-serif;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-weight:700;font-size:16px;padding:10px 0;overflow-wrap:anywhere;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin:auto 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{font-size:14px;-ms-flex-negative:0;flex-shrink:0;font-weight:400;line-height:20px;-ms-flex-item-align:start;align-self:flex-start;padding:18px 0 0}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:none;margin:auto 0 auto 8px;cursor:pointer;padding:0 4px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg{height:1em;width:1em}.elementor-widget-video-playlist .e-tabs-header .rotate-up{-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-header .rotate-down{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);-webkit-transition:.3s;-o-transition:.3s;transition:.3s}.elementor-widget-video-playlist .e-tabs-items-wrapper{background-color:#fff;overflow:hidden;position:relative;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{overflow:auto;height:100%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title{border-color:#d5dadf;font-size:14px;height:36px;padding:0 16px;line-height:36px;margin:0;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-width:0;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title{background-color:#fff;border-color:#d5dadf;border-width:0 0 1px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;height:55px;line-height:55px;outline:none;padding:0 16px;-webkit-box-sizing:content-box;box-sizing:content-box}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i{text-shadow:0 0 3px #000;color:#fff;font-size:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{text-shadow:0 0 3px #000;color:#fff;fill:#fff;width:var(--playlist-item-icon-size,16px);height:var(--playlist-item-icon-size,16px)}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover{background-color:#f1f3f5;border-color:#d5dadf;border-width:0 0 1px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg{text-shadow:0 0 3px #000;color:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path{fill:#fff}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text{font-size:14px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail{background-color:#d5dadf;position:relative;margin:auto 0;-ms-flex-negative:0;flex-shrink:0;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img{-o-object-fit:fill;object-fit:fill;width:75px;height:42px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg{position:absolute;bottom:4px;right:4px;font-weight:900}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text{font-size:14px;margin:auto 8px;text-align:right;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg{margin:auto 0;vertical-align:middle}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration{font-size:14px;margin:auto 0}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched,.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play{display:none}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched{display:block}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top{display:none;height:98px;position:absolute;top:0;width:100%;pointer-events:none;background:-webkit-gradient(linear,left bottom,left top,from(transparent),to(#fff));background:-webkit-linear-gradient(bottom,transparent,#fff);background:-o-linear-gradient(bottom,transparent 0,#fff 100%);background:linear-gradient(0deg,transparent,#fff)}.elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom{display:none;height:98px;position:absolute;bottom:0;width:100%;background:-webkit-gradient(linear,left top,left bottom,from(transparent),to(#fff));background:-webkit-linear-gradient(top,transparent,#fff);background:-o-linear-gradient(top,transparent 0,#fff 100%);background:linear-gradient(180deg,transparent,#fff);pointer-events:none}.elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom,.elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top{display:block}.elementor-widget-video-playlist .e-tabs-content-wrapper{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;height:100%;position:relative}.elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:50%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title{display:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content{background-color:#000;display:none;height:100%;outline:none}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content>div{height:100%}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe{height:100%;max-height:100%!important;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video{height:100%;background-color:#000}.elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content{display:none;outline:none}@media (max-width:767px){.elementor-widget-video-playlist .e-tabs-main-area{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto}.elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper{border:none;height:38%}.elementor-widget-video-playlist .e-tabs-wrapper{width:auto;height:62%}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items{max-height:248px}.elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title{border:none}.elementor-widget-video-playlist .e-tabs-header{min-height:48px}.elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count{margin:0 6px;padding:14px 0 0}.elementor-widget-video-playlist .e-tab-content{border:none;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex}}PK!_wUUassets/css/widget-popup.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;right:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}PK!"�E��$assets/css/widget-lottie-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.e-lottie__container{display:inline-block;max-width:var(--lottie-container-max-width);width:var(--lottie-container-width);opacity:var(--lottie-container-opacity)}.e-lottie__container:hover{opacity:var(--lottie-container-opacity-hover);-webkit-transition-duration:var(--lottie-container-transition-duration-hover);-o-transition-duration:var(--lottie-container-transition-duration-hover);transition-duration:var(--lottie-container-transition-duration-hover)}.e-lottie__container svg,.e-lottie__container svg *{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.e-lottie__caption{color:var(--caption-color);margin-top:var(--caption-margin-top);text-align:var(--caption-text-align)}PK!�›
�
 assets/css/widget-slides.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-slides .swiper-slide-bg{-webkit-background-size:cover;background-size:cover;background-position:50%;background-repeat:no-repeat;min-width:100%;min-height:100%}.elementor-slides .swiper-slide-inner{background-repeat:no-repeat;background-position:50%;position:absolute;top:0;left:0;bottom:0;right:0;padding:50px;margin:auto}.elementor-slides .swiper-slide-inner,.elementor-slides .swiper-slide-inner:hover{color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-slides .swiper-slide-inner .elementor-background-overlay{position:absolute;z-index:0;top:0;bottom:0;left:0;right:0}.elementor-slides .swiper-slide-inner .elementor-slide-content{position:relative;z-index:1;width:100%}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:35px;font-weight:700;line-height:1}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:17px;line-height:1.4}.elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child),.elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child){margin-bottom:30px}.elementor-slides .swiper-slide-inner .elementor-slide-button{border:2px solid #fff;color:#fff;background:transparent;display:inline-block}.elementor-slides .swiper-slide-inner .elementor-slide-button,.elementor-slides .swiper-slide-inner .elementor-slide-button:hover{background:transparent;color:inherit;text-decoration:none}.elementor--v-position-top .swiper-slide-inner{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor--v-position-bottom .swiper-slide-inner{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor--v-position-middle .swiper-slide-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor--h-position-left .swiper-slide-inner{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.elementor--h-position-right .swiper-slide-inner{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.elementor--h-position-center .swiper-slide-inner{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}body.rtl .elementor-widget-slides .elementor-swiper-button-next{left:10px;right:auto}body.rtl .elementor-widget-slides .elementor-swiper-button-prev{right:10px;left:auto}.elementor-slides-wrapper div:not(.swiper-slide)>.swiper-slide-inner{display:none}@media (max-width:767px){.elementor-slides .swiper-slide-inner{padding:30px}.elementor-slides .swiper-slide-inner .elementor-slide-heading{font-size:23px;line-height:1;margin-bottom:15px}.elementor-slides .swiper-slide-inner .elementor-slide-description{font-size:13px;line-height:1.4;margin-bottom:15px}}PK!i�ee assets/css/widget-social.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-facebook-widget.fb_iframe_widget,.elementor-facebook-widget.fb_iframe_widget span{width:100%!important}.elementor-facebook-widget.fb_iframe_widget iframe{position:relative;width:100%!important}.elementor-facebook-widget.fb-like{height:1px}.elementor-widget-facebook-comments iframe{width:100%!important}PK!�,�''''assets/css/widget-theme-builder.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
.elementor-theme-builder-content-area{height:400px}.elementor-location-footer:before,.elementor-location-header:before{content:"";display:table;clear:both}.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post{display:block}PK!�~�9'K'Kassets/css/editor-rtl.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
#elementor-panel-get-pro-elements {
  display: none; }

.elementor-panel .elementor-control .e-control-error {
  color: #b01b1b; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-content {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row;
          flex-flow: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-title {
  width: 45%; }

.elementor-panel .elementor-control.forms-field-shortcode .elementor-control-raw-html {
  width: 55%; }

#elementor-widget-template-empty-templates {
  margin-top: 15px;
  text-align: center; }

.elementor-widget-template-empty-templates-title {
  padding: 25px 0 30px; }

.elementor-widget-template-empty-templates-icon {
  font-size: 96px;
  color: #d5dadf; }

.elementor-widget-template-empty-templates-footer {
  color: #a4afb7;
  font-size: 13px;
  font-style: italic;
  margin-bottom: 15px; }
  .elementor-widget-template-empty-templates-footer a {
    color: #a4afb7; }

#elementor-panel-global-widget {
  height: 100%; }
  #elementor-panel-global-widget > * {
    background-color: #fff; }

#elementor-global-widget-locked-header {
  -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 0 8px rgba(0, 0, 0, 0.1); }
  #elementor-global-widget-locked-header.elementor-nerd-box {
    padding: 40px 25px; }
    #elementor-global-widget-locked-header.elementor-nerd-box .elementor-nerd-box-icon {
      margin-top: 20px; }

#elementor-global-widget-locked-tools {
  margin-top: 15px;
  padding: 0 20px; }

.elementor-global-widget-locked-tool {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 20px 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-global-widget-locked-tool .elementor-button {
    text-transform: uppercase;
    color: #fff;
    padding: 8px 0;
    width: 70px;
    font-weight: 600; }

.elementor-global-widget-locked-tool-description {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

#elementor-global-widget-locked-unlink {
  border-top: 1px solid #e6e9ec; }

#elementor-global-templates .elementor-element {
  position: relative; }
  #elementor-global-templates .elementor-element:before {
    position: absolute;
    font-family: eicons;
    content: '\e91f';
    top: 5px;
    left: 5px;
    color: #fcb92c;
    font-size: 10px; }

#elementor-global-widget-loading {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  #elementor-global-widget-loading:not(.elementor-hidden) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  #elementor-global-widget-loading i {
    color: #d5dadf;
    font-size: 50px; }

.elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields {
  margin: 10px 0; }
  .elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields .elementor-control {
    padding: 0; }
  .elementor-panel .elementor-control-type-fields_map .elementor-repeater-fields:last-child {
    margin-bottom: 0; }

.elementor-repeater-row--form-step .elementor-repeater-row-tools:hover {
  background-color: #c2cbd2; }

.elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable) {
  background-color: #f1f3f5; }
  .elementor-repeater-row--form-step .elementor-repeater-row-tools div:not(.elementor-repeater-row-handle-sortable):hover {
    background-color: #e6e9ec; }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

#elementor-publish {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  #elementor-publish__modal .dialog-message {
    padding: 0; }
  #elementor-publish__modal .dialog-buttons-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  #elementor-publish__modal .dialog-publish {
    -webkit-transition-property: opacity, -webkit-box-shadow;
    transition-property: opacity, -webkit-box-shadow;
    -o-transition-property: box-shadow, opacity;
    transition-property: box-shadow, opacity;
    transition-property: box-shadow, opacity, -webkit-box-shadow; }
    #elementor-publish__modal .dialog-publish:not(.elementor-button-success) {
      text-decoration: underline;
      color: #a4afb7;
      font-weight: normal;
      width: 110px;
      background-color: transparent; }
      #elementor-publish__modal .dialog-publish:not(.elementor-button-success):hover {
        color: #6d7882; }
  #elementor-publish__tabs {
    padding-top: 50px; }
    @media (max-width: 1439px) {
      #elementor-publish__tabs {
        width: 28%; } }
  #elementor-publish__screen {
    overflow: auto;
    padding: 50px; }

.elementor-publish__tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  height: 110px;
  padding: 20px 15px;
  cursor: pointer; }
  .elementor-publish__tab.elementor-active {
    background-color: #fff;
    -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07); }
    .elementor-publish__tab.elementor-active:after {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      height: 100%;
      width: 5px;
      background-color: #71d7f7; }
  .elementor-publish__tab__image {
    width: 50px;
    -ms-flex-negative: 0;
        flex-shrink: 0; }
    .elementor-publish__tab__image img {
      width: 100%; }
  .elementor-publish__tab__content {
    text-align: right;
    padding-right: 15px; }
  .elementor-publish__tab__title {
    font-size: 18px;
    color: #556068;
    font-weight: bold; }

#elementor-theme-builder-conditions {
  margin: 40px 0 60px; }
  #elementor-theme-builder-conditions-view {
    overflow: hidden; }
  #elementor-theme-builder-conditions .elementor-control {
    background-color: transparent;
    padding: 0; }
    #elementor-theme-builder-conditions .elementor-control:before {
      content: none; }
    #elementor-theme-builder-conditions .elementor-control select {
      border-width: 0;
      height: 40px;
      padding: 0 14px; }
    #elementor-theme-builder-conditions .elementor-control-type-query {
      width: 100px; }
    #elementor-theme-builder-conditions .elementor-control-type-select .elementor-control-input-wrapper:after {
      left: 10px;
      color: #495157; }
    #elementor-theme-builder-conditions .elementor-control-type {
      width: 120px; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] {
        background-color: #a4afb7; }
        #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] .elementor-control-input-wrapper:before {
          content: '\e8cc'; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] {
        background-color: #c2cbd2; }
        #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] .elementor-control-input-wrapper:before {
          content: '\e8cd'; }
      #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="exclude"] select, #elementor-theme-builder-conditions .elementor-control-type[data-elementor-condition-type="include"] select {
        color: #fff;
        text-transform: uppercase;
        padding-right: 33px; }
      #elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:before {
        font-family: eicons;
        position: absolute;
        top: 50%;
        -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
                transform: translateY(-50%);
        right: 13px;
        font-size: 15px;
        color: #fff; }
      #elementor-theme-builder-conditions .elementor-control-type .elementor-control-input-wrapper:after {
        color: #fff; }
      #elementor-theme-builder-conditions .elementor-control-type-select {
        background-color: #ffffff; }
      #elementor-theme-builder-conditions .elementor-control-type option {
        color: #495157; }
  #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-left: 10px;
    width: 70%;
    -webkit-box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    border-radius: 3px; }
    #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      margin-right: 1px; }
      #elementor-theme-builder-conditions .elementor-theme-builder-conditions-repeater-row-controls .elementor-control:not(:first-child) select {
        border-radius: 0; }
  #elementor-theme-builder-conditions .elementor-repeater-fields-wrapper {
    max-width: 700px;
    width: 100%;
    margin: auto; }
  #elementor-theme-builder-conditions .elementor-repeater-fields {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-top: 10px; }
  #elementor-theme-builder-conditions .elementor-control-field {
    display: block; }
  #elementor-theme-builder-conditions .elementor-control-title,
  #elementor-theme-builder-conditions .elementor-control-spinner {
    display: none; }
  #elementor-theme-builder-conditions .elementor-control-input-wrapper {
    width: 100%;
    max-width: initial; }
  #elementor-theme-builder-conditions .select2-selection {
    height: 40px;
    border: none;
    border-radius: 0; }
    #elementor-theme-builder-conditions .select2-selection__rendered {
      line-height: 40px;
      padding-right: 15px;
      text-align: right; }
    #elementor-theme-builder-conditions .select2-selection__arrow {
      height: 30px; }
      #elementor-theme-builder-conditions .select2-selection__arrow b {
        border-top-color: #495157;
        border-width: 4px 4px 0 4px;
        margin-top: 2px;
        margin-right: -7px; }
  #elementor-theme-builder-conditions .elementor-repeater-tool-remove {
    font-size: 18px;
    cursor: pointer;
    color: #a4afb7; }
  #elementor-theme-builder-conditions .elementor-button-wrapper {
    margin-top: 50px; }
  #elementor-theme-builder-conditions .elementor-repeater-add {
    font-size: 14px;
    padding: 12px 26px; }

.elementor-error .elementor-theme-builder-conditions-repeater-row-controls {
  border: 1px solid rgba(176, 27, 27, 0.5); }

.elementor-conditions-conflict-message {
  margin-top: 10px;
  font-size: 11px;
  color: #b01b1b;
  text-align: right;
  padding-right: 90px; }
  .elementor-conditions-conflict-message a {
    color: #b01b1b; }

.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item {
  display: inline-block; }
  .elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item i {
    margin-left: 5px; }
  .elementor-panel-footer-theme-builder-buttons-wrapper .elementor-panel-footer-sub-menu-item > * {
    display: inline-block;
    line-height: 40px; }

.elementor-conditions-select2-dropdown {
  border: none;
  border-radius: 0; }
  .elementor-conditions-select2-dropdown .select2-results__message {
    display: none; }
  .elementor-conditions-select2-dropdown .select2-search--dropdown .select2-search__field {
    border-width: 0 0 1px;
    border-radius: 0; }

#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-wrapper {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

#elementor-toast.e-theme-builder-save-toaster .dialog-buttons-message {
  text-align: center; }

#elementor-toast.e-theme-builder-save-toaster .dialog-button {
  border-radius: 3px;
  text-align: center;
  font-size: 12px;
  color: #ffffff;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 27px;
  background-color: #6d7882;
  margin: 0; }
  #elementor-toast.e-theme-builder-save-toaster .dialog-button:hover {
    background-color: #39b54a; }
  #elementor-toast.e-theme-builder-save-toaster .dialog-button i {
    margin-left: 5px; }

#elementor-toast.e-theme-builder-save-toaster .dialog-open_site_editor {
  margin-bottom: 10px; }

.elementor-control.elementor-control-sitemap_items.elementor-control-type-repeater .elementor-repeater-row-tools .elementor-repeater-row-item-title span {
  text-transform: capitalize; }

.elementor-editor-popup .elementor-tab-control-settings a:before {
  content: '\e922'; }

#elementor-publish .elementor-popup__display-settings .elementor-control-type-slider .elementor-control-input-wrapper {
  width: 150px; }

#elementor-publish .elementor-popup__display-settings .elementor-control-input-wrapper {
  width: 80px;
  max-width: 100%; }

.elementor-popup__display-settings {
  text-align: right; }
  .elementor-popup__display-settings_controls_group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 60px;
    background-color: #fff;
    margin-bottom: 10px;
    padding-left: 20px;
    -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.07);
    border-radius: 3px; }
    .elementor-popup__display-settings_controls_group:not(.elementor-active) .elementor-control:nth-child(2) h3 {
      color: #a4afb7; }
    .elementor-popup__display-settings_controls_group__icon {
      width: 60px;
      height: 60px;
      border-left: 1px solid #e6e9ec;
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
      .elementor-popup__display-settings_controls_group__icon img {
        width: 35px; }
    .elementor-popup__display-settings_controls_group .elementor-control {
      padding: 0;
      margin: 0; }
      .elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) {
        width: 230px; }
        .elementor-popup__display-settings_controls_group .elementor-control:nth-child(2) h3 {
          font-size: 16px;
          font-weight: 400; }
      .elementor-popup__display-settings_controls_group .elementor-control:not(:nth-child(2)) .elementor-control-title:not(:empty) {
        width: 75px; }
      .elementor-popup__display-settings_controls_group .elementor-control:not(:last-child) {
        margin-right: 25px; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-control-input-wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-slider .elementor-slider-input {
        width: 45%; }
      .elementor-popup__display-settings_controls_group .elementor-control-type-switcher .elementor-control-field {
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end; }
  .elementor-popup__display-settings .elementor-control-type-section {
    display: none; }
  .elementor-popup__display-settings__group-toggle {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }

#elementor-popup-timing__controls .select2-selection {
  min-height: 27px; }

#elementor-popup-timing__controls .select2-selection__rendered {
  line-height: 1; }

#elementor-popup-timing__controls .select2-selection__choice {
  font-size: 10px; }

#elementor-popup__timing-controls-group--url .elementor-control-url_url .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup__timing-controls-group--sources .elementor-control-sources_sources .elementor-control-input-wrapper {
  width: 300px; }

#elementor-popup__timing-controls-group--devices .elementor-control-devices_devices .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup__timing-controls-group--logged_in .elementor-control-logged_in_roles .elementor-control-input-wrapper {
  width: 195px; }

#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers .elementor-control-input-wrapper {
  width: 100px; }

#elementor-popup__timing-controls-group--browsers .elementor-control-browsers_browsers_options .elementor-control-input-wrapper {
  width: 200px; }

#elementor-popup-settings-introduction {
  position: absolute;
  z-index: 1;
  background-color: #fff;
  color: #556068;
  -webkit-box-shadow: -4px -3px 20px 1px rgba(0, 0, 0, 0.07);
          box-shadow: -4px -3px 20px 1px rgba(0, 0, 0, 0.07);
  height: 110px;
  width: 260px;
  padding: 20px 30px;
  border-radius: 3px; }
  #elementor-popup-settings-introduction:before {
    content: '';
    position: absolute;
    border: solid transparent;
    border-width: 5px 7px;
    border-left-color: #fff;
    right: -14px;
    top: 83%; }
  #elementor-popup-settings-introduction .dialog-close-button {
    top: 10px;
    left: 10px;
    font-size: 13px; }
  #elementor-popup-settings-introduction .dialog-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: 14px;
    font-weight: 500; }
    #elementor-popup-settings-introduction .dialog-header i {
      color: #39b54a;
      font-size: 23px;
      margin-left: 10px; }
  #elementor-popup-settings-introduction .dialog-message {
    margin-top: 10px; }
/*# sourceMappingURL=editor-rtl.css.map */PK!H�:@]]assets/css/frontend-msie.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
@charset "UTF-8";
.elementor-bg-transform .elementor-bg {
  will-change: transform; }

.elementor-bg-transform-zoom-in:hover .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out .elementor-bg {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.elementor-bg-transform-zoom-out:hover .elementor-bg {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.elementor-bg-transform-move-left .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-left:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right .elementor-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
      -ms-transform: scale(1.2) translateX(-8%);
          transform: scale(1.2) translateX(-8%); }

.elementor-bg-transform-move-right:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateX(8%);
      -ms-transform: scale(1.2) translateX(8%);
          transform: scale(1.2) translateX(8%); }

.elementor-bg-transform-move-up .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

.elementor-bg-transform-move-up:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down .elementor-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
      -ms-transform: scale(1.2) translateY(-8%);
          transform: scale(1.2) translateY(-8%); }

.elementor-bg-transform-move-down:hover .elementor-bg {
  -webkit-transform: scale(1.2) translateY(8%);
      -ms-transform: scale(1.2) translateY(8%);
          transform: scale(1.2) translateY(8%); }

/*---------------------------------------------------------------------------*/
.elementor-animated-content {
  --translate: 0, 0; }
  .elementor-animated-content:hover .elementor-animated-item--grow {
    -webkit-transform: scale(1.1);
        -ms-transform: scale(1.1);
            transform: scale(1.1); }
  .elementor-animated-content:hover .elementor-animated-item--shrink {
    -webkit-transform: scale(0.85);
        -ms-transform: scale(0.85);
            transform: scale(0.85); }
  .elementor-animated-content:hover .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content:hover .elementor-animated-item--enter-zoom-out, .elementor-animated-content:hover .elementor-animated-item--enter-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-in {
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out, .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in, .elementor-animated-content:hover .elementor-animated-item--fade-out {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-out {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content:hover .elementor-animated-item--exit-zoom-in {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content:hover .elementor-animated-item--enter-from-right, .elementor-animated-content:hover .elementor-animated-item--enter-from-left, .elementor-animated-content:hover .elementor-animated-item--enter-from-top, .elementor-animated-content:hover .elementor-animated-item--enter-from-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    -webkit-transform: translateY(600px);
        -ms-transform: translateY(600px);
            transform: translateY(600px); }
  .elementor-animated-content:hover .elementor-animated-item--exit-to-right, .elementor-animated-content:hover .elementor-animated-item--exit-to-left, .elementor-animated-content:hover .elementor-animated-item--exit-to-top, .elementor-animated-content:hover .elementor-animated-item--exit-to-bottom {
    opacity: 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-right {
    -webkit-transform: translateX(30px);
        -ms-transform: translateX(30px);
            transform: translateX(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-left {
    -webkit-transform: translateX(-30px);
        -ms-transform: translateX(-30px);
            transform: translateX(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-up {
    -webkit-transform: translateY(-30px);
        -ms-transform: translateY(-30px);
            transform: translateY(-30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-down {
    -webkit-transform: translateY(30px);
        -ms-transform: translateY(30px);
            transform: translateY(30px); }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-right {
    --translate: 8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-left {
    --translate: -8%, 0; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-top {
    --translate: 0, -8%; }
  .elementor-animated-content:hover .elementor-animated-item--move-contained-bottom {
    --translate: 0, 8%; }
  .elementor-animated-content *[class^="elementor-animated-item"] {
    will-change: transform, opacity; }
  .elementor-animated-content .elementor-animated-item--shrink-contained {
    -webkit-transform: scale(1.17);
        -ms-transform: scale(1.17);
            transform: scale(1.17); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-in {
    -webkit-transform: scale(0.2);
        -ms-transform: scale(0.2);
            transform: scale(0.2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out {
    -webkit-transform: scale(2);
        -ms-transform: scale(2);
            transform: scale(2); }
  .elementor-animated-content .elementor-animated-item--enter-zoom-out, .elementor-animated-content .elementor-animated-item--enter-zoom-in, .elementor-animated-content .elementor-animated-item--fade-in {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-zoom-out, .elementor-animated-content .elementor-animated-item--exit-zoom-in, .elementor-animated-content .elementor-animated-item--fade-out {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-animated-content .elementor-animated-item--enter-from-right {
    -webkit-transform: translateX(1000px);
        -ms-transform: translateX(1000px);
            transform: translateX(1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-left {
    -webkit-transform: translateX(-1000px);
        -ms-transform: translateX(-1000px);
            transform: translateX(-1000px); }
  .elementor-animated-content .elementor-animated-item--enter-from-top {
    -webkit-transform: translateY(-600px);
        -ms-transform: translateY(-600px);
            transform: translateY(-600px); }
  .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    -webkit-transform: translateY(500px);
        -ms-transform: translateY(500px);
            transform: translateY(500px); }
  .elementor-animated-content .elementor-animated-item--enter-from-right, .elementor-animated-content .elementor-animated-item--enter-from-left, .elementor-animated-content .elementor-animated-item--enter-from-top, .elementor-animated-content .elementor-animated-item--enter-from-bottom {
    opacity: 0; }
  .elementor-animated-content .elementor-animated-item--exit-to-right, .elementor-animated-content .elementor-animated-item--exit-to-left, .elementor-animated-content .elementor-animated-item--exit-to-top, .elementor-animated-content .elementor-animated-item--exit-to-bottom {
    opacity: 1;
    -webkit-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
            transform: translateY(0) translateX(0); }
  .elementor-animated-content .elementor-animated-item--move-contained-right, .elementor-animated-content .elementor-animated-item--move-contained-left, .elementor-animated-content .elementor-animated-item--move-contained-top, .elementor-animated-content .elementor-animated-item--move-contained-bottom {
    -webkit-transform: scale(1.2) translate(var(--translate));
        -ms-transform: scale(1.2) translate(var(--translate));
            transform: scale(1.2) translate(var(--translate)); }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-widget.elementor-global-widget:hover {
  outline: 1px solid #fec449; }

.elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings {
  background-image: -webkit-gradient(linear, left bottom, left top, from(#feb416), to(#fec449));
  background-image: -webkit-linear-gradient(bottom, #feb416, #fec449);
  background-image: -o-linear-gradient(bottom, #feb416, #fec449);
  background-image: linear-gradient(to top, #feb416, #fec449); }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting:hover {
    background-color: #feb416; }
  .elementor-editor-active .elementor.elementor-edit-mode .elementor-global-widget .elementor-editor-widget-settings .elementor-editor-element-setting.elementor-editor-element-save {
    display: none; }

body.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  width: 100%;
  padding: 0; }

body.rtl.woocommerce #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce div.product .elementor-widget-woocommerce-product-images div.images, body.rtl.woocommerce-page #content div.product .elementor-widget-woocommerce-product-images div.images,
body.rtl.woocommerce-page div.product .elementor-widget-woocommerce-product-images div.images {
  float: none;
  padding: 0; }

.woocommerce div.product.elementor form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.woocommerce div.product.elementor .quantity .qty {
  vertical-align: top;
  margin-right: 0; }

.woocommerce div.product.elementor .quantity + .button {
  margin-left: 10px; }

.woocommerce div.product.elementor .woocommerce-variation-add-to-cart .quantity input {
  height: 100%; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
  margin-right: initial; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart:not(.grouped_form):not(.variations_form) button,
.woocommerce div.product.elementor .elementor-add-to-cart--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
  -ms-flex-preferred-size: auto;
      flex-basis: auto; }

.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form),
.woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%; }

@media (max-width: 1024px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-tablet--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

@media (max-width: 767px) {
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) div.quantity,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
    margin-right: initial; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-left form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-right form.cart.variations_form .woocommerce-variation-add-to-cart button, .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart:not(.grouped_form):not(.variations_form) button,
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-center form.cart.variations_form .woocommerce-variation-add-to-cart button {
    -ms-flex-preferred-size: auto;
        flex-basis: auto; }
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form),
  .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) div.quantity,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart div.quantity {
      margin-right: auto; }
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart:not(.grouped_form):not(.variations_form) button,
    .woocommerce div.product.elementor .elementor-add-to-cart-mobile--align-justify form.cart.variations_form .woocommerce-variation-add-to-cart button {
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%; } }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-info button.button.alt.elementor-button {
  background-color: #5bc0de; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-success button.button.alt.elementor-button {
  background-color: #5cb85c; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-warning button.button.alt.elementor-button {
  background-color: #f0ad4e; }

.woocommerce div.product.elementor .elementor-widget-wc-add-to-cart.elementor-button-danger button.button.alt.elementor-button {
  background-color: #d9534f; }

.elementor-widget-wc-add-to-cart .quantity {
  display: inline-block; }

.elementor-widget-wc-add-to-cart.elementor-align-center form.cart {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-widget-wc-add-to-cart.elementor-align-right form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-widget-wc-add-to-cart.elementor-align-left form.cart {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.woocommerce div.product.elementor {
  /*  Reset WC tabs style  */
  /*  End Reset WC tabs style  */ }
  .woocommerce div.product.elementor ul.tabs:before {
    position: static;
    content: none;
    width: auto;
    bottom: auto;
    left: auto;
    border-bottom: 0;
    z-index: auto; }
  .woocommerce div.product.elementor ul.tabs {
    margin: 0; }
    .woocommerce div.product.elementor ul.tabs li {
      padding: 0; }
      .woocommerce div.product.elementor ul.tabs li a {
        padding: .8em 1.2em;
        line-height: 1; }
    .woocommerce div.product.elementor ul.tabs li:after,
    .woocommerce div.product.elementor ul.tabs li:before {
      border: 0;
      position: static;
      bottom: auto;
      width: auto;
      height: auto;
      content: none;
      -webkit-box-sizing: border-box;
              box-sizing: border-box; }
  .woocommerce div.product.elementor .woocommerce-tabs .panel {
    margin: 0;
    padding: 20px;
    border-radius: 0;
    border-width: 0;
    border-top: 1px solid #d3ced2;
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-top: -1px; }

.woocommerce div.product.elementor .elementor-product-price-block-yes .price del,
.woocommerce div.product.elementor .elementor-product-price-block-yes .price ins {
  display: block; }

.elementor-widget-woocommerce-product-meta .detail-container {
  position: relative; }
  .elementor-widget-woocommerce-product-meta .detail-container:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%; }

.elementor-widget-woocommerce-product-meta .detail-label {
  font-weight: bold; }

.elementor-woo-meta--view-inline .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-woo-meta--view-inline .product_meta .detail-container:after {
    width: auto;
    left: auto;
    right: auto;
    position: absolute;
    height: 100%;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    border-top: 0;
    border-bottom: 0;
    border-right: 0;
    border-left-width: 1px;
    border-style: solid;
    right: -8px; }

.elementor-woo-meta--view-table .product_meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .elementor-woo-meta--view-table .product_meta .detail-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-woo-meta--view-table .product_meta .detail-label {
    min-width: 108px; }

.elementor-woo-meta--view-stacked .product_meta .detail-container {
  display: block; }

.woocommerce div.product.elementor .woocommerce-product-rating {
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.woocommerce div.product.elementor .star-rating {
  margin-top: 0; }

.elementor-product-rating--align-left .woocommerce-product-rating {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-product-rating--align-right .woocommerce-product-rating {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-product-rating--align-center .woocommerce-product-rating {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-product-rating--align-justify .woocommerce-product-rating .woocommerce-review-link {
  margin-left: auto; }

.elementor-products-grid ul.products.elementor-grid {
  display: grid;
  margin: 0;
  grid-column-gap: 20px;
  grid-row-gap: 40px; }
  .elementor-products-grid ul.products.elementor-grid:before, .elementor-products-grid ul.products.elementor-grid:after {
    content: none;
    display: none; }
  .elementor-products-grid ul.products.elementor-grid li.product {
    width: auto;
    padding: 0;
    margin: 0;
    float: none; }
    .elementor-products-grid ul.products.elementor-grid li.product .onsale {
      padding: 0;
      display: none; }
    .elementor-products-grid ul.products.elementor-grid li.product a.woocommerce-loop-product__link {
      display: block;
      position: relative; }

.elementor-products-grid:not(.show-heading-yes) .products > h2 {
  display: none; }

.elementor-products-grid nav.woocommerce-pagination {
  margin-top: 40px; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul {
  border: none 0; }

.elementor-products-grid:not(.elementor-show-pagination-border-yes) nav.woocommerce-pagination ul li {
  border-right: none 0;
  border-left: none 0; }

.elementor-product-loop-item--align-left ul.products li.product .star-rating {
  margin-right: auto; }

.elementor-product-loop-item--align-right ul.products li.product .star-rating {
  margin-left: auto; }

.elementor-product-loop-item--align-center ul.products li.product .star-rating {
  margin-right: auto;
  margin-left: auto; }

.woocommerce .elementor-element.elementor-products-grid ul.products li.product {
  width: auto; }

.woocommerce div.product .elementor-element.elementor-products-grid .related.products ul.products li.product,
.woocommerce div.product .elementor-element.elementor-products-grid .upsells.products ul.products li.product {
  width: auto; }

@media (min-width: 1025px) {
  .elementor-widget-wc-archive-products .woocommerce.columns-2 ul.products {
    grid-template-columns: repeat(2, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-3 ul.products {
    grid-template-columns: repeat(3, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-4 ul.products {
    grid-template-columns: repeat(4, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-5 ul.products {
    grid-template-columns: repeat(5, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-6 ul.products {
    grid-template-columns: repeat(6, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-7 ul.products {
    grid-template-columns: repeat(7, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-8 ul.products {
    grid-template-columns: repeat(8, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-9 ul.products {
    grid-template-columns: repeat(9, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-10 ul.products {
    grid-template-columns: repeat(10, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-11 ul.products {
    grid-template-columns: repeat(11, 1fr); }
  .elementor-widget-wc-archive-products .woocommerce.columns-12 ul.products {
    grid-template-columns: repeat(12, 1fr); } }

@media (max-width: 1024px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(3, 1fr); } }

@media (max-width: 767px) {
  .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr); } }

.elementor.product .woocommerce-product-gallery__trigger + .woocommerce-product-gallery__wrapper {
  overflow: hidden; }

.woocommerce .elementor-widget-woocommerce-product-images span.onsale {
  padding: 0; }

.elementor-menu-cart__wrapper {
  text-align: var(--main-alignment, left); }

.elementor-menu-cart__toggle_wrapper {
  display: inline-block;
  position: relative; }

.elementor-menu-cart__toggle {
  display: inline-block; }
  .elementor-menu-cart__toggle .elementor-button {
    background-color: var(--toggle-button-background-color, transparent);
    color: var(--toggle-button-text-color, #818a91);
    border-style: var(--toggle-button-border-type, solid);
    border-width: var(--toggle-button-border-width, 1px);
    border-color: var(--toggle-button-border-color, #818a91);
    border-radius: var(--toggle-button-border-radius, 0px);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--toggle-icon-padding, 12px 24px); }
    .elementor-menu-cart__toggle .elementor-button:hover {
      color: var(--toggle-button-hover-text-color, #818a91);
      background-color: var(--toggle-button-hover-background-color, transparent);
      border-color: var(--toggle-button-hover-border-color, #818a91); }
      .elementor-menu-cart__toggle .elementor-button:hover .elementor-button-icon {
        color: var(--toggle-button-icon-hover-color, #818a91); }
  .elementor-menu-cart__toggle .elementor-button-text {
    margin-right: 0.3em; }
  .elementor-menu-cart__toggle .elementor-button-icon {
    position: relative;
    -webkit-transition: color 0.1s;
    -o-transition: color 0.1s;
    transition: color 0.1s;
    color: var(--toggle-button-icon-color, #818a91);
    font-size: var(--toggle-icon-size, inherit); }

.elementor-menu-cart--items-indicator-bubble .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: block;
  position: absolute;
  min-width: 1.6em;
  height: 1.6em;
  line-height: 1.5em;
  top: -0.7em;
  right: -0.7em;
  border-radius: 100%;
  color: var(--items-indicator-text-color, #fff);
  background-color: var(--items-indicator-background-color, #d9534f);
  text-align: center;
  font-size: 10px; }

.elementor-menu-cart--items-indicator-plain .elementor-menu-cart__toggle .elementor-button-icon[data-counter]:before {
  content: attr(data-counter);
  display: inline-block;
  font-weight: normal; }

.elementor-menu-cart__container {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  overflow: hidden;
  position: fixed;
  z-index: 9998;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.25);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s;
  transition: background-color 0.4s, -webkit-transform 0s;
  -o-transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s;
  transition: background-color 0.4s, transform 0s, -webkit-transform 0s;
  text-align: left; }

.elementor-menu-cart__main {
  position: fixed;
  left: var(--side-cart-alignment-left, auto);
  right: var(--side-cart-alignment-right, 0);
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  top: 0;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  font-size: 14px;
  min-height: 200px;
  width: 350px;
  max-width: 100%;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: var(--cart-padding, 20px 30px);
  background-color: var(--cart-background-color, #fff);
  -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
  border-style: var(--cart-border-style, none);
  border-color: var(--cart-border-color, initial);
  border-radius: var(--cart-border-radius, 0px);
  margin-top: var(--mini-cart-spacing, 0px); }
  .elementor-menu-cart__main .widget_shopping_cart_content {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
      color: var(--empty-message-color, inherit);
      text-align: var(--empty-message-alignment, left); }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
  background-color: transparent;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0);
  -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  transition: background-color 0.4s, -webkit-transform 0s 0.4s;
  -o-transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s;
  transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container .dialog-lightbox-close-button {
    display: none; }

body.elementor-default .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
  overflow: hidden;
  opacity: 0;
  -webkit-transform: var(--side-cart-alignment-transform, translateX(100%));
      -ms-transform: var(--side-cart-alignment-transform, translateX(100%));
          transform: var(--side-cart-alignment-transform, translateX(100%)); }

.elementor-menu-cart__close-button {
  width: var(--cart-close-icon-size, 25px);
  height: var(--cart-close-icon-size, 25px);
  position: relative;
  margin: 0 0 20px;
  -ms-flex-item-align: end;
      align-self: flex-end;
  cursor: pointer;
  display: inline-block;
  font-family: eicons;
  font-size: 20px;
  line-height: 1;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-menu-cart__close-button:before, .elementor-menu-cart__close-button:after {
    content: '';
    position: absolute;
    height: 3px;
    width: 100%;
    top: 50%;
    left: 0;
    margin-top: -1px;
    background: var(--cart-close-button-color, #818a91);
    border-radius: 1px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-menu-cart__close-button:hover::before, .elementor-menu-cart__close-button:hover::after {
    background: var(--cart-close-button-hover-color, #818a91); }
  .elementor-menu-cart__close-button::before {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg); }
  .elementor-menu-cart__close-button::after {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg); }

.elementor-menu-cart__products {
  max-height: calc(100vh - 250px);
  overflow: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; }

.elementor-menu-cart__product {
  display: grid;
  grid-template-columns: 28% auto;
  grid-template-rows: var(--price-quantity-position--grid-template-rows, auto auto);
  position: relative;
  border-width: 0 0 var(--divider-width, 1px);
  border-bottom-style: var(--divider-style, solid);
  border-bottom-color: var(--divider-color, #D4D4D4); }
  .elementor-menu-cart__product .variation {
    display: grid;
    grid-template-columns: -webkit-max-content auto;
    grid-template-columns: max-content auto;
    margin: 10px 0; }
    .elementor-menu-cart__product .variation dt {
      grid-column-start: 1; }
    .elementor-menu-cart__product .variation dd {
      grid-column-start: 2;
      -webkit-margin-start: 5px;
              margin-inline-start: 5px; }
      .elementor-menu-cart__product .variation dd p {
        margin-bottom: 0; }
  .elementor-menu-cart__product-image {
    grid-row-start: 1;
    grid-row-end: 3;
    width: 100%; }
    .elementor-menu-cart__product-image img, .elementor-menu-cart__product-image a {
      display: block; }
  .elementor-menu-cart__product-name {
    grid-column-start: 2;
    grid-column-end: 3;
    margin: 0; }
    .elementor-menu-cart__product-name a {
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-menu-cart__product-price {
    grid-column-start: 2;
    grid-column-end: 3;
    -ms-flex-item-align: var(--price-quantity-position--align-self, end);
        align-self: var(--price-quantity-position--align-self, end);
    font-weight: 300;
    color: var(--product-price-color, #D4D4D4); }
  .elementor-menu-cart__product-name, .elementor-menu-cart__product-price {
    font-size: 14px;
    padding-left: 20px; }
  .elementor-menu-cart__product-remove {
    color: #818a91;
    width: var(--remove-item-button-size, 22px);
    height: var(--remove-item-button-size, 22px);
    border-radius: var(--remove-item-button-size, 22px);
    border: 1px solid var(--remove-item-button-color, #D4D4D4);
    text-align: center;
    overflow: hidden;
    position: absolute;
    right: 0;
    bottom: 20px;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
    .elementor-menu-cart__product-remove:hover {
      border: 1px solid var(--remove-item-button-hover-color, #D4D4D4); }
      .elementor-menu-cart__product-remove:hover::before, .elementor-menu-cart__product-remove:hover::after {
        background: var(--remove-item-button-hover-color, #D4D4D4); }
    .elementor-menu-cart__product-remove:before, .elementor-menu-cart__product-remove:after {
      content: '';
      position: absolute;
      height: 1px;
      width: 50%;
      top: 50%;
      left: 25%;
      margin-top: -1px;
      background: var(--remove-item-button-color, #D4D4D4);
      z-index: 1;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .elementor-menu-cart__product-remove::before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
    .elementor-menu-cart__product-remove::after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .elementor-menu-cart__product-remove > a {
      display: block;
      z-index: 2;
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      position: absolute; }
      .elementor-menu-cart__product-remove > a.remove_from_cart_button {
        display: var(--remove-from-cart-button, block); }
      .elementor-menu-cart__product-remove > a.elementor_remove_from_cart_button {
        display: var(--elementor-remove-from-cart-button, none); }

.elementor-menu-cart__product:last-child {
  border: none; }

.elementor-menu-cart__product:not(:first-of-type), .elementor-menu-cart__subtotal, .elementor-menu-cart__footer-buttons {
  padding-top: var(--product-divider-gap, 20px); }

.elementor-menu-cart__product {
  padding-right: 30px; }

.elementor-menu-cart__product, .elementor-menu-cart__subtotal {
  padding-bottom: var(--product-divider-gap, 20px); }

.elementor-menu-cart__subtotal {
  font-size: 20px;
  text-align: var(--menu-cart-subtotal-text-align, center);
  font-weight: 600;
  color: var(--menu-cart-subtotal-color, inherit);
  border-style: var(--subtotal-divider-style, solid);
  border-width: var(--subtotal-divider-top-width, 1px) var(--subtotal-divider-right-width, 1px) var(--subtotal-divider-bottom-width, 1px) var(--subtotal-divider-left-width, 1px);
  border-color: var(--subtotal-divider-color, #D4D4D4); }

.elementor-menu-cart__footer-buttons {
  font-size: 20px;
  text-align: var(--cart-footer-buttons-alignment-text-align, center);
  display: var(--cart-footer-buttons-alignment-display, grid);
  grid-template-columns: var(--cart-footer-layout, 1fr 1fr);
  margin-top: var(--cart-buttons-position-margin, 0);
  grid-column-gap: var(--space-between-buttons, 10px);
  grid-row-gap: var(--space-between-buttons, 10px); }
  .elementor-menu-cart__footer-buttons .elementor-button {
    display: inline-block;
    border-radius: var(--cart-footer-buttons-border-radius, 0px);
    height: -webkit-fit-content;
    height: -moz-fit-content;
    height: fit-content; }
    .elementor-menu-cart__footer-buttons .elementor-button--view-cart {
      display: var(--view-cart-button-display, inline-block);
      color: var(--view-cart-button-text-color, #fff);
      padding: var(--view-cart-button-padding, 15px);
      background-color: var(--view-cart-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover {
        color: var(--view-cart-button-hover-text-color, #fff);
        background-color: var(--view-cart-button-hover-background-color, #818a91); }
    .elementor-menu-cart__footer-buttons .elementor-button--checkout {
      display: var(--checkout-button-display, inline-block);
      color: var(--checkout-button-text-color, #fff);
      padding: var(--checkout-button-padding, 15px);
      background-color: var(--checkout-button-background-color, #818a91); }
      .elementor-menu-cart__footer-buttons .elementor-button--checkout:hover {
        color: var(--checkout-button-hover-text-color, #fff);
        background-color: var(--checkout-button-hover-background-color, #818a91); }
    @media (max-width: 767px) {
      .elementor-menu-cart__footer-buttons .elementor-button {
        padding-left: 10px;
        padding-right: 10px; } }

/* The following is all to apply settings from the controls */
.elementor-widget-woocommerce-menu-cart {
  /* Fix to prevent the cart modal flash when using the typography controls */
  /* Fix for short-lived legacy cart type */ }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-subtotal-yes) .elementor-menu-cart__toggle .elementor-button-text {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"]:before {
    content: none; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e3'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e4'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--bag-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e5'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e6'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e7'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--basket-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e8'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-light .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8e9'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-medium .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8ea'; }
  .elementor-widget-woocommerce-menu-cart.toggle-icon--cart-solid .elementor-menu-cart__toggle .elementor-button-icon i:before {
    content: '\e8eb'; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: 25% auto; }
  .elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
    display: none; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__product-remove {
    top: 0;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--top .elementor-menu-cart__products .cart_item:not(:first-of-type) .elementor-menu-cart__product-remove {
    top: 20px;
    bottom: auto; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--middle .elementor-menu-cart__product-remove {
    -webkit-transform: translateY(50%);
        -ms-transform: translateY(50%);
            transform: translateY(50%);
    bottom: 50%; }
  .elementor-widget-woocommerce-menu-cart.remove-item-position--bottom .elementor-menu-cart__product-remove {
    top: auto;
    bottom: 20px; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart {
    /* The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
			and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
      position: absolute;
      z-index: 89;
      width: auto;
      height: auto;
      overflow: visible;
      top: 100%;
      bottom: auto;
      background: none;
      min-width: 330px;
      left: 0;
      right: auto;
      -webkit-transform: scale(1);
          -ms-transform: scale(1);
              transform: scale(1);
      -webkit-transition: background-color 0.4s, -webkit-transform 0s;
      transition: background-color 0.4s, -webkit-transform 0s;
      -o-transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s;
      transition: background-color 0.4s, transform 0s, -webkit-transform 0s; }
    .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__main {
      width: auto;
      height: auto;
      position: relative;
      top: auto;
      bottom: auto;
      right: auto;
      left: auto;
      overflow: visible;
      -webkit-transform: translateY(0);
          -ms-transform: translateY(0);
              transform: translateY(0);
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart .elementor-menu-cart__container {
        min-width: 300px; } }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__container {
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    transition: background-color 0.4s, -webkit-transform 0s 0.4s;
    -o-transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s;
    transition: background-color 0.4s, transform 0s 0.4s, -webkit-transform 0s 0.4s; }
  body.elementor-default .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-mini-cart:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
    opacity: 0;
    -webkit-transform: translateY(-10px);
        -ms-transform: translateY(-10px);
            transform: translateY(-10px); }
  .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown {
    opacity: 1;
    /* This keeps mini-cart panels above other widgets so there's no flash when using the typography controls.
		The sticky setting in Elementor uses z-index 99 so we use 89 to keep it below sticky headers but above all other content
		and still allow 10 layers if 3rd party want to insert content between ours. */ }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown .elementor-menu-cart__container {
      z-index: 9998; }
    .elementor-edit-area-active .elementor-widget-woocommerce-menu-cart.elementor-widget.elementor-loading.elementor-menu-cart--shown.elementor-menu-cart--cart-type-mini-cart {
      z-index: 89; }
  .elementor-widget-woocommerce-menu-cart.elementor-menu-cart--cart-type-dropdown .elementor-menu-cart__container {
    display: none; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-checkout-page {
  background-color: transparent;
  font-family: Roboto, sans-serif;
  font-size: 14px;
  line-height: 21px;
  color: #818a91;
  /* one column layout */
  /* override theme defaults for themes that have hover background colors on these elements. The hover background colors do not play well with the widget's initial design. */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-checkout-page.e-checkout-layout-one-column .e-checkout__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-checkout-page ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > td,
  .elementor-widget-woocommerce-checkout-page table tbody tr:hover > th {
    background-color: transparent; }
  .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: #f7f7f7;
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: #f7f7f7;
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-checkout-page .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-checkout-page .select2-container--open .select2-dropdown--below {
    background-color: #f7f7f7; }
  .elementor-widget-woocommerce-checkout-page .e-description {
    color: var(--sections-descriptions-color, #818a91);
    padding-bottom: var(--sections-descriptions-spacing, 0px);
    font-size: 14px;
    font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section {
    margin-bottom: 24px; }
    .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-section .e-checkout-secondary-title {
      text-align: var(--login-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-login-nudge {
    margin-top: var(--sections-secondary-title-spacing, 24px);
    margin-bottom: 15px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor {
    margin-top: var(--sections-secondary-title-spacing, 24px); }
  .elementor-widget-woocommerce-checkout-page .e-coupon-box {
    margin-top: 24px; }
  .elementor-widget-woocommerce-checkout-page .e-coupon-anchor-description {
    color: var(--forms-labels-color, #818a91);
    margin-bottom: var(--forms-label-spacing, 3px); }
  .elementor-widget-woocommerce-checkout-page .e-login-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-start {
      -webkit-box-flex: 75%;
          -ms-flex: 75%;
              flex: 75%; }
    .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
      -webkit-box-flex: 20%;
          -ms-flex: 20%;
              flex: 20%;
      text-align: right; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-login-wrap {
        display: block; }
        .elementor-widget-woocommerce-checkout-page .e-login-wrap-end {
          text-align: left;
          margin-top: 15px; }
          .elementor-widget-woocommerce-checkout-page .e-login-wrap-end label.e-login-label {
            display: none; } }
  .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-top: 6px; }
    .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
      margin-bottom: 0;
      font-size: 12px; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .e-login-actions-wrap-end .lost_password {
          font-size: 11px; } }
  .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
    width: 90%;
    /* 90% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .e-apply-coupon {
        width: auto; } }
  .elementor-widget-woocommerce-checkout-page .e-checkout__container {
    display: grid;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    grid-template-columns: 56% auto;
    /* column widths - to match the design */
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    grid-column-gap: var(--sections-margin, 24px);
    grid-row-gap: var(--sections-margin, 24px); }
  @media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .e-checkout__container {
      grid-template-columns: repeat(1, 1fr); } }
  .elementor-widget-woocommerce-checkout-page .e-checkout-secondary-title {
    color: var(--sections-secondary-title-color, #818a91);
    margin-bottom: 0; }
  .elementor-widget-woocommerce-checkout-page .e-woocommerce-coupon-nudge {
    text-align: var(--coupon-title-alignment, left); }
  .elementor-widget-woocommerce-checkout-page #ship-to-different-address {
    margin-top: 13px;
    padding-left: var(--shipping-heading-padding-start, 30px); }
    .elementor-widget-woocommerce-checkout-page #ship-to-different-address span {
      font-weight: 400; }
  .elementor-widget-woocommerce-checkout-page a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-checkout-page a:hover {
      color: var(--links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-checkout-page .woocommerce {
    /* Need to use these specific selectors to override WooCommerce CSS */
    /* Need the <button> selector here so that we can target .woocommerce-button
		without being overwritten by WooCommerce's button.button selector.
		We are also targeting .woocommerce-button because none of this styling should
		apply to the Purchase button. Only The Login/Apply coupon button. */
    /* Main Sections styling start */
    /* Main Sections styling end */
    /* Styling for everything classified as 'Messages' start */
    /* Styling for everything classified as 'Messages' end */ }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      padding-left: var(--forms-columns-gap-padding, 0px);
      padding-right: var(--forms-columns-gap-padding, 0px);
      margin-left: var(--forms-columns-gap-margin, 0px);
      margin-right: var(--forms-columns-gap-margin, 0px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row label,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row label {
        color: var(--forms-labels-color, #818a91);
        margin-bottom: var(--forms-label-spacing, 3px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select,
      .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea {
        color: var(--forms-fields-normal-color, #818a91);
        background-color: #f7f7f7;
        border-radius: var(--forms-fields-border-radius, 0px);
        padding: var(--forms-fields-padding, 16px);
        font-size: 14px;
        border: none;
        font-weight: 400; }
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor .form-row textarea:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row .input-text:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row select:focus,
        .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row textarea:focus {
          color: var(--forms-fields-focus-color, #818a91);
          background-color: #f7f7f7;
          border-color: var(--forms-fields-focus-border-color, #818a91);
          -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                  transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-anchor #billing_address_1_field,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box #billing_address_1_field {
      margin-bottom: 5px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .create-account,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box .form-row {
      /* need to use !important here to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 0 !important; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .input-radio,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form__label-for-checkbox span {
      position: relative;
      top: 2px;
      color: var(--sections-checkboxes-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label,
    .elementor-widget-woocommerce-checkout-page .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .wc_payment_method label {
      display: inline; }
    .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #6F6F6F);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: 1rem;
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce button.woocommerce-button:hover {
        color: var(--forms-buttons-hover-text-color, #6F6F6F);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
      margin-right: 1%; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-info {
      border-top-color: transparent;
      background-color: transparent;
      padding: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-privacy-policy-text p {
      font-weight: 400;
      font-size: 12px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
      font-weight: 400;
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-login-section,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment,
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce .shipping_address,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      background: var(--sections-background-color, #ffffff);
      border-radius: var(--sections-border-radius, 3px);
      padding: var(--sections-padding, 16px 30px);
      margin: var(--sections-margin, 0 0 24px 0);
      border-style: var(--sections-border-type, solid);
      border-color: var(--sections-border-color, #D4D4D4);
      border-width: 1px;
      display: block; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
      display: var(--additional-information-display, none); }
    @media (min-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields {
        margin: var(--sections-margin, 0); } }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout #payment .payment_box,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout-message {
      color: var(--sections-messages-color, #818a91);
      font-weight: 400; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
      margin-top: 25px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-1 {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .col2-set .col-2 {
      padding-top: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #order_review_heading {
      text-align: var(--order-review-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table {
      margin-bottom: 0;
      border: 0;
      font-size: 14px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead {
        background-color: transparent; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table thead tr th {
          padding-top: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td {
        color: #000000; }
        .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tbody td .product-quantity {
          font-weight: normal; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tfoot td {
        color: #818a91; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table th {
        border: 0;
        padding-left: 0;
        padding-bottom: 15px;
        padding-top: 15px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total th,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total tr,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table .order-total td {
        padding-bottom: 0; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-checkout-page .woocommerce .shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td {
      font-weight: 400;
      color: var(--order-summary-items-color, #000000);
      border-bottom-color: var(--order-summary-items-divider-color, #818a91);
      border-bottom-width: var(--order-summary-items-divider-weight, 0px);
      border-bottom-style: solid; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-name {
        padding-right: 40px;
        max-width: 150px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .cart_item td.product-total {
        vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table th {
      padding-top: var(--order-summary-rows-gap-top, 15px);
      padding-bottom: var(--order-summary-rows-gap-bottom, 15px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table thead th,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table tfoot th {
      color: var(--order-summary-totals-color, #818a91);
      vertical-align: top; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total td,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout-review-order-table .order-total th {
      border-top-color: var(--order-summary-totals-divider-color, #818a91);
      border-top-width: var(--order-summary-totals-divider-weight, 0px);
      border-top-style: solid; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-totals td {
      max-width: 70px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce h3 {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      margin-bottom: var(--sections-title-spacing, 30px);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row > span {
      font-weight: 400;
      font-size: 14px;
      margin-bottom: 3px;
      color: #818a91; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
      /* use 48% to match the design. Default WC CSS uses 47% */
      width: 48%; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row .input-checkbox {
      vertical-align: middle;
      margin: 0 5px 0 0; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields h3 {
      text-align: var(--billing-details-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row {
      margin-bottom: var(--forms-rows-gap, 5px); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-billing-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-shipping-fields .form-row:last-child, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .woocommerce-account-fields .form-row:last-child {
        margin-bottom: 15px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout.login {
      margin-top: -8px;
      z-index: 999;
      background: #ffffff;
      border-top-width: 0;
      position: relative;
      margin-bottom: 0;
      color: #818a91; }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-first, .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .form-row-last {
        width: 100%; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-coupon-toggle {
      display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
      width: 85%;
      /* 85% to match the design */ }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce-form-login__submit {
          width: 35%;
          /* 35% to match the design */ } }
    .elementor-widget-woocommerce-checkout-page .woocommerce-additional-fields h3 {
      background: var(--additional-fields-title-alignment, left); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-shipping-fields .shipping_address {
      margin-bottom: var(--sections-margin, 20px); }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment {
      margin-top: 24px;
      padding: 15px 25px 25px; }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods {
        border-bottom: none;
        padding: 0; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box {
          background-color: #f7f7f7; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods .payment_box:before {
            display: none; }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li {
          line-height: 21px; }
          .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
            padding-left: 15px;
            font-size: 12px; }
            @media (max-width: 1024px) {
              .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label a {
                float: none;
                font-size: 11px;
                padding-left: 10px; } }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .payment_methods li label img {
              width: 55px;
              /* 55px to match the design */ } }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .place-order {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        padding: 0;
        margin-bottom: 0;
        -webkit-box-align: var(--place-order-title-alignment, stretch);
            -ms-flex-align: var(--place-order-title-alignment, stretch);
                align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
        background-color: #5bc0de;
        width: var(--purchase-button-width, auto);
        float: none;
        color: var(--purchase-button-normal-text-color, #ffffff);
        min-height: auto;
        padding: var(--purchase-button-padding, 1em 1em);
        border-radius: var(--purchase-button-border-radius, 3px); }
        .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
          background-color: #5bc0de;
          color: var(--purchase-button-hover-text-color, #ffffff);
          border-color: var(--purchase-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--purchase-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--purchase-button-hover-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment .woocommerce-info:before {
        display: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-1,
    .elementor-widget-woocommerce-checkout-page .woocommerce-checkout .col2-set .col-2 {
      width: auto;
      float: none; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
      display: grid;
      grid-template-columns: auto auto;
      /*columns widths*/
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
      .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
        text-align: right; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
          display: block; }
          .elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .coupon-col-2 {
            text-align: left; } }
    .elementor-widget-woocommerce-checkout-page .woocommerce #account_password_field {
      /* need to override the style controls,
			these items must not be affected by the controls */
      margin-bottom: 10px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000);
      /* We need to specify these values so that the 'Items' Typography control does not affect
			the 'Variations' */
      font-size: 14px;
      font-style: normal;
      text-transform: none;
      letter-spacing: normal;
      text-decoration: none;
      line-height: 21px; }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: #818a91; }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: #818a91; }

.elementor-widget-woocommerce-cart {
  /* one column layout */
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-cart.e-cart-layout-one-column .e-cart__container {
    grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart table tbody tr:hover > td,
  .elementor-widget-woocommerce-cart table tbody tr:hover > th {
    background-color: inherit; }
  .elementor-widget-woocommerce-cart .e {
    /* .e-clear is a class that is added between the cart sections to fix collapsing margins,
		especially when custom margins are being set by the Style Controls, then the margins could
		start overriding the other margin, leaving one margin */ }
    .elementor-widget-woocommerce-cart .e-clear {
      overflow: hidden;
      height: 0;
      width: 0; }
    .elementor-widget-woocommerce-cart .e-cart {
      /* Main sections styling start */
      /* Main sections styling end */
      /* one column layout */ }
      .elementor-widget-woocommerce-cart .e-cart-section {
        background-color: var(--sections-background-color, #ffffff);
        padding: var(--sections-padding, 16px 30px);
        margin: var(--sections-margin, 0 0 30px 0);
        border-radius: var(--sections-border-radius, 3px);
        border-width: 1px;
        border-style: var(--sections-border-type, solid);
        border-color: var(--sections-border-color, #D4D4D4); }
      @media (min-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart-section:last-child {
          margin: var(--sections-margin, 0); } }
      .elementor-widget-woocommerce-cart .e-cart-content {
        color: var(--sections-descriptions-color, #818a91);
        font-size: 15px;
        font-weight: 400;
        line-height: 23px;
        letter-spacing: 0; }
      .elementor-widget-woocommerce-cart .e-cart__container {
        display: grid;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        grid-template-columns: 59% auto;
        /* 59% to match the required design */
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        grid-column-gap: var(--sections-margin, 30px);
        grid-row-gap: var(--sections-margin, 30px); }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .e-cart__container {
          grid-template-columns: repeat(1, 1fr); } }
      .elementor-widget-woocommerce-cart .e-cart-layout-one-column .e-cart__container {
        grid-template-columns: auto; }
  .elementor-widget-woocommerce-cart .select2-container {
    margin-bottom: 4px; }
    .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 0px);
      border: none;
      height: 45px; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, initial);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: var(--forms-fields-normal-color, #818a91); }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--forms-fields-normal-color, #818a91);
        line-height: 45px;
        padding-left: 1rem;
        padding-right: 1rem; }
      .elementor-widget-woocommerce-cart .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 45px; }
    .elementor-widget-woocommerce-cart .select2-container--open .select2-dropdown--below {
      background-color: #f7f7f7; }
  .elementor-widget-woocommerce-cart .woocommerce {
    font-family: Roboto, sans-serif; }
    .elementor-widget-woocommerce-cart .woocommerce button.button {
      background-color: #ffffff;
      color: var(--forms-buttons-normal-text-color, #818a91);
      border-radius: var(--forms-buttons-border-radius, 3px);
      /* 0.88rem is used here so that this button will match the design layout from Product. */
      padding: var(--forms-buttons-padding, 0.88rem 2rem);
      width: var(--forms-buttons-width, auto);
      border-style: var(--forms-buttons-border-type, solid);
      border-color: var(--forms-buttons-border-color, #5bc0de);
      border-width: 2px; }
      .elementor-widget-woocommerce-cart .woocommerce button.button:hover {
        color: var(--forms-buttons-hover-text-color, #818a91);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
        border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce button.button.disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled] {
        /* 0.88rem is used here so that this button will match the design layout from Product. */
        padding: var(--forms-buttons-padding, 0.88rem 2rem);
        color: var(--forms-buttons-normal-text-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce button.button.disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled:hover, .elementor-widget-woocommerce-cart .woocommerce button.button:disabled[disabled]:hover {
          background-color: var(--forms-buttons-hover-background-color, #ffffff);
          color: var(--forms-buttons-hover-text-color, #818a91);
          -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                  transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
          border-color: var(--forms-buttons-hover-border-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li label {
      color: var(--sections-radio-buttons-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce #shipping_method li input {
      vertical-align: middle; }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-form {
      margin-top: var(--sections-descriptions-spacing, 15px); }
    .elementor-widget-woocommerce-cart .woocommerce .woocommerce-shipping-destination {
      color: var(--sections-descriptions-color, #818a91);
      margin-bottom: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tbody th {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td {
      text-align: left !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr.woocommerce-shipping-totals td::before {
        width: 100%;
        margin-bottom: 10px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td {
      text-align: right !important;
      /* need important here because Woo also has !important */ }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr td::before, .elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table.shop_table_responsive tr td::before {
        content: attr(data-title);
        font-weight: 700;
        float: left; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      text-align: var(--totals-title-alignment, left); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td {
      padding-top: var(--totals-rows-gap-top, 12px);
      padding-bottom: var(--totals-rows-gap-bottom, 9px); }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td:before,
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td .woocommerce-Price-amount {
        color: var(--totals-color, #818a91);
        font-weight: 700; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total td {
      border-top-color: var(--totals-divider-color, #818a91);
      border-top-width: var(--totals-divider-weight, 0); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals .form-row {
      margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
      color: var(--product-link-normal-color, #000000); }
      .elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
        color: var(--product-link-hover-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .form-row {
      padding: 3px 0;
      margin: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .input-text,
    .elementor-widget-woocommerce-cart .woocommerce select {
      color: var(--forms-fields-normal-color, #818a91);
      background-color: #f7f7f7;
      border-radius: var(--forms-fields-border-radius, 3px);
      border: none;
      padding: var(--forms-fields-padding, 16px);
      font-size: 14px; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-webkit-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-webkit-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-moz-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-moz-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::-ms-input-placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::-ms-input-placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text::placeholder,
      .elementor-widget-woocommerce-cart .woocommerce select::placeholder {
        color: var(--forms-fields-normal-color, inherit);
        font-family: inherit;
        opacity: .6; }
      .elementor-widget-woocommerce-cart .woocommerce .input-text:focus,
      .elementor-widget-woocommerce-cart .woocommerce select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        background-color: #f7f7f7;
        border-color: var(--forms-fields-focus-border-color, transparent);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-webkit-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-webkit-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-moz-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-moz-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::-ms-input-placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::-ms-input-placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
        .elementor-widget-woocommerce-cart .woocommerce .input-text:focus::placeholder,
        .elementor-widget-woocommerce-cart .woocommerce select:focus::placeholder {
          color: var(--forms-fields-focus-color, #818a91); }
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
      background-color: transparent;
      color: var(--order-summary-color, #000000);
      border-width: var(--order-summary-quantity-border-weight, 1px);
      border-style: solid;
      border-color: var(--order-summary-quantity-border-color, #D4D4D4);
      border-radius: 3px;
      padding: 1px 2px;
      text-align: left;
      font-size: 14px;
      min-height: 28px;
      max-height: 28px; }
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
      padding-bottom: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-align: var(--place-order-title-alignment, stretch);
          -ms-flex-align: var(--place-order-title-alignment, stretch);
              align-items: var(--place-order-title-alignment, stretch); }
      .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button {
        padding: var(--checkout-button-padding, 15px 1em);
        width: var(--checkout-button-width, auto);
        font-size: 15px;
        text-align: center;
        color: var(--checkout-button-normal-text-color, #ffffff);
        background-color: #5bc0de;
        border-radius: var(--checkout-button-border-radius, 3px);
        min-height: auto;
        margin-bottom: 0; }
        .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover {
          color: var(--checkout-button-hover-text-color, #ffffff);
          background-color: #5bc0de;
          border-color: var(--checkout-button-hover-border-color, #5bc0de);
          -webkit-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
               -o-transition-duration: var(--checkout-button-hover-transition-duration, 0.3s);
                  transition-duration: var(--checkout-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-cart .woocommerce .remove {
      background: transparent;
      color: var(--order-summary-remove-icon-normal-color, #000000) !important;
      /* need important here because Woo also has !important */
      width: auto; }
      .elementor-widget-woocommerce-cart .woocommerce .remove:hover {
        background: transparent;
        color: var(--order-summary-remove-icon-hover-color, #5bc0de) !important;
        /* need important here because Woo also has !important */ }
    .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals {
      float: none;
      width: 100%; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals td {
        padding-left: 0; }
      .elementor-widget-woocommerce-cart .woocommerce .cart-collaterals .cart_totals .woocommerce-shipping-totals td {
        padding-right: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
      float: right;
      width: 100%; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon .form-row {
      padding: 0; }
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
        -webkit-box-flex: 2;
            -ms-flex: 2;
                flex: 2;
        padding-right: 30px; }
        @media (max-width: 1024px) {
          .elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
            padding-right: 0; } }
      .elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
          display: block; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce .coupon {
        margin: var(--sections-margin, 0); }
        .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
          width: 100%;
          margin-right: 0;
          margin-bottom: 15px; }
        .elementor-widget-woocommerce-cart .woocommerce .coupon .button {
          width: 100%; } }
    .elementor-widget-woocommerce-cart .woocommerce table.shop_table {
      border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
        float: left;
        font-size: 14px;
        font-weight: 700; }
      @media (max-width: 1024px) {
        .elementor-widget-woocommerce-cart .woocommerce table.shop_table .button {
          float: none;
          width: 100%; } }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table th {
        border: 0 solid; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > td,
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table tr:nth-child(odd) > th {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .actions {
        padding: 16px 0 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table .product-remove a {
        display: inline-block; }
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart tbody tr:last-child {
        display: var(--update-cart-automatically-display, table-row); }
    .elementor-widget-woocommerce-cart .woocommerce table.cart {
      margin-bottom: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart img {
        width: 55px;
        height: auto;
        display: block; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-top: var(--order-summary-rows-gap-top, 20px);
        padding-right: 20px;
        padding-bottom: var(--order-summary-rows-gap-bottom, 20px);
        padding-left: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td span {
          color: var(--order-summary-color, #000000);
          font-size: 14px;
          font-weight: 400; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
          border-top-width: var(--order-summary-items-divider-weight, 1px);
          border-top-style: solid;
          border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
          @media (max-width: 768px) {
            .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-price, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity, .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-subtotal, .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
              border-top-width: 0; } }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove {
          padding-left: 0;
          padding-right: 0; }
      @media (min-width: 767px) {
        .elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:first-child td {
          border-top: none; } }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-remove {
        position: relative; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart.product-name {
        padding-right: 0; }
      .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
        border-top-width: var(--order-summary-items-divider-weight, 1px);
        border-top-color: var(--order-summary-items-divider-color, #D4D4D4); }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
          border-top: none; } }
    @media (max-width: 768px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart td {
        padding-left: 0;
        padding-right: 0; } }
    @media (max-width: 767px) {
      .elementor-widget-woocommerce-cart .woocommerce table.cart {
        padding: 0; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart tr {
          padding: 16px 28px; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart tr:first-child {
            border-top: none; }
        .elementor-widget-woocommerce-cart .woocommerce table.cart td {
          padding-left: 0;
          padding-right: 0; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td:first-child {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name {
            border-top: none; }
          .elementor-widget-woocommerce-cart .woocommerce table.cart td.actions {
            padding: 0; } }
    .elementor-widget-woocommerce-cart .woocommerce a {
      color: var(--links-normal-color, #5bc0de); }
      .elementor-widget-woocommerce-cart .woocommerce a:hover {
        color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2,
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      font-size: 14px;
      font-weight: 700;
      margin-top: 0;
      padding-top: 0;
      padding-bottom: 8px;
      padding-left: 0;
      padding-right: 20px; }
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
      margin-bottom: var(--sections-title-spacing, 1rem);
      color: var(--sections-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart th {
      padding-bottom: var(--order-summary-title-spacing, 8px);
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .cart td::before {
      color: var(--order-summary-title-color, #000000); }
    .elementor-widget-woocommerce-cart .woocommerce .shipping-calculator-button::after {
      display: none; }
    .elementor-widget-woocommerce-cart .woocommerce .product-name .variation {
      color: var(--order-summary-variations-color, #000000); }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-cart .woocommerce table.shop_table_responsive tr:nth-child(2n) td, .elementor-widget-woocommerce-cart .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td {
        background-color: transparent; }
      .elementor-widget-woocommerce-cart .woocommerce .cart_totals .shop_table_responsive td {
        padding-left: 0; } }

/* Select2 dropdown options are outside of the widget container */
.e-woo-select2-wrapper .select2-results__option {
  font-family: Roboto, sans-serif;
  font-size: 14px;
  color: var(--forms-fields-normal-color, #818a91); }
  .e-woo-select2-wrapper .select2-results__option:focus {
    color: var(--forms-fields-focus-color, #818a91);
    border-color: var(--forms-fields-focus-border-color, #818a91);
    -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
         -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
            transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }

.elementor-widget-woocommerce-my-account {
  font-family: Roboto, sans-serif;
  color: #818a91;
  /* Make select2 appear like other inputs start */
  /* Make select2 appear like other inputs end */ }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .shop_table, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .shop_table {
    border: none;
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    background-color: var(--sections-background-color, #ffffff); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__dashboard .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-account .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__orders .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__downloads .woocommerce-MyAccount-content-wrapper {
    padding: var(--sections-padding, 16px 30px 3px 30px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-address-fields,
  .elementor-widget-woocommerce-my-account .e-my-account-tab address {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content {
    border: 0; }
    .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-MyAccount-content-wrapper, .elementor-widget-woocommerce-my-account .e-my-account-tab__edit-address .woocommerce-MyAccount-content-wrapper {
      padding: 0;
      border: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    margin-bottom: 40px; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .woocommerce-table--order-downloads,
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .order_details {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px 3px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px); }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content > div > p {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single {
    color: var(--forms-fields-normal-color, #818a91);
    background-color: var(--forms-fields-normal-background-color, #f7f7f7);
    border-radius: var(--forms-fields-border-radius, 0px);
    border: none;
    height: 45px; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single:focus {
      color: var(--forms-fields-focus-color, #818a91);
      background-color: var(--forms-fields-focus-background-color, #f7f7f7);
      border-color: var(--forms-fields-focus-border-color, initial);
      -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
              transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__placeholder {
      color: var(--forms-fields-normal-color, #818a91); }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__rendered {
      color: var(--forms-fields-normal-color, #818a91);
      line-height: 45px;
      padding-left: 1rem;
      padding-right: 1rem; }
    .elementor-widget-woocommerce-my-account .select2-container--default .select2-selection--single .select2-selection__arrow {
      height: 45px; }
  .elementor-widget-woocommerce-my-account .select2-container--open .select2-dropdown--below {
    background-color: var(--forms-fields-normal-background-color, #f7f7f7); }
  .elementor-widget-woocommerce-my-account .woocommerce ::-webkit-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-moz-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::-ms-input-placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce ::placeholder {
    color: var(--forms-fields-normal-color, inherit);
    font-family: inherit;
    opacity: .6; }
  .elementor-widget-woocommerce-my-account .woocommerce-message {
    font-size: 14px; }
  .elementor-widget-woocommerce-my-account .woocommerce address {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce a {
    color: var(--links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a:hover {
      color: var(--links-hover-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce a.button.alt:hover {
      background-color: initial; }
    .elementor-widget-woocommerce-my-account .woocommerce a.button:hover {
      background-color: initial; }
  .elementor-widget-woocommerce-my-account .woocommerce em {
    font-size: 12px;
    color: var(--login-messages-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .form-row {
    padding-left: var(--forms-columns-gap-padding-left, 0px);
    padding-right: var(--forms-columns-gap-padding-right, 0px);
    margin-left: var(--forms-columns-gap-margin-left, 0px);
    margin-right: var(--forms-columns-gap-margin-right, 0px);
    margin-bottom: var(--forms-rows-gap, 6px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row label {
      color: var(--forms-labels-color, #818a91);
      margin-bottom: var(--forms-label-spacing, 0px); }
    .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text,
    .elementor-widget-woocommerce-my-account .woocommerce .form-row select {
      color: var(--forms-fields-normal-color, #818a91);
      border-radius: var(--forms-fields-border-radius, 0px);
      padding: var(--forms-fields-padding, 16px);
      background: #f7f7f7;
      border: none;
      font-size: 14px; }
      .elementor-widget-woocommerce-my-account .woocommerce .form-row .input-text:focus,
      .elementor-widget-woocommerce-my-account .woocommerce .form-row select:focus {
        color: var(--forms-fields-focus-color, #818a91);
        border-color: var(--forms-fields-focus-border-color, #818a91);
        -webkit-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-fields-focus-transition-duration, 0.3s);
                transition-duration: var(--forms-fields-focus-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce #billing_address_1_field {
    margin-bottom: 5px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-privacy-policy-text,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-privacy-policy-text {
    margin-bottom: 15px;
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(2),
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    color: var(--login-messages-color, #818a91);
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .login .woocommerce-LostPassword,
  .elementor-widget-woocommerce-my-account .woocommerce .register .woocommerce-LostPassword {
    font-size: 12px;
    margin-bottom: 0px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    width: 50%;
    /* 50% to match the design - it would normally be full width */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword p {
      color: var(--general-text-color, #818a91); }
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .form-row-first {
      width: 100%; }
  .elementor-widget-woocommerce-my-account .woocommerce .login,
  .elementor-widget-woocommerce-my-account .woocommerce .register,
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword {
    background-color: var(--sections-background-color, #ffffff);
    padding: var(--sections-padding, 16px 30px);
    border-style: var(--sections-border-type, solid);
    border-color: var(--sections-border-color, #D4D4D4);
    border-width: 1px;
    border-radius: var(--sections-border-radius, 3px);
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .login .button,
    .elementor-widget-woocommerce-my-account .woocommerce .register .button,
    .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button {
      background: #5bc0de;
      border: none;
      color: var(--forms-buttons-normal-text-color, #ffffff);
      border-radius: var(--forms-buttons-border-radius, 3px);
      padding: var(--forms-buttons-padding, 12px 32px); }
      .elementor-widget-woocommerce-my-account .woocommerce .login .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .register .button:hover,
      .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-ResetPassword .button:hover {
        color: var(--forms-buttons-hover-text-color, #ffffff);
        -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
                transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce .login p:nth-child(3) {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce .register p:nth-child(2) {
    margin-top: 10px;
    font-size: 12px; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__input-checkbox {
    vertical-align: middle; }
  .elementor-widget-woocommerce-my-account .woocommerce p:last-of-type {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-form__label-for-checkbox span {
    color: var(--checkboxes-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tr,
  .elementor-widget-woocommerce-my-account .woocommerce td,
  .elementor-widget-woocommerce-my-account .woocommerce th {
    border: none; }
  .elementor-widget-woocommerce-my-account .woocommerce h2,
  .elementor-widget-woocommerce-my-account .woocommerce h3 {
    color: var(--typography-section-titles-color, #000000);
    margin-top: 0;
    margin-bottom: var(--section-title-spacing, 45px);
    font-weight: 400; }
  .elementor-widget-woocommerce-my-account .woocommerce strong {
    color: var(--general-text-color, #000000); }
    .elementor-widget-woocommerce-my-account .woocommerce strong.wc-item-meta-label {
      color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .wc-item-meta {
    color: var(--variations-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .product-quantity {
    font-weight: 400;
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce .woocommerce-order-downloads {
    margin-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
    float: left;
    width: 25%;
    /* 25% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation {
        width: 100%; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul {
      -webkit-padding-start: 0;
              padding-inline-start: 0; }
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li {
        list-style-type: none;
        margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
        display: inline-block;
        width: 100%;
        /* add a Divider between the tabs that is outside of the margins */ }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li::after {
          content: "";
          display: block;
          width: 100%;
          background-color: var(--tabs-divider-color, #818a91);
          height: var(--tabs-divider-weight, 0px);
          position: relative;
          top: calc(var(--tabs-spacing, 2px) / 2); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.is-active a {
          color: var(--tabs-active-color, #5bc0de);
          background: #eceeef;
          border-color: var(--tabs-active-border-color, transparent); }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
          font-style: normal;
          font-weight: bold;
          font-size: 14px;
          color: var(--tabs-normal-color, #818a91);
          display: block;
          padding: var(--tabs-padding, 12px 20px);
          text-align: var(--tabs-alignment, start);
          background: #f7f7f7;
          border-radius: var(--tabs-border-radius, 0px);
          border-style: var(--tabs-border-type, solid);
          border-color: var(--tabs-border-color, transparent);
          border-width: 0px; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a:hover {
            color: var(--tabs-hover-color, #5bc0de);
            border-color: var(--tabs-hover-border-color, transparent); }
          @media (max-width: 1024px) {
            .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li a {
              padding: var(--tabs-padding, 10px); } }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard {
          margin-top: 0; }
        .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
          margin-bottom: 0; }
          .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout::after {
            display: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
    float: right;
    width: 75%;
    /* 75% to match the design */
    padding: 0;
    padding-left: var(--tab-content-spacing, 6%);
    /* 6% to match the design */ }
    @media (max-width: 1024px) {
      .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content {
        width: 100%;
        padding: var(--tab-content-spacing, 6%) 0 0 0; } }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content-wrapper {
      font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content p:last-of-type {
      margin-bottom: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content h2:first-of-type {
      margin-top: 30px; }
    .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content mark {
      background-color: transparent;
      font-weight: bold;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce caption + thead tr:first-child th,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce colgroup + thead tr:first-child th {
    border-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child td,
  .elementor-widget-woocommerce-my-account .woocommerce thead:first-child tr:first-child th {
    border-top: 0;
    padding-left: 0;
    padding-top: 0;
    padding-bottom: var(--tables-titles-spacing, 9px); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(odd) > th,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > td,
  .elementor-widget-woocommerce-my-account .woocommerce tbody > tr:nth-child(even) > th {
    background-color: transparent;
    padding-left: 0;
    padding-top: var(--order-summary-rows-gap-top, 9px);
    padding-bottom: var(--order-summary-rows-gap-bottom, 9px);
    color: var(--tables-items-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce tbody .woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number > a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .shop_table {
    font-size: 14px; }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table td, .elementor-widget-woocommerce-my-account .woocommerce .shop_table th {
      border-top-style: var(--tables-divider-border-type, solid);
      border-top-width: var(--tables-divider-border-width, 1px);
      border-top-color: var(--tables-divider-border-color, #D4D4D4); }
    .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th {
      color: var(--tables-title-color, #000000); }
      .elementor-widget-woocommerce-my-account .woocommerce .shop_table thead tr th span {
        color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot th,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details tfoot td {
    padding-left: 0;
    color: var(--tables-title-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a,
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a {
    color: var(--tables-links-normal-color, #5bc0de); }
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .download-product a:hover,
    .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-name a:hover {
      color: var(--tables-links-hover-color, #5bc0de); }
  .elementor-widget-woocommerce-my-account .woocommerce .order_details .product-purchase-note td {
    border-top: none;
    padding-top: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce .order-again .button {
    background: transparent;
    border: 2px solid #5bc0de;
    border-style: var(--tables-buttons-border-type, solid);
    border-color: var(--tables-buttons-border-color, #5bc0de);
    border-width: 2px;
    border-radius: var(--tables-button-border-radius, 3px);
    vertical-align: middle;
    color: var(--tables-button-normal-text-color, #818a91);
    margin-top: 0;
    margin-bottom: 0;
    padding: var(--tables-button-padding, 12px 32px); }
    .elementor-widget-woocommerce-my-account .woocommerce .order-again .button:hover {
      color: var(--tables-button-hover-text-color, #818a91);
      -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
              transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .title h3, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .title h3 {
    float: none; }
  .elementor-widget-woocommerce-my-account .woocommerce-Address address, .elementor-widget-woocommerce-my-account .woocommerce-Addresses address {
    padding: var(--sections-padding, 45px 30px 16px 30px); }
  .elementor-widget-woocommerce-my-account .woocommerce-Address .edit, .elementor-widget-woocommerce-my-account .woocommerce-Addresses .edit {
    float: left;
    position: absolute;
    margin-left: var(--edit-link-margin-start, 30px);
    margin-top: var(--edit-link-margin-top, 10px); }
  .elementor-widget-woocommerce-my-account .woocommerce .u-columns {
    margin-top: 20px; }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset {
    border: none;
    padding: 0;
    -webkit-margin-start: 0;
            margin-inline-start: 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm fieldset legend, .elementor-widget-woocommerce-my-account .woocommerce-address-fields fieldset legend {
      font-weight: 700;
      padding: 20px 0;
      color: var(--general-text-color, #000000); }
  .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button {
    background: #5bc0de;
    border: none;
    color: var(--forms-buttons-normal-text-color, #ffffff);
    border-radius: var(--forms-buttons-border-radius, 3px);
    padding: var(--forms-buttons-padding, 12px 32px);
    margin-top: 20px; }
    .elementor-widget-woocommerce-my-account .woocommerce-EditAccountForm .button:hover, .elementor-widget-woocommerce-my-account .woocommerce-address-fields .button:hover {
      color: var(--forms-buttons-hover-text-color, #ffffff);
      -webkit-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
           -o-transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s);
              transition-duration: var(--forms-buttons-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-pagination {
    padding: 16px 0; }
    .elementor-widget-woocommerce-my-account .woocommerce-pagination .button {
      background: transparent;
      border-style: var(--tables-buttons-border-type, solid);
      border-color: var(--tables-buttons-border-color, #5bc0de);
      border-radius: var(--tables-button-border-radius, 3px);
      border-width: 2px;
      vertical-align: middle;
      color: var(--tables-button-normal-text-color, #818a91);
      padding: var(--tables-button-padding, 5px 10px); }
      .elementor-widget-woocommerce-my-account .woocommerce-pagination .button:hover {
        color: var(--tables-button-hover-text-color, #818a91);
        -webkit-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
             -o-transition-duration: var(--tables-button-hover-transition-duration, 0.3s);
                transition-duration: var(--tables-button-hover-transition-duration, 0.3s); }
  .elementor-widget-woocommerce-my-account .woocommerce-OrderUpdates {
    color: var(--general-text-color, #818a91); }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-name.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .woocommerce-table__line-item.order_item .woocommerce-table__product-total.product-total.product-purchase-note-is-below {
    padding-bottom: 0; }
  .elementor-widget-woocommerce-my-account .e-my-account-tab__view-order .shop_table td {
    vertical-align: top;
    line-height: unset; }

.e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%; }
  .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
    display: inline-block; }

.e-my-account-tabs-vertical .woocommerce-MyAccount-navigation {
  display: block; }

.e-my-account-tabs-vertical .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-navigation {
  display: none; }

.e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation {
  display: block; }
  .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: var(--tabs-container-justify-content, space-between);
        -ms-flex-pack: var(--tabs-container-justify-content, space-between);
            justify-content: var(--tabs-container-justify-content, space-between); }
    @media (max-width: 767px) {
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul {
        display: block; } }
    .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
      display: inline-block;
      width: var(--tab-width, 100%);
      padding: 0 calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2);
      margin: 0;
      border-right-color: var(--tabs-divider-color, #818a91);
      border-right-width: var(--tabs-divider-weight, 0px);
      border-right-style: solid; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li::after {
        display: none; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:first-of-type {
        padding-left: 0; }
      .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li:last-of-type {
        padding-right: 0;
        border-right-width: 0; }
      @media (max-width: 767px) {
        .e-my-account-tabs-horizontal .e-wc-account-tabs-nav .woocommerce-MyAccount-navigation ul li {
          margin: calc(var(--tabs-spacing, 2px) / 2) 0 calc(var(--tabs-spacing, 2px) / 2) 0;
          display: inline-block;
          width: 100%; } }

.e-my-account-tabs-horizontal .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  padding: var(--tab-content-spacing, 50px) 0 0 0; }

/**
 * Specific styling in the Editor.
 */
.elementor-editor-active,
.elementor-editor-preview {
  /**
	 * Prep for the js switching of tabs when in the editor.
	 */
  /**
	 * Disable all but the first 'View' order button as
	 * this is the only order loaded for preview purposes.
	 */ }
  .elementor-editor-active .elementor-widget-container,
  .elementor-editor-preview .elementor-widget-container {
    min-height: 1px; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-number a,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-number a {
    pointer-events: none; }
  .elementor-editor-active tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button,
  .elementor-editor-preview tr:not(:first-child) .woocommerce-orders-table__cell-order-actions .button {
    pointer-events: none;
    opacity: .3; }

/**
 * Hide all the other My Account pages' content in the Editor except the first one - dashboard page
 */
.elementor-editor-active .elementor-widget-woocommerce-my-account .woocommerce-MyAccount-content:not(:first-of-type) {
  display: none; }

.product .count {
  background-color: inherit; }

.elementor-widget-woocommerce-product-additional-information:not(.elementor-show-heading-yes) h2 {
  display: none; }

.woocommerce div.product.elementor form.cart div.product-addon {
  -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
  -ms-flex-negative: 0;
      flex-shrink: 0; }

.e-sticky-right-column--active {
  position: -webkit-sticky;
  position: sticky;
  top: 0; }

.elementor-theme-builder-content-area {
  height: 400px; }

.elementor-location-header:before,
.elementor-location-footer:before {
  content: '';
  display: table;
  clear: both; }

.elementor-posts.elementor-posts--skin-archive_full_content article.elementor-post {
  display: block; }

.elementor-post-navigation-borders-yes .elementor-post-navigation.elementor-grid {
  color: #D4D4D4;
  border: none;
  border-top: 1px solid;
  border-bottom: 1px solid;
  padding-top: 10px;
  padding-bottom: 10px; }

.elementor-post-navigation-borders-yes .elementor-post-navigation__separator {
  height: 100%;
  width: 1px;
  margin: 0 auto;
  background-color: #D4D4D4; }

.elementor-post-navigation {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-post-navigation .post-navigation__arrow-wrapper {
    color: #D4D4D4; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-prev {
      font-size: 30px;
      padding-right: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper.post-navigation__arrow-next {
      font-size: 30px;
      padding-left: 15px; }
    .elementor-post-navigation .post-navigation__arrow-wrapper i {
      -webkit-transform: translateY(-5%);
          -ms-transform: translateY(-5%);
              transform: translateY(-5%); }
  .elementor-post-navigation .elementor-post-navigation__link__prev, .elementor-post-navigation .elementor-post-navigation__link__next {
    overflow: hidden; }
  .elementor-post-navigation .elementor-post-navigation__link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 100%; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__next--label {
    text-transform: uppercase;
    font-size: 0.8em; }
  .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--title {
    font-size: 0.7em; }
  .elementor-post-navigation .post-navigation__prev--label, .elementor-post-navigation .post-navigation__prev--title, .elementor-post-navigation .post-navigation__next--label, .elementor-post-navigation .post-navigation__next--title {
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis; }
  .elementor-post-navigation span.elementor-post-navigation__link__next {
    text-align: right; }
  .elementor-post-navigation span.elementor-post-navigation__link__next, .elementor-post-navigation span.elementor-post-navigation__link__prev {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.elementor-post-navigation .elementor-grid {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.elementor-post-navigation .elementor-post-navigation__link {
  width: calc( 50% - ( 1px / 2 ));
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-post-navigation .elementor-post-navigation__separator-wrapper {
  text-align: center; }

.elementor-post-navigation .elementor-post-navigation__next {
  text-align: right; }
  .elementor-post-navigation .elementor-post-navigation__next a {
    float: right; }

.elementor-search-form {
  display: block;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
  /*------ Reset ------*/ }
  .elementor-search-form .e-font-icon-svg-container {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .elementor-search-form input[type="search"], .elementor-search-form button {
    margin: 0;
    border: 0;
    padding: 0;
    display: inline-block;
    vertical-align: middle;
    white-space: normal;
    background: none;
    line-height: 1;
    min-width: 0;
    font-size: 15px;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .elementor-search-form input[type="search"]:focus, .elementor-search-form button:focus {
      outline: 0;
      color: inherit; }
  .elementor-search-form button {
    background-color: #818a91;
    font-size: var(--e-search-form-submit-icon-size, 16px);
    color: #fff;
    border-radius: 0; }
  .elementor-search-form__container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.2s;
    -o-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
    border: 0 solid transparent;
    min-height: 50px; }
    .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      background: #eceeef; }
  .elementor-search-form__input {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    color: #55595c;
    -webkit-transition: color 0.2s;
    -o-transition: color 0.2s;
    transition: color 0.2s; }
    .elementor-search-form__input::-webkit-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input:-moz-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::-ms-input-placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
    .elementor-search-form__input::placeholder {
      color: inherit;
      font-family: inherit;
      opacity: 0.6; }
  .elementor-search-form__submit {
    -webkit-transition: color 0.2s, background 0.2s;
    -o-transition: color 0.2s, background 0.2s;
    transition: color 0.2s, background 0.2s;
    font-size: var(--e-search-form-submit-icon-size, 16px); }
    .elementor-search-form__submit svg {
      fill: var(--e-search-form-submit-text-color, #fff);
      width: var(--e-search-form-submit-icon-size, 16px);
      height: var(--e-search-form-submit-icon-size, 16px); }
  .elementor-search-form .elementor-search-form__submit, .elementor-search-form .elementor-search-form__submit:hover {
    color: var(--e-search-form-submit-text-color, #fff);
    border: none;
    border-radius: 0; }
  .elementor-search-form--button-type-text .elementor-search-form__submit {
    -ms-flex-negative: 0;
        flex-shrink: 0; }
  .elementor-search-form--skin-minimal .elementor-search-form__icon {
    opacity: 0.6;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    color: #55595c;
    fill: #55595c;
    font-size: var(--e-search-form-icon-size-minimal, 15px); }
    .elementor-search-form--skin-minimal .elementor-search-form__icon svg {
      width: var(--e-search-form-icon-size-minimal, 15px);
      height: var(--e-search-form-icon-size-minimal, 15px); }
  .elementor-search-form--skin-full_screen .elementor-search-form input[type="search"].elementor-search-form__input {
    font-size: 50px;
    text-align: center;
    border-style: solid;
    border-width: 0 0 1px 0;
    border-color: #fff;
    line-height: 1.5;
    color: #fff; }
  .elementor-search-form--skin-full_screen .elementor-search-form__toggle {
    display: inline-block;
    cursor: pointer;
    vertical-align: middle;
    color: var(--e-search-form-toggle-color, #494c4f);
    font-size: var(--e-search-form-toggle-size, 33px); }
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle i,
    .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container {
      position: relative;
      display: block;
      -webkit-transition: 0.2s;
      -o-transition: 0.2s;
      transition: 0.2s;
      width: var(--e-search-form-toggle-size, 33px);
      height: var(--e-search-form-toggle-size, 33px);
      background-color: var(--e-search-form-toggle-background-color, rgba(0, 0, 0, 0.05));
      border-style: solid;
      border-color: var(--e-search-form-toggle-color, #494c4f);
      border-width: var(--e-search-form-toggle-border-width, 0);
      border-radius: var(--e-search-form-toggle-border-radius, 3px); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        position: absolute;
        left: 50%;
        top: 50%;
        -webkit-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i:before,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container:before {
        font-size: var(--e-search-form-toggle-icon-size, 0.55em); }
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle i svg,
      .elementor-search-form--skin-full_screen .elementor-search-form__toggle .e-font-icon-svg-container svg {
        fill: var(--e-search-form-toggle-color, #494c4f);
        width: var(--e-search-form-toggle-icon-size, 0.55em);
        height: var(--e-search-form-toggle-icon-size, 0.55em); }
  .elementor-search-form--skin-full_screen .elementor-search-form__container {
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8); }
    .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) {
      overflow: hidden;
      opacity: 0;
      -webkit-transform: scale(0);
          -ms-transform: scale(0);
              transform: scale(0); }
      .elementor-search-form--skin-full_screen .elementor-search-form__container:not(.elementor-search-form--full-screen) .dialog-lightbox-close-button {
        display: none; }

.elementor-author-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .elementor-author-box__avatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-right: 25px; }
    .elementor-author-box__avatar img {
      width: 100px;
      border-radius: 500px;
      -o-object-fit: cover;
         object-fit: cover; }
  .elementor-author-box__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    font-size: 17px; }
  .elementor-author-box__name {
    font-size: 24px;
    margin-bottom: 5px; }
  .elementor-author-box__bio {
    margin-bottom: 0.8em; }
    .elementor-author-box__bio p {
      margin-bottom: 0.8em; }
      .elementor-author-box__bio p:last-of-type {
        margin-bottom: 0; }
  .elementor-author-box--layout-image-left .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .elementor-author-box--layout-image-left .elementor-author-box__avatar {
      margin-left: 0;
      margin-right: 25px; }
  .elementor-author-box--layout-image-right .elementor-author-box {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
    .elementor-author-box--layout-image-right .elementor-author-box__avatar {
      margin-right: 0;
      margin-left: 25px; }
  .elementor-author-box--layout-image-above .elementor-author-box {
    display: block; }
    .elementor-author-box--layout-image-above .elementor-author-box__avatar {
      margin: 0 auto 15px;
      display: inline-block; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-left .elementor-author-box__avatar {
    margin-left: 0; }
  .elementor-author-box--layout-image-above.elementor-author-box--align-right .elementor-author-box__avatar {
    margin-right: 0; }
  .elementor-author-box--align-left .elementor-author-box {
    text-align: left; }
  .elementor-author-box--align-right .elementor-author-box {
    text-align: right; }
  .elementor-author-box--align-center .elementor-author-box {
    text-align: center; }

.elementor-button.elementor-author-box__button {
  border: solid 2px #55595c;
  font-size: 15px;
  font-weight: 100;
  padding: 10px 18px; }
  .elementor-button.elementor-author-box__button, .elementor-button.elementor-author-box__button:hover {
    background: transparent;
    color: #55595c; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above) .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-top .elementor-author-box__avatar {
  -ms-flex-item-align: start;
      align-self: flex-start; }

.elementor-widget-author-box:not(.elementor-author-box--layout-image-above).elementor-author-box--image-valign-middle .elementor-author-box__avatar {
  -ms-flex-item-align: center;
      align-self: center; }

.elementor-post-info__terms-list {
  display: inline-block; }

.elementor-post-info .elementor-icon-list-icon .elementor-avatar {
  border-radius: 100%; }

.elementor-widget-post-info.elementor-align-center .elementor-icon-list-item:after {
  margin: initial; }

.elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text {
  display: inline-block; }
  .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text a, .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-text span {
    display: inline; }

.elementor-widget-breadcrumbs {
  font-size: 0.85em; }
  .elementor-widget-breadcrumbs p {
    margin-bottom: 0; }

.elementor-sitemap-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.elementor-sticky--active {
  z-index: 99; }

[data-elementor-type="popup"]:not(.elementor-edit-area) {
  display: none; }

[data-elementor-type="popup"] .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
  display: none; }

.elementor-popup-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  pointer-events: none;
  background-color: transparent;
  -webkit-user-select: auto;
     -moz-user-select: auto;
      -ms-user-select: auto;
          user-select: auto; }
  .elementor-popup-modal .dialog-header, .elementor-popup-modal .dialog-buttons-wrapper {
    display: none; }
  .elementor-popup-modal .dialog-close-button {
    display: none;
    top: 20px;
    margin-top: 0;
    right: 20px;
    opacity: 1;
    z-index: 9999;
    pointer-events: all; }
    .elementor-popup-modal .dialog-close-button svg {
      fill: #373a3c;
      height: 1em;
      width: 1em; }
  .elementor-popup-modal .dialog-widget-content {
    width: initial;
    overflow: visible;
    max-width: 100%;
    max-height: 100%;
    border-radius: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    pointer-events: all; }
  .elementor-popup-modal .dialog-message {
    width: 640px;
    max-width: 100vw;
    max-height: 100vh;
    padding: 0;
    overflow: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-popup-modal .elementor {
    width: 100%; }

.elementor-motion-effects-element, .elementor-motion-effects-layer {
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
       -o-transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
          transition-timing-function: cubic-bezier(0, 0.33, 0.07, 1.03);
  -webkit-transition-duration: 1s;
       -o-transition-duration: 1s;
          transition-duration: 1s; }

.elementor-motion-effects-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -webkit-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
      -ms-transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
          transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x); }

.elementor-motion-effects-layer {
  position: absolute;
  top: 0;
  left: 0;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
          background-size: cover; }

.elementor-motion-effects-perspective {
  -webkit-perspective: 1200px;
          perspective: 1200px; }

.elementor-widget-posts:after, .elementor-widget-archive-posts:after {
  display: none; }

.elementor-posts-container.elementor-posts-masonry {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor-posts-container:not(.elementor-posts-masonry) {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-posts-container .elementor-post {
  padding: 0;
  margin: 0; }
  .elementor-posts-container .elementor-post__thumbnail {
    overflow: hidden; }
    .elementor-posts-container .elementor-post__thumbnail img {
      display: block;
      width: 100%;
      max-height: none;
      max-width: none;
      -webkit-transition: -webkit-filter 0.3s;
      transition: -webkit-filter 0.3s;
      -o-transition: filter 0.3s;
      transition: filter 0.3s;
      transition: filter 0.3s, -webkit-filter 0.3s; }
    .elementor-posts-container .elementor-post__thumbnail__link {
      position: relative;
      display: block;
      width: 100%; }

.elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
    height: auto;
    position: absolute;
    top: calc( 50% + 1px);
    left: calc( 50% + 1px);
    -webkit-transform: scale(1.01) translate(-50%, -50%);
        -ms-transform: scale(1.01) translate(-50%, -50%);
            transform: scale(1.01) translate(-50%, -50%); }
  .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail.elementor-fit-height img {
    height: 100%;
    width: auto; }

.elementor-posts .elementor-post {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-transition-property: background, border, -webkit-box-shadow;
  transition-property: background, border, -webkit-box-shadow;
  -o-transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow;
  transition-property: background, border, box-shadow, -webkit-box-shadow;
  -webkit-transition-duration: 0.25s;
       -o-transition-duration: 0.25s;
          transition-duration: 0.25s; }
  .elementor-posts .elementor-post__title {
    font-size: 18px;
    margin: 0; }
  .elementor-posts .elementor-post__excerpt {
    margin-bottom: 10px; }
    .elementor-posts .elementor-post__excerpt p {
      margin: 0;
      line-height: 1.5em;
      font-size: 14px;
      color: #777; }
  .elementor-posts .elementor-post__meta-data {
    line-height: 1.3em;
    font-size: 12px;
    margin-bottom: 13px;
    color: #adadad; }
  .elementor-posts .elementor-post__read-more {
    font-size: 12px;
    font-weight: bold; }
  .elementor-posts .elementor-post__thumbnail {
    position: relative; }

.elementor-posts--skin-classic {
  display: grid;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .elementor-posts--skin-classic:not(.elementor-posts-masonry) {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch; }
  .elementor-posts--skin-classic .elementor-post {
    overflow: hidden; }
    .elementor-posts--skin-classic .elementor-post__text {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }

.elementor-posts--align-left .elementor-post {
  text-align: left; }

.elementor-posts--align-right .elementor-post {
  text-align: right; }

.elementor-posts--align-center .elementor-post {
  text-align: center; }

.elementor-posts--thumbnail-top .elementor-post {
  display: block;
  /*

			 used to be
			 align-self: flex-start;
			 until v2.1

			*/ }
  .elementor-posts--thumbnail-top .elementor-post__thumbnail__link {
    margin-bottom: 20px; }
  .elementor-posts--thumbnail-top .elementor-post__text {
    width: 100%; }

.elementor-posts--thumbnail-top.elementor-posts--align-left .elementor-post__thumbnail__link {
  margin-right: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-right .elementor-post__thumbnail__link {
  margin-left: auto; }

.elementor-posts--thumbnail-top.elementor-posts--align-center .elementor-post__thumbnail__link {
  margin-right: auto;
  margin-left: auto; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link, .elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 25%; }

.elementor-posts--thumbnail-left .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 1;
      -ms-flex-order: 0;
          order: 0;
  margin-right: 20px; }

.elementor-posts--thumbnail-right .elementor-post__thumbnail__link {
  -webkit-box-ordinal-group: 6;
      -ms-flex-order: 5;
          order: 5;
  margin-left: 20px; }

.elementor-posts--thumbnail-none .elementor-posts-container .elementor-post__thumbnail__link {
  display: none; }

.elementor-posts .elementor-post__card {
  overflow: hidden;
  position: relative;
  background-color: #fff;
  width: 100%;
  min-height: 100%;
  border-radius: 3px;
  border: 0 solid #818a91;
  -webkit-transition: all 0.25s;
  -o-transition: all 0.25s;
  transition: all 0.25s; }
  .elementor-posts .elementor-post__card .elementor-post__thumbnail {
    position: relative;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d; }
    .elementor-posts .elementor-post__card .elementor-post__thumbnail img {
      width: calc( 100% + 1px); }
  .elementor-posts .elementor-post__card .elementor-post__text {
    padding: 0 30px;
    margin-bottom: 0;
    margin-top: 20px; }
  .elementor-posts .elementor-post__card .elementor-post__read-more {
    margin-bottom: 20px;
    display: inline-block; }
  .elementor-posts .elementor-post__card .elementor-post__meta-data {
    padding: 15px 30px;
    margin-bottom: 0;
    border-top: 1px solid #eaeaea; }
    .elementor-posts .elementor-post__card .elementor-post__meta-data span + span:before {
      margin: 0 5px; }
  .elementor-posts .elementor-post__card .elementor-post__title {
    font-size: 21px; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt {
    line-height: 1.7; }
  .elementor-posts .elementor-post__card .elementor-post__excerpt, .elementor-posts .elementor-post__card .elementor-post__title {
    margin-bottom: 25px; }
  .elementor-posts .elementor-post__card .elementor-post__badge, .elementor-posts .elementor-post__card .elementor-post__read-more {
    text-transform: uppercase; }

.elementor-posts .elementor-post__badge {
  position: absolute;
  top: 0;
  background: #818a91;
  color: #fff;
  font-size: 12px;
  padding: 0.6em 1.2em;
  line-height: 1;
  font-weight: 400;
  margin: 20px;
  border-radius: 999px; }

.elementor-posts .elementor-post__avatar {
  position: relative;
  padding: 0 30px;
  width: 100%;
  top: -25px;
  height: 0;
  pointer-events: none; }
  .elementor-posts .elementor-post__avatar img {
    border-radius: 50%;
    width: 60px;
    pointer-events: all;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-posts--thumbnail-top .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data, .elementor-posts .elementor-posts--skin-cards:not(.elementor-posts-masonry) .elementor-post__meta-data {
  margin-top: auto; }

.elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar {
  padding-top: 0;
  position: static;
  height: auto; }
  .elementor-posts--thumbnail-none .elementor-post__card .elementor-post__avatar img.avatar {
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
    vertical-align: bottom; }

.elementor-posts--show-avatar .elementor-post__thumbnail__link {
  margin-bottom: 25px; }

.elementor-posts__hover-gradient .elementor-post__card .elementor-post__thumbnail__link:after {
  display: block;
  content: '';
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.35)), color-stop(75%, rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  opacity: 1;
  -webkit-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out; }

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link:after {
  opacity: 0.5; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-in .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-in .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail.elementor-fit-height img {
  height: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: 115%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail.elementor-fit-height img {
  height: 100%; }

.elementor-posts__hover-zoom-out .elementor-post__card:hover .elementor-post__thumbnail:not(.elementor-fit-height) img {
  width: calc( 100% + 1px); }

.elementor-posts__hover-zoom-out .elementor-post__thumbnail img, .elementor-posts__hover-zoom-in .elementor-post__thumbnail img {
  -webkit-transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  transition: height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s;
  -o-transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1);
  transition: filter 0.3s, height 1s cubic-bezier(0, 0.25, 0.07, 1), width 1s cubic-bezier(0, 0.25, 0.07, 1), -webkit-filter 0.3s; }

.elementor-card-shadow-yes .elementor-post__card {
  -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); }
  .elementor-card-shadow-yes .elementor-post__card:hover {
    -webkit-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.15); }

.elementor-posts--skin-full_content article {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow: hidden; }
  .elementor-posts--skin-full_content article .elementor-post__thumbnail {
    padding-bottom: 0; }

body.elementor-editor-active .elementor-posts--skin-full_content,
body.elementor-editor-active .elementor-posts--skin-archive_full_content {
  pointer-events: none; }
  body.elementor-editor-active .elementor-posts--skin-full_content .elementor-post__thumbnail__link,
  body.elementor-editor-active .elementor-posts--skin-archive_full_content .elementor-post__thumbnail__link {
    display: none; }

body.elementor-editor-active .elementor-posts--show-thumbnail .elementor-post__thumbnail__link {
  display: block; }

.elementor-portfolio__filters {
  list-style: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  margin: 0; }

.elementor-portfolio__filter {
  margin: 0;
  cursor: pointer;
  padding: 8px; }

.elementor-portfolio-item {
  -ms-flex-item-align: start;
      align-self: flex-start;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  -o-transition-property: transform, opacity;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-transition-timing-function: ease-in-out;
       -o-transition-timing-function: ease-in-out;
          transition-timing-function: ease-in-out;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  overflow: hidden;
  margin: 0; }
  .elementor-portfolio-item__title {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 18px;
    color: #fff; }
  .elementor-portfolio-item__tags__separator:before {
    content: ', '; }
  .elementor-portfolio-item__overlay {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 15px;
    -webkit-transition: opacity 1s;
    -o-transition: opacity 1s;
    transition: opacity 1s;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    overflow: hidden;
    background-color: rgba(129, 138, 145, 0.8); }
    .elementor-portfolio-item__overlay:hover {
      opacity: 1;
      -webkit-transition: opacity 0.5s;
      -o-transition: opacity 0.5s;
      transition: opacity 0.5s; }
  .elementor-portfolio-item__img img[src=""] {
    background-color: rgba(0, 0, 0, 0.1);
    height: 100%; }

.elementor-portfolio.elementor-has-item-ratio {
  -webkit-transition: height 0.5s;
  -o-transition: height 0.5s;
  transition: height 0.5s; }
  .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.1); }
    .elementor-portfolio.elementor-has-item-ratio .elementor-post__thumbnail__link {
      padding-bottom: 56.25%; }

.elementor ul li.elementor-portfolio__filter {
  list-style-type: none; }

.elementor-widget-posts.load-more-align-center .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-center .elementor-button-wrapper {
  text-align: center; }

.elementor-widget-posts.load-more-align-start .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-start .elementor-button-wrapper {
  text-align: start; }

.elementor-widget-posts.load-more-align-end .elementor-button-wrapper, .elementor-widget-archive-posts.load-more-align-end .elementor-button-wrapper {
  text-align: end; }

.elementor-widget-posts.load-more-align-justify .elementor-button, .elementor-widget-archive-posts.load-more-align-justify .elementor-button {
  width: 100%; }

.elementor-widget-posts .e-load-more-spinner, .elementor-widget-archive-posts .e-load-more-spinner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-posts .e-load-more-spinner i,
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner i,
  .elementor-widget-archive-posts .e-load-more-spinner svg {
    margin: 0 auto;
    display: none; }
  .elementor-widget-posts .e-load-more-spinner i, .elementor-widget-archive-posts .e-load-more-spinner i {
    color: var(--load-more-spinner-color); }
  .elementor-widget-posts .e-load-more-spinner svg, .elementor-widget-archive-posts .e-load-more-spinner svg {
    fill: var(--load-more-spinner-color);
    height: 1em;
    width: 1em; }

.elementor-widget-posts .e-load-more-message, .elementor-widget-archive-posts .e-load-more-message {
  color: var(--load-more-message-color);
  text-align: var(--load-more-message-alignment, center);
  display: none;
  margin-top: var(--load-more—spacing, 30px); }

.elementor-widget-posts.e-load-more-pagination-loading, .elementor-widget-archive-posts.e-load-more-pagination-loading {
  cursor: default; }
  .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner {
    margin-top: var(--load-more—spacing, 30px); }
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-posts.e-load-more-pagination-loading .e-load-more-spinner svg, .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner i,
    .elementor-widget-archive-posts.e-load-more-pagination-loading .e-load-more-spinner svg {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
  .elementor-widget-posts.e-load-more-pagination-loading .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-loading .elementor-button-content-wrapper {
    visibility: hidden; }

.elementor-widget-posts.e-load-more-pagination-end .elementor-button-wrapper, .elementor-widget-archive-posts.e-load-more-pagination-end .elementor-button-wrapper {
  display: none; }

.elementor-widget-posts.e-load-more-pagination-end .e-load-more-message, .elementor-widget-archive-posts.e-load-more-pagination-end .e-load-more-message {
  display: block; }

.elementor-widget-posts.e-load-more-no-spinner .elementor-button-content-wrapper, .elementor-widget-archive-posts.e-load-more-no-spinner .elementor-button-content-wrapper {
  visibility: visible; }

.elementor-widget-posts .elementor-button-wrapper, .elementor-widget-archive-posts .elementor-button-wrapper {
  margin-top: var(--load-more—spacing, 30px); }
  .elementor-widget-posts .elementor-button-wrapper .e-load-more-spinner, .elementor-widget-archive-posts .elementor-button-wrapper .e-load-more-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    margin: inherit; }
  .elementor-widget-posts .elementor-button-wrapper .elementor-button, .elementor-widget-archive-posts .elementor-button-wrapper .elementor-button {
    cursor: pointer;
    position: relative; }

/*
Multi Steps Form

Currently manually overwriting  - need to find a better solution,
the source property is coming from element/dev/scss...

*/
/* TODO: check why elementor-hidden class is not working */
.elementor-hidden,
.elementor-button.elementor-hidden {
  display: none; }

.e-form__step {
  width: 100%; }
  .e-form__step:not(.elementor-hidden) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }

.e-form__buttons {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .e-form__buttons, .e-form__buttons__wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }

.e-form__indicators {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  font-size: 13px;
  margin-bottom: var(--e-form-steps-indicators-spacing); }
  .e-form__indicators__indicator {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    padding: 0 var(--e-form-steps-divider-gap); }
    .e-form__indicators__indicator__progress {
      width: 100%;
      position: relative;
      background-color: var(--e-form-steps-indicator-progress-background-color);
      border-radius: var(--e-form-steps-indicator-progress-border-radius);
      overflow: hidden; }
      .e-form__indicators__indicator__progress__meter {
        width: var(--e-form-steps-indicator-progress-meter-width, 0);
        height: var(--e-form-steps-indicator-progress-height);
        line-height: var(--e-form-steps-indicator-progress-height);
        padding-right: 15px;
        border-radius: var(--e-form-steps-indicator-progress-border-radius);
        background-color: var(--e-form-steps-indicator-progress-color);
        color: var(--e-form-steps-indicator-progress-meter-color);
        text-align: right;
        -webkit-transition: width 0.1s linear;
        -o-transition: width 0.1s linear;
        transition: width 0.1s linear; }
    .e-form__indicators__indicator:first-child {
      padding-left: 0; }
    .e-form__indicators__indicator:last-child {
      padding-right: 0; }
    .e-form__indicators__indicator--state-inactive {
      color: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
      .e-form__indicators__indicator--state-inactive [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-inactive-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-inactive svg,
      .e-form__indicators__indicator--state-inactive object {
        fill: var(--e-form-steps-indicator-inactive-primary-color, #C2CBD2); }
    .e-form__indicators__indicator--state-active {
      color: var(--e-form-steps-indicator-active-primary-color, #39B54A);
      border-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-active-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-active svg,
      .e-form__indicators__indicator--state-active object {
        fill: var(--e-form-steps-indicator-active-primary-color, #39B54A); }
    .e-form__indicators__indicator--state-completed {
      color: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
      .e-form__indicators__indicator--state-completed [class*="indicator--shape-"]:not(.e-form__indicators__indicator--shape-none) {
        background-color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A); }
      .e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-none {
        color: var(--e-form-steps-indicator-completed-primary-color, #39B54A);
        background-color: initial; }
      .e-form__indicators__indicator--state-completed svg,
      .e-form__indicators__indicator--state-completed object {
        fill: var(--e-form-steps-indicator-completed-secondary-color, #FFF); }
    .e-form__indicators__indicator__icon {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      font-size: var(--e-form-steps-indicator-icon-size);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      overflow: hidden;
      margin-bottom: 10px; }
      .e-form__indicators__indicator__icon img,
      .e-form__indicators__indicator__icon svg,
      .e-form__indicators__indicator__icon object {
        width: var(--e-form-steps-indicator-icon-size);
        height: auto; }
      .e-form__indicators__indicator__icon .e-font-icon-svg {
        height: 1em; }
    .e-form__indicators__indicator__number {
      width: var(--e-form-steps-indicator-padding, 30px);
      height: var(--e-form-steps-indicator-padding, 30px);
      border-width: 1px;
      border-style: solid;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin-bottom: 10px; }
    .e-form__indicators__indicator--shape-circle {
      border-radius: 50%; }
    .e-form__indicators__indicator--shape-square {
      border-radius: 0; }
    .e-form__indicators__indicator--shape-rounded {
      border-radius: 5px; }
    .e-form__indicators__indicator--shape-none {
      border: 0; }
    .e-form__indicators__indicator__label {
      text-align: center; }
    .e-form__indicators__indicator__separator {
      width: 100%;
      height: var(--e-form-steps-divider-width);
      background-color: #c2cbd2; }
  .e-form__indicators--type-number, .e-form__indicators--type-number_text, .e-form__indicators--type-icon, .e-form__indicators--type-icon_text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .e-form__indicators--type-number .e-form__indicators__indicator__separator, .e-form__indicators--type-number_text .e-form__indicators__indicator__separator, .e-form__indicators--type-icon .e-form__indicators__indicator__separator, .e-form__indicators--type-icon_text .e-form__indicators__indicator__separator {
      margin-top: calc(var(--e-form-steps-indicator-padding, 30px) / 2 - var(--e-form-steps-divider-width, 1px) / 2); }

/* End OF Multi Steps Form */
.elementor-field-type-hidden {
  display: none; }

.elementor-field-type-html {
  display: inline-block; }

.elementor-login .elementor-remember-me,
.elementor-login .elementor-lost-password {
  font-size: 0.85em; }

.elementor-field-type-recaptcha_v3 .elementor-field-label {
  display: none; }

.elementor-field-type-recaptcha_v3 .grecaptcha-badge {
  z-index: 1; }

.elementor-button .elementor-form-spinner {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3; }

.elementor-form .elementor-button > span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-form .elementor-button .elementor-button-text {
  white-space: normal;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0; }

.elementor-form .elementor-button svg {
  height: auto; }

.elementor-form .elementor-button .e-font-icon-svg {
  height: 1em; }

.elementor-widget-price-list .elementor-price-list {
  list-style: none;
  padding: 0;
  margin: 0; }
  .elementor-widget-price-list .elementor-price-list li {
    margin: 0; }

.elementor-price-list li:not(:last-child) {
  margin-bottom: 20px; }

.elementor-price-list .elementor-price-list-image {
  max-width: 50%;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding-right: 25px; }
  .elementor-price-list .elementor-price-list-image img {
    width: 100%; }

.elementor-price-list .elementor-price-list-text,
.elementor-price-list .elementor-price-list-item,
.elementor-price-list .elementor-price-list-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.elementor-price-list .elementor-price-list-item {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-text {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 19px;
    font-weight: 600;
    margin-bottom: 10px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-title {
    max-width: 80%; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-price {
    font-weight: 600; }
  .elementor-price-list .elementor-price-list-item p.elementor-price-list-description {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
    font-size: 14px;
    margin: 0; }
  .elementor-price-list .elementor-price-list-item .elementor-price-list-separator {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin-left: 10px;
    margin-right: 10px;
    border-bottom-style: dotted;
    border-bottom-width: 2px;
    height: 0; }

.elementor-price-table {
  text-align: center; }
  .elementor-price-table .elementor-price-table__header {
    background: var(--e-price-table-header-background-color, #555);
    padding: 20px 0; }
  .elementor-price-table .elementor-price-table__heading {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 24px;
    font-weight: 600;
    color: #fff; }
  .elementor-price-table .elementor-price-table__subheading {
    font-size: 13px;
    font-weight: 400;
    color: #fff; }
  .elementor-price-table .elementor-price-table__original-price {
    margin-right: 15px;
    text-decoration: line-through;
    font-size: 0.5em;
    line-height: 1;
    font-weight: 400;
    -ms-flex-item-align: center;
        align-self: center; }
    .elementor-price-table .elementor-price-table__original-price .elementor-price-table__currency {
      font-size: 1em;
      margin: 0; }
  .elementor-price-table .elementor-price-table__price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    color: #555;
    font-weight: 800;
    font-size: 65px;
    padding: 40px 0; }
    .elementor-price-table .elementor-price-table__price .elementor-typo-excluded {
      line-height: initial;
      letter-spacing: initial;
      text-transform: initial;
      font-weight: initial;
      font-size: initial;
      font-style: initial; }
  .elementor-price-table .elementor-price-table__after-price {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    text-align: left;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-price-table .elementor-price-table__integer-part {
    line-height: 0.8; }
  .elementor-price-table .elementor-price-table__currency, .elementor-price-table .elementor-price-table__fractional-part {
    line-height: 1;
    font-size: 0.3em; }
  .elementor-price-table .elementor-price-table__currency {
    margin-right: 3px; }
  .elementor-price-table .elementor-price-table__period {
    width: 100%;
    font-size: 13px;
    font-weight: 400; }
  .elementor-price-table .elementor-price-table__features-list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    line-height: 1;
    color: var(--e-price-table-features-list-color); }
    .elementor-price-table .elementor-price-table__features-list li {
      font-size: 14px;
      line-height: 1;
      margin: 0;
      padding: 0; }
      .elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
        margin-left: 15px;
        margin-right: 15px; }
      .elementor-price-table .elementor-price-table__features-list li:not(:first-child):before {
        content: '';
        display: block;
        border: 0 solid rgba(122, 122, 122, 0.3);
        margin: 10px 12.5%; }
    .elementor-price-table .elementor-price-table__features-list i {
      margin-right: 10px;
      font-size: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg {
      margin-right: 10px;
      fill: var(--e-price-table-features-list-color);
      height: 1.3em;
      width: 1.3em; }
    .elementor-price-table .elementor-price-table__features-list svg ~ * {
      vertical-align: text-top; }
  .elementor-price-table .elementor-price-table__footer {
    padding: 30px 0; }
  .elementor-price-table .elementor-price-table__additional_info {
    margin: 0;
    font-size: 13px;
    line-height: 1.4; }
  .elementor-price-table__ribbon {
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    width: 150px;
    overflow: hidden;
    height: 150px; }
    .elementor-price-table__ribbon-inner {
      text-align: center;
      left: 0;
      width: 200%;
      -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
          -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
              transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
      margin-top: 35px;
      font-size: 13px;
      line-height: 2;
      font-weight: 800;
      text-transform: uppercase;
      background: #000; }
    .elementor-price-table__ribbon.elementor-ribbon-left {
      -webkit-transform: rotate(0);
          -ms-transform: rotate(0);
              transform: rotate(0);
      left: 0;
      right: auto; }
    .elementor-price-table__ribbon.elementor-ribbon-right {
      -webkit-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
              transform: rotate(90deg);
      left: auto;
      right: 0; }

.elementor-widget-price-table .elementor-widget-container {
  overflow: hidden;
  background-color: #f7f7f7; }

.elementor-flip-box {
  height: 280px;
  position: relative;
  -webkit-perspective: 1000px;
          perspective: 1000px;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }
  @media (max-device-width: 1024px) {
    .elementor-flip-box {
      cursor: pointer; } }
  .elementor-flip-box__front {
    background-color: #1abc9c; }
  .elementor-flip-box__back {
    background-color: #4054b2;
    display: block; }
  .elementor-flip-box__layer {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-transition: all .6s ease-in-out;
    -o-transition: all .6s ease-in-out;
    transition: all .6s ease-in-out; }
    .elementor-flip-box__layer__overlay {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      width: 100%;
      height: 100%;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      text-align: center;
      padding: 35px;
      color: white; }
    .elementor-flip-box__layer__title {
      font-size: 21px; }
    .elementor-flip-box__layer__description {
      font-size: 14px; }
    .elementor-flip-box__layer__description:not(:last-child), .elementor-flip-box__layer__title:not(:last-child) {
      margin: 0 0 20px 0;
      padding: 0; }
    .elementor-flip-box__layer__title {
      line-height: 1;
      font-weight: 600; }
  .elementor-flip-box,
  .elementor-flip-box .elementor-view-framed,
  .elementor-flip-box .elementor-view-stacked {
    --e-flip-box-view-framed-stacked-icon-color: #fff; }
    .elementor-flip-box .elementor-icon,
    .elementor-flip-box .elementor-view-framed .elementor-icon,
    .elementor-flip-box .elementor-view-stacked .elementor-icon {
      color: var(--e-flip-box-view-framed-stacked-icon-color); }
      .elementor-flip-box .elementor-icon svg,
      .elementor-flip-box .elementor-view-framed .elementor-icon svg,
      .elementor-flip-box .elementor-view-stacked .elementor-icon svg {
        fill: var(--e-flip-box-view-framed-stacked-icon-color); }
  .elementor-flip-box .elementor-view-framed .elementor-icon {
    border-color: #fff; }
  .elementor-flip-box .elementor-view-stacked .elementor-icon {
    background-color: rgba(0, 0, 0, 0.5); }
  .elementor-flip-box__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-flip-box__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-flip-box__image {
    margin: 0 0 20px 0;
    display: inline-block;
    width: 100%; }
    .elementor-flip-box__image img {
      width: 50%; }
  .elementor-flip-box .elementor-icon-wrapper {
    margin-bottom: 20px; }
  .elementor-flip-box--3d .elementor-flip-box__layer__inner {
    -webkit-transform: translateZ(90px) scale(0.91);
            transform: translateZ(90px) scale(0.91); }
  .elementor-flip-box--3d .elementor-flip-box__layer__overlay {
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d;
    -webkit-transform: translateZ(0.1px);
            transform: translateZ(0.1px); }
  .elementor-flip-box--effect-flip .elementor-flip-box {
    -webkit-perspective: 1000px;
            perspective: 1000px;
    -webkit-transform-style: preserve-3d;
            transform-style: preserve-3d; }
    .elementor-flip-box--effect-flip .elementor-flip-box__layer {
      -webkit-transform-style: preserve-3d;
              transform-style: preserve-3d;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .elementor-flip-box--effect-flip .elementor-flip-box__front {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none;
      z-index: 1; }
    .elementor-flip-box--effect-flip .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: rotateX(0) rotateY(180deg);
            transform: rotateX(0) rotateY(180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(0) rotateY(-180deg);
            transform: rotateX(0) rotateY(-180deg); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: rotateX(180deg) rotateY(0);
            transform: rotateX(180deg) rotateY(0); }
  .elementor-flip-box--effect-flip.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: rotateX(-180deg) rotateY(0);
            transform: rotateX(-180deg) rotateY(0); }
  .elementor-flip-box--effect-push .elementor-flip-box__front {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box:hover .elementor-flip-box__front {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide .elementor-flip-box, .elementor-flip-box--effect-push .elementor-flip-box {
    overflow: hidden; }
    .elementor-flip-box--effect-slide .elementor-flip-box:hover .elementor-flip-box__back, .elementor-flip-box--effect-push .elementor-flip-box:hover .elementor-flip-box__back {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-right .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-right .elementor-flip-box__back {
    -webkit-transform: translateX(-100%) translateY(0);
        -ms-transform: translateX(-100%) translateY(0);
            transform: translateX(-100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-left .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-left .elementor-flip-box__back {
    -webkit-transform: translateX(100%) translateY(0);
        -ms-transform: translateX(100%) translateY(0);
            transform: translateX(100%) translateY(0); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-up .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-up .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(100%);
        -ms-transform: translateX(0) translateY(100%);
            transform: translateX(0) translateY(100%); }
  .elementor-flip-box--effect-slide.elementor-flip-box--direction-down .elementor-flip-box__back, .elementor-flip-box--effect-push.elementor-flip-box--direction-down .elementor-flip-box__back {
    -webkit-transform: translateX(0) translateY(-100%);
        -ms-transform: translateX(0) translateY(-100%);
            transform: translateX(0) translateY(-100%); }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box .elementor-flip-box__front {
    -webkit-transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    transition: opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms;
    transition: transform 0.7s, opacity 0.35s, width 0.1ms, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    z-index: 1;
    width: 100%; }
  .elementor-flip-box--effect-zoom-out .elementor-flip-box:hover .elementor-flip-box__front {
    width: 0;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7);
    -webkit-transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    transition: opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s;
    -o-transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s;
    transition: transform 0.8s, opacity 0.7s 0.1s, width 0.1ms 0.7s, -webkit-transform 0.8s; }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    transition: opacity 0.5s 0.2s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s;
    transition: transform 0.7s, opacity 0.5s 0.2s, -webkit-transform 0.7s;
    opacity: 0;
    -webkit-transform: scale(0.7);
        -ms-transform: scale(0.7);
            transform: scale(0.7); }
  .elementor-flip-box--effect-zoom-in .elementor-flip-box:hover .elementor-flip-box__back {
    -webkit-transition: opacity 0.5s, -webkit-transform 0.7s;
    transition: opacity 0.5s, -webkit-transform 0.7s;
    -o-transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s;
    transition: transform 0.7s, opacity 0.5s, -webkit-transform 0.7s;
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .elementor-flip-box--effect-fade .elementor-flip-box .elementor-flip-box__back {
    opacity: 0; }
  .elementor-flip-box--effect-fade .elementor-flip-box:hover .elementor-flip-box__back {
    opacity: 1; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__front {
  display: none; }

.elementor-widget-flip-box.elementor-flip-box--flipped .elementor-widget-container .elementor-flip-box__back {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  opacity: 1; }

.elementor-widget-call-to-action .elementor-widget-container {
  overflow: hidden; }

.elementor-cta {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -webkit-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s; }
  .elementor-cta--skin-classic .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--skin-classic .elementor-cta__bg-wrapper {
      position: relative;
      min-height: 200px;
      width: 100%; }
    .elementor-cta--skin-classic .elementor-cta__content {
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%;
      background-color: #f7f7f7; }
    .elementor-cta--skin-classic .elementor-cta__content-item, .elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon {
      color: #55595c;
      border-color: #55595c;
      fill: #55595c; }
    .elementor-cta--skin-classic .elementor-cta__button.elementor-button {
      color: #55595c;
      border-color: #55595c; }
  .elementor-cta--skin-cover .elementor-cta {
    display: block; }
    .elementor-cta--skin-cover .elementor-cta__bg-wrapper {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      -webkit-transition: all 0.4s;
      -o-transition: all 0.4s;
      transition: all 0.4s;
      width: 100%; }
    .elementor-cta--skin-cover .elementor-cta__content {
      min-height: 280px; }
    .elementor-cta--skin-cover .elementor-cta__content-item, .elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon {
      color: #fff;
      border-color: #fff; }
    .elementor-cta--skin-cover .elementor-cta__button.elementor-button {
      color: white;
      border-color: white; }
  .elementor-cta--layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--layout-image-left .elementor-cta, .elementor-cta--layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--layout-image-left .elementor-cta__content, .elementor-cta--layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-cta__bg, .elementor-cta__bg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    -webkit-transition: all 0.4s;
    -o-transition: all 0.4s;
    transition: all 0.4s; }
  .elementor-cta__bg-wrapper {
    z-index: 1;
    overflow: hidden; }
  .elementor-cta__bg {
    -webkit-background-size: cover;
            background-size: cover;
    background-position: center;
    z-index: 1; }
  .elementor-cta__bg-overlay {
    z-index: 2; }
  .elementor-cta__button.elementor-button {
    cursor: pointer;
    -ms-flex-item-align: center;
        align-self: center;
    margin-left: auto;
    margin-right: auto;
    border: solid 2px white;
    background: transparent; }
    .elementor-cta__button.elementor-button:hover {
      background: transparent;
      text-decoration: none; }
  .elementor-cta__title {
    font-size: 23px; }
  .elementor-cta__content {
    z-index: 1;
    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 35px;
    width: 100%; }
    .elementor-cta__content, .elementor-cta__content-item {
      position: relative;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s;
      color: #fff; }
    .elementor-cta__content-item {
      width: 100%;
      margin: 0; }
      .elementor-cta__content-item:not(:last-child) {
        margin-bottom: 15px; }
      .elementor-cta__content-item .elementor-icon {
        color: #fff; }
  .elementor-cta--valign-top .elementor-cta__content {
    -ms-flex-line-pack: start;
        align-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
  .elementor-cta--valign-middle .elementor-cta__content {
    -ms-flex-line-pack: center;
        align-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .elementor-cta--valign-bottom .elementor-cta__content {
    -ms-flex-line-pack: end;
        align-content: flex-end;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .elementor-cta:hover .elementor-cta__bg-overlay {
    background-color: rgba(0, 0, 0, 0.3); }

@media (max-device-width: 1024px) {
  .elementor-cta {
    cursor: pointer; } }

@media (min-width: -1px) {
  .elementor-cta--widescreen-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta, .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--widescreen-layout-image-left .elementor-cta__content, .elementor-cta--widescreen-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--widescreen-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--widescreen-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--laptop-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--laptop-layout-image-left .elementor-cta, .elementor-cta--laptop-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--laptop-layout-image-left .elementor-cta__content, .elementor-cta--laptop-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--laptop-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--laptop-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--tablet_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta, .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet_extra-layout-image-left .elementor-cta__content, .elementor-cta--tablet_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--tablet_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: 1024px) {
  .elementor-cta--tablet-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--tablet-layout-image-left .elementor-cta, .elementor-cta--tablet-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--tablet-layout-image-left .elementor-cta__content, .elementor-cta--tablet-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--tablet-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--tablet-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: -1px) {
  .elementor-cta--mobile_extra-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta, .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile_extra-layout-image-left .elementor-cta__content, .elementor-cta--mobile_extra-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile_extra-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--mobile_extra-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

@media (max-width: 767px) {
  .elementor-cta--mobile-layout-image-above .elementor-cta {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper {
      width: 100%; }
  .elementor-cta--mobile-layout-image-left .elementor-cta, .elementor-cta--mobile-layout-image-right .elementor-cta {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper, .elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper {
      width: auto;
      min-width: 50%; }
    .elementor-cta--mobile-layout-image-left .elementor-cta__content, .elementor-cta--mobile-layout-image-right .elementor-cta__content {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
  .elementor-cta--mobile-layout-image-left .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-cta--mobile-layout-image-right .elementor-cta {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; } }

.elementor-ribbon {
  position: absolute;
  z-index: 1;
  top: 0;
  left: auto;
  right: 0;
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  width: 150px;
  overflow: hidden;
  height: 150px; }
  .elementor-ribbon-inner {
    text-align: center;
    left: 0;
    width: 200%;
    -webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
        -ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
            transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
    margin-top: 35px;
    font-size: 13px;
    line-height: 2;
    font-weight: 800;
    text-transform: uppercase;
    background: #000;
    color: #fff; }
  .elementor-ribbon.elementor-ribbon-left {
    -webkit-transform: rotate(0);
        -ms-transform: rotate(0);
            transform: rotate(0);
    left: 0;
    right: auto; }
  .elementor-ribbon.elementor-ribbon-right {
    -webkit-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
            transform: rotate(90deg);
    left: auto;
    right: 0; }

.elementor-widget-countdown .elementor-countdown-expire--message {
  display: none;
  padding: 20px;
  text-align: center; }

.elementor-widget-countdown .elementor-countdown-wrapper {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.elementor-widget-countdown .elementor-countdown-item {
  padding: 20px 0;
  text-align: center;
  color: #ffffff; }

.elementor-widget-countdown .elementor-countdown-digits,
.elementor-widget-countdown .elementor-countdown-label {
  line-height: 1; }

.elementor-widget-countdown .elementor-countdown-digits {
  font-size: 69px; }

.elementor-widget-countdown .elementor-countdown-label {
  font-size: 19px; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-right: auto;
  margin-left: auto; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-digits,
.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-label {
  display: block; }

.elementor-widget-countdown.elementor-countdown--label-block .elementor-countdown-item {
  -ms-flex-preferred-size: 0;
      flex-basis: 0;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.elementor-widget-countdown.elementor-countdown--label-inline {
  text-align: center; }
  .elementor-widget-countdown.elementor-countdown--label-inline .elementor-countdown-item {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px; }

/* Slides Widget */
.elementor-slides .swiper-slide-bg {
  -webkit-background-size: cover;
          background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-width: 100%;
  min-height: 100%; }

.elementor-slides .swiper-slide-inner {
  background-repeat: no-repeat;
  background-position: center;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  padding: 50px;
  margin: auto; }
  .elementor-slides .swiper-slide-inner, .elementor-slides .swiper-slide-inner:hover {
    color: white;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .elementor-slides .swiper-slide-inner .elementor-background-overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0; }
  .elementor-slides .swiper-slide-inner .elementor-slide-content {
    position: relative;
    z-index: 1;
    width: 100%; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading {
    font-size: 35px;
    font-weight: bold;
    line-height: 1; }
  .elementor-slides .swiper-slide-inner .elementor-slide-description {
    font-size: 17px;
    line-height: 1.4; }
  .elementor-slides .swiper-slide-inner .elementor-slide-heading:not(:last-child), .elementor-slides .swiper-slide-inner .elementor-slide-description:not(:last-child) {
    margin-bottom: 30px; }
  .elementor-slides .swiper-slide-inner .elementor-slide-button {
    border: solid 2px white;
    color: white;
    background: transparent;
    display: inline-block; }
    .elementor-slides .swiper-slide-inner .elementor-slide-button, .elementor-slides .swiper-slide-inner .elementor-slide-button:hover {
      background: transparent;
      color: inherit;
      text-decoration: none; }

.elementor--v-position-top .swiper-slide-inner {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start; }

.elementor--v-position-bottom .swiper-slide-inner {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

.elementor--v-position-middle .swiper-slide-inner {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor--h-position-left .swiper-slide-inner {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor--h-position-right .swiper-slide-inner {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor--h-position-center .swiper-slide-inner {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

body.rtl .elementor-widget-slides .elementor-swiper-button-next {
  left: 10px;
  right: auto; }

body.rtl .elementor-widget-slides .elementor-swiper-button-prev {
  right: 10px;
  left: auto; }

.elementor-slides-wrapper div:not(.swiper-slide) > .swiper-slide-inner {
  display: none; }

@media (max-width: 767px) {
  .elementor-slides .swiper-slide-inner {
    padding: 30px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-heading {
      font-size: 23px;
      line-height: 1;
      margin-bottom: 15px; }
    .elementor-slides .swiper-slide-inner .elementor-slide-description {
      font-size: 13px;
      line-height: 1.4;
      margin-bottom: 15px; } }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn {
  color: var(--e-share-buttons-primary-color, #ea4335);
  border-color: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  background-color: var(--e-share-buttons-primary-color, #ea4335);
  color: var(--e-share-buttons-secondary-color, #fff); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-minimal .elementor-share-btn__icon svg, .elementor-share-buttons--color-custom.elementor-share-buttons--skin-boxed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon {
  color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--color-custom.elementor-share-buttons--skin-framed .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-primary-color, #ea4335); }

.elementor-share-buttons--color-official .elementor-share-btn:hover {
  -webkit-filter: saturate(1.5) brightness(1.2);
          filter: saturate(1.5) brightness(1.2); }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_digg {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_email {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_print {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_facebook {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_google {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pocket {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_linkedin {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_odnoklassniki {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_pinterest {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_reddit {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_skype {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_slideshare {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_snapchat {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_stumbleupon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_mix {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_tumblr {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitch {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_telegram {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_twitter {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vimeo {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_vk {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_whatsapp {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_wordpress {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-flat .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-gradient .elementor-share-btn_xing {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg {
  color: #005be2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_digg svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg svg {
    fill: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email {
  color: #ea4335; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_email svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email svg {
    fill: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print {
  color: #aaaaaa; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_print svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print svg {
    fill: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook {
  color: #3b5998; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_facebook svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook svg {
    fill: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google {
  color: #dd4b39; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_google svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google svg {
    fill: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket {
  color: #EF3F56; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pocket svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket svg {
    fill: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_linkedin svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki {
  color: #F4731C; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_odnoklassniki svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki svg {
    fill: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest {
  color: #bd081c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_pinterest svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest svg {
    fill: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit {
  color: #ff4500; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_reddit svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit svg {
    fill: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype {
  color: #00AFF0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_skype svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype svg {
    fill: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare {
  color: #0077b5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_slideshare svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare svg {
    fill: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat {
  color: #fffc00; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_snapchat svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat svg {
    fill: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon {
  color: #EB4924; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_stumbleupon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon svg {
    fill: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix {
  color: #f3782b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_mix svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix svg {
    fill: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr {
  color: #35465c; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_tumblr svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr svg {
    fill: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch {
  color: #6441A5; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitch svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch svg {
    fill: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram {
  color: #2CA5E0; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_telegram svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram svg {
    fill: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter {
  color: #1DA1F2; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_twitter svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter svg {
    fill: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo {
  color: #1ab7ea; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vimeo svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo svg {
    fill: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk {
  color: #45668e; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_vk svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk svg {
    fill: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp {
  color: #25d366; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_whatsapp svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp svg {
    fill: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress {
  color: #21759b; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_wordpress svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress svg {
    fill: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing {
  color: #026466; }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-framed .elementor-share-btn_xing svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing svg {
    fill: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_digg .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_digg .elementor-share-btn__icon {
  background-color: #005be2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_email .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_email .elementor-share-btn__icon {
  background-color: #ea4335; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_print .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_print .elementor-share-btn__icon {
  background-color: #aaaaaa; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_facebook .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_facebook .elementor-share-btn__icon {
  background-color: #3b5998; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_google .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_google .elementor-share-btn__icon {
  background-color: #dd4b39; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pocket .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pocket .elementor-share-btn__icon {
  background-color: #EF3F56; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_linkedin .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_linkedin .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_odnoklassniki .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_odnoklassniki .elementor-share-btn__icon {
  background-color: #F4731C; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_pinterest .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_pinterest .elementor-share-btn__icon {
  background-color: #bd081c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_reddit .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_reddit .elementor-share-btn__icon {
  background-color: #ff4500; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_skype .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_skype .elementor-share-btn__icon {
  background-color: #00AFF0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_slideshare .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_slideshare .elementor-share-btn__icon {
  background-color: #0077b5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_snapchat .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_snapchat .elementor-share-btn__icon {
  background-color: #fffc00; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_stumbleupon .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_stumbleupon .elementor-share-btn__icon {
  background-color: #EB4924; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_mix .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_mix .elementor-share-btn__icon {
  background-color: #f3782b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_tumblr .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_tumblr .elementor-share-btn__icon {
  background-color: #35465c; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitch .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitch .elementor-share-btn__icon {
  background-color: #6441A5; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_telegram .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_telegram .elementor-share-btn__icon {
  background-color: #2CA5E0; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_twitter .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_twitter .elementor-share-btn__icon {
  background-color: #1DA1F2; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vimeo .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vimeo .elementor-share-btn__icon {
  background-color: #1ab7ea; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_vk .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_vk .elementor-share-btn__icon {
  background-color: #45668e; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_whatsapp .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_whatsapp .elementor-share-btn__icon {
  background-color: #25d366; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_wordpress .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_wordpress .elementor-share-btn__icon {
  background-color: #21759b; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn_xing .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn_xing .elementor-share-btn__icon {
  background-color: #026466; }

.elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon {
  color: var(--e-share-buttons-icon-color, #fff); }
  .elementor-share-buttons--color-official.elementor-share-buttons--skin-boxed .elementor-share-btn .elementor-share-btn__icon svg, .elementor-share-buttons--color-official.elementor-share-buttons--skin-minimal .elementor-share-btn .elementor-share-btn__icon svg {
    fill: var(--e-share-buttons-icon-color, #fff); }

.elementor-share-buttons--skin-framed .elementor-share-btn__icon, .elementor-share-buttons--skin-boxed .elementor-share-btn__icon {
  margin-left: -0.2em; }

.elementor-share-buttons--skin-framed .elementor-share-btn, .elementor-share-buttons--skin-boxed .elementor-share-btn {
  border-style: solid; }

.elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-gradient.elementor-share-buttons--view-icon .elementor-share-btn__icon {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.12)), to(rgba(0, 0, 0, 0)));
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)); }

.elementor-share-buttons--skin-boxed .elementor-share-btn__text, .elementor-share-buttons--skin-minimal .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
  padding-left: 0.9em; }

.elementor-share-buttons--skin-flat .elementor-share-btn, .elementor-share-buttons--skin-gradient .elementor-share-btn {
  background-color: var(--e-share-buttons-primary-color, #ea4335); }
  .elementor-share-buttons--skin-flat .elementor-share-btn__icon, .elementor-share-buttons--skin-flat .elementor-share-btn__text, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon, .elementor-share-buttons--skin-gradient .elementor-share-btn__text {
    color: var(--e-share-buttons-secondary-color, #fff); }
    .elementor-share-buttons--skin-flat .elementor-share-btn__icon svg, .elementor-share-buttons--skin-flat .elementor-share-btn__text svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__icon svg, .elementor-share-buttons--skin-gradient .elementor-share-btn__text svg {
      fill: var(--e-share-buttons-secondary-color, #fff); }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-rounded .elementor-share-btn__icon {
  border-radius: 0.5em; }

.elementor-share-buttons--skin-minimal.elementor-share-buttons--shape-circle .elementor-share-btn__icon {
  border-radius: 99.9em; }

.elementor-share-buttons--view-text .elementor-share-btn__text {
  padding-left: 1em; }

.elementor-share-buttons--view-text .elementor-share-btn, .elementor-share-buttons--view-icon .elementor-share-btn {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .elementor-share-buttons--view-text .elementor-share-btn__icon, .elementor-share-buttons--view-text .elementor-share-btn__text, .elementor-share-buttons--view-icon .elementor-share-btn__icon, .elementor-share-buttons--view-icon .elementor-share-btn__text {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-share-buttons--shape-rounded .elementor-share-btn {
  border-radius: 0.5em; }

.elementor-share-buttons--shape-circle .elementor-share-btn {
  border-radius: 99.9em; }

.elementor-share-btn {
  overflow: hidden;
  font-size: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-transition-duration: 0.2s;
       -o-transition-duration: 0.2s;
          transition-duration: 0.2s;
  -webkit-transition-property: background-color, border-color, -webkit-filter;
  transition-property: background-color, border-color, -webkit-filter;
  -o-transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color;
  transition-property: filter, background-color, border-color, -webkit-filter;
  height: 4.5em;
  cursor: pointer; }
  .elementor-share-btn__icon, .elementor-share-btn__text {
    -webkit-transition-property: color, background-color;
    -o-transition-property: color, background-color;
    transition-property: color, background-color;
    -webkit-transition-duration: 0.2s;
         -o-transition-duration: 0.2s;
            transition-duration: 0.2s; }
  .elementor-share-btn__icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 4.5em;
    position: relative; }
    .elementor-share-btn__icon i {
      font-size: var(--e-share-buttons-icon-size, 1.7em); }
    .elementor-share-btn__icon svg {
      width: var(--e-share-buttons-icon-size, 1.7em);
      height: var(--e-share-buttons-icon-size, 1.7em); }
  .elementor-share-btn__text {
    font-size: 1.5em;
    padding-right: 1em;
    -ms-flex-item-align: stretch;
        align-self: stretch;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-weight: 100; }
  .elementor-share-btn__title {
    font-weight: bold;
    -ms-flex-negative: 0;
        flex-shrink: 0; }

.elementor-widget-share-buttons {
  text-align: var(--alignment, inherit);
  -moz-text-align-last: var(--alignment, inherit);
       text-align-last: var(--alignment, inherit); }
  .elementor-widget-share-buttons.elementor-grid-0 .elementor-widget-container {
    font-size: 0; }

.elementor-skin-carousel .elementor-main-swiper, .elementor-skin-coverflow .elementor-main-swiper {
  height: 230px; }

.elementor-skin-slideshow .elementor-main-swiper {
  height: 450px;
  position: relative; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .elementor-custom-embed-play i {
  font-size: 50px; }

.elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide {
  cursor: pointer; }
  .elementor-skin-slideshow .elementor-thumbnails-swiper .swiper-slide:not(.swiper-slide-active):after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-color: rgba(0, 0, 0, 0.3); }

.elementor-carousel-image {
  background: no-repeat center;
  -webkit-background-size: cover;
          background-size: cover;
  height: 100%;
  position: relative; }

.elementor-carousel-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  width: 100%;
  height: 100%;
  padding: 20px;
  color: var(--e-carousel-image-overlay-color, #fff);
  background-color: rgba(129, 138, 145, 0.8);
  -webkit-transition: opacity .5s, -webkit-transform .5s;
  transition: opacity .5s, -webkit-transform .5s;
  -o-transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s;
  transition: transform .5s, opacity .5s, -webkit-transform .5s; }
  .elementor-carousel-image-overlay i {
    font-size: var(--e-carousel-image-overlay-icon-size, 21px); }
  .elementor-carousel-image-overlay svg {
    fill: var(--e-carousel-image-overlay-color, #fff);
    width: var(--e-carousel-image-overlay-icon-size, 21px);
    height: var(--e-carousel-image-overlay-icon-size, 21px); }

.elementor-testimonial__image {
  -ms-flex-negative: 0;
      flex-shrink: 0; }
  .elementor-testimonial__image img {
    border-radius: 999px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    -o-object-fit: cover;
       object-fit: cover; }

.elementor-testimonial__footer, .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-testimonial__footer cite, .elementor-testimonial__header cite {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5; }

.elementor-testimonial__name {
  font-weight: bold; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer, .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above .elementor-testimonial__image + cite {
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__image + cite {
  margin-right: 20px;
  margin-left: 0; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__footer, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__footer {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__image + cite {
  margin-right: 0;
  margin-left: 20px; }

.elementor-testimonial--layout-image_inline .elementor-testimonial__footer {
  margin-top: 25px; }

.elementor-testimonial--layout-image_above .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }
  .elementor-testimonial--layout-image_above .elementor-testimonial__footer {
    margin-bottom: 25px; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__footer {
  margin-top: 25px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }

.elementor-testimonial--layout-image_stacked .elementor-testimonial__image, .elementor-testimonial--layout-image_stacked .elementor-testimonial cite {
  margin-top: 15px;
  width: 100%; }

.elementor-testimonial--layout-image_left .elementor-testimonial, .elementor-testimonial--layout-image_right .elementor-testimonial {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: center; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__image + cite, .elementor-testimonial--layout-image_right .elementor-testimonial__image + cite {
    margin-top: 15px; }

.elementor-testimonial--layout-image_left.elementor-testimonial--align-center .elementor-testimonial__footer, .elementor-testimonial--layout-image_right.elementor-testimonial--align-center .elementor-testimonial__footer {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-testimonial--layout-image_left .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }
  .elementor-testimonial--layout-image_left .elementor-testimonial__footer {
    padding-right: 20px; }

.elementor-testimonial--layout-image_right .elementor-testimonial {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .elementor-testimonial--layout-image_right .elementor-testimonial__footer {
    padding-left: 20px; }

.elementor-testimonial--align-right .elementor-testimonial {
  text-align: right; }

.elementor-testimonial--align-left .elementor-testimonial {
  text-align: left; }

.elementor-testimonial--align-center .elementor-testimonial {
  text-align: center; }
  .elementor-testimonial--align-center .elementor-testimonial__footer {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }

.elementor-testimonial--align-center.elementor-testimonial--layout-image_inline .elementor-testimonial__image + cite {
  text-align: left; }

.elementor-testimonial--skin-default.elementor-testimonial--layout-image_right .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_left .elementor-testimonial__cite, .elementor-testimonial--skin-default.elementor-testimonial--layout-image_above .elementor-testimonial__cite {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-top: 25px; }

.elementor-testimonial--skin-bubble .elementor-testimonial__content {
  background-color: #e6e9ec;
  padding: 20px;
  position: relative; }
  .elementor-testimonial--skin-bubble .elementor-testimonial__content:after {
    content: '';
    display: block;
    width: 14px;
    height: 14px;
    background-color: #e6e9ec;
    position: absolute;
    -webkit-transform: scaleX(0.75) rotate(45deg);
        -ms-transform: scaleX(0.75) rotate(45deg);
            transform: scaleX(0.75) rotate(45deg);
    border-width: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above .elementor-testimonial__content:after {
  bottom: calc( 100% - 7px);
  -webkit-transform: scaleX(0.75) rotate(-135deg);
      -ms-transform: scaleX(0.75) rotate(-135deg);
          transform: scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(-135deg);
          transform: translateX(-50%) scaleX(0.75) rotate(-135deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline .elementor-testimonial__content:after {
  top: calc( 100% - 7px); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-center .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-center .elementor-testimonial__content:after {
  left: 50%;
  -webkit-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
      -ms-transform: translateX(-50%) scaleX(0.75) rotate(45deg);
          transform: translateX(-50%) scaleX(0.75) rotate(45deg); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-left .elementor-testimonial__content:after {
  left: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_above.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_stacked.elementor-testimonial--align-right .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_inline.elementor-testimonial--align-right .elementor-testimonial__content:after {
  right: calc( 20px + ( 50px / 2 )); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(135deg);
      -ms-transform: scaleY(0.75) rotate(135deg);
          transform: scaleY(0.75) rotate(135deg);
  left: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  -webkit-transform: scaleY(0.75) rotate(-45deg);
      -ms-transform: scaleY(0.75) rotate(-45deg);
          transform: scaleY(0.75) rotate(-45deg);
  right: -8px; }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__content:after, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__content:after {
  top: calc(20px + (50px / 2)); }

.elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_left .elementor-testimonial__footer, .elementor-testimonial--skin-bubble.elementor-testimonial--layout-image_right .elementor-testimonial__footer {
  padding-top: 20px; }

.elementor-widget-testimonial-carousel .swiper-slide {
  padding: 20px; }

.elementor-widget-testimonial-carousel .elementor-testimonial__text {
  font-size: 1.3em;
  font-style: italic;
  line-height: 1.5; }

.elementor-widget-testimonial-carousel .elementor-testimonial__image img {
  width: 50px;
  height: 50px; }

.elementor-widget-reviews .swiper-slide {
  background-color: white;
  border: 1px solid #e1e8ed;
  border-radius: 5px;
  padding: 0; }

.elementor-widget-reviews .elementor-testimonial__text {
  font-size: 14px;
  line-height: 20px; }

.elementor-widget-reviews .elementor-testimonial__name {
  color: #1c2022; }

.elementor-widget-reviews .elementor-testimonial__title {
  color: #697882;
  font-size: 12.5px;
  font-weight: normal;
  font-family: inherit; }

.elementor-widget-reviews .elementor-testimonial__image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-widget-reviews .elementor-testimonial__image img {
    width: 36px;
    height: 36px; }

.elementor-widget-reviews .elementor-testimonial__icon {
  margin-left: auto;
  font-size: 17px; }
  .elementor-widget-reviews .elementor-testimonial__icon .fa + .fa {
    margin-left: 0.15em; }
  .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon {
    color: var(--e-testimonial-icon-color); }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-android {
      --e-testimonial-icon-color: #A4C639; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-apple {
      --e-testimonial-icon-color: #999999; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-behance {
      --e-testimonial-icon-color: #1769ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-bitbucket {
      --e-testimonial-icon-color: #205081; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-codepen {
      --e-testimonial-icon-color: #000000; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-delicious {
      --e-testimonial-icon-color: #3399ff; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-digg {
      --e-testimonial-icon-color: #005be2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-dribbble {
      --e-testimonial-icon-color: #ea4c89; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-envelope {
      --e-testimonial-icon-color: #ea4335; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-facebook {
      --e-testimonial-icon-color: #3b5998; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-flickr {
      --e-testimonial-icon-color: #0063dc; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-foursquare {
      --e-testimonial-icon-color: #2d5be3; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-github {
      --e-testimonial-icon-color: #333333; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-google-plus {
      --e-testimonial-icon-color: #dd4b39; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-houzz {
      --e-testimonial-icon-color: #7ac142; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-instagram {
      --e-testimonial-icon-color: #262626; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-jsfiddle {
      --e-testimonial-icon-color: #487AA2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-linkedin {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-medium {
      --e-testimonial-icon-color: #00ab6b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-meetup {
      --e-testimonial-icon-color: #ec1c40; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-mixcloud {
      --e-testimonial-icon-color: #273a4b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-odnoklassniki {
      --e-testimonial-icon-color: #F4731C; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-pinterest {
      --e-testimonial-icon-color: #bd081c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-product-hunt {
      --e-testimonial-icon-color: #da552f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-reddit {
      --e-testimonial-icon-color: #ff4500; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-rss {
      --e-testimonial-icon-color: #f26522; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-shopping-cart {
      --e-testimonial-icon-color: #4CAF50; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-skype {
      --e-testimonial-icon-color: #00AFF0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-slideshare {
      --e-testimonial-icon-color: #0077b5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-snapchat {
      --e-testimonial-icon-color: #fffc00; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-soundcloud {
      --e-testimonial-icon-color: #ff8800; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-spotify {
      --e-testimonial-icon-color: #2ebd59; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stack-overflow {
      --e-testimonial-icon-color: #fe7a15; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-steam {
      --e-testimonial-icon-color: #00adee; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-stumbleupon {
      --e-testimonial-icon-color: #EB4924; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-telegram {
      --e-testimonial-icon-color: #2CA5E0; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumb-tack, .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-thumbtack {
      --e-testimonial-icon-color: #1aa1d8; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tripadvisor {
      --e-testimonial-icon-color: #589442; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-tumblr {
      --e-testimonial-icon-color: #35465c; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitch {
      --e-testimonial-icon-color: #6441A5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-twitter {
      --e-testimonial-icon-color: #1DA1F2; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vimeo {
      --e-testimonial-icon-color: #1ab7ea; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-vk {
      --e-testimonial-icon-color: #45668e; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weibo {
      --e-testimonial-icon-color: #DD2430; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-weixin {
      --e-testimonial-icon-color: #31A918; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-whatsapp {
      --e-testimonial-icon-color: #25d366; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-wordpress {
      --e-testimonial-icon-color: #21759b; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-xing {
      --e-testimonial-icon-color: #026466; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-yelp {
      --e-testimonial-icon-color: #af0606; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-youtube {
      --e-testimonial-icon-color: #cd201f; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon-500px {
      --e-testimonial-icon-color: #0099e5; }
    .elementor-widget-reviews .elementor-testimonial__icon.elementor-icon svg {
      fill: var(--e-testimonial-icon-color); }

.elementor-widget-reviews .elementor-testimonial__rating {
  background-image: -webkit-gradient(linear, left top, right top, from(#ffc82c), to(#cccccc));
  background-image: -webkit-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: -o-linear-gradient(left, #ffc82c var(--rating), #cccccc var(--rating));
  background-image: linear-gradient(to right, #ffc82c var(--rating), #cccccc var(--rating));
  font-family: eicons; }

.elementor-widget-reviews .elementor-testimonial__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 15px;
  padding-bottom: 6px; }

.elementor-widget-reviews .elementor-testimonial__image + cite {
  margin-left: 9px; }

.elementor-widget-reviews .elementor-testimonial__separator {
  margin: 0 auto;
  border-top: 0 none;
  border-bottom: 1px solid #e1e8ed;
  height: 0; }

.elementor-widget-reviews .elementor-testimonial__content {
  padding-top: 6px;
  padding-bottom: 15px; }

.elementor-widget-reviews .elementor-testimonial__content, .elementor-widget-reviews .elementor-testimonial__header {
  padding-left: 15px;
  padding-right: 15px; }

.elementor-widget-reviews.elementor-review--has-separator .elementor-testimonial__header {
  border-bottom: 1px solid #e1e8ed; }

.swiper-pagination-bullets {
  color: #fff;
  cursor: default; }

.swiper-slide {
  will-change: transform;
  border-style: solid;
  border-width: 0;
  -webkit-transition-duration: .5s;
       -o-transition-duration: .5s;
          transition-duration: .5s;
  -webkit-transition-property: border, background, -webkit-transform;
  transition-property: border, background, -webkit-transform;
  -o-transition-property: border, background, transform;
  transition-property: border, background, transform;
  transition-property: border, background, transform, -webkit-transform;
  overflow: hidden; }
  .swiper-slide:not(:hover) .e-overlay-animation-fade {
    opacity: 0; }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-up {
    -webkit-transform: translateY(100%);
        -ms-transform: translateY(100%);
            transform: translateY(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-down {
    -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
            transform: translateY(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-right {
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-slide-left {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .swiper-slide:not(:hover) .e-overlay-animation-zoom-in {
    -webkit-transform: scale(0.5);
        -ms-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 0; }
  .swiper-slide a {
    display: inline; }
    .swiper-slide a.elementor-button {
      display: inline-block; }

.elementor-widget-testimonial-carousel .elementor-arrows-yes .elementor-main-swiper,
.elementor-widget-reviews .elementor-arrows-yes .elementor-main-swiper {
  width: calc( 95% - 40px); }

.elementor-widget-testimonial-carousel .elementor-main-swiper,
.elementor-widget-reviews .elementor-main-swiper {
  width: 95%; }

.elementor-widget-testimonial-carousel .swiper-wrapper,
.elementor-widget-reviews .swiper-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.elementor-widget-testimonial-carousel .swiper-slide,
.elementor-widget-reviews .swiper-slide {
  height: auto; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container, .elementor-widget-testimonial-carousel.elementor-pagination-type-fraction .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-bullets .swiper-container,
.elementor-widget-reviews.elementor-pagination-type-fraction .swiper-container {
  padding-bottom: 40px; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-prev,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-next,
.elementor-widget-reviews .elementor-swiper-button-prev,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-next {
  left: 0;
  right: unset; }

.elementor-widget-testimonial-carousel .elementor-swiper-button-next,
.elementor-widget-testimonial-carousel .swiper-container-rtl .elementor-swiper-button-prev,
.elementor-widget-reviews .elementor-swiper-button-next,
.elementor-widget-reviews .swiper-container-rtl .elementor-swiper-button-prev {
  right: 0;
  left: unset; }

.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-next, .elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .elementor-swiper-button-prev,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-next,
.elementor-widget-reviews.elementor-pagination-type-bullets .elementor-swiper-button-prev {
  top: calc( 50% - ( 40px / 2 )); }

.elementor-widget-media-carousel .elementor-swiper-button-prev,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-next {
  left: 10px;
  right: unset; }

.elementor-widget-media-carousel .elementor-swiper-button-next,
.elementor-widget-media-carousel .swiper-container-rtl .elementor-swiper-button-prev {
  right: 10px;
  left: unset; }

.entry-content blockquote.elementor-blockquote:not(.alignright):not(.alignleft),
.entry-summary blockquote.elementor-blockquote {
  margin-right: 0;
  margin-left: 0; }

.elementor-widget-blockquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  quotes: none;
  border-left: 0 none;
  border-right: 0 none;
  border-top: 0 none;
  border-bottom: 0 none;
  font-style: normal;
  color: #55595c; }
  .elementor-widget-blockquote blockquote:before, .elementor-widget-blockquote blockquote:after,
  .elementor-widget-blockquote blockquote footer:before,
  .elementor-widget-blockquote blockquote footer:after,
  .elementor-widget-blockquote blockquote cite:before,
  .elementor-widget-blockquote blockquote cite:after {
    content: '';
    content: none; }

.elementor-blockquote {
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }
  .elementor-blockquote__author, .elementor-blockquote__content {
    margin-bottom: 0;
    font-style: normal; }
  .elementor-blockquote__author {
    font-weight: bold; }
  .elementor-blockquote footer {
    margin-top: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .elementor-blockquote__tweet-button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    color: #1DA1F2;
    -ms-flex-item-align: end;
        align-self: flex-end;
    line-height: 1;
    position: relative;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content; }
    .elementor-blockquote__tweet-button:hover {
      color: #0967a0; }
    .elementor-blockquote__tweet-button span {
      font-weight: 600; }
    .elementor-blockquote__tweet-button i, .elementor-blockquote__tweet-button span {
      vertical-align: middle; }
    .elementor-blockquote__tweet-button i + span,
    .elementor-blockquote__tweet-button svg + span {
      margin-left: 0.5em; }
    .elementor-blockquote__tweet-button svg {
      fill: #1DA1F2;
      height: 1em;
      width: 1em; }
  .elementor-blockquote__tweet-label {
    white-space: pre-wrap; }
  .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button {
    padding: 0.7em 1.2em;
    border-radius: 100em;
    background-color: #1DA1F2;
    color: #fff;
    font-size: 15px; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover {
      background-color: #0967a0;
      color: #fff; }
      .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button:hover:before, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:hover:before {
        border-right-color: #0967a0; }
    .elementor-blockquote--button-skin-classic .elementor-blockquote__tweet-button svg, .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button svg {
      fill: #fff;
      height: 1em;
      width: 1em; }
  .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button {
    padding: 0;
    width: 2em;
    height: 2em; }
    .elementor-blockquote--button-skin-classic.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i, .elementor-blockquote--button-skin-bubble.elementor-blockquote--button-view-icon .elementor-blockquote__tweet-button i {
      position: absolute;
      left: 50%;
      top: 50%;
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%); }
  .elementor-blockquote--button-skin-bubble .elementor-blockquote__tweet-button:before {
    content: '';
    border: solid 0.5em transparent;
    border-right-color: #1DA1F2;
    position: absolute;
    left: -0.8em;
    top: 50%;
    -webkit-transform: translateY(-50%) scale(1, 0.65);
        -ms-transform: translateY(-50%) scale(1, 0.65);
            transform: translateY(-50%) scale(1, 0.65);
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:before {
    right: auto;
    left: -0.8em;
    border-right-color: #1DA1F2;
    border-left-color: transparent; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-left .elementor-blockquote__tweet-button:hover:before {
    border-right-color: #0967a0; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:before {
    left: auto;
    right: -0.8em;
    border-right-color: transparent;
    border-left-color: #1DA1F2; }
  .elementor-blockquote--button-skin-bubble.elementor-blockquote--align-right .elementor-blockquote__tweet-button:hover:before {
    border-left-color: #0967a0; }
  .elementor-blockquote--skin-boxed .elementor-blockquote {
    background-color: #e6e9ec;
    padding: 30px; }
  .elementor-blockquote--skin-border .elementor-blockquote {
    border-color: #e6e9ec;
    border-style: solid;
    border-left-width: 7px;
    padding-left: 20px; }
  .elementor-blockquote--skin-quotation .elementor-blockquote:before {
    content: '“';
    font-size: 100px;
    color: #e6e9ec;
    font-family: "Times New Roman", Times, serif;
    font-weight: 900;
    line-height: 1;
    display: block;
    height: 0.6em; }
  .elementor-blockquote--skin-quotation .elementor-blockquote__content {
    margin-top: 15px; }
  .elementor-blockquote--align-left .elementor-blockquote__content {
    text-align: left; }
  .elementor-blockquote--align-left .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
  .elementor-blockquote--align-right .elementor-blockquote__content {
    text-align: right; }
  .elementor-blockquote--align-right .elementor-blockquote footer {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .elementor-blockquote--align-center .elementor-blockquote {
    text-align: center; }
    .elementor-blockquote--align-center .elementor-blockquote footer {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__author {
      display: block; }
    .elementor-blockquote--align-center .elementor-blockquote__tweet-button {
      margin-right: auto;
      margin-left: auto; }

.elementor-headline {
  font-size: 43px;
  line-height: 1.2;
  display: block; }
  .elementor-headline-dynamic-text {
    color: var(--dynamic-text-color, #aebcb9); }
  .elementor-headline--style-rotate .elementor-headline-dynamic-wrapper {
    text-align: left; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-wrapper {
    overflow: visible;
    text-align: inherit; }
  .elementor-headline--style-highlight .elementor-headline-dynamic-text {
    z-index: 1; }
  .elementor-headline--style-highlight .elementor-headline-plain-text {
    z-index: 1;
    position: relative; }
  .elementor-headline--style-highlight svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc( 100% + 20px);
    height: calc( 100% + 20px);
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    overflow: visible; }
    .elementor-headline--style-highlight svg path {
      stroke: red;
      stroke-width: 9;
      fill: none;
      opacity: 0;
      stroke-dasharray: 0 1500;
      -webkit-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
  .elementor-headline.e-animated svg path {
    -webkit-animation: elementor-headline-dash forwards;
            animation: elementor-headline-dash forwards;
    -webkit-animation-duration: var(--animation-duration, 1.2s);
            animation-duration: var(--animation-duration, 1.2s);
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }
    .elementor-headline.e-animated svg path:nth-of-type(2) {
      -webkit-animation-delay: calc(var(--animation-duration, 1.2s) / 2);
              animation-delay: calc(var(--animation-duration, 1.2s) / 2); }
  .elementor-headline.e-hide-highlight svg path {
    opacity: 1;
    stroke-dasharray: 1500 1500;
    -webkit-animation: hide-highlight 0.4s forwards;
            animation: hide-highlight 0.4s forwards;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1; }

@-webkit-keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@keyframes elementor-headline-dash {
  from {
    stroke-dasharray: 0 1500;
    opacity: 1; }
  to {
    stroke-dasharray: 1500 1500;
    opacity: 1; } }

@-webkit-keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

@keyframes hide-highlight {
  from {
    opacity: 1;
    stroke-dasharray: 1500 1500; }
  to {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px); } }

.elementor-headline-text-wrapper {
  vertical-align: bottom; }

.elementor-headline-dynamic-wrapper {
  display: inline-block;
  position: relative; }
  .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0; }
    .elementor-headline-dynamic-wrapper .elementor-headline-dynamic-text.elementor-headline-text-active {
      position: relative; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-flip .elementor-headline-dynamic-text {
  opacity: 0;
  -webkit-transform-origin: 50% 100%;
      -ms-transform-origin: 50% 100%;
          transform-origin: 50% 100%;
  -webkit-transform: rotateX(180deg);
          transform: rotateX(180deg); }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    -webkit-animation: elementor-headline-flip-in 1.2s;
            animation: elementor-headline-flip-in 1.2s; }
  .elementor-headline-animation-type-flip .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    -webkit-animation: elementor-headline-flip-out 1.2s;
            animation: elementor-headline-flip-out 1.2s; }

@-webkit-keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@keyframes elementor-headline-flip-in {
  0% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; }
  35% {
    -webkit-transform: rotateX(120deg);
            transform: rotateX(120deg);
    opacity: 0; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(360deg);
            transform: rotateX(360deg);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

@keyframes elementor-headline-flip-out {
  0% {
    -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
    opacity: 1; }
  35% {
    -webkit-transform: rotateX(-40deg);
            transform: rotateX(-40deg);
    opacity: 1; }
  65% {
    opacity: 0; }
  100% {
    -webkit-transform: rotateX(180deg);
            transform: rotateX(180deg);
    opacity: 0; } }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper {
  vertical-align: top;
  overflow: hidden; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper::after {
    /* vertical bar */
    content: '';
    position: absolute;
    left: auto;
    right: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    height: 90%;
    width: 1px;
    background-color: #0d0d0d; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper:not(.elementor-headline-typing-selected):after {
    -webkit-animation: elementor-headline-pulse 1s infinite;
            animation: elementor-headline-pulse 1s infinite; }
  .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected {
    background-color: var(--typing-selected-bg-color, #0d0d0d); }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected::after {
      visibility: hidden; }
    .elementor-headline-animation-type-typing .elementor-headline-dynamic-wrapper.elementor-headline-typing-selected .elementor-headline-dynamic-text {
      color: var(--typing-selected-color, var(--dynamic-text-color), #aebcb9); }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-text:not(.elementor-headline-text-active) {
  visibility: hidden; }

.elementor-headline-animation-type-typing .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
  position: absolute;
  visibility: hidden; }

@-webkit-keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

@keyframes elementor-headline-pulse {
  0% {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1);
    opacity: 1; }
  40% {
    -webkit-transform: translateY(-50%) scale(0.9);
            transform: translateY(-50%) scale(0.9);
    opacity: 0; }
  100% {
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text {
  -webkit-transform: scaleX(1.0005);
      -ms-transform: scaleX(1.0005);
          transform: scaleX(1.0005);
  opacity: 0; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: translateZ(-20px) rotateX(90deg);
          transform: translateZ(-20px) rotateX(90deg);
  opacity: 0; }
  .elementor-headline-text-active .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-swirl-in .4s forwards;
            animation: elementor-headline-swirl-in .4s forwards; }
  .elementor-headline-animation-type-swirl .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-swirl-out .4s forwards;
            animation: elementor-headline-swirl-out .4s forwards; }

@-webkit-keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@keyframes elementor-headline-swirl-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(90deg);
            transform: translateZ(-20px) rotateX(90deg); }
  60% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(-10deg);
            transform: translateZ(-20px) rotateX(-10deg); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0deg);
            transform: translateZ(-20px) rotateX(0deg); } }

@-webkit-keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

@keyframes elementor-headline-swirl-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(-20px) rotateX(0);
            transform: translateZ(-20px) rotateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-100deg);
            transform: translateZ(-20px) rotateX(-100deg); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-20px) rotateX(-90deg);
            transform: translateZ(-20px) rotateX(-90deg); } }

.elementor-headline-animation-type-slide-down .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }

.elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text {
  opacity: 0;
  top: .2em; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-active {
    top: 0;
    opacity: 1;
    -webkit-animation: elementor-headline-slide-down-in .6s;
            animation: elementor-headline-slide-down-in .6s; }
  .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-down-out .6s;
            animation: elementor-headline-slide-down-out .6s; }

@-webkit-keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@keyframes elementor-headline-slide-down-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateY(20%);
            transform: translateY(20%); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); } }

@-webkit-keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

@keyframes elementor-headline-slide-down-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateY(120%);
            transform: translateY(120%); }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
            transform: translateY(100%); } }

.elementor-headline-animation-type-clip .elementor-headline-text-wrapper {
  display: inline-block;
  padding: .2em 0; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper {
  overflow: hidden;
  vertical-align: top; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-wrapper::after {
    /* line */
    content: '';
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    width: 2px;
    height: 100%;
    background-color: #0d0d0d; }

.elementor-headline-animation-type-clip .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-clip .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-drop-in-in .8s;
            animation: elementor-headline-drop-in-in .8s; }
  .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-drop-in-out .8s;
            animation: elementor-headline-drop-in-out .8s; }

@-webkit-keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@keyframes elementor-headline-drop-in-in {
  0% {
    opacity: 0;
    -webkit-transform: translateZ(100px);
            transform: translateZ(100px); }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); } }

@-webkit-keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

@keyframes elementor-headline-drop-in-out {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
            transform: translateZ(0); }
  100% {
    opacity: 0;
    -webkit-transform: translateZ(-100px);
            transform: translateZ(-100px); } }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper {
  -webkit-perspective: 300px;
          perspective: 300px; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
  display: inline-block;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .elementor-headline-text-active .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-blinds-in .6s forwards;
            animation: elementor-headline-blinds-in .6s forwards; }
  .elementor-headline-animation-type-blinds .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-blinds-out .6s forwards;
            animation: elementor-headline-blinds-out .6s forwards; }

@-webkit-keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@keyframes elementor-headline-blinds-in {
  0% {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg); }
  100% {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); } }

@-webkit-keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

@keyframes elementor-headline-blinds-out {
  0% {
    -webkit-transform: rotateY(0);
            transform: rotateY(0); }
  100% {
    -webkit-transform: rotateY(-180deg);
            transform: rotateY(-180deg); } }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  opacity: 0; }

.elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
  display: inline-block;
  opacity: 0;
  -webkit-transform: scale(0);
      -ms-transform: scale(0);
          transform: scale(0); }
  .elementor-headline-text-active .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter {
    opacity: 1; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter.elementor-headline-animation-in {
    -webkit-animation: elementor-headline-wave-up .6s forwards;
            animation: elementor-headline-wave-up .6s forwards; }
  .elementor-headline-animation-type-wave .elementor-headline-dynamic-letter:not(.elementor-headline-animation-in) {
    -webkit-animation: elementor-headline-wave-down .6s forwards;
            animation: elementor-headline-wave-down .6s forwards; }

@-webkit-keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@keyframes elementor-headline-wave-up {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  60% {
    -webkit-transform: scale(1.2);
            transform: scale(1.2);
    opacity: 1; }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; } }

@-webkit-keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

@keyframes elementor-headline-wave-down {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1; }
  60% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; } }

.elementor-headline-animation-type-slide .elementor-headline-dynamic-text {
  opacity: 0; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-active {
    opacity: 1;
    -webkit-animation: elementor-headline-slide-in .6s;
            animation: elementor-headline-slide-in .6s; }
  .elementor-headline-animation-type-slide .elementor-headline-dynamic-text.elementor-headline-text-inactive {
    -webkit-animation: elementor-headline-slide-out .6s;
            animation: elementor-headline-slide-out .6s; }

@-webkit-keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@keyframes elementor-headline-slide-in {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%); }
  60% {
    opacity: 1;
    -webkit-transform: translateX(10%);
            transform: translateX(10%); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); } }

@-webkit-keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

@keyframes elementor-headline-slide-out {
  0% {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0); }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
            transform: translateX(110%); }
  100% {
    opacity: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%); } }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-slide-down .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-flip .elementor-headline-dynamic-wrapper {
  -webkit-transition: width 0.5s;
  -o-transition: width 0.5s;
  transition: width 0.5s; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-wrapper, .elementor-headline-animation-type-wave .elementor-headline-dynamic-wrapper {
  overflow: hidden; }

.elementor-headline-animation-type-swirl .elementor-headline-dynamic-text, .elementor-headline-animation-type-blinds .elementor-headline-dynamic-text, .elementor-headline-animation-type-wave .elementor-headline-dynamic-text {
  white-space: nowrap; }

.elementor-msie .elementor-headline--style-highlight svg {
  top: auto;
  left: auto;
  -webkit-transform: translate(-100%);
      -ms-transform: translate(-100%);
          transform: translate(-100%); }

/* Animations */
@-webkit-keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }
@keyframes e-hotspot-soft-beat {
  from {
    -webkit-transform: scale(1);
            transform: scale(1); }
  to {
    -webkit-transform: scale(1.1);
            transform: scale(1.1); } }

@-webkit-keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

@keyframes e-hotspot-expand {
  from {
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
    opacity: 1; }
  to {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
    opacity: 0; } }

/* Hotspot Wrapper */
.elementor-widget-hotspot {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: var(--background-align);
      -ms-flex-pack: var(--background-align);
          justify-content: var(--background-align); }
  .elementor-widget-hotspot .elementor-widget-container {
    position: relative;
    display: inline-block;
    width: var(--container-width);
    max-width: var(--container-max-width);
    height: var(--container-height); }
    .elementor-widget-hotspot .elementor-widget-container > img {
      display: block;
      width: var(--image-width, auto);
      height: var(--container-height);
      opacity: var(--opacity, 1); }

/* Each Hotspot */
.e-hotspot {
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  /* Hotspot Button Animations */
  /* End: Hotspot Button Animations */ }
  .e-hotspot--position-left.e-hotspot--position-top {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-left.e-hotspot--position-bottom {
    -webkit-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
        -ms-transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y));
            transform: translate(calc( -1 * var( --hotspot-translate-x )), var(--hotspot-translate-y)); }
  .e-hotspot--position-right.e-hotspot--position-top {
    -webkit-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
        -ms-transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y )));
            transform: translate(var(--hotspot-translate-x), calc( -1 * var( --hotspot-translate-y ))); }
  .e-hotspot--position-right.e-hotspot--position-bottom {
    -webkit-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
        -ms-transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y));
            transform: translate(var(--hotspot-translate-x), var(--hotspot-translate-y)); }
  .e-hotspot--active {
    z-index: 2; }
  .e-hotspot__outer-circle, .e-hotspot__inner-circle {
    content: "";
    display: inline-block;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    border-radius: 50%; }
  .e-hotspot__inner-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    background-color: var(--hotspot-color);
    padding: calc( var(--hotspot-size, 18px) / 2); }
  .e-hotspot__outer-circle {
    background-color: var(--hotspot-color);
    padding: var(--hotspot-padding, 4px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot--icon .e-hotspot__button {
    line-height: 0;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    font-size: var(--hotspot-size, 18px);
    width: var(--hotspot-size, 18px);
    height: var(--hotspot-size, 18px); }
  .e-hotspot__icon, .e-hotspot__label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .e-hotspot__icon svg, .e-hotspot__label svg {
      width: var(--hotspot-size, 18px);
      height: auto; }
  .e-hotspot__button {
    cursor: pointer;
    position: relative;
    display: grid;
    grid-auto-flow: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    color: var(--hotspot-color);
    font-size: var(--hotspot-size, 18px);
    min-width: var(--hotspot-button-width);
    min-height: var(--hotspot-button-height); }
    .e-hotspot__button:before {
      z-index: -2;
      content: "";
      width: 100%;
      height: 100%;
      left: -5px;
      top: -5px;
      position: absolute;
      padding: 5px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .e-hotspot__button svg {
      fill: var(--hotspot-color); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button {
    min-width: var(--hotspot-min-width);
    min-height: var(--hotspot-min-height);
    background-color: var(--hotspot-box-color);
    padding: var(--hotspot-padding, 4px);
    border-radius: var(--hotspot-border-radius, 3px); }
    .e-hotspot:not(.e-hotspot--circle) .e-hotspot__button:before {
      border-radius: var(--hotspot-border-radius, 3px); }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    background-color: var(--hotspot-box-color); }
  .e-hotspot--overlay {
    opacity: 0.7;
    -webkit-transition: opacity 0.2s;
    -o-transition: opacity 0.2s;
    transition: opacity 0.2s; }
  .e-hotspot--overlay:hover,
  .e-hotspot--active .e-hotspot--overlay {
    opacity: 1; }
  .e-hotspot--soft-beat {
    -webkit-animation: e-hotspot-soft-beat 0.7s infinite alternate;
            animation: e-hotspot-soft-beat 0.7s infinite alternate;
    -webkit-animation-timing-function: ease;
            animation-timing-function: ease; }
  .e-hotspot--expand .e-hotspot__outer-circle {
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot:not(.e-hotspot--circle) .e-hotspot--expand::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    z-index: -1;
    opacity: 0;
    -webkit-animation: e-hotspot-expand 2s infinite;
            animation: e-hotspot-expand 2s infinite; }
  .e-hotspot--sequenced {
    -webkit-animation: fadeIn 0.3s;
            animation: fadeIn 0.3s;
    -webkit-animation-iteration-count: 1;
            animation-iteration-count: 1;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both; }
  .e-hotspot__direction-mask {
    overflow: hidden;
    position: absolute;
    pointer-events: none; }
  .e-hotspot__tooltip {
    white-space: var(--white-space, nowrap);
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-duration: var(--tooltip-transition-duration, 500ms);
         -o-transition-duration: var(--tooltip-transition-duration, 500ms);
            transition-duration: var(--tooltip-transition-duration, 500ms);
    -webkit-transform-origin: center center;
        -ms-transform-origin: center center;
            transform-origin: center center;
    position: absolute;
    pointer-events: none;
    color: var(--tooltip-text-color, #FFF);
    text-align: var(--tooltip-align);
    min-width: var(--tooltip-min-width);
    padding: var(--tooltip-padding, 8px);
    border-radius: var(--tooltip-border-radius);
    background-color: var(--tooltip-color); }
  .e-hotspot__tooltip p:last-of-type {
    margin-bottom: 0; }
  .e-hotspot__direction-mask .e-hotspot__tooltip {
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    position: static; }
  .e-hotspot--active .e-hotspot__tooltip {
    pointer-events: visible; }
  .e-hotspot--fade-in-out {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--fade-in-out {
    opacity: 1; }
  .e-hotspot--fade-grow {
    opacity: 0;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0); }
  .e-hotspot--active .e-hotspot--fade-grow {
    opacity: 1;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1); }
  .e-hotspot--tooltip-animation-from-top, .e-hotspot--override-tooltip-animation-from-top {
    -webkit-transform: translate(0, calc(-100% - 1px));
        -ms-transform: translate(0, calc(-100% - 1px));
            transform: translate(0, calc(-100% - 1px)); }
  .e-hotspot--tooltip-animation-from-left, .e-hotspot--override-tooltip-animation-from-left {
    -webkit-transform: translate(calc(-100% - 1px), 0);
        -ms-transform: translate(calc(-100% - 1px), 0);
            transform: translate(calc(-100% - 1px), 0); }
  .e-hotspot--tooltip-animation-from-right, .e-hotspot--override-tooltip-animation-from-right {
    -webkit-transform: translate(calc(100% + 1px), 0);
        -ms-transform: translate(calc(100% + 1px), 0);
            transform: translate(calc(100% + 1px), 0); }
  .e-hotspot--tooltip-animation-from-bottom, .e-hotspot--override-tooltip-animation-from-bottom {
    -webkit-transform: translate(0, calc(100% + 1px));
        -ms-transform: translate(0, calc(100% + 1px));
            transform: translate(0, calc(100% + 1px)); }
  .e-hotspot--fade-direction {
    opacity: 0; }
  .e-hotspot--active .e-hotspot--slide-direction,
  .e-hotspot--active .e-hotspot--fade-direction {
    -webkit-transform: translate(0, 0) scale(1);
        -ms-transform: translate(0, 0) scale(1);
            transform: translate(0, 0) scale(1);
    opacity: 1; }
  .e-hotspot--show-tooltip {
    -webkit-transition: none;
    -o-transition: none;
    transition: none;
    opacity: 1;
    pointer-events: visible;
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.elementor-facebook-widget.fb_iframe_widget {
  width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget span {
    width: 100% !important; }
  .elementor-facebook-widget.fb_iframe_widget iframe {
    position: relative;
    width: 100% !important; }

.elementor-facebook-widget.fb-like {
  height: 1px; }

.elementor-widget-facebook-comments iframe {
  width: 100% !important; }

.site-main .menu-navigation-container {
  overflow: visible; }

.elementor-item:before, .elementor-item:after {
  display: block;
  position: absolute;
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  -webkit-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
       -o-transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1);
          transition-timing-function: cubic-bezier(0.58, 0.3, 0.005, 1); }

.elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  opacity: 0; }


.elementor-item:hover:before,
.elementor-item:hover:after,
.elementor-item:focus:before,
.elementor-item:focus:after,
.elementor-item.highlighted:before,
.elementor-item.highlighted:after,
.elementor-item-active:before,
.elementor-item-active:after {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1); }

.e--pointer-double-line .elementor-item:before, .e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:before, .e--pointer-underline .elementor-item:after, .e--pointer-overline .elementor-item:before, .e--pointer-overline .elementor-item:after {
  height: 3px;
  width: 100%;
  left: 0;
  background-color: #55595c;
  z-index: 2; }

.e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-double-line.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  height: 0;
  width: 0;
  left: 50%; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 10px; }

.e--pointer-double-line.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-out .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: 10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: -10px; }

.e--pointer-double-line.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-overline.e--animation-drop-in .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  bottom: -10px; }

.e--pointer-double-line.e--animation-none,
.e--pointer-double-line.e--animation-none .elementor-item, .e--pointer-underline.e--animation-none,
.e--pointer-underline.e--animation-none .elementor-item, .e--pointer-overline.e--animation-none,
.e--pointer-overline.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-double-line.e--animation-none:before, .e--pointer-double-line.e--animation-none:after, .e--pointer-double-line.e--animation-none:hover, .e--pointer-double-line.e--animation-none:focus,
  .e--pointer-double-line.e--animation-none .elementor-item:before,
  .e--pointer-double-line.e--animation-none .elementor-item:after,
  .e--pointer-double-line.e--animation-none .elementor-item:hover,
  .e--pointer-double-line.e--animation-none .elementor-item:focus, .e--pointer-underline.e--animation-none:before, .e--pointer-underline.e--animation-none:after, .e--pointer-underline.e--animation-none:hover, .e--pointer-underline.e--animation-none:focus,
  .e--pointer-underline.e--animation-none .elementor-item:before,
  .e--pointer-underline.e--animation-none .elementor-item:after,
  .e--pointer-underline.e--animation-none .elementor-item:hover,
  .e--pointer-underline.e--animation-none .elementor-item:focus, .e--pointer-overline.e--animation-none:before, .e--pointer-overline.e--animation-none:after, .e--pointer-overline.e--animation-none:hover, .e--pointer-overline.e--animation-none:focus,
  .e--pointer-overline.e--animation-none .elementor-item:before,
  .e--pointer-overline.e--animation-none .elementor-item:after,
  .e--pointer-overline.e--animation-none .elementor-item:hover,
  .e--pointer-overline.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-double-line .elementor-item:before, .e--pointer-overline .elementor-item:before {
  content: '';
  top: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before, .e--pointer-overline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  width: 10px;
  left: -20px; }

.e--pointer-double-line .elementor-item:after, .e--pointer-underline .elementor-item:after {
  content: '';
  bottom: 0; }

.e--pointer-double-line.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after, .e--pointer-underline.e--animation-slide .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):after {
  width: 10px;
  inset-inline-start: 100%; }

.e--pointer-framed .elementor-item:before, .e--pointer-framed .elementor-item:after {
  background: transparent;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  border: 3px solid #55595c; }

.e--pointer-framed .elementor-item:before {
  content: ''; }

.e--pointer-framed.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(0.75);
      -ms-transform: scale(0.75);
          transform: scale(0.75); }

.e--pointer-framed.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.25);
      -ms-transform: scale(1.25);
          transform: scale(1.25); }

.e--pointer-framed.e--animation-grow .elementor-item:before, .e--pointer-framed.e--animation-shrink .elementor-item:before {
  -webkit-transition: opacity 0.2s, -webkit-transform 0.4s;
  transition: opacity 0.2s, -webkit-transform 0.4s;
  -o-transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s;
  transition: opacity 0.2s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-framed.e--animation-draw .elementor-item:before, .e--pointer-framed.e--animation-draw .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-draw .elementor-item:before {
  border-width: 0 0 3px 3px;
  -webkit-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  -o-transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s;
  transition: width 0.1s 0.2s, height 0.1s 0.3s, opacity 0.12s 0.22s; }

.e--pointer-framed.e--animation-draw .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 3px 3px 0 0;
  -webkit-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  -o-transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s;
  transition: width 0.1s, height 0.1s 0.1s, opacity 0.02s 0.18s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  width: 100%;
  height: 100%; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:before,
.e--pointer-framed.e--animation-draw .elementor-item:focus:before,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-draw .elementor-item-active:before {
  -webkit-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  -o-transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s;
  transition: opacity 0.02s, height 0.1s, width 0.1s 0.1s; }


.e--pointer-framed.e--animation-draw .elementor-item:hover:after,
.e--pointer-framed.e--animation-draw .elementor-item:focus:after,
.e--pointer-framed.e--animation-draw .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-draw .elementor-item-active:after {
  -webkit-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  -o-transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s;
  transition: opacity 0.02s 0.2s, height 0.1s 0.2s, width 0.1s 0.3s; }

.e--pointer-framed.e--animation-corners .elementor-item:before, .e--pointer-framed.e--animation-corners .elementor-item:after {
  width: 3px;
  height: 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:before {
  border-width: 3px 0 0 3px; }

.e--pointer-framed.e--animation-corners .elementor-item:after {
  content: '';
  top: initial;
  bottom: 0;
  left: initial;
  right: 0;
  border-width: 0 3px 3px 0; }


.e--pointer-framed.e--animation-corners .elementor-item:hover:before,
.e--pointer-framed.e--animation-corners .elementor-item:hover:after,
.e--pointer-framed.e--animation-corners .elementor-item:focus:before,
.e--pointer-framed.e--animation-corners .elementor-item:focus:after,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:before,
.e--pointer-framed.e--animation-corners .elementor-item.highlighted:after,
.e--pointer-framed.e--animation-corners .elementor-item-active:before,
.e--pointer-framed.e--animation-corners .elementor-item-active:after {
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.002s, width 0.4s, height 0.4s;
  -o-transition: opacity 0.002s, width 0.4s, height 0.4s;
  transition: opacity 0.002s, width 0.4s, height 0.4s; }

.e--pointer-framed.e--animation-none,
.e--pointer-framed.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-framed.e--animation-none:before, .e--pointer-framed.e--animation-none:after, .e--pointer-framed.e--animation-none:hover, .e--pointer-framed.e--animation-none:focus,
  .e--pointer-framed.e--animation-none .elementor-item:before,
  .e--pointer-framed.e--animation-none .elementor-item:after,
  .e--pointer-framed.e--animation-none .elementor-item:hover,
  .e--pointer-framed.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-background .elementor-item:before, .e--pointer-background .elementor-item:after {
  content: '';
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }

.e--pointer-background .elementor-item:before {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }


.e--pointer-background .elementor-item:hover,
.e--pointer-background .elementor-item:focus,
.e--pointer-background .elementor-item.highlighted,
.e--pointer-background .elementor-item-active {
  color: #fff; }

.e--pointer-background.e--animation-grow .elementor-item:before {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5); }


.e--pointer-background.e--animation-grow .elementor-item:hover:before,
.e--pointer-background.e--animation-grow .elementor-item:focus:before,
.e--pointer-background.e--animation-grow .elementor-item.highlighted:before,
.e--pointer-background.e--animation-grow .elementor-item-active:before {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.e--pointer-background.e--animation-shrink .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s; }


.e--pointer-background.e--animation-shrink .elementor-item:hover:before,
.e--pointer-background.e--animation-shrink .elementor-item:focus:before,
.e--pointer-background.e--animation-shrink .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shrink .elementor-item-active:before {
  -webkit-transition: opacity 0.15s, -webkit-transform 0.4s;
  transition: opacity 0.15s, -webkit-transform 0.4s;
  -o-transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s;
  transition: opacity 0.15s, transform 0.4s, -webkit-transform 0.4s; }

.e--pointer-background.e--animation-sweep-left .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  left: 100%; }

.e--pointer-background.e--animation-sweep-right .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 100%; }

.e--pointer-background.e--animation-sweep-up .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  top: 100%; }

.e--pointer-background.e--animation-sweep-down .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-out-vertical .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  bottom: 50%;
  top: 50%; }

.e--pointer-background.e--animation-shutter-out-horizontal .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted):before {
  right: 50%;
  left: 50%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after, .e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #55595c;
  z-index: -1; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:before {
  top: 0;
  bottom: 100%; }

.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:after {
  top: 100%;
  bottom: 0; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:before {
  bottom: 50%; }


.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-vertical .elementor-item-active:after {
  top: 50%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:before {
  right: 0;
  left: 100%; }

.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:after {
  right: 100%;
  left: 0; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:before,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:before {
  left: 50%; }


.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:hover:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item:focus:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item.highlighted:after,
.e--pointer-background.e--animation-shutter-in-horizontal .elementor-item-active:after {
  right: 50%; }

.e--pointer-background.e--animation-none,
.e--pointer-background.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-background.e--animation-none:before, .e--pointer-background.e--animation-none:after, .e--pointer-background.e--animation-none:hover, .e--pointer-background.e--animation-none:focus,
  .e--pointer-background.e--animation-none .elementor-item:before,
  .e--pointer-background.e--animation-none .elementor-item:after,
  .e--pointer-background.e--animation-none .elementor-item:hover,
  .e--pointer-background.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.e--pointer-text.e--animation-skew .elementor-item:hover,
.e--pointer-text.e--animation-skew .elementor-item:focus {
  -webkit-transform: skew(-8deg);
      -ms-transform: skew(-8deg);
          transform: skew(-8deg); }

.e--pointer-text.e--animation-grow .elementor-item:hover,
.e--pointer-text.e--animation-grow .elementor-item:focus {
  -webkit-transform: scale(1.2);
      -ms-transform: scale(1.2);
          transform: scale(1.2); }

.e--pointer-text.e--animation-shrink .elementor-item:hover,
.e--pointer-text.e--animation-shrink .elementor-item:focus {
  -webkit-transform: scale(0.8);
      -ms-transform: scale(0.8);
          transform: scale(0.8); }

.e--pointer-text.e--animation-float .elementor-item:hover,
.e--pointer-text.e--animation-float .elementor-item:focus {
  -webkit-transform: translateY(-8px);
      -ms-transform: translateY(-8px);
          transform: translateY(-8px); }

.e--pointer-text.e--animation-sink .elementor-item:hover,
.e--pointer-text.e--animation-sink .elementor-item:focus {
  -webkit-transform: translateY(8px);
      -ms-transform: translateY(8px);
          transform: translateY(8px); }

.e--pointer-text.e--animation-rotate .elementor-item:hover,
.e--pointer-text.e--animation-rotate .elementor-item:focus {
  -webkit-transform: rotate(6deg);
      -ms-transform: rotate(6deg);
          transform: rotate(6deg); }

.e--pointer-text.e--animation-none,
.e--pointer-text.e--animation-none .elementor-item {
  -webkit-transition-duration: 0s;
       -o-transition-duration: 0s;
          transition-duration: 0s; }
  .e--pointer-text.e--animation-none:before, .e--pointer-text.e--animation-none:after, .e--pointer-text.e--animation-none:hover, .e--pointer-text.e--animation-none:focus,
  .e--pointer-text.e--animation-none .elementor-item:before,
  .e--pointer-text.e--animation-none .elementor-item:after,
  .e--pointer-text.e--animation-none .elementor-item:hover,
  .e--pointer-text.e--animation-none .elementor-item:focus {
    -webkit-transition-duration: 0s;
         -o-transition-duration: 0s;
            transition-duration: 0s; }

.elementor-nav-menu--main .elementor-nav-menu a {
  -webkit-transition: 0.4s;
  -o-transition: 0.4s;
  transition: 0.4s; }
  .elementor-nav-menu--main .elementor-nav-menu a, .elementor-nav-menu--main .elementor-nav-menu a:hover, .elementor-nav-menu--main .elementor-nav-menu a:focus, .elementor-nav-menu--main .elementor-nav-menu a.highlighted {
    padding: 13px 20px; }
  .elementor-nav-menu--main .elementor-nav-menu a.current {
    background: #373a3c;
    color: #fff; }
  .elementor-nav-menu--main .elementor-nav-menu a.disabled {
    background: #55595c;
    color: #a1a6a9; }

.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  width: 12em;
  border-width: 0;
  border-style: solid;
  padding: 0; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up,
.elementor-nav-menu--main .elementor-nav-menu span.scroll-down {
  position: absolute;
  display: none;
  visibility: hidden;
  overflow: hidden;
  background: #fff;
  height: 20px; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-up-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow, .elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  position: absolute;
  top: -2px;
  left: 50%;
  margin-left: -8px;
  width: 0;
  height: 0;
  overflow: hidden;
  border-width: 8px;
  border-style: dashed dashed solid dashed;
  border-color: transparent transparent #494c4f transparent; }

.elementor-nav-menu--main .elementor-nav-menu span.scroll-down-arrow {
  top: 6px;
  border-style: solid dashed dashed dashed;
  border-color: #494c4f transparent transparent transparent; }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow i {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg); }

.elementor-nav-menu--main .elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg {
  height: 1em;
  width: 1em; }

.elementor-nav-menu--layout-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu a {
      white-space: nowrap;
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1; }
    .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > .scroll-down {
        top: 100% !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > a {
        -webkit-margin-start: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-start: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > ul, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-down, .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:first-child) > .scroll-up {
        left: var(--e-nav-menu-horizontal-menu-item-margin) !important; }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child) > a {
        -webkit-margin-end: var(--e-nav-menu-horizontal-menu-item-margin);
                margin-inline-end: var(--e-nav-menu-horizontal-menu-item-margin); }
      .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child):after {
        content: var(--e-nav-menu-divider-content, none);
        border-left-width: var(--e-nav-menu-divider-width, 2px);
        border-left-style: var(--e-nav-menu-divider-style, solid);
        height: var(--e-nav-menu-divider-height, 35%);
        border-color: var(--e-nav-menu-divider-color, #000);
        -ms-flex-item-align: center;
            align-self: center; }

.elementor-nav-menu__align-right .elementor-nav-menu {
  margin-left: auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-right .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.elementor-nav-menu__align-left .elementor-nav-menu {
  margin-right: auto;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-left .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.elementor-nav-menu__align-center .elementor-nav-menu {
  margin-left: auto;
  margin-right: auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-center .elementor-nav-menu--layout-vertical > ul > li > a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu {
  width: 100%; }
  .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .elementor-nav-menu__align-justify .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }

.elementor-widget-nav-menu:not(.elementor-nav-menu--toggle) .elementor-menu-toggle {
  display: none; }

.elementor-widget-nav-menu .elementor-widget-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.elementor-nav-menu {
  position: relative;
  z-index: 2; }
  .elementor-nav-menu:after {
    content: "\00a0";
    display: block;
    height: 0;
    font: 0px/0 serif;
    clear: both;
    visibility: hidden;
    overflow: hidden; }
  .elementor-nav-menu,
  .elementor-nav-menu ul,
  .elementor-nav-menu li {
    display: block;
    list-style: none;
    margin: 0;
    padding: 0;
    line-height: normal;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
  .elementor-nav-menu ul {
    display: none; }
    .elementor-nav-menu ul ul a,
    .elementor-nav-menu ul ul a:hover,
    .elementor-nav-menu ul ul a:focus,
    .elementor-nav-menu ul ul a:active {
      border-left: 16px solid transparent; }
    .elementor-nav-menu ul ul ul a,
    .elementor-nav-menu ul ul ul a:hover,
    .elementor-nav-menu ul ul ul a:focus,
    .elementor-nav-menu ul ul ul a:active {
      border-left: 24px solid transparent; }
    .elementor-nav-menu ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul a:active {
      border-left: 32px solid transparent; }
    .elementor-nav-menu ul ul ul ul ul a,
    .elementor-nav-menu ul ul ul ul ul a:hover,
    .elementor-nav-menu ul ul ul ul ul a:focus,
    .elementor-nav-menu ul ul ul ul ul a:active {
      border-left: 40px solid transparent; }
  .elementor-nav-menu li,
  .elementor-nav-menu a {
    position: relative; }
  .elementor-nav-menu li {
    border-width: 0; }
  .elementor-nav-menu a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu a, .elementor-nav-menu a:hover, .elementor-nav-menu a:focus {
      padding: 10px 20px;
      line-height: 20px; }
    .elementor-nav-menu a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu a.disabled {
      cursor: not-allowed;
      color: #a1a6a9; }
  .elementor-nav-menu .e-plus-icon:before {
    content: '+'; }
  .elementor-nav-menu .sub-arrow {
    line-height: 1;
    padding: 10px 0 10px 10px;
    margin-top: -10px;
    margin-bottom: -10px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-nav-menu .sub-arrow i {
      pointer-events: none; }
    .elementor-nav-menu .sub-arrow .fa.fa-chevron-down, .elementor-nav-menu .sub-arrow .fas.fa-chevron-down {
      font-size: 0.7em; }
    .elementor-nav-menu .sub-arrow .e-font-icon-svg {
      height: 1em;
      width: 1em; }
      .elementor-nav-menu .sub-arrow .e-font-icon-svg.fa-svg-chevron-down {
        height: 0.7em;
        width: 0.7em; }

.elementor-nav-menu--dropdown .elementor-item:hover, .elementor-nav-menu--dropdown .elementor-item:focus, .elementor-nav-menu--dropdown .elementor-item.highlighted, .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor-sub-item:hover,
.elementor-sub-item:focus,
.elementor-sub-item.highlighted,
.elementor-sub-item.elementor-item-active {
  background-color: #55595c;
  color: #fff; }

.elementor-menu-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 22px;
  padding: 0.25em;
  cursor: pointer;
  border: 0 solid;
  border-radius: 3px;
  background-color: rgba(0, 0, 0, 0.05);
  color: #494c4f; }
  .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
    display: none; }
  .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--close {
    display: none; }
  .elementor-menu-toggle .e-font-icon-svg {
    fill: #494c4f;
    height: 1em;
    width: 1em; }

.elementor-nav-menu--dropdown {
  background-color: #fff;
  font-size: 13px; }
  .elementor-nav-menu--dropdown-none .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-none .elementor-menu-toggle {
    display: none; }
  .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    margin-top: 10px;
    -webkit-transition: max-height 0.3s, -webkit-transform 0.3s;
    transition: max-height 0.3s, -webkit-transform 0.3s;
    -o-transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s;
    transition: max-height 0.3s, transform 0.3s, -webkit-transform 0.3s;
    -webkit-transform-origin: top;
        -ms-transform-origin: top;
            transform-origin: top;
    overflow: auto; }
    .elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-sub-item {
      font-size: 0.85em; }
  .elementor-nav-menu--dropdown a {
    color: #494c4f; }
    .elementor-nav-menu--dropdown a.current {
      background: #373a3c;
      color: #fff; }
    .elementor-nav-menu--dropdown a.disabled {
      color: #b3b3b3; }

ul.elementor-nav-menu--dropdown a, ul.elementor-nav-menu--dropdown a:hover, ul.elementor-nav-menu--dropdown a:focus {
  text-shadow: none;
  border-left: 8px solid transparent; }

.elementor-nav-menu__text-align-center .elementor-nav-menu--dropdown .elementor-nav-menu a {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  -webkit-transform: scaleY(0);
      -ms-transform: scaleY(0);
          transform: scaleY(0);
  max-height: 0; }

.elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  -webkit-transform: scaleY(1);
      -ms-transform: scaleY(1);
          transform: scaleY(1);
  max-height: 100vh; }

.elementor-nav-menu--stretch .elementor-nav-menu__container.elementor-nav-menu--dropdown {
  position: absolute;
  z-index: 9997; }

/**
 * Mobile Hamburger Menu Breakpoint
 */
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--main {
    display: none; } }

@media (min-width: 768px) {
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile .elementor-menu-toggle {
    display: none; } }

/**
 * Mobile Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-mobile_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-mobile_extra .elementor-menu-toggle {
    display: none; } }

/**
 * Tablet Hamburger Menu Breakpoint
 */
@media (min-width: 1025px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet .elementor-menu-toggle {
    display: none; } }

@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu--main {
    display: none; } }

/**
 * Tablet Extra Hamburger Menu Breakpoint
 */
@media (max-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--main {
    display: none; } }

@media (min-width: -1px) {
  .elementor-nav-menu--dropdown-tablet_extra .elementor-nav-menu--dropdown, .elementor-nav-menu--dropdown-tablet_extra .elementor-menu-toggle {
    display: none; } }

.elementor-gallery__container {
  min-height: 1px; }

.elementor-gallery-item {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  border: solid var(--image-border-width) var(--image-border-color);
  border-radius: var(--image-border-radius); }
  .elementor-gallery-item__overlay, .elementor-gallery-item__content {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .elementor-gallery-item__overlay {
    mix-blend-mode: var(--overlay-mix-blend-mode);
    -webkit-transition-duration: var(--overlay-transition-duration);
         -o-transition-duration: var(--overlay-transition-duration);
            transition-duration: var(--overlay-transition-duration);
    -webkit-transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    transition-property: mix-blend-mode, opacity, background-color, -webkit-transform;
    -o-transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color;
    transition-property: mix-blend-mode, transform, opacity, background-color, -webkit-transform; }
  .elementor-gallery-item__image.e-gallery-image {
    -webkit-transition-duration: var(--image-transition-duration);
         -o-transition-duration: var(--image-transition-duration);
            transition-duration: var(--image-transition-duration);
    -webkit-transition-property: -webkit-filter, -webkit-transform;
    transition-property: -webkit-filter, -webkit-transform;
    -o-transition-property: filter, transform;
    transition-property: filter, transform;
    transition-property: filter, transform, -webkit-filter, -webkit-transform; }
  .elementor-gallery-item__content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: var(--content-justify-content, center);
        -ms-flex-pack: var(--content-justify-content, center);
            justify-content: var(--content-justify-content, center);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    text-align: var(--content-text-align);
    padding: var(--content-padding); }
    .elementor-gallery-item__content > div {
      -webkit-transition-duration: var(--content-transition-duration);
           -o-transition-duration: var(--content-transition-duration);
              transition-duration: var(--content-transition-duration); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(2) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ));
              transition-delay: calc( ( var(--content-transition-delay) / 3 )); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(3) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 2); }
    .elementor-gallery-item__content.elementor-gallery--sequenced-animation > div:nth-child(4) {
      -webkit-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
           -o-transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3);
              transition-delay: calc( ( var(--content-transition-delay) / 3 ) * 3); }
  .elementor-gallery-item__description {
    color: var(--description-text-color, #ffffff);
    width: 100%; }
  .elementor-gallery-item__title {
    color: var(--title-text-color, #ffffff);
    font-weight: bold;
    width: 100%; }

.elementor-gallery__titles-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: var(--titles-container-justify-content, center);
      -ms-flex-pack: var(--titles-container-justify-content, center);
          justify-content: var(--titles-container-justify-content, center);
  margin-bottom: 20px; }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:before {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item:after {
    background-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:before {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container:not(.e--pointer-framed) .elementor-item.elementor-item-active:after {
    background-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:before {
    border-color: var(--galleries-pointer-bg-color-hover);
    border-width: var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item:after {
    border-color: var(--galleries-pointer-bg-color-hover); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:before {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed .elementor-item.elementor-item-active:after {
    border-color: var(--galleries-pointer-bg-color-active); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:before {
    border-width: 0 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-draw .elementor-item:after {
    border-width: var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0 0; }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:before {
    border-width: var(--galleries-pointer-border-width) 0 0 var(--galleries-pointer-border-width); }
  .elementor-gallery__titles-container.e--pointer-framed.e--animation-corners .elementor-item:after {
    border-width: 0 var(--galleries-pointer-border-width) var(--galleries-pointer-border-width) 0; }
  .elementor-gallery__titles-container .e--pointer-underline .elementor-item:after,
  .elementor-gallery__titles-container .e--pointer-overline .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:before,
  .elementor-gallery__titles-container .e--pointer-double-line .elementor-item:after {
    height: var(--galleries-pointer-border-width); }

.elementor-gallery-title {
  --space-between: 10px;
  cursor: pointer;
  color: #6D7882;
  font-weight: 500;
  position: relative;
  padding: 7px 14px;
  -webkit-transition: all 0.3s;
  -o-transition: all 0.3s;
  transition: all 0.3s; }
  .elementor-gallery-title--active {
    color: #495157; }
  .elementor-gallery-title:not(:last-child) {
    margin-right: var(--space-between); }

.elementor-gallery-item__title + .elementor-gallery-item__description {
  margin-top: var(--description-margin-top); }

.e-gallery-item.elementor-gallery-item {
  -webkit-transition-property: all;
  -o-transition-property: all;
  transition-property: all; }

.e-gallery-item:hover .elementor-gallery__item-overlay-bg {
  opacity: 1; }

.e-gallery-item:hover .elementor-gallery__item-overlay-content {
  opacity: 1; }
  .e-gallery-item:hover .elementor-gallery__item-overlay-content__title, .e-gallery-item:hover .elementor-gallery__item-overlay-content__description {
    opacity: 1; }

.e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-right, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-left, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-top, .e-gallery-item.elementor-animated-content .elementor-animated-item--enter-from-bottom {
  opacity: 1; }

a.elementor-item.elementor-gallery-title {
  color: var(--galleries-title-color-normal); }
  a.elementor-item.elementor-gallery-title:hover, a.elementor-item.elementor-gallery-title.elementor-item-active, a.elementor-item.elementor-gallery-title.highlighted, a.elementor-item.elementor-gallery-title:focus {
    color: var(--galleries-title-color-hover); }
  a.elementor-item.elementor-gallery-title.elementor-item-active {
    color: var(--gallery-title-color-active); }

.elementor-widget-table-of-contents .elementor-toc__header-title {
  color: var(--header-color); }

.elementor-widget-table-of-contents.elementor-toc--collapsed .elementor-toc__toggle-button--collapse {
  display: none; }

.elementor-widget-table-of-contents:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--expand {
  display: none; }

.elementor-widget-table-of-contents .elementor-widget-container {
  min-height: var(--box-min-height);
  border: var(--box-border-width, 1px) solid var(--box-border-color, #a4afb7);
  border-radius: var(--box-border-radius, 3px);
  background-color: var(--box-background-color);
  -webkit-transition: min-height 0.4s;
  -o-transition: min-height 0.4s;
  transition: min-height 0.4s;
  overflow: hidden; }

.elementor-toc__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: var(--box-padding, 20px);
  background-color: var(--header-background-color);
  border-bottom: var(--separator-width, 1px) solid var(--box-border-color, #a4afb7); }
  .elementor-toc__header-title {
    font-size: 18px;
    margin: 0;
    color: var(--header-color); }

.elementor-toc__toggle-button {
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex; }
  .elementor-toc__toggle-button i {
    color: var(--toggle-button-color); }
  .elementor-toc__toggle-button svg {
    fill: var(--toggle-button-color);
    height: 1em;
    width: 1em;
    fill: var(--toggle-button-color); }

.elementor-toc__spinner-container {
  text-align: center; }

.elementor-toc__spinner {
  font-size: 2em; }
  .elementor-toc__spinner.e-font-icon-svg {
    height: 1em;
    width: 1em; }

.elementor-toc__body {
  padding: var(--box-padding, 20px);
  max-height: var(--toc-body-max-height);
  overflow-y: auto; }
  .elementor-toc__body::-webkit-scrollbar {
    width: 7px; }
  .elementor-toc__body::-webkit-scrollbar-thumb {
    background-color: #c2cbd2;
    border-radius: 10px; }

.elementor-toc__list-wrapper {
  list-style: none;
  padding: 0; }

.elementor-toc__list-item {
  margin-bottom: 0.5em; }
  .elementor-toc__list-item.elementor-item-active {
    font-weight: bold; }
  .elementor-toc__list-item .elementor-toc__list-wrapper {
    margin-top: 0.5em;
    margin-left: var(--nested-list-indent, 1em); }
  .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }
  .elementor-toc__list-item-text-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    .elementor-toc__list-item-text-wrapper i, .elementor-toc__list-item-text-wrapper:before {
      margin-right: 8px;
      color: var(--marker-color); }
    .elementor-toc__list-item-text-wrapper svg {
      margin-right: 8px;
      fill: var(--marker-color);
      height: var(--marker-size, 0.5em);
      width: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper i {
      font-size: var(--marker-size, 0.5em); }
    .elementor-toc__list-item-text-wrapper:before {
      font-size: var(--marker-size, 1em); }

.elementor-toc--content-ellipsis .elementor-toc__list-item-text {
  white-space: nowrap;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.elementor-toc__list-items--collapsible > .elementor-toc__list-wrapper > .elementor-toc__list-item > .elementor-toc__list-wrapper {
  display: none; }

.elementor-toc__heading-anchor {
  position: absolute; }

.elementor-toc__body .elementor-toc__list-item-text {
  color: var(--item-text-color);
  -webkit-text-decoration: var(--item-text-decoration);
          text-decoration: var(--item-text-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text:hover {
    color: var(--item-text-hover-color);
    -webkit-text-decoration: var(--item-text-hover-decoration);
            text-decoration: var(--item-text-hover-decoration); }
  .elementor-toc__body .elementor-toc__list-item-text.elementor-item-active {
    color: var(--item-text-active-color);
    -webkit-text-decoration: var(--item-text-active-decoration);
            text-decoration: var(--item-text-active-decoration); }

ol.elementor-toc__list-wrapper {
  counter-reset: item; }
  ol.elementor-toc__list-wrapper .elementor-toc__list-item {
    counter-increment: item; }
    ol.elementor-toc__list-wrapper .elementor-toc__list-item-text-wrapper:before {
      content: counters(item, ".") ". "; }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-tablet_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 1024px) {
  .elementor-toc--minimized-on-tablet .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: -1px) {
  .elementor-toc--minimized-on-mobile_extra .elementor-toc__body {
    display: none; } }

@media only screen and (max-width: 767px) {
  .elementor-toc--minimized-on-mobile .elementor-toc__body {
    display: none; } }

.e-lottie__container {
  display: inline-block;
  max-width: var(--lottie-container-max-width);
  width: var(--lottie-container-width);
  opacity: var(--lottie-container-opacity); }
  .e-lottie__container:hover {
    opacity: var(--lottie-container-opacity-hover);
    -webkit-transition-duration: var(--lottie-container-transition-duration-hover);
         -o-transition-duration: var(--lottie-container-transition-duration-hover);
            transition-duration: var(--lottie-container-transition-duration-hover); }
  .e-lottie__container svg,
  .e-lottie__container svg * {
    -webkit-transition: none !important;
    -o-transition: none !important;
    transition: none !important; }

.e-lottie__caption {
  color: var(--caption-color);
  margin-top: var(--caption-margin-top);
  text-align: var(--caption-text-align); }

/* Video_Playlist Widget */
.e-tabs-inner-tabs {
  text-align: left;
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
  font-size: 16px; }
  .e-tabs-inner-tabs .e-tab-content {
    padding-top: 32px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    overflow: hidden;
    z-index: 1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper :after {
      content: '';
      width: 100%;
      height: var(--inner-tabs-border-height, 1px);
      background-color: var(--inner-tabs-border-color, #d5dadf);
      position: absolute;
      bottom: 0;
      z-index: -1; }
    .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title {
      font-weight: 700;
      min-width: 140px;
      line-height: 38px;
      height: 38px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title a {
        color: #6d7882;
        padding: 0 36px;
        display: block;
        text-align: center; }
      .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active {
        border-bottom: 0 solid transparent;
        border-color: #495157;
        border-width: 0 0 1px 0; }
        .e-tabs-inner-tabs .e-inner-tabs-wrapper .e-inner-tab-title.e-inner-tab-active a {
          color: #495157; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
    display: none;
    padding: 20px; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-text {
      color: #556068; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.e-inner-tab-active {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons {
      margin-top: 24px;
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content .e-inner-tab-buttons button {
        display: none;
        font-weight: 500;
        line-height: 24px;
        text-decoration: underline;
        border: none;
        background: transparent;
        padding: 0; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible .e-inner-tab-text {
      overflow: hidden; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button {
      display: none; }
      .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible button.show-button {
        display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.collapsible.show-inner-tab-buttons .e-inner-tab-buttons {
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content.show-full-height div.e-inner-tab-text {
      height: auto; }

@media (max-width: 767px) {
  .e-tabs-inner-tabs > .e-tab-content:first-child {
    padding-top: 24px; }
  .e-tabs-inner-tabs .e-inner-tabs-wrapper {
    display: none; }
  .e-tabs-inner-tabs .e-inner-tabs-content-wrapper {
    border-width: 1px 1px 0;
    border-style: solid;
    border-color: #d5dadf; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-tab-mobile-title {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      font-size: 16px;
      font-weight: 700;
      text-align: center;
      height: 38px;
      line-height: 38px;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      padding: 0 10px;
      cursor: pointer;
      display: block; }
    .e-tabs-inner-tabs .e-inner-tabs-content-wrapper .e-inner-tab-content {
      border-width: 0 0 1px;
      border-style: solid;
      border-color: #d5dadf;
      padding: 20px; } }

.elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist.elementor-layout-end .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

.elementor-widget-video-playlist {
  font-family: Roboto, Arial, Helvetica, Verdana, sans-serif; }
  .elementor-widget-video-playlist .e-tabs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
  .elementor-widget-video-playlist .e-tabs-main-area {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    height: 434px; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 33%; }
  .elementor-widget-video-playlist .e-tabs-header {
    background-color: #ffffff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 16px;
    min-height: 56px;
    border-bottom: 1px solid #d5dadf; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-header-right-side {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      -ms-flex-negative: 0;
          flex-shrink: 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-title {
      font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      font-weight: 700;
      font-size: 16px;
      padding: 10px 0;
      overflow-wrap: anywhere;
      -webkit-hyphens: auto;
          -ms-hyphens: auto;
              hyphens: auto;
      margin: auto 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      font-size: 14px;
      -ms-flex-negative: 0;
          flex-shrink: 0;
      font-weight: 400;
      line-height: 20px;
      -ms-flex-item-align: start;
          align-self: flex-start;
      padding: 18px 0 0; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: none;
      margin: auto 0 auto 8px;
      cursor: pointer;
      padding: 0 4px; }
      .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button.e-font-icon-svg {
        height: 1em;
        width: 1em; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-up {
      -webkit-transform: rotate(-180deg);
          -ms-transform: rotate(-180deg);
              transform: rotate(-180deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
    .elementor-widget-video-playlist .e-tabs-header .rotate-down {
      -webkit-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
              transform: rotate(0deg);
      -webkit-transition: .3s;
      -o-transition: .3s;
      transition: .3s; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper {
    background-color: #ffffff;
    overflow: hidden;
    position: relative;
    height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
      overflow: auto;
      height: 100%; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-section-title {
      border-color: #d5dadf;
      border-width: 1px 0 0 0;
      font-size: 14px;
      height: 36px;
      padding: 0 16px;
      line-height: 36px;
      margin: 0;
      text-align: left;
      -o-text-overflow: ellipsis;
         text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
      border-width: 0;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title {
      background-color: #ffffff;
      border-color: #d5dadf;
      border-width: 0 0 1px 0;
      cursor: pointer;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      font-size: 14px;
      height: 55px;
      line-height: 55px;
      outline: none;
      padding: 0 16px;
      -webkit-box-sizing: content-box;
              box-sizing: content-box; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        font-size: var(--playlist-item-icon-size, 16px); }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        text-shadow: 0 0 3px #000000;
        color: #ffffff;
        fill: #ffffff;
        width: var(--playlist-item-icon-size, 16px);
        height: var(--playlist-item-icon-size, 16px); }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg path {
          fill: #ffffff; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover {
        background-color: #f1f3f5;
        border-color: #d5dadf;
        border-width: 0 0 1px 0; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active i, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover i {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg {
          text-shadow: 0 0 3px #000000;
          color: #ffffff; }
          .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active svg path, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover svg path {
            fill: #ffffff; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.e-active .e-tab-title-text, .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title:hover .e-tab-title-text {
          font-size: 14px; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-play,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail {
        background-color: #d5dadf;
        position: relative;
        margin: auto 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        width: 75px;
        height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail img {
          -o-object-fit: fill;
             object-fit: fill;
          width: 75px;
          height: 42px; }
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail i,
        .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-thumbnail svg {
          position: absolute;
          bottom: 4px;
          right: 4px;
          font-weight: 900; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-title-text {
        font-size: 14px;
        margin: auto 8px;
        text-align: left;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title i,
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title svg {
        margin: auto 0;
        vertical-align: middle; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .e-tab-duration {
        font-size: 14px;
        margin: auto 0; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title .icon-watched {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-play {
        display: none; }
      .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tab-title.watched-video .icon-watched {
        display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-top {
      display: none;
      height: 98px;
      position: absolute;
      top: 0;
      width: 100%;
      pointer-events: none;
      background: -webkit-gradient(linear, left bottom, left top, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(bottom, transparent 0%, #ffffff 100%);
      background: linear-gradient(0deg, transparent 0%, #ffffff 100%); }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .shadow-bottom {
      display: none;
      height: 98px;
      position: absolute;
      bottom: 0;
      width: 100%;
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#ffffff));
      background: -webkit-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: -o-linear-gradient(top, transparent 0%, #ffffff 100%);
      background: linear-gradient(180deg, transparent 0%, #ffffff 100%);
      pointer-events: none; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.top-shadow .shadow-top {
      display: block; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper.bottom-shadow .shadow-bottom {
      display: block; }
  .elementor-widget-video-playlist .e-tabs-content-wrapper {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    height: 100%;
    position: relative; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .elementor-custom-embed-image-overlay {
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      -webkit-background-size: cover;
              background-size: cover;
      background-position: 50%; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-mobile-title {
      display: none; }
    .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content {
      background-color: #000000;
      display: none;
      height: 100%;
      outline: none; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content > div {
        height: 100%; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content iframe {
        height: 100%;
        max-height: 100% !important;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
      .elementor-widget-video-playlist .e-tabs-content-wrapper .e-tab-content video {
        height: 100%;
        background-color: #000000; }
  .elementor-widget-video-playlist .e-tabs-inner-tabs .e-tab-content {
    display: none;
    outline: none; }

@media (max-width: 767px) {
  .elementor-widget-video-playlist .e-tabs-main-area {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    height: auto; }
    .elementor-widget-video-playlist .e-tabs-main-area .e-tabs-content-wrapper {
      border: none;
      height: 38%; }
  .elementor-widget-video-playlist .e-tabs-wrapper {
    width: auto;
    height: 62%; }
  .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items {
    max-height: 248px; }
    .elementor-widget-video-playlist .e-tabs-items-wrapper .e-tabs-items .e-tab-title {
      border: none; }
  .elementor-widget-video-playlist .e-tabs-header {
    min-height: 48px; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-toggle-videos-display-button {
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex; }
    .elementor-widget-video-playlist .e-tabs-header .e-tabs-videos-count {
      margin: 0 6px;
      padding: 14px 0 0; }
  .elementor-widget-video-playlist .e-tab-content {
    border: none;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.elementor-payment-button {
  border: none; }

.elementor-scrolling-tracker {
  --scrolling-track-default-progress-color: #61ce70;
  --scrolling-track-default-color: #eeeeee;
  --scrolling-track-precentage-default-color: $black; }

.elementor-scrolling-tracker-horizontal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: var(--horizontal-height, 20px);
  padding: var(--tracker-padding);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-top-width: var(--horizontal-border-top-width, 2px);
  border-right-width: var(--horizontal-border-right-width, 2px);
  border-bottom-width: var(--horizontal-border-bottom-width, 2px);
  border-left-width: var(--horizontal-border-left-width, 2px);
  border-style: var(--horizontal-border-style);
  border-color: var(--horizontal-border-color);
  border-radius: var(--border-radius);
  background-color: var(--scrolling-track-default-color);
  direction: var(--direction); }
  .elementor-scrolling-tracker-horizontal .current-progress {
    display: none;
    height: 100%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: var(--progress-border-radius);
    border-top-width: var(--horizontal-progress-border-top-width, 2px);
    border-right-width: var(--horizontal-progress-border-right-width, 2px);
    border-bottom-width: var(--horizontal-progress-border-bottom-width, 2px);
    border-left-width: var(--horizontal-progress-border-left-width, 2px);
    border-style: var(--horizontal-progress-border);
    border-color: var(--horizontal-progress-border-color);
    background-color: var(--scrolling-track-default-progress-color); }
    .elementor-scrolling-tracker-horizontal .current-progress .current-progress-percentage {
      inset-inline-end: 0.5em;
      inset-inline-start: auto;
      position: absolute;
      direction: var(--text-direction);
      color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }

.elementor-scrolling-tracker-circular {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: var(--circular-width, 100px);
  height: var(--circular-height, 100px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  -webkit-margin-start: 0;
          margin-inline-start: 0;
  -webkit-margin-end: auto;
          margin-inline-end: auto; }
  .elementor-scrolling-tracker-circular .current-progress-percentage {
    position: absolute;
    color: var(--percentage-color, var(--scrolling-track-precentage-default-color)); }
  .elementor-scrolling-tracker-circular svg {
    position: absolute; }
  .elementor-scrolling-tracker-circular .current-progress {
    display: none;
    -webkit-transform: rotate(-90deg);
        -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
    -webkit-transform-origin: 50% 50%;
        -ms-transform-origin: 50% 50%;
            transform-origin: 50% 50%;
    stroke: var(--circular-color, var(--scrolling-track-default-progress-color));
    fill: transparent;
    stroke-width: var(--circular-progress-width, 4px); }
  .elementor-scrolling-tracker-circular .circle {
    stroke: var(--circular-background-color, var(--scrolling-track-default-color));
    fill: transparent;
    stroke-width: var(--circular-background-width, 4px); }

.elementor-scrolling-tracker-alignment-left {
  margin-left: 0;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-center {
  margin-left: auto;
  margin-right: auto; }

.elementor-scrolling-tracker-alignment-right {
  margin-left: auto;
  margin-right: 0; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-1 ul.products li.product {
  width: 100%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-2 ul.products li.product {
  width: 50%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-3 ul.products li.product {
  width: 33.33333%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-4 ul.products li.product {
  width: 25%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-5 ul.products li.product {
  width: 20%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-6 ul.products li.product {
  width: 16.66667%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-7 ul.products li.product {
  width: 14.28571%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-8 ul.products li.product {
  width: 12.5%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-9 ul.products li.product {
  width: 11.11111%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-10 ul.products li.product {
  width: 10%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-11 ul.products li.product {
  width: 9.09091%; }

.elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-12 ul.products li.product {
  width: 8.33333%; }

@media (max-width: 1024px) {
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-1 ul.products li.product {
    width: 100%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-2 ul.products li.product {
    width: 50%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-3 ul.products li.product {
    width: 33.33333%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-4 ul.products li.product {
    width: 25%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-5 ul.products li.product {
    width: 20%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-6 ul.products li.product {
    width: 16.66667%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-7 ul.products li.product {
    width: 14.28571%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-8 ul.products li.product {
    width: 12.5%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-9 ul.products li.product {
    width: 11.11111%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-10 ul.products li.product {
    width: 10%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-11 ul.products li.product {
    width: 9.09091%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-tablet-12 ul.products li.product {
    width: 8.33333%; } }

@media (max-width: 767px) {
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-1 ul.products li.product {
    width: 100%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-2 ul.products li.product {
    width: 50%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-3 ul.products li.product {
    width: 33.33333%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-4 ul.products li.product {
    width: 25%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-5 ul.products li.product {
    width: 20%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-6 ul.products li.product {
    width: 16.66667%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-7 ul.products li.product {
    width: 14.28571%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-8 ul.products li.product {
    width: 12.5%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-9 ul.products li.product {
    width: 11.11111%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-10 ul.products li.product {
    width: 10%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-11 ul.products li.product {
    width: 9.09091%; }
  .elementor-msie .elementor-element.elementor-wc-products.elementor-products-columns-mobile-12 ul.products li.product {
    width: 8.33333%; } }

.elementor-msie .elementor-element.elementor-wc-products ul.products, .elementor-msie .elementor-posts {
  margin-right: -10px;
  margin-left: -10px; }
  .elementor-msie .elementor-element.elementor-wc-products ul.products li.product, .elementor-msie .elementor-element.elementor-wc-products ul.products .elementor-post, .elementor-msie .elementor-posts li.product, .elementor-msie .elementor-posts .elementor-post {
    padding-right: 10px;
    padding-left: 10px;
    margin-bottom: 20px; }
  .elementor-msie .elementor-element.elementor-wc-products ul.products .elementor-post, .elementor-msie .elementor-posts .elementor-post {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
/*# sourceMappingURL=frontend-msie.css.map */PK!eLf�TT#assets/css/widget-popup-rtl.min.cssnu�[���/*! elementor-pro - v3.5.2 - 28-11-2021 */
[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal{display:-webkit-box;display:-ms-flexbox;display:flex;pointer-events:none;background-color:transparent;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;top:20px;margin-top:0;left:20px;opacity:1;z-index:9999;pointer-events:all}.elementor-popup-modal .dialog-close-button svg{fill:#373a3c;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{width:auto;overflow:visible;max-width:100%;max-height:100%;border-radius:0;-webkit-box-shadow:none;box-shadow:none;pointer-events:all}.elementor-popup-modal .dialog-message{width:640px;max-width:100vw;max-height:100vh;padding:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex}.elementor-popup-modal .elementor{width:100%}PK!6�S�tt core/admin/canary-deployment.phpnu�[���<?php
namespace ElementorPro\Core\Admin;

use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Canary_Deployment extends \Elementor\Core\Admin\Canary_Deployment {

	const CURRENT_VERSION = ELEMENTOR_PRO_VERSION;
	const PLUGIN_BASE = ELEMENTOR_PRO_PLUGIN_BASE;

	protected function get_canary_deployment_remote_info( $force ) {
		$version_info = API::get_version( false );
		$canary_info = [];

		if ( ! is_wp_error( $version_info ) && ! empty( $version_info['canary_deployment'] ) ) {
			$canary_info = $version_info['canary_deployment'];
		}

		return $canary_info;
	}
}
PK!axni��core/admin/admin.phpnu�[���<?php
namespace ElementorPro\Core\Admin;

use Elementor\Core\Base\App;
use Elementor\Rollback;
use Elementor\Settings;
use Elementor\Tools;
use Elementor\Utils;
use ElementorPro\License\API;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Admin extends App {

	/**
	 * Get module name.
	 *
	 * Retrieve the module name.
	 *
	 * @since 2.3.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'admin';
	}

	/**
	 * Enqueue admin styles.
	 *
	 * @since 1.0.0
	 * @return void
	 */
	public function enqueue_styles() {
		$suffix = Utils::is_script_debug() ? '' : '.min';

		$direction_suffix = is_rtl() ? '-rtl' : '';

		wp_register_style(
			'elementor-pro-admin',
			ELEMENTOR_PRO_ASSETS_URL . 'css/admin' . $direction_suffix . $suffix . '.css',
			[],
			ELEMENTOR_PRO_VERSION
		);

		wp_enqueue_style( 'elementor-pro-admin' );
	}

	public function enqueue_scripts() {
		$suffix = Utils::is_script_debug() ? '' : '.min';

		wp_enqueue_script(
			'elementor-pro-admin',
			ELEMENTOR_PRO_URL . 'assets/js/admin' . $suffix . '.js',
			[
				'elementor-common',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		$locale_settings = [];

		/**
		 * Localize admin settings.
		 *
		 * Filters the admin localized settings.
		 *
		 * @since 1.0.0
		 *
		 * @param array $locale_settings Localized settings.
		 */
		$locale_settings = apply_filters( 'elementor_pro/admin/localize_settings', $locale_settings );

		Utils::print_js_config(
			'elementor-pro-admin',
			'ElementorProConfig',
			$locale_settings
		);
	}

	public function remove_go_pro_menu() {
		remove_action( 'admin_menu', [ Plugin::elementor()->settings, 'register_pro_menu' ], Settings::MENU_PRIORITY_GO_PRO );
	}

	private function get_rollback_versions() {
		$rollback_versions = get_transient( 'elementor_pro_rollback_versions_' . ELEMENTOR_PRO_VERSION );
		if ( false === $rollback_versions ) {
			$max_versions = 30;

			$versions = API::get_previous_versions();

			if ( is_wp_error( $versions ) ) {
				return [];
			}

			$rollback_versions = [];

			$current_index = 0;
			foreach ( $versions as $version ) {
				if ( $max_versions <= $current_index ) {
					break;
				}

				$lowercase_version = strtolower( $version );
				$is_valid_rollback_version = ! preg_match( '/(trunk|beta|rc|dev)/i', $lowercase_version );

				$is_valid_rollback_version = apply_filters(
					'elementor-pro/settings/tools/rollback/is_valid_rollback_version',
					$is_valid_rollback_version,
					$lowercase_version
				);

				if ( ! $is_valid_rollback_version ) {
					continue;
				}

				if ( version_compare( $version, ELEMENTOR_VERSION, '>=' ) ) {
					continue;
				}

				$current_index++;
				$rollback_versions[] = $version;
			}

			set_transient( 'elementor_pro_rollback_versions_' . ELEMENTOR_PRO_VERSION, $rollback_versions, WEEK_IN_SECONDS );
		}

		return $rollback_versions;
	}

	public function register_admin_tools_fields( Tools $tools ) {
		$rollback_html = '<select class="elementor-rollback-select">';

		foreach ( $this->get_rollback_versions() as $version ) {
			$rollback_html .= "<option value='{$version}'>$version</option>";
		}
		$rollback_html .= '</select>';

		// Rollback
		$tools->add_fields( 'versions', 'rollback', [
			'rollback_pro_separator' => [
				'field_args' => [
					'type' => 'raw_html',
					'html' => '<hr>',
				],
			],
			'rollback_pro' => [
				'label' => esc_html__( 'Rollback Pro Version', 'elementor-pro' ),
				'field_args' => [
					'type' => 'raw_html',
					'html' => sprintf(
						$rollback_html . '<a data-placeholder-text="' . esc_html__( 'Reinstall', 'elementor-pro' ) . ' v{VERSION}" href="#" data-placeholder-url="%s" class="button elementor-button-spinner elementor-rollback-button">%s</a>',
						wp_nonce_url( admin_url( 'admin-post.php?action=elementor_pro_rollback&version=VERSION' ), 'elementor_pro_rollback' ),
						__( 'Reinstall', 'elementor-pro' )
					),
					'desc' => '<span style="color: red;">' . esc_html__( 'Warning: Please backup your database before making the rollback.', 'elementor-pro' ) . '</span>',
				],
			],
		] );
	}

	public function post_elementor_pro_rollback() {
		check_admin_referer( 'elementor_pro_rollback' );

		$rollback_versions = $this->get_rollback_versions();
		if ( empty( $_GET['version'] ) || ! in_array( $_GET['version'], $rollback_versions, true ) ) {
			wp_die( esc_html__( 'Error occurred, The version selected is invalid. Try selecting different version.', 'elementor-pro' ) );
		}

		$package_url = API::get_plugin_package_url( $_GET['version'] );
		if ( is_wp_error( $package_url ) ) {
			wp_die( $package_url ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		}

		$plugin_slug = basename( ELEMENTOR_PRO__FILE__, '.php' );

		$rollback = new Rollback( [
			'version' => $_GET['version'],
			'plugin_name' => ELEMENTOR_PRO_PLUGIN_BASE,
			'plugin_slug' => $plugin_slug,
			'package_url' => $package_url,
		] );

		$rollback->run();

		wp_die( '', esc_html__( 'Rollback to Previous Version', 'elementor-pro' ), [ 'response' => 200 ] );
	}

	public function plugin_action_links( $links ) {
		unset( $links['go_pro'] );

		return $links;
	}

	public function plugin_row_meta( $plugin_meta, $plugin_file ) {
		if ( ELEMENTOR_PRO_PLUGIN_BASE === $plugin_file ) {
			$plugin_slug = basename( ELEMENTOR_PRO__FILE__, '.php' );
			$plugin_name = esc_html__( 'Elementor Pro', 'elementor-pro' );

			$row_meta = [
				'view-details' => sprintf( '<a href="%s" class="thickbox open-plugin-details-modal" aria-label="%s" data-title="%s">%s</a>',
					esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin_slug . '&TB_iframe=true&width=600&height=550' ) ),
					/* translators: %s: Plugin name - Elementor Pro. */
					esc_attr( sprintf( esc_html__( 'More information about %s', 'elementor-pro' ), $plugin_name ) ),
					esc_attr( $plugin_name ),
					__( 'View details', 'elementor-pro' )
				),
				'changelog' => '<a href="https://go.elementor.com/pro-changelog/" title="' . esc_attr( esc_html__( 'View Elementor Pro Changelog', 'elementor-pro' ) ) . '" target="_blank">' . esc_html__( 'Changelog', 'elementor-pro' ) . '</a>',
			];

			$plugin_meta = array_merge( $plugin_meta, $row_meta );
		}

		return $plugin_meta;
	}

	public function change_tracker_params( $params ) {
		unset( $params['is_first_time'] );

		return $params;
	}

	public function add_finder_items( array $categories ) {
		$settings_url = Settings::get_url();

		$categories['settings']['items']['integrations'] = [
			'title' => esc_html__( 'Integrations', 'elementor-pro' ),
			'icon' => 'integration',
			'url' => $settings_url . '#tab-integrations',
			'keywords' => [ 'integrations', 'settings', 'typekit', 'facebook', 'recaptcha', 'mailchimp', 'drip', 'activecampaign', 'getresponse', 'convertkit', 'elementor' ],
		];

		return $categories;
	}

	/**
	 * Admin constructor.
	 */
	public function __construct() {
		$this->add_component( 'canary-deployment', new Canary_Deployment() );

		add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] );
		add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
		add_action( 'admin_menu', [ $this, 'remove_go_pro_menu' ], 0 );

		add_action( 'elementor/admin/after_create_settings/' . Tools::PAGE_ID, [ $this, 'register_admin_tools_fields' ], 50 );

		add_filter( 'plugin_action_links_' . ELEMENTOR_PLUGIN_BASE, [ $this, 'plugin_action_links' ], 50 );
		add_filter( 'plugin_row_meta', [ $this, 'plugin_row_meta' ], 10, 2 );

		add_filter( 'elementor/finder/categories', [ $this, 'add_finder_items' ] );

		add_filter( 'elementor/tracker/send_tracking_data_params', [ $this, 'change_tracker_params' ], 200 );
		add_action( 'admin_post_elementor_pro_rollback', [ $this, 'post_elementor_pro_rollback' ] );
	}
}
PK!nŏ�core/utils/registrar.phpnu�[���<?php

namespace ElementorPro\Core\Utils;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Basic items registrar.
 *
 * TODO: Move to Core.
 */
class Registrar {

	/**
	 * @var array
	 */
	private $items;

	/**
	 * Registrar constructor.
	 *
	 * @return void
	 */
	public function __construct() {
		$this->items = [];
	}

	/**
	 * Register a new item.
	 *
	 * @param           $instance - Item instance.
	 * @param string    $id - Optional - For BC - Deprecated.
	 *
	 * @return boolean - Whether the item was registered.
	 */
	public function register( $instance, $id = null ) {
		// TODO: For BC. Remove in the future.
		if ( ! $id ) {
			// Get the ID or default to the class name.
			$id = ( method_exists( $instance, 'get_id' ) ) ? $instance->get_id() : get_class( $instance );
		}

		if ( $this->get( $id ) ) {
			return false;
		}

		$this->items[ $id ] = $instance;

		return true;
	}

	/**
	 * Get an item by ID.
	 *
	 * @param string $id
	 *
	 * @return array|null
	 */
	public function get( $id = null ) {
		if ( ! $id ) {
			return $this->items;
		}

		return isset( $this->items[ $id ] ) ? $this->items[ $id ] : null;
	}
}
PK!聼��
�
core/editor/editor.phpnu�[���<?php
namespace ElementorPro\Core\Editor;

use Elementor\Core\Base\App;
use ElementorPro\License\Admin as License_Admin;
use ElementorPro\License\API as License_API;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Editor extends App {

	/**
	 * Get app name.
	 *
	 * Retrieve the app name.
	 *
	 * @return string app name.
	 * @since  2.6.0
	 * @access public
	 *
	 */
	public function get_name() {
		return 'pro-editor';
	}

	public function __construct() {
		add_action( 'elementor/init', [ $this, 'on_elementor_init' ] );
		add_action( 'elementor/editor/init', [ $this, 'on_elementor_editor_init' ] );
		add_action( 'elementor/editor/after_enqueue_styles', [ $this, 'enqueue_editor_styles' ] );
		add_action( 'elementor/editor/before_enqueue_scripts', [ $this, 'enqueue_editor_scripts' ] );

		add_filter( 'elementor/editor/localize_settings', [ $this, 'localize_settings' ] );
	}

	public function get_init_settings() {
		$settings = [
			'i18n' => [
				// 'edit_element' is here for Backwards Compatibility for Elementor Pro versions <3.1.0
				'edit_element' => esc_html__( 'Edit %s', 'elementor-pro' ),
			],
			'isActive' => License_API::is_license_active(),
			'urls' => [
				'modules' => ELEMENTOR_PRO_MODULES_URL,
				'connect' => License_Admin::get_url(),
			],
		];

		/**
		 * Editor settings.
		 *
		 * Filters the editor settings.
		 *
		 * @since 1.0.0
		 *
		 * @param array $settings settings.
		 */
		$settings = apply_filters( 'elementor_pro/editor/localize_settings', $settings );

		return $settings;
	}

	public function enqueue_editor_styles() {
		wp_enqueue_style(
			'elementor-pro',
			$this->get_css_assets_url( 'editor', null, 'default', true ),
			[
				'elementor-editor',
			],
			ELEMENTOR_PRO_VERSION
		);
	}

	public function enqueue_editor_scripts() {
		wp_enqueue_script(
			'elementor-pro',
			$this->get_js_assets_url( 'editor' ),
			[
				'backbone-marionette',
				'elementor-common',
				'elementor-editor-modules',
				'elementor-editor-document',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		$this->print_config( 'elementor-pro' );
	}

	public function localize_settings( array $settings ) {
		$connect_url = Plugin::instance()->license_admin->get_connect_url();

		$settings['elementPromotionURL'] = $connect_url;
		$settings['dynamicPromotionURL'] = $connect_url;
		$settings['i18n']['see_it_in_action'] = esc_html__( 'Activate License', 'elementor-pro' );

		return $settings;
	}

	public function on_elementor_init() {
		Plugin::elementor()->editor->notice_bar = new Notice_Bar();
	}

	public function on_elementor_editor_init() {
		Plugin::elementor()->common->add_template( __DIR__ . '/template.php' );
	}

	protected function get_assets_base_url() {
		return ELEMENTOR_PRO_URL;
	}
}
PK!
�;��core/editor/notice-bar.phpnu�[���<?php
namespace ElementorPro\Core\Editor;

use Elementor\Core\Editor\Notice_Bar as Base_Notice_Bar;
use ElementorPro\License\API as License_API;
use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Notice_Bar extends Base_Notice_Bar {

	const ELEMENTOR_PRO_EDITOR_GO_PRO_TRIAL_ABOUT_TO_EXPIRE_LICENSE_NOTICE_DISMISSED = '_elementor_pro_editor_go_pro_trial_about_to_expire_license_notice_dismissed';
	const ELEMENTOR_PRO_EDITOR_GO_PRO_TRIAL_EXPIRED_LICENSE_NOTICE_DISMISSED = '_elementor_pro_editor_go_pro_trial_expired_license_notice_dismissed';
	const ELEMENTOR_PRO_EDITOR_RENEW_LICENSE_NOTICE_DISMISSED = '_elementor_pro_editor_renew_license_notice_dismissed';
	const ELEMENTOR_PRO_EDITOR_ACTIVATE_LICENSE_NOTICE_DISMISSED = '_elementor_pro_editor_activate_license_notice_dismissed';
	const ELEMENTOR_PRO_EDITOR_RENEW_ABOUT_TO_EXPIRE_LICENSE_NOTICE_DISMISSED = '_elementor_pro_editor_renew_about_to_expire_license_notice_dismissed';

	protected function get_init_settings() {
		$license_data = License_API::get_license_data();
		$license_admin = Plugin::instance()->license_admin;

		if ( License_API::is_license_active() && License_API::is_licence_pro_trial() ) {
			return [
				'option_key' => self::ELEMENTOR_PRO_EDITOR_GO_PRO_TRIAL_ABOUT_TO_EXPIRE_LICENSE_NOTICE_DISMISSED,
				'message' =>
					esc_html__( 'Heads up! You are using a free trial. Want to enjoy Pro widgets & templates for a whole year?', 'elementor-pro' )
						. sprintf( ' <a href="https://my.elementor.com/upgrade-subscription/?utm_source=editor-notice-bar&utm_medium=wp-dash&utm_campaign=pro-trial&utm_content=trial-period" target="_blank">%s</a>', esc_html__( 'Go Pro now', 'elementor-pro' ) ),
				'action_title' => '',
				'action_url' => '',
				'muted_period' => 0,
			];
		}

		if ( License_API::is_license_expired() && License_API::is_licence_pro_trial() ) {
			return [
				'option_key' => self::ELEMENTOR_PRO_EDITOR_GO_PRO_TRIAL_EXPIRED_LICENSE_NOTICE_DISMISSED,
				'message' => esc_html__( 'Your trial has expired. Miss your favorite Elementor Pro features?', 'elementor-pro' )
					. sprintf( ' <a href="https://my.elementor.com/upgrade-subscription/?utm_source=editor-notice-bar&utm_medium=wp-dash&utm_campaign=pro-trial&utm_content=trial-expired" target="_blank">%s</a>', esc_html__( 'Upgrade now', 'elementor-pro' ) ),
				'action_title' => '',
				'action_url' => '',
				'muted_period' => 0,
			];
		}

		if ( License_API::is_license_expired() ) {
			return [
				'option_key' => self::ELEMENTOR_PRO_EDITOR_RENEW_LICENSE_NOTICE_DISMISSED,
				'message' => esc_html__( 'Renew Elementor Pro and enjoy updates, support and Pro templates for another year.', 'elementor-pro' ),
				'action_title' => esc_html__( 'Renew Now', 'elementor-pro' ),
				'action_url' => 'https://go.elementor.com/editor-notice-bar-renew/',
				'muted_period' => 30,
			];
		}

		if ( ! License_API::is_license_active() ) {
			return [
				'option_key' => self::ELEMENTOR_PRO_EDITOR_ACTIVATE_LICENSE_NOTICE_DISMISSED,
				'message' => esc_html__( 'Activate Your License and Get Access to Premium Elementor Templates, Support & Plugin Updates.', 'elementor-pro' ),
				'action_title' => esc_html__( 'Connect & Activate', 'elementor-pro' ),
				'action_url' => $license_admin->get_connect_url( [
					'mode' => 'popup',
					'callback_id' => 'editor-pro-activate',
				] ),
				'muted_period' => 0,
			];
		}

		if ( ! License_API::is_license_about_to_expire() ) {
			return [];
		}

		if ( isset( $license_data['renewal_discount'] ) && 0 < $license_data['renewal_discount'] ) {
			$message = sprintf( esc_html__( 'Oh-oh... Looks like your Elementor Pro license is about to expire. Renew now and get an exclusive, time-limited %s discount.', 'elementor-pro' ), $license_data['renewal_discount'] . '&#37;' );
		} else {
			$message = esc_html__( 'Oh-oh! Your Elementor Pro license is about to expire. Renew now and enjoy updates, support and Pro templates for another year.', 'elementor-pro' );
		}

		return [
			'option_key' => self::ELEMENTOR_PRO_EDITOR_RENEW_ABOUT_TO_EXPIRE_LICENSE_NOTICE_DISMISSED,
			'message' => $message,
			'action_title' => esc_html__( 'Renew Now', 'elementor-pro' ),
			'action_url' => 'https://go.elementor.com/editor-notice-bar-renew/',
			'muted_period' => 10,
		];
	}
}
PK!�����core/editor/template.phpnu�[���<?php

use ElementorPro\License\Admin as LicenseAdmin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}
?>
<script type="text/template" id="tmpl-elementor-pro-template-library-activate-license-button">
	<a class="elementor-template-library-template-action elementor-button elementor-go-pro" href="<?php
	// PHPCS - the function LicenseAdmin::get_url() is safe.
	echo LicenseAdmin::get_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" target="_blank">
		<i class="eicon-external-link-square"></i>
		<span class="elementor-button-title"><?php echo esc_html__( 'Activate License', 'elementor-pro' ); ?></span>
	</a>
</script>
PK!5F��UUcore/app/assets/js/index.jsnu�[���import Module from '../../modules/site-editor/assets/js/site-editor';

new Module();
PK!-��DD'core/app/assets/styles/app-imports.scssnu�[���@import "../../modules/site-editor/assets/js/molecules/site-template.scss";
@import "../../modules/site-editor/assets/js/pages/add-new.scss";
@import "../../modules/site-editor/assets/js/pages/template-type.scss";
@import "../../modules/site-editor/assets/js/pages/conditions/conditions.scss";
@import "../../modules/site-editor/assets/js/molecules/back-button.scss";
@import "../../modules/site-editor/assets/js/atoms/indicator-bullet.scss";
@import "../../modules/site-editor/assets/js/atoms/preview-iframe.scss";
@import "../../modules/site-editor/assets/js/site-editor.scss";
PK!��??=core/app/modules/site-editor/render-mode-template-preview.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor;

use Elementor\Core\Frontend\RenderModes\Render_Mode_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Render_Mode_Template_Preview extends Render_Mode_Base {
	/**
	 * @return string
	 */
	public static function get_name() {
		return 'template-preview';
	}

	public function filter_template() {
		return ELEMENTOR_PATH . 'modules/page-templates/templates/canvas.php';
	}

	public function prepare_render() {
		parent::prepare_render();

		show_admin_bar( false );

		remove_filter(
			'the_content',
			[ \ElementorPro\Modules\ThemeBuilder\Module::instance()->get_locations_manager(), 'builder_wrapper' ],
			9999999
		);

		add_filter( 'template_include', [ $this, 'filter_template' ] );

		add_action( 'wp_head', [ $this, 'render_pointer_event_style' ] );
	}

	/**
	 * disable all the interactions in the preview render mode.
	 */
	public function render_pointer_event_style() {
		echo '<style> html { pointer-events: none; } </style>';
	}

	public function is_static() {
		return true;
	}
}
PK!K�MIgg'core/app/modules/site-editor/module.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor;

use Elementor\Core\Experiments\Manager;
use Elementor\TemplateLibrary\Source_Local;
use Elementor\Core\Frontend\Render_Mode_Manager;
use ElementorPro\Core\App\Modules\SiteEditor\Data\Controller;
use Elementor\Core\Base\Module as BaseModule;
use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
use ElementorPro\Plugin;
use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilderModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * Site Editor Module
 *
 * Responsible for initializing Elementor Pro App functionality
 */
class Module extends BaseModule {
	/**
	 * Get name.
	 *
	 * @access public
	 *
	 * @return string
	 */
	public function get_name() {
		return 'site-editor';
	}

	public function get_template_types() {
		$document_types = Plugin::elementor()->documents->get_document_types( [
			'support_site_editor' => true,
		] );

		// Keep 404 at end of array.
		$error_404 = $document_types['error-404'];
		unset( $document_types['error-404'] );
		$document_types['error-404'] = $error_404;

		// Currently the `single` itself is not supported in site editor.
		// Don't use `support_site_editor=false` in order to support documents that extend it.
		unset( $document_types['single'] );

		$types = [];

		foreach ( $document_types as $type => $class ) {
			$types[] = $class::get_site_editor_config();
		}

		return $types;
	}

	/**
	 * Register ajax actions.
	 *
	 * @access public
	 *
	 * @param Ajax $ajax
	 */
	public function register_ajax_actions( Ajax $ajax ) {
		$ajax->register_ajax_action( 'app_site_editor_template_types', [ $this, 'get_template_types' ] );
	}

	/**
	 * @param Render_Mode_Manager $manager
	 *
	 * @throws \Exception
	 */
	public function register_render_mode( Render_Mode_Manager $manager ) {
		$manager->register_render_mode( Render_Mode_Template_Preview::class );
	}

	protected function get_init_settings() {
		return [
			'urls' => [
				'legacy_view' => add_query_arg( 'tabs_group', ThemeBuilderModule::ADMIN_LIBRARY_TAB_GROUP, admin_url( Source_Local::ADMIN_MENU_SLUG ) ),
			],
		];
	}

	private function add_default_new_site_editor_experiments( Manager $manager ) {
		$manager->add_feature( [
			'name' => 'theme_builder_v2',
			'title' => __( 'Default to New Theme Builder', 'elementor-pro' ),
			'description' => __( 'Entering the Theme Builder through WP Dashboard > Templates > Theme Builder opens the New theme builder by default. But don’t worry, you can always view the WP styled version of the screen with a simple click of a button.', 'elementor-pro' ),
			'release_status' => Manager::RELEASE_STATUS_BETA,
			'default' => Manager::STATE_ACTIVE,
		] );
	}

	private function register_site_editor_menu() {
		if ( ! Plugin::elementor()->experiments->is_feature_active( 'theme_builder_v2' ) ) {
			return;
		}

		// Remove the old theme builder link and add the new one.
		remove_submenu_page(
			Source_Local::ADMIN_MENU_SLUG,
			add_query_arg( 'tabs_group', ThemeBuilderModule::ADMIN_LIBRARY_TAB_GROUP, Source_Local::ADMIN_MENU_SLUG )
		);

		add_submenu_page(
			Source_Local::ADMIN_MENU_SLUG,
			'',
			__( 'Theme Builder', 'elementor-pro' ),
			'publish_posts',
			Plugin::elementor()->app->get_base_url() . '#/site-editor'
		);
	}

	private function add_finder_item( array $categories ) {
		if ( ! Plugin::elementor()->experiments->is_feature_active( 'theme_builder_v2' ) ) {
			return $categories;
		}

		// Replace the old theme builder "create-new" link with the new site-editor.
		$categories['create']['items']['theme-template'] = [
			'title' => __( 'Add New Theme Template', 'elementor-pro' ),
			'icon' => 'plus-circle-o',
			'url' => Plugin::elementor()->app->get_base_url() . '#/site-editor/add-new',
			'keywords' => [ 'template', 'theme', 'new', 'create' ],
		];

		return $categories;
	}

	/**
	 * Module constructor.
	 *
	 * @access public
	 */
	public function __construct() {
		Plugin::elementor()->data_manager->register_controller( Controller::class );

		add_action( 'elementor/ajax/register_actions', [ $this, 'register_ajax_actions' ], 11 /* Override core actions */ );
		add_action( 'elementor/frontend/render_mode/register', [ $this, 'register_render_mode' ] );

		add_action( 'elementor/experiments/default-features-registered', function ( Manager $manager ) {
			$this->add_default_new_site_editor_experiments( $manager );
		} );

		add_action( 'admin_menu', function () {
			$this->register_site_editor_menu();
		}, 23 /* After old theme builder */ );

		add_filter( 'elementor/finder/categories', function ( array $categories ) {
			return $this->add_finder_item( $categories );
		}, 11 /* After old theme builder */ );

	}
}
PK!<j�ܞ�Dcore/app/modules/site-editor/assets/js/part-actions/dialog-rename.jsnu�[���import { useEffect } from 'react';
import { Dialog } from '@elementor/app-ui';
import { Context as TemplatesContext } from '../context/templates';

export default function DialogRename( props ) {
	const { findTemplateItemInState, updateTemplate } = React.useContext( TemplatesContext ),
		template = findTemplateItemInState( props.id );

	const [ title, setTitle ] = React.useState( '' );

	useEffect( () => {
		// The "title" state should be updated if the template title changed.
		if ( template ) {
			setTitle( template.title );
		}
	}, [ template ] );

	const closeDialog = ( shouldUpdate ) => {
		props.setId( null );

		if ( shouldUpdate ) {
			updateTemplate( props.id, { post_title: title } );
		}
	};

	if ( ! props.id ) {
		return '';
	}

	return (
		<Dialog
			title={ __( 'Rename Site Part', 'elementor-pro' ) }
			approveButtonText={ __( 'Change', 'elementor-pro' ) }
			onSubmit={ () => closeDialog( true ) }
			approveButtonOnClick={ () => closeDialog( true ) }
			approveButtonColor="primary"
			dismissButtonText={ __( 'Cancel', 'elementor-pro' ) }
			dismissButtonOnClick={ () => closeDialog() }
			onClose={ () => closeDialog() }
		>
			<input
				type="text"
				className="eps-input eps-input-text eps-input--block"
				autoFocus
				value={ title }
				onChange={ ( e ) => setTitle( e.target.value ) }
			/>
		</Dialog>
	);
}

DialogRename.propTypes = {
	id: PropTypes.number,
	setId: PropTypes.func.isRequired,
};
PK!��ēFFDcore/app/modules/site-editor/assets/js/part-actions/dialog-delete.jsnu�[���import { Dialog } from '@elementor/app-ui';
import { Context as TemplatesContext } from '../context/templates';

export default function DialogDelete( props ) {
	const { deleteTemplate, findTemplateItemInState } = React.useContext( TemplatesContext ),
		template = findTemplateItemInState( props.id );

	const closeDialog = ( shouldUpdate ) => {
		props.setId( null );

		if ( shouldUpdate ) {
			deleteTemplate( props.id );
		}
	};

	if ( ! props.id ) {
		return '';
	}

	return (
		<Dialog
			title={ __( 'Move Item To Trash', 'elementor-pro' ) }
			text={ __( 'Are you sure you want to move this item to trash:', 'elementor-pro' ) + ` "${ template.title }"` }
			onSubmit={ () => closeDialog( true ) }
			approveButtonText={ __( 'Move to Trash', 'elementor-pro' ) }
			approveButtonOnClick={ () => closeDialog( true ) }
			approveButtonColor="danger"
			dismissButtonText={ __( 'Cancel', 'elementor-pro' ) }
			dismissButtonOnClick={ () => closeDialog() }
			onClose={ () => closeDialog() }
		/>
	);
}

DialogDelete.propTypes = {
	id: PropTypes.number,
	setId: PropTypes.func.isRequired,
};
PK!+dt���Jcore/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.jsnu�[���import DialogRename from './dialog-rename';
import DialogDelete from './dialog-delete';
import { Button, Popover } from '@elementor/app-ui';

export const handlers = {
	rename: null,
	delete: null,
};

// TODO: Think about refactor to portals: https://reactjs.org/docs/portals.html
export function PartActionsDialogs() {
	const [ DialogRenameId, setDialogRenameId ] = React.useState( null );
	const [ DialogDeleteId, setDialogDeleteId ] = React.useState( null );

	handlers.rename = setDialogRenameId;
	handlers.delete = setDialogDeleteId;

	return (
		<>
			<DialogRename id={ DialogRenameId } setId={ setDialogRenameId } />
			<DialogDelete id={ DialogDeleteId } setId={ setDialogDeleteId } />
		</>
	);
}

export default function PartActionsButtons( props ) {
	const [ showMenu, setShowMenu ] = React.useState( false );

	let SiteTemplatePopover = '';

	if ( showMenu ) {
		SiteTemplatePopover = (
			<Popover closeFunction={ () => setShowMenu( ! showMenu ) }>
				<li>
					<Button
						className="eps-popover__item"
						icon="eicon-sign-out"
						text={ __( 'Export', 'elementor-pro' ) }
						url={ props.exportLink }
					/>
				</li>
				<li>
					<Button
						className="eps-popover__item eps-popover__item--danger"
						icon="eicon-trash-o"
						text={ __( 'Trash', 'elementor-pro' ) }
						onClick={ () => handlers.delete( props.id ) }
					/>
				</li>
				<li>
					<Button
						className="eps-popover__item"
						icon="eicon-edit"
						text={ __( 'Rename', 'elementor-pro' ) }
						onClick={ () => handlers.rename( props.id ) }
					/>
				</li>
			</Popover>
		);
	}

	return (
		<div className="eps-popover__container">
			<Button
				text={ __( 'Toggle', 'elementor-pro' ) }
				hideText={ true }
				icon="eicon-ellipsis-h"
				size="lg"
				onClick={ () => setShowMenu( ! showMenu ) }
			/>
			{ SiteTemplatePopover }
		</div>
	);
}

PartActionsButtons.propTypes = {
	id: PropTypes.number.isRequired,
	exportLink: PropTypes.string.isRequired,
};
PK!�c(��Icore/app/modules/site-editor/assets/js/data/commands/conditions-config.jsnu�[���export class ConditionsConfig extends $e.modules.CommandData {
	static signature = 'site-editor/conditions-config';

	static getEndpointFormat() {
		return 'site-editor/conditions-config/{id}';
	}
}

export default ConditionsConfig;
PK!#)Vcore/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.jsnu�[���export class TemplatesConditionsConflicts extends $e.modules.CommandData {
	static signature = 'site-editor/templates-conditions-conflicts';

	static getEndpointFormat() {
		return `${ TemplatesConditionsConflicts.signature }/{id}`;
	}
}

export default TemplatesConditionsConflicts;
PK!,�O��Lcore/app/modules/site-editor/assets/js/data/commands/templates-conditions.jsnu�[���export class TemplatesConditions extends $e.modules.CommandData {
	static signature = 'site-editor/templates-conditions';

	static getEndpointFormat() {
		return 'site-editor/templates-conditions/{id}';
	}
}

export default TemplatesConditions;
PK!�˰��Acore/app/modules/site-editor/assets/js/data/commands/templates.jsnu�[���export class Templates extends $e.modules.CommandData {
	static signature = 'site-editor/templates';

	static getEndpointFormat() {
		return 'site-editor/templates/{id}';
	}
}

export default Templates;
PK!1g�|��=core/app/modules/site-editor/assets/js/data/commands/index.jsnu�[���export { Templates } from './templates';
export { ConditionsConfig } from './conditions-config';
export { TemplatesConditions } from './templates-conditions';
export { TemplatesConditionsConflicts } from './templates-conditions-conflicts';
PK!-��8core/app/modules/site-editor/assets/js/data/component.jsnu�[���import * as dataCommands from './commands';

export default class Component extends $e.modules.ComponentBase {
	static namespace = 'site-editor';

	getNamespace() {
		return this.constructor.namespace;
	}

	defaultData() {
		return this.importCommands( dataCommands );
	}
}
PK!�?b'}}Hcore/app/modules/site-editor/assets/js/hooks/use-templates-screenshot.jsnu�[���import { Context as TemplatesContext } from '../context/templates';
import useScreenshot, { SCREENSHOT_STATUS_SUCCEED, SCREENSHOT_STATUS_FAILED } from 'modules/screenshots/app/assets/js/hooks/use-screenshot';

/**
 * Wrapper function that was made to take screenshots specific for template.
 * it will capture a screenshot and update the templates context with the new screenshot.
 *
 * @param {any} templateType
 */
export default function useTemplatesScreenshot( templateType = null ) {
	const { updateTemplateItemState, templates } = React.useContext( TemplatesContext );

	const templatesForScreenshot = Object.values( templates ).filter(
		( template ) => shouldScreenshotTemplate( template, templateType ),
	);

	// Start to capture screenshots.
	const screenshot = useScreenshot( templatesForScreenshot );

	// Update the thumbnail url when screenshot created.
	React.useEffect( () => {
		screenshot.posts
			.filter( ( post ) => post.status === SCREENSHOT_STATUS_SUCCEED )
			.forEach( ( post ) => updateTemplateItemState( post.id, { thumbnail: post.imageUrl } ) );
	}, [ screenshot.succeed ] );

	// Update the screenshot url that was failed.
	// When the user will hit the route on the second time it will avoid trying to take another screenshot.
	React.useEffect( () => {
		screenshot.posts
			.filter( ( post ) => post.status === SCREENSHOT_STATUS_FAILED )
			.forEach( ( post ) => updateTemplateItemState( post.id, { screenshot_url: null } ) );
	}, [ screenshot.failed ] );

	return screenshot;
}

/**
 * Filter handler.
 * will remove all the drafts and private and also will filter by template type if exists.
 *
 * @param {any} template
 * @param {any} templateType
 * @return {boolean} -
 */
function shouldScreenshotTemplate( template, templateType = null ) {
	if ( templateType ) {
		return false;
	}

	return 'publish' === template.status &&
		! template.thumbnail &&
		template.screenshot_url;
}
PK!�L��<core/app/modules/site-editor/assets/js/context/conditions.jsnu�[���import Condition from './models/condition';
import ConditionsConfig from './services/conditions-config';
import BaseContext from './base-context';
import { TemplatesConditions, TemplatesConditionsConflicts } from '../data/commands';

export const Context = React.createContext();

export class ConditionsProvider extends BaseContext {
	static propTypes = {
		children: PropTypes.any.isRequired,
		currentTemplate: PropTypes.object.isRequired,
		onConditionsSaved: PropTypes.func.isRequired,
		validateConflicts: PropTypes.bool,
	};

	static defaultProps = {
		validateConflicts: true,
	};

	static actions = {
		FETCH_CONFIG: 'fetch-config',
		SAVE: 'save',
		CHECK_CONFLICTS: 'check-conflicts',
	};

	/**
	 * Holds the conditions config object.
	 *
	 * @type {ConditionsConfig}
	 */
	conditionsConfig = null;

	/**
	 * ConditionsProvider constructor.
	 *
	 * @param {any} props
	 */
	constructor( props ) {
		super( props );

		this.state = {
			...this.state,

			conditions: {},

			updateConditionItemState: this.updateConditionItemState.bind( this ),
			removeConditionItemInState: this.removeConditionItemInState.bind( this ),
			createConditionItemInState: this.createConditionItemInState.bind( this ),
			findConditionItemInState: this.findConditionItemInState.bind( this ),

			saveConditions: this.saveConditions.bind( this ),
		};
	}

	/**
	 * Fetch the conditions config, then normalize the conditions and then setup titles for
	 * the subIds.
	 */
	componentDidMount() {
		this.executeAction( ConditionsProvider.actions.FETCH_CONFIG, () => ConditionsConfig.create() )
			.then( ( conditionsConfig ) => this.conditionsConfig = conditionsConfig )
			.then( this.normalizeConditionsState.bind( this ) )
			.then( this.setSubIdTitles.bind( this ) );
	}

	/**
	 * Execute a request to save the template conditions.
	 *
	 * @return {any} -
	 */
	saveConditions() {
		const conditions = Object.values( this.state.conditions )
			.map( ( condition ) => condition.forDb() );

		return this.executeAction(
			ConditionsProvider.actions.SAVE,
			() => $e.data.update( TemplatesConditions.signature, { conditions }, { id: this.props.currentTemplate.id } ),
		).then( () => {
			const contextConditions = Object.values( this.state.conditions )
				.map( ( condition ) => condition.forContext() );

			this.props.onConditionsSaved( this.props.currentTemplate.id, {
				conditions: contextConditions,
				instances: this.conditionsConfig.calculateInstances( Object.values( this.state.conditions ) ),
				isActive: !! ( Object.keys( this.state.conditions ).length && 'publish' === this.props.currentTemplate.status ),
			} );
		} );
	}

	/**
	 * Check for conflicts in the server and mark the condition if there
	 * is a conflict.
	 *
	 * @param {any} condition
	 */
	checkConflicts( condition ) {
		return this.executeAction(
			ConditionsProvider.actions.CHECK_CONFLICTS,
			() => $e.data.get( TemplatesConditionsConflicts.signature, {
				post_id: this.props.currentTemplate.id,
				condition: condition.clone().toString(),
			} ),
		).then( ( response ) =>
			this.updateConditionItemState( condition.id, { conflictErrors: Object.values( response.data ) }, false ),
		);
	}

	/**
	 * Fetching subId titles.
	 *
	 * @param {any} condition
	 * @return {Promise<unknown>} -
	 */
	fetchSubIdsTitles( condition ) {
		return new Promise( ( resolve ) => {
			return elementorCommon.ajax.loadObjects( {
				action: 'query_control_value_titles',
				ids: _.isArray( condition.subId ) ? condition.subId : [ condition.subId ],
				data: {
					get_titles: condition.subIdAutocomplete,
					unique_id: elementorCommon.helpers.getUniqueId(),
				},
				success( response ) {
					resolve( response );
				},
			} );
		} );
	}

	/**
	 * Get the conditions from the template and normalize it to data structure
	 * that the components can work with.
	 */
	normalizeConditionsState() {
		this.updateConditionsState( () => {
			return this.props.currentTemplate.conditions.reduce( ( current, condition ) => {
				const conditionObj = new Condition( {
					...condition,
					default: this.props.currentTemplate.defaultCondition,
					options: this.conditionsConfig.getOptions(),
					subOptions: this.conditionsConfig.getSubOptions( condition.name ),
					subIdAutocomplete: this.conditionsConfig.getSubIdAutocomplete( condition.sub ),
					supIdOptions: condition.subId ? [ { value: condition.subId, label: condition.subId } ] : [],
				} );

				return {
					...current,
					[ conditionObj.id ]: conditionObj,
				};
			}, {} );
		} ).then( () => {
			Object.values( this.state.conditions ).forEach( ( condition ) => this.checkConflicts( condition ) );
		} );
	}

	/**
	 * Set titles to the subIds,
	 * for the first render of the component.
	 */
	setSubIdTitles() {
		return Object.values( this.state.conditions ).forEach( ( condition ) => {
			if ( ! condition.subId ) {
				return;
			}

			return this.fetchSubIdsTitles( condition )
				.then( ( response ) =>
					this.updateConditionItemState( condition.id, {
						subIdOptions: [ {
							label: Object.values( response )[ 0 ],
							value: condition.subId,
						} ],
					}, false ),
				);
		} );
	}

	/**
	 * Update state of specific condition item.
	 *
	 * @param {any} id
	 * @param {any} args
	 * @param {boolean} shouldCheckConflicts
	 */
	updateConditionItemState( id, args, shouldCheckConflicts = true ) {
		if ( args.name ) {
			args.subOptions = this.conditionsConfig.getSubOptions( args.name );
		}

		if ( args.sub || args.name ) {
			args.subIdAutocomplete = this.conditionsConfig.getSubIdAutocomplete( args.sub );

			// In case that the condition has been changed, it will set the options of the subId
			// to empty array to let select2 autocomplete handle the options.
			args.subIdOptions = [];
		}

		this.updateConditionsState( ( prev ) => {
			const condition = prev[ id ];

			return {
				...prev,
				[ id ]: condition.clone().set( args ),
			};
		} ).then( () => {
			if ( shouldCheckConflicts ) {
				this.checkConflicts( this.findConditionItemInState( id ) );
			}
		} );
	}

	/**
	 * Remove a condition item from the state.
	 *
	 * @param {any} id
	 */
	removeConditionItemInState( id ) {
		this.updateConditionsState( ( prev ) => {
			const newConditions = { ...prev };

			delete newConditions[ id ];

			return newConditions;
		} );
	}

	/**
	 * Add a new condition item into the state.
	 *
	 * @param {boolean} shouldCheckConflicts
	 */
	createConditionItemInState( shouldCheckConflicts = true ) {
		const defaultCondition = this.props.currentTemplate.defaultCondition,
			newCondition = new Condition( {
				name: defaultCondition,
				default: defaultCondition,
				options: this.conditionsConfig.getOptions(),
				subOptions: this.conditionsConfig.getSubOptions( defaultCondition ),
				subIdAutocomplete: this.conditionsConfig.getSubIdAutocomplete( '' ),
			} );

		this.updateConditionsState( ( prev ) => ( { ...prev, [ newCondition.id ]: newCondition } ) )
			.then( () => {
				if ( shouldCheckConflicts ) {
					this.checkConflicts( newCondition );
				}
			} );
	}

	/**
	 * Find a condition item from the conditions state.
	 *
	 * @param {any} id
	 * @return {Condition|null} -
	 */
	findConditionItemInState( id ) {
		return Object.values( this.state.conditions ).find( ( c ) => c.id === id );
	}

	/**
	 * Update the whole conditions state.
	 *
	 * @param {Function} callback
	 * @return {Promise<any>} -
	 */
	updateConditionsState( callback ) {
		return new Promise( ( resolve ) =>
			this.setState( ( prev ) => ( { conditions: callback( prev.conditions ) } ), resolve ),
		);
	}

	/**
	 * Renders the provider.
	 *
	 * @return {any} -
	 */
	render() {
		if ( this.state.action.current === ConditionsProvider.actions.FETCH_CONFIG ) {
			if ( this.state.error ) {
				return <h3>{ __( 'Error:', 'elementor-pro' ) } { this.state.error }</h3>;
			}

			if ( this.state.loading ) {
				return <h3>{ __( 'Loading', 'elementor-pro' ) }...</h3>;
			}
		}

		return (
			<Context.Provider value={ this.state }>
				{ this.props.children }
			</Context.Provider>
		);
	}
}

export default ConditionsProvider;
PK!S���
�
;core/app/modules/site-editor/assets/js/context/templates.jsnu�[���import BaseContext from './base-context';
import { Templates } from '../data/commands';
import Component from '../data/component';

export const Context = React.createContext();

export class TemplatesProvider extends BaseContext {
	static propTypes = {
		children: PropTypes.object.isRequired,
	};

	static actions = {
		FETCH: 'fetch',
		DELETE: 'delete',
		UPDATE: 'update',
		IMPORT: 'import',
	};

	constructor( props ) {
		super( props );

		this.state = {
			...this.state,
			action: {
				...this.state.action,
				current: TemplatesProvider.actions.FETCH,
				loading: true,
			},

			templates: {},

			updateTemplateItemState: this.updateTemplateItemState.bind( this ),
			findTemplateItemInState: this.findTemplateItemInState.bind( this ),

			fetchTemplates: this.fetchTemplates.bind( this ),
			deleteTemplate: this.deleteTemplate.bind( this ),
			updateTemplate: this.updateTemplate.bind( this ),
			importTemplates: this.importTemplates.bind( this ),
		};
	}

	componentDidMount() {
		this.fetchTemplates();
	}

	importTemplates( { fileName, fileData } ) {
		return this.executeAction(
			TemplatesProvider.actions.IMPORT,
			() => $e.data.create( Templates.signature, { fileName, fileData } ),
		).then( ( response ) => {
			this.updateTemplatesState( ( prev ) => (
					{
						...prev,
						...Object.values( response.data ).reduce(
							( current, template ) => {
								if ( ! template.supportsSiteEditor ) {
									return current;
								}

								return { ...current, [ template.id ]: template };
							}, {},
						),
					}
				),
			);

			return response;
		} );
	}

	deleteTemplate( id ) {
		return this.executeAction(
			TemplatesProvider.actions.DELETE,
			() => $e.data.delete( Templates.signature, { id } ),
		).then( () => {
			this.updateTemplatesState( ( prev ) => {
				const newTemplates = { ...prev };

				delete newTemplates[ id ];

				return newTemplates;
			} );
		} );
	}

	updateTemplate( id, args ) {
		return this.executeAction(
			TemplatesProvider.actions.UPDATE,
			() => $e.data.update( Templates.signature, args, { id } ),
		).then( ( response ) => {
			this.updateTemplateItemState( id, response.data );
		} );
	}

	fetchTemplates() {
		return this.executeAction(
			TemplatesProvider.actions.FETCH,
			() => $e.data.get( Templates.signature ),
		).then( ( response ) => {
			this.updateTemplatesState( () => Object.values( response.data ).reduce(
				( current, template ) => ( { ...current, [ template.id ]: template } ), {},
			), false );
		} );
	}

	updateTemplateItemState( id, args ) {
		return this.updateTemplatesState( ( prev ) => {
			const template = {
				...prev[ id ],
				...args,
			};

			return {
				...prev,
				[ id ]: template,
			};
		} );
	}

	updateTemplatesState( callback, clearCache = true ) {
		if ( clearCache ) {
			$e.data.deleteCache( $e.components.get( Component.namespace ), Templates.signature );
		}

		return this.setState( ( prev ) => {
			return { templates: callback( prev.templates ) };
		} );
	}

	findTemplateItemInState( id ) {
		return this.state.templates[ id ];
	}

	render() {
		if ( this.state.action.current === TemplatesProvider.actions.FETCH ) {
			if ( this.state.action.error ) {
				return <h3>{ __( 'Error:', 'elementor-pro' ) } { this.state.action.error }</h3>;
			}

			if ( this.state.action.loading ) {
				return <h3>{ __( 'Loading', 'elementor-pro' ) }...</h3>;
			}
		}

		return (
			<Context.Provider value={ this.state }>
				{ this.props.children }
			</Context.Provider>
		);
	}
}

export default TemplatesProvider;
PK!��"M
M
Lcore/app/modules/site-editor/assets/js/context/services/conditions-config.jsnu�[���import { ConditionsConfig as ConditionsConfigCommand } from '../../data/commands';

export class ConditionsConfig {
	static instance;

	config = null;

	constructor( config ) {
		this.config = config;
	}

	/**
	 * @return {Promise<ConditionsConfig>} -
	 */
	static create() {
		if ( ConditionsConfig.instance ) {
			return Promise.resolve( ConditionsConfig.instance );
		}

		return $e.data.get( ConditionsConfigCommand.signature )
			.then( ( response ) => {
				ConditionsConfig.instance = new ConditionsConfig( response.data );

				return ConditionsConfig.instance;
			} );
	}

	/**
	 * Get main options for condition name.
	 *
	 * @return {Array} -
	 */
	getOptions() {
		return this.getSubOptions( 'general', true )
			.map( ( { label, value } ) => {
				return {
					label,
					value,
				};
			} );
	}

	/**
	 * Get the sub options for the select.
	 *
	 * @param {string} itemName
	 * @param {boolean} isSubItem
	 * @return {Array} -
	 */
	getSubOptions( itemName, isSubItem = false ) {
		const config = this.config[ itemName ];

		if ( ! config ) {
			return [];
		}

		return [
			{ label: config.all_label, value: isSubItem ? itemName : '' },
			...config.sub_conditions.map( ( subName ) => {
				const subConfig = this.config[ subName ];

				return {
					label: subConfig.label,
					value: subName,
					children: subConfig.sub_conditions.length ? this.getSubOptions( subName, true ) : null,
				};
			} ),
		];
	}

	/**
	 * Get the autocomplete property from the conditions config
	 *
	 * @param {string} sub
	 * @return {{}|any} -
	 */
	getSubIdAutocomplete( sub ) {
		const config = this.config[ sub ];

		if ( ! config || ! ( 'object' === typeof ( config.controls ) ) ) {
			return {};
		}

		const controls = Object.values( config.controls );

		if ( ! controls?.[ 0 ]?.autocomplete ) {
			return {};
		}

		return controls[ 0 ].autocomplete;
	}

	/**
	 * Calculate instances from the conditions.
	 *
	 * @param {Array} conditions
	 * @return {Object} -
	 */
	calculateInstances( conditions ) {
		let instances = conditions.reduce( ( current, condition ) => {
			if ( 'exclude' === condition.type ) {
				return current;
			}

			const key = condition.sub || condition.name,
				config = this.config[ key ];

			if ( ! config ) {
				return current;
			}

			const instanceLabel = condition.subId
				? `${ config.label } #${ condition.subId }`
				: config.all_label;

			return {
				...current,
				[ key ]: instanceLabel,
			};
		}, {} );

		if ( 0 === Object.keys( instances ).length ) {
			instances = [ __( 'No instances', 'elementor-pro' ) ];
		}

		return instances;
	}
}

export default ConditionsConfig;
PK!�?�*>core/app/modules/site-editor/assets/js/context/base-context.jsnu�[���export class BaseContext extends React.Component {
	constructor( props ) {
		super( props );

		this.state = {
			action: {
				current: null,
				loading: false,
				error: null,
				errorMeta: {},
			},

			updateActionState: this.updateActionState.bind( this ),
			resetActionState: this.resetActionState.bind( this ),
		};
	}

	executeAction( name, handler ) {
		this.updateActionState( { current: name, loading: true, error: null, errorMeta: {} } );

		return handler()
			.then( ( response ) => {
				this.resetActionState();

				return Promise.resolve( response );
			} )
			.catch( ( error ) => {
				this.updateActionState( { current: name, loading: false, error: error.message, errorMeta: error } );

				return Promise.reject( error );
			} );
	}

	updateActionState( data ) {
		return this.setState( ( prev ) => ( {
			action: {
				...prev.action,
				...data,
			},
		} ) );
	}

	resetActionState() {
		this.updateActionState( { current: null, loading: false, error: null, errorMeta: {} } );
	}
}

export default BaseContext;
PK!��\rrBcore/app/modules/site-editor/assets/js/context/models/condition.jsnu�[���export default class Condition {
	id = elementorCommon.helpers.getUniqueId();
	default = '';
	type = 'include';
	name = '';
	sub = '';
	subId = '';
	options = [];
	subOptions = [];
	subIdAutocomplete = [];
	subIdOptions = [];
	conflictErrors = [];

	constructor( args ) {
		this.set( args );
	}

	set( args ) {
		Object.assign( this, args );
		return this;
	}

	clone() {
		return Object.assign( new Condition(), this );
	}

	remove( keys ) {
		if ( ! Array.isArray( keys ) ) {
			keys = [ keys ];
		}

		keys.forEach( ( key ) => {
			delete this[ key ];
		} );

		return this;
	}

	only( keys ) {
		if ( ! Array.isArray( keys ) ) {
			keys = [ keys ];
		}

		const keysToRemove = Object.keys( this )
			.filter( ( conditionKey ) => ! keys.includes( conditionKey ) );

		this.remove( keysToRemove );

		return this;
	}

	toJson() {
		return JSON.stringify( this );
	}

	toString() {
		return this.forDb().filter( ( item ) => item ).join( '/' );
	}

	forDb() {
		return [ this.type, this.name, this.sub, this.subId ];
	}

	forContext() {
		return {
			type: this.type,
			name: this.name,
			sub: this.sub,
			subId: this.subId,
		};
	}
}
PK!�R��**Bcore/app/modules/site-editor/assets/js/organisms/site-templates.jsnu�[���import { CssGrid, Dialog } from '@elementor/app-ui';
import SiteTemplate from '../molecules/site-template';
import { PartActionsDialogs } from '../part-actions/dialogs-and-buttons';
import { Context as TemplatesContext } from '../context/templates';
import useTemplatesScreenshot from '../hooks/use-templates-screenshot';

export default function SiteTemplates( props ) {
	const { templates: contextTemplates, action, resetActionState } = React.useContext( TemplatesContext );
	let gridColumns, templates;

	// Make the templates object a memorize value, will re run again only if
	// templates has been changed, also sort the templates by `isActive`.
	templates = React.useMemo( () => {
		return Object.values( contextTemplates )
			.sort( ( a, b ) => {
				// This sort make sure to show first the active templates, second the
				// inactive templates that are not draft, and then the drafts,
				// in each category it sorts it inside by date.

				if ( ! b.isActive && ! a.isActive ) {
					if (
						( 'draft' === b.status && 'draft' === a.status ) ||
						( 'draft' !== b.status && 'draft' !== a.status )
					) {
						return b.date < a.date ? 1 : -1;
					}

					return 'draft' === a.status ? 1 : -1;
				}

				if ( b.isActive && a.isActive ) {
					return b.date < a.date ? 1 : -1;
				}

				return b.isActive ? 1 : -1;
			} );
	}, [ contextTemplates ] );

	// Start to capture screenshots.
	useTemplatesScreenshot( props.type );

	const siteTemplateConfig = {};

	if ( props.type ) {
		templates = templates.filter( ( item ) => item.type === props.type );
		siteTemplateConfig.extended = true;
		siteTemplateConfig.type = props.type;

		switch ( props.type ) {
			case 'header':
			case 'footer':
				gridColumns = 1;
				siteTemplateConfig.aspectRatio = 'wide';
				break;
			default:
				gridColumns = 2;
		}
	}

	if ( ! templates || ! templates.length ) {
		return <h3>{ __( 'No Templates found. Want to create one?', 'elementor-pro' ) }...</h3>;
	}

	return (
		<section className="e-site-editor__site-templates">
			<PartActionsDialogs/>
			{
				action.error &&
					<Dialog
						text={ action.error }
						dismissButtonText={ __( 'Go Back', 'elementor-pro' ) }
						dismissButtonOnClick={ resetActionState }
						approveButtonText={ __( 'Learn More', 'elementor-pro' ) }
						approveButtonColor="link"
						approveButtonUrl="https://go.elementor.com/app-theme-builder-template-load-issue"
						approveButtonTarget="_target"
					/>
			}
			<CssGrid columns={ gridColumns } spacing={ 24 } colMinWidth={ 200 }>
				{
					templates.map( ( item ) =>
						<SiteTemplate
							key={ item.id }
							{ ... item }
							{ ... siteTemplateConfig }
							isSelected={ parseInt( props.id ) === item.id }/>,
					)
				}
			</CssGrid>
		</section>
	);
}

SiteTemplates.propTypes = {
	type: PropTypes.string,
	id: PropTypes.string,
};
PK!NM���Hcore/app/modules/site-editor/assets/js/pages/conditions/condition-sub.jsnu�[���import { Select } from '@elementor/app-ui';

export default function ConditionSub( props ) {
	if ( 'general' === props.name || ! props.subOptions.length ) {
		return '';
	}

	const onChange = ( e ) => props.updateConditions( props.id, { sub: e.target.value, subId: '' } );

	return (
		<div className="e-site-editor-conditions__input-wrapper">
			<Select options={ props.subOptions } value={ props.sub } onChange={ onChange } />
		</div>
	);
}

ConditionSub.propTypes = {
	updateConditions: PropTypes.func.isRequired,
	id: PropTypes.string.isRequired,
	name: PropTypes.string.isRequired,
	sub: PropTypes.string.isRequired,
	subOptions: PropTypes.array.isRequired,
};

ConditionSub.defaultProps = {
	sub: '',
	subOptions: {},
};
PK!���Icore/app/modules/site-editor/assets/js/pages/conditions/condition-name.jsnu�[���import { Select } from '@elementor/app-ui';

export default function ConditionName( props ) {
	// Hide for template types that has another default, like single & archive.
	if ( 'general' !== props.default ) {
		return '';
	}

	const onChange = ( e ) => props.updateConditions( props.id, { name: e.target.value, sub: '', subId: '' } );

	return (
		<div className="e-site-editor-conditions__input-wrapper">
			<Select options={ props.options } value={ props.name } onChange={ onChange } />
		</div>
	);
}

ConditionName.propTypes = {
	updateConditions: PropTypes.func.isRequired,
	id: PropTypes.string.isRequired,
	name: PropTypes.string.isRequired,
	options: PropTypes.array.isRequired,
	default: PropTypes.string.isRequired,
};

ConditionName.defaultProps = {
	name: '',
};
PK!�5 ��Kcore/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.jsnu�[���import { Select2 } from '@elementor/app-ui';

/**
 * Main component.
 *
 * @param {any} props
 * @return {any} -
 * @class
 */
export default function ConditionSubId( props ) {
	if ( ! props.sub || ! Object.keys( props.subIdAutocomplete ).length ) {
		return '';
	}

	const settings = React.useMemo( () => getSettings( props.subIdAutocomplete ), [ props.subIdAutocomplete ] );

	const onChange = ( e ) => props.updateConditions( props.id, { subId: e.target.value } );

	return (
		<div className="e-site-editor-conditions__input-wrapper">
			<Select2
				onChange={ onChange }
				value={ props.subId }
				settings={ settings }
				options={ props.subIdOptions }
			/>
		</div>
	);
}

/**
 * Get settings for the select2 base on the autocomplete settings,
 * that passes as a prop
 *
 * @param {any} autocomplete
 * @return {Object} -
 */
function getSettings( autocomplete ) {
	return {
		allowClear: false,
		placeholder: __( 'All', 'elementor-pro' ),
		dir: elementorCommon.config.isRTL ? 'rtl' : 'ltr',
		ajax: {
			transport( params, success, failure ) {
				return elementorCommon.ajax.addRequest( 'pro_panel_posts_control_filter_autocomplete', {
					data: {
						q: params.data.q,
						autocomplete,
					},
					success,
					error: failure,
				} );
			},
			data( params ) {
				return {
					q: params.term,
					page: params.page,
				};
			},
			cache: true,
		},
		escapeMarkup( markup ) {
			return markup;
		},
		minimumInputLength: 1,
	};
}

ConditionSubId.propTypes = {
	subIdAutocomplete: PropTypes.object,
	id: PropTypes.string.isRequired,
	sub: PropTypes.string,
	subId: PropTypes.string,
	updateConditions: PropTypes.func,
	subIdOptions: PropTypes.array,
};

ConditionSubId.defaultProps = {
	subId: '',
	subIdOptions: [],
};
PK!$t�$��Gcore/app/modules/site-editor/assets/js/pages/conditions/conditions.scssnu�[���@import "conditions-api";

.e-site-editor-conditions {
	&__header {
		text-align: center;
	}

	&__header-image {
		display: block;
		margin: 0 auto $e-site-editor-conditions-header-image-button-spacing;
		width: $e-site-editor-conditions-header-image-width;
	}

	&__rows {
		margin: $e-site-editor-conditions-rows-y-spacing auto;
		max-width: $e-site-editor-conditions-rows-max-width;
	}

	&__row {
		display: flex;
		flex-grow: 1;
		margin-top: $e-site-editor-conditions-row-top-spacing;
	}

	&__remove-condition {
		color: $e-site-editor-conditions-remove-condition-color;
		font-size: $e-site-editor-conditions-remove-condition-font-size;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	&__row-controls {
		overflow: hidden;
		@include margin-end($e-site-editor-conditions-row-controls-spacing-end);
		background-color: var(--e-site-editor-conditions-row-controls-background);
		display: flex;
		width: 100%;
		box-shadow: $e-site-editor-conditions-row-controls-shadow;
		border-radius: $e-site-editor-conditions-row-controls-radius;

		&--error {
			border: $e-site-editor-conditions-row-controls-error-border;
		}
	}

	&__conflict {
		text-align: center;
		margin-top: $e-site-editor-conditions-conflict-top-spacing;
		color: $e-site-editor-conditions-conflict-color;
	}

	&__row-controls-inner {
		width: 100%;
		display: flex;

		div {
			flex: 1;
		}
	}

	&__add-button-container {
		text-align: center;
	}

	&__add-button {
		margin-top: $e-site-editor-add-button-margin-top;
		background-color: var(--e-site-editor-add-button-background-color);
		color: $e-site-editor-add-button-color;
		text-transform: uppercase;

		&:hover {
			background-color: var(--e-site-editor-add-button-color-hover-background-color);
			color: $e-site-editor-add-button-color-hover-color;
		}
	}

	&__footer {
		display: flex;
		justify-content: flex-end;
		position: absolute;
		bottom: 0;
		right: 0;
		left: 0;
		padding: $e-site-editor-save-button-container-spacing;
		border-top: 1px solid var(--hr-color);
	}

	&__input-wrapper {
		position: relative;
		@include border-start($e-site-editor-input-wrapper-border-width $e-site-editor-input-wrapper-border-style);
		border-color: var(--e-site-editor-input-wrapper-border-color);

		&:first-child {
			border: none;
		}

		select {
			appearance: none;
			-webkit-appearance: none;
			font-size: $e-site-editor-input-wrapper-select-font-size;
			height: $e-site-editor-input-wrapper-select-height;
			border-width: 0;
			padding: 0 $e-site-editor-input-wrapper-select-y-padding;
			width: 100%;
			position: relative;
			color: var(--e-site-editor-input-wrapper-select-color);
			outline: none;
			background: transparent;
		}

		&:after {
			font-family: eicons;
			content: '\e8ad';
			font-size: $e-site-editor-input-wrapper-select-arrow-font-size;
			pointer-events: none;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			@include end($e-site-editor-input-wrapper-select-arrow-margin-end);
		}

		.select2-container--default .select2-selection--single {
			border: none;
			line-height: $e-site-editor-input-wrapper-select-height;
		}

		.select2-container--default .select2-selection--single .select2-selection__rendered {
			line-height:  $e-site-editor-input-wrapper-select-height;
			font-size: $e-site-editor-input-wrapper-select-font-size;
		}

		.select2-selection {
			outline: none;
			background: transparent;
			height: $e-site-editor-input-wrapper-select-height;
		}

		.select2-selection__arrow {
			display: none;
		}
	}

	&__input-wrapper--condition-type {
		position: relative;

		&:before {
			font-family: eicons;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			@include start($e-site-editor-input-wrapper-condition-type-icon-start-spacing);
			font-size: $e-site-editor-input-wrapper-condition-type-icon-font-size;
			color: $e-site-editor-input-wrapper-condition-type-icon-color;
			pointer-events: none;
			z-index: $e-site-editor-input-wrapper-condition-type-icon-z-index;
		}

		&:after {
			color: $e-site-editor-input-wrapper-condition-type-arrow-color;
		}

		select {
			text-transform: uppercase;
			@include padding-start($e-site-editor-input-wrapper-condition-type-start-padding);
			width: $e-site-editor-input-wrapper-condition-type-width;
			font-size: $e-site-editor-input-wrapper-condition-type-font-size;
			color: $e-site-editor-input-wrapper-condition-type-color;
		}

		&[data-elementor-condition-type="include"] {
			&:before {
				content: '\e8cc';
			}

			select {
				background-color: var(--e-site-editor-input-wrapper-condition-include-background-color);
			}
		}

		&[data-elementor-condition-type="exclude"] {
			&:before {
				content: '\e8cd';
			}

			select {
				background-color: var(--e-site-editor-input-wrapper-condition-exclude-background-color);
			}
		}
	}
}

// This is a temporary fix that handles dark mode in select2.
// TODO: Remove it if already handled by the Select2 component.
.select2-search__field {
	background-color: transparent;
	color: var(--e-site-editor-input-select2-search-field-color);
}
PK!T@]��Icore/app/modules/site-editor/assets/js/pages/conditions/condition-type.jsnu�[���import { Select } from '@elementor/app-ui';

export default function ConditionType( props ) {
	const wrapperRef = React.createRef();

	const options = [
		{
			label: __( 'Include', 'elementor-pro' ),
			value: 'include',
		},
		{
			label: __( 'Exclude', 'elementor-pro' ),
			value: 'exclude',
		},
	];

	const onChange = ( e ) => {
		props.updateConditions( props.id, { type: e.target.value } );
	};

	React.useEffect( () => {
		wrapperRef.current.setAttribute( 'data-elementor-condition-type', props.type );
	} );

	return (
		<div className="e-site-editor-conditions__input-wrapper e-site-editor-conditions__input-wrapper--condition-type" ref={ wrapperRef }>
			<Select options={ options } value={ props.type } onChange={ onChange } />
		</div>
	);
}

ConditionType.propTypes = {
	updateConditions: PropTypes.func.isRequired,
	id: PropTypes.string.isRequired,
	type: PropTypes.string.isRequired,
};

ConditionType.defaultProps = {
	type: '',
};
PK!��)ooKcore/app/modules/site-editor/assets/js/pages/conditions/conditions-api.scssnu�[���$e-site-editor-conditions-header-image-button-spacing: spacing(44);
$e-site-editor-conditions-header-image-width: px-to-rem(70);

$e-site-editor-conditions-rows-max-width: px-to-rem(700);
$e-site-editor-conditions-rows-y-spacing: spacing(44);

$e-site-editor-conditions-row-top-spacing: spacing(12);

$e-site-editor-conditions-remove-condition-color: tints(400);
$e-site-editor-conditions-remove-condition-font-size: type(size, '18');

$e-site-editor-conditions-row-controls-spacing-end: spacing(10);
$e-site-editor-conditions-row-controls-background: theme-colors(light);
$e-site-editor-conditions-row-controls-dark-background: dark-tints(600);
$e-site-editor-conditions-row-controls-shadow: shadow('1');
$e-site-editor-conditions-row-controls-radius: $eps-radius;

$e-site-editor-conditions-row-controls-error-border: $eps-border-width $eps-border-style theme-colors(danger);

$e-site-editor-conditions-conflict-top-spacing: spacing(5);
$e-site-editor-conditions-conflict-color: theme-colors(danger);

$e-site-editor-add-button-margin-top: spacing(44);
$e-site-editor-add-button-background-color: tints(500);
$e-site-editor-add-button-background-dark-color: dark-tints(500);
$e-site-editor-add-button-color: theme-colors(light);
$e-site-editor-add-button-color-hover-background-color: tints(600);
$e-site-editor-add-button-color-hover-dark-background-color: dark-tints(600);
$e-site-editor-add-button-color-hover-color: theme-colors(light);

$e-site-editor-save-button-container-spacing: spacing(8);

$e-site-editor-input-wrapper-border-width: $eps-border-width;
$e-site-editor-input-wrapper-border-style: $eps-border-style;
$e-site-editor-input-wrapper-border-color: tints(200);
$e-site-editor-input-wrapper-border-dark-color: dark-tints(600);
$e-site-editor-input-wrapper-select-font-size: type(size, "12");
$e-site-editor-input-wrapper-select-height: px-to-rem(40);
$e-site-editor-input-wrapper-select-y-padding: spacing(10);
$e-site-editor-input-wrapper-select-color: tints(700);
$e-site-editor-input-wrapper-select-dark-color: dark-tints(200);
$e-site-editor-input-wrapper-select-arrow-font-size: type(size, "12");
$e-site-editor-input-wrapper-select-arrow-margin-end: spacing(10);

$e-site-editor-input-wrapper-condition-type-icon-start-spacing: spacing(12);
$e-site-editor-input-wrapper-condition-type-icon-font-size: type(size, "15");
$e-site-editor-input-wrapper-condition-type-icon-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-type-icon-z-index: z-index(dropdown);
$e-site-editor-input-wrapper-condition-type-arrow-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-type-start-padding: px-to-rem(34);
$e-site-editor-input-wrapper-condition-type-width: px-to-rem(120);
$e-site-editor-input-wrapper-condition-type-font-size: type(size, '12');
$e-site-editor-input-wrapper-condition-type-color: theme-colors(light);
$e-site-editor-input-wrapper-condition-include-background-color: tints(500);
$e-site-editor-input-wrapper-condition-include-background-dark-color: dark-tints(600);
$e-site-editor-input-wrapper-condition-exclude-background-color: tints(400);
$e-site-editor-input-wrapper-condition-exclude-background-dark-color: dark-tints(600);

$e-site-editor-input-select2-search-field-color: theme-elements-colors(text-base-color);
$e-site-editor-input-select2-search-field-dark-color: theme-colors(light);

:root {
	--e-site-editor-conditions-row-controls-background: #{$e-site-editor-conditions-row-controls-background};
	--e-site-editor-input-wrapper-border-color: #{$e-site-editor-input-wrapper-border-color};
	--e-site-editor-input-wrapper-select-color: #{$e-site-editor-input-wrapper-select-color};
	--e-site-editor-add-button-background-color: #{$e-site-editor-add-button-background-color};
	--e-site-editor-add-button-color-hover-background-color: #{$e-site-editor-add-button-color-hover-background-color};
	--e-site-editor-input-wrapper-condition-include-background-color:
	#{$e-site-editor-input-wrapper-condition-include-background-color};
	--e-site-editor-input-wrapper-condition-exclude-background-color:
	#{$e-site-editor-input-wrapper-condition-exclude-background-color};

	--e-site-editor-input-select2-search-field-color: #{$e-site-editor-input-select2-search-field-color}
}

.eps-theme-dark {
	--select2-selection-background-color: tints(600);
	--e-site-editor-conditions-row-controls-background: #{$e-site-editor-conditions-row-controls-dark-background};
	--e-site-editor-input-wrapper-border-color: #{$e-site-editor-input-wrapper-border-dark-color};
	--e-site-editor-input-wrapper-select-color: #{$e-site-editor-input-wrapper-select-dark-color};
	--e-site-editor-add-button-background-color: #{$e-site-editor-add-button-background-dark-color};
	--e-site-editor-add-button-color-hover-background-color: #{$e-site-editor-add-button-color-hover-dark-background-color};
	--e-site-editor-input-wrapper-condition-include-background-color:
			#{$e-site-editor-input-wrapper-condition-include-background-dark-color};
	--e-site-editor-input-wrapper-condition-exclude-background-color:
			#{$e-site-editor-input-wrapper-condition-exclude-background-dark-color};
	--e-site-editor-input-select2-search-field-color: #{$e-site-editor-input-select2-search-field-dark-color}

}
PK!>4:�__Jcore/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.jsnu�[���import { Context as ConditionsContext, ConditionsProvider } from '../../context/conditions';
import { Button, Dialog } from '@elementor/app-ui';
import ConditionType from './condition-type';
import ConditionName from './condition-name';
import ConditionSub from './condition-sub';
import ConditionSubId from './condition-sub-id';
import ConditionConflicts from './condition-conflicts';

export default function ConditionsRows( props ) {
	const {
		conditions,
		createConditionItemInState: create,
		updateConditionItemState: update,
		removeConditionItemInState: remove,
		saveConditions: save,
		action,
		resetActionState,
	} = React.useContext( ConditionsContext );

	const rows = Object.values( conditions ).map( ( condition ) =>
		<div key={ condition.id }>
			<div className="e-site-editor-conditions__row">
				<div
					className={ `e-site-editor-conditions__row-controls ${ condition.conflictErrors.length && 'e-site-editor-conditions__row-controls--error' }` }>
					<ConditionType { ...condition } updateConditions={ update }/>
					<div className="e-site-editor-conditions__row-controls-inner">
						<ConditionName { ...condition } updateConditions={ update }/>
						<ConditionSub { ...condition } updateConditions={ update }/>
						<ConditionSubId { ...condition } updateConditions={ update }/>
					</div>
				</div>
				<Button
					className="e-site-editor-conditions__remove-condition"
					text={ __( 'Delete', 'elementor-pro' ) }
					icon="eicon-close"
					hideText={ true }
					onClick={ () => remove( condition.id ) }
				/>
			</div>
			<ConditionConflicts conflicts={ condition.conflictErrors }/>
		</div>,
	);

	const isSaving = action.current === ConditionsProvider.actions.SAVE && action.loading;

	return (
		<>
			{
				action.error &&
				<Dialog
					text={ action.error }
					dismissButtonText={ __( 'Go Back', 'elementor-pro' ) }
					dismissButtonOnClick={ resetActionState }
					approveButtonText={ __( 'Learn More', 'elementor-pro' ) }
					approveButtonColor="link"
					approveButtonUrl="https://go.elementor.com/app-theme-builder-conditions-load-issue"
					approveButtonTarget="_target"
				/>
			}
			<div className="e-site-editor-conditions__rows">
				{ rows }
			</div>
			<div className="e-site-editor-conditions__add-button-container">
				<Button
					className="e-site-editor-conditions__add-button"
					variant="contained"
					size="lg"
					text={ __( 'Add Condition', 'elementor-pro' ) }
					onClick={ create }
				/>
			</div>
			<div className="e-site-editor-conditions__footer">
				<Button
					variant="contained"
					color="primary"
					size="lg"
					hideText={ isSaving }
					icon={ isSaving ? 'eicon-loading eicon-animation-spin' : '' }
					text={ __( 'Save & Close', 'elementor-pro' ) }
					onClick={ () => save().then( props.onAfterSave ) }
				/>
			</div>
		</>
	);
}

ConditionsRows.propTypes = {
	onAfterSave: PropTypes.func,
};
PK!���ddEcore/app/modules/site-editor/assets/js/pages/conditions/conditions.jsnu�[���import { Heading, Text } from '@elementor/app-ui';
import ConditionsProvider from '../../context/conditions';
import { Context as TemplatesContext } from '../../context/templates';
import ConditionsRows from './conditions-rows';

import './conditions.scss';
import BackButton from '../../molecules/back-button';

export default function Conditions( props ) {
	const { findTemplateItemInState, updateTemplateItemState } = React.useContext( TemplatesContext ),
		template = findTemplateItemInState( parseInt( props.id ) );

	if ( ! template ) {
		return <div>{ __( 'Not Found', 'elementor-pro' ) }</div>;
	}

	return (
		<section className="e-site-editor-conditions">
			<BackButton/>
			<div className="e-site-editor-conditions__header">
				<img
					className="e-site-editor-conditions__header-image"
					src={ `${ elementorAppProConfig.baseUrl }/modules/theme-builder/assets/images/conditions-tab.svg` }
					alt={ __( 'Import template', 'elementor-pro' ) }
				/>
				<Heading variant="h1" tag="h1">
					{ __( 'Where Do You Want to Display Your Template?', 'elementor-pro' ) }
				</Heading>
				<Text variant="p">
					{ __( 'Set the conditions that determine where your template is used throughout your site.', 'elementor-pro' ) }
					<br/>
					{ __( 'For example, choose \'Entire Site\' to display the template across your site.', 'elementor-pro' ) }
				</Text>
			</div>
			<ConditionsProvider currentTemplate={ template } onConditionsSaved={ updateTemplateItemState }>
				<ConditionsRows onAfterSave={() => history.back()} />
			</ConditionsProvider>
		</section>
	);
}

Conditions.propTypes = {
	id: PropTypes.string,
};
PK!z�F��Ncore/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.jsnu�[���import { Button, Text } from '@elementor/app-ui';

export default function ConditionConflicts( props ) {
	if ( ! props.conflicts.length ) {
		return '';
	}

	const conflictLinks = props.conflicts.map( ( conflict ) => {
		return (
			<Button
				key={ conflict.template_id }
				target="_blank"
				url={ conflict.edit_url }
				text={ conflict.template_title }
			/>
		);
	} );

	return (
		<Text className="e-site-editor-conditions__conflict" variant="sm">
			{ __( 'Elementor recognized that you have set this location for other templates: ', 'elementor-pro' ) } { conflictLinks }
		</Text>
	);
}

ConditionConflicts.propTypes = {
	conflicts: PropTypes.array.isRequired,
};
PK!N�@�
�
6core/app/modules/site-editor/assets/js/pages/import.jsnu�[���import { DropZone, Dialog } from '@elementor/app-ui';
import { Context as TemplatesContext, TemplatesProvider } from '../context/templates';
import BackButton from '../molecules/back-button';

export default function Import() {
	const { importTemplates, action, resetActionState } = React.useContext( TemplatesContext ),
		[ importedTemplate, setImportedTemplate ] = React.useState( null ),
		isImport = React.useMemo( () => action.current === TemplatesProvider.actions.IMPORT, [ action ] ),
		isUploading = React.useMemo( () => isImport && action.loading, [ action ] ),
		hasError = React.useMemo( () => isImport && action.error, [ action ] );

	const upload = React.useCallback( ( file ) => {
		if ( isUploading ) {
			return;
		}

		readFile( file )
			.then( ( fileData ) => importTemplates( { fileName: file.name, fileData } ) )
			.then( ( response ) => {
				// For now it show a dialog for the first template ONLY!
				setImportedTemplate( response.data[ 0 ] );
			} );
	}, [] );

	return (
		<section className="site-editor__import">
			{
				importedTemplate &&
					<Dialog
						title={ __( 'Your template was imported', 'elementor-pro' ) }
						approveButtonText={ __( 'Preview', 'elementor-pro' ) }
						approveButtonUrl={ importedTemplate.url }
						approveButtonTarget="_blank"
						dismissButtonText={ __( 'Edit', 'elementor-pro' ) }
						dismissButtonUrl={ importedTemplate.editURL }
						dismissButtonTarget="_top"
						onClose={ () => setImportedTemplate( null ) }
					/>
			}
			{
				hasError &&
					<Dialog
						title={ action.error }
						approveButtonText={ __( 'Learn More', 'elementor-pro' ) }
						approveButtonUrl="https://go.elementor.com/app-theme-builder-import-issue"
						approveButtonTarget="_blank"
						approveButtonColor="link"
						dismissButtonText={ __( 'Go Back', 'elementor-pro' ) }
						dismissButtonOnClick={ resetActionState }
						onClose={ resetActionState }
					/>
			}
			<BackButton/>
			<DropZone
				heading={ __( 'Import Template To Your Library', 'elementor-pro' ) }
				text={ __( 'Drag & Drop your .JSON or .zip template file', 'elementor-pro' ) }
				secondaryText={ __( 'or', 'elementor-pro' ) }
				onFileSelect={ upload }
				isLoading={ isUploading }
				filetypes={ [ 'zip', 'json' ] }
			/>
		</section>
	);
}

function readFile( file ) {
	return new Promise( ( ( resolve ) => {
		const fileReader = new FileReader();

		fileReader.readAsDataURL( file );

		fileReader.onload = ( event ) => {
			// Replace the mime type that prepended to the base64 with empty string and return a
			// resolved promise only with the base64 string.
			resolve( event.target.result.replace( /^[^,]+,/, '' ) );
		};
	} ) );
}
PK!F;�U��9core/app/modules/site-editor/assets/js/pages/add-new.scssnu�[���.eps-add-new__overlay {
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 1;
	--card-image-overlay-background-color: transparent;
}
PK!s�ţ227core/app/modules/site-editor/assets/js/pages/add-new.jsnu�[���import { AddNewButton, Heading } from '@elementor/app-ui';
import { SiteParts } from '@elementor/site-editor';
import './add-new.scss';
import { Context as TemplatesContext } from '../context/templates';
import BackButton from '../molecules/back-button';

export default function AddNew() {
	const { templates } = React.useContext( TemplatesContext ),
		hasTemplates = 1 <= Object.keys( templates ).length;

	/**
	 * An hover element for each site part.
	 *
	 * @param {any} props
	 */
	const HoverElement = ( props ) => {
		return (
			<a href={ props.urls.create } className="eps-card__image-overlay eps-add-new__overlay">
				<AddNewButton hideText={true}/>
			</a>
		);
	};

	HoverElement.propTypes = {
		urls: PropTypes.object.isRequired,
	};

	return (
		<section className="e-site-editor__add-new">
			<header className="e-site-editor__header">
				{ hasTemplates && <BackButton/> }
				<Heading variant="h1">{__( 'Start customizing every part of your site', 'elementor-pro' )}</Heading>
			</header>
			<SiteParts hoverElement={ HoverElement } />
		</section>
	);
}
PK!�.��?core/app/modules/site-editor/assets/js/pages/template-type.scssnu�[���.e-site-editor__templates {
	.page-header {
		margin-bottom: spacing(10)
	}

	.eps-separator {
		margin-bottom: spacing(44);
	}
}
PK!�S�l��9core/app/modules/site-editor/assets/js/pages/templates.jsnu�[���import SiteTemplates from '../organisms/site-templates';
import { AddNewButton, Grid } from '@elementor/app-ui';

export default function Templates() {
	return (
		<section className="e-site-editor__site-templates">
			<Grid container justify="space-between" className="page-header">
				<h1>{ __( 'Your Site\'s Global Parts', 'elementor-pro' ) }</h1>
				<AddNewButton url="/site-editor/add-new"/>
			</Grid>
			<hr className="eps-separator"/>
			<SiteTemplates />
		</section>
	);
}
PK!��y�=core/app/modules/site-editor/assets/js/pages/template-type.jsnu�[���import { TemplateTypesContext } from '@elementor/site-editor';
import { AddNewButton, Grid, Heading, NotFound } from '@elementor/app-ui';
import SiteTemplates from '../organisms/site-templates';

import './template-type.scss';

export default function TemplateType( props ) {
	const { templateTypes } = React.useContext( TemplateTypesContext ),
		currentType = templateTypes.find( ( item ) => item.type === props.type );

	if ( ! currentType ) {
		return <NotFound />;
	}

	return (
		<section className={`e-site-editor__templates e-site-editor__templates--type-${ props.type }`}>
			<Grid className="page-header" container justify="space-between">
				<Heading variant="h1">{ currentType.page_title }</Heading>
				<AddNewButton url={ currentType.urls.create } text={ __( 'Add New', 'elementor-pro' ) } />
			</Grid>
			<hr className="eps-separator"/>
			<SiteTemplates type={ currentType.type } id={props.id} />
		</section>
	);
}

TemplateType.propTypes = {
	type: PropTypes.string,
	page_title: PropTypes.string,
	id: PropTypes.string,
};
PK!�űM�
�
5core/app/modules/site-editor/assets/js/site-editor.jsnu�[���import { Router, LocationProvider, Redirect } from '@reach/router';
import Templates from './pages/templates';
import TemplateType from './pages/template-type';
import AddNew from './pages/add-new';
import Conditions from './pages/conditions/conditions';
import Import from './pages/import';
import TemplatesProvider, { Context as TemplatesContext } from './context/templates';
import { Layout, AllPartsButton, NotFound } from '@elementor/site-editor';
import { ErrorBoundary, Grid, Button } from '@elementor/app-ui';
import router from '@elementor/router';
import Component from './data/component';

import './site-editor.scss';

function SiteEditor() {
	const headerButtons = [
		{
			id: 'import',
			text: __( 'import', 'elementor-pro' ),
			hideText: true,
			icon: 'eicon-download-circle-o',
			onClick: () => router.appHistory.navigate( 'site-editor/import' ),
		},
	];

	// Remove Core cache.
	elementorCommon.ajax.invalidateCache( {
		unique_id: 'app_site_editor_template_types',
	} );

	const SiteEditorDefault = () => {
		const { templates } = React.useContext( TemplatesContext );

		if ( Object.keys( templates ).length ) {
			return <Redirect from={'/'} to={'/site-editor/templates'} noThrow={ true }/>;
		}

		return <Redirect from={'/'} to={'/site-editor/add-new'} noThrow={ true } />;
	};

	return (
		<ErrorBoundary
			title={__( 'Theme Builder could not be loaded', 'elementor-pro' )}
			learnMoreUrl="https://go.elementor.com/app-theme-builder-load-issue"
		>
			<Layout allPartsButton={ <AllPartsButton url="/site-editor" /> } headerButtons={ headerButtons }>
				<Grid container className="e-site-editor__content_container">
					<Grid item className="e-site-editor__content_container_main">
						<TemplatesProvider>
							<LocationProvider history={ router.appHistory }>
								<Router>
									<SiteEditorDefault path="/site-editor" />
									<Templates path="site-editor/templates" />
									<TemplateType path="site-editor/templates/:type/*id" />
									<AddNew path="site-editor/add-new" />
									<Conditions path="site-editor/conditions/:id" />
									<Import path="site-editor/import" />
									<NotFound default />
								</Router>
							</LocationProvider>
						</TemplatesProvider>
					</Grid>
					<Grid item className="e-site-editor__content_container_secondary">
						<Button
							text={ __( 'Switch to table view', 'elementor-pro' )}
							url={elementorAppProConfig[ 'site-editor' ]?.urls?.legacy_view}
						/>
					</Grid>
				</Grid>
			</Layout>
		</ErrorBoundary>
	);
}

export default class Module {
	constructor() {
		elementorCommon.debug.addURLToWatch( 'elementor-pro/assets' );

		$e.components.register( new Component() );

		router.addRoute( {
			path: '/site-editor/*',
			component: SiteEditor,
		} );
	}
}
PK!�8�ڙ�Acore/app/modules/site-editor/assets/js/molecules/site-template.jsnu�[���import { Card } from '@elementor/app-ui';
import { SiteTemplateHeader } from './site-template-header';
import { SiteTemplateBody } from './site-template-body';
import { SiteTemplateFooter } from './site-template-footer';

import './site-template.scss';

export default function SiteTemplate( props ) {
	const baseClassName = 'e-site-template',
		classes = [ baseClassName ],
		ref = React.useRef( null );

	React.useEffect( () => {
		if ( ! props.isSelected ) {
			return;
		}

		ref.current.scrollIntoView( {
			behavior: 'smooth',
			block: 'start',
		} );
	}, [ props.isSelected ] );

	if ( props.extended ) {
		classes.push( `${ baseClassName }--extended` );
	}

	if ( props.aspectRatio ) {
		classes.push( `${ baseClassName }--${ props.aspectRatio }` );
	}

	const CardFooter = props.extended ? <SiteTemplateFooter { ...props }/> : '';

	return (
		<Card className={ classes.join( ' ' ) } ref={ ref }>
			<SiteTemplateHeader { ... props }/>
			<SiteTemplateBody { ... props }/>
			{ CardFooter }
		</Card>
	);
}

SiteTemplate.propTypes = {
	aspectRatio: PropTypes.string,
	className: PropTypes.string,
	extended: PropTypes.bool,
	id: PropTypes.number.isRequired,
	isActive: PropTypes.bool.isRequired,
	status: PropTypes.string,
	thumbnail: PropTypes.string.isRequired,
	title: PropTypes.string.isRequired,
	isSelected: PropTypes.bool,
	type: PropTypes.string.isRequired,
};

SiteTemplate.defaultProps = {
	isSelected: false,
};
PK!���Kcore/app/modules/site-editor/assets/js/molecules/site-template-thumbnail.jsnu�[���import { Button, CardImage, CardOverlay } from '@elementor/app-ui';

export default function SiteTemplateThumbnail( props ) {
	return (
		<CardImage
			alt={ props.title }
			src={ props.thumbnail || props.placeholder }
			className={ ! props.thumbnail ? 'e-site-template__placeholder' : '' }
		>
			<CardOverlay className="e-site-template__overlay-preview">
				<Button
					className="e-site-template__overlay-preview-button"
					text={ __( 'Preview', 'elementor-pro' ) }
					icon="eicon-preview-medium"
					url={ `/site-editor/templates/${ props.type }/${ props.id }` }
				/>
			</CardOverlay>
		</CardImage>
	);
}

SiteTemplateThumbnail.propTypes = {
	id: PropTypes.number,
	title: PropTypes.string,
	type: PropTypes.string,
	thumbnail: PropTypes.string,
	placeholder: PropTypes.string,
};
PK!&����Acore/app/modules/site-editor/assets/js/molecules/back-button.scssnu�[���.#{$eps-prefix}back-button {
	font-size: 14px;
	margin-bottom: spacing(24);

	.#{$eps-prefix}icon {
		transform: getValueByDirection(rotate(0deg), rotate(180deg));
	}
}
PK!H.$�Hcore/app/modules/site-editor/assets/js/molecules/site-template-footer.jsnu�[���import { Button, CardFooter, Icon, Text } from '@elementor/app-ui';

export const SiteTemplateFooter = ( props ) => {
	const instances = Object.values( props.instances ).join( ', ' );

	return (
		<CardFooter>
			<div className="e-site-template__instances">
				<Icon className="eicon-flow"/>
				<Text tag="span" variant="sm"><b>{ __( 'Instances', 'elementor-pro' ) }:</b></Text>
				<Text className="e-site-template__instances-list" tag="span" variant="xxs"> { instances }</Text>
				<Button text={ __( 'Edit Conditions', 'elementor-pro' ) }
						className="e-site-template__edit-conditions"
						url={ `/site-editor/conditions/${ props.id }` } />
			</div>
		</CardFooter>
	);
};

SiteTemplateFooter.propTypes = {
	id: PropTypes.number.isRequired,
	instances: PropTypes.any,
};
PK!����Ccore/app/modules/site-editor/assets/js/molecules/site-template.scssnu�[���$eps-meta-icon-color: tints(400);
$eps-meta-icon-dark-color: dark-tints(200);
$preview-button-height: spacing(30);
$image-aspect-ratio: var(--card-image-aspect-ratio, #{$ratio-portrait});
$overlay-preview-padding-top: calc(#{$image-aspect-ratio} - #{$preview-button-height});
$aspect-ratio-wide: calc(100% * 0.1235);

:root {
	--eps-meta-icon-color: #{$eps-meta-icon-color};
}

.eps-theme-dark {
	--eps-meta-icon-color: #{$eps-meta-icon-dark-color};
}

.e-site-template {
	&__meta-data {
		margin-inline-start: spacing(10);
		@include text-truncate();
		font-size: type(text, xxs);

		&:last-of-type {
			margin-inline-end: auto;
		}

		&:first-of-type {
			margin-inline-start: spacing(16);
		}

		.#{$eps-prefix}icon {
			margin-inline-end: spacing(5);
			color: var(--eps-meta-icon-color);
			font-size: type(text, sm);
		}
	}

	&__placeholder {
		.#{$eps-prefix}card__image {
			filter: var(--placeholder-filter, none);
		}
	}

	&__overlay-preview {
		padding-top: $overlay-preview-padding-top;
		position: relative;

		&-button {
			font-weight: bold;
			display: flex;
			flex-wrap: wrap;
			height: $preview-button-height;
			width: 100%;
			background-color: var(--card-background-color-hover);
			justify-content: center;
			align-items: center;
			padding-top: spacing(10);
			line-height: spacing(20);
			--button-background-color: var(--card-headline-color);

			&::before {
				content: '';
				position: absolute;
				display: block;
				width: 100%;
				top: 0;
				left: 0;
				padding-top: $overlay-preview-padding-top;
			}

			& > :not(:first-child) {
				margin-inline-start: spacing(5);
			}
		}
	}

	&__edit-btn {
		margin-inline-end: spacing(20);

		.#{$eps-prefix}icon {
			margin-inline-end: spacing(5);
		}
	}

	&__instances {
		.#{$eps-prefix}icon {
			margin-inline-end: spacing(5);
			color: var(--eps-meta-icon-color);
			font-size: type(text, sm)
		}

		&-list {
			@include text-truncate();
		}
	}

	&__edit-conditions {
		margin-inline-start: spacing(16);
		color: theme-elements-colors(link-color);
		text-decoration: underline;
		font-style: italic;
	}

	&--extended {
		.#{$eps-prefix}card {
			&__figure {
				overflow: auto;
			}

			&__headline {
				flex-grow: 0;
			}
		}
	}

	&--wide {
		--card-image-aspect-ratio: #{$aspect-ratio-wide};
	}
}
PK!��?Fcore/app/modules/site-editor/assets/js/molecules/site-template-body.jsnu�[���import { CardBody } from '@elementor/app-ui';
import SiteTemplateThumbnail from './site-template-thumbnail';
import PreviewIFrame from '../atoms/preview-iframe';

export const SiteTemplateBody = ( props ) => {
	return (
		<CardBody>
			{
				props.extended
					? <PreviewIFrame src={ props.previewUrl } templateType={ props.type }/>
					: <SiteTemplateThumbnail
						id={props.id}
						title={props.title}
						type={props.type}
						thumbnail={props.thumbnail}
						placeholder={props.placeholderUrl}
					/>
			}
		</CardBody>
	);
};

SiteTemplateBody.propTypes = {
	extended: PropTypes.bool,
	id: PropTypes.number,
	title: PropTypes.string,
	thumbnail: PropTypes.string,
	placeholderUrl: PropTypes.string,
	type: PropTypes.string,
	previewUrl: PropTypes.string,
};
PK!K1��?core/app/modules/site-editor/assets/js/molecules/back-button.jsnu�[���import { Button } from '@elementor/app-ui';

import './back-button.scss';

export default function BackButton( props ) {
	return (
		<div className="back-button-wrapper">
			<Button
				className="eps-back-button"
				text={ __( 'Back', 'elementor-pro' ) }
				icon="eicon-chevron-left"
				onClick={ props.onClick }
			/>
		</div>
	);
}

BackButton.propTypes = {
	onClick: PropTypes.func,
};

BackButton.defaultProps = {
	onClick: () => history.back(),
};
PK!;�+���Hcore/app/modules/site-editor/assets/js/molecules/site-template-header.jsnu�[���import { Button, CardHeader, Heading, Icon, Text } from '@elementor/app-ui';
import PartActionsButtons from '../part-actions/dialogs-and-buttons';
import { Indicator } from '../atoms/indicator-bullet';

export const SiteTemplateHeader = ( props ) => {
	const status = props.status && 'publish' !== props.status ? ` (${ props.status })` : '',
		title = props.title + status,
		ActionButtons = () => (
			<>
				<Button text={__( 'Edit', 'elementor-pro' )} icon="eicon-edit" className="e-site-template__edit-btn" size="sm" url={ props.editURL } />
				<PartActionsButtons { ... props } />
			</>
		),
		MetaDataIcon = ( innerProps ) => (
			<Text tag="span" className="e-site-template__meta-data">
				<Icon className={ innerProps.icon } />
				{ innerProps.content }
			</Text>
		),
		MetaData = () => (
			<>
				<MetaDataIcon icon="eicon-user-circle-o" content={ props.author } />
				<MetaDataIcon icon="eicon-clock-o" content={ props.modifiedDate } />
			</>
		);

	return (
		<CardHeader>
			<Indicator active={ props.isActive }/>
			<Heading tag="h1" title={ title } variant="text-sm" className="eps-card__headline">{ title }</Heading>
			{ props.extended && <MetaData/> }
			{ props.extended && <ActionButtons/> }
		</CardHeader>
	);
};

SiteTemplateHeader.propTypes = {
	isActive: PropTypes.bool,
	author: PropTypes.string,
	editURL: PropTypes.string,
	extended: PropTypes.bool,
	modifiedDate: PropTypes.string,
	status: PropTypes.string,
	title: PropTypes.string,
};
PK!G&Yuu>core/app/modules/site-editor/assets/js/atoms/preview-iframe.jsnu�[���import './preview-iframe.scss';

export default function PreviewIFrame( props ) {
	const ref = React.useRef( null ),
		previewBreakpoint = 1200,
		[ scale, setScale ] = React.useState( 1 ),
		[ height, setHeight ] = React.useState( 0 );

	// In order to make sure that the iframe itself show the content in specific viewport,
	// and it should fit to the size of the card, there is a use of css props `scale` and `height`,
	// and another element that wraps the iframe to be the guidelines of the iframe sizes.
	React.useEffect( () => {
		const currentScale = ref.current.clientWidth / previewBreakpoint;

		setScale( currentScale );
		setHeight( ref.current.clientHeight / currentScale );
	}, [] );

	return (
		<div
			ref={ ref }
			className={ `site-editor__preview-iframe site-editor__preview-iframe--${ props.templateType }` }
		>
			<iframe
				src={ props.src }
				className={ `site-editor__preview-iframe__iframe` }
				style={ { transform: `scale(${ scale })`, height, width: previewBreakpoint } }
			/>
		</div>
	);
}

PreviewIFrame.propTypes = {
	src: PropTypes.string.isRequired,
	templateType: PropTypes.string.isRequired,
};
PK!�W*xHHBcore/app/modules/site-editor/assets/js/atoms/indicator-bullet.scssnu�[���$eps-indicator-bullet-border-color: theme-colors(light);
$eps-indicator-bullet-dark-border-color: dark-tints(500);

:root {
	--indicator-bullet-border-color: #{$eps-indicator-bullet-border-color};
}

.eps-theme-dark {
	--indicator-bullet-border-color: #{$eps-indicator-bullet-dark-border-color};
}

$eps-indicator-bullet-size: spacing(16) * 0.75;
$eps-indicator-bullet-color: tints(300);
$eps-indicator-bullet-color-active: theme-colors(success);
$eps-indicator-bullet-box-shadow: $eps-box-shadow-1;
$eps-indicator-bullet-radius: 100%;
$eps-indicator-bullet-border: 2px solid var(--indicator-bullet-border-color);
$eps-indicator-bullet-spacing: spacing(10);

.eps-indicator-bullet {
	display: block;
	flex-shrink: 0;
	width: $eps-indicator-bullet-size;
	height: $eps-indicator-bullet-size;
	box-shadow: $eps-indicator-bullet-box-shadow;
	background-color: $eps-indicator-bullet-color;
	border: $eps-indicator-bullet-border;
	border-radius: $eps-indicator-bullet-radius;
	margin-inline-end: $eps-indicator-bullet-spacing;

	&--active {
		background-color: $eps-indicator-bullet-color-active;
	}
}
PK![����@core/app/modules/site-editor/assets/js/atoms/preview-iframe.scssnu�[���.site-editor__preview-iframe {
	height: 50vh;
	position: relative;

	&__iframe {
		top: 0;
		left: 0;
		position: absolute;
		border: none;
		transform-origin: 0 0;
		height: 100%;
	}

	&--header, &--footer{
		height: 15vh;
	}
}
PK!�,��@core/app/modules/site-editor/assets/js/atoms/indicator-bullet.jsnu�[���import './indicator-bullet.scss';

export const Indicator = ( props ) => {
	let className = 'eps-indicator-bullet';

	if ( props.active ) {
		className += ` ${ className }--active`;
	}

	return <i className={ className }/>;
};

Indicator.propTypes = {
	active: PropTypes.bool,
};
PK!/[j��7core/app/modules/site-editor/assets/js/site-editor.scssnu�[���.e-site-editor__content_container {
	flex-direction: column;
	min-height: 100%;
	flex-wrap: nowrap;
}

.e-site-editor__content_container_main {
	flex: 1;
}

.e-site-editor__content_container_secondary {
	margin: 0 auto;
	padding-top: spacing(44);
}
PK!�簪�0core/app/modules/site-editor/assets/js/editor.jsnu�[���import Component from './data/component';
import { Templates } from './data/commands';

export default class Module extends elementorModules.editor.utils.Module {
	onElementorInit() {
		const config = elementor.documents.getCurrent().config;

		if ( config.support_site_editor ) {
			$e.components.register( new Component() );

			$e.data.deleteCache( $e.components.get( Component.namespace ), Templates.signature );
		}
	}
}
PK!��CFBBCcore/app/modules/site-editor/data/responses/lock-error-response.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Responses;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Lock_Error_Response extends \WP_Error {
	public function __construct( $user_id ) {
		$user = get_user_by( 'ID', $user_id );

		parent::__construct(
			'post_lock',
			sprintf(
				__( '%s is currently editing this template, please try again later', 'elementor-pro' ),
				$user->display_name
			),
			[
				'status' => 403,
				'locked_by_user_id' => $user_id,
				'locked_by_user_name' => $user->display_name,
			]
		);
	}
}
PK!��~Acore/app/modules/site-editor/data/endpoints/conditions-config.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilderModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Conditions_Config extends Base_Endpoint {
	/**
	 * @return string
	 */
	public function get_name() {
		return 'conditions-config';
	}

	public function get_items( $request ) {
		$conditions_manager = ThemeBuilderModule::instance()->get_conditions_manager();

		return $conditions_manager->get_conditions_config();
	}
}
PK!�P�EE>core/app/modules/site-editor/data/endpoints/template-types.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use ElementorPro\Plugin;
use ElementorPro\Core\App\Modules\SiteEditor\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Template_Types extends Base_Endpoint {
	/**
	 * @return string
	 */
	public function get_name() {
		return 'template-types';
	}

	public function get_items( $request ) {
		/** @var Module $site_editor_module */
		$site_editor_module = Plugin::instance()->app->get_component( 'site-editor' );

		return $site_editor_module->get_template_types();
	}
}
PK!�5.���=core/app/modules/site-editor/data/endpoints/base-endpoint.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use Elementor\Data\Base\Endpoint;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

abstract class Base_Endpoint extends Endpoint {
	/**
	 * Check if post is lock.
	 *
	 * @param $post_id
	 *
	 * @return bool|false|int
	 */
	protected function is_post_lock( $post_id ) {
		require_once ABSPATH . 'wp-admin/includes/post.php';

		return wp_check_post_lock( $post_id );
	}
}
PK!����9core/app/modules/site-editor/data/endpoints/templates.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use ElementorPro\Plugin;
use Elementor\Core\Utils\Exceptions;
use Elementor\TemplateLibrary\Manager as TemplateManager;
use ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document;
use ElementorPro\Modules\ThemeBuilder\Classes\Conditions_Manager;
use ElementorPro\Modules\ThemeBuilder\Module as ThemeBuilderModule;
use ElementorPro\Modules\ThemeBuilder\Classes\Templates_Types_Manager;
use ElementorPro\Core\App\Modules\SiteEditor\Render_Mode_Template_Preview;
use ElementorPro\Core\App\Modules\SiteEditor\Data\Responses\Lock_Error_Response;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Templates extends Base_Endpoint {

	/**
	 * @var TemplateManager
	 */
	private $templates_manager;

	/**
	 * @var array
	 */
	private $document_types;

	public function __construct( $controller ) {
		parent::__construct( $controller );

		$this->templates_manager = Plugin::elementor()->templates_manager;
	}

	/**
	 * @return string
	 */
	public function get_name() {
		return 'templates';
	}

	protected function register() {
		parent::register();

		$this->register_item_route( \WP_REST_Server::DELETABLE );
		$this->register_item_route( \WP_REST_Server::EDITABLE );
		$this->register_items_route( \WP_REST_Server::CREATABLE );
	}

	public function get_items( $request ) {
		$templates = $this->templates_manager->get_source( 'local' )->get_items( [
			'type' => array_keys( $this->get_documents_types() ),
			'post_status' => 'any',
			'orderby' => 'post_date',
			'order' => 'DESC',
		] );

		return $this->normalize_templates_json( $templates );
	}

	public function create_items( $request ) {
		$response = $this->templates_manager->import_template( $request->get_body_params() );

		if ( is_wp_error( $response ) ) {
			return new \WP_Error( 'file', $response->get_error_message(), [ 'status' => Exceptions::BAD_REQUEST ] );
		}

		return $this->normalize_templates_json( $response );
	}

	public function update_item( $id, $request ) {
		$lock_by_user_id = $this->is_post_lock( $id );

		if ( $lock_by_user_id ) {
			return new Lock_Error_Response( $lock_by_user_id );
		}

		wp_update_post( array_merge( [
			'ID' => $id,
		], $request->get_body_params() ) );

		return $this->normalize_template_json_item(
			$this->templates_manager->get_source( 'local' )->get_item( $id )
		);
	}

	public function delete_item( $id, $request ) {
		$lock_by_user_id = $this->is_post_lock( $id );

		if ( $lock_by_user_id ) {
			return new Lock_Error_Response( $lock_by_user_id );
		}

		return ! ! wp_trash_post( $id );
	}

	/**
	 * @return array
	 */
	private function get_documents_types() {
		if ( ! $this->document_types ) {
			/** @var Templates_Types_Manager $types_manager */
			$types_manager = ThemeBuilderModule::instance()->get_types_manager();

			$this->document_types = $types_manager->get_types_config( [
				'support_site_editor' => true,
			] );
		}

		return $this->document_types;
	}

	/**
	 * @param $templates
	 *
	 * @return array
	 */
	private function normalize_templates_json( $templates ) {
		return array_map( [ $this, 'normalize_template_json_item' ], $templates );
	}

	/**
	 * @param $template
	 *
	 * @return array
	 */
	private function normalize_template_json_item( $template ) {
		/** @var Conditions_Manager $conditions_manager */
		$conditions_manager = Plugin::instance()->modules_manager->get_modules( 'theme-builder' )->get_conditions_manager();

		/** @var Theme_Document $document */
		$document = Plugin::elementor()->documents->get( $template['template_id'] );

		$supports_site_editor = $document::get_property( 'support_site_editor' );

		// Supports also a non site editor parts.
		if ( ! $supports_site_editor ) {
			return [
				'id' => $template['template_id'],
				'url' => $template['url'],
				'editURL' => $document->get_edit_url(),
				'supportsSiteEditor' => false,
			];
		}

		$types = $this->get_documents_types();

		$template['instances'] = $conditions_manager->get_document_instances( $template['template_id'] );
		$template['defaultCondition'] = $types[ $template['type'] ]['condition_type'];

		$has_instances = ! empty( $template['instances'] );
		$is_active = false;

		if ( ! $has_instances ) {
			$template['instances'] = [ 'no_instances' => esc_html__( 'No instances', 'elementor-pro' ) ];
		} else {
			$is_active = 'publish' === $template['status'];
		}

		if ( ! $template['thumbnail'] ) {
			$template['thumbnail'] = '';
		}

		$site_editor_config = $document->get_site_editor_config();

		$data = array_merge( $template, [
			'id' => $template['template_id'],
			'exportLink' => $template['export_link'],
			'modifiedDate' => $template['human_modified_date'],
			'editURL' => $document->get_edit_url(),
			'conditions' => array_map( function ( $condition ) {
				return array_merge( $condition, [
					'sub' => $condition['sub_name'],
					'subId' => $condition['sub_id'],
				] );
			}, $conditions_manager->get_document_conditions( $document ) ),
			'isActive' => $is_active,
			'type' => $this->calculate_template_type( $template['type'], $template['instances'] ),
			'previewUrl' => $this->get_preview_url( $template['template_id'] ),
			'placeholderUrl' => $site_editor_config['urls']['thumbnail'],
			'pageLayout' => $site_editor_config['page_layout'],
			'supportsSiteEditor' => true,
		] );

		return apply_filters( 'elementor-pro/site-editor/data/template', $data );
	}

	/**
	 * @param $type
	 * @param $instances
	 *
	 * @return string
	 */
	private function calculate_template_type( $type, $instances ) {
		$condition_to_type_map = [
			'front_page' => 'single-page',
			'child_of' => 'single-page',
			'page' => 'single-page',
			'not_found404' => 'error-404',
			'search' => 'search-results',
		];

		// "single" type was split into "single-page", "single-post" and "404".
		// this section supports all the old templates that was created as "single".
		if ( 'single' === $type ) {
			// By default show it under single-post.
			$type = 'single-post';

			foreach ( $instances as $condition_name => $condition_label ) {
				if ( isset( $condition_to_type_map[ $condition_name ] ) ) {
					$type = $condition_to_type_map[ $condition_name ];
					break;
				}
			}
		}

		return $type;
	}

	private function get_preview_url( $post_id ) {
		return Render_Mode_Template_Preview::get_url( $post_id );
	}
}
PK!Vћ��Dcore/app/modules/site-editor/data/endpoints/templates-conditions.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use ElementorPro\Plugin;
use Elementor\Core\Utils\Exceptions;
use ElementorPro\Modules\ThemeBuilder\Module;
use ElementorPro\Core\App\Modules\SiteEditor\Data\Responses\Lock_Error_Response;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Templates_Conditions extends Base_Endpoint {
	/**
	 * @return string
	 */
	public function get_name() {
		return 'templates-conditions';
	}

	protected function register() {
		$this->register_item_route();
		$this->register_item_route( \WP_REST_Server::EDITABLE );
	}

	public function get_item( $template_id, $request ) {
		return $this->get_conditions( $template_id );
	}

	public function update_item( $template_id, $request ) {
		$lock_by_user_id = $this->is_post_lock( $template_id );

		if ( $lock_by_user_id ) {
			return new Lock_Error_Response( $lock_by_user_id );
		}

		$data = $request->get_body_params();

		if ( ! isset( $data['conditions'] ) ) {
			$data['conditions'] = [];
		}

		$is_saved = $this->save_conditions( $template_id, $data['conditions'] );

		if ( ! $is_saved ) {
			return new \WP_Error(
				'conditions',
				__( 'Error while saving conditions.', 'elementor-pro' ),
				[ 'status' => Exceptions::INTERNAL_SERVER_ERROR ]
			);
		}

		return true;
	}

	protected function get_conditions( $post_id ) {
		$document = \Elementor\Plugin::$instance->documents->get( $post_id );

		/** @var Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		return $theme_builder
			->get_conditions_manager()
			->get_document_conditions( $document );
	}

	protected function save_conditions( $post_id, $conditions ) {
		/** @var Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		$is_saved = $theme_builder
			->get_conditions_manager()
			->save_conditions( $post_id, $conditions );

		if ( ! $is_saved ) {
			return new \WP_Error(
				'conditions_save',
				__( 'Cannot save those conditions.', 'elementor-pro' ),
				[ 'status' => Exceptions::INTERNAL_SERVER_ERROR ]
			);
		}

		return true;
	}
}
PK!"{���Ncore/app/modules/site-editor/data/endpoints/templates-conditions-conflicts.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data\Endpoints;

use ElementorPro\Plugin;
use ElementorPro\Modules\ThemeBuilder\Module;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Templates_Conditions_Conflicts extends Base_Endpoint {
	/**
	 * @return string
	 */
	public function get_name() {
		return 'templates-conditions-conflicts';
	}

	public function get_items( $request ) {
		/** @var Module $theme_builder */
		$theme_builder = Plugin::instance()->modules_manager->get_modules( 'theme-builder' );

		return $theme_builder
			->get_conditions_manager()
			->get_conditions_conflicts( intval( $request['post_id'] ), $request['condition'] );
	}
}
PK!�s�g0core/app/modules/site-editor/data/controller.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\SiteEditor\Data;

use ElementorPro\Plugin;
use Elementor\Data\Base\Controller as Controller_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Controller extends Controller_Base {
	public function get_name() {
		return 'site-editor';
	}

	public function register_endpoints() {
		$this->register_endpoint( Endpoints\Templates::class );
		$this->register_endpoint( Endpoints\Conditions_Config::class );
		$this->register_endpoint( Endpoints\Templates_Conditions::class );
		$this->register_endpoint( Endpoints\Templates_Conditions_Conflicts::class );
	}

	public function get_permission_callback( $request ) {
		return Plugin::elementor()->kits_manager->get_active_kit()->is_editable_by_current_user();
	}
}
PK!q�����'core/app/modules/kit-library/module.phpnu�[���<?php
namespace ElementorPro\Core\App\Modules\KitLibrary;

use ElementorPro\Plugin;
use ElementorPro\License\API;
use ElementorPro\License\Admin;
use Elementor\Core\Base\Module as BaseModule;
use ElementorPro\Core\Connect\Apps\Activate;
use Elementor\Core\App\Modules\KitLibrary\Connect\Kit_Library;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Module extends BaseModule {
	/**
	 * Get name.
	 *
	 * @access public
	 *
	 * @return string
	 */
	public function get_name() {
		return 'kit-library';
	}

	private function set_kit_library_settings() {
		$common = Plugin::elementor()->common;
		$app = Plugin::elementor()->app;

		$prev_settings = $app->get_settings( 'kit-library' );

		// BC Support.
		if ( ! $prev_settings || ! $common ) {
			return;
		}

		/** @var Activate $activate */
		$activate = $common->get_component( 'connect' )->get_app( 'activate' );

		/** @var Kit_Library $kit_library */
		$kit_library = $common->get_component( 'connect' )->get_app( 'kit-library' );

		$app->set_settings( 'kit-library', array_merge( $prev_settings, [
			'is_pro' => true,
			'is_library_connected' => API::is_license_active() && $kit_library && $kit_library->is_connected(),
			'library_connect_url' => $activate->get_admin_url( 'authorize' ),
			'access_level' => API::get_library_access_level( 'kit' ),
		] ) );
	}

	/**
	 * @param array $connect_info
	 * @param       $app
	 *
	 * @return array
	 */
	private function add_license_to_connect_info( array $connect_info, $app ) {
		$license_key = Admin::get_license_key();

		// In elementor 3.3.0-beta it does not send the $app parameter and it should add the license.
		$bc_support = ! $app;
		$is_kit_library_request = $app && Kit_Library::class === get_class( $app );

		if ( ! empty( $license_key ) && ( $bc_support || $is_kit_library_request ) ) {
			$connect_info['license'] = $license_key;
		}

		return $connect_info;
	}


	public function __construct() {
		add_action( 'elementor/init', function () {
			$this->set_kit_library_settings();
		}, 13 /** after elementor core */ );

		add_filter( 'elementor/connect/additional-connect-info', function ( array $connect_info, $app = null ) {
			return $this->add_license_to_connect_info( $connect_info, $app );
		}, 10, 2 );
	}
}
PK!f/lxxcore/app/app.phpnu�[���<?php
namespace ElementorPro\Core\App;

use Elementor\Core\Base\App as BaseApp;
use ElementorPro\Plugin;
use ElementorPro\Core\App\Modules\SiteEditor\Module as SiteEditor;
use ElementorPro\Core\App\Modules\KitLibrary\Module as KitLibrary;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class App extends BaseApp {
	/**
	 * Get module name.
	 *
	 * Retrieve the module name.
	 *
	 * @since 3.0.0
	 * @access public
	 *
	 * @return string Module name.
	 */
	public function get_name() {
		return 'app-pro';
	}

	public function init() {
		$this->enqueue_assets();
	}

	public function set_menu_url() {
		Plugin::elementor()->app->set_settings( 'menu_url', Plugin::elementor()->app->get_base_url() . '#/site-editor' );
	}

	protected function get_init_settings() {
		return [
			'baseUrl' => $this->get_assets_base_url(),
		];
	}

	protected function get_assets_base_url() {
		return ELEMENTOR_PRO_URL;
	}

	private function enqueue_assets() {
		wp_enqueue_style(
			'elementor-pro-app',
			$this->get_css_assets_url( 'app', null, 'default', true ),
			[
				'elementor-app',
				'select2',
			],
			ELEMENTOR_VERSION
		);

		wp_enqueue_script(
			'elementor-pro-app',
			$this->get_js_assets_url( 'app' ),
			[
				'wp-i18n',
				'elementor-app-packages',
				'elementor-common',
				'select2',
			],
			ELEMENTOR_PRO_VERSION,
			true
		);

		wp_set_script_translations( 'elementor-pro-app', 'elementor-pro' );
	}

	private function enqueue_config() {
		// If script didn't loaded, config is still relevant, enqueue without a file.
		if ( ! wp_script_is( 'elementor-pro-app' ) ) {
			wp_register_script( 'elementor-pro-app', false, [], ELEMENTOR_PRO_VERSION );
			wp_enqueue_script( 'elementor-pro-app' );
		}

		$this->print_config( 'elementor-pro-app' );
	}

	public function __construct() {
		$this->add_component( 'site-editor', new SiteEditor() );
		$this->add_component( 'kit-library', new KitLibrary() );

		add_action( 'elementor/app/init', [ $this, 'init' ] );

		add_action( 'elementor/common/after_register_scripts', function () {
			$this->enqueue_config();
		} );

		add_action( 'elementor/init', [ $this, 'set_menu_url' ] );
	}
}
PK!�[���core/connect/apps/activate.phpnu�[���<?php
namespace ElementorPro\Core\Connect\Apps;

use Elementor\Core\Common\Modules\Connect\Apps\Common_App;
use ElementorPro\License;
use ElementorPro\License\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Activate extends Common_App {
	public function get_title() {
		return esc_html__( 'Activate', 'elementor-pro' );
	}

	public function get_slug() {
		return 'activate';
	}

	protected function after_connect() {
		$this->action_activate_license();
	}

	/**
	 * @since 2.3.0
	 * @access public
	 */
	public function action_authorize() {
		// In case the first connect was not from Activate App - require a new authorization.
		if ( $this->is_connected() && ! License\Admin::get_license_key() ) {
			$this->disconnect();
		}

		parent::action_authorize();
	}

	public function action_activate_pro() {
		$this->action_activate_license();
	}

	public function action_switch_license() {
		$this->disconnect();
		$this->action_authorize();
	}

	public function action_deactivate() {
		License\Admin::deactivate();
		$this->disconnect();
		wp_safe_redirect( License\Admin::get_url() );
		die;
	}

	public function action_activate_license() {
		if ( ! $this->is_connected() ) {
			$this->add_notice( esc_html__( 'Please connect to Elementor in order to activate license.', 'elementor-pro' ), 'error' );

			$this->redirect_to_admin_page();
		}

		$license = $this->request( 'get_connected_license' );

		if ( empty( $license ) ) {
			// TODO: add suggestions how to check/resolve.
			wp_die( 'License not found for user ' . esc_attr( $this->get( 'user' )->email ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [
				'back_link' => true,
			] );
		}

		if ( is_wp_error( $license ) ) {
			wp_die( $license, esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				'back_link' => true,
			] );
		}

		$license_key = trim( $license->key );

		if ( empty( $license_key ) ) {
			wp_die( esc_html__( 'License key is missing.', 'elementor-pro' ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [
				'back_link' => true,
			] );
		}

		$data = License\API::activate_license( $license_key );

		if ( is_wp_error( $data ) ) {
			wp_die( sprintf( '%s (%s) ', $data->get_error_message(), $data->get_error_code() ), esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				'back_link' => true,
			] );
		}

		if ( License\API::STATUS_VALID !== $data['license'] ) {
			$error_msg = License\API::get_error_message( $data['error'] ); // get_error_message() escapes html

			wp_die( $error_msg, esc_html__( 'Elementor Pro', 'elementor-pro' ), [ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
				'back_link' => true,
			] );
		}

		License\Admin::set_license_key( $license_key );

		License\API::set_license_data( $data );

		$this->request( 'set_site_owner' );

		$this->add_notice( esc_html__( 'License has been activated successfully.', 'elementor-pro' ) );

		$this->redirect_to_admin_page( License\Admin::get_url() );
		die;
	}

	public function action_reset() {
		if ( current_user_can( 'manage_options' ) ) {
			delete_option( 'elementor_pro_license_key' );
			delete_transient( 'elementor_pro_license_data' );
		}

		$this->redirect_to_admin_page();
	}

	protected function get_popup_success_event_data() {
		return [
			'templates_access_level' => API::get_library_access_level( 'template' ),
			'kits_access_level' => API::get_library_access_level( 'kit' ),
		];
	}

	protected function get_app_info() {
		return [
			'license_data' => [
				'label' => 'License Data',
				'value' => get_option( '_elementor_pro_license_data' ),
			],
			'license_key' => [
				'label' => 'License Key',
				'value' => get_option( 'elementor_pro_license_key' ),
			],
		];
	}
}
PK!C%��KKcore/connect/manager.phpnu�[���<?php
namespace ElementorPro\Core\Connect;

use ElementorPro\Core\Connect\Apps\Activate;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Manager {

	/**
	 * @param \Elementor\Core\Common\Modules\Connect\Module $apps_manager
	 */
	public function register_apps( $apps_manager ) {
		$apps = [
			'activate' => Activate::get_class_name(),
		];

		foreach ( $apps as $slug => $class ) {
			$apps_manager->register_app( $slug, $class );
		}
	}

	public function __construct() {
		add_action( 'elementor/connect/apps/register', [ $this, 'register_apps' ] );
	}
}
PK!1<�++core/upgrade/manager.phpnu�[���<?php
namespace ElementorPro\Core\Upgrade;

use Elementor\Core\Upgrade\Manager as Upgrades_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Manager extends Upgrades_Manager {

	public function get_action() {
		return 'elementor_pro_updater';
	}

	public function get_plugin_name() {
		return 'elementor-pro';
	}

	public function get_plugin_label() {
		return esc_html__( 'Elementor Pro', 'elementor-pro' );
	}

	public function get_updater_label() {
		return esc_html__( 'Elementor Pro Data Updater', 'elementor-pro' );
	}

	public function get_new_version() {
		return ELEMENTOR_PRO_VERSION;
	}

	public function get_version_option_name() {
		return 'elementor_pro_version';
	}

	public function get_upgrades_class() {
		return 'ElementorPro\Core\Upgrade\Upgrades';
	}
}
PK!RU�Mzzcore/upgrade/upgrades.phpnu�[���<?php
namespace ElementorPro\Core\Upgrade;

use Elementor\Core\Base\Document;
use Elementor\Core\Upgrade\Updater;
use Elementor\Icons_Manager;
use Elementor\Core\Upgrade\Upgrades as Core_Upgrades;
use ElementorPro\License\API;
use ElementorPro\Plugin;
use Elementor\Modules\History\Revisions_Manager;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Upgrades {

	public static $typography_control_names = [
		'typography', // The popover toggle ('starter_name').
		'font_family',
		'font_size',
		'font_weight',
		'text_transform',
		'font_style',
		'text_decoration',
		'line_height',
		'letter_spacing',
	];

	public static function _on_each_version( $updater ) {
		self::_remove_remote_info_api_data();
	}

	public static function _v_1_3_0() {
		global $wpdb;

		// Fix Button widget to new sizes options
		$post_ids = $wpdb->get_col(
			'SELECT `post_id` FROM `' . $wpdb->postmeta . '` WHERE `meta_key` = "_elementor_data" AND `meta_value` LIKE \'%"widgetType":"form"%\';'
		);

		if ( empty( $post_ids ) ) {
			return;
		}

		foreach ( $post_ids as $post_id ) {
			$document = Plugin::elementor()->documents->get( $post_id );

			if ( $document ) {
				$data = $document->get_elements_data();
			}

			if ( empty( $data ) ) {
				continue;
			}

			$data = Plugin::elementor()->db->iterate_data( $data, function( $element ) {
				if ( empty( $element['widgetType'] ) || 'form' !== $element['widgetType'] ) {
					return $element;
				}

				if ( ! isset( $element['settings']['submit_actions'] ) ) {
					$element['settings']['submit_actions'] = [ 'email' ];
				}

				if ( ! empty( $element['settings']['redirect_to'] ) ) {
					if ( ! in_array( 'redirect', $element['settings']['submit_actions'] ) ) {
						$element['settings']['submit_actions'][] = 'redirect';
					}
				}

				if ( ! empty( $element['settings']['webhooks'] ) ) {
					if ( ! in_array( 'webhook', $element['settings']['submit_actions'] ) ) {
						$element['settings']['submit_actions'][] = 'webhook';
					}
				}

				return $element;
			} );

			self::save_editor( $post_id, $data );
		}
	}

	public static function _v_1_4_0() {
		global $wpdb;

		// Move all posts columns to classic skin (Just add prefix)
		$post_ids = $wpdb->get_col(
			'SELECT `post_id` FROM `' . $wpdb->postmeta . '` WHERE `meta_key` = "_elementor_data" AND `meta_value` LIKE \'%"widgetType":"posts"%\';'
		);

		if ( empty( $post_ids ) ) {
			return;
		}

		foreach ( $post_ids as $post_id ) {
			$document = Plugin::elementor()->documents->get( $post_id );

			if ( $document ) {
				$data = $document->get_elements_data();
			}

			if ( empty( $data ) ) {
				continue;
			}

			$data = Plugin::elementor()->db->iterate_data( $data, function( $element ) {
				if ( empty( $element['widgetType'] ) || 'posts' !== $element['widgetType'] ) {
					return $element;
				}

				$fields_to_change = [
					'columns',
					'columns_mobile',
					'columns_tablet',
				];

				foreach ( $fields_to_change as $field ) {
					// TODO: Remove old value later
					$new_field_key = 'classic_' . $field;
					if ( isset( $element['settings'][ $field ] ) && ! isset( $element['settings'][ $new_field_key ] ) ) {
						$element['settings'][ $new_field_key ] = $element['settings'][ $field ];
					}
				}

				return $element;
			} );

			$document = Plugin::elementor()->documents->get( $post_id );

			$document->save( [
				'elements' => $data,
			] );
		}
	}

	public static function _v_1_12_0() {
		global $wpdb;

		// Set `mailchimp_api_key_source` to `custom`.
		$post_ids = $wpdb->get_col(
			'SELECT `post_id` FROM `' . $wpdb->postmeta . '` WHERE `meta_key` = "_elementor_data" AND `meta_value` LIKE \'%"widgetType":"form"%\';'
		);

		if ( empty( $post_ids ) ) {
			return;
		}

		foreach ( $post_ids as $post_id ) {
			$do_update = false;
			$document = Plugin::elementor()->documents->get( $post_id );

			if ( $document ) {
				$data = $document->get_elements_data();
			}

			if ( empty( $data ) ) {
				continue;
			}

			$data = Plugin::elementor()->db->iterate_data( $data, function( $element ) use ( &$do_update ) {
				if ( empty( $element['widgetType'] ) || 'form' !== $element['widgetType'] ) {
					return $element;
				}

				if ( ! empty( $element['settings']['mailchimp_api_key'] ) && ! isset( $element['settings']['mailchimp_api_key_source'] ) ) {
					$element['settings']['mailchimp_api_key_source'] = 'custom';
					$do_update = true;
				}

				return $element;
			} );

			// Only update if form has mailchimp
			if ( ! $do_update ) {
				continue;
			}
			// We need the `wp_slash` in order to avoid the unslashing during the `update_post_meta`
			$json_value = wp_slash( wp_json_encode( $data ) );

			update_metadata( 'post', $post_id, '_elementor_data', $json_value );
		}
	}

	/**
	 * Replace 'sticky' => 'yes' with 'sticky' => 'top' in sections.
	 */
	public static function _v_2_0_3() {
		global $wpdb;

		$post_ids = $wpdb->get_col(
			'SELECT `post_id` FROM `' . $wpdb->postmeta . '` WHERE `meta_key` = "_elementor_data" AND `meta_value` LIKE \'%"sticky":"yes"%\';'
		);

		if ( empty( $post_ids ) ) {
			return;
		}

		foreach ( $post_ids as $post_id ) {
			$do_update = false;

			$document = Plugin::elementor()->documents->get( $post_id );

			if ( ! $document ) {
				continue;
			}

			$data = $document->get_elements_data();

			if ( empty( $data ) ) {
				continue;
			}

			$data = Plugin::elementor()->db->iterate_data( $data, function( $element ) use ( &$do_update ) {
				if ( empty( $element['elType'] ) || 'section' !== $element['elType'] ) {
					return $element;
				}

				if ( ! empty( $element['settings']['sticky'] ) && 'yes' === $element['settings']['sticky'] ) {
					$element['settings']['sticky'] = 'top';
					$do_update = true;
				}

				return $element;
			} );

			if ( ! $do_update ) {
				continue;
			}
			// We need the `wp_slash` in order to avoid the unslashing during the `update_metadata`
			$json_value = wp_slash( wp_json_encode( $data ) );

			update_metadata( 'post', $post_id, '_elementor_data', $json_value );
		} // End foreach().
	}

	private static function save_editor( $post_id, $posted ) {
		// Change the global post to current library post, so widgets can use `get_the_ID` and other post data
		if ( isset( $GLOBALS['post'] ) ) {
			$global_post = $GLOBALS['post'];
		}
		$GLOBALS['post'] = get_post( $post_id ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited

		$editor_data = self::get_editor_data( $posted );

		// We need the `wp_slash` in order to avoid the unslashing during the `update_post_meta`
		$json_value = wp_slash( wp_json_encode( $editor_data ) );

		$is_meta_updated = update_metadata( 'post', $post_id, '_elementor_data', $json_value );

		if ( $is_meta_updated ) {
			Revisions_Manager::handle_revision();
		}

		// Restore global post
		if ( isset( $global_post ) ) {
			$GLOBALS['post'] = $global_post; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
		} else {
			unset( $GLOBALS['post'] );
		}

		/**
		 * After editor saves data.
		 *
		 * Fires after Elementor editor data was saved.
		 *
		 * @since 1.0.0
		 *
		 * @param int   $post_id     The ID of the post.
		 * @param array $editor_data The editor data.
		 */
		do_action( 'elementor/editor/after_save', $post_id, $editor_data );
	}

	private static function get_editor_data( $data, $with_html_content = false ) {
		$editor_data = [];

		foreach ( $data as $element_data ) {
			$element = Plugin::elementor()->elements_manager->create_element_instance( $element_data );

			if ( ! $element ) {
				continue;
			}

			$editor_data[] = $element->get_raw_data( $with_html_content );
		} // End Section

		return $editor_data;
	}

	public static function _v_2_5_0_form( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_repeater_settings' ],
				'control_ids' => [
					'form_fields' => [
						'_id' => 'custom_id',
					],
				],
			],
		];

		return self::_update_widget_settings( 'form', $updater, $changes );
	}

	public static function _v_2_5_0_woocommerce_menu_cart( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_widget_settings' ],
				'control_ids' => [
					'checkout_button_border_color' => 'checkout_border_color',
					'view_cart_button_border_color' => 'view_cart_border_color',
				],
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_slider_to_border_settings' ],
				'control_ids' => [
					'checkout_button_border_width' => [
						'new' => 'checkout_border_width',
						'add' => 'checkout_border_border',
					],
					'view_cart_button_border_width' => [
						'new' => 'view_cart_border_width',
						'add' => 'view_cart_border_border',
					],
				],
			],
		];

		return self::_update_widget_settings( 'woocommerce-menu-cart', $updater, $changes );
	}

	public static function _slider_to_border_settings( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		foreach ( $changes as $old => $new ) {
			if ( ! empty( $element['settings'][ $old ] ) && ! isset( $element['settings'][ $new['new'] ] ) ) {
				$new_border_width = [
					'unit' => $element['settings'][ $old ]['unit'],
					'top' => $element['settings'][ $old ]['size'],
					'bottom' => $element['settings'][ $old ]['size'],
					'left' => $element['settings'][ $old ]['size'],
					'right' => $element['settings'][ $old ]['size'],
					'isLinked' => true,
				];
				$element['settings'][ $new ['new'] ] = $new_border_width;
				$element['settings'][ $new ['add'] ] = 'solid';
				$args['do_update'] = true;
			}
		}
		return $element;
	}

	/**
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _rename_repeater_settings( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		foreach ( $changes as $change_key => $change ) {
			foreach ( $change as $old => $new ) {
				foreach ( $element['settings'][ $change_key ] as &$repeater ) {
					if ( ! empty( $repeater[ $old ] ) && ! isset( $repeater[ $new ] ) ) {
						$repeater[ $new ] = $repeater[ $old ];
						$args['do_update'] = true;
					}
				}
			}
		}

		return $element;
	}

	private static function taxonomies_mapping( $prefix, $map_to ) {
		$taxonomy_filter_args = [
			'show_in_nav_menus' => true,
		];

		$taxonomies = get_taxonomies( $taxonomy_filter_args );

		$mapping = [];

		foreach ( $taxonomies as $taxonomy ) {
			$mapping[ $prefix . $taxonomy . '_ids' ] = $map_to;
		}

		return $mapping;
	}

	public static function _v_2_5_0_posts( $updater ) {
		$add_taxonomies = self::taxonomies_mapping( 'posts_', [ 'posts_include' => 'terms' ] );
		$merge_taxonomies = self::taxonomies_mapping( 'posts_', 'posts_include_term_ids' );

		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_widget_settings' ],
				'control_ids' => [
					'orderby' => 'posts_orderby',
					'order' => 'posts_order',
					'offset' => 'posts_offset',
					'exclude' => 'posts_exclude',
					'exclude_ids' => 'posts_exclude_ids',
					'posts_query_id' => 'posts_posts_query_id',
					'avoid_duplicates' => 'posts_avoid_duplicates',
					'posts_authors' => 'posts_include_authors',
				],
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_add_widget_settings_to_array' ],
				'control_ids' => array_merge( $add_taxonomies, [
					'posts_authors' => [ 'posts_include' => 'authors' ],
				] ),
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_merge_widget_settings' ],
				'control_ids' => $merge_taxonomies,
			],
		];

		return self::_update_widget_settings( 'posts', $updater, $changes );
	}

	public static function _v_2_5_0_portfolio( $updater ) {
		$add_taxonomies = self::taxonomies_mapping( 'posts_', [ 'posts_include' => 'terms' ] );
		$merge_taxonomies = self::taxonomies_mapping( 'posts_', 'posts_include_term_ids' );

		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_widget_settings' ],
				'control_ids' => [
					'orderby' => 'posts_orderby',
					'order' => 'posts_order',
					'offset' => 'posts_offset',
					'exclude' => 'posts_exclude',
					'exclude_ids' => 'posts_exclude_ids',
					'posts_query_id' => 'posts_posts_query_id',
					'avoid_duplicates' => 'posts_avoid_duplicates',
					'posts_authors' => 'posts_include_authors',
				],
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_add_widget_settings_to_array' ],
				'control_ids' => array_merge( $add_taxonomies, [
					'posts_authors' => [ 'posts_include' => 'authors' ],
				] ),
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_merge_widget_settings' ],
				'control_ids' => $merge_taxonomies,
			],
		];

		return self::_update_widget_settings( 'portfolio', $updater, $changes );
	}

	public static function _v_2_5_0_products( $updater ) {
		$add_taxonomies = self::taxonomies_mapping( 'query_', [ 'query_include' => 'terms' ] );
		$merge_taxonomies = self::taxonomies_mapping( 'query_', 'query_include_term_ids' );
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_widget_settings' ],
				'control_ids' => [
					'orderby' => 'query_orderby',
					'order' => 'query_order',
					'exclude' => 'query_exclude',
					'exclude_ids' => 'query_exclude_ids',
					'query_authors' => 'query_include_authors',
					'query_product_tag_ids' => 'query_include_term_ids',
					'query_product_cat_ids' => 'query_include_term_ids',
				],
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_add_widget_settings_to_array' ],
				'control_ids' => array_merge( $add_taxonomies, [
					'query_authors' => [ 'query_include' => 'authors' ],
				] ),
			],
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_merge_widget_settings' ],
				'control_ids' => $merge_taxonomies,
			],
		];

		return self::_update_widget_settings( 'woocommerce-products', $updater, $changes );
	}

	/**
	 * @param $updater
	 *
	 * @return bool Should run again.
	 */
	public static function _v_2_5_0_sitemap( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_rename_widget_settings' ],
				'control_ids' => [
					'exclude' => 'sitemap_exclude',
					'exclude_ids' => 'sitemap_exclude_ids',
				],
			],
		];

		return self::_update_widget_settings( 'sitemap', $updater, $changes );
	}

	/**
	 * @param Updater $updater
	 *
	 * @return bool
	 */
	public static function _v_2_5_0_popup_border_radius( $updater ) {
		global $wpdb;

		$post_ids = $updater->query_col(
			"SELECT pm1.post_id
					FROM {$wpdb->postmeta} AS pm1
					LEFT JOIN {$wpdb->postmeta} AS pm2 ON (pm1.post_id = pm2.post_id)
					WHERE pm1.meta_key = '_elementor_template_type'
					AND pm1.meta_value = 'popup'
					AND pm2.`meta_key` = '" . Document::PAGE_META_KEY . "'
					AND pm2.`meta_value` LIKE '%border_radius%';"
		);

		if ( empty( $post_ids ) ) {
			return false;
		}

		foreach ( $post_ids as $post_id ) {
			// Clear WP cache for next step.
			$document = Plugin::elementor()->documents->get( $post_id );

			if ( ! $document ) {
				continue;
			}

			$page_settings = $document->get_settings();

			// Check if there isn't 'border_radius' setting or if it has already been upgraded
			if ( empty( $page_settings['border_radius']['size'] ) ) {
				continue;
			}

			$border_radius = $page_settings['border_radius'];

			$new_border_radius = [
				'unit' => $border_radius['unit'],
				'top' => $border_radius['size'],
				'bottom' => $border_radius['size'],
				'left' => $border_radius['size'],
				'right' => $border_radius['size'],
				'isLinked' => true,
			];

			$page_settings['border_radius'] = $new_border_radius;

			// TODO: `$document->update_settings`.
			$document->update_meta( Document::PAGE_META_KEY, $page_settings );

			wp_cache_flush();
		} // End foreach().

		return $updater->should_run_again( $post_ids );
	}

	public static function _v_2_5_4_posts( $updater ) {
		$merge_taxonomies = self::taxonomies_mapping( 'posts_', 'posts_include_term_ids' );

		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_term_id_to_term_taxonomy_id' ],
				'control_ids' => $merge_taxonomies,
				'prefix' => 'posts_',
				'new_id' => 'include_term_ids',
			],
		];

		return self::_update_widget_settings( 'posts', $updater, $changes );
	}

	public static function _v_2_5_4_portfolio( $updater ) {
		$merge_taxonomies = self::taxonomies_mapping( 'posts_', 'posts_include_term_ids' );

		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_term_id_to_term_taxonomy_id' ],
				'control_ids' => $merge_taxonomies,
				'prefix' => 'posts_',
				'new_id' => 'include_term_ids',
			],
		];

		return self::_update_widget_settings( 'portfolio', $updater, $changes );
	}

	public static function _v_2_5_4_products( $updater ) {
		$merge_taxonomies = self::taxonomies_mapping( 'query_', 'query_include_term_ids' );
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_term_id_to_term_taxonomy_id' ],
				'control_ids' => $merge_taxonomies,
				'prefix' => 'query_',
				'new_id' => 'include_term_ids',
			],
		];

		return self::_update_widget_settings( 'woocommerce-products', $updater, $changes );
	}

	public static function _v_2_5_4_form( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_missing_form_custom_id_settings' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'form', $updater, $changes );
	}

	public static function _v_3_1_0_media_carousel( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_progress_to_progressbar' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'media-carousel', $updater, $changes );
	}

	public static function _v_3_1_0_reviews( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_progress_to_progressbar' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'reviews', $updater, $changes );
	}

	public static function _v_3_1_0_testimonial_carousel( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_convert_progress_to_progressbar' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'testimonial-carousel', $updater, $changes );
	}

	public static function _v_3_1_0_slides( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_migrate_slides_button_color_settings' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'slides', $updater, $changes );
	}

	public static function _v_3_3_0_nav_menu_icon( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_migrate_indicator_control_to_submenu_icon' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'nav-menu', $updater, $changes );
	}

	public static function _v_3_3_0_recalc_usage_data( $updater ) {
		return Core_Upgrades::recalc_usage_data( $updater );
	}

	public static function _v_3_5_0_price_list( $updater ) {
		$changes = [
			[
				'callback' => [ 'ElementorPro\Core\Upgrade\Upgrades', '_copy_title_styles_to_new_price_controls' ],
				'control_ids' => [],
			],
		];

		return self::_update_widget_settings( 'price-list', $updater, $changes );
	}

	/**
	 * $changes is an array of arrays in the following format:
	 * [
	 *   'control_ids' => array of control ids
	 *   'callback' => user callback to manipulate the control_ids
	 * ]
	 *
	 * @param       $widget_id
	 * @param       $updater
	 * @param array $changes
	 *
	 * @return bool
	 */
	public static function _update_widget_settings( $widget_id, $updater, $changes ) {
		global $wpdb;

		$post_ids = $updater->query_col(
			'SELECT `post_id`
					FROM `' . $wpdb->postmeta . '`
					WHERE `meta_key` = "_elementor_data"
					AND `meta_value` LIKE \'%"widgetType":"' . $widget_id . '"%\';'
		);

		if ( empty( $post_ids ) ) {
			return false;
		}

		foreach ( $post_ids as $post_id ) {
			$do_update = false;

			$document = Plugin::elementor()->documents->get( $post_id );

			if ( ! $document ) {
				continue;
			}

			$data = $document->get_elements_data();

			if ( empty( $data ) ) {
				continue;
			}

			// loop thru callbacks & array
			foreach ( $changes as $change ) {
				$args = [
					'do_update' => &$do_update,
					'widget_id' => $widget_id,
					'control_ids' => $change['control_ids'],
				];
				if ( isset( $change['prefix'] ) ) {
					$args['prefix'] = $change['prefix'];
					$args['new_id'] = $change['new_id'];
				}
				$data = Plugin::elementor()->db->iterate_data( $data, $change['callback'], $args );
				if ( ! $do_update ) {
					continue;
				}

				// We need the `wp_slash` in order to avoid the unslashing during the `update_metadata`
				$json_value = wp_slash( wp_json_encode( $data ) );

				update_metadata( 'post', $post_id, '_elementor_data', $json_value );
			}
		} // End foreach().

		return $updater->should_run_again( $post_ids );
	}

	/**
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _rename_widget_settings( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		foreach ( $changes as $old => $new ) {
			if ( ! empty( $element['settings'][ $old ] ) && ! isset( $element['settings'][ $new ] ) ) {
				$element['settings'][ $new ] = $element['settings'][ $old ];
				$args['do_update'] = true;
			}
		}

		return $element;
	}

	/**
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _add_widget_settings_to_array( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		foreach ( $changes as $old_key => $added_key ) {
			if ( ! empty( $element['settings'][ $old_key ] ) ) {
				foreach ( $added_key as $control_id => $val ) {
					if ( ! in_array( $val, $element['settings'][ $control_id ], true ) ) {
						$element['settings'][ $control_id ][] = $val;
						$args['do_update'] = true;
					}
				}
			}
		}

		return $element;
	}

	/**
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _merge_widget_settings( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		foreach ( $changes as $old => $new ) {
			if ( ! empty( $element['settings'][ $old ] ) ) {
				if ( ! isset( $element['settings'][ $new ] ) ) {
					$element['settings'][ $new ] = $element['settings'][ $old ];
				} else {
					$element['settings'][ $new ] = array_unique( array_merge( $element['settings'][ $old ], $element['settings'][ $new ] ) );
				}
				$args['do_update'] = true;
			}
		}

		return $element;
	}

	/**
	 * Possible scenarios:
	 * 1) custom_id is not empty --> do nothing
	 * 2) Existing _id: Empty or Missing custom_id --> create custom_id and set the value to the value of _id
	 * 3) Missing _id: Empty or Missing custom_id --> generate a unique key and set it as custom_id value
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _missing_form_custom_id_settings( $element, $args ) {
		$widget_id = $args['widget_id'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		$random_id = (int) substr( time(), -5 );
		//form_fields loop:
		foreach ( $element['settings']['form_fields'] as &$repeater_item ) {
			if ( ! empty( $repeater_item['custom_id'] ) ) { // Scenario 1
				continue;
			}

			if ( ! empty( $repeater_item['_id'] ) ) { // Scenario 2
				$repeater_item['custom_id'] = $repeater_item['_id'];
			} else { // Scenario 3
				$repeater_item['custom_id'] = 'field_' . $random_id;
				$random_id++;
			}

			$args['do_update'] = true;
		}

		return $element;
	}

	/**
	 * Migrates the value saved for the 'indicator' SELECT control in the Nav Menu Widget to the new replacement
	 * 'submenu_icon' ICONS control.
	 *
	 * @param $element
	 * @param $args
	 *
	 * @return mixed;
	 */
	public static function _migrate_indicator_control_to_submenu_icon( $element, $args ) {
		$widget_id = $args['widget_id'];

		// If the current element is not a Nav Menu widget, go to the next one.
		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		// If this Nav Menu widget's 'indicator' control value is the default one (there is no value in the DB),
		// there is nothing to migrate, since the default icon is identical in the new control. Go to the next element.
		if ( ! isset( $element['settings']['indicator'] ) ) {
			return $element;
		}

		$new_value = '';
		$new_library = 'fa-solid';

		switch ( $element['settings']['indicator'] ) {
			case 'none':
				$new_library = '';
				break;
			case 'classic':
				$new_value = 'fa-caret-down';
				break;
			case 'chevron':
				$new_value = 'fa-chevron-down';
				break;
			case 'angle':
				$new_value = 'fa-angle-down';
				break;
			case 'plus':
				$new_value = 'e-plus-icon';
				$new_library = '';
				break;
		}

		// This is done in order to make sure that the menu will not look any different for users who upgrade.
		// The 'None' option should be completely empty.
		if ( $new_value ) {
			if ( Icons_Manager::is_migration_allowed() ) {
				// If the site has been migrated to FA5, add the new FA Solid class.
				$new_value = 'fas ' . $new_value;
			} else {
				// If the site has not been migrated, add the old generic 'fa' class.
				$new_value = 'fa ' . $new_value;
			}
		}

		// Set the migrated value for the new control.
		$element['settings']['submenu_icon'] = [
			'value' => $new_value,
			'library' => $new_library,
		];

		$args['do_update'] = true;

		return $element;
	}

	/**
	 * @param $element
	 * @param $args
	 *
	 * @return mixed
	 */
	public static function _convert_term_id_to_term_taxonomy_id( $element, $args ) {
		$widget_id = $args['widget_id'];
		$changes = $args['control_ids'];
		$prefix = $args['prefix'];
		$new_id = $prefix . $args['new_id'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		// Exit if new is empty (should not happen)
		if ( empty( $element['settings'][ $new_id ] ) ) {
			return $element;
		}

		// 1) Convert each term-id to the equivalent term_taxonomy_id
		$term_taxonomy_ids = [];
		$old_term_ids = [];
		foreach ( $changes as $old => $new ) {
			if ( ! empty( $element['settings'][ $old ] ) ) {
				$start = strlen( $prefix );
				$end = -strlen( '_ids' );
				$taxonomy = substr( $old, $start, $end );
				foreach ( $element['settings'][ $old ] as $term_id ) {
					$old_term_ids[] = $term_id;
					$term_obj = get_term( $term_id, $taxonomy, OBJECT );
					if ( $term_obj && ! is_wp_error( $term_obj ) ) {
						$term_taxonomy_ids[] = $term_obj->term_taxonomy_id;
					}
				}
			}
		}

		// 2) Check if the widget's settings were changed after the u/g to 2.5.0
		$diff = array_diff( $element['settings'][ $new_id ], array_unique( $old_term_ids ) );
		if ( empty( $diff ) ) { // Nothing was changed
			$element['settings'][ $new_id . '_backup' ] = $element['settings'][ $new_id ];
			$element['settings'][ $new_id ] = $term_taxonomy_ids;
			$args['do_update'] = true;
		}

		return $element;
	}

	/**
	 * Convert 'progress' to 'progressbar'
	 *
	 * Before Elementor 2.2.0, the progress bar option key was 'progress'. In Elementor 2.2.0,
	 * it was changed to 'progressbar'. This upgrade script migrated the DB data for old websites using 'progress'.
	 *
	 * @param $element
	 * @param $args
	 * @return mixed
	 */
	public static function _convert_progress_to_progressbar( $element, $args ) {
		$widget_id = $args['widget_id'];

		if ( empty( $element['widgetType'] ) || $widget_id !== $element['widgetType'] ) {
			return $element;
		}

		if ( 'progress' === $element['settings']['pagination'] ) {
			$element['settings']['pagination'] = 'progressbar';
			$args['do_update'] = true;
		}

		return $element;
	}

	/**
	 * Migrate Slides Button Color Settings
	 *
	 * Move Slides Widget's 'button_color' settings to 'button_text_color' and 'button_border_color' as necessary,
	 * to allow for removing the redundant control.
	 *
	 * @param $element
	 * @param $args
	 * @return mixed
	 */
	public static function _migrate_slides_button_color_settings( $element, $args ) {
		if ( empty( $element['widgetType'] ) || $args['widget_id'] !== $element['widgetType'] ) {
			return $element;
		}

		// If the element doesn't use the 'button_color' control, no need to do anything.
		if ( ! isset( $element['settings']['button_color'] ) ) {
			return $element;
		}

		// Check if button_text_color is set. If it is not set, transfer the value from button_color to button_text_color.
		if ( ! isset( $element['settings']['button_text_color'] ) ) {
			$element['settings']['button_text_color'] = $element['settings']['button_color'];
			$args['do_update'] = true;
		}

		// Check if button_border_color is set. If it is not set, transfer the value from button_color to button_border_color.
		if ( ! isset( $element['settings']['button_border_color'] ) ) {
			$element['settings']['button_border_color'] = $element['settings']['button_color'];
			$args['do_update'] = true;
		}

		return $element;
	}

	/**
	 * Copy Title Styles to New Price Controls
	 *
	 * Copy the values from the  Price List widget's Title Style controls to new Price Style controls.
	 *
	 * @since 3.4.0
	 *
	 * @param $element
	 * @param $args
	 * @return mixed
	 */
	public static function _copy_title_styles_to_new_price_controls( $element, $args ) {
		if ( empty( $element['widgetType'] ) || $args['widget_id'] !== $element['widgetType'] ) {
			return $element;
		}

		if ( ! empty( $element['settings']['heading_color'] ) ) {
			$element['settings']['price_color'] = $element['settings']['heading_color'];

			$args['do_update'] = true;
		}

		$old_control_prefix = 'heading_typography_';
		$new_control_prefix = 'price_typography_';

		foreach ( self::$typography_control_names as $control_name ) {
			if ( ! empty( $element['settings'][ $old_control_prefix . $control_name ] ) ) {
				$element['settings'][ $new_control_prefix . $control_name ] = $element['settings'][ $old_control_prefix . $control_name ];

				$args['do_update'] = true;
			}
		}

		return $element;
	}

	public static function _remove_remote_info_api_data() {
		global $wpdb;

		$key = API::TRANSIENT_KEY_PREFIX;

		return $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$key}%';" ); // phpcs:ignore
	}
}
PK!\��22core/modules-manager.phpnu�[���<?php
namespace ElementorPro\Core;

use ElementorPro\Plugin;
use ElementorPro\Base\Module_Base;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

final class Modules_Manager {
	/**
	 * @var Module_Base[]
	 */
	private $modules = [];

	public function __construct() {
		$modules = [
			'query-control',
			'custom-attributes',
			'custom-css',
			// role-manager Must be before Global Widget
			'role-manager',
			'global-widget',
			'assets-manager',
			'popup',
			'motion-fx',
			'usage',
			'screenshots',
			'compatibility-tag',
			'admin-top-bar',

			// Modules with Widgets.
			'theme-builder',
			'posts',
			'gallery',
			'forms',
			'slides',
			'nav-menu',
			'animated-headline',
			'hotspot',
			'pricing',
			'flip-box',
			'call-to-action',
			'carousel',
			'table-of-contents',
			'countdown',
			'share-buttons',
			'theme-elements',
			'blockquote',
			'woocommerce',
			'social',
			'library',
			'dynamic-tags',
			'scroll-snap',
			'sticky',
			'wp-cli',
			'lottie',
			'code-highlight',
			'custom-code',
			'video-playlist',
			'payments',
			'progress-tracker',
		];

		foreach ( $modules as $module_name ) {
			$class_name = str_replace( '-', ' ', $module_name );
			$class_name = str_replace( ' ', '', ucwords( $class_name ) );
			$class_name = '\ElementorPro\Modules\\' . $class_name . '\Module';

			/** @var Module_Base $class_name */
			$experimental_data = $class_name::get_experimental_data();

			if ( $experimental_data ) {
				Plugin::elementor()->experiments->add_feature( $experimental_data );

				if ( ! Plugin::elementor()->experiments->is_feature_active( $experimental_data['name'] ) ) {
					continue;
				}
			}

			if ( $class_name::is_active() ) {
				$this->modules[ $module_name ] = $class_name::instance();
			}
		}
	}

	/**
	 * @param string $module_name
	 *
	 * @return Module_Base|Module_Base[]
	 */
	public function get_modules( $module_name ) {
		if ( $module_name ) {
			if ( isset( $this->modules[ $module_name ] ) ) {
				return $this->modules[ $module_name ];
			}

			return null;
		}

		return $this->modules;
	}
}
PK!b�\A$A$core/utils.phpnu�[���<?php
namespace ElementorPro\Core;

use ElementorPro\Plugin;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Utils {
	public static function get_public_post_types( $args = [] ) {
		$post_type_args = [
			// Default is the value $public.
			'show_in_nav_menus' => true,
		];

		// Keep for backwards compatibility
		if ( ! empty( $args['post_type'] ) ) {
			$post_type_args['name'] = $args['post_type'];
			unset( $args['post_type'] );
		}

		$post_type_args = wp_parse_args( $post_type_args, $args );

		$_post_types = get_post_types( $post_type_args, 'objects' );

		$post_types = [];

		foreach ( $_post_types as $post_type => $object ) {
			$post_types[ $post_type ] = $object->label;
		}

		/**
		 * Public Post types
		 *
		 * Allow 3rd party plugins to filters the public post types elementor should work on
		 *
		 * @since 2.3.0
		 *
		 * @param array $post_types Elementor supported public post types.
		 */
		return apply_filters( 'elementor_pro/utils/get_public_post_types', $post_types );
	}

	public static function get_client_ip() {
		$server_ip_keys = [
			'HTTP_CLIENT_IP',
			'HTTP_X_FORWARDED_FOR',
			'HTTP_X_FORWARDED',
			'HTTP_X_CLUSTER_CLIENT_IP',
			'HTTP_FORWARDED_FOR',
			'HTTP_FORWARDED',
			'REMOTE_ADDR',
		];

		foreach ( $server_ip_keys as $key ) {
			if ( isset( $_SERVER[ $key ] ) && filter_var( $_SERVER[ $key ], FILTER_VALIDATE_IP ) ) {
				return $_SERVER[ $key ];
			}
		}

		// Fallback local ip.
		return '127.0.0.1';
	}

	public static function get_site_domain() {
		return str_ireplace( 'www.', '', parse_url( home_url(), PHP_URL_HOST ) );
	}

	public static function get_current_post_id() {
		if ( isset( Plugin::elementor()->documents ) ) {
			return Plugin::elementor()->documents->get_current()->get_main_id();
		}

		return get_the_ID();
	}

	public static function get_the_archive_url() {
		$url = '';
		if ( is_category() || is_tag() || is_tax() ) {
			$url = get_term_link( get_queried_object() );
		} elseif ( is_author() ) {
			$url = get_author_posts_url( get_queried_object_id() );
		} elseif ( is_year() ) {
			$url = get_year_link( get_query_var( 'year' ) );
		} elseif ( is_month() ) {
			$url = get_month_link( get_query_var( 'year' ), get_query_var( 'monthnum' ) );
		} elseif ( is_day() ) {
			$url = get_day_link( get_query_var( 'year' ), get_query_var( 'monthnum' ), get_query_var( 'day' ) );
		} elseif ( is_post_type_archive() ) {
			$url = get_post_type_archive_link( get_post_type() );
		}

		return $url;
	}

	public static function get_page_title( $include_context = true ) {
		$title = '';

		if ( is_singular() ) {
			/* translators: %s: Search term. */
			$title = get_the_title();

			if ( $include_context ) {
				$post_type_obj = get_post_type_object( get_post_type() );
				$title = sprintf( '%s: %s', $post_type_obj->labels->singular_name, $title );
			}
		} elseif ( is_search() ) {
			/* translators: %s: Search term. */
			$title = sprintf( esc_html__( 'Search Results for: %s', 'elementor-pro' ), get_search_query() );

			if ( get_query_var( 'paged' ) ) {
				/* translators: %s is the page number. */
				$title .= sprintf( esc_html__( '&nbsp;&ndash; Page %s', 'elementor-pro' ), get_query_var( 'paged' ) );
			}
		} elseif ( is_category() ) {
			$title = single_cat_title( '', false );

			if ( $include_context ) {
				/* translators: Category archive title. 1: Category name */
				$title = sprintf( esc_html__( 'Category: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_tag() ) {
			$title = single_tag_title( '', false );
			if ( $include_context ) {
				/* translators: Tag archive title. 1: Tag name */
				$title = sprintf( esc_html__( 'Tag: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_author() ) {
			$title = '<span class="vcard">' . get_the_author() . '</span>';

			if ( $include_context ) {
				/* translators: Author archive title. 1: Author name */
				$title = sprintf( esc_html__( 'Author: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_year() ) {
			$title = get_the_date( _x( 'Y', 'yearly archives date format', 'elementor-pro' ) );

			if ( $include_context ) {
				/* translators: Yearly archive title. 1: Year */
				$title = sprintf( esc_html__( 'Year: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_month() ) {
			$title = get_the_date( _x( 'F Y', 'monthly archives date format', 'elementor-pro' ) );

			if ( $include_context ) {
				/* translators: Monthly archive title. 1: Month name and year */
				$title = sprintf( esc_html__( 'Month: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_day() ) {
			$title = get_the_date( _x( 'F j, Y', 'daily archives date format', 'elementor-pro' ) );

			if ( $include_context ) {
				/* translators: Daily archive title. 1: Date */
				$title = sprintf( esc_html__( 'Day: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_tax( 'post_format' ) ) {
			if ( is_tax( 'post_format', 'post-format-aside' ) ) {
				$title = _x( 'Asides', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) {
				$title = _x( 'Galleries', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-image' ) ) {
				$title = _x( 'Images', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-video' ) ) {
				$title = _x( 'Videos', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-quote' ) ) {
				$title = _x( 'Quotes', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-link' ) ) {
				$title = _x( 'Links', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-status' ) ) {
				$title = _x( 'Statuses', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-audio' ) ) {
				$title = _x( 'Audio', 'post format archive title', 'elementor-pro' );
			} elseif ( is_tax( 'post_format', 'post-format-chat' ) ) {
				$title = _x( 'Chats', 'post format archive title', 'elementor-pro' );
			}
		} elseif ( is_post_type_archive() ) {
			$title = post_type_archive_title( '', false );

			if ( $include_context ) {
				/* translators: Post type archive title. 1: Post type name */
				$title = sprintf( esc_html__( 'Archives: %s', 'elementor-pro' ), $title );
			}
		} elseif ( is_tax() ) {
			$title = single_term_title( '', false );

			if ( $include_context ) {
				$tax = get_taxonomy( get_queried_object()->taxonomy );
				/* translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: Current taxonomy term */
				$title = sprintf( esc_html__( '%1$s: %2$s', 'elementor-pro' ), $tax->labels->singular_name, $title );
			}
		} elseif ( is_archive() ) {
			$title = esc_html__( 'Archives', 'elementor-pro' );
		} elseif ( is_404() ) {
			$title = esc_html__( 'Page Not Found', 'elementor-pro' );
		} // End if().

		/**
		 * The archive title.
		 *
		 * Filters the archive title.
		 *
		 * @since 1.0.0
		 *
		 * @param string $title Archive title to be displayed.
		 */
		$title = apply_filters( 'elementor/utils/get_the_archive_title', $title );

		return $title;
	}

	public static function set_global_authordata() {
		global $authordata;
		if ( ! isset( $authordata->ID ) ) {
			$post = get_post();
			$authordata = get_userdata( $post->post_author ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
		}
	}

	/**
	 * Used to overcome core bug when taxonomy is in more then one post type
	 *
	 * @see https://core.trac.wordpress.org/ticket/27918
	 *
	 * @global array $wp_taxonomies The registered taxonomies.
	 *
	 *
	 * @param array  $args
	 * @param string $output
	 * @param string $operator
	 *
	 * @return array
	 */
	public static function get_taxonomies( $args = [], $output = 'names', $operator = 'and' ) {
		global $wp_taxonomies;

		$field = ( 'names' === $output ) ? 'name' : false;

		// Handle 'object_type' separately.
		if ( isset( $args['object_type'] ) ) {
			$object_type = (array) $args['object_type'];
			unset( $args['object_type'] );
		}

		$taxonomies = wp_filter_object_list( $wp_taxonomies, $args, $operator );

		if ( isset( $object_type ) ) {
			foreach ( $taxonomies as $tax => $tax_data ) {
				if ( ! array_intersect( $object_type, $tax_data->object_type ) ) {
					unset( $taxonomies[ $tax ] );
				}
			}
		}

		if ( $field ) {
			$taxonomies = wp_list_pluck( $taxonomies, $field );
		}

		return $taxonomies;
	}

	public static function get_ensure_upload_dir( $path ) {
		if ( file_exists( $path . '/index.php' ) ) {
			return $path;
		}

		wp_mkdir_p( $path );

		$files = [
			[
				'file' => 'index.php',
				'content' => [
					'<?php',
					'// Silence is golden.',
				],
			],
			[
				'file' => '.htaccess',
				'content' => [
					'Options -Indexes',
					'<ifModule mod_headers.c>',
					'	<Files *.*>',
					'       Header set Content-Disposition attachment',
					'	</Files>',
					'</IfModule>',
				],
			],
		];

		foreach ( $files as $file ) {
			if ( ! file_exists( trailingslashit( $path ) . $file['file'] ) ) {
				$content = implode( PHP_EOL, $file['content'] );
				@ file_put_contents( trailingslashit( $path ) . $file['file'], $content );
			}
		}

		return $path;
	}
}
PK!4aggcore/preview/preview.phpnu�[���<?php
namespace ElementorPro\Core\Preview;

use Elementor\Core\Base\App;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Preview extends App {

	public function __construct() {
		add_action( 'elementor/preview/enqueue_styles', [ $this, 'enqueue_styles' ] );
	}

	public function get_name() {
		return 'pro-preview';
	}

	public function enqueue_styles() {
		wp_enqueue_style(
			'pro-editor-preview',
			$this->get_css_assets_url( 'preview', null, 'default', true ),
			[],
			ELEMENTOR_PRO_VERSION
		);
	}

	protected function get_assets_base_url() {
		return ELEMENTOR_PRO_URL;
	}
}
PK!�c���	�	modules/role-manager/module.phpnu�[���PK!-z���
modules/scroll-snap/module.phpnu�[���PK!=����%)modules/flip-box/widgets/flip-box.phpnu�[���PK!�P�{::��modules/flip-box/module.phpnu�[���PK!έW����modules/gallery/module.phpnu�[���PK!w��!`�`�#-�modules/gallery/widgets/gallery.phpnu�[���PK!��9�7?7?7�\modules/animated-headline/widgets/animated-headline.phpnu�[���PK!ObatUU$~�modules/animated-headline/module.phpnu�[���PK!�pֽ'�modules/popup/module.phpnu�[���PK!�9�&��o�modules/popup/tag.phpnu�[���PK!~jL�L�L��modules/popup/document.phpnu�[���PK!�����
�
�
modules/popup/form-action.phpnu�[���PK!���

2modules/popup/assets/images/triggers/page_load.svgnu�[���PK!�3�tLL3q*modules/popup/assets/images/triggers/inactivity.svgnu�[���PK!g)�;;4 Bmodules/popup/assets/images/triggers/exit_intent.svgnu�[���PK!#\�	�	5�Imodules/popup/assets/images/triggers/scrolling_to.svgnu�[���PK!}q�::2�Smodules/popup/assets/images/triggers/scrolling.svgnu�[���PK!���C��.�`modules/popup/assets/images/triggers/click.svgnu�[���PK!��??,iomodules/popup/assets/images/triggers-tab.svgnu�[���PK!��]�bb.~modules/popup/assets/images/timing/sources.svgnu�[���PK!�m��PP0Ċmodules/popup/assets/images/timing/logged_in.svgnu�[���PK!I���,t�modules/popup/assets/images/timing/times.svgnu�[���PK!�u�g��.��modules/popup/assets/images/timing/devices.svgnu�[���PK!I���-�modules/popup/assets/images/timing/visits.svgnu�[���PK!�0���/�modules/popup/assets/images/timing/browsers.svgnu�[���PK!��Ј�1��modules/popup/assets/images/timing/page_views.svgnu�[���PK!,�����*�modules/popup/assets/images/timing/url.svgnu�[���PK!�]�S/modules/popup/assets/images/timing/sessions.svgnu�[���PK!AU����*y$modules/popup/assets/images/timing-tab.svgnu�[���PK!�#v'�+modules/popup/display-settings/base.phpnu�[���PK!��ҳ��).1modules/popup/display-settings/timing.phpnu�[���PK!�[S�
�
+=Fmodules/popup/display-settings/triggers.phpnu�[���PK!��Q�� WQmodules/share-buttons/module.phpnu�[���PK!j싪�D�D/�Ymodules/share-buttons/widgets/share-buttons.phpnu�[���PK!��My����#��modules/hotspot/widgets/hotspot.phpnu�[���PK!xA�88� modules/hotspot/module.phpnu�[���PK!���vv+:"modules/dynamic-tags/acf/tags/acf-image.phpnu�[���PK!�� 33*+modules/dynamic-tags/acf/tags/acf-file.phpnu�[���PK!9Yl���,�-modules/dynamic-tags/acf/tags/acf-number.phpnu�[���PK!*��((*�2modules/dynamic-tags/acf/tags/acf-text.phpnu�[���PK!�U����+J>modules/dynamic-tags/acf/tags/acf-color.phpnu�[���PK!�(�{-�Cmodules/dynamic-tags/acf/tags/acf-gallery.phpnu�[���PK!��t�	�	)	Imodules/dynamic-tags/acf/tags/acf-url.phpnu�[���PK!�͊�
�
#HSmodules/dynamic-tags/acf/module.phpnu�[���PK!��#gg(amodules/dynamic-tags/tags/post-title.phpnu�[���PK!a�؉�/�cmodules/dynamic-tags/tags/post-custom-field.phpnu�[���PK!�m�4qq&�kmodules/dynamic-tags/tags/site-url.phpnu�[���PK!��ڋ��*�nmodules/dynamic-tags/tags/comments-url.phpnu�[���PK!�	=�((/oqmodules/dynamic-tags/tags/current-date-time.phpnu�[���PK!w�_��,�,)�|modules/dynamic-tags/tags/contact-url.phpnu�[���PK!kOTYY(4�modules/dynamic-tags/tags/author-url.phpnu�[���PK!����>>1�modules/dynamic-tags/tags/featured-image-data.phpnu�[���PK!��l��(��modules/dynamic-tags/tags/page-title.phpnu�[���PK!��?66*g�modules/dynamic-tags/tags/post-excerpt.phpnu�[���PK!���S
S
'��modules/dynamic-tags/tags/post-date.phpnu�[���PK!���uu1��modules/dynamic-tags/tags/post-featured-image.phpnu�[���PK!�\�yy&w�modules/dynamic-tags/tags/lightbox.phpnu�[���PK!o��nn)F�modules/dynamic-tags/tags/author-name.phpnu�[���PK!��+
�modules/dynamic-tags/tags/archive-title.phpnu�[���PK!��P��'|�modules/dynamic-tags/tags/post-time.phpnu�[���PK!)n�,mm%��modules/dynamic-tags/tags/post-id.phpnu�[���PK!j�"F
F
(��modules/dynamic-tags/tags/post-terms.phpnu�[���PK!�# ��21�modules/dynamic-tags/tags/user-profile-picture.phpnu�[���PK!i�iR��'�modules/dynamic-tags/tags/site-logo.phpnu�[���PK!L�1{{*[modules/dynamic-tags/tags/site-tagline.phpnu�[���PK!�y}}-0modules/dynamic-tags/tags/comments-number.phpnu�[���PK!:$n��1
modules/dynamic-tags/tags/archive-description.phpnu�[���PK!))4�modules/dynamic-tags/tags/author-profile-picture.phpnu�[���PK!�F�,�modules/dynamic-tags/tags/base/tag-trait.phpnu�[���PK!����&�modules/dynamic-tags/tags/base/tag.phpnu�[���PK!yA�u+Dmodules/dynamic-tags/tags/base/data-tag.phpnu�[���PK!3#K�ff(�modules/dynamic-tags/tags/site-title.phpnu�[���PK!<D.�V	V	'`modules/dynamic-tags/tags/user-info.phpnu�[���PK!��C�*
&modules/dynamic-tags/tags/post-gallery.phpnu�[���PK!��{I��)~)modules/dynamic-tags/tags/archive-url.phpnu�[���PK!��~$vv&�,modules/dynamic-tags/tags/post-url.phpnu�[���PK!#�G�>
>
*�/modules/dynamic-tags/tags/internal-url.phpnu�[���PK!5����),=modules/dynamic-tags/tags/author-info.phpnu�[���PK!⭖���*mBmodules/dynamic-tags/tags/archive-meta.phpnu�[���PK!$tl��)�Gmodules/dynamic-tags/tags/author-meta.phpnu�[���PK!!�'�Kmodules/dynamic-tags/tags/shortcode.phpnu�[���PK! J��  /�Qmodules/dynamic-tags/tags/request-parameter.phpnu�[���PK!�։�33,pZmodules/dynamic-tags/pods/tags/pods-text.phpnu�[���PK!ܓ��,�^modules/dynamic-tags/pods/tags/pods-base.phpnu�[���PK!�~%1-idmodules/dynamic-tags/pods/tags/pods-image.phpnu�[���PK!�+m���+�kmodules/dynamic-tags/pods/tags/pods-url.phpnu�[���PK!no�}}/&tmodules/dynamic-tags/pods/tags/pods-gallery.phpnu�[���PK!�ɬ�.	.	,{modules/dynamic-tags/pods/tags/pods-date.phpnu�[���PK!�8h@bb/��modules/dynamic-tags/pods/tags/pods-numeric.phpnu�[���PK!}��֨
�
$M�modules/dynamic-tags/pods/module.phpnu�[���PK!@�@ة	�	I�modules/dynamic-tags/module.phpnu�[���PK!YC���'A�modules/dynamic-tags/toolset/module.phpnu�[���PK!�{J���2��modules/dynamic-tags/toolset/tags/toolset-text.phpnu�[���PK!|Xm9772�modules/dynamic-tags/toolset/tags/toolset-base.phpnu�[���PK!�]�k��3}�modules/dynamic-tags/toolset/tags/toolset-image.phpnu�[���PK!OW�ss1��modules/dynamic-tags/toolset/tags/toolset-url.phpnu�[���PK!j=�	�	5\�modules/dynamic-tags/toolset/tags/toolset-gallery.phpnu�[���PK!>z��
�
2Y�modules/dynamic-tags/toolset/tags/toolset-date.phpnu�[���PK!sf5��1A�modules/video-playlist/widgets/video-playlist.phpnu�[���PK!g���!��modules/video-playlist/module.phpnu�[���PK!b�#.y�modules/screenshots/render-mode-screenshot.phpnu�[���PK!�[W�����modules/screenshots/module.phpnu�[���PK!�#_QQ"�modules/screenshots/screenshot.phpnu�[���PK!�7�11.�modules/woocommerce/documents/product-post.phpnu�[���PK!6F%1Emodules/woocommerce/documents/product-archive.phpnu�[���PK!+Rl\||)�%modules/woocommerce/documents/product.phpnu�[���PK!�⫚0'0'*�:modules/woocommerce/widgets/categories.phpnu�[���PK!|�-bmodules/woocommerce/widgets/product-stock.phpnu�[���PK!C��k��-ujmodules/woocommerce/widgets/product-price.phpnu�[���PK!kj1oo(�{modules/woocommerce/widgets/elements.phpnu�[���PK!hP�s��(Y�modules/woocommerce/widgets/products.phpnu�[���PK!wbF�0�0,4�modules/woocommerce/widgets/product-meta.phpnu�[���PK!λ�7�
�
;�modules/woocommerce/widgets/archive-products-deprecated.phpnu�[���PK!������/Q�modules/woocommerce/widgets/single-elements.phpnu�[���PK!C?M���.�modules/woocommerce/widgets/product-rating.phpnu�[���PK!~q"
��$�modules/woocommerce/widgets/cart.phpnu�[���PK!
��\4\43�modules/woocommerce/widgets/product-add-to-cart.phpnu�[���PK!p�W�``.�/	modules/woocommerce/widgets/product-images.phpnu�[���PK!�*��  3�B	modules/woocommerce/widgets/products-deprecated.phpnu�[���PK!5?�`0]	modules/woocommerce/widgets/archive-products.phpnu�[���PK!)`#4����*sm	modules/woocommerce/widgets/my-account.phpnu�[���PK!pD`��/�C
modules/woocommerce/widgets/product-related.phpnu�[���PK!�.�q�
�
3�[
modules/woocommerce/widgets/archive-description.phpnu�[���PK!	��%��.6g
modules/woocommerce/widgets/category-image.phpnu�[���PK!�vt�*5l
modules/woocommerce/widgets/breadcrumb.phpnu�[���PK!�O�K����(�w
modules/woocommerce/widgets/checkout.phpnu�[���PK!�`''9�Fmodules/woocommerce/widgets/product-short-description.phpnu�[���PK!6�7�����)VRmodules/woocommerce/widgets/menu-cart.phpnu�[���PK!�x�00-N)
modules/woocommerce/widgets/product-title.phpnu�[���PK!|�p��1�0
modules/woocommerce/widgets/product-data-tabs.phpnu�[���PK!��f�uu+�O
modules/woocommerce/widgets/base-widget.phpnu�[���PK!�|�tee+�a
modules/woocommerce/widgets/add-to-cart.phpnu�[���PK!�i��g�g-zx
modules/woocommerce/widgets/products-base.phpnu�[���PK!�`�88.m�
modules/woocommerce/widgets/product-upsell.phpnu�[���PK!�>�I�	�	>�
modules/woocommerce/widgets/product-additional-information.phpnu�[���PK!��)�;;/M�
modules/woocommerce/widgets/product-content.phpnu�[���PK!:���
R
R�modules/woocommerce/module.phpnu�[���PK!��3�BB,?Tmodules/woocommerce/conditions/shop-page.phpnu�[���PK!�����.�Vmodules/woocommerce/conditions/woocommerce.phpnu�[���PK!O�%��1![modules/woocommerce/conditions/product-search.phpnu�[���PK!��s��2^modules/woocommerce/conditions/product-archive.phpnu�[���PK!�a����3Qdmodules/woocommerce/wc-templates/cart/mini-cart.phpnu�[���PK!����6Cxmodules/woocommerce/tags/product-short-description.phpnu�[���PK!��L*s{modules/woocommerce/tags/product-price.phpnu�[���PK!��u�*ρmodules/woocommerce/tags/product-stock.phpnu�[���PK!^g�;%)�modules/woocommerce/tags/base-tag.phpnu�[���PK!L����)��modules/woocommerce/tags/product-sale.phpnu�[���PK!�!���+��modules/woocommerce/tags/category-image.phpnu�[���PK!�ykMM*’modules/woocommerce/tags/product-image.phpnu�[���PK!ih@��*i�modules/woocommerce/tags/product-terms.phpnu�[���PK!�H�o��+h�modules/woocommerce/tags/product-rating.phpnu�[���PK!$f��~~,��modules/woocommerce/tags/product-gallery.phpnu�[���PK!z?��*p�modules/woocommerce/tags/product-title.phpnu�[���PK!+��CC2d�modules/woocommerce/tags/traits/tag-product-id.phpnu�[���PK!k&:__*	�modules/woocommerce/tags/base-data-tag.phpnu�[���PK!�6���(°modules/woocommerce/tags/product-sku.phpnu�[���PK!�I�OO5�modules/woocommerce/settings/settings-woocommerce.phpnu�[���PK!�Hت��6��modules/woocommerce/classes/base-products-renderer.phpnu�[���PK!��e���1�modules/woocommerce/classes/products-renderer.phpnu�[���PK!P�X��6�modules/woocommerce/classes/current-query-renderer.phpnu�[���PK!��,ww*{�modules/woocommerce/skins/skin-classic.phpnu�[���PK!��V�)L�modules/global-widget/data/controller.phpnu�[���PK!
1O�	�	.��modules/global-widget/views/panel-template.phpnu�[���PK!��"" �modules/global-widget/module.phpnu�[���PK!n��ں�*e(modules/global-widget/documents/widget.phpnu�[���PK!���4��/y.modules/global-widget/widgets/global-widget.phpnu�[���PK!���U���Gmodules/posts/module.phpnu�[���PK!�#VFF$�Smodules/posts/skins/skin-classic.phpnu�[���PK!�*�.��)temodules/posts/skins/skin-full-content.phpnu�[���PK!�^)�;�;"�fmodules/posts/skins/skin-cards.phpnu�[���PK!����uu!�modules/posts/skins/skin-base.phpnu�[���PK!f��$$)Fmodules/posts/skins/skin-content-base.phpnu�[���PK!�ޔ!��!�<modules/posts/data/controller.phpnu�[���PK!H�3/8/8,�Bmodules/posts/traits/button-widget-trait.phpnu�[���PK!PG�§=�=#P{modules/posts/widgets/portfolio.phpnu�[���PK!�g�UAUA$J�modules/posts/widgets/posts-base.phpnu�[���PK!6=�NN�modules/posts/widgets/posts.phpnu�[���PK!��"�::�modules/nav-menu/module.phpnu�[���PK!]��I��%modules/nav-menu/widgets/nav-menu.phpnu�[���PK!f-c��	�	 ��modules/custom-code/document.phpnu�[���PK!�x��P-P-+ťmodules/custom-code/custom-code-metabox.phpnu�[���PK!ܴ>�1�1p�modules/custom-code/module.phpnu�[���PK!:x����xmodules/social/module.phpnu�[���PK!�9L=��/�modules/social/classes/facebook-sdk-manager.phpnu�[���PK!���'��)�modules/social/widgets/facebook-embed.phpnu�[���PK!�� 11,�5modules/social/widgets/facebook-comments.phpnu�[���PK!f���(cEmodules/social/widgets/facebook-page.phpnu�[���PK!8���*OUmodules/social/widgets/facebook-button.phpnu�[���PK!6��;�;+�kmodules/payments/classes/payment-button.phpnu�[���PK!0��b))*§modules/payments/widgets/paypal-button.phpnu�[���PK!H��@@+�modules/payments/module.phpnu�[���PK!K��Ą�?��modules/theme-builder/theme-support/safe-mode-theme-support.phpnu�[���PK!m��KKD��modules/theme-builder/theme-support/generate-press-theme-support.phpnu�[���PK!^�Mu��h�modules/theme-builder/api.phpnu�[���PK!�ۆ�;;3h�modules/theme-builder/widgets/title-widget-base.phpnu�[���PK!�0V���.�modules/theme-builder/widgets/post-excerpt.phpnu�[���PK!L� ��/%�modules/theme-builder/widgets/archive-title.phpnu�[���PK!��aa/R�modules/theme-builder/widgets/archive-posts.phpnu�[���PK!z=0mm+modules/theme-builder/widgets/site-logo.phpnu�[���PK!��\\,�modules/theme-builder/widgets/site-title.phpnu�[���PK!�=AL
L
.�modules/theme-builder/widgets/post-content.phpnu�[���PK!�����,<modules/theme-builder/widgets/page-title.phpnu�[���PK![I<���5O modules/theme-builder/widgets/post-featured-image.phpnu�[���PK!�D�K11,n%modules/theme-builder/widgets/post-title.phpnu�[���PK!��}��2�(modules/theme-builder/documents/search-results.phpnu�[���PK!�O�22-00modules/theme-builder/documents/error-404.phpnu�[���PK!��*�6modules/theme-builder/documents/header.phpnu�[���PK!��n|��7<modules/theme-builder/documents/archive-single-base.phpnu�[���PK!��d�*Bmodules/theme-builder/documents/single.phpnu�[���PK!c��__/�Fmodules/theme-builder/documents/single-page.phpnu�[���PK!,���B�B2?Lmodules/theme-builder/documents/theme-document.phpnu�[���PK!�T�

+K�modules/theme-builder/documents/section.phpnu�[���PK!046D&&/��modules/theme-builder/documents/single-post.phpnu�[���PK!]�Ⱦ�+9�modules/theme-builder/documents/archive.phpnu�[���PK!+�R/R�modules/theme-builder/documents/single-base.phpnu�[���PK!��kV��*��modules/theme-builder/documents/footer.phpnu�[���PK!*V�7�modules/theme-builder/documents/theme-page-document.phpnu�[���PK!К�a6�modules/theme-builder/documents/header-footer-base.phpnu�[���PK!�0shh:��modules/theme-builder/documents/theme-section-document.phpnu�[���PK!!uT)��:��modules/theme-builder/skins/posts-archive-skin-classic.phpnu�[���PK!QfQ��7��modules/theme-builder/skins/posts-archive-skin-base.phpnu�[���PK!�a9338��modules/theme-builder/skins/posts-archive-skin-cards.phpnu�[���PK!d}��0�0:M�modules/theme-builder/skins/post-comments-skin-classic.phpnu�[���PK!iX��		?smodules/theme-builder/skins/posts-archive-skin-full-content.phpnu�[���PK!Gm6�modules/theme-builder/assets/images/conditions-tab.svgnu�[���PK!���>>/p(modules/theme-builder/classes/theme-support.phpnu�[���PK!��RL		1
7modules/theme-builder/classes/preview-manager.phpnu�[���PK!���2}@modules/theme-builder/classes/conditions-cache.phpnu�[���PK!d�`L8L84�Kmodules/theme-builder/classes/conditions-manager.phpnu�[���PK!�!W�mm5��modules/theme-builder/classes/conditions-repeater.phpnu�[���PK!��{V?V?3r�modules/theme-builder/classes/locations-manager.phpnu�[���PK!��"��5+�modules/theme-builder/classes/template-conditions.phpnu�[���PK!Sb9{�modules/theme-builder/classes/templates-types-manager.phpnu�[���PK!�b�-��modules/theme-builder/conditions/child-of.phpnu�[���PK!,=��+^�modules/theme-builder/conditions/author.phpnu�[���PK!B�r5��/b�modules/theme-builder/conditions/front-page.phpnu�[���PK!�>�##-��modules/theme-builder/conditions/taxonomy.phpnu�[���PK!o���1=�modules/theme-builder/conditions/not-found404.phpnu�[���PK!�љ�881��modules/theme-builder/conditions/any-child-of.phpnu�[���PK!7�C���-.�modules/theme-builder/conditions/singular.phpnu�[���PK!I<y���)~�modules/theme-builder/conditions/date.phpnu�[���PK!��W�,��modules/theme-builder/conditions/archive.phpnu�[���PK!u�	nn0!�modules/theme-builder/conditions/in-sub-term.phpnu�[���PK!l�Y[[0�modules/theme-builder/conditions/in-taxonomy.phpnu�[���PK!���8�modules/theme-builder/conditions/post-type-by-author.phpnu�[���PK!U�Ơyy2�modules/theme-builder/conditions/child-of-term.phpnu�[���PK!Gԉ nn)�	modules/theme-builder/conditions/post.phpnu�[���PK!
n�3lmodules/theme-builder/conditions/condition-base.phpnu�[���PK!l�J|��6�modules/theme-builder/conditions/any-child-of-term.phpnu�[���PK!���JJ,!modules/theme-builder/conditions/general.phpnu�[���PK!�o���.�modules/theme-builder/conditions/by-author.phpnu�[���PK!����+�#modules/theme-builder/conditions/search.phpnu�[���PK!�4D���6F&modules/theme-builder/conditions/post-type-archive.phpnu�[���PK!�ط�g5g5 i-modules/theme-builder/module.phpnu�[���PK!��/3>>1 cmodules/theme-builder/views/comments-template.phpnu�[���PK!k&z��.�hmodules/theme-builder/views/panel-template.phpnu�[���PK!ק�VV4�xmodules/theme-builder/views/theme-support-header.phpnu�[���PK!/�M#4n|modules/theme-builder/views/theme-support-footer.phpnu�[���PK!	7@s.s.6�}modules/query-control/classes/elementor-post-query.phpnu�[���PK!~�.Ypp9��modules/query-control/classes/elementor-related-query.phpnu�[���PK!������8��modules/query-control/controls/group-control-related.phpnu�[���PK!�0'(��modules/query-control/controls/query.phpnu�[���PK!Z���7�76)�modules/query-control/controls/group-control-query.phpnu�[���PK!o�j� � 6j
modules/query-control/controls/group-control-posts.phpnu�[���PK!�WI��s�s _+modules/query-control/module.phpnu�[���PK!�hN

1Z�modules/code-highlight/widgets/code-highlight.phpnu�[���PK!����!Ȼmodules/code-highlight/module.phpnu�[���PK!������modules/custom-css/module.phpnu�[���PK!�>ޜ��7�modules/sticky/module.phpnu�[���PK!�)h}55>�modules/slides/module.phpnu�[���PK!�۱���!��modules/slides/widgets/slides.phpnu�[���PK!�FR���1vmodules/call-to-action/widgets/call-to-action.phpnu�[���PK!H�LL!�1modules/call-to-action/module.phpnu�[���PK!ٿW�� 33modules/admin-top-bar/module.phpnu�[���PK!���"��=F7modules/assets-manager/asset-types/icons/font-awesome-pro.phpnu�[���PK!U�ׇII@HKmodules/assets-manager/asset-types/icons/icon-sets/fontastic.phpnu�[���PK!�*�PP>Tmodules/assets-manager/asset-types/icons/icon-sets/icomoon.phpnu�[���PK!��V­�D�\modules/assets-manager/asset-types/icons/icon-sets/icon-set-base.phpnu�[���PK!m���VV?�umodules/assets-manager/asset-types/icons/icon-sets/fontello.phpnu�[���PK!9���779�~modules/assets-manager/asset-types/icons/custom-icons.phpnu�[���PK!��A�FF6,�modules/assets-manager/asset-types/icons/templates.phpnu�[���PK!�fc99:ػmodules/assets-manager/asset-types/fonts/typekit-fonts.phpnu�[���PK!�Z�k�6�69{�modules/assets-manager/asset-types/fonts/custom-fonts.phpnu�[���PK!����DD4gmodules/assets-manager/asset-types/icons-manager.phpnu�[���PK!g�[�Y>Y>4)modules/assets-manager/asset-types/fonts-manager.phpnu�[���PK!m�5��0�0.�gmodules/assets-manager/classes/assets-base.phpnu�[���PK!�9g�  ,�modules/assets-manager/classes/font-base.phpnu�[���PK!M4�a��!l�modules/assets-manager/module.phpnu�[���PK!�B�)<<$`�modules/custom-attributes/module.phpnu�[���PK!��� ���modules/usage/module.phpnu�[���PK!(�E�QQ#�modules/progress-tracker/module.phpnu�[���PK!�G���@�@5��modules/progress-tracker/widgets/progress-tracker.phpnu�[���PK!��S����-modules/lottie/assets/animations/default.jsonnu�[���PK!�/��PP!�modules/lottie/widgets/lottie.phpnu�[���PK!��M��zmodules/lottie/module.phpnu�[���PK!e�ᨆH�H+Nmodules/carousel/widgets/media-carousel.phpnu�[���PK!�.ə�S�S$/_modules/carousel/widgets/reviews.phpnu�[���PK!WP�L�8�8!	�modules/carousel/widgets/base.phpnu�[���PK!��>ySS1O�modules/carousel/widgets/testimonial-carousel.phpnu�[���PK!�0y�jj�?modules/carousel/module.phpnu�[���PK![�Һ�
�
pAmodules/motion-fx/module.phpnu�[���PK!SZ)W::$^Omodules/motion-fx/controls-group.phpnu�[���PK!�+���E�E'��modules/countdown/widgets/countdown.phpnu�[���PK!f��>>��modules/countdown/module.phpnu�[���PK!Z��JJ$p�modules/compatibility-tag/module.phpnu�[���PK!�K�2��9�modules/compatibility-tag/compatibility-tag-component.phpnu�[���PK!K�?6��$
�modules/library/widgets/template.phpnu�[���PK!�!q�+�modules/library/module.phpnu�[���PK!��#0��modules/library/wp-widgets/elementor-library.phpnu�[���PK!��M��%�modules/library/classes/shortcode.phpnu�[���PK!T뢯MM3modules/pricing/module.phpnu�[���PK!��a��B�B&�modules/pricing/widgets/price-list.phpnu�[���PK!AG�*8�8�'�Rmodules/pricing/widgets/price-table.phpnu�[���PK!�pA�n�n,mmodules/theme-elements/widgets/post-info.phpnu�[���PK!�B��GG'q�modules/theme-elements/widgets/base.phpnu�[���PK!�
���0�modules/theme-elements/widgets/post-comments.phpnu�[���PK!�A{��;�;2�modules/theme-elements/widgets/post-navigation.phpnu�[���PK!o�VHH*>�modules/theme-elements/widgets/sitemap.phpnu�[���PK!�?R)N_N_.� modules/theme-elements/widgets/search-form.phpnu�[���PK!��yy.Rx modules/theme-elements/widgets/breadcrumbs.phpnu�[���PK!6�"TUTU-)� modules/theme-elements/widgets/author-box.phpnu�[���PK!y���!�� modules/theme-elements/module.phpnu�[���PK!��/q		�� modules/forms/module.phpnu�[���PK!�F0l	l	#8� modules/forms/fields/acceptance.phpnu�[���PK!%�i#�!modules/forms/fields/field-base.phpnu�[���PK!}ζ7�7Z!modules/forms/fields/upload.phpnu�[���PK!*
+Ǹ�_F!modules/forms/fields/tel.phpnu�[���PK!y�6
6
cK!modules/forms/fields/time.phpnu�[���PK!���}�
�
�U!modules/forms/fields/number.phpnu�[���PK!���W
W
a!modules/forms/fields/date.phpnu�[���PK!g����
�
�n!modules/forms/fields/step.phpnu�[���PK!!�|!modules/forms/data/controller.phpnu�[���PK!�zv�BB07}!modules/forms/classes/activecampaign-handler.phpnu�[���PK!���_�
�
*ى!modules/forms/classes/honeypot-handler.phpnu�[���PK!�|<�,,%�!modules/forms/classes/action-base.phpnu�[���PK!/�<N$N$%��!modules/forms/classes/form-record.phpnu�[���PK!�ER�44.*�!modules/forms/classes/recaptcha-v3-handler.phpnu�[���PK!ܚs&�	�	*��!modules/forms/classes/integration-base.phpnu�[���PK!�2Y*m
m
,��!modules/forms/classes/convertkit-handler.phpnu�[���PK!`<<�-��!modules/forms/classes/getresponse-handler.phpnu�[���PK!R��EE#�!modules/forms/classes/form-base.phpnu�[���PK!�x؆@@+�"modules/forms/classes/mailchimp-handler.phpnu�[���PK!b0L_6#6#+E""modules/forms/classes/recaptcha-handler.phpnu�[���PK!��N<��%�E"modules/forms/classes/rest-client.phpnu�[���PK!�B�L

&�T"modules/forms/classes/drip-handler.phpnu�[���PK!v<̰!�!&P]"modules/forms/classes/ajax-handler.phpnu�[���PK!O���:
:
,V"modules/forms/classes/mailerlite-handler.phpnu�[���PK!��qe	e	3�"modules/forms/registrars/form-actions-registrar.phpnu�[���PK!,d4}JJ2��"modules/forms/registrars/form-fields-registrar.phpnu�[���PK!�*���"`�"modules/forms/actions/mailpoet.phpnu�[���PK!P)ʍJJ$X�"modules/forms/actions/convertkit.phpnu�[���PK!�������"modules/forms/actions/slack.phpnu�[���PK!�Q,}�
�
#��"modules/forms/actions/mailpoet3.phpnu�[���PK!/~�3��!<�"modules/forms/actions/webhook.phpnu�[���PK!M\]b2b2#Z�"modules/forms/actions/mailchimp.phpnu�[���PK!Ѐ�'�#�#($#modules/forms/actions/activecampaign.phpnu�[���PK!��!��&H#modules/forms/actions/activity-log.phpnu�[���PK!��
�!"L#modules/forms/actions/discord.phpnu�[���PK!͒�{��"�a#modules/forms/actions/redirect.phpnu�[���PK!����(�(�h#modules/forms/actions/email.phpnu�[���PK!X{�""Б#modules/forms/actions/drip.phpnu�[���PK!��^��$*�#modules/forms/actions/mailerlite.phpnu�[���PK!�ȶy���#modules/forms/actions/cf7db.phpnu�[���PK!s��� �#modules/forms/actions/email2.phpnu�[���PK!w2R/"/"%]�#modules/forms/actions/getresponse.phpnu�[���PK!)Oђ��+�#modules/forms/submissions/personal-data.phpnu�[���PK!#�§��4
$modules/forms/submissions/data/endpoints/referer.phpnu�[���PK!�l�'_
_
2�$modules/forms/submissions/data/endpoints/index.phpnu�[���PK!h�>8�!$modules/forms/submissions/data/endpoints/forms-index.phpnu�[���PK!�:�+
+
3.%$modules/forms/submissions/data/endpoints/export.phpnu�[���PK!L�o�
�
4�2$modules/forms/submissions/data/endpoints/restore.phpnu�[���PK!�\�$�$->$modules/forms/submissions/data/controller.phpnu�[���PK!�t��3c$modules/forms/submissions/data/forms-controller.phpnu�[���PK!j$��Bh$modules/forms/submissions/data/responses/query-failed-response.phpnu�[���PK!�)���
�
L�j$modules/forms/submissions/database/repositories/form-snapshot-repository.phpnu�[���PK!o��""=hy$modules/forms/submissions/database/entities/form-snapshot.phpnu�[���PK!��}vWYWY,��$modules/forms/submissions/database/query.phpnu�[���PK!��l77@��$modules/forms/submissions/database/migrations/base-migration.phpnu�[���PK!MI�9ff?Q�$modules/forms/submissions/database/migrations/referer-extra.phpnu�[���PK!�Cz�!!=&�$modules/forms/submissions/database/migrations/fix-indexes.phpnu�[���PK!i�U�pp9��$modules/forms/submissions/database/migrations/initial.phpnu�[���PK!a��kEE0�%modules/forms/submissions/database/migration.phpnu�[���PK!�"Ƭ�'2%modules/forms/submissions/component.phpnu�[���PK!������/5%modules/forms/submissions/export/csv-export.phpnu�[���PK!�
����6x+%modules/forms/submissions/actions/save-to-database.phpnu�[���PK!T3�;sosonB%modules/forms/widgets/login.phpnu�[���PK!�uR�0�%modules/forms/widgets/form.phpnu�[���PK!��@@*��&modules/forms/controls/fields-repeater.phpnu�[���PK!vf��hh%3�&modules/forms/controls/fields-map.phpnu�[���PK!+���QGQG7�&modules/table-of-contents/widgets/table-of-contents.phpnu�[���PK!s%�$�'modules/table-of-contents/module.phpnu�[���PK!���=AA'modules/blockquote/module.phpnu�[���PK!'�u(LdLd)�'modules/blockquote/widgets/blockquote.phpnu�[���PK!�AR��"?l'modules/wp-cli/license-command.phpnu�[���PK!�����s'modules/wp-cli/module.phpnu�[���PK!+�3cc�v'modules/wp-cli/update.phpnu�[���PK!#�VG��Px'license.txtnu�[���PK!y�҈ss3"|'docs/modules/payments/classes/payment-button.php.mdnu�[���PK!���g	g	2��'docs/modules/payments/widgets/paypal-button.php.mdnu�[���PK!�%YK++-��'docs/modules/code-highlight/code-highlight.mdnu�[���PK!���x��'I�'docs/modules/forms/submissions/index.mdnu�[���PK!|�����X�'data/base/controller.phpnu�[���PK!9q������'base/base-widget-trait.phpnu�[���PK!dK�LLݱ'base/module-base.phpnu�[���PK!����m�'base/base-widget.phpnu�[���PK!z���,�,��'license/api.phpnu�[���PK!fv�i44(��'license/notices/trial-expired-notice.phpnu�[���PK!��\.LL'�'license/notices/trial-period-notice.phpnu�[���PK!�a��`�`��'license/admin.phpnu�[���PK!��iY,,�L(license/updater.phpnu�[���PK!��S�*�*
Lh(plugin.phpnu�[���PK!��v'��
=�(karma.conf.jsnu�[���PK!R��b����
*�(changelog.txtnu�[���PK!��iOO�g*elementor-pro.phpnu�[���PK!NBq\�����~*assets/lib/lottie/lottie.min.jsnu�[���PK!�=2CC�Y.assets/lib/lottie/lottie.jsnu�[���PK!ь�#z!z!"Z5assets/lib/sticky/jquery.sticky.jsnu�[���PK!�c���&�{5assets/lib/sticky/jquery.sticky.min.jsnu�[���PK!ˆa�$�$.��5assets/lib/dom-to-image/js/dom-to-image.min.jsnu�[���PK!B����R�R*=�5assets/lib/dom-to-image/js/dom-to-image.jsnu�[���PK!R-jS��*�6assets/lib/smartmenus/jquery.smartmenus.jsnu�[���PK!��Qrbrb.Ϳ6assets/lib/smartmenus/jquery.smartmenus.min.jsnu�[���PK!X�n�n&�"7assets/lib/font-awesome-pro/regular.jsnu�[���PK!X�n�n$��7assets/lib/font-awesome-pro/solid.jsnu�[���PK!X�n�n&�8assets/lib/font-awesome-pro/duotone.jsnu�[���PK!X�n�n$�o8assets/lib/font-awesome-pro/light.jsnu�[���PK!�c|	%��8assets/lib/font-awesome-pro/brands.jsnu�[���PK!6�>�����,^�8assets/lib/html2canvas/js/html2canvas.min.jsnu�[���PK!LJtaפפ(�|;assets/lib/html2canvas/js/html2canvas.jsnu�[���PK!k���5�!@assets/js/nav-menu.fd64b77e7258ee4c6205.bundle.min.jsnu�[���PK!�m�����(�.@assets/js/preloaded-elements-handlers.jsnu�[���PK!�Ƃ�>=>=6� Dassets/js/archive-posts.22a6d49be96f6e1aa290.bundle.jsnu�[���PK!1��m��2s^Dassets/js/load-more.cd76720206dc6d21abc0.bundle.jsnu�[���PK!(����>�yDassets/js/table-of-contents.f5cd05278297a9d229e1.bundle.min.jsnu�[���PK!I��e�e�7�Dassets/js/video-playlist.5ee0445e2c9b1f2ed68f.bundle.jsnu�[���PK!B7퓝���ZEassets/js/screenshot.jsnu�[���PK!ƒRݻ�;��Hassets/js/media-carousel.15b78f70034df8ffebad.bundle.min.jsnu�[���PK!�˂��1�Iassets/js/nav-menu.e248eec66bc3d5587cf6.bundle.jsnu�[���PK!9�A?��/*Iassets/js/social.b17f5f1767e41333a1dc.bundle.jsnu�[���PK!�J��AM
AM
72Iassets/js/editor.jsnu�[���PK!�vPee$�Sassets/js/webpack-pro.runtime.min.jsnu�[���PK!�n��W+W+Bt�Sassets/js/woocommerce-checkout-page.acd4a2b8bc03ed32111f.bundle.jsnu�[���PK!
��|8|83=�Sassets/js/lottie.b83968ecec2e4fd1b62c.bundle.min.jsnu�[���PK!���C'C'1�Sassets/js/carousel.364bbaf018e09f58c819.bundle.jsnu�[���PK!��ޭޭ�Tassets/js/frontend.jsnu�[���PK!I�?��:��Tassets/js/share-buttons.42abb737a0de191a4ee9.bundle.min.jsnu�[���PK!��h.(.(?	�Tassets/js/woocommerce-my-account.d52e81c74f27be09eb2e.bundle.jsnu�[���PK!��5~�"�"��Tassets/js/editor.min.jsnu�[���PK!(�;�^�^"�Xassets/js/elements-handlers.min.jsnu�[���PK!��}Nll4�}Xassets/js/gallery.6af8f19f91f1b16c3ab6.bundle.min.jsnu�[���PK!��(gg:��Xassets/js/paypal-button.21471ef12592606560a0.bundle.min.jsnu�[���PK!Z���Ea�Xassets/js/jszip.vendor.9ec53381c344ee903f3e.bundle.min.js.LICENSE.txtnu�[���PK!��Ϡ��FX�Xassets/js/woocommerce-checkout-page.ca82a3335f2823da4209.bundle.min.jsnu�[���PK!Zp�..Bk�Xassets/js/woocommerce-menu-cart.4c85f15cfbc02b4718c9.bundle.min.jsnu�[���PK!����$$9�Xassets/js/woocommerce-cart.39ccd7e510e98f3afb01.bundle.jsnu�[���PK!���eUU>��Xassets/js/woocommerce-menu-cart.cf8829a628c66ec7c688.bundle.jsnu�[���PK!Aӡ${{:P�Xassets/js/archive-posts.77eccfe3d546a58d3f1f.bundle.min.jsnu�[���PK!�\ 645Yassets/js/hotspot.ba3b762edc3da9c7a076.bundle.min.jsnu�[���PK!�E��ww8�"Yassets/js/search-form.e36b4b7c26157bb965fe.bundle.min.jsnu�[���PK!/ɻ�ll6y*Yassets/js/load-more.921f61dba5d476ec2720.bundle.min.jsnu�[���PK!�)�G3G37K;Yassets/js/media-carousel.b5cf350f530535d64364.bundle.jsnu�[���PK!���<KK2�nYassets/js/countdown.6b48da864045c1ea0edd.bundle.jsnu�[���PK!>�m�c�c/��Yassets/js/lottie.dccf7257e6cc366bc6bd.bundle.jsnu�[���PK!�U��7�Yassets/js/code-highlight.cc6c8eb49e0aff6d419e.bundle.jsnu�[���PK!E& ԫ�6f�Yassets/js/portfolio.c214590e93207960ce64.bundle.min.jsnu�[���PK!��ZQ	ZQ	"wZassets/js/form-submission-admin.jsnu�[���PK!EW�../#Ycassets/js/slides.6d3f738223ac9b3c9b7a.bundle.jsnu�[���PK!.�.�HH5�vcassets/js/carousel.6a71b6c6e34400c456a5.bundle.min.jsnu�[���PK!���8�8�5]�cassets/js/jszip.vendor.8911033537a0c9d6e5f8.bundle.jsnu�[���PK!�Z((�eassets/js/qunit-tests.min.jsnu�[���PK!�Ba���Cneassets/js/woocommerce-my-account.29644c6bcc614d12067e.bundle.min.jsnu�[���PK!A�.0

t&eassets/js/admin.jsnu�[���PK!ʸQ�O`O`�3iassets/js/custom-code.min.jsnu�[���PK!��v��4U�jassets/js/search-form.fda69e244861c6890e79.bundle.jsnu�[���PK!�ɰ9�9���jassets/js/elements-handlers.jsnu�[���PK!�$�<�X�X;�kassets/js/video-playlist.780d8267a738bfbd96a6.bundle.min.jsnu�[���PK!ze)��K�K1b�kassets/js/form.0fc25ba6639255b98660.bundle.min.jsnu�[���PK!�|;;2aHlassets/js/posts.2a35b76ad8ea8f612cd7.bundle.min.jsnu�[���PK!s~3���=�Tlassets/js/progress-tracker.ad310e07a2a9063dd3ed.bundle.min.jsnu�[���PK!e��R��3jlassets/js/slides.39da68ee3c8123589b2e.bundle.min.jsnu�[���PK!�qm����kylassets/js/preview.min.jsnu�[���PK!�W(����,�	massets/js/preloaded-elements-handlers.min.jsnu�[���PK!?Q�/[a[a&�oassets/js/form-submission-admin.min.jsnu�[���PK!�?.��-Vdqassets/js/form.23168c11e0d20fa0282b.bundle.jsnu�[���PK!2���%�%���qassets/js/app.jsnu�[���PK!��*�*��yassets/js/custom-code.jsnu�[���PK!�Px���0r�assets/js/hotspot.66952182f9ae91b6896c.bundle.jsnu�[���PK!���2�22��assets/js/portfolio.71a9b9fb42566ae496bd.bundle.jsnu�[���PK!	6((6��assets/js/paypal-button.a8f3d929735cca75a572.bundle.jsnu�[���PK!(ܐ
�6�6:u�assets/js/table-of-contents.0744140055afdd9bf411.bundle.jsnu�[���PK!,b�w��;�L�assets/js/code-highlight.dc74fd78a051eda07b3a.bundle.min.jsnu�[���PK!�́4;2;2:�N�assets/js/animated-headline.0ccd23763059df7affcc.bundle.jsnu�[���PK!o`�\\���assets/js/preview.jsnu�[���PK!�����>�݂assets/js/animated-headline.37960d9fb9ab8b6e43cd.bundle.min.jsnu�[���PK!Mt@�EOEO��assets/js/frontend.min.jsnu�[���PK!���%%0�L�assets/js/gallery.e5ba72e3c57da531df85.bundle.jsnu�[���PK!�E3z�7�7 r�assets/js/webpack-pro.runtime.jsnu�[���PK!��W�
�
6S��assets/js/share-buttons.d147b71ef798e333e678.bundle.jsnu�[���PK!^5�P.���assets/js/popup.5ddbdd46f21fc221d760.bundle.jsnu�[���PK!��ll)��assets/js/admin.min.jsnu�[���PK!
��.�؄assets/js/posts.c23c8d29f44afbd62da6.bundle.jsnu�[���PK!.h:&%&%9O�assets/js/progress-tracker.a7329beb7783748287a5.bundle.jsnu�[���PK!JM&{��=��assets/js/woocommerce-cart.e2a9101be21a228a4575.bundle.min.jsnu�[���PK!/�I:;;�(�assets/js/qunit-tests.jsnu�[���PK!�Qoz4�assets/js/app.min.jsnu�[���PK!"qZ�e
e
6�4�assets/js/countdown.71f117e09cc4a2aa3dba.bundle.min.jsnu�[���PK!M�U�����?�assets/js/screenshot.min.jsnu�[���PK!��B�&�&�9��assets/js/jszip.vendor.9ec53381c344ee903f3e.bundle.min.jsnu�[���PK!x�q9��2:��assets/js/popup.7b71aedb401104b93788.bundle.min.jsnu�[���PK!|����3���assets/js/social.787445e9f143597c5be5.bundle.min.jsnu�[���PK!+3�jj�assets/css/preview.min.cssnu�[���PK!"�E�� ���assets/css/widget-lottie.min.cssnu�[���PK!LX&kk/鲉assets/css/widget-table-of-contents-rtl.min.cssnu�[���PK!I-z�U�U�ʼnassets/css/admin.cssnu�[���PK!!��??��assets/css/widget-posts.min.cssnu�[���PK!4�|�|�|'B[�assets/css/widget-share-buttons.min.cssnu�[���PK!��l��'b؊assets/css/widget-motion-fx-rtl.min.cssnu�[���PK!r��KKH݊assets/css/editor.cssnu�[���PK!�J�gsEsE�(�assets/css/admin.min.cssnu�[���PK!��w�.�.(fn�assets/css/widget-theme-elements.min.cssnu�[���PK!;[9���%i��assets/css/widget-woocommerce.min.cssnu�[���PK!��*��)�3�assets/css/templates/frontend-rtl.min.cssnu�[���PK!Z�۲����!�<�assets/css/templates/frontend.cssnu�[���PK!D�<�))*�1�assets/css/templates/frontend-lite-rtl.cssnu�[���PK!i�\��%2D�assets/css/templates/frontend.min.cssnu�[���PK!yS�Z##&HM�assets/css/templates/frontend-lite.cssnu�[���PK!�J#%	�	�.�_�assets/css/templates/frontend-lite-rtl.min.cssnu�[���PK!�G�����%(T�assets/css/templates/frontend-rtl.cssnu�[���PK!�%�����*I�assets/css/templates/frontend-lite.min.cssnu�[���PK!D�啧.�.,u=�assets/css/widget-theme-elements-rtl.min.cssnu�[���PK!��v�
�
*xl�assets/css/widget-progress-tracker.min.cssnu�[���PK!�V	Y���z�assets/css/frontend-rtl.min.cssnu�[���PK!M��_��$�~�assets/css/widget-blockquote.min.cssnu�[���PK!���F��'���assets/css/widget-countdown-rtl.min.cssnu�[���PK!~٨�,�,,���assets/css/widget-call-to-action-rtl.min.cssnu�[���PK!�m�̡��Ȯassets/css/frontend.min.cssnu�[���PK!������̳assets/css/frontend.cssnu�[���PK!
��&�&йassets/css/app-rtl.min.cssnu�[���PK!�i�0�&�&&A��assets/css/widget-flip-box-rtl.min.cssnu�[���PK!���QQ" �assets/css/widget-payments.min.cssnu�[���PK!\�P���(��assets/css/widget-blockquote-rtl.min.cssnu�[���PK!��c�PP �5�assets/css/widget-sticky.min.cssnu�[���PK!i�ee$o6�assets/css/widget-social-rtl.min.cssnu�[���PK!�m6'��#(8�assets/css/widget-countdown.min.cssnu�[���PK!fԡ�=�=c>�assets/css/editor.min.cssnu�[���PK!`B,���#]|�assets/css/widget-forms-rtl.min.cssnu�[���PK!����+1��assets/css/widget-global-widget-rtl.min.cssnu�[���PK!�
�Y�Y"-��assets/css/widget-carousel.min.cssnu�[���PK!�@F��|�|+��assets/css/widget-share-buttons-rtl.min.cssnu�[���PK!��c�PP$8r�assets/css/widget-sticky-rtl.min.cssnu�[���PK!_#�!!%�r�assets/css/widget-hotspot-rtl.min.cssnu�[���PK!$����%J��assets/css/widget-gallery-rtl.min.cssnu�[���PK!v�f�+�+� ���assets/css/frontend-lite.min.cssnu�[���PK!P �|�
�
$��assets/css/widget-slides-rtl.min.cssnu�[���PK!JWKp�,�,(�assets/css/widget-call-to-action.min.cssnu�[���PK!%�JM�^�^�۽assets/css/frontend-lite.cssnu�[���PK!.�@��q�q&1;�assets/css/widget-nav-menu-rtl.min.cssnu�[���PK!΢�Jn.n.z��assets/css/app-rtl.cssnu�[���PK!��v�
�
..�assets/css/widget-progress-tracker-rtl.min.cssnu�[���PK!�)�B5�5�$\�assets/css/frontend-lite-rtl.min.cssnu�[���PK!C�W�??#���assets/css/widget-posts-rtl.min.cssnu�[���PK!�wb�U�U%S�assets/css/modules/code-highlight.cssnu�[���PK!�m��2�q�assets/css/modules/forms/submissions/admin-rtl.cssnu�[���PK!���ww6���assets/css/modules/forms/submissions/admin-rtl.min.cssnu�[���PK!��s�yy2k��assets/css/modules/forms/submissions/admin.min.cssnu�[���PK!�mm���.F��assets/css/modules/forms/submissions/admin.cssnu�[���PK!����*3��assets/css/modules/custom-code-rtl.min.cssnu�[���PK!�O	�	�&�y�assets/css/modules/custom-code-rtl.cssnu�[���PK!`��\�L�L)�;�assets/css/modules/code-highlight.min.cssnu�[���PK!�?*�
�
�"#��assets/css/modules/custom-code.cssnu�[���PK!z�R	�	�&K�assets/css/modules/custom-code.min.cssnu�[���PK!`B,�����assets/css/widget-forms.min.cssnu�[���PK!h*���.�assets/css/frontend-rtl.cssnu�[���PK!re^���!2�assets/css/widget-pricing.min.cssnu�[���PK!��l��#J�assets/css/widget-motion-fx.min.cssnu�[���PK!/q�T��!�N�assets/css/widget-gallery.min.cssnu�[���PK!5֜�nEnE1m�assets/css/admin-rtl.min.cssnu�[���PK!w�wϺ�%��assets/css/widget-pricing-rtl.min.cssnu�[���PK!����'���assets/css/widget-global-widget.min.cssnu�[���PK!mb�=�=���assets/css/editor-rtl.min.cssnu�[���PK!��"2�U�U��assets/css/admin-rtl.cssnu�[���PK!�,�'''+c�assets/css/widget-theme-builder-rtl.min.cssnu�[���PK!I]18RKRK+�d�assets/css/widget-animated-headline.min.cssnu�[���PK!���QQ&M��assets/css/widget-payments-rtl.min.cssnu�[���PK!����Y�Y&��assets/css/widget-carousel-rtl.min.cssnu�[���PK!d�7'c.c.�
�assets/css/app.cssnu�[���PK!m�
g		�9�assets/css/preview.cssnu�[���PK!���z�2�2(�B�assets/css/widget-video-playlist.min.cssnu�[���PK!��mTKTK/�u�assets/css/widget-animated-headline-rtl.min.cssnu�[���PK!q�Rl		y��assets/css/preview-rtl.cssnu�[���PK!XDv22 ���assets/css/frontend-msie.min.cssnu�[���PK!޷�j�&�&P��assets/css/app.min.cssnu�[���PK!cQtll+�
�assets/css/widget-table-of-contents.min.cssnu�[���PK!_#�!!!L�assets/css/widget-hotspot.min.cssnu�[���PK!0rF�q�q"�>�assets/css/widget-nav-menu.min.cssnu�[���PK!�i�0�&�&"���assets/css/widget-flip-box.min.cssnu�[���PK!��3
_
_ ���assets/css/frontend-lite-rtl.cssnu�[���PK!��0�ii27�assets/css/preview-rtl.min.cssnu�[���PK!��.����)�>�assets/css/widget-woocommerce-rtl.min.cssnu�[���PK!i���2�2,;��assets/css/widget-video-playlist-rtl.min.cssnu�[���PK!_wUU6�assets/css/widget-popup.min.cssnu�[���PK!"�E��$��assets/css/widget-lottie-rtl.min.cssnu�[���PK!�›
�
 &�assets/css/widget-slides.min.cssnu�[���PK!i�ee �assets/css/widget-social.min.cssnu�[���PK!�,�''''��assets/css/widget-theme-builder.min.cssnu�[���PK!�~�9'K'KD�assets/css/editor-rtl.cssnu�[���PK!H�:@]]�i�assets/css/frontend-msie.cssnu�[���PK!eLf�TT#]��assets/css/widget-popup-rtl.min.cssnu�[���PK!6�S�tt ��core/admin/canary-deployment.phpnu�[���PK!axni��Ȋ�core/admin/admin.phpnu�[���PK!nŏ�©�core/utils/registrar.phpnu�[���PK!聼��
�
���core/editor/editor.phpnu�[���PK!
�;��ʹ�core/editor/notice-bar.phpnu�[���PK!��������core/editor/template.phpnu�[���PK!5F��UU���core/app/assets/js/index.jsnu�[���PK!-��DD'x��core/app/assets/styles/app-imports.scssnu�[���PK!��??=��core/app/modules/site-editor/render-mode-template-preview.phpnu�[���PK!K�MIgg'���core/app/modules/site-editor/module.phpnu�[���PK!<j�ܞ�D}��core/app/modules/site-editor/assets/js/part-actions/dialog-rename.jsnu�[���PK!��ēFFD���core/app/modules/site-editor/assets/js/part-actions/dialog-delete.jsnu�[���PK!+dt���JI��core/app/modules/site-editor/assets/js/part-actions/dialogs-and-buttons.jsnu�[���PK!�c(��I|��core/app/modules/site-editor/assets/js/data/commands/conditions-config.jsnu�[���PK!#)V��core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.jsnu�[���PK!,�O��L���core/app/modules/site-editor/assets/js/data/commands/templates-conditions.jsnu�[���PK!�˰��A��core/app/modules/site-editor/assets/js/data/commands/templates.jsnu�[���PK!1g�|��=-�core/app/modules/site-editor/assets/js/data/commands/index.jsnu�[���PK!-��8��core/app/modules/site-editor/assets/js/data/component.jsnu�[���PK!�?b'}}H�core/app/modules/site-editor/assets/js/hooks/use-templates-screenshot.jsnu�[���PK!�L��<��core/app/modules/site-editor/assets/js/context/conditions.jsnu�[���PK!S���
�
;,�core/app/modules/site-editor/assets/js/context/templates.jsnu�[���PK!��"M
M
LK:�core/app/modules/site-editor/assets/js/context/services/conditions-config.jsnu�[���PK!�?�*>E�core/app/modules/site-editor/assets/js/context/base-context.jsnu�[���PK!��\rrB�I�core/app/modules/site-editor/assets/js/context/models/condition.jsnu�[���PK!�R��**BwN�core/app/modules/site-editor/assets/js/organisms/site-templates.jsnu�[���PK!NM���HZ�core/app/modules/site-editor/assets/js/pages/conditions/condition-sub.jsnu�[���PK!���Ic]�core/app/modules/site-editor/assets/js/pages/conditions/condition-name.jsnu�[���PK!�5 ��K�`�core/app/modules/site-editor/assets/js/pages/conditions/condition-sub-id.jsnu�[���PK!$t�$��G5h�core/app/modules/site-editor/assets/js/pages/conditions/conditions.scssnu�[���PK!T@]��I�|�core/app/modules/site-editor/assets/js/pages/conditions/condition-type.jsnu�[���PK!��)ooK���core/app/modules/site-editor/assets/js/pages/conditions/conditions-api.scssnu�[���PK!>4:�__J���core/app/modules/site-editor/assets/js/pages/conditions/conditions-rows.jsnu�[���PK!���ddEx��core/app/modules/site-editor/assets/js/pages/conditions/conditions.jsnu�[���PK!z�F��NQ��core/app/modules/site-editor/assets/js/pages/conditions/condition-conflicts.jsnu�[���PK!N�@�
�
6s��core/app/modules/site-editor/assets/js/pages/import.jsnu�[���PK!F;�U��9[��core/app/modules/site-editor/assets/js/pages/add-new.scssnu�[���PK!s�ţ227`��core/app/modules/site-editor/assets/js/pages/add-new.jsnu�[���PK!�.��?���core/app/modules/site-editor/assets/js/pages/template-type.scssnu�[���PK!�S�l��9��core/app/modules/site-editor/assets/js/pages/templates.jsnu�[���PK!��y�=8��core/app/modules/site-editor/assets/js/pages/template-type.jsnu�[���PK!�űM�
�
5���core/app/modules/site-editor/assets/js/site-editor.jsnu�[���PK!�8�ڙ�A���core/app/modules/site-editor/assets/js/molecules/site-template.jsnu�[���PK!���K��core/app/modules/site-editor/assets/js/molecules/site-template-thumbnail.jsnu�[���PK!&����A���core/app/modules/site-editor/assets/js/molecules/back-button.scssnu�[���PK!H.$�H���core/app/modules/site-editor/assets/js/molecules/site-template-footer.jsnu�[���PK!����C@��core/app/modules/site-editor/assets/js/molecules/site-template.scssnu�[���PK!��?F���core/app/modules/site-editor/assets/js/molecules/site-template-body.jsnu�[���PK!K1��?��core/app/modules/site-editor/assets/js/molecules/back-button.jsnu�[���PK!;�+���HU��core/app/modules/site-editor/assets/js/molecules/site-template-header.jsnu�[���PK!G&Yuu>���core/app/modules/site-editor/assets/js/atoms/preview-iframe.jsnu�[���PK!�W*xHHBs��core/app/modules/site-editor/assets/js/atoms/indicator-bullet.scssnu�[���PK![����@-��core/app/modules/site-editor/assets/js/atoms/preview-iframe.scssnu�[���PK!�,��@���core/app/modules/site-editor/assets/js/atoms/indicator-bullet.jsnu�[���PK!/[j��7
��core/app/modules/site-editor/assets/js/site-editor.scssnu�[���PK!�簪�0j�core/app/modules/site-editor/assets/js/editor.jsnu�[���PK!��CFBBCt�core/app/modules/site-editor/data/responses/lock-error-response.phpnu�[���PK!��~A)�core/app/modules/site-editor/data/endpoints/conditions-config.phpnu�[���PK!�P�EE>��core/app/modules/site-editor/data/endpoints/template-types.phpnu�[���PK!�5.���=i
�core/app/modules/site-editor/data/endpoints/base-endpoint.phpnu�[���PK!�Ē���9��core/app/modules/site-editor/data/endpoints/templates.phpnu�[���PK!Vћ��D&�core/app/modules/site-editor/data/endpoints/templates-conditions.phpnu�[���PK!"{���N�.�core/app/modules/site-editor/data/endpoints/templates-conditions-conflicts.phpnu�[���PK!�s�g042�core/app/modules/site-editor/data/controller.phpnu�[���PK!q�����'�5�core/app/modules/kit-library/module.phpnu�[���PK!f/lxx�>�core/app/app.phpnu�[���PK!�[����G�core/connect/apps/activate.phpnu�[���PK!C%��KK�V�core/connect/manager.phpnu�[���PK!1<�++mY�core/upgrade/manager.phpnu�[���PK!RU�Mzz�\�core/upgrade/upgrades.phpnu�[���PK!\��225��core/modules-manager.phpnu�[���PK!b�\A$A$���core/utils.phpnu�[���PK!4agg.�core/preview/preview.phpnu�[���PK��s��

Youez - 2016 - github.com/yon3zu
LinuXploit